温度湿度仪通过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()

运行与测试

      运行发布代码发送数据,运行订阅代码接收数据。

扩展功能

  • 存储数据到数据库
  • 可视化数据
  • 启用安全性

上一篇      下一篇