【ESP8266】基於ESP8266的MicroPython連接MQTT服務器


前言

這一篇文章介紹的是使用運行MicroPython的ESP8266去連接MQTT服務器。也算是填了之前的坑。

開發環境

  • Windows 10 x64
  • NodeMCU
  • uPyLoader
  • MicroPython 1.8.7

MicroPython的MQTT

MicroPython是一款可以運行於微控制器的Python語言,除了繼承了Python的語言特性以外,當然也繼承了Python強大的功能庫。不過在MicroPython上使用功能庫需要到Github手動下載。當然,為了方便讀者下載,我上傳該umqtt庫到了CSDN資源,點擊這里查看。

MicroPython是支持MQTT客戶端的,在上面給出的連接中,找到umqtt.simple文件夾,里面就有使用MQTT接口的例程。在ESP8266的MicroPython官方API文檔中,並沒有給出這個接口的介紹,所以需要到搜索下相關資料。

使用MQTT

本小節將使用uPyLoader下載文件,如果不會uPyLoader也沒關系,並不影響理解,對uPyLoader感興趣的話可以參考后面的相關文章。

進入umqtt.simple目錄,把umqtt文件夾中的simple.py文件下載到ESP8266。再備份一下example_sub.py,然后修改里面的代碼如下。

import time from simple import MQTTClient # ===添加下面參數=== USER = "admin" PWD = "password" # ……省略…… # 修改main函數,添加port、USER、PWD參數 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") # 修改為相應的MQTT服務器地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

因為博主使用的本地的MQTT服務器(Apache-Apollo),所以端口是61613。MicroPython的MQTT庫中默認的是1883,可以按需修改。

如果也想自己搭建本地MQTT服務器做測試,可以參考這篇文章《在Windows下搭建MQTT服務器》。

打開uPyLoader的終端(菜單欄->「View」->「Terminal」),然后運行example_sub.py,觀察終端是否啟動成功,最后就可以看到控制台有客戶端連接上了。

uPyLoader運行example_sub.py

MQTT控制台和uPyLoader終端

結語

自此,使用基於ESP8266的MicroPython連接MQTT服務器的步驟就到這里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM