みなさん、こんにちは。
IoTシステムに興味はあるけれど、どこから手を付けていいか分からないという方も多いのではないでしょうか。
IoTの第一歩として、環境センサーのデータを可視化してみるのは非常におすすめです。温度、湿度、気圧といった身近なデータをグラフで「見える化」することで、私たちの周りの環境がどのように変化しているのかを直感的に把握できます。
実はセンサーから値を取得するだけなら比較的簡単ですが、そのデータを分かりやすくグラフにするのは意外と手間がかかるものです。しかし、ご安心ください。最近ではAmbientのようなIoTプラットフォームが充実しており、データの可視化が驚くほど簡単にできるようになりました。
今回は、手元にあったM5StickCという小型マイコンと、無料で使えるIoTプラットフォームAmbientを使って、環境センサーの値を簡単に可視化する方法をご紹介します。
M5StickCは、ESP32という小型マイコンを搭載したボードで、専用のHat(拡張ボード)を装着することで、様々なセンサーを手軽に利用できます。今回は「M5StickC ENV Hat」を使って、温度、湿度、気圧、電圧のデータを取得していきます。
用意するもの
- M5StickC
初代StickCを使用します。M5StickC Plusをお使いの場合は、プログラムのヘッダファイルをM5StickCPlus.h
に変更する必要があります。 - M5StickC ENV Hat
DHT12/BMP280/BMM150センサーを搭載した初代モデルです。作業を始める前に、M5StickCに装着しておきましょう。ENV Hat IIやIIIをお使いの場合は、センサーが異なるためプログラムの修正が必要です。
1. Ambientの準備
まずは、データを可視化するためのAmbient側の設定を行いましょう。
- Ambientのウェブサイトにアクセスし、アカウントを作成します。
- 新規チャンネルを作成します。
- 作成したチャンネルのチャンネルIDとライトキーを控えておきましょう。これらは後ほどプログラムに設定します。
- チャンネル設定で、データの項目を設定します。この順番が重要なので、以下の通りに設定してください。
- データ1: 温度
- データ2: 湿度
- データ3: 気圧
- データ4: 電圧
- 必要に応じて、チャートの設定もしておきます。
- チャートは複数作成できます。私のダッシュボードは以下の通りです。
2. Arduino IDEの準備
次に、M5StickCにプログラムを書き込むための開発環境を整えましょう。
- Arduinoの公式サイトからArduino IDEをダウンロードし、インストールします。
- Arduino IDEを起動し、以下の設定を行います。
- ボードマネージャーを開き、「esp32」を検索してインストールします。
- ライブラリマネージャーを開き、以下のライブラリをそれぞれ検索してインストールします。
M5StickC
Ambient ESP32 ESP8266 lib
Adafruit BMP280 Library
3. プログラムの修正
いよいよM5StickCに書き込むプログラムの準備です。今回はAmbient公式のサンプルプログラムをベースにします。
- プログラムをGithubよりクローンします。
git clone https://github.com/taoman26/m5stickc_env_ambient.git
gitがインストールされていない場合は Download ZIP からZIPファイルをダウンロードして展開してください。 - クローンもしくは展開したフォルダに入り、
m5stickc_env_ambient.ino
をArduino IDEで開きます。
ファイル構造は変更しないでください。 - 以下の箇所をご自身の環境に合わせて修正します。
- 17行目の
your_ssid
を、使用するWiFiのSSIDに書き換えます。18行目のyour_password
を、WiFiのパスワードに書き換えます。20行目のCHANNEL_ID
を、Ambientで控えておいたチャンネルIDに書き換えます。21行目のWRITE_KEY
を、Ambientで控えておいたライトキーに書き換えます。
※このプログラムは、Ambient公式のサンプル「M5StickCで小型環境センサ端末を作る」を流用しています。 - 17行目の
4. M5StickCへの書き込みと実行
最後に、M5StickCにプログラムを書き込みます。
- M5StickCをUSBケーブルでPCに接続します。
- Arduino IDEの「ツール」メニューから、以下の設定を行います。
- ボード:
esp32
>M5StickC
を選択します。 - ポート: 接続しているM5StickCのCOMポートを選択します。
- ボード:
- Arduino IDEの左上にある「チェック」ボタン(検証)をクリックして、プログラムにエラーがないか確認します。エラーがなければ、ビルドは成功です。
- 次に、「→」ボタン(書き込み)をクリックして、M5StickCにプログラムを書き込みます。書き込みが正常に完了すると、M5StickCが再起動し、プログラムが自動的に起動します。
これで、M5StickCが5分ごとにAmbientに環境センサーデータを送信し、Ambient上でグラフとして可視化されるようになります。ちなみにAmbientの無料プランでは、過去4ヶ月分のデータを参照できます。
現在入手できるM5StickCとENV Hatについて
本記事執筆時点では、初代M5StickCとM5StickC ENV Hatは販売終了しているようです。現在入手可能なのはM5StickC PlusとM5StickC ENV Hat II/IIIが主流です。
もしこれらの新しいモデルをお使いの場合は、プログラムの修正が必要になります。具体的には、使用するヘッダファイルの変更や、ENV Hat II/IIIに搭載されているセンサー(SHT30、BMP280、BMM150など)に合わせてライブラリやコードを修正する必要があります。
これは、IoTシステムの基礎力を向上させる良い機会になるはずです。ぜひこの機会に、環境センサーの可視化にチャレンジして、自分だけのIoTシステムを構築してみてください。
本日も最後までお読みいただきありがとうございました。
それでは、よいIoTライフを!