使用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 – open 、 1 – WEP 、 2 – WPA-PSK 、 3 – WPA2-PSK 、 4 – 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下载地址: WebREPL在线托管版本地址:
总结
无线网络功能使用比较简单,更多内容可以参考下面链接:
