Page Title

第九课 Scratch与WU-Link互联互控——物联网环境监测仪


2019-08-01 13:58:31

在第四课中,我们使用WU-Link制作了一个校园环境自动监测仪,能够监测周围环境的光线强度和温度值。本课我们将在此基础上添加物联网功能,使得监测仪能够将环境数据上传到好好搭搭物联网服务器上,然后通过Scratch显示出来。将这样的多个监测仪放置到校园的各个角落,就可以实时监测校园内多个场所的环境。

 

模块与指令


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

物联网-上传字符串指令:blob.png

属于物联网类别指令;使用这个指令可以将指定的字符串上传到好好搭搭物联网服务器上。 指令的参数就是需要上传的字符串,默认是“haohaodada”,可以根据需要修改。

 

连接文本指令:blob.png

 

属于文本与数组类别指令;使用这个指令可以将参数中的两个文本连接起来。

指令可以连接两个文本参数,一般最常用的是文本与数组类别中的字符串字符等指令。

 

作品制作


物联网环境监测仪程序也是由两个程序组成:一个是用WU-Link编程网页编写的,用于检测并且上传亮度、温度值的程序;另一个是用好好搭搭网站的在线版Scratch编写的,用于从好好搭搭物联网服务器中获取绑定WU-Link  上传的字符串、然后显示出来的程序。


 

第一步:编写能够轮替显示环境亮度和温度的WU-Link程序

在第四课中我们已经学过如何在点阵屏上交替显示亮度、温度值。需要先初始化点阵屏、声明两个变量LightTemp整数并赋值为“0”;然后在重复执行指令中清除旧的点阵屏显示后,将新读取的板载亮度传感器数值赋值给Light变量,再在点阵屏上显示出来,延时后再清除点阵屏,将新读取的板载温度传感器数值赋值给Temp变量,再在点阵屏上显示温度值、最后再延时

完整的程序代码如下图所示:

 

blob.png

试一试:

能够同时在点阵屏上显示亮度和温度值吗?

 

第二步:将WU-Link检测到的亮度、温度值发送到物联网服务器

要将WU-Link检测到的亮度、温度值发送到好好搭搭物联网服务器上,可以在上一步所编写的在点阵屏上交替显示亮度、温度值的主程序中,添加将信息上传到服务器的指令:

具体可以根据以下步骤操作:

1.  在第一个点阵屏显示数指令的下方,添加物联网类别中的上传字符串指令,再在指令的参数位置添加本与数组类别中的连接文本指令,设置连接的文本为文本“a0=”“Light”变量。

2.  在第二个点阵屏显示数指令的下方,再添加上传字符串指令、在这个指令参数位置再添加连接文本令,设置连接的文本为文本“a1=”“Temp”变量。

完整的主程序代码如下图所示:

 

 

blob.png


注:向好好搭搭服务器上传的字符串必须要有一个名称,也就是程序中的“a0”“a1”,具体名称可以自定义;在这个名称后面必须要用“=”与后面的字符串加以区分。



 

 

第三步:在Scratch上显示WU-Link检测到的亮度、温度值

WU-Link检测并上传到好好搭搭物联网服务器上的字符串,可以通过Scratch中的指令读取后显示出来。具体可以按以下步骤操作:

1.  进入好好搭搭网站的创作栏目,单击其中的“Scratch”模板缩略图,进入“Scratch模板项目页,再单击网页右上角的转到设计页按钮,进入Scratch在线编程网页。

2.  Scratch中,添加名为“school2”的舞台背景图片以及名为“boy1”“boy4”的角色图片,用鼠标将他们拖放到合适的位置。

具体可以如下图所示:


blob.png

3.  单击脚本选项卡更多模块中的添加扩展按钮,在打开的对话框中双击“Haodaiot”缩略图,将好好搭搭联网指令添加到Scratch中。

4.  “boy1”角色添加如下图所示的脚本,将教学楼的亮度是文本与获取到的字符串合并在一起、然后用指令显示出来。其中获取指定MAC地址的值指令就是新添加的好好搭搭物联网指令,中间的MAC指令应该修  改为实际绑定WU-LinkMAC地址。

具体的程序脚本如下图所示:

blob.png

5.  同样再为“boy4”添加如下图所示的脚本,让他会说教学楼的温度值。同样也需要将范例中的MAC地址修改为实际绑定WU-LinkMAC地址。

具体的程序脚本如下图所示:

blob.png

 

 

第四步:实际体验校园环境自动监测仪

通过以上步骤,已经分别编写了亮度、温度值的上传程序和显示程序,可以按以下步骤分别运行这两个程序,实际体验校园环境自动监测仪的功能:

1.  将第二步编写的WU-Link显示、上传亮度、温度值的程序编译、下载到实际所绑定的WU-Link中。运行程序后,WU-Link会不断的在点阵屏上显示亮度、温度值,同时将相关数值上传到好好搭搭物联网服务器上。

2.  运行第三步所编写的Scratch程序,如果一切正常,会在舞台上显示从好好搭搭物联网服务器上获取的亮度、温度值。

具体如下图所示:


 

试一试:

能不能让一个角色既说亮度值、同时又说温度值?

 

拓展与思考


与同学合作,将多块WU-Link放置到校园的不同地点,然后用Scratch监测这些地点的环境亮度、温度。