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

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naisu Xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值