ラズパイで環境データを定期的にBlynkサーバーに送って蓄積し、スマートフォンのBlynkアプリではSUPERCHARTでサーバーからデータを取得して時間的な変化をグラフ化したいです。
下記サイトを参考にiphoneでアプリを起動している時のグラフは見れるようになりました。
ですが、アプリを起動していない時はデータを取得できないのでグラフを見れません。
第4回 温度センサーを接続してグラフにしよう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう
下記サイトではArduinoでのBlynkサーバーへの蓄積の方法を紹介しています。
これをラズパイでやりたいのですが、どうすればいいのでしょうか?
BlynkEnvTimer #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.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 ; // 露点 int brightness = analogRead(A0) ; // 明るさ // 気圧(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) ; Blynk.virtualWrite(V4, brightness) ; } void loop() { Blynk.run() ; timer.run() ; }
試したこと
シェルを実行して数値を取得しているようなので、crontabで1分おきに実行してみました。実行ログを確認すると問題はないようですが、スマホでBlynkを起動すると起動前のデータが取得できていません。
BLYNK_READ_V1.sh
#!/bin/sh ../DHT/dht22.py | grep ^Temp= | awk '{print $2}'
あなたの回答
tips
プレビュー