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.
2.7 KiB
2.7 KiB
通过互联网控制夜灯 - 虚拟物联网硬件和树莓派
在本节课程中,您将从树莓派或虚拟物联网设备向 MQTT broker 发送光照水平的遥测数据。
发布遥测数据
下一步是创建一个包含遥测数据的 JSON 文档,并将其发送到 MQTT broker。
任务
将遥测数据发布到 MQTT broker。
-
在 VS Code 中打开夜灯项目。
-
如果您使用的是虚拟物联网设备,请确保终端正在运行虚拟环境。如果您使用的是树莓派,则无需使用虚拟环境。
-
在
app.py
文件顶部添加以下导入:import json
json
库用于将遥测数据编码为 JSON 文档。 -
在
client_name
声明之后添加以下内容:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
是设备将光照水平发布到的 MQTT 主题。 -
将文件末尾的
while True:
循环内容替换为以下内容:while True: light = light_sensor.light telemetry = json.dumps({'light' : light}) print("Sending telemetry ", telemetry) mqtt_client.publish(client_telemetry_topic, telemetry) time.sleep(5)
此代码将光照水平打包为 JSON 文档并发布到 MQTT broker。然后它会休眠以减少消息发送的频率。
-
以与之前任务相同的方式运行代码。如果您使用的是虚拟物联网设备,请确保 CounterFit 应用正在运行,并且光传感器和 LED 已在正确的引脚上创建。
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 您可以在 code-telemetry/virtual-device 文件夹或 code-telemetry/pi 文件夹中找到此代码。
😀 您已成功从设备发送遥测数据。
免责声明:
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。因使用本翻译而引起的任何误解或误读,我们概不负责。