通过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 file
和Get 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项目,接下来的一章,我们详细讲述。