M5 ATOM開発日記その2:Wi-Fiに固定IPアドレスで繋いでみる
ATOM弄りシリーズ、次はWi-Fiに繋いでみます。
昔々はスタンドアロンのマイコンからデータを取り出すというのは中々大変で、Arduino用のWi-FiモジュールやBluetoothモジュールは結構良いお値段がする物でした。それが今や1000円ちょいの小さなユニットの中に全部内蔵されてるんですから、いい時代になった物です。
今回はいきなりコードどーん。
#include <M5Atom.h> #include <WiFi.h> #include <HTTPClient.h> const char* SSID = "s-s-i-d"; const char* WIFI_PASS = "password"; const IPAddress IP(192, 168, 0, 2); const IPAddress GATEWAY(192, 168, 0, 1); const IPAddress NETMASK(255, 255, 255, 0); const IPAddress DNS(192, 168, 0, 1); const char* URI = "http://httpstat.us/200"; HTTPClient http; void setup() { M5.begin(true, false, true); if (!WiFi.config(IP, GATEWAY, NETMASK, DNS)) { Serial.println("Failed to configure!"); } WiFi.begin(SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { http.begin(URI); int httpCode = http.GET(); if (httpCode == HTTP_CODE_OK) { String payload = http.getString(); Serial.println(payload); } else { Serial.println("HTTP GET Error."); } http.end(); delay(60000); }
なんとなく分かるかと思いますが、デバイスのIPアドレス固定でWi-Fiに接続し、指定したURLのコンテンツを取ってくるコードです。なぜIPアドレスを固定したいかというと、デバイスに対してpingを打って疎通を確認したいんですね。
今のSwitchbotの温度計でのデータ測定での不満は、デバイス自体の死活を監視できないこと。勿論データの欠測が発生したら落ちたと見なすというのでも代用可能なんですが、直接監視したい、というのがやはり本望でして。
で、別途温度センサーなんかのテストもしたので、そろそろデータをどうやって吸い上げるか、を考える必要が出てきました。
今の流行はMQTTプロトコルで吸い上げるのっぽいので、ちょっと環境を整えつつ色々試してみようかと思います。