跳到主要内容

案例06 智能遥控开门器

目的


  • 制作一个“智能遥控开门器”。

使用材料


背景知识


  • 模拟噪音传感器电子积木是一种能够感受外界噪声信号的电子积木。它可用于感知和检测人的声音。

什么是“智能遥控开门器”

  • 当你忙于自己的琐事,或者正在看的电视节目到了精彩片段,正在玩的游戏到了关键时刻,有朋友到访,你却无暇起身开门。制作一个智能遥控开门器,轻轻一按,将门打开。

模拟噪音传感器原理

  • 当模拟噪音传感器电子积木接收到人的声音,发送数据到micro:bit,micro:bit通过OLDE显示器提醒主人,主人按下按钮,控制舵机将门打开。

结构场景搭建


  • 准备剪刀,胶水和一些瓦楞纸板。
  • 在纸板上贴好你准备好的小纸片,并将瓦楞纸板剪裁成需要的样子。

  • 搭建成如图样式:

正面:

背面:

将元器件按如图摆放黏贴。

硬件连接图


扩展板P1口连接模拟噪音传感器电子积木 扩展板P2口连接碰撞电子积木 扩展板P8口连接180度舵机 micro:bit连接上电池盒

软件


微软makecode

编程


步骤 1

在MakeCode的代码抽屉中点击“高级”,查看更多代码选项。

为了给智慧家居套件编程,我们需要添加一个代码库。在代码抽屉底部找到“扩展”,并点击它。这时会弹出一个对话框。搜索“smarthome",然后点击下载这个代码库。

注意:如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可

注意:如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

步骤 2

从“基本”中拖出一个“当开机时”积木块,然后拖入“LED 启用”积木块,设置为“false” 即关闭micro:bit的led显示; 点击“高级”,选择“引脚”,点击“更多”,拖出“设置拉”积木块,将P2口的电压设置为高电平,用于提供一个稳定的电压; 初始化OLED ,拖入initialize OLED积木块。 拖入“向伺服机构引脚” 积木块,将P8口设置为180,即将舵机的初始状态设置为关门状态。 最后将开门的变量设置为open,将开门这个变量的初始化值设置为不开门,即false。

步骤 3

初始化变量noise,用来保存接收到的噪声的数值; 在“无限循环”中,将P1口接收到的噪声的值,传输到noise变量中保存; 判断噪声值是否大于70分贝,当大于70分贝,说明有人来敲门了,在OLED显示器上显示“somebody out”; 拖入clear OLED display和show string 模块用来显示提示信息。

步骤 4

判断从碰撞传感器模块传来的值的变化,使用积木块“数字读取引脚”积木块读取碰撞传感器的值,即P2口的值的变化情况; 设置P2引脚的值为0,设置open变量的值为开门,即代码“将‘open’设为‘非false’”; 判断门是否应该被打开,open变量的值为true,使用“向伺服机构引脚”,将P8口的舵机的值设置为0; 然后设置暂停时间三秒钟,即开门时间为三秒钟。

步骤 5

当前面两个的判断不成立时,设置舵机状态为舵机为180度状态,然后OLED显示屏显示nobody,即无需开门。

程序

请参考程序连接:https://makecode.microbit.org/_htqEPX30qYKL

你也可以通过以下网页直接下载程序。

结论


  • 当检测到人,需要开门,OLED显示屏显示“somebody out”。
  • 按下按钮,门自动打开3秒,三秒过后门自动关闭。
  • 没有检测到人时,OLED显示屏显示“Nobody”。

思考


  • 吹太久风扇,觉得有点冷? 想要控制风扇自动开关,该如何设计编程呢?

常见问题


相关阅读