有个宝箱强盗,喜欢把宝物藏在山洞里,想要打开山洞的大门需要说一句暗号“芝麻开门”,这个秘密被一个叫阿里巴巴的穷人知道了,他打开了大门,里边的财宝好多啊,搬也搬不完,聪明的阿里巴巴想,我可得想个办法,改掉进入山洞的密码,哈哈,强盗也进不去,这个密码要能不断的改变,还能接收到。
材料清单
- Arduino Uno X1
- micro:bit X2
- OBLOQ物联网模块 X3
- 180°舵机模块 X4
- 小MU视觉传感器 X5
- 单神经元 X6
- 麦克风模块 X7
- 录音模块 X8
- 导线若干 X9
步骤1 实现芝麻开门
使用Arduino Uno,将OBLOQ模块的绿线接D0,蓝线接D1,单神经元前端接麦克风模块,后端接D4,录音模块录取石头门开音效接D10,左右开门舵机分别接D12和D13。在单神经元学习过程中用麦克风录下芝麻开门,将下列程序写入,在单神经元运行时对麦克风喊芝麻开门,数字4引脚给高电平,打开石门并放出音效,过10S关门。
步骤2 实现动态密码
在本文中实现动态密码的是视频传感器中的卡片识别功能,识别勾、差、圈。先使用一个变量随机赋一个1至3之间的值,规定为1,通过物联网向平台设备发gou,为2向物联网平台发cha,为3向物联网平台发quan。Obloq mqtt初始化旁的工具钮需要根据物联网平台设定的值给入。注意本例中Obloq的串口为硬串口,下载程序时需要把D0,D1拔出来。
使用Micro:bit和拓展模块与视频传感器小MU实现I2C传输(使用Mind+编程比较方便就多使用了一个控制器),规定收到√时P1为高电平,收到×时P2为高电平,收到⚪时P1和P2都输出高电平。并连接RGB灯增加山洞氛围。
连接P1至UNO的D2,连接P2至UNO的D3,在UNO中重新编回1至3,与随机数字作比较,一致时开门,并把所有变量清零,以便形成下一次的动态密码。
Joannali2019.08.22
可以把为什么使用动态密码,以及动态密码的逻辑写清楚,会更加好玩一些。