(Python)如何使用MQTT协议订阅主题Thingspeak.com网站把它展示出来?

2024-10-06 11:44:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须使用MQTT协议编写一个python程序来订阅主题thingspeak.com网站把它显示在树莓派的屏幕上。 我找到了关于将消息和字段提要发布到的官方帮助/文档thingspeak.com网站,但它们不提供有关如何订阅主题的任何信息,例如主题字符串的形式是什么,该主题字符串包含哪些内容等。 有人知道这件事吗?在


Tags: 字符串文档程序com信息消息协议主题
2条回答

根据Thingspeak文档:“Thingspeak只支持使用MQTT发布到通道。”(https://www.mathworks.com/help/thingspeak/mqtt-api.html),所以目前我不认为有一种方法可以订阅通道。这似乎使它们的MQTT实现有点无意义,但是如果您绝对需要使用它来发布数据,那么它仍然可以工作。在

如果需要,您可以使用pythonapi(https://pypi.python.org/pypi/thingspeak/0.4.1)实现thingspeaktomqtt桥。我使用这个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确实支持订阅频道的可能性:https://nl.mathworks.com/help/thingspeak/use-desktop-mqtt-client-to-subscribe-to-channel-updates.html

只需注意,您需要使主题完全正确,才能使te subscribe正常工作

主题类似于channels/[channel_id]/subscribe/json/[api readkey]

将[channel_id]替换为您的channel id 和[api readkey]和该通道的api read key

您必须使用用户名登录,并传递一个mqtt密钥,您可以在ThingSpeak站点上的account>;my profile>;mqttkey下设置。在

相关问题 更多 >