IoT開発スタートブック ── ESP32でクラウドにつなげる電子工作をはじめよう!の内容のとおりESP32とセンサーで温度と湿度を計測してクラウドのデータストレージ&可視化サービスであるAmbientにデータを送信するところまでをやりました。センサーは本と違ってAM2320を使っています。
成果物
本と違うところ
WiFi接続のためのパスワードを平文で書くのが嫌だったのでハッシュ化しました。ハッシュ化にはこちらの記事を参考にさせてもらっています。
コード
ほとんど本の通りですがAM2320を使用しています。
#include <Ambient.h> #include <WiFi.h> #include "Adafruit_Sensor.h" #include "Adafruit_AM2320.h" const char* ssid = ""; const char* password = ""; WiFiClient client; Ambient ambient; unsigned int channelId = 14748; const char* writeKey = "580604716603c1d1"; Adafruit_AM2320 am2320 = Adafruit_AM2320(); void setup() { Serial.begin(115200); while (!Serial); //WiFiに接続 WiFi.begin(ssid, password); while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); Serial.println(WiFi.localIP()); ambient.begin(channelId, writeKey, &client); if(!am2320.begin()){ Serial.println("ERROR: Did not find AM2320"); while (true) ; } } void loop() { float temp = am2320.readTemperature(); float humid = am2320.readHumidity(); Serial.printf("Temp: %.2f, humid: %.2f\r\n", temp, humid); ambient.set(1, temp); ambient.set(2, humid); ambient.send(); delay(60 * 1000); }
これでWi-Fi環境があれば電源をつけるだけで勝手にクラウドに自動でデータを記録してくれるデバイスができました。楽しいです。