跳转至

通过WiFi连接到REPL

概要

在某些特定的场合和需求下,你可能想要通过无线的方式接入REPL,设想你正在使用MicroPython 和ESP32测试一辆自己制作的小车,但是小车的运行不希望被数据线所牵绊。这个时候,你可能就需要通过WiFi接入到REPL。

本节内容主要介绍通过WiFi连接到REPL的方法。

首先连接到WiFi

想要通过WiFi连接到REPL,首先你要让你的设备连接到WiFi。

作为一块叱咤物联网的MCU,怎么能缺少了连接WiFi的这一技能?

使用network模块连接至WIFI

network模块中的其余内容,我们之后会在network模块中详细的讲解。

import network # 导入network模块
wifi = network.WLAN(network.STA_IF)  # 设置为STA_IF模式,即接入wifi路由器的模式AP_IF为作为热点

输出如下图所示:

接下来我们需要激活wifi,并进行连接

wifi.active(True) # 将wifi激活
wifi.connect('<essid>','<password>') #连接至wifi

注意: 请将\<essid>替换为你的WiFi名称,\<password>替换为你的WiFi密码

输出如下图所示:

如果如上图中,没有出现>>>提示符,按下回车,即完成连接。

查看wifi连接状态

使用ifconfig查看网络状态:

分别对应于:

  • 192.168.2.189 内网IP

  • 255.255.255.0 子网掩码

  • 192.168.2.1 网关

接下来,我们开始进入正题。

WebREPL

WebREPL是一个使用Web前端技术栈构建的单页应用。

WebREPL允许你通过WiFi使用MicroPython的REPL,通过浏览器连接,使用了WebSockt通信协议

在MicroPython的网站上托管了WebREPL的单页应用,点击如下链接即可访问:

http://micropython.org/webrepl

如上图所示,即就是WebREPL。

WebREPL允许你通过WiFi使用MicroPython的REPL,通过浏览器连接。我们现在打开的这个界面 ,就是WebREPL在浏览器中的操作面板。在使用之前,我们需要在MicroPython中稍作配置,才能和这个界面建立连接。

之后你需要进行的步骤分为以下几步:

  • 初始化WebREPL

  • 开启WebREPL

初始化WebREPL

初次使用WebREPL,我们先要使用webrepl_setup模块来进行初始化设置。

>>> import webrepl_setup
>>> 

然后如图所示,按照笔者的标注行事。

笔者去读过该模块的源码,以上的步骤其实就是把你设置的密码保存到一个名为webrepl_cfg.py的脚本文件中,然后修改你boot.py中的代码,去掉了哪些注释用的#

为什么不重启呢, 因为重启了你需要再连一遍wifi

开启WebREPL

接下来,我们直接开启webrepl的服务:

>>> import webrepl
>>> webrepl.start()

如上两句指令执行后,如下图所示:

记住线框中的URL,然后打开我们之前在浏览器中访问的WebREPL的页面开始进行连接。

连接WebREPL

访问http://micropython.org/webrepl

输入正确的URL,然后点击Connet按钮

看到Password字样后,输入你设置的密码,输入密码时,并不会显示你的密码,请确保输入的准确性,然后回车。

当你看到亲切的>>>提示符时,则表明你已成功的连接到了WebREPL

试试WebREPL

现在,你可以在这个Web页面上欢快的玩耍了。

REPL里能做的,WebREPL都能做

你可以输入几行代码试着执行:

你甚至可以像在上一节串口连接REPL的教程里那样,试着通过WiFi来点亮一个LED灯。

同时你依旧可以使用ctrl+E进入粘贴模式,但是粘贴前需要你先按下ctrl+A

你也依旧可以使用ctrl+C来终止你的程序。

使用WebREPL上传文件

当然,WebREPL界面上还有Send a fileGet a file的按钮,分别用来上传文件和获取文件:

  • Send a file 点击上传一个文件到MicroPython的文件系统

警告

不要选择空的文件上传,WebREPL存在这个Bug

不要传入带中文字符的文件,MicroPython的文件系统不支持中文字符

选择文件

点击上传

上传成功

  • Get a file 输入一个文件名称,从MicroPython的文件系统下载到本地
    输入文件名,点击获取

下载该文件

至此,WebREPL的所有内容便全部介绍完毕了。

WebREPL并不是很理想的工具

看完以上的教程,我相信大部分的读者都仿佛被WebREPL这一神奇的工具所吸引住了。

WebREPL相较于串口连接的REPL而言,具有以下几点优势:

  • 摆脱了数据线的束缚,可以实现无线接入REPL

  • WebREPL可以上传文件,并从MicroPython获取到文件

我们曾说,REPL是在MicroPython中 测试代码 *和 *运行代码 **最简单的方法。

无线的方式,取消了我们对*测试代码 *运行代码的接线束缚。

文件的上传和获取,让我们更加容易的更改和获取MicroPython中的代码。

在一定程度上,他确实可以提高我们的效率,但是他依旧存在不足,设计上也存在些不合理的地方:

  • WebREPL开机的自动启动,依赖于WiFi连接的建立,而新手用户并不会合理而优雅的去处理开机自动启动WiFi这一问题

  • WebREPL存在一些技术上的bug

  • WebREPL基本不再有更新和迭代,以及缺少维护

我们1Z实验室坚信,工具本身应该足够简单易用,介于WebREPL的不够理想,我们秉承着Make Things Easy的理念,创建了EMP项目,接下来的一章,我们详细讲述。