(Python) Как использовать протокол MQTT для подписки на темы на Thingspeak.com и отображения его?
Я должен написать программу на Python, использующую протокол MQTT, чтобы подписаться на темы на thingspeak.com и отображать ее на экране Raspberry Pi. Я нашел официальную справку / документацию по публикации сообщений и фидов полей на thingspeak.com, но они не предоставляют никакой информации о том, как подписать тему, например, какова форма строки темы, каковы включения этой строки темы и т.д. Кто-нибудь знает об этом?
2 ответа
Согласно документации Thingspeak: "ThingSpeak поддерживает публикацию только на каналах, использующих MQTT". ( https://www.mathworks.com/help/thingspeak/mqtt-api.html) Поэтому в настоящее время я не верю, что существует способ подписки на канал. Кажется, это делает их реализацию MQTT немного бессмысленной, но если вам абсолютно необходимо использовать ее для публикации данных, она все равно должна работать.
При необходимости вы можете реализовать мост ThingSpeak to MQTT с помощью API Python ( https://pypi.python.org/pypi/thingspeak/0.4.1). Я использую этот 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
просто знайте, что вам нужно правильно понять тему, чтобы подписка работала правильно
тема похожа на каналы /[channel_id]/ подписка /json/[api readkey]
замените [channel_id] вашим идентификатором канала, а [api readkey] - ключом чтения API этого канала.
Вы должны войти под своим именем пользователя и в качестве пароля mqtt, который вы можете установить в разделе account> my profile> mqttkey на сайте ThingSpeak.