发布温度 - 虚拟IoT硬件和Raspberry Pi 在本课程的部分内容中,您将通过MQTT发布由Raspberry Pi或虚拟IoT设备检测到的温度值,以便稍后用于计算GDD。 发布温度 一旦读取了温度值,就可以通过MQTT将其发布到某个“服务器”代码中,该代码将读取这些值,并准备好用于GDD计算。 任务 - 发布温度 编程设备以发布温度数据。 如果尚未打开,请打开 应用程序项目。 重复第4课中的步骤以连接到MQTT并发送遥测数据。您将使用相同的公共Mosquitto代理。 这些步骤如下: 添加MQTT pip包 添加连接到MQTT代理的代码 添加发布遥测数据的代码 ⚠️ 如有需要,请参阅连接到MQTT的说明以及第4课中发送遥测数据的说明。
在本课程的部分内容中,您将通过MQTT发布由Raspberry Pi或虚拟IoT设备检测到的温度值,以便稍后用于计算GDD。
一旦读取了温度值,就可以通过MQTT将其发布到某个“服务器”代码中,该代码将读取这些值,并准备好用于GDD计算。
编程设备以发布温度数据。
如果尚未打开,请打开temperature-sensor应用程序项目。
重复第4课中的步骤以连接到MQTT并发送遥测数据。您将使用相同的公共Mosquitto代理。
这些步骤如下:
⚠️ 如有需要,请参阅连接到MQTT的说明以及第4课中发送遥测数据的说明。
确保client_name反映了此项目的名称:
client_name = id + 'temperature_sensor_client'
对于遥测数据,不要发送光值,而是发送从DHT传感器读取的温度值,并在JSON文档的名为temperature的属性中传递:
_, temp = sensor.read() telemetry = json.dumps({'temperature' : temp})
温度值不需要频繁读取——短时间内不会变化太多,因此将time.sleep设置为10分钟:
time.sleep(10 * 60);
sleep函数接受秒数作为参数,为了便于阅读,这里传递的是一个计算结果。每分钟有60秒,所以10乘以(每分钟60秒)给出了10分钟的延迟。
按照上一部分作业中的方式运行代码。如果您正在使用虚拟IoT设备,请确保CounterFit应用程序正在运行,并且湿度和温度传感器已创建在正确的引脚上。
pi@raspberrypi:~/temperature-sensor $ python3 app.py MQTT connected! Sending telemetry {"temperature": 25} Sending telemetry {"temperature": 25}
您可以在code-publish-temperature/virtual-device文件夹或code-publish-temperature/pi文件夹中找到此代码。
您已经成功地从设备发布了温度遥测数据。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。