Blynkの使用例では、IoTデバイスを対話的に操作する例が多いですが、ここではThingSpeakを利用するアプリケーションと同様に、計測データをIoTプラットフォーム(この場合はBlynkサーバー)に蓄積して、現時点のIoTデバイスの計測値ではなく、サーバーに蓄積された計測値の継時変化を表示するためのスケッチを示します。
#define BLYNK_PRINT Serial #include <WiFi.h> #include <WiFiClient.h> #include <BlynkSimpleEsp32.h> #include <BME280I2C.h> #include <Wire.h> // BlynkのAuth Tokenを設定 char auth[] = "YOURAPPAUTHTOKEN" ; char ssid[] = "YOURSSID" ; char pass[] = "YOURPASSWORD" ; #define SLEEP_MINUTES 1 BME280I2C bme; #define PRESSURE_HPA 1 // ヘクトパスカル BlynkTimer timer ; void setup() { Serial.begin(115200) ; while (!bme.begin()) { delay(1000) ; } Blynk.begin(auth, ssid, pass) ; // サーバーへのデータの送信間隔をミリ秒で指定 timer.setInterval(SLEEP_MINUTES * 60 * 1000L, sendEnv) ; } void sendEnv() { float temp ; // 温度 float hum ; // 湿度 float pres ; // 気圧 float dew ; // 露点 // 気圧(hPa)、温度(摂氏)、湿度を取得 bme.read(pres, temp, hum, true, PRESSURE_HPA) ; dew = bme.dew(true) ; // 露点(摂氏)を取得 Blynk.virtualWrite(V0, temp) ; Blynk.virtualWrite(V1, hum) ; Blynk.virtualWrite(V2, pres) ; Blynk.virtualWrite(V3, dew) ; } void loop() { Blynk.run() ; timer.run() ; }
このスケッチは、PUSH型のIoTデバイスとなっており、スマートフォンのBlynkアプリの実行の有無にかかわらず、指定した間隔で環境データをBlynkサーバーに送信します。
このため、スマートフォンBlynkアプリが実行されていなかった機関の計測データも含めていつでも参照することができます。