m5stackめちゃくちゃ好きで、いろいろ使っているんですが、ちょっと必要に迫られて、
車の中の温度を監視したくなったので、作ってみます。
ユースケースとしては
・炎天下で車を駐車場に止めておいた時にトランク内や車内の温度を遠隔で把握したい
(冷凍食品が入ってるとか、ペットを車内に残して買い物に行かないといけないといった場合)
・家を留守にするにする際、室内の温度を把握したい
(植物を育てているとか、ペットを飼ってるとか)
なんかを想定してます。
まず、今回使ったデバイスはこちら
・m5stack ATOM S3
・M5stack用温湿気圧センサーユニット
センサーユニットで測定した温度をLineで通知するプログラムを書きたいと思います。
Lineで通知するためにはトークンが必要になります。発行はこちら
で実際に今回書いたコードは↓
・Line Nortifyトークン
・wifiの設定
を記載すればこのまま使えると思います。
#include <M5AtomS3.h>
#include <WiFiMulti.h>
#include <HTTPClient.h>
#include "M5_ENV.h"
WiFiMulti wifiMulti;
HTTPClient http;
String lineToken = "Line Nortifyトークン";
SHT3X sht30(0x44, 2);
int tmp = 0;
int hum = 0;
void setup() {
M5.begin(true, true, false, false);
Wire.begin(2, 1);
M5.Lcd.fillScreen(WHITE);
// ####### 無線Wi-Fi接続 #######
wifiMulti.addAP("SSID","パスワード");
// ####### 無線Wi-Fi複数接続の可能性があれば記載しておく #######
wifiMulti.addAP("SSID二つ目","パスワード二つ目");
if (wifiMulti.run() == WL_CONNECTED) {
USBSerial.println("");
USBSerial.println("WiFi connected");
USBSerial.println("IP address: ");
USBSerial.println(WiFi.localIP());
}
}
void loop() {
while (wifiMulti.run() != WL_CONNECTED) {
M5.Lcd.fillScreen(WHITE);
USBSerial.println("Re-connecting...");
delay(1000);
}
if (sht30.get() == 0) {
tmp = sht30.cTemp;
hum = sht30.humidity;
} else {
tmp = 0, hum = 0;
}
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(10, 10);
M5.Lcd.setTextSize(10);
M5.Lcd.print(tmp);
http.begin("https://notify-api.line.me/api/notify?message=" + String(tmp));
http.addHeader("Authorization", "Bearer " + lineToken);
int httpResponseCode = http.POST("");
//10分おきに通知する
delay(600000);
}
完成!
あとはWifi環境を用意して、実際に使ってみます。
What do you think?
Show comments / Leave a comment