raspberrypi通过mqtt协议将DHT22数据发送给broker

5 篇文章 1 订阅
2 篇文章 0 订阅
  1. 确保Raspberry Pi上有最新的更新
sudo apt-get update
  1. 安装python 3-dev和python3-pip使用这两个包来与湿度传感器进行交互
sudo apt-get install python3-dev python3-pip
  1. 安装最新版本的setuptools、wheel和pip python包。
sudo python3 -m pip install --upgrade pip setuptools wheel 
  1. 将DHT库安装到Raspberry Pi上
sudo pip3 install Adafruit_DHT
  1. 下载库
pip install paho-mqtt

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

发布端程序(文件名.py):

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="***.***.***.***")   //edge节点ip或者localhost
           time.sleep(2)

订阅端程序(文件名.py):

# 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)  //edge节点ip或者localhost
     client.subscribe("temphum",0)
     client.loop_forever()

服务器使用:mosquitto

程序全部在树莓派上运行

  1. 先运行订阅端脚本
python3 name.py
  1. 运行发布端脚本
python3 name.py

在这里插入图片描述
注意事项:
确保raspberrypi作为edge节点,并处于ready状态。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值