智能家居系统正在进入越来越多的家庭,成为生活中必不可少的一部分,其中传感器的信息通过物联网上传,用户可以在各种终端设备上进行查看。本课我们将制作一款基于物联网的环境监测仪,可以在Scratch作品中监控WULink-UNO的各种传感器数值。
要制作本课的范例作品,需要使用以下新的硬件模块:
温度、湿度传感器是指能够感受温度、湿度并转换成电信号的传感器。
Nova套件中的温度、湿度传感器采用的是“DHT11”温湿度传感器(如下图8-1所示)。这是一款温湿度复合传感器,既能够检测温度、又能够检测湿度。它的温度检测范围是(0℃-50℃)、误差值±2℃;湿度检测范围是(20%-90%RH)、误差值±5%RH。
![1564728378303248.png 图片.png](/ueditor/php/upload/image/20190802/1564728378303248.png)
图8-1 DHT11温湿度传感器模块
日常生活中所指的湿度是“相对湿度”,采用“%RH”表示。“90%RH”就是指空气中实际水蒸气的含量与相同温度下饱和水蒸气含量的百分比是90%。
要制作本课的范例作品,还需要使用以下新的指令:
![1564728392566155.png 1564728392566155.png](/ueditor/php/upload/image/20190802/1564728392566155.png)
属于WULink-UNO端的“传感器”类别指令;使用这个指令可以读取指定端口温湿度传感器上输出的温度、湿度值。指令默认读取的是“0”端口的温度值;通过单击下拉列表,可以选择读“温度”或“湿度”,其中温度的单位是摄氏度,湿度的单位为%RH,还可以选择0—13这4个数字端口、A0—A5这6个模拟端口。
![1564728399649151.png 1564728399649151.png](/ueditor/php/upload/image/20190802/1564728399649151.png)
属于WULink-UNO端的“物联网”类别指令;使用这个指令可以将指定的数值或变量上传到物联网中,且可以为其添加名称。指令中第一个参数框内容为用户自定义的名称,用于区分存在与物联网中的各种数值;第二个参数框为要上传的数值,也可以是整数型变量或传感器输入值。
![1564728404453871.png 1564728404453871.png](/ueditor/php/upload/image/20190802/1564728404453871.png)
属于Scratch端“更多模块”类别指令;这个指令需添加“HaodaIot”扩展生成,具体操作方法详见“阅读材料二”。使用这个指令可以获取已上传到物联网中的数值。这个指令有两个参数框,第一个参数框中填写上传设备的MAC地址,第二个参数框为WULink-UNO端程序中上传变量的自定义名称,两端名称必须完全一致。
要制作本课的范例作品,需要使用以下器材:
² UNO主控板和配套的扩展板
² 亮度传感器模块:一个
² 温湿度传感器模块:一个
² 声音传感器模块:一个
² 4P连接线:一根
² 3P连接线:三根
要搭建本课的范例作品硬件,可以按以下步骤操作:
1. 将UNO扩展板插入到UNO主控板上。
1. 将4P连接线白色插头插入数码管模块的接口中、黑色插头插入扩展板第二排右边的IIC端口,黑色插头插入时要注意连接线每根线的颜色和扩展板插座针脚的颜色相同。
2. 将一条3P连接线白色插头插入温湿度传感器的白色接口中、黑色插头插入扩展板中间的“A0”号端口,黑色插头插入时要注意连接线每根线的颜色和扩展板插座针脚的颜色相同。
3. 将另一条3P连接线白色插头插入声音传感器模块的白色接口中、黑色插头插入扩展板中间的“A1”号端口,黑色插头插入时要注意连接线每根线的颜色和扩展板插座针脚的颜色相同。
4. 将另一条3P连接线白色插头插入声音传感器模块的白色接口中、黑色插头插入扩展板中间的“A2”号端口,黑色插头插入时要注意连接线每根线的颜色和扩展板插座针脚的颜色相同。
具体器材连接方式如下图8-2所示:
![1564728441801315.png 图片.png](/ueditor/php/upload/image/20190802/1564728441801315.png)
图8-2 “物联网环境监测 ”范例作品硬件连接图
登录“好好搭搭”网站,选择“创作”栏目中的“WULink-UNO模板”,进入“WULink-UNO编程设计页”进行编程。
要在数码管上交替显示温度和湿度,可以在“重复执行”指令,重复执行“数码管清除”以及两个“数码管显示”、两个“等待”指令,第一个“数码管显示”指令显示温度,等待1秒后再使用第二个“数码管显示”指令显示湿度,最后再等待1秒后重复显示。具体程序代码如下图8-3所示:
![1564728466636845.png 图片.png](/ueditor/php/upload/image/20190802/1564728466636845.png)
图8-3 “在数码管上交替显示温度值和湿度值”程序代码
| 如果有两个数码管,请你编写程序,能够一个数码管显示温度、另一个数码管显示湿度。 |
|
第三步:编写WULink-UNO端的传感器数值上传程序 |
|
将传感器的数值上传需使用物联网上传变量指令,在第二步的程序中的两个数码管显示数值后添加对应的物联网上传变量指令,两条物联网上传变量的自定义名称不能相同,具体程序代码如下图8-4所示:
![1564728490173866.png 图片.png](/ueditor/php/upload/image/20190802/1564728490173866.png)
图8-4 “传感器数值上传程序”范例代码
| 将亮度传感器和声音传感器的数值一起上传,程序应该如何修改? |
第四步:编写Scratch端的传感器数值显示程序 |
|
在Scratch端编写物联网相关程序,必须在指令区添加物联网相关指令,具体添加操作详见“阅读材料三”。
WULink-NOVA端的传感器上传程序运行后,传感器的数值会上传到物联网中,且一直存在,Scratch端使用获取变量值指令,填入指定上传设备的MAC地址和WULink-NOVA端物联网上传指令中的自定义名称,便可读取存在与物联网中的数值。
具体的Scratch作品如8-5所示:
![1564728535605422.png 图片.png](/ueditor/php/upload/image/20190802/1564728535605422.png)
图8-5 Scratch端的“物联网传感器数值显示作品”范例程序代码
具体的程序代码如8-6、8-7所示:
图8-6 Scratch端的“物联网温度显示程序”范例代码
图8-7 Scratch端的“物联网湿度显示程序”范例代码
| 将Scratch作品改为仪表盘的形式,程序如何修改? |
利用传感器上传的数值,可以制作什么Scratch互动作品吗?
我打算这么做:_______________________________________________________
______________________________________________________________________。
做的时候需要注意:____________________________________________________
______________________________________________________________________。
阅读材料三:在Scratch指令区中添加物联网指令
使用Scratch编写物联网相关程序,必须在“更多模块”添加“HaodaIot”扩展模块生成物联网相关指令。
一、 进入Scratch设计页
1. 打开网页浏览器,进入“好好搭搭”网站(haohaodada.com);
2. 单击网站上方导航栏中的“创作”按钮,进入“创作模板”网页。
![1564728613622824.png 图片.png](/ueditor/php/upload/image/20190802/1564728613622824.png)
3. 点击“转到设计页”按钮,进入Scratch程序设计页。
![1564728702731629.png 图片.png](/ueditor/php/upload/image/20190802/1564728702731629.png)
Scratch程序设计页如下:
二、 添加“HaodaIot”扩展
1. 选择指令区中的“更多模块”类别,点击“添加扩展”按钮,进入扩展选择页。
![1564728745397500.png 图片.png](/ueditor/php/upload/image/20190802/1564728745397500.png)
2. 选择“HaodaIot”图标,双击选择或点击右下方“确定按钮”。
![1564728779101527.png 图片.png](/ueditor/php/upload/image/20190802/1564728779101527.png)
3. “HaodaIot”添加成功之后,在指令区“更多模块”类别中会出现物联网相关指令。
按照以上步骤将物联网相关指令添加到指令区后,就可以在线编写具有物联网通讯功能的Scratch程序。