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

Мне удалось подключить 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!


person Francisco    schedule 02.09.2017    source источник


Ответы (1)


Я нашел ответ, посмотрев на изменения кода в 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 = байты

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

Лучший!

person Francisco    schedule 02.09.2017
comment
в примерах umqtt предложенный способ - не могли бы вы указать, где этот предлагаемый способ есть в примерах umqtt? Примеры umqtt являются примерами, вам нужно настроить их, чтобы они работали на вас. Нет предлагаемого способа для идентификатора клиента. - person pfalcon; 09.09.2017
comment
Привет. Каким-то образом я добрался до этого примера и последовал за ним в качестве ссылки. github.com/micropython/micropython-lib/blob/ master / umqtt.simple / Тогда я рассмотрел hexlify () как практику. - person Francisco; 10.09.2017
comment
Обновил ответ. Спасибо, pfalcon. - person Francisco; 10.09.2017