成都网站建设设计

将想法与焦点和您一起共享

树莓派如何实现mqtt通信

这篇文章主要为大家展示了“树莓派如何实现mqtt通信”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“树莓派如何实现mqtt通信”这篇文章吧。

在莱阳等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作按需求定制设计,公司网站建设,企业网站建设,品牌网站制作,成都全网营销推广,成都外贸网站建设,莱阳网站建设费用合理。

1、sudo pip install paho-mqtt

2、python代码

# -*- coding: utf-8 -*- 
import paho.mqtt.client as mqtt
# import RPi.GPIO as GPIO
import json,sys


# if sys.version_info < (3, 0):
#     reload(sys)
#     sys.setdefaultencoding('utf8')
# else:
#     raw_input = input
username='public'
password='123456'
hostname='xxx.xxx.xxx.xxx'

# BCM GPIO编号
pins = [17,18,27,22,23,24,25,4]
def gpio_setup():
    # 采用BCM编号
    GPIO.setmode(GPIO.BCM)
    # 设置所有GPIO为输出状态,且输出低电平
    for pin in pins:
        GPIO.setup(pin, GPIO.OUT)
        GPIO.output(pin, GPIO.LOW)
       
def gpio_destroy():
    for pin in pins:
        GPIO.output(pin, GPIO.LOW)
        GPIO.setup(pin, GPIO.IN)
       
# 连接成功回调函数
def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))
    # 连接完成之后订阅gpio主题
    client.subscribe("gpio")

# 消息推送回调函数 .decode("utf-8")
def on_message(client, userdata, msg):

    print(msg.topic+""+str(msg.payload))
    #获得负载中的pin 和 value
    # gpio = json.loads(str(msg.payload))

    # if gpio['pin'] in pins:
    #     if gpio['value'] == 0:
    #         GPIO.output(gpio['pin'], GPIO.LOW)
    #     else:
    #         GPIO.output(gpio['pin'], GPIO.HIGH)

if __name__ == '__main__':
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    # gpio_setup()
   
    try:
        # 请根据实际情况改变MQTT代理服务器的IP地址及账户密码认证
        #client.username_pw_set(username,password)
        client.connect("xxx.xxx.xxx.xxx", 1883, 60)
        client.loop_forever()
    except KeyboardInterrupt:
        client.disconnect()
        gpio_destroy()

发送数据为{"pin":12,"value":1}

以上是“树莓派如何实现mqtt通信”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章题目:树莓派如何实现mqtt通信
浏览路径:http://chengdu.cdxwcx.cn/article/goepdp.html