使用MicroPython开发ESP32(04):无线网络使用和WebREPL

本文详细介绍ESP32使用MicroPython进行无线网络配置的方法,包括建立/连接无线网络、扫描可用网络、设置网络参数等操作,同时介绍了WebREPL工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

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

### 使用VSCode开发调试ESP32/ESP8266的MicroPython项目 #### 安装必要的软件包 为了在Visual Studio Code (VSCode) 中设置用于ESP32或ESP8266的MicroPython开发环境,需先确保已安装最新版本的Python解释器[^1]。 #### 配置VSCode扩展 接着,在VSCode内安装支持MicroPython编程的语言服务器其他辅助插件。推荐使用的扩展有Pylance(提供智能感知)、PlatformIO IDE(集成构建系统支持多种微控制器平台),还有专门针对MicroPython优化过的Micropython Extension for VSCode[^3]。 #### 下载并烧录固件 对于初次使用者来说,可能还需要下载适合目标硬件(ESP32或ESP8266) 的官方MicroPython固件镜像,并利用esptool.py脚本来完成刷机操作。这一步骤通常只需要执行一次除非打算更换不同的固件版本[^2]。 ```bash pip install esptool esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20210902-v1.17.bin ``` 请注意上述命令中的`/dev/ttyUSB0`应替换为实际连接设备对应的串口路径;而`.bin`文件名则取决于所选的具体固件版本。 #### 编写与上传代码至设备 一旦完成了前期准备工作之后就可以开始编写Python脚本了。可以创建一个新的`.py`文件来编辑想要部署到ESP上的应用程序逻辑。当准备好测试编写的程序时,可以通过Serial Monitor功能直接发送指令给ESP模块或将整个源码文件传输过去保存在其闪存里长期运行。 #### 调试技巧 借助于VSCode内置终端窗口配合miniterm.py或其他类似的串行通信工具能够方便地查看来自ESP的日志输出信息,这对于排查错误非常有用。另外也可以考虑采用WebREPL特性实现无线网络方式下的远程控制数据交换。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Naisu Xu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值