micro:bitで温度を測定して、無線で計測データを受信側micro:bitで受け取る

micro:bitで温度を測定して、無線で計測データを受信側micro:bitで受け取る。

前回の続き。
micro:bitでUARTと無線通信をブリッジし、シリアル通信を無線化するのを試してみた

温度を計測して、無線で送信するプログラムを書いてみた。

import radio
from microbit import display, Image, sleep, temperature

display.show(Image.HAPPY)
radio.on()
while True:
    s="t = "+str(temperature())+"\r\n"
    radio.send_bytes(s)
    sleep(5000)

5秒ごとに温度の計測値を無線で送信する。
受信側は前回のプログラムを使って、無線の受信データをUSB-UARTポートに送信するようにして、受信データをPCのTeraTermで受け取ってみた。

ただし、micro:bitの温度センサーは気温の測定をしているのではなく、CPUの温度の計測値なので実際の気温よりもちょっと高めの値が出ている。
気温をちゃんと測るならば、I2Cバスに気温用の温度センサーを取り付けて測定するのがよいだろう。

無線はBLE(Bluetooth Low Energy)ではなく、Nodric Semiconductorの独自の方式の無線を使っている。
今回は、送信側1台と受信側1台でテストをしているのだが、同時に2カ所とかそれ以上の場所の気温を測定して、無線で受け取るというのも原理的には可能だ。
BLEでは1対多数の通信をするものを作るのは難しいが、Nodric Semiconductorの独自の方式の無線ならこのソフトのままで複数が通信できる。
送信側にID番号を付けて、測定値と一緒に送る必要がある。送信のタイミングがぶつかるとパケットは受信できないので、受信側からID番号を付けて計測のリクエストを出して応答を返して貰うようにするのがよいだろう。

micro:bitを追加でもう1個買ったら、送信側2台と受信側1台というのを試してみる予定だ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

22 − 14 =