ESP8266折腾之路(三)使用WebREPL远程更新

本篇新增软件WebREPL在线版http://micropython.org/webrepl/下载地址:https://codeload.github.com/micropython/webrepl/zip/master在MicroPython on ESP8266的开发过程中,做的最多的事情就是上传文件,MicroPython File Uploader 虽然很好用,但是有两个缺点:必须将ESP8266开发板与电脑连接如果开发板中运行的程序未结束,例如定义了死循环用来监听信号时,文件的上传有可能会失败。上传失败自不必说,而必须与电脑连接就制约了我们开发的灵活性,想像一下:我们用8266做了一个通过手机控制的接线板控制器,封装后安装进接线板中,然后有一天想要给它增加一个定时开关功能,只需要简单更新几句代码并没有新增硬件设施的前提下,如果使用MicroPython File Uploader,需要从接线板中拆除后再连接电脑进行更新,这无疑会影响体验。ESP8266的官方SDK是支持云升级功能的,即可以通过远程烧写固件的方式对开发板进行固件更新,那MicroPython是否能实现类似的功能呢?今天的主角WebREPL为此而生。WebREPL客户端是MicroPython官方推荐的更新方式,功能很强大,通过网页的方式读取ESP8266的文件系统,可以上传文件或者下载开发板中已存在的文件,可以输入指令并实时查看开发板中的输出状态,完全取代串口调试。WebREPL客户端的两种使用方式在本篇开头已经写明,选择任意一种均可以连接开发板。WebREPL客户端必须与ESP8266开发板在同一局域网下,否则无法正常连接WebREPL在固件中默认是不启动的,所以在使用之前,需要先将服务打开。在输入框输入 import webrepl_setup

输入 import webrepl_setup看到当前WebREPL自动启动状态是未开启的

提示 webrepl未开启自动启动功能输入E开启上电时自动启动WebREPL功能

输入E开启要开启WebREPL必须先设定密码,密码为4-9个字符

连续输入两次4-9位的密码连续输入两次密码后,确认Web_REPL开启成功,重启开发板

webrepl已开启自动启动功能到这一步,按照我的预期,WebREPL服务应该已经是开启状态,而我们可以使用WebREPL客户端来进行连接了,实际情况却是此时如果使用客户端进行连接,将会始终连接失败,所以还需要有第6步。输入import webrepl;webrepl.start();

输入import webrepl;webrepl.start();成功开启WebREPL服务,此时即可通过WebREPL客户端来进行远程连接ESP8266开发板,并上传或下载文件。

开始WebREPL成功接下来使用WebREPL客户端连接开发板打开http://micropython.org/webrepl/并修改地址为上一步控制台输出的地址,我这里是ws://192.168.2.19:8266

改为ESP8266开发板ip地址2.点击连接后,输入刚刚设定的密码,输入密码时不会有任何回显,输入完毕直接回车,一切正常的情况即会连接成功。

连接成功现在已经可以通过WebREPL客户端对ESP8266进行操作,主窗口中输入python代码进行实时调试,右侧有文件上传与下载功能,上传功能与MicroPython File Uploader一样,下载功能可以直接下载ESP8266开发板中存在的文件。输入import os;os.listdir();,查看当前开发板中的文件名称

查看文件名将文件名输入到右侧的Get a file输入框中,点击Get from device按钮,即可将开发板中的文件下载到本地

下载webrepl_cfg.py文件4.webrepl_cfg.py文件中存放着我们之前设定的WebREPL密码,明文的〜!〜到此,使用WebREPL远程更新ESP8266开发板已经完成,不过虽然前面设置了在开发板启动时自动开启WebREPL服务的功能,实验证明,在开发板断电重启后,WebREPL服务并未开启,经检查,是因为在设置WebREPL服务之前,我们上传了自定义的boot.py文件,而MicroPython在开启WebREPL服务时,会将相关代码直接追加在boot.py文件尾,造成了语法错误,所以要手动更新一下boot.py文件。更新后的boot.py文件内容如下import network,webreplsta_if = network.WLAN(network.STA_IF)if not sta_if.isconnected(): print("connecting to network...") sta_if.active(True) sta_if.connect("<ap_name>", "<password>") # Connect to an AP <ap_name>&<password> is your route name&password while not sta_if.isconnected(): # Check for successful connection passprint("network config:", sta_if.ifconfig())webrepl.start()再也不用把开发板跟电脑相连啦!上一篇:ESP8266折腾之路(二) 连接WIFI路由器使能上网

(0)

相关推荐

  • Pycharm使用嵌入式Python

    安装烧录工具 adafruit-ampy 安装 Ampy是一个简单的命令行工具,用于通过串口连接操作文件并在CircuitPython或MicroPython板上运行代码.使用ampy,您可以将文件从 ...

  • 你家的WIFI安全吗?10块钱自制WIFI测试器(ESP8266)

    额--朋友们好啊,我是图吧老缺德人,今天咱简单说下三句话(划掉)教你10块钱让你的朋友们都掉线的操作,10块钱自制WIFI KILLER(ESP 8266 DEAUTHER). 其实咱以前虽然多年以前 ...

  • MicroPython 交叉编译器(win10构建)

    MicroPython 交叉编译器(win10构建)

  • ESP8266上的MicroPython入门(0)

    最近鸽了很久,其实有很多文章没有发出来.天天看各路大佬得万字长文,感觉自己学的太水,羞射....不好意思发.但是不写吧.又感觉对不起自己得99个粉丝(昨天取关了一个). Python and Micr ...

  • microPython源码分析.1

    我最近写了很多microPython的程序,越写越回不到写C的日子.你说在这个背后是如何实现这一切的?为什么在烧录一个几百kb的bin文件之后就会获得这些魔法效果?我可不可以把这种魔法效果移植到别处呢 ...

  • ESP32+Thonny+固件烧录+编写建议

    https://micropython.org/download/esp32/ http://www.netbian.com/desk/23211.htm 我们此次的主角 这个实在是太新了,我不敢用 ...

  • microPython源码分析.2

    这个目录里面是最小的实现 这个目录里面是一些驱动 底层驱动 类Unix上面用于编译py的编译器 Python的核心实现 STM32上面的mpy实现 Unix上面的mpy实现 upip,DFU这些工具的 ...

  • Abaqus基础知识系列讲堂(1):Abaqus 中的文件类型及功能

    Abaqus 分析过程中会生成大量不同的文件类型,如表1所示,详细介绍如下:表1  Abaqus 中的文件类型文件类型功能*.abq状态文件,仅用于 Abaqus/Explicit 分析,重启动分析时 ...

  • “物联网开发实战”学习笔记-(一)硬件开发环境的搭建

    这里的分享是通过自己的整理总结出的一个课程的学习笔记,我想用简洁易懂的步骤来分享一个物联网建立的过程. 这里课程上有四个 4 个产品场景 1.可以手机控制的智能电灯 2.可以基于光线自动调节的智能电灯 ...

  • ESP8266 刷写MicroPython固件

    固件有很多得种类 这个是下载得页面 官方支持ESP8266,亲生的就是好 高度集成 ESP8266是业内集成度最高的Wi-Fi芯片,最小封装尺寸仅为5mmx5mm.ESP8266高度集成了天线开关.射 ...