智能声光控灯

学习目标:

1.理解光强传感器的工作原理并能正确使用“模拟输入”节点;

2.能正确连接并使用光强传感器,声音传感器和LED,完成智能声光控灯的制作;

3.掌握多传感器协同工作的程序编写。

一、项目描述

  随着环境污染越来越严重,节能减排的观念已经慢慢深入人心。日常生活中已经出现了许多低功耗智能化的电器,例如走廊中的智能声光控灯。晚上只要有人走动发出声音,我们智能灯就会点亮,如图 1所示。那么神奇的智能灯我们的Arduino/Genuino101能否做到呢?我们动手试一试吧。

图 1 走廊中的声光控灯

二、项目分析

  制作智能声光控灯需要解决两个问题:1.需要判断外界环境的光强强度;2.当光强强度低时需要判断外界环境声音的强度,只有当声音强度大于一定阙值时点亮LED,否则灯熄灭。项目分析可参考下表1所示:

表 1 项目分析表

项目名称

智能声光控灯

项目功能

当外界环境光强较低并有声音时,触发LED

器材清单

Arduino/Genuino101、扩展版声音传感器、

光强传感器、LED灯

三、基础知识

  (一)光强传感器

  光强传感器也称环境光强传感器,本案例使用的光强传感器是由DFRobot出品的模拟环境光强传感器,如图2所示。该传感器模块可以用来对环境光强的强度进行检测,通常用来制作随光强强度变化产生特殊效果的互动作品。

图2 光强传感器

  光强传感器是一种模拟传感器,它要接到Arduino/Genuino101控制板的模拟口上,值范围为0~1023,光强强弱的不同会输出不同的值,光强越强数值越大,光强越暗数值越小。光强传感器在接线时,黑线接GND,红线接5V,第三根线接模拟针脚。

  (二)“启动开关”节点

“启动开关”节点作为传感器的启动开关来使用,其作用是,当Smart node程序部署到Arduino/Genuino101以后,“启动开关”将会自动向下一节点输入1,作为下一个节点的开关使用。“启动开关”节点如图3所示。

图 3 “启动开关”节点

  (三)多传感器协同工作

  Smart Node采用数据流的形式,这样对于多传感器协同工作的实现与传统编程思想截然不同。在本案例中我们使用声音传感器和光强传感器相结合控制LED的亮灭,核心思路就是实时判断声光强传感器的数值,当大于一定阙值向声音传感器发送“1”,如果没有达到这个阙值时,则向传感器发送“0”。当声音传感器接受“1”时,被触发并以此类推传向下一节点。最终通过判断声音传感器所收集到的数据,来控制LED的亮灭。注:在Smart Node中,当数据“0”经过传感器节点时,节点不会工作;而数据“1”经过时则触发节点。

四、实现过程

  (一)硬件连接

  我们将Arduino/Genuino101、扩展版、声音传感器、光强传感器和LED连接起来,在这里我们将LED连接到数字口5,声音传感器连接到模拟口A0,光强传感器连接到模拟口A5,如图4所示。

图4 “智能声光控灯”连接图

  (二)流程设计

  为了实现智能声光控灯的功能,我们需要实时判断外界光强强度,当强度较低时再判断外界声音强度大小。当外界声音阙值大于一定值时触发LED,使用延时命令在5秒钟后LED自动熄灭,参考程序如图5所示。

图5 “智能声光控灯”参考程序

  (三)节点设置

  为了获取外界光强值,我们需要引用“启动开关”节点。双击“启动开关”节点之后会出现如下图6所示的界面,我们设置输出值为1,作为下一节点的开关使用。

   

图6“启动开关”节点及其设置

   为了获取外界光强值,我们引入Smart Node中的“光强传感器”节点,双击后即可设置,如图7所示。

图7 “光强传感器”节点及其设置

  为了设置外界光强值的阙值,我们双击“判断”节点,如图8所示。点击“+规则”按钮,在下拉框中选择“<”并输入10时并生成连接点1,在下拉框选择“>”输入10并生成连接点2。为了程序的可读性,也可以对节点名称进行设置。

图8 外界光强值的“判断”节点及其设置

  引入“改变”节点可以实现当外界光强值低于一定阙值时触发下一节点,双击“改变”节点即可对于“改变”节点进行设置。在本案例中为了控制让声音传感器的工作和LED灯熄灭,将“改变”节点分别设置“1”或“0”,如图 9所示。

图9 “改变”节点及其设置

  为了获取外界声音值,我们引入Smart Node中的“声音传感器”节点,双击后即可设置,如图10所示。

   

图10 “声音传感器”节点及其设置

  为了设置外界声音值的阙值,双击“判断”节点,如图11所示。点击“+规则”按钮,在下拉框中选择“<”并输入10时并生成连接点1,在下拉框选择“>”输入10,并生成连接点2。

图11 外界声音值的“判断”节点及其设置

“延时”节点设置比较简单,双击后即可根据需要设置延时的时间,如下图12所示。

图 12 “延时”节点及其设置

LED节点的设置也比较简单,只需要对数字口进行设置即可,在本案例中我们设置为数字口2,如图 13所示。

图 13  LED节点及其设置

  通过对以上节点的设置,将各个节点连接起来,就可以实现我们智能声光控灯的程序编写。

  (四)效果测试

  点击“部署”按钮,可以观察LED灯是否可以正常工作。需要注意的是,需要根据实际情况对具体外界环境的光强强度和声音的阙值进行调整。如果不能产生预期的效果,可以老师或同学交流问题所在。最后分享自己的作品和经验。

五、挑战自我

  “智能声光控灯”程序看着很复杂,但是按照节点数据流梳理后也是很简单的。但是有的同学会觉得这样还不是很完善,为了更加精确判断是否有人通过,我们能不能将声音传感器改成红外热释电传感器呢?动手试试吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

跳至工具栏