使用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

发布了68 篇原创文章 · 获赞 176 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/Naisu_kun/article/details/104049030