前回までの状況はこちら。
今回は実際にセンサーの情報をWindows側に送信したいと思います。
ラズパイ側のPythonソースをこのように作成しました。
import json
import urllib.request
import time
from sense_hat import SenseHat
sense = SenseHat()
url = 'http://192.168.1.3:8000'
headers = {
'Content-Type': 'application/json',
}
while True:
temp = int(sense.get_temperature())
hum = int(sense.get_humidity())
press = int(sense.get_pressure())
data = {
'temperature': temp,
'humidity': hum,
'pressure': press,
}
req = urllib.request.Request(url, json.dumps(data).encode(), headers)
with urllib.request.urlopen(req) as res:
body = res.read()
time.sleep(1)
センサーから温度、湿度、気圧の測定データを取得し、このデータをJson形式にして送信しています。
この処理を1秒周期で実行します。
最近のWebAPIは送受信するデータの量が増えてきているので、どのようなデータ形式も一行の文字列で表現できるJsonを使用するのが今の一般的です。
Windows側(サーバ側)の出力はこうなりました。(受信側のコードは前回から変更していません。)
温度と湿度は、ラズパイ本体からの熱の影響を受けているので、実際の部屋の中の数値とは異なりますが、まぁ、良い感じです。
「【ラズパイ】ネットワークでセンサーデータを送信する。」への2件のフィードバック