NodeMCU|NodeMCU 刷固件上手笔记

刷固件
固件从哪里来? 有三种途径获取固件:

  1. 使用云编译服务定制自己所需的固件
  2. 搭建Linux环境并编译项目源码
  3. 使用Docker编译
其中,方法1最简单, 点击这里 进入定制页面,在该页面下需要填写如下信息:
  1. 填写自己的邮箱,开始编译和完成编译时会发来邮件,完成时,邮件正文中带有固件的下载地址
  2. 选择分支,默认选择master分支即可
  3. 选择自己需要的功能模块,第一次接触,使用默认的选择即可
大概几分钟内就能收到编译完成的邮件,邮件正文如图所示:
NodeMCU|NodeMCU 刷固件上手笔记
文章图片

如图所示,同时提供了integer和float版本的固件,这两个版本的大概区别为:integer中不支持浮点运算,float中支持浮点运算。对于初次使用,二选一均可。
用什么工具刷固件? 刷固件的工具有三个,如下:
  1. esptool.py:用python写的一个命令行工具,由乐鑫(即ESP8266芯片的厂家)开发的官方工具,在安装有python运行环境的机子上都可以运行,所以是跨平台的;
  2. NodeMCU PyFlasher:是esptool.py的GUI版本,由第三方开发,同样是跨平台的,方便易用。
  3. NodeMCU Flasher:由NodeMCU 固件的初始团队创建的工具,仅能运行在Windows系统。自2015年来,就不再被维护了,因此,用来刷较旧的固件尚可,但刷较新的固件是存在问题的。亲测,刷云编译的最新的固件,在刷时没有提示错误,但是刷后不能用,刷该工具的项目源码中提供的固件是成功的。
综上所述,在本人分别用过如上三个工具,踩了一圈坑后,来强烈建议大家使用esptool.py这个工具。
获取esptool.py
该工具需要Python 2.7 或 Python 3.4或者更新的Python环境,各个系统安装Python环境的方法请自行百度 or Google。在安装了Python后,使用命令:
pip install esptool

即可安装最新版本的esptoop.py。
如何刷固件
  1. 安装串口驱动:先安装串口驱动,我买到的NodeMCU开发板中,使用的串口芯片是CP2102,因此,点击这里下载对应系统的驱动,亲测该驱动可以很好地用在Windows 10 64位系统和mac OS 10.12.6中。
  2. 查看该串口设备路径:在Windows系统中,可以从设备管理器的“端口“这一项中看到新增的串口设备,例如“COM3“,如果看不到这样的设备,说明串口驱动存在异常。在mac系统中,可以在/dev下看到以cn.开头的几个设备,其中cn.SLAB_USBtoUART就是该串口设备,即该设备完整的路径为:/dev/cn.SLAB_USBtoUART。
  3. 使用命令刷固件 在将NodeMCU开发板通过数据线连接到电脑,并可以看到对应的串口设备后,刷固件的准备工作即准备完毕。假设下载到的固件名为:nodemcu-master.bin,此时,先按下RST键,然后按下FLASH键,随后放开FLASH键,最后放开RST键,此时执行如下最简单的命令:
    $ esptool.py -p /dev/cu.SLAB_USBtoUART write_flash 0x0 nodemcu-master.bin
    注意,在执行命令前,要按照如下顺序按下按键以让其进入Flash模式:
  4. 如果出错:如果在刷了固件,按了RST复位后,板子右上角的蓝色灯频繁闪烁,说明固件刷出错了,这很可能是因为没有完全擦除原来的残留数据所致,因此,使用如下的命令擦出后再刷即可:
    $ esptool.py -p /dev/cu.SLAB_USBtoUART erase_flash
初次体验
在刷了固件后,使用ESPlorer这个IDE,右侧上部分选择该串口设备,波特率选用74880,这是ESP8266芯片打印boot log时默认的波特率。点击“Open“按钮打开该设备,按下RST键,即可看到boot log,可能存在部分乱码,但这是正常的,具体如下图所示:
NodeMCU|NodeMCU 刷固件上手笔记
文章图片

【NodeMCU|NodeMCU 刷固件上手笔记】然后在右下方的输入框中输入:print(“Hello”),即可看到该句Lua脚本的执行结果,在刚开始时可能存在乱码,推测这是由于波特率不一致所致,多发几次,会恢复正常,如下图所示:
NodeMCU|NodeMCU 刷固件上手笔记
文章图片

    推荐阅读