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

\[TOC]

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

## 模块与指令

**要制作本课的范例作品，还需要使用以下新的指令：**

### “物联网-上传字符串”指令：

![](/files/-LWt7Y21oF1JUuKcBLss)

属于“物联网”类别指令；使用这个指令可以将指定的字符串上传到“好好搭搭”物联网服务器上。

指令的参数就是需要上传的字符串，默认是“haohaodada”，可以根据需要修改。

### “连接文本”指令：

![](/files/-LWt7Y251kmixpFjvnti)

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

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

## 作品制作

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

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

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

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

![](/files/-LWt7Y29PkjSBqJn-r7j)

#### 试一试：

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

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

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

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

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

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

![](/files/-LWt7Y2DgM6dYRBCC7vZ)

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

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

WU-Link检测并上传到“好好搭搭”物联网服务器上的字符串，可以通过Scratch中的指令读取后显示出来。

具体可以按以下步骤操作：

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

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

具体可以如下图所示：

![](/files/-LWt7Y2INOm7B4sthOF9)

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

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

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

![](/files/-LWt7Y2O5Asziyv52kQc)

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

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

![](/files/-LWt7Y2SeJJHtJR1jlQk)

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

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

1. 将第二步编写的WU-Link显示、上传亮度、温度值的程序编译、下载到实际所绑定的WU-Link中。运行程序后，WU-Link会不断的在点阵屏上显示亮度、温度值，同时将相关数值上传到“好好搭搭”物联网服务器上。
2. 运行第三步所编写的Scratch程序，如果一切正常，会在舞台上显示从“好好搭搭”物联网服务器上获取的亮度、温度值。

   具体如下图所示：

![](/files/-LWt7Y2VbzBrT-OEPc2t)

#### 试一试：

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

## 拓展与思考

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.haohaodada.cn/zai-xian-ru-men-ke-cheng/wulink-primer/lesson-9.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
