前言
這一篇文章介紹的是使用運(yùn)行MicroPython的ESP8266去連接MQTT服務(wù)器。也算是填了之前的坑坊谁。
開(kāi)發(fā)環(huán)境
- Windows 10 x64
- NodeMCU
- uPyLoader
- MicroPython 1.8.7
MicroPython的MQTT
MicroPython是一款可以運(yùn)行于微控制器的Python語(yǔ)言爬橡,除了繼承了Python的語(yǔ)言特性以外,當(dāng)然也繼承了Python強(qiáng)大的功能庫(kù)。不過(guò)在MicroPython上使用功能庫(kù)需要到這里手動(dòng)下載或參考挠唆。
MicroPython是支持MQTT客戶(hù)端的,在上面給出的連接中嘱吗,找到umqtt.simple文件夾玄组,里面就有使用MQTT接口的例程。在ESP8266的MicroPython官方API文檔中谒麦,并沒(méi)有給出這個(gè)接口的介紹俄讹,所以需要到搜索下相關(guān)資料。
使用MQTT
本小節(jié)將使用uPyLoader下載文件绕德,如果不會(huì)uPyLoader也沒(méi)關(guān)系患膛,并不影響理解,對(duì)uPyLoader感興趣的話(huà)可以參考后面的相關(guān)文章耻蛇。
進(jìn)入micropython-lib-master\umqtt.simple目錄剩瓶,把umqtt文件夾中的simple.py文件下載到ESP8266。再備份一下example_sub.py城丧,然后修改里面的代碼如下延曙。
import time
from simple import MQTTClient
# ===添加下面參數(shù)===
USER = "admin"
PWD = "password"
# ……省略……
# 修改main函數(shù),添加port亡哄、USER枝缔、PWD參數(shù)
def main(server="localhost", port=61613):
c = MQTTClient("umqtt_client", server, port, USER, PWD)
print(c.addr) # 打印信息用,可加可不加
# ……省略……
# ……省略……
if __name__ == "__main__":
main("192.168.10.70") # 修改為相應(yīng)的MQTT服務(wù)器地址
因?yàn)椴┲魇褂玫谋镜氐腗QTT服務(wù)器(Apache-Apollo)蚊惯,所以端口是61613愿卸。MicroPython的MQTT庫(kù)中默認(rèn)的是1883,可以按需修改截型。
如果也想自己搭建本地MQTT服務(wù)器做測(cè)試趴荸,可以參考這篇文章《在Windows下搭建MQTT服務(wù)器》。
打開(kāi)uPyLoader的終端(菜單欄->「View」->「Terminal」)宦焦,然后運(yùn)行example_sub.py发钝,觀察終端是否啟動(dòng)成功顿涣,最后就可以看到控制臺(tái)有客戶(hù)端連接上了。
結(jié)語(yǔ)
自此酝豪,使用基于ESP8266的MicroPython連接MQTT服務(wù)器的步驟就到這里涛碑。
相關(guān)文章
- 基于ESP8266的MicroPython入門(mén)筆記
- 使用uPyLoader調(diào)試運(yùn)行MicroPython的ESP8266
- 使用ESP8266原生SDK進(jìn)行MQTT連接(C語(yǔ)言)
本文首發(fā)于CSDN:http://blog.csdn.net/yannanxiu/article/details/71641738