使用Micropython将ESP8266连接到IBM Watson

时间:2017-09-02 18:20:05

标签: mqtt esp8266 watson-iot micropython

我设法使用Micropython 1.9.2将ESP01连接到在我的计算机上运行的mosquitto代理。我还设法模拟了一个设备,并将一个mosquitto客户端从我的计算机连接到Watson Broker。但是,当我尝试将ESP直接连接到Watson时,我收到了拒绝连接#34;消息

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 =" use-token-auth"
  • WATSON_PWD = b" [TOKEN]"

正如我所说,在Watson中,我创建了已定义的" TLS Optional"并配置了该设备。我测试了与mosquitto客户端的连接并且它有效。

任何帮助都非常受欢迎!,最好!

1 个答案:

答案 0 :(得分:3)

我找到了答案,查看了umqtt.simple中的代码修订版(esp8266的mqtt库)

答案是在umqtt示例中有一个使用hexlify(client_id)并且我遵循标准:

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

显然,mosquitto经纪人了解这一点,但不了解Watson IBM经纪人。改为:

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

解决了这个问题。对于watson,变量格式如下:

  • CLIENT_ID = bytes
  • MQTT_BROKER_IP(或url)= string
  • MQTT_USER = string
  • MQTT_PWD = bytes

同时注意主题/消息格式。

最佳!