使用MicroPython开发ESP32(04):无线网络使用和WebREPL
Posted Naisu Xu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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下载地址:https://github.com/micropython/webrepl
WebREPL在线托管版本地址:http://micropython.org/webrepl
总结
无线网络功能使用比较简单,更多内容可以参考下面链接:
http://docs.micropython.org/en/latest/library/network.WLAN.html
以上是关于使用MicroPython开发ESP32(04):无线网络使用和WebREPL的主要内容,如果未能解决你的问题,请参考以下文章
ESP32在Thonny 环境下 MicroPython固件烧录以及开发使用