マトリョーシカ的日常

ワクワクばらまく明日のブログ。

M5StackとAmbientでIoTをはじめる!

https://www.instagram.com/p/BvKZnefnGJu/

M5Stack + Ambient = らくらくIoT

 M5StackをつかってIoTをやってみることにした。調べたらAmbientというサービスを使えばよさそうなことがわかった。AmbientはIoTデータの可視化サービスである。アカウントを登録しチャンネルをもらえば、センサデータをグラフで確認できる。

Ambientの登録方法

Ambient – IoTデーター可視化サービス

 上記のサイトでユーザー登録を行う。終了したらチャンネルを作成する。チャンネルにつけられたリードキーとライトキーをつかってセンサデータのやり取りをおこなう。詳しいマニュアルはこちらにある。
 
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環境が整ってきた!次はモータを使ってなにかを動かしたい!動くものがあるとメカっぽくなるよね。


M5Stack用プロトキット(温湿度センサ付き)

M5Stack用プロトキット(温湿度センサ付き)