You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/zh/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md

80 lines
3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "df28cd649cd892bcce034e064913b2f3",
"translation_date": "2025-08-24T22:05:20+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md",
"language_code": "zh"
}
-->
# 发布温度 - Wio Terminal
在本节课程中,您将通过 MQTT 发布 Wio Terminal 检测到的温度值,以便后续用于计算 GDD。
## 发布温度
一旦读取到温度值,就可以通过 MQTT 发布到某些“服务器”代码,这些代码将读取这些值并存储起来,以便用于 GDD 计算。微控制器不会直接从互联网读取时间,也不会默认使用实时时钟来跟踪时间,设备需要进行编程才能实现这一功能,前提是它具备必要的硬件。
为了简化本课程的内容,传感器数据不会附带时间信息,而是由服务器代码在接收到消息后添加时间。
### 任务
编程设备以发布温度数据。
1. 打开 `temperature-sensor` Wio Terminal 项目
1. 重复您在第 4 课中完成的步骤,连接到 MQTT 并发送遥测数据。您将使用相同的公共 Mosquitto broker。
具体步骤如下:
- 将 Seeed WiFi 和 MQTT 库添加到 `.ini` 文件
- 添加配置文件和连接 WiFi 的代码
- 添加连接到 MQTT broker 的代码
- 添加发布遥测数据的代码
> ⚠️ 如果需要,请参考 [连接到 MQTT 的说明](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md) 和 [发送遥测数据的说明](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md)(第 4 课)。
1. 确保 `config.h` 头文件中的 `CLIENT_NAME` 反映了当前项目:
```cpp
const string CLIENT_NAME = ID + "temperature_sensor_client";
```
1. 对于遥测数据,不再发送光照值,而是发送从 DHT 传感器读取的温度值,并将其作为 JSON 文档中的 `temperature` 属性。为此,请修改 `main.cpp` 中的 `loop` 函数:
```cpp
float temp_hum_val[2] = {0};
dht.readTempAndHumidity(temp_hum_val);
DynamicJsonDocument doc(1024);
doc["temperature"] = temp_hum_val[1];
```
1. 温度值不需要频繁读取——在短时间内它不会有太大变化,因此将 `loop` 函数中的 `delay` 设置为 10 分钟:
```cpp
delay(10 * 60 * 1000);
```
> 💁 `delay` 函数的时间单位是毫秒为了便于阅读时间以计算结果的形式传递。1,000 毫秒为 1 秒60 秒为 1 分钟,因此 10 x (60 秒/分钟) x (1000 毫秒/秒) 得到 10 分钟的延迟。
1. 将代码上传到您的 Wio Terminal并使用串口监视器查看温度值是否已发送到 MQTT broker。
```output
--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Connecting to WiFi..
Connected!
Attempting MQTT connection...connected
Sending telemetry {"temperature":25}
Sending telemetry {"temperature":25}
```
> 💁 您可以在 [code-publish-temperature/wio-terminal](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/wio-terminal) 文件夹中找到此代码。
😀 您已成功将设备的温度值作为遥测数据发布。
**免责声明**
本文档使用AI翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原文档的原始语言版本为权威来源。对于关键信息,建议使用专业人工翻译。我们对因使用此翻译而引起的任何误解或误读不承担责任。