与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订阅使用渠道。我有以下疑问:
  1. 请帮我解决上述问题。(强调)
  2. 是否可以使用相同的设备向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 ()

接受的答案

克里斯托弗Stapels
克里斯托弗Stapels 2021年2月22日
我没看订阅的python文档。你在哪里设置客户机ID ?
如果就是这样,你想要使用不同的客户机ID。
客户= mqttClient.Client (Python) #创建新实例
这个例子 在C语言中,但是我展示了如何生成一个新的随机每次客户机id。订阅的部分代理需要一个惟一的ID。
1评论
Tejaswini Suriyanarayanan
Tejaswini Suriyanarayanan 2021年2月25日
你好,
我试着运行代码通过生成一个随机按你建议的那样独特的客户机ID。它工作!我能够成功地从代理receieve消息有效负载。
谢谢你的支持!万博1manbetx
Tejaswini

登录置评。

更多的答案(2)

Reeno约瑟夫
Reeno约瑟夫 2021年2月18日
嗨Tejaswini,
有仿真软件摘要通过MQ万博1manbetxTT发布/解决方案Subscrib覆盆子π模型支持包的一部分。万博1manbetx
请付款” ThingSpeak用MQTT发布和订阅消息块 “更多的细节。
-Reeno
1评论
Tejaswini Suriyanarayanan
Tejaswini Suriyanarayanan 2021年2月19日
你好,
谢谢你的回应。但是,我在寻找一个解决方案,不是基于仿真软件。万博1manbetx
我能够使用MQTT发布数据通道成功API。事实上,我也能够订阅和接收通道的数据使用MQTT当我试着做它。外汇应用程序在我的电脑。那么为什么我不能够继续使用python代码相同的π,正如我对出版数据通道了吗?
请帮我解决这个问题。
Tejaswini

登录置评。


克里斯托弗Stapels
克里斯托弗Stapels 2021年2月19日
我会看看 MQTT订阅故障诊断页面 。可能是你设置在您的客户端ThingSpeak代理不同意(QoS或轻型等)。
1评论
Tejaswini Suriyanarayanan
Tejaswini Suriyanarayanan 2021年2月22日
你好,
谢谢你的回应。我双重检查像你建议的配置参数。我仍然无法进行。
Tejaswini

登录置评。

社区

更多的答案ThingSpeak社区

类别

找到更多的在写数据通道帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!