Page Title

第14课 物联网智能家居2——电机与灯光控制


2019-08-06 15:54:58

图片.png 

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

图片.png 

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

电机

图片.png 

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

电机根据输入电源的不同,可以分为使用直流电的直流电机、使用交流电的交流电机。好搭BOX套件中的电机就是一种直流电机,能够将输入的直流电能转换为机械能,可以带动套件中的风扇叶旋转(如下图14-1所示)。


图片.png

14-1电机和风扇叶


图片.png 

图片.png 

使用这个指令可以设置电机的输出值。默认输出值是50”;通过单击,可以键盘输入相应电机的输出值,它的取值范围是(-255255)。

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

图片.png 

图片.png 

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

图片.png 

图片.png 

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

图片.png 

图片.png 

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

图片.png 

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

准备工作:搭建硬件、连接网络、进入网站                        

图片.png 

第一步:搭建硬件、连接网络。数码管模块置于主控板上,并把风扇页安装到电机模块上(如下图14-2所示);接着打开电源开关,等待主控板连接网络成功。


图片.png

14-2 “声光控灯范例作品硬件连接

第二步:进入网站。打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“无线编程”网页中选择“好搭BOX智能实验箱”模板,进入程序设计页。

 

 

案例一:用按键控制电机的起停                        

图片.png 

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


图片.png

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


图片.png 

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

 

 

图片.png

我发现:________________________________________________________________

_______________________________________________________________________

 

案例二:编写Scratch端的控制信号发送程序                    

图片.png 

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

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

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


图片.png

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

具体的程序代码如14-514-6所示:

图片.png 

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

图片.png 

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

 

图片.png 

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

 

案例三:编写好搭BOX端的信号接收与电机控制程序                  

图片.png 

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

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

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

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


图片.png

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

图片.png 

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

 

 

图片.png 

如何利用Scratch和物联网控制接在好搭BOX上的RGB LED模块的颜色显示

我打算这么做:_______________________________________________________

______________________________________________________________________

做的时候需要注意:____________________________________________________

______________________________________________________________________