ATOM Liteでできること 〜ATOM Liteで環境センサユニットを使う

スポンサーリンク
ATOM Lite

先日、ATOM Liteの環境構築、および動作確認を行いました(記事は こちら)。

それでは早速、スケッチをつくってみたいと思います。
ATOM Liteは、安価なIoTデバイスとして使いたいと考えているので、ATOM Liteにセンサをつなぎ、データを採取してみることにします。

今回は、ATOM Liteに「M5Stack用環境センサユニット」をつなぎ、温度と湿度を採取します。

ATOM Lite(Yahoo!ショッピング)

M5Stack用環境センサユニット(ENV III)(Yahoo!ショッピング)

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は安価なデバイスとして、さまざまな用途が考えられそうです。

 

なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。