与Pi控制LED 4使用ThingSpeak MQTT订阅。
8视图(30天)
显示旧的评论
你好,
我做了一个项目控制LED连接到π4使用ThingSpeak MQTT订阅功能。当我能够使用πThingSpeak MQTT发布数据4没有任何问题,我面临的麻烦,而试图在ThingSpeak MQTT订阅通道读取数据从一个字段来控制LED连接到π。
最初,我有界面的领导和BMP180传感器相同的π,想发布的数据BMP180 ThingSpeak通道和订阅通道来控制我的领导基于温度的值(我跑独立脚本发布和订阅simuntaneouslyπ4)。虽然发布工作的一部分,没有订阅部分。我认为这是因为我是使用相同的设备(π)发布和订阅的频道。
所以后来,我MQTT安装。外汇的程序在我的电脑和用它来发布一个新的私人ThingSpeak通道值。然后我用π订阅同一个通道,接收值和控制界面的的领导。这并没有奏效。
我无法接收消息的ThingSpeak MQTT频道当我订阅的π4。
我双重检查通道ID和API密钥是正确的。我使用泛美卫生组织MQTT库ThingSpeak MQTT发布和订阅。我使用端口1883。
我将分享python代码ThingSpeak MQTT订阅使用渠道。我有以下疑问:
- 请帮我解决上述问题。(强调)
- 是否可以使用相同的设备向ThingSpeak MQTT发布和订阅,如我在第一种情况下吗?如果是,如何?
代码我ThingSpeak MQTT订阅使用频道使用Rπ4:
进口paho.mqtt。客户机mqttClient
进口时间
从gpiozero进口了
进口随机
defon_connect(客户端、用户数据、旗帜、rc):
如果rc = = 0:
打印(“连接到代理”)
全球连接
连接= True
其他的:
打印(“连接失败”)
defon_message(客户端、用户数据、消息):
打印(message.payload)
连接= False
broker_address =“mqtt.thingspeak.com”#代理地址
端口= 1883#代理端口
用户=“pi_led”#连接的用户名
密码=“XXXXXXXXXXXXXXXXX”#连接密码——用我的MQTT API键从我的概要文件
客户= mqttClient.Client (“巨蟒”)#创建新的实例
客户端。username_pw_set(用户、密码=密码)#设置用户名和密码
客户端。on_connect = on_connect#附加函数要回调
客户端。on_message = on_message#附加函数要回调
客户端。连接(broker_address端口=端口)#连接到代理
client.loop_start ()#启动循环
而连接! = True:#等待为连接
time . sleep (0.1)
channelID =“1304227”
READapiKey =“YYYYYYYYYYYYYYYY”
主题=“渠道/”+ channelID +“/订阅/场/ field1 /”+ READapiKey
#领导=领导(27)
客户端。订阅(主题、qos = 0)
试一试:
而正确的:
time . sleep (1)
除了KeyboardInterrupt:
打印(“退出”)
client.disconnect ()
client.loop_stop ()
0评论
接受的答案
克里斯托弗Stapels
2021年2月22日
我没看订阅的python文档。你在哪里设置客户机ID ?
如果就是这样,你想要使用不同的客户机ID。
客户= mqttClient.Client (Python) #创建新实例
这个例子
在C语言中,但是我展示了如何生成一个新的随机每次客户机id。订阅的部分代理需要一个惟一的ID。
更多的答案(2)
Reeno约瑟夫
2021年2月18日
嗨Tejaswini,
有仿真软件摘要通过MQ万博1manbetxTT发布/解决方案Subscrib覆盆子π模型支持包的一部分。万博1manbetx
-Reeno