You are here

ESP32: Blynkで環境ログ(データの蓄積利用)

Blynkの使用例では、IoTデバイスを対話的に操作する例が多いですが、ここではThingSpeakを利用するアプリケーションと同様に、計測データをIoTプラットフォーム(この場合はBlynkサーバー)に蓄積して、現時点のIoTデバイスの計測値ではなく、サーバーに蓄積された計測値の継時変化を表示するためのスケッチを示します。


IoTデバイス(ESP8266-LEAF-R5)から環境データを定期的にBlynkサーバーに送って蓄積し、スマートフォンのBlynkアプリではHistory Graphでサーバーからデータを取得して時間的な変化をグラフ化します。

#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アプリが実行されていなかった機関の計測データも含めていつでも参照することができます。


使用パーツ


開発ソフト: 
チップファミリー: 
MCUチップ: