基于MQTT协议的温湿度测量与发布

 基于MQTT协议在树莓派上利用DHT22温湿度传感器测量温湿度,并且持续发布主题为:temphum,内容为温湿度的消息。

发布端程序:

import paho.mqtt.publish as publish
import Adafruit_DHT
import time
sensor = Adafruit_DHT.DHT22
pin = 27
while True:
           hu,temp =Adafruit_DHT.read_retry(sensor,pin)  //测量
           humtemp = 'temp:{0:0.1f}*C hu:{1}%'.format(temp,hu)
           publish.single("temphum",payload=humtemp,qos=0,
                    hostname="***.***.***.***")   //发布
           time.sleep(2)

订阅端程序:

# encoding: utf-8
#!/user/bin/env python

import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
import RPi.GPIO as GPIO
import json
import time


#订阅
#一旦连接成功回调函数
def on_connect(client,userdata,flags,rc):
    print("Connected with result code " + str(rc))

# 一旦订阅成功回调函数
def on_message(client,userdata,msg):
    print(msg.topic+" "+str(msg.payload))

#一旦订阅成功回调函数
def on_subscribe(client,userdata,mid,granted_qos):
    print("Subscribed: " + str(mid) + str(granted_qos))


if __name__=='__main__':
     client = mqtt.Client()
     client.on_connect = on_connect
     client.on_message = on_message
     client.on_subscribe = on_subscribe
     client.connect("***.***.***.***",1883,60)
     client.subscribe("temphum",0)
     client.loop_forever()

服务器使用:mosquitto 

程序全部在树莓派上运行。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值