micro:bitで温度センサ(TMP102)の温度計測値を無線で飛ばしてみた。
昨日の温度センサの話の続きだ。
プログラムは次のように書いてみた。
import radio from microbit import display, Image, sleep, i2c, pin19, pin20 display.show(Image.HAPPY) radio.on() i2c.init(freq=10000, sda=pin20, scl=pin19) addr = 0x49 while True: i2c.write(addr, b'\x00') data1, data2 = i2c.read(addr, 2) d = (data1*256+data2)/16 if data1 >= 128: t1 = (d-4096)*128/2047 else: t1 = d*128/2047 s = "t = "+str(t1)+"\n\r" radio.send_bytes(s) sleep(5000)
前に作ったmicro:bitで温度測定して無線通信するプログラムを改造して、TMP102の温度計測用プログラムの計測部分に差し替えて作ってみた。
受信側は前と一緒のプログラムを使う。
import radio from microbit import display, Image, sleep, uart display.show(Image.HAPPY) radio.on() uart.init(baudrate=9600, bits=8, parity=None, stop=1) while True: if uart.any(): s=uart.read() radio.send_bytes(s) t=radio.receive_bytes() if t is not None: uart.write(t)
受信側のプログラムを動作させたmicro:bitはPCに接続し、PCでTeraTermなどのターミナルソフトで通信内容を受信する。
あるいはPCで受信する代わりにM5stackを使って受信させるというのもよいだろう。
→ M5Stackとmicro:bitを合体させてみる