美文网首页树莓派文章Python文章 Raspberrypi
树莓派物联网应用基础(3):Python 物联网控制小灯:收到消

树莓派物联网应用基础(3):Python 物联网控制小灯:收到消

作者: O少O | 来源:发表于2020-04-05 12:50 被阅读0次

    Python 物联网控制小灯:收到消息闪烁

    以下代码功能是只要接收到物联网发送端的任何信号,受控端树莓派的小灯就会闪烁。

    一、受控端代码,侦听接收物联网送来的信号,收到数据小灯闪烁

    #!/usr/bin/env python

    # coding: utf-8

    #!/usr/bin/python

    import paho.mqtt.client as mqtt

    import time

    import RPi.GPIO as GPIO    #导入树莓派BCM模块

    GPIO.setmode(GPIO.BCM)    #设置GPIO引脚为BCM编码模式

    GPIO.setup(5,GPIO.OUT)    #设置该端口为输出模式

    def on_connect(client, userdata, flags, rc):

            print("Connected with result code "+str(rc))

            client.subscribe("您的设备编号/主题名")             #主题名(您的设备编号/主题名)    与发送端一致

    def on_message(client, userdata, msg):

            GPIO.output(5,GPIO.HIGH)

            time.sleep(0.1)

            GPIO.output(5,GPIO.LOW)

            print(msg.topic+" " + ":" + str(msg.payload,encoding="utf8"))           #encoding="utf8"修改返回的数据编码

          #return msg.payload       #在这可以不启用不影响程序效果

    client = mqtt.Client()

    client.on_connect = on_connect

    client.on_message = on_message

    client.connect("www.gdwrobot.top", 1883, 60)      #古德微物联网服务器

    #client.connect("127.0.0.1", 1883, 60)       #单机本地测试用

    client.loop_forever()

    受控端代码:收到物联网数据小灯闪烁

    二、发送端代码,发送100内的数到物联网

    #!/usr/bin/env python

    # coding: utf-8

    import paho.mqtt.client as mqtt

    import time

    client=mqtt.Client()

    client.connect("www.gdwrobot.top",1883,60)

    time.sleep(1)

    nData=1

    while 1:

        time.sleep(0.5)

        nData+=1

        nData%=100

        client.publish('您的设备编号/主题名',nData)         #您的设备编号/主题名,与受控端一致

        #client.disconnect()

        print("success sent:",nData)

    发送端程序

    三、加了参数编码定义,返回数据格式。

     print(msg.topic+" " + ":" + str(msg.payload,encoding="utf8"))  

     encoding="utf8"——定义返回的数据编码类型,输出的数据编码格式区别。

    没有定义编码接收的数据输出格式(如下图1)

    图1 没有定义编码接收的数据格式

    定义了编码接收的数据输出格式(如下图2)

    图2 定义了编码接收的数据格式

    学完古德微花老师的代码,然后实践操作过,会对代码的理解更深,再以备忘录记录下来互相交流学习。

    相关文章

      网友评论

        本文标题:树莓派物联网应用基础(3):Python 物联网控制小灯:收到消

        本文链接:https://www.haomeiwen.com/subject/uxiephtx.html