Arduinoで温度・湿度のデータを取得し、
PCにデータを送り、
変化を図でリアルタイムに表示したい。
その際にデータをどう取り扱えばいいのか分からない
■開発環境
・Arduino
・python3.6
・windows10
①Arduino側からデータ取得
まず、下記コードで温度と湿度のデータを取得
#include <DHT.h> #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); const int PIN_DHT = 8; DHT dht(PIN_DHT,DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(3000); float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); Serial.print(humidity); Serial.print(temperature); }
取得データは下記のようになる
23.6、40
23.5、40
23.6、41
:
②ArduinoとPCの通信
次に下記のようにArduinoからデータを取得。
import serial import time def main(): ser = serial.Serial('COM4', 9600) time.sleep(5) while True: str = ser.read(10) print(str.decode()) time.sleep(0.01) if __name__ == '__main__': main()
取得データは下記のようになる
23.6、40.2
23.5、40
23.6、41.1
:
③PC側で取得データの処理
温度と湿度のデータをグラフにプロットしたい。
しかし、データの格納の仕方が分かりません。
例えば、
x.strip() for x in str.decode().split(',')
でデータを分割すればいいと思いましたが、
改行をうまく処理できずに下記のようになります。
["40.2\r\n23.5"]
ご指摘頂けないでしょうか?
何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/28 06:49
2018/06/28 06:52
2018/06/28 06:57