我正在用一些C.H.I.p.s(比如树莓派)做一个项目,我需要用无线方式将一些信息从一个从设备发送回主板。我使用Paho作为Mqtt客户机,并使用mosquito作为我的经纪人。我的问题是,当我按下一个连接到从板的按钮时,它会发送我的消息,但是当主板接收到它时,它似乎是以“b”的形式得到的。例如,如果我在打印时发送消息“off”消息有效载荷上面印着“b'off”。这导致了一个问题,因为我无法比较消息以便在主板上执行命令。在
这是我的主板代码:
import paho.mqtt.client as paho
import CHIP_IO.GPIO as GPIO
import time
GPIO.cleanup()
GPIO.setup("XIO-P0", GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup("XIO-P2", GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
client = paho.Client()
client.connect("172.20.0.1", 1883)
print ("CONNECTED")
while True:
if (GPIO.input("XIO-P0") == False):
print ("Button P0 Pressed")
client.publish('tipup', 'flag')
time.sleep(1)
if (GPIO.input("XIO-P2") == False):
print ("Button P2 Pressed")
client.publish('tipup', 'off')
time.sleep(1)
这是我的主板代码(经纪人)
^{pr2}$打印str时出现问题(消息有效载荷)在我的主板代码里。我应该补充一点,这两个编译和运行都很好,这只是一个问题,当我在弄清楚为什么它没有通过任何一个if语句时,我在on_message()中注意到了。在
^{} means bytes 。在使用它之前,您需要convert this to UTF-8:
不过,我不知道为什么有效负载是以字节为单位的。在
相关问题 更多 >
编程相关推荐