通过互联网控制夜灯-虚拟物联网硬件和RaspberryPi


文档摘要

通过互联网控制夜灯 - 虚拟物联网硬件和Raspberry Pi 在本课程的部分内容中,您将从Raspberry Pi或虚拟物联网设备向MQTT代理发送光级遥测数据。 发布遥测数据 接下来的步骤是创建一个包含遥测数据的JSON文档,并将其发送到MQTT代理。 任务 向MQTT代理发布遥测数据。 在VS Code中打开夜灯项目。 如果您使用的是虚拟物联网设备,请确保终端正在运行虚拟环境。如果您使用的是Raspberry Pi,则不需要使用虚拟环境。 向 文件顶部添加以下导入: 声明 library is used to encode the telemetry as a JSON document.

通过互联网控制夜灯 - 虚拟物联网硬件和Raspberry Pi

在本课程的部分内容中,您将从Raspberry Pi或虚拟物联网设备向MQTT代理发送光级遥测数据。

发布遥测数据

接下来的步骤是创建一个包含遥测数据的JSON文档,并将其发送到MQTT代理。

任务

向MQTT代理发布遥测数据。

  1. 在VS Code中打开夜灯项目。

  2. 如果您使用的是虚拟物联网设备,请确保终端正在运行虚拟环境。如果您使用的是Raspberry Pi,则不需要使用虚拟环境。

  3. app.py文件顶部添加以下导入:

    import json

    声明json library is used to encode the telemetry as a JSON document.

  4. Add the following after the client_name

    client_telemetry_topic = id + '/telemetry'

    在文件末尾的client_telemetry_topic is the MQTT topic the device will publish light levels to.

  5. Replace the contents of the 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代理。然后它会休眠以减少消息发送的频率。

  6. 按照之前部分作业中的方式运行代码。如果您使用的是虚拟物联网设备,请确保CounterFit应用程序正在运行,并且光传感器和LED已正确地创建在相应的引脚上。

    (.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}

您可以在code-telemetry/virtual-device文件夹或code-telemetry/pi文件夹中找到此代码。

您已经成功地从设备发送了遥测数据。

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


发布者: 作者: 转发
评论区 (0)
U