M5Stack + Ambient = らくらくIoT
M5StackをつかってIoTをやってみることにした。調べたらAmbientというサービスを使えばよさそうなことがわかった。AmbientはIoTデータの可視化サービスである。アカウントを登録しチャンネルをもらえば、センサデータをグラフで確認できる。
Ambientの登録方法
上記のサイトでユーザー登録を行う。終了したらチャンネルを作成する。チャンネルにつけられたリードキーとライトキーをつかってセンサデータのやり取りをおこなう。詳しいマニュアルはこちらにある。
Ambientを使ってみる – Ambient
Ambientライブラリのインポート
次にライブラリをインポートする。下記リンクの「Clone or download」をクリックし、ZIPファイルをダウンロードする。
GitHub - AmbientDataInc/Ambient_ESP8266_lib: IoTデーター可視化サービス「Ambient」のESP8266/ESP32用ライブラリーと、温度・湿度センサー、心拍モニター、消費電流モニターなどのサンプルプログラムです。
次にArduino IDEを立ち上げ、「スケッチ」>「ライブラリをインクルード」>「.ZIP形式のライブラリをインストール」 を選択。ダウンロードしたZIPファイルを選択する。これで完了。
↓ここに詳しいやり方が書いてある。
Arduino ESP8266で温度・湿度を測定し、Ambientに送ってグラフ化する – Ambient
コード
とりあえずセンサーなどは使わずに、Wi-Fiの通信がうまくいくかだけを確かめることにした。こんなかんじ。
#include <M5Stack.h> #include <Wire.h> #include "Ambient.h" #define PERIOD 60 WiFiClient client; Ambient ambient; const char* ssid = "******"; /*ここを書き換える*/ const char* password = "******"; /*ここを書き換える*/ unsigned int channelId = *****; // AmbientのチャネルID const char* writeKey = "*****"; // ライトキー int number = 1; unsigned long t; void setup(){ M5.begin(); Wire.begin(); // I2Cの初期化 Serial.begin(74880); delay(100); M5.Lcd.println("\r\nM5Stack+BME280->Ambient test"); WiFi.begin(ssid, password); // Wi-Fi APに接続 while (WiFi.status() != WL_CONNECTED) { // Wi-Fi AP接続待ち delay(100); } M5.Lcd.print("WiFi connected\r\nIP address: "); Serial.println(WiFi.localIP()); ambient.begin(channelId, writeKey, &client); // チャネルIDとライトキーを指定してAmbientの初期化 } void loop() { number = (number+1) % 10; ambient.set(1, number); ambient.send(); M5.Lcd.println(number); delay(6000); }
- ssid と password はWi-Fiのルータなどに書いてある。いつも使用しているやつを使う。
コードを書き込みしてディスプレイに数字が表示されるようになったら自分のチャンネルページを確認して欲しい。リアルタイムでグラフが更新されるはずだ。
おわりに
どんどんIoT環境が整ってきた!次はモータを使ってなにかを動かしたい!動くものがあるとメカっぽくなるよね。
- 出版社/メーカー: スイッチサイエンス
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る