跳到教程内容
教程首页
App Inventor 2 教程 植物养护
准备开始
动手创造 · PROJECT LAB

植物养护

准备探索你的新作品
0%
★★ 项目难度每一步,都离作品更近

先了解你将做出什么

应用介绍

你有“绿手指”,还是总把家里的植物养死?这个应用用 Arduino 101 传感器读取光照、土壤湿度和温度,并把读数画成三根会变化的柱状条,帮助你观察植物环境。

连接你的应用

把 Arduino 101 和手机连接好,并在 App Inventor 中导入对应的物联网扩展。没有硬件时可以先阅读积木,但最终效果必须用真实传感器测试。

植物养护教程

1. 准备工程

打开起始工程,确认设计器里有 HorizontalArrangement2、Arduino 101 光照传感器、湿度传感器和温度传感器。教程用三根垂直排列的彩色柱状条表示三个读数。

2. 添加三个垂直布局

在“布局”抽屉中拖入三个 VerticalArrangement,并把它们放进 HorizontalArrangement2。它们将从顶部向下增长,模拟三根状态柱。

添加三个垂直布局

3. 重命名三个布局

依次选择三个布局并重命名:VerticalArrangement1 改为 LightBarVerticalArrangement2 改为 MoistureBarVerticalArrangement3 改为 TemperatureBar

重命名布局

4. 设置高度和宽度

LightBarMoistureBarTemperatureBar 的高度都设为 0px,宽度都设为“充满父容器”。程序收到传感器读数后,会把高度从零改成对应的数值。

设置布局尺寸

5. 设置三根柱子的颜色

为了让三种读数一眼可分辨:LightBar 使用黄色,MoistureBar 使用蓝色,TemperatureBar 使用红色。

设置背景颜色

6. 设置 LightBar 高度

切换到积木编辑器,在 LightBar 抽屉中拖出 设 LightBar.高度 为。把它接到乘法块的结果上,先用传感器读数乘以 0.75,把结果变成适合屏幕显示的高度。

打开 Blocks

设置 LightBar 高度

7. 连接光照数据事件

找到 当 Arduino101LightSensor1.LightSensorDataReceived 事件。把完整的 设 LightBar.高度 为 放在这个事件已有程序块的下方,让每次收到光照数据时都更新黄色柱子的高度。

光照数据事件

连接 LightBar 高度

8. 读取 intensity 参数

LightSensorDataReceived 事件的红色 intensity 参数上悬停,从弹出的参数块中选择 intensity,并把它接入 __ × 0.75 的第一个输入槽。

读取光照强度

9. 更新 MoistureBar

重复第 6~8 步,但这次使用 设 MoistureBar.高度 为,把湿度读数乘以 4,并把程序接到 当 Arduino101Moisture1.MoistureReceived 事件。

在事件参数上取得 moisture,将它接到乘法块中。蓝色柱子会随着土壤湿度变化。

湿度数据事件

10. 更新 TemperatureBar

再次重复第 6~8 步,使用 设 TemperatureBar.高度 为,把温度读数乘以 0.75,并接到 当 Arduino101Humidity1.TemperatureReceived 事件。

从事件参数取得 temperature,接到乘法块。这样红色柱子就会反映温度变化。

温度数据事件

11. 在设备上测试

用真实 Arduino 传感器测试应用:遮住光照传感器、给土壤浇水、改变环境温度,观察对应柱子是否变化。若柱子不动,先检查蓝牙连接、扩展是否导入,以及三个数据事件是否被触发。

植物养护最终效果