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環境があれば電源をつけるだけで勝手にクラウドに自動でデータを記録してくれるデバイスができました。楽しいです。