ESP8266和Node MCU扫盲与开发入门


【本文发布地址https://blog.csdn.net/Stack_/article/details/119382046,未经许可不得转载,转载须注明出处】


一、ESP8266与NodeMCU



  1. 下图黑色的开发板是网上的NODE MCU开发板,由ESP8266WiFi模块、USB转TTL芯片、5V转3.3V的LDO、自动下载电路等组成。
  2. ESP8266指的是乐鑫推出的ESP8266EX芯片,用ESP8266EX芯片和FLASH芯片等封装在PCB上、金属屏蔽罩下便得到ESP8266模块。
  3. ESP01S、ESP12E、ESP12F这些型号的主芯片都是ESP8266EX,区别在于flash大小。



在这里插入图片描述

这是淘宝上的图,此WiFi模块厂商为乐鑫



在这里插入图片描述

这是根据上图开发板的开源图纸DIY的,此WiFi模块厂商为安信可



Node MCU图纸和相关文档



二、开发方式



开发方式@ CSDN Tyrion.Mon
AT指令刷入AT指令固件后给其usart接口发送AT指令、ESP8266返回对应信息进行开发。应用示例
官方SDK乐鑫官方SDK,LInux下开发或者Windows下用Eclipse开发
Lua 脚本刷入Node MCU的固件后,内部即运行了 Lua 解释器,编写Lua脚本进行开发。应用示例
Arduino乐鑫官方基于Arduino标准接口封装的SDK+Arduino编辑器开发
Micropython基于乐鑫官方SDK,待研究



三、方式1:NodeMCU Lua语言(不推荐)



1.开发工具

工具获取方式
固件可以从此网站 选择需要的模块并在线编译,编译完成后发送到邮箱下载。QQ邮箱不行,网易邮箱可以。
固件烧写工具ESP8266Flasher 下载
编写Lua代码工具ESPlorer 下载
API文档网站 或在此网站的链接进入GitHub下载所有固件源码及API文档

国内访问GitHub经常抽风,我将这些资源打包上传了。HERE



2.烧写固件

打开ESP8266Flasher,COM Port选择NodeMCU的端口。Config页下选择固件路径,Offset填入0x00000,并点一下左边的方框,令需要下载的固件对应的方框内出现个 x

在这里插入图片描述


Flash size大小根据实际大小选择。ESP12E和ESP12F的Flash都是32Mbit即4MByte

在这里插入图片描述


配置完成后点击Flash(F)按钮下载固件



3.编写一个Lua程序并上传到Node MCU运行


安装JDK,并配置Java环境变量后打开ESPlorer。 下载JDK8

在这里插入图片描述


1、其中左边窗口是Lua编辑器,右边是Node MCU通过uart打印的数据。
2、编辑器注释不支持中文,输入中文会导致代码上传失败或者运行出错。
3、在打印信息窗口上右键可清空内容。
4、NodeMCU上电默认从init.lua开始运行,如果不存在这个文件,将显示

cannot open init.lua: 
>

此时可以通过发送Lua代码运行或者点击Reload列出存储的文件并点击文件以运行程序。

5、使用哪个版本的固件就应该下载哪个版本的API手册,比如2.0.0和3.0.0的定时器API是不一样的,基于2.0.0的定时器代码无法在3.0.0的固件上运行.


按键
Save to ESP将该Lua文件保存到Node MCU中
Send to ESP将该Lua文件发送到Node MCU中,不保存。单次运行
Reload可以查看Flash空间以及上传了哪些文件,如果有文件会在Reload按键下列出来。点击文件可以运行,在文件上右键可以删除



同步网络时间的Lua代码




不推荐原因

1、此开发方式需要额外学习Lua语言,因此不适合想要快速开发的朋友,但想多学一门语言的朋友可以尝试一下。
2、此开发方式讨论度低,遇到问题难找到解决方法。
3、不支持中文注释。





四、方式2:Arduino C语言(推荐)



1.开发工具

工具获取方式
Arduino IDE(集成了编辑、编译和下载功能)下载地址
API文档HERE

Arduino安装与配置




不推荐使用Arduino编辑器直接写代码,虽然这个IDE集成度高、方便,但只适合写代码量不大的程序,因用这个编辑器写代码和用记事本写差别不大,太难受了。推荐使用VS Code代为编辑,调用Arduino编译下载





五、方式3:安信可一体化IDE(推荐)

乐鑫官方是没有推出Windows IDE的,要实现在Windows下编译,需要安信可提供的集成了所需组件的IDE,这种方法最简单。或者按照博主半颗心脏的博文自行搭建开发环境,适合喜欢折腾的朋友们。


[安信可官方博文]
[网友基于官方进行步骤细化的博文]


[Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。]


如果按照安信可官方教程进行,发现这里闪退


在这里插入图片描述

或者出现如下报错

The following Python requirements are not satisfied:
click>=5.0
pyserial>=3.0
future>=0.15.2
cryptography>=2.1.4
pyparsing>=2.0.3,<2.4.0
pyelftools>=0.22
Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.

那么可能是环境变量没有配置好,或者环境变量多了些东西导致冲突了,删除无用的变量路径即可。

例如我按照博主半颗心脏的教程配置环境变量时添加了

\cygwin64\bin

导致和安信可IDE配置的环境变量冲突,删除后重启IDE即可通过编译。