Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Подключение ESP8266 к IBM Watson с помощью Micropython

Автор вопроса: FranciscoОтветов: 1

Мне удалось подключить ESP01 с помощью Micropython 1.9.2 к брокеру mosquitto, работающему на моем компьютере. Мне также удалось смоделировать устройство и подключить клиента mosquitto с моего компьютера к Watson Broker. Но когда я пытаюсь подключить ESP напрямую к Watson, я получаю сообщение "В соединении отказано".

MQTTException: 5
# Full stream answered by Watson is:  b' \x02\x00\x05'

Мои параметры конфигурации:

  • WATSON_CLIENT_ID = "d: [ORG]: ESP8266: fv_esp01s_02"
  • WATSON_BROKER_IP = "[ORG] .messaging.internetofthings.ibmcloud.com"
  • WATSON_USER = "использовать-токен-аутентификацию"
  • WATSON_PWD = b "[ТОКЕН]"

Как я уже сказал, в Watson я создал определенный "TLS Optional" и настроил устройство. Я проверил соединение с клиентом mosquitto, и оно сработало.

Любая помощь приветствуется !, Best!

mqttesp8266watson-iotmicropython

Ответы

Ответ 1 · рейтинг 3 · Francisco

Я нашел ответ, посмотрев на изменения кода в umqtt.simple (библиотека mqtt для esp8266)

Ответ заключается в том, что в примерах umqtt был тот, который использует hexlify (client_id), и я следовал стандартному:

client = MQTTClient(client_id=hexlify(MQTT_CLIENT_ID), server=MQTT_BROKER_IP, user=MQTT_USER, password=MQTT_PWD)

Видимо, брокер-москит понимает это, но не брокер Watson IBM. Переход на:

client = MQTTClient(client_id=MQTT_CLIENT_ID, server=MQTT_BROKER_IP, user=MQTT_USER, password=MQTT_PWD)

решает вопрос. Для Watson формат переменных следующий:

  • CLIENT_ID = байты
  • MQTT_BROKER_IP (или url) = строка
  • MQTT_USER = строка
  • MQTT_PWD = байты

Также обратите внимание на формат темы / сообщения.

Лучший!

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы