最近笔者购得“NodeMcu 物联网开发板 ESP8266无线收发模块 串口WIFI模块”一枚,大致了解了一下开发流程,主要分两步,烧固件和上传lua程序并执行
一、固件下载
固件一般可以通过三种方式获得,(1)云编译方式(针对应用开发者,主要是写Lua程序)(2)Docker编译(针对偶尔开发固件的用户,不需要搭建整个Linux编译环境)(3)Linux编译环境(针对从GitHub源码编译,需要整个编译工具链)
本文主要是初探,搞清楚整个开发流程,所以采用最简单的云编译的方式
二、云编译
1. 登录https://nodemcu-build.com/
2. 输入email(需要输入两次)
3. Select branch to build from选择master
4. Select modules to include默认的即可
5. 点击Start you build
一会儿Email中就会收到开始编译的邮件,大概10分钟后就可以收到编译完成的邮件,里面有编译好的固件,一个是float版本,一个是integer版本,两个的差别是Lua中支持的数值类型不同
nodemcu-master-7-modules-2018-03-15-14-11-49.zip
三、烧写固件
1. 下载烧写软件,网址https://github.com/nodemcu/nodemcu-flasher 里面有Windows32位和64位的ESP8266Flasher.exe
2. 打开ESP8266Flasher.exe
串口查看方法:计算机->管理->设备管理器->端口(COM和LPT)->我的wifi模块用的是ch340芯片,有340字样的是COM7
点击Flash开始烧写,这个过程比较耗时
四、编写、上传、执行Lua程序
下载开发软件,网址https://esp8266.ru/esplorer/
解压后点击ESPlorer.bat,需要先安装Java环境(步骤略)
按wifi模块上的rst键,复位模块,可以在界面右侧看到输出,如下图
在左边编写代码并保存成init.lua文件,如下图
从上文大家可能已经注意到了,几个ESPlorer的波特率设置的不一样,后面115200的那个是编写本博客时不小心把WIFI模块给刷坏了,后来修复好之后就这样了,而且修复之后wifi.sta.config函数的参数与之前不一样了,之前是wifi.sta.config(ssid,passwd), 在此我们不做深究,而我来详细说说我是怎么修复了,刷坏之后的现象是按rst复位之后,串口不断收到乱码,尝试过以下几种方法
按着flash键上电
刷0x00000.bin, 0x10000.bin,blank.bin,esp_init_data_default.bin
刷的时候把波特率设成115200,甚至频率调到26M和20M
后来采用清空flash的方法得以解决,步骤如下- 安装python2.7
- 下载get-pip.py,并执行python.exe get-pip.py
- 安装esptool,执行pip.exe install esptool
- 安装pyserial,执行pip.exe install pyserial
- 清空flash,执行esptool.exe --port COM7 erase_flash