ESP8266和Node MCU扫盲与开发入门 您所在的位置:网站首页 官方博主 ESP8266和Node MCU扫盲与开发入门

ESP8266和Node MCU扫盲与开发入门

#ESP8266和Node MCU扫盲与开发入门| 来源: 网络整理| 查看: 265

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

一、ESP8266与NodeMCU

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

在这里插入图片描述

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

在这里插入图片描述

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

【Node MCU图纸和相关文档】

二、开发方式

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

三、方式1:串口AT指令

这种方式在刷入AT固件之后,我们只需要在单片机上编程跟ESP8266模块通讯即可,按照官方/安信可给出的AT指令手册发送与接收指令进行开发。 这种方式你可以很快按照网上的方法写出一个简单的应用,例如获取天气信息和时间信息。但是也有它的局限性,毕竟要额外加一片单片机,增加成本且不优雅,两块单片机之间协同完成任务肯定是比独自完成要复杂的,速度也受串口速度限制,SDK内有许许多多的API,AT指令应该做不到面面俱到。 如果只是想借助ESP将单片机数据上云这样一些简单应用,不想学太多东西不想折腾,这种方法是OK够用的。

四、方式2: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、不支持中文注释,这个问题非常严重。

五、方式3:Arduino C语言(推荐)

1.开发工具

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

Arduino安装与配置

推荐理由: 1、使用C语言开发(貌似还支持C++) 2、Arduino使用的人多 3、易上手 4、有很多的第三方组件/库可以调用。

但是不推荐使用Arduino编辑器直接写代码,虽然这个IDE集成度高、方便,但只适合写代码量不大的程序,因用这个编辑器写代码和用记事本写差别不大,太难受了。推荐使用VS Code代为编辑,调用Arduino编译下载(但是需要安装插件且配置比较麻烦)。

【如果不想太折腾,可以止步于此了。ESP8266/ESP32在Arduino这方面的第三方库和教程非常多,开源项目也多采用Arduino,其它的方式不如这种开发方式普及】

六、方式4:安信可一体化IDE(推荐)

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

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

我根据实际情况作了补充,点击以下链接跳转文章

【【2023年1月】ESP8266 SDK开发之AiThinkerIDE_V1.5.2安装配置以及编写烧录一个程序(ESP8266_RTOS_SDK 3.x)】

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

在这里插入图片描述

或者出现如下报错

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,=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即可通过编译。

待补充



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有