(Python)如何使用MQTT协议订阅Thingspeak.com上的主题并显示它?

(Python)如何使用MQTT协议订阅Thingspeak.com上的主题并显示它?,python,mqtt,grovepi+,Python,Mqtt,Grovepi+,我必须使用MQTT协议编写一个python程序来订阅thingspeak.com上的主题,并将其显示在Raspberry Pi的屏幕上。 我找到了关于向thingspeak.com发布消息和字段提要的官方帮助/文档,但它们没有提供关于如何订阅主题的任何信息,例如主题字符串的形式、该主题字符串包含的内容等。 有人对此有任何线索吗?根据Thingspeak文档:“Thingspeak只支持使用MQTT发布到频道。”()所以目前我不相信有办法订阅频道。这似乎使他们的MQTT实现有点毫无意义,但如果您确

我必须使用MQTT协议编写一个python程序来订阅thingspeak.com上的主题,并将其显示在Raspberry Pi的屏幕上。 我找到了关于向thingspeak.com发布消息和字段提要的官方帮助/文档,但它们没有提供关于如何订阅主题的任何信息,例如主题字符串的形式、该主题字符串包含的内容等。
有人对此有任何线索吗?

根据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下设置该密钥