2017-09-02 99 views
0

我設法使用Micropython 1.9.2將ESP01連接到在我的計算機上運行的mosquitto broker。我還設法模擬了一臺設備,並將蚊子客戶端從我的電腦連接到Watson Broker。但是,當我嘗試將ESP直接連接到沃森我收到 「連接被拒絕」 的消息使用Micropython將ESP8266連接到IBM 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 = 「使用令牌-AUTH」
  • WATSON_PWD = b 「的[TOKEN]」

正如我所說,在Watson中,我創建了定義的「TLS可選」並配置了該設備。我測試了與蚊子客戶端的連接,它工作。

任何幫助都超過歡迎!,最好!

回答

3

我找到了答案看着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) 

顯然mosquitto經紀人理解這一點,但不是沃森IBM經紀人。改爲:

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

解決了這個問題。沃森變量格式如下:

  • CLIENT_ID =字節
  • MQTT_BROKER_IP(或URL)=串
  • MQTT_USER =串
  • MQTT_PWD =字節

,請注意話題/消息格式。

最好!

+0

「在umqtt示例中建議的方式」 - 您能指出umqtt示例中存在這種「建議的方式」嗎? umqtt的例子就是例子,你需要調整它們來爲你工作。客戶端ID沒有「建議的方式」。 – pfalcon

+0

嗨。不知何故,我到達這個例子,並作爲參考。 https://github.com/micropython/micropython-lib/blob/master/umqtt.simple/example_sub_led.py 然後我認爲hexlify()是一種實踐。 – Francisco

+0

更新了答案。謝謝pfalcon。 – Francisco