先日、ATOM Liteの環境構築、および動作確認を行いました(記事は こちら)。
それでは早速、スケッチをつくってみたいと思います。
ATOM Liteは、安価なIoTデバイスとして使いたいと考えているので、ATOM Liteにセンサをつなぎ、データを採取してみることにします。
今回は、ATOM Liteに「M5Stack用環境センサユニット」をつなぎ、温度と湿度を採取します。
リンク
リンク
Arduino IDEで、「ファイル」>「スケッチ例」>「M5StickC」>「Unit」>「ENV」を開き、ATOM Lite向けに修正します。
修正項目は以下のとおりです。
- ATOM用ライブラリをインクルード
- I2Cのためのポート番号を変更
- 今回は、温度と湿度のみを採取するので、気圧採取のための記述を削除
- LCDに採取データを表示できない代わりに、データ採取時にLEDを点灯
#include "M5Atom.h" #include "DHT12.h" #include <Wire.h> DHT12 dht12; void setup() { M5.begin(true, false, true); delay(50); M5.dis.drawpix(0, 0xf00000); Wire.begin(26, 32, 100000); } void loop() { M5.dis.drawpix(0, 0x00f000); float tmp = dht12.readTemperature(); float hum = dht12.readHumidity(); Serial.printf("Temp: %2.2f*C Humi: %0.2f%%\r\n", tmp, hum); delay(100); M5.dis.drawpix(0, 0xf00000); delay(900); }
動作結果は以下のとおりです。
1秒毎に、ATOM LiteのLEDが緑から赤に変わり、シリアルモニタに、温度と湿度が表示されます。
次に、ATOM LiteをWi-Fiにつなぎ、採取したデータをクラウドに送りたいと思います。
AmbientというWebサービスを使います。Ambientでは、マイコンなどから送られたセンサデータを、簡単に受信・蓄積・可視化(グラフ化)することができます(Ambientについては こちら)。
スケッチは以下のとおりです。
#include "M5Atom.h" #include "DHT12.h" #include <Wire.h> #include "Ambient.h" DHT12 dht12; WiFiClient client; Ambient ambient; const char* ssid = "XXXXXXXX"; const char* password = "XXXXXXXX"; unsigned int channelId = XXXXX; const char* writeKey = "XXXXXXXX"; void setup() { M5.begin(true, false, true); delay(50); M5.dis.drawpix(0, 0xf00000); Wire.begin(26, 32, 100000); WiFi.begin(ssid, password); while(WiFi.status()!=WL_CONNECTED) { delay(500); Serial.print("."); } Serial.print("\r\nWiFi connected\r\nIP address: "); Serial.println(WiFi.localIP()); ambient.begin(channelId, writeKey, &client); } void loop() { M5.dis.drawpix(0, 0x00f000); float tmp = dht12.readTemperature(); float hum = dht12.readHumidity(); Serial.printf("Temp: %2.2f*C Humi: %0.2f%%\r\n", tmp, hum); ambient.set(1, tmp); ambient.set(2, hum); ambient.send(); delay(100); M5.dis.drawpix(0, 0xf00000); delay(9900); }
ATOM Liteにスケッチを書き込み、しばらくたってから、Ambientでデータをグラフ表示してみます。
途中でしばらく、環境センサユニットを握っていたので、その期間だけ、温度、湿度とも、急激に上昇しています。
非常に簡単に、IoTデバイスが実現できました。
データ観測場所に置きっぱなしになるIoTデバイスは、表示機能が不要なケースも多いので、ATOM Liteは安価なデバイスとして、さまざまな用途が考えられそうです。