Arduino环境下开发NodeMCU(ESP8266)
以前用过ESP8266,只是一些简单的应用。将ESP8266与单片机相连,使用AT指令进行串口通信,从而达到发送信息、接收信息一些目的。由于最近项目,需要充分利用ESP8266的内部资源,所以对ESP8266的应用进行了更加深入的研究。现将学习成果,总结如下。如有遗漏或者错误,欢迎指出。
目前,我所知道的ESP8266的开发方式有这几种:
- AT指令方式 –烧录AT的固件包,使用AT指令与ESP8266交互,执行相应指令,需与单片机相连
- NodeMCU的lua开发 –烧录NodeMCU的固件包,使用Lua语言开发,使用ESP内部资源。
- Arduino IDE下的开发 –相当于直接编写固件,编译之后,烧录进ESP,使用ESP内部资源。
这几种方式我都有接触过,说说我的体会。
- AT指令开发方式:
优点:开发简单,资料较多。只需知道AT指令集,以及它的通信方式即可。
缺点:浪费资源,需要MCU与其通信,不能独立完成某项功能。 - NodeMCU的lua开发:NodeMCU本质也是ESP8266,只是它的固件是与lua脚本语言交互。
优点:节省资源,开发简单,代码量少。
缺点:
1.lua解释器执行效率较低,我最终换成ArduinoIDE开发,就是因为读取传感器数据时,老是漏掉一个数据。2.前期准备比较麻烦。需要准备相应功能的固件,烧录进去,然后使用lua语言和工具与之调试。 - Arduino IDE下的开发方式:
优点:集编程和烧录一体,使用很方便。语言执行效率高,节省资源,开发简单,该有的库也都有。重要的是开发语言,对于我用单片机的人来说,能够很快上手。
缺点:Arduino IDE需要写较长的代码时,不是很方便,如果需要查看底层函数或者方法,非常费劲。据说在VisualStudio 中有插件,因为自己电脑的原因,我没有尝试过。
Arduino IDE下开发NodeMCU(ESP8266)步骤:
官方的GitHub仓库:https://github.com/esp8266/Arduino
软件环境:Windows 7 64bit
Arduino 1.6.7
硬件环境:NodeMCU(CH340版)
- 打开Arduino IDE,文件–>首选项
- 附加开发板管理器网址:
http://wechat.doit.am/package_esp8266com_index.json
或者http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 项目 –> 加载库 –> 管理库,进入之后,它会自动下载库索引,等待下载完后。(注:如果不能下载,肯定是网络的原因,我使用的是vpn)在搜索栏输入esp8266,点击安装。
- 安装完成之后,点击 工具 –> 开发板,会看见esp8266 模块,选择相应的模块。之后,可以看到右下角出现了相应的信息。
- 前期准备工作完成,下边开始编写代码,并且烧录。
- 打开Arduino,点击 文件 –> 新建,点击 文件 –> 保存,输入文件名,确定。
写入代码:void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello,NodeMCU!");
}
点击 验证,确认没有报错。
7.连接NodeMCU,安装ch340驱动,点击 工具 –> 端口 –> 端口号。如果驱动安装成功,连接上NodeMCU之后,会显示相应的端口号。若没有显示,请检查驱动或者连接问题。
8.点击 上传,先进行编译,等待上传。上传完成之后,显示上传成功。
9.点击工具 –>串口监视器。可以看见,在不断的输出 Hello,NodeMCU。