SmartNode与物联网:项目1-2 延时灯

学习目标:

  • 理解并能正确完成延时灯的制作;
  • 熟练掌握并能正确使用“改变”和“延时”节点;
  • 熟悉节点间数据传送规则。

一、项目描述

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

image023

图 1 传统的家用灯

 

二、项目分析

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

表 1 项目分析表

项目名称 延时灯
项目功能 当按钮触发时,LED灯变亮一会后自动熄灭
器材清单 按钮、LED灯
工作流程  image025

 

三、基础知识

(一)按钮

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

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

image027

图 2 按钮

  • LED

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

image029

图 3 LED灯

 

  • 节点间数据的传送规则

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

image031

图 4 节点间数据传输案例

 

四、实现过程

(一)硬件连接

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

image033

图 5 “延时灯”连接图

 

  • 流程设计

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

image031

图 6 延时灯参考程序

 

  • 节点设置

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

 image014  image036

图 7 按钮节点及其设置

 

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

 image038  image040

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

 

想一想:

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

 

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

 image042  image044

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

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

 

 image019  image021

图 10  LED节点及其设置

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

  • 效果测试

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

 

  • 挑战自我

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

 

  • 扩展阅读
  • 闪烁灯1

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

image049

图 11 “闪烁灯”程序

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

image051

图 12 传输路径1

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

image053

图 13 传输路径2

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

image055

图 14 传输路径3

  • 闪烁灯2

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

image057

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

 

 

 

发表评论

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

跳至工具栏