温湿度計作り (4) : Raspberry PiでのBluetooth接続
Raspberry Piに無線で入れるようになったし、センサデータをいい感じに無線で出力できるようなものを作りたいなと思い、Bluetooth接続にトライしてみました。
参考にしたのは下記ページです。
https://qiita.com/oko1977/items/9f53f3b11a1b033219ea
こちらを参考にBluetoothの初期設定を行い、センサデータをBluetoothで出力しました。
*****************
import Adafruit_DHT as DHT
import subprocess
import time
SENSOR_TYPE = DHT.DHT22
DHT_GPIO = 22
h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO)
print("Temp= {0:0.1f} deg C" . format(t))
print("Humidity= {0:0.1f} %" . format(h))
num = 100
for i in range (num):
h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO)
print("Count",i+1,sep=":")
cmd = "sudo echo " + str(t) + "> /dev/rfcomm0"
subprocess.run(cmd,shell=True)
cmd = "sudo echo " + str(h) + "> /dev/rfcomm0"
subprocess.run(cmd,shell=True)
*****************
こちらでシリアル通信をして、Teratermで受信した信号を出力したところ、想定どおりのデータが得られました。
Teratermでは見るのもいまいちなので、受信するPC側のPythonコードも用意しました。
*****************
[PC]
import serial
import platform
ser = serial.Serial('COM4', 9600)
print(ser.name)
for i in range(20):
line = ser.readline()
temp = float(line.strip().decode('utf-8'))
line = ser.readline()
humidity = float(line.strip().decode('utf-8'))
print(temp,humidity,sep=" --- ")
ser.close()
*****************
出力結果も以下のとおりに得られました。
…っと、ここまで着手したのですが、いまいち使い勝手のよいシステムがイメージできず。ここでBluetoothの実装を止めてしまいました。
携帯やPCから簡単にセンサデータを確認できるようなものを作りたかったのですが、Bluetooth接続の設定自体が簡単には扱いづらく。。パソコンとRaspberry Piの接続が何故か切れたりすることがあり、設定しなおしが面倒で、ここで手を止めることになりました。(良い実装方法があればアイデア募集です)