MicroPython:使用WebREPL局域网内远程连接开发板

我们使用的MicroPython开发板的芯片是基于ESP8266的,这是一款带有WIFI功能的单片机,MicroPython官方推出了WebREPL这个远程调试程序,这意味着我们在使用这块板子的时候,可以不使用USB数据线连接到电脑上,只要可以通过网络连接到开发板就能远程调试程序。

要使用网络远程访问,我们首先要将开发板连接到本地网络,我们可以事先编写好boot.py这个文件,里面的代码如下,boot.py将在在板子上电时运行:

def do_connect():
import network
sta_if = network.WLAN(network.STA_IF)
ap_if = network.WLAN(network.AP_IF)
if ap_if.active():
ap_if.active(False)
if not sta_if.isconnected():
print('connecting to network...')
sta_if.active(True)
sta_if.connect('MERCURY_D5C8', 'zhimadiy') #wifi的SSID和密码
while not sta_if.isconnected():
pass
print('network config:', sta_if.ifconfig())
do_connect()
gc.collect()

当程序成功运行后,我们可以在路由器的管理界面,看到开发板已经正确连接上我们的无线路由器了,同时路由器也为开发板分配了一个IP地址,我们等会就通过访问这个IP地址来访问开发板。当然我们也可以在路由器端为开发板分配一个固定的IP地址,以防路由器重启以后为所有网络终端重新分配IP。

仅仅连接到网络还是不够的,我们在第一次使用这个功能时需要进行一些配置,我们要先通过USB访问开发板输入以下代码:

然后就可看到访问密码已经设置成功,我们这就开启这个功能了:

如果想在开发板每次重启时都启动这个功能,我们可以在main.py中加入:

import webrepl
webrepl.start()

这样如果出现断电,程序错误或者其他原因导致板子重启的话,我们依然可以远程访问开发板,

板子连接好路由器以后,我们就可以使用WebREPL这个程序了,我们既可以直接访问官网提供的服务:http://micropython.org/webrepl/,在可以到https://github.com/micropython/webrepl 将整个程序保存到到本地以后运行。

我们打开这个程序以后,能看到下方的界面:

可以看出,这个程序就是一个网页,我们在左上角填写完IP地址,端口信息后,点击连接按钮,就能在下方黑色区域内,看到有字符输出,此时就可以在这个区域输入命令,与开发板交互了。