Sensirion社の小型な CO2 センサ SCD4x 向けに、スマホと BLE接続で簡単にモニタが可能になる BLEガジェット ライブラリ が提供されています。
今回 M5Stack製 の ATOM Lite / ATOM Matrix と、以前開発した SCD40搭載 の M5StickC Proto Hat向けCO2センサボード の組み合わせで BLEガジェット として動かすまでの手順をまとめてみました。
以前、動作確認した際の様子は以下の通り。
必要なもの・準備
今回、動作確認した際の環境は以下の通り。
以下、各製品のリンクはスイッチサイエンスさんの製品ページへのリンクとなります。
- ATOM Lite / ATOM Matrix(M5Stack)
- M5StickC Proto Hat + CO2センサボード ※1
- M5StickC Proto Hat(M5Stack)
- ATOM Hat(ATOM Mateに含まれる)(M5Stack)
- M5StickC Proto Hat向けCO2センサボード (MK Tech Lab)
- M5StickC Proto Hat用カバー(MK Tech Lab)
※1 の代わりに、こちら で紹介している各種ブレイクアウトボードとの接続でも動作するはずです(未確認)。その際はプログラムの I2C接続のピン番号を接続方法に合わせて変更してください。
- M5StickC Proto Hat に M5StickC Proto Hat用カバー を取り付け、M5StickC Proto Hat の基板を CO2センサボード に入れ替えます。
詳細手順は こちら を参照。 - ATOM Lite / ATOM Matrix に ATOM Hat を取り付けます。
- M5StickC Proto Hat を ATOM Hat に取り付けます。
以下、完成した写真。

プログラム
動作確認した際の開発環境は以下の通り。
- Arduino IDE:1.8.19
- ボード:
以下、ATOM での Arduino IDE 環境のセットアップを参考にインストールします。
https://docs.m5stack.com/en/quick_start/atom/arduino
[ツール]-[ボード]-[ボードマネージャ]- M5Stack 2.0.2
- ライブラリ:
[スケッチ]-[ライブラリをインクルード]-[ライブラリを管理]- M5Atom 0.1.0:https://github.com/m5stack/M5Atom
- Sensirion Gadget BLE Arduino Lib 0.14.0:https://github.com/Sensirion/arduino-ble-gadget
- Sensirion I2C SCD4x 0.3.1:https://github.com/Sensirion/arduino-i2c-scd4x
“Sensirion Gadget BLE Arduino Lib” に含まれる SCD4x 用の BLEガジェット サンプルプログラム “Example8_SCD4x_BLE_Gadget_with_RHT” をベースに、ATOM 用に以下コードの追加・修正を行うだけで簡単に BLE接続でスマホアプリからのモニタが可能になります。
最初に、[ファイル]-[スケッチ例]-[Sensirion Gadget BLE Arduino Lib]-[Example8_SCD4x_BLE_Gadget_with_RHT] を選択、SCD4x 用の BLEガジェット サンプルプログラム を開きます。
まず、M5Atom用のヘッダファイルのインクルードを追加します。
#include "M5Atom.h"
#include "esp_timer.h"
:
続いて、setup() に M5Atom初期セットアップの処理を追加します。
void setup() {
M5.begin(true, false, true);
:
最後に、ATOM Hat での I2C接続に合わせた SDA/SCL のピン番号を指定します。
※Grove互換コネクタ接続時は、接続方法 Grove互換コネクタ のピン番号を指定してください。
接続方法 | SDA | SCL |
---|---|---|
ATOM Hat | 19 | 22 |
Grove互換コネクタ | 26 | 32 |
// init I2C
Wire.begin(19,22);
:
以上でプログラムの追加・修正が完了したので、ボードに “M5Stack-ATOM” を、シリアルポートに ATOM が接続されている COMポートを指定し、”マイコンボードに書き込む” でコンパイル・書き込みを行います。
動作確認
スマホ側のアプリは Sensirion社 から MyAmbience というアプリが提供されており、Android と iOS に対応しています。ダウンロードについては以下 URL の テクニカルダウンロード のリンクを参照。
https://sensirion.com/jp/products/product-catalog/SCD4x-CO2-Gadget/
今回は Android 用のアプリで動作を確認。
まず、ATOM をUSB経由で給電し、スマホの Bluetooth を有効にしてアプリを起動します。
アプリを起動すると Dashboard画面が表示され、ATOM が BLEガジェットとして自動で検出されます。
BLEガジェット名は右上の “Gadget Settings” から変更が可能で、今回は “SCD40 M5Atom 01” に変更しています。
SCD40 は CO2 の他に温度・湿度センサも内蔵しているため、CO2・温度・相対湿度の確認の他、温度・相対湿度から算出可能な 露点温度 Dew Point(℃)、熱指数 Heat Index(℃)、絶対湿度 Abs. Humidity(g/m3) の確認が可能です。
BLEガジェットが複数ある場合、左上の “Single Gadget Mode” をタップして “Multi Gadget Mode” に切り替えると複数同時に確認が可能です。


また、 Plot画面 ではアプリを起動してからの各値について時系列での確認が可能です。
Plot画面でも複数の BLEガジェットの表示に対応しているため、各センサ値の変化を比較して確認することが可能なので便利です。
Plot画面右上の “Export Data” をタップするとセンサデータの CSV形式でのエクスポートも可能です。
まとめ
以上、ATOM Lite と SCD40 を搭載した CO2センサボードで BLEガジェットへの対応、スマホアプリでの確認までの手順の紹介でした。
最初の動作確認した際の様子(Twitter)のように、ATOM用の外付けバッテリ “ATOM TailBat” やスマホ用のモバイルバッテリーなどと組み合わせることで、モニタしたい場所に気軽に持ち運んでスマホで確認したりログの取得を簡単に行うことが可能です。
センサを開発しているメーカーが簡単に BLEガジェット対応可能なライブラリや、スマホアプリまで提供しているのは有難いです。
“Sensirion Gadget BLE Arduino Lib” のサンプルプログラムには SCD4x だけでなく、SCD30 や、最新の PM、RH/T、VOC、NOx の測定が可能な SEN55 など様々なセンサに対応しているので、今後これらのセンサでも試してみたいと思います。