8. 案例06 智能遥控开门器

8.1. 目的


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

8.2. 使用材料


../../_images/NKJyemH.jpg

8.3. 背景知识


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

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

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

模拟噪音传感器原理

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

8.4. 结构场景搭建


  • 准备剪刀,胶水和一些瓦楞纸板。

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

../../_images/CKIwMbh.jpg ../../_images/Svav9XC.jpg

  • 搭建成如图样式:

正面:

../../_images/cHJ6Tup.jpg

背面:

../../_images/oTuc2q4.jpg

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

../../_images/ztjY4AQ.jpg

8.5. 硬件连接图


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

8.6. 软件


微软makecode

8.7. 编程


步骤 1

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

../../_images/smart_home_kit_case_01_01.png

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

../../_images/smart_home_kit_case_01_02.png

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

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

步骤 2

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

../../_images/smart_home_kit_case_06_03.png

步骤 3

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

../../_images/smart_home_kit_case_06_04.png

步骤 4

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

../../_images/smart_home_kit_case_06_05.png

步骤 5

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

../../_images/smart_home_kit_case_06_06.png

程序

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

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

---

8.8. 结论


  • 当检测到人,需要开门,OLED显示屏显示“somebody out”。

  • 按下按钮,门自动打开3秒,三秒过后门自动关闭。

  • 没有检测到人时,OLED显示屏显示“Nobody”。

../../_images/ioUPGkB.gif

8.9. 思考


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

8.10. 常见问题


8.11. 相关阅读