前面我们讲到了简易门户报警器的实现。
相关链接:
这次来做一个升级,实现网络报警。
项目需求:
当有人打开门或没关上门时,Micro:bit马上通过无线网络向你报警。
实现原理:
Micro:bit上面有个磁力计,这里可以设定每2秒测量一次磁场强度。当磁场低于某个特定水平(阈值)时,它会发送一个无线信号“door open”。如果磁性读数超过阈值,则会发送“door closed”。
当警报器Micro:bit收到“door closed”信息时,其 LED显示屏上会显示一个勾号。 当收到“door open”无线电讯息时,它会显示一个大叉并发出警报声。
所需材料:
Micro:bit 2个
电池包 2个
磁铁 1个
万能胶或类似工具,用以将磁铁固定在门上,并将Micro:bit固定在门框上。
可选的蜂鸣器或扬声器
鳄鱼夹引线
门户端代码:
from microbit import *
import radio
radio.config(group=17)
compass.calibrate()
radio.on()
while True:
if button_a.was_pressed():
display.scroll(compass.get_field_strength())
if compass.get_field_strength() < 100000:
display.show(Image.DIAMOND_SMALL)
radio.send('door open')
else:
display.clear()
radio.send('door closed')
sleep(2000)
报警端代码:
from microbit import *
import music
import radio
radio.config(group=17)
radio.on()
while True:
message = radio.receive()
if message:
if message == 'door open':
display.show(Image.NO)
music.play(["C4:4"])
if message == 'door closed':
display.show(Image.YES)
离线编辑器:
在线编辑器:
https://makecode.microbit.org/#editor
https://python.microbit.org/v/3?l=zh-CN
进阶:
1、按下Micro:bit上的按键A,以帮助校准磁力的最佳阈值。在MakeCode中将其设置为100 microteslas,与在Python中的10000 nanoteslas相同。
2、使用多个Micro:bit来发送不同的无线电消息(例如“back door open”)以追踪多门的状态。
3、使用变量来计算门保持打开状态的时间。