跳转到主要内容

【教程】《Smart Node与物联网》之延时灯

kelly 提交于


作者:谢作如 张敬云 李守良

第一单元 连接物理世界

项目1-2 延时灯

学习目标:

1、理解并能正确完成延时灯的制作;

2、熟练掌握并能正确使用“改变”和“延时”节点;

3、熟悉节点间数据传送规则。

一、项目描述

物联网是在互联网基础上延伸和扩展的一种网络,核心与基础仍是互联网。在学会使用Smart_Node实现强大的物联网之前,我们需要从基础做起。这节课我们就利用手中的Edison套材制作一个按钮控制的延时LED灯吧,如图 1所示。

图 1 传统的家用灯


二、项目分析

由于Smart_Node采用节点数据流的形式传送数据,因此制作延时灯的关键问题就是控制节点信息传送的流入和流出,并且我们还需要使用“改变”节点和“延时”节点,项目分析可参考下表1所示:

表 1 项目分析表


三、基础知识

(一)按钮

按钮,也称为按键,是一种常用的控制电器元件,常用来接通或断开“控制电路”,从而达到控制电动机或其他电器设备运行目的的一种开关。

我们使用的开关属于按压式的开关数字输入模块,能够实现非常有趣的互动作品,使用方便可以做到“即插即用”。按钮有两种状态,即按下或者放开。如图 2 所示。我们使用的这款按钮按下时1(HIGH),放开是0(LOW),所以按钮模块连接爱迪生控制器的数字口。

图 2 按钮


(二)LED灯

LED灯是最为畅销的入门级产品。它具有可爱的外形、强力的亮度、斑斓的色彩和简单的操作,是入门玩家必备的电子元件。如图 3所示,你可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。LED模块为输入高电平发亮,低电平则灯灭。

图 3 LED灯


(三)节点间数据的传送规则

Smart_Node节点间数据传输采用数据流的形式,默认按照从左到右的形式传输数据。在本案例中由于LED只能接受“0”和“1”两种数据,因此需要引用“改变”节点向LED传送数据。如图 4所示,“按钮”节点触发后将数据传输分成两部分,一部分是直接传入LED节点;一部分传输到“延时”节点和“改变”节点(闭合),最后同样流入LED节点。

图 4 节点间数据传输案例


四、实现过程

(一)硬件连接

我们将Edison、按钮和LED连接起来,在这里我们将按钮连接到数字口11,LED灯连接到数字口5,如图 4 所示。

图 5 “延时灯”连接图


(四)流程设计

为了实现延时灯的功能,我们需要使用按钮触发程序的运行,还需要引入延时模块,延时控制LED亮灭,通过控制节点间的连接方式控制节点间信息的传送,参考程序如图 6所示。

图 6 延时灯参考程序


(五)节点设置

双击“按钮”节点之后会出现如下图7所示的界面,根据自己的需要,我们可以设置数字口为11,触发时间设置为500毫秒。

图 7 按钮节点及其设置


“延时”节点,顾名思义就是将从上一节点的信息延时发送到下一节点。在Smart_Node中已经将延时模块进行了分装,用户只需要拖入并连接即可。此节点的设置也比较简单。如图 8所示,我们选择“行为”下拉框中的“延迟消息”,设置时间为“2秒”。为了程序的可读性,也可以对节点名称进行设置。

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


想一想:

1、什么时候“行为”设置为“延迟消息”、“随机延迟”、“限制范围”和“基于主题的公平队列”呢?他们之间有什么区别?

“改变”节点主要功能是对传入的信息进行条件分配。其作用相当于编程语言中的switch和if else分支,点击左下角“+规则”添加分支。在本案例中为了控制LED灯熄灭,我们将“规则”设置为0,如图 9所示。

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


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

图 10 LED节点及其设置


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

(六)效果测试

点击“部署”按钮,按下按钮后可以观察LED灯是否正常延时的效果。需要注意的是,只有当按钮按下的时间超过impulse(触发)时间,按钮才能触发下一节点。如果不能产生预期的效果,可以老师或同学交流问题所在。最后分享自己的作品和经验。

五、挑战自我

“延时灯”的制作很简单吧,大家已经对对于Smart_Node节点间数据传输有了一定的了解,那么请同学们能不能实现按钮按下LED亮,再按下LED灭的效果呢?动手试试吧。

六、扩展阅读

(一)闪烁灯1

通过制作延时灯,我们对于Smart_Node节点间的数据传输有了进一步的了解,接下来我们就动手制作一个闪烁灯吧。当按钮按下时,LED一会亮一会灭,像星星眨眼一样。程序如图 11所示,我们将两个“改变”节点的参数分别设置为1和0,并分别命名为“开启”和“闭合”,按钮针脚设置为5,LED设置为11。

图 11 “闪烁灯”程序


程序数据传输分成三部分:1、当触发按钮时,数据从“按钮”节点流出进入“延时2s(上)”节点,延时2s后,通过“开启”节点最后流入LED节点,0-2s,LED是熄灭的;如图 12所示:

图 12 传输路径1


2、数据通过“延时2s(上)”节点后,流入下面的“延时2s(下)”节点,再延时2s后通过“闭合”节点后流入LED节点,2-4s,LED是亮的,如图 13所示。

图 13 传输路径2


3、通过“延时2s(下)”节点再重新流入“延时2s(上)”节点,4-6s,LED是熄灭的。如图 14所示,以此类推。

图 14 传输路径3


(二)闪烁灯2

除了这种方式制作闪烁灯外,我们的Smart_Node已经专用的闪烁灯节点,通过此节点制作闪烁灯就很简单了。我们将按钮针脚设置5,LED针脚设置为11。运行程序后就可以发现LED像星星眨眼了,如图 15所示。

图 15 使用“闪烁灯”节点的程序

文章来源:Smart Node