Page Title

第9课 使用电机——物联网智能家居


2019-08-01 14:20:27

图片.png 

在智能家居系统中,人们常常利用手机APP远程控制各种家用电器。本课我们将制作一个简易物联网智能家居系统,可以在Scratch作品中远程控制电机LED

Scratch端程序http://www.haohaodada.com/show.php?id=1069489

WULink-NOVA端程序http://haohaodada.com/wulink-NOVA/index.php?id=5987

图片.png 

要制作本课的范例作品,需要使用以下新的硬件模块:

电机


电机,也叫“马达”,是依据电磁感应原理将电能转换为机械能的一种装置,很多常用电器和机械的动力源都是各种各样的电机。

电机根据输入电源的不同,可以分为使用直流电的直流电机、使用交流电的交流电机。WULink-NOVA套件中的130电机就是一种直流电机,能够将输入的直流电能转换为机械能,可以带动套件中的风扇叶旋转。130电机可以直接接在WULink-NOVA主控板的MAMB端口(如下图9-1所示)。



blob.png

9-1 130电机和风扇叶


要制作本课的范例作品,还需要使用以下新的指令:

blob.png

属于WULink-NOVA端的“执行器”类别指令;使用这个指令可以设置指定端口电机的输出值。指令默认端口是MA”、输出值是“0”;通过单击第一个参数的下拉列表,可以选择电机的连接端口MAMB在第二个参数框中输入数值,可以设置电机的输出值,它的取值范围是(-255255)。

 

blob.png

属于Scratch端“更多模块”类别指令;这个指令需添加HaodaIot”扩展生成,具体操作方法详见“阅读材料二”。使用这个指令可以向指定物联网设备发送消息。这个指令有两个参数框,第一个参数框中填写物联网接收设备的MAC地址,第二个参数框为发送消息的内容。

blob.png

属于WULink-NOVA端的“物联网”类别指令;使用这个指令可以检测“好好搭搭”物联网服务器上有没有发送给当前绑定WU-Link的消息。如果有消息,指令的返回值为“1”,也就是逻辑值为“真”;如果没有消息,指令的返回值为“0”,也就是逻辑值为“假”。

blob.png

属于WULink-NOVA端的“物联网”类别指令;使用这个指令可以读取“好好搭搭”物联网服务器上发送给当前绑定WU-Link的消息。指令的返回值就是消息内容。

blob.png

属于WULink-NOVA端的“文本与数组”类别指令;在这个指令可以输入字母和数字,为字符串类型,用给字符串变量赋值和与字符串变量比较。

 

图片.png 

要制作本课的范例作品,可以按以下步骤先连接硬件、连接网络,然后进入“好好搭搭”网站编写、调试、编译、下载程序。

第一步:连接硬件、连接网络                        


首先将模块与主控板连接起来:103电机连接MA”端口、按钮模块连接“S3”端口、RGB LED模块连接S0”端口、数码管模块连接“M2”端口,将电池插入电源接口(如下图9-2所示);接着打开电源开关,等待主控板连接网络成功。



图片.png

9-2 “物联网智能家居 ”范例作品硬件连接图

第二步:用按钮控制电机的起停                        


打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“无线编程”网页中选择“WULink-NOVA”模板,进入“WULink-NOVA”编程设计页”。

用按钮控制电机的起停,可以做如下定义:当按钮被按下时,电机转动;当按钮松开时电机停止。具体程序代码如下图9-3所示: 


 

图片.png

9-3 用按钮控制电机的起停程序”范例代码

图片.png 

根据上图9-3所示代码,按下表要求分别修改电机输出值,编译后下载到主控板上,观察不同参数下风扇旋转的状态,最后将观察结果记录到表格中。

 

 

图片.png

我发现:________________________________________________________________

_______________________________________________________________________

 

第三步:编写Scratch端的控制信号发送程序                   


首先,添加HaodaIot”扩展生成物联网相关指令,需要调用物联网发送指令。

Scratch创建两个按钮角色,一个为“ON”,一个为OFF”,当点击按钮“ON发送消息ON”;当点击按钮“OFF”时,发送消息“OFF

具体的Scratch作品如9-4所示:


 

图片.png

9-4 Scratch端的“物联网信号发送程序”范例作品

具体的程序代码如9-59-6所示:

图片.png 

9-5 Scratch端点击按钮“ON”的范例程序代码

图片.png 

9-6 Scratch端电机按钮“OFF”的范例程序代码

 

图片.png 

如果只用一个按钮来实现消息“ON”和“OFF”的交替发送,Scratch程序应该如何修改?

 

第四步:编写WULink-NOVA端的信号接收与电机控制程序                        


1. 声明一个字符串型的变量MSG用于存放从物联网上接收到的消息

2. WULink-NOVA端接收物联网消息需要先检测是否收到物联网消息,使用物联网检测到消息指令;

3. 将接收到的消息存放到字符串型变量MSG

4. 判断变量MSG中的文本如果为ON”,则起动电机,设置电机速度参数为150;如果为OFF”,则停止电机,设电机速度参数为0。具体程序代码如下图9-7所示:


 

图片.png

9-7 “物联网信号接收与电机控制程序”范例代码

图片.png 

如果不用字符串型变量存放从物联网中读取的消息,而是直接用“物联网-读取消息”指令直接与文本“ON”和“OFF”进行比较,会产生什么问题?

 

 

图片.png 

如何利用Scratch和物联网控制接在WULink-NOVA上的RGB LED模块的颜色显示

我打算这么做:_______________________________________________________

______________________________________________________________________

做的时候需要注意:____________________________________________________

______________________________________________________________________