使用MicroPython開發ESP32(04):無線網絡使用和WebREPL

目的

ESP32的一大特色就是對無線網絡的支持,本文將介紹使用MicroPython建立/連接無線網絡。

無線局域網(WLAN)

函數說明

MicroPython中使用無線網主要是用到了 network 模塊中的 WLAN 類,具體函數說明如下:

  • class network.WLAN(interface_id)
    構造函數,用於聲明WLAN對象,參數可選 network.STA_IF (連接到已有無線網)、 network.AP_IF (作爲網絡接入點);
  • WLAN.active([is_active])
    不填參數使用返回無線網絡功能狀態,填入 True 則啓用無線網絡,填入 False 則停用無線網絡;
  • WLAN.connect(ssid=None, password=None, *, bssid=None)
    STA模式下用於連接到無線網絡,參數分別是 ssid 網絡名、 password 密碼、 bssid 網絡設備的mac地址;
  • WLAN.disconnect()
    用於斷開當前網絡連接;
  • WLAN.scan()
    STA模式下掃描環境中可用的無線網,返回一個表示無線網絡信息的元組組成的列表,無線網絡信息格式如下:
    (ssid, bssid, channel, RSSI, authmode, hidden)
    bssid以二進制形式表示,可以用ubinascii.hexlify()轉換爲ASCII形式;
    channel爲信道號,2.4G網絡信道號爲1~13,基於信道污染原因,常取1、6、11;
    RSSI爲信號強度,數值越小信號越好;
    authmode爲加密方式,爲別爲 0 – open1 – WEP2 – WPA-PSK3 – WPA2-PSK4 – WPA/WPA2-PSK
    hidden表示是否無線網絡隱藏,False – 0 – visible – 可見的True – 1 – hidden –隱藏的 ;
  • WLAN.status([param])
    不填寫參數時返回網絡工作狀態:
    STAT_IDLE – 無線網絡未開啓;
    STAT_CONNECTING – 正在連接;
    STAT_WRONG_PASSWORD – 因密碼錯誤連接失敗;
    STAT_NO_AP_FOUND – 未找到接入點;
    STAT_CONNECT_FAIL – 其它原因連接失敗;
    STAT_GOT_IP – 連接成功獲得IP;
    STA模式下還可以填入 'rssi' 作爲參數獲取當前網絡信號強度;
  • WLAN.isconnected()
    STA模式下如果已聯網且有IP則返回True;
    AP模式下如果有設備接入則返回True;
  • WLAN.ifconfig([(ip, subnet, gateway, dns)])
    不帶參數使用時將返回當前設備網絡參數,參數將以一個帶四個項的元組組織,參數分別爲IP地址、子網掩碼、網關地址、DNS服務器地址;
    帶參數使用時可以設置設備網絡參數,例如下面方式:
    nic.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
  • WLAN.config('param')
    WLAN.config(param=value, ...)
    用來查詢或修改設備網絡參數,需要通過命名關鍵詞參數方式使用,可用參數如下:
    mac – 設備物理地址
    essid – ap模式網絡名稱
    channel – 信道號
    hidden – 是否隱藏
    authmode – 加密方式
    password – ap模式密碼
    dhcp_hostname – dhcp主機名

使用演示

STA模式
在這裏插入圖片描述
上圖中我連接了名爲(SSID) AAA 、密碼是12345678的無線網絡,連上網絡後打印了IP、子網掩碼、網關、DNS服務器信息。

AP模式
在這裏插入圖片描述
上圖中啓用了無線接入點,網絡名稱是lalala、加密方式是WPA/WPA2-PSK、密碼是12345678;

WebREPL

在之前的文章演示中都是通過串口和開發板進行交互的,在啓用網絡功能後我們就可以通過網絡進行交互了,如下圖演示:
在這裏插入圖片描述
上圖就是通過瀏覽器訪問開發板IP地址進行的交互,上面輸入密碼時和Linux習慣一樣,不會顯示輸入的情況。在登錄成功後按 Ctrl + B 可以進入Shell調試。在該工具中也可以傳輸文件。

在使用該工具前需要先在開發板上進行設置:
在這裏插入圖片描述
設置時輸入密碼和端口號,端口號也可以缺省,缺省的情況下默認端口號爲8266。對於webrepl的設置會保存於文件中,重啓設備後也有效。可以使用 webrepl.stop() 方法關閉服務。可以寫一個自動初始化網絡的代碼保存爲 main.py 放到模塊中,這樣在下次啓動後就可以直接通過網絡進行調試了。

WebREPL下載地址:https://github.com/micropython/webrepl
WebREPL在線託管版本地址:http://micropython.org/webrepl

總結

無線網絡功能使用比較簡單,更多內容可以參考下面鏈接:
http://docs.micropython.org/en/latest/library/network.WLAN.html

發佈了69 篇原創文章 · 獲贊 208 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章