树莓派文章Python文章 Raspberrypi

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

2020-04-05  本文已影响0人  O少O

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 定义了编码接收的数据格式

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

上一篇下一篇

猜你喜欢

热点阅读