刷固件
固件从哪里来? 有三种途径获取固件:
- 使用云编译服务定制自己所需的固件
- 搭建Linux环境并编译项目源码
- 使用Docker编译
- 填写自己的邮箱,开始编译和完成编译时会发来邮件,完成时,邮件正文中带有固件的下载地址
- 选择分支,默认选择master分支即可
- 选择自己需要的功能模块,第一次接触,使用默认的选择即可
文章图片
如图所示,同时提供了integer和float版本的固件,这两个版本的大概区别为:integer中不支持浮点运算,float中支持浮点运算。对于初次使用,二选一均可。
用什么工具刷固件? 刷固件的工具有三个,如下:
- esptool.py:用python写的一个命令行工具,由乐鑫(即ESP8266芯片的厂家)开发的官方工具,在安装有python运行环境的机子上都可以运行,所以是跨平台的;
- NodeMCU PyFlasher:是esptool.py的GUI版本,由第三方开发,同样是跨平台的,方便易用。
- NodeMCU Flasher:由NodeMCU 固件的初始团队创建的工具,仅能运行在Windows系统。自2015年来,就不再被维护了,因此,用来刷较旧的固件尚可,但刷较新的固件是存在问题的。亲测,刷云编译的最新的固件,在刷时没有提示错误,但是刷后不能用,刷该工具的项目源码中提供的固件是成功的。
获取esptool.py
该工具需要Python 2.7 或 Python 3.4或者更新的Python环境,各个系统安装Python环境的方法请自行百度 or Google。在安装了Python后,使用命令:
pip install esptool
即可安装最新版本的esptoop.py。
如何刷固件
- 安装串口驱动:先安装串口驱动,我买到的NodeMCU开发板中,使用的串口芯片是CP2102,因此,点击这里下载对应系统的驱动,亲测该驱动可以很好地用在Windows 10 64位系统和mac OS 10.12.6中。
- 查看该串口设备路径:在Windows系统中,可以从设备管理器的“端口“这一项中看到新增的串口设备,例如“COM3“,如果看不到这样的设备,说明串口驱动存在异常。在mac系统中,可以在/dev下看到以cn.开头的几个设备,其中cn.SLAB_USBtoUART就是该串口设备,即该设备完整的路径为:/dev/cn.SLAB_USBtoUART。
- 使用命令刷固件 在将NodeMCU开发板通过数据线连接到电脑,并可以看到对应的串口设备后,刷固件的准备工作即准备完毕。假设下载到的固件名为:nodemcu-master.bin,此时,先按下RST键,然后按下FLASH键,随后放开FLASH键,最后放开RST键,此时执行如下最简单的命令:
$ esptool.py -p /dev/cu.SLAB_USBtoUART write_flash 0x0 nodemcu-master.bin
注意,在执行命令前,要按照如下顺序按下按键以让其进入Flash模式: - 如果出错:如果在刷了固件,按了RST复位后,板子右上角的蓝色灯频繁闪烁,说明固件刷出错了,这很可能是因为没有完全擦除原来的残留数据所致,因此,使用如下的命令擦出后再刷即可:
$ esptool.py -p /dev/cu.SLAB_USBtoUART erase_flash
在刷了固件后,使用ESPlorer这个IDE,右侧上部分选择该串口设备,波特率选用74880,这是ESP8266芯片打印boot log时默认的波特率。点击“Open“按钮打开该设备,按下RST键,即可看到boot log,可能存在部分乱码,但这是正常的,具体如下图所示:
文章图片
【NodeMCU|NodeMCU 刷固件上手笔记】然后在右下方的输入框中输入:print(“Hello”),即可看到该句Lua脚本的执行结果,在刚开始时可能存在乱码,推测这是由于波特率不一致所致,多发几次,会恢复正常,如下图所示:
文章图片
推荐阅读
- 树莓派|用PythonPi实现门禁系统-概述
- 智能控制|用PythonPi实现门禁系统-场景
- 开源一个安卓四轴上位机+配套ESP8266 UDP串口通信源码
- NodeMCU(1)环境搭建与固件烧录
- Arduino|VsCode Arduino生成[Error] Exit with code=1的解决方法
- NodeMCU网络UDP客户端请求,示例代码(C++开发)
- NodeMCU的smartConfig功能代码实现手机app配置模块连接网络(C++开发)
- 物联网|NodeMcu—局域网通信