温度湿度仪通过MQTT发送和接收数据
学习笔记作者:admin日期:2025-05-29点击:16
摘要:讲解如何通过MQTT协议设置温度湿度仪发送温湿度数据,并编写代码接收数据。
温度湿度仪通过MQTT发送和接收数据
准备工作
确保温度湿度仪连接到网络,并准备MQTT Broker和开发环境。
设置MQTT Broker
可以选择公共Broker(如broker.hivemq.com)或自行搭建Broker(如Mosquitto)。
配置发布代码
import paho.mqtt.client as mqtt
import random
import time
broker_address = "broker.hivemq.com"
port = 1883
topic = "sensor/temperature_humidity"
client = mqtt.Client()
client.connect(broker_address, port)
def read_sensor_data():
temperature = random.uniform(20.0, 30.0)
humidity = random.uniform(40.0, 60.0)
return {"temperature": temperature, "humidity": humidity}
try:
while True:
data = read_sensor_data()
message = f"Temperature: {data['temperature']:.2f}°C, Humidity: {data['humidity']:.2f}%"
client.publish(topic, message)
time.sleep(5)
except KeyboardInterrupt:
print("Stopped publishing.")
finally:
client.disconnect()
配置订阅代码
import paho.mqtt.client as mqtt
broker_address = "broker.hivemq.com"
port = 1883
topic = "sensor/temperature_humidity"
def on_message(client, userdata, message):
print(f"Received message: {message.payload.decode()} (Topic: {message.topic})")
client = mqtt.Client()
client.on_message = on_message
client.connect(broker_address, port)
client.subscribe(topic)
print(f"Subscribed to topic: {topic}")
client.loop_forever()
运行与测试
运行发布代码发送数据,运行订阅代码接收数据。
扩展功能
- 存储数据到数据库
- 可视化数据
- 启用安全性