(Python)如何使用MQTT协议订阅Thingspeak.com上的主题并显示它?
我必须使用MQTT协议编写一个python程序来订阅thingspeak.com上的主题,并将其显示在Raspberry Pi的屏幕上。 我找到了关于向thingspeak.com发布消息和字段提要的官方帮助/文档,但它们没有提供关于如何订阅主题的任何信息,例如主题字符串的形式、该主题字符串包含的内容等。(Python)如何使用MQTT协议订阅Thingspeak.com上的主题并显示它?,python,mqtt,grovepi+,Python,Mqtt,Grovepi+,我必须使用MQTT协议编写一个python程序来订阅thingspeak.com上的主题,并将其显示在Raspberry Pi的屏幕上。 我找到了关于向thingspeak.com发布消息和字段提要的官方帮助/文档,但它们没有提供关于如何订阅主题的任何信息,例如主题字符串的形式、该主题字符串包含的内容等。 有人对此有任何线索吗?根据Thingspeak文档:“Thingspeak只支持使用MQTT发布到频道。”()所以目前我不相信有办法订阅频道。这似乎使他们的MQTT实现有点毫无意义,但如果您确
有人对此有任何线索吗?根据Thingspeak文档:“Thingspeak只支持使用MQTT发布到频道。”()所以目前我不相信有办法订阅频道。这似乎使他们的MQTT实现有点毫无意义,但如果您确实需要使用它来发布数据,它应该仍然可以工作 如有必要,您可以使用Python API()实现ThingSpeak到MQTT桥。我使用该API将多个传感器连接到更大的MQTT网络,效果良好 以下是我的意思的说明:
import paho.mqtt.client as mqtt
import time
import thingspeak
from ast import literal_eval
MQTT_BROKER =
MQTT_PORT =
MQTT_TOPIC =
THINGSPEAK_CHANNEL =
THINGSPEAK_API =
UPDATE_INTERVAL =
client = mqtt.Client()
client.connect(MQTT_BROKER, MQTT_PORT)
client.loop_start()
while True:
thing = thingspeak.Channel(THINGSPEAK_CHANNEL, THINGSPEAK_API)
n = literal_eval(thing.get_field_last(field='1'))
client.publish(MQTT_TOPIC, n)
time.sleep(UPDATE_INTERVAL)
请注意,这段代码纯粹是为了举例说明,是从我的头顶上写下来的,没有任何修改。它还没有经过测试。但希望它能让你走上正确的道路。只是一个更新:ThingSpeak确实支持(目前)订阅频道的可能性: 请注意,您需要准确地获取主题,才能使te subscribe正常工作 主题类似于channels/[channel\u id]/subscribe/json/[api readkey] 用您的频道id替换[channel_id] 以及具有该通道的api读取密钥的[api readkey] 您必须使用用户名登录,并传递一个mqtt密钥,您可以在ThingSpeak站点上的account>my profile>mqttkey下设置该密钥