ESP8266和Node MCU扫盲与开发入门

ESP8266-NodeMCU物联网原理介绍以及说明(新手入门) 阅读详情
AI摘要

本文介绍ESP8266及其开发板NodeMCU的四种主要开发方式:AT指令、Lua语言、Arduino C语言及安信可一体化IDE。详细对比各方式优缺点,并提供开发工具、烧写固件及代码示例。


【本文发布地址https://blog.youkuaiyun.com/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图纸和相关文档】



二、开发方式



开发方式@ 优快云 Tyrion.Mon
AT指令刷入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(推荐)


我是从51、32开始学习嵌入式的,更喜欢基于乐鑫官方SDK去开发应用。

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

如果有Linux开发基础,直接在Linux下使用官方SDK开发更省事,不用太折腾开发环境。


开发环境配置如下:


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

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


由于乐鑫的SDK在持续更新,安信可的IDE也会更新,导致教程会部分过时。我根据实际情况作了补充,点击以下链接跳转文章

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



【23年10月更新:应用示例】



方法5:官方SDK+Ubuntu开发


目前正在体验,环境配置在这里




待补充

【物联网】基础篇 ESP8266-NodeMCU学习一 【物联网】基础篇 ESP8266-NodeMCU学习一 本篇文章: 本篇文章主要是关于ESP8266-NodeMCU的学习。 正文如下: 一、ESP8266-NodeMCU NodeMCU是一个IOT物联网硬件开发板,它支持WIFI功能且使用方法和Arduino开发板类似。我们可以使用Arduino IDE对这块板子进行开发。 . 阅读详情

相关推荐

入坑nodemcu,从刷固件到点亮LED,读完这篇文章就够了

nodemcu是一个开源的物联网平台,它包含了可以运行在esp8266 Wi-FiSoC芯片之上的固件,以及基于ESP-12模组的硬件,使用Lua脚本语言编程,当然也支持AT指令。启动Esplorer,连接nodemcu,点击“clip Info"按键会如图显示,这时候点一下nodemcu上的RST键就连接成功了。原因是硬件加电时,会加载init.lua并执行,因为我们刚刷的固件,是没有这个文件的,因为我们需要编写一个然后再上传到硬件模块里。选好需要的模块,填写好邮箱,等待一会邮箱就会收到固件的下载链接。

智云说的博客 4114

Node MCU / ESP8266运行Lua脚本从NTP服务器同步网络时间

--NTP服务器列表,可百度到 NTP_SERVERS = { "ntp.aliyun.com", "time.asia.apple.com", "cn.ntp.org.cn", "time.windows.com", "cn.pool.ntp.org" } --[[以下为WiFi连接配置--]]

Stack_的博客 1727

物联网关键技术--NodeMcu网络服务器搭建

NodeMcu网络服务器搭建

FENGYULU_0701的博客 1231

智能家居硬件开源项目去哪找?4类渠道与实操学习顺序全拆解

智能家居设备的落地离不开软硬件的协同设计,而开源硬件项目正是开发者快速验证方案、降低原型成本的重要资源。常见的智能家居硬件项目通常基于ESP32、树莓派等平台,借助MQTT协议实现设备互联,并接入Home Assistant等开源平台完成自动化联动。理解从单板功能到系统级集成的分层逻辑,有助于按需检索优质仓库。GitHub主题标签、立创开源广场、芯片原厂SDK以及技术社区教程,构成了互补的资源矩阵。通过环境搭建、通信协议打通、多设备协同和硬件改板等递进式实践路径,开发者可以高效筛选文档完整、活跃度高的项目,

weixin_33836874的博客 286

ESP8266 MQTT开发IOT系列教程

ESP8266 MQTT开发IOT教程 使用esp8266 01s 12f等wifi模块、MQTT的通讯协议 arduino IDE开发IOT应用教程 更多学习知识 访问 niehen.cn ESP开发学习基础知识 基础知识包括对esp模块的认识与了解 mqtt协议的了解,arduino IDE运用代码编写等等。 arduino基础学习 esp系列模块的介绍 mqtt协议的介绍与使用 利用m...

Nie_Hen的博客 3074

【从零开始学习物联网开发】基于Arduino平台的NodeMCU_ESP-12F教程——开发环境搭建

官网下载地址。

qq_15776011的博客 3106

【踩坑记录】NodeMCU(ESP8266)固件烧录

因为学习需要,所以搞了块ESP8266模块来学习物联网组建,数据上云等。这两天随便搞了一下,还是遇到了一些比较麻烦的事情。还在本人还算有耐心,加上运气好,问题基本解决了。所以把踩坑记录(学习日志)发优快云记一下。NodeMCU开发板是在某宝随便找家店买来的,十几块钱的东西没怎么想就买了,也是因为自己不常玩就没有这方面门门道道的见识,图1是购置的截图。NodeMCU是指搭载了ESP8266芯片的开发版,集成了其他的东西可以让我们更方便地使用。ESP8266就是实现核心功能的芯片。

weixin_70618422的博客 3154

NodeMCU ESP8266 保姆级学习教程(图文并茂)

相信看这篇文章的同学,希望可以熟悉ESP8266这个硬件平台。当然我们也通过基于ESP8266这个硬件平台,在标准化硬件的Arduino的基础上做一些有趣的硬件小项目。当然这个过程中,我们暂时可以忽略掉很多硬件的细节,集中精力在硬件原理的学习,以及应用的实现上,提高学习兴趣,更加有信心地去完成学习计划。Arduino是一个灵活的平台,目的是为了降低电子项目的门槛,硬件和软件都是开源,可以用它来快速构建各种电子设备。

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 8406

NodeMCU学习(二)--NodeMCU介绍及使用(一)

1.NodeMCU简介 NodeMCU 是一款开源的物联网开发平台,其固件和开发板均开源,自带 WIFI 模块。基于该平台,用几行简单的 Lua 脚本就能开发物联网应用。 其主要特点如下: 像 Arduino 一样操作硬件 IO 提供硬件的高级接口,可以将应用开发者从繁复的硬件配置、寄存器操作中解放出来。用交互式 Lua 脚本,像 Arduino 一样编写硬件代码! 用 Nodejs 类似语法写网络应用 事件驱动型 API 极大的方便了用户进行网络应用开发,使用类似 Nodejs 的方式

zwb_578209160的博客 1万+

NodeMCU ESP8266硬件开发板的熟悉

ESP8266是乐鑫开发的一款低成本 Wi-Fi 芯片。ESP8266可以作为一共独立的设备进行运行,也可以作为一款WiFi模块,通过AT指令进行控制。例如,您可以将 ESP8266 连接到 单片机,通过串口AT指令实现增加 Wi-Fi 的功能。最实际的应用是将它其用作独立设备。这个后面我们会介绍,包括开发的内容,以及AT指令等。使用 ESP8266,我们可以像像使用 Arduino 一样控制输入和输出,并且集成了 Wi-Fi 功能。

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4311

ESP 保姆级教程 基础篇 —— 环境安装、NodeMcu引脚介绍

简单介绍软硬件环境安装以及检测,介绍NodeMcu上的GPIO引脚功能

单片机菜鸟哥的博客 9834

01-ESP8266 NodeMCU 物联网开发初识

ESP8266物联网开发从零开始

dangerqsq的博客 6000

ESP32系列之LVGL(三):Gui-Guider的使用

Gui-Guider的使用

m0_55986987的博客 2万+

03-NodeMCU引脚和接线、点亮外部LED

识别ESP8266的引脚,进行数字和模拟的输入输出,并用外部LED实现闪烁功能

dangerqsq的博客 7188

Visio 2013安装遇阻?手把手教你搞定注册表权限错误1402(附64位系统特殊处理)

本文详细解析了Visio 2013安装过程中常见的注册表权限错误1402问题,特别是在64位系统下的特殊处理方法。通过分步指导如何修改注册表权限、处理Wow6432Node分支以及使用高级工具如subinacl,帮助用户顺利完成安装并避免常见连带问题。

t8u9v0w1x的博客 540

当OTN网络遭遇LOS告警:5个运维老手才知道的故障定位技巧(含CA动作对照表)

本文深入解析OTN网络中LOS告警的实战定位技巧,涵盖光功率深度诊断、模块差异分析及核心的CA动作机制。通过逆向追踪告警流与对照速查表,帮助运维人员快速锁定故障段落,区分硬软故障,并掌握系统健康度评估方法,从而提升排障效率与网络稳定性。

weixin_29266007的博客 550

ESP8266-NodeMCU (1) 开发板介绍

ESP8266-NodeMCU

SunnerChen的博客 1万+

5分钟搞定Conflux钱包注册:Fluent钱包从安装到转账全流程指南

本文提供Conflux公链上Fluent钱包的完整注册和使用指南,涵盖从安装、助记词备份到CFX转账的全流程。特别强调安全操作要点,包括助记词保管和网络选择,帮助用户5分钟内快速掌握这款国产公链钱包的核心功能,确保数字资产安全。

weixin_29181861的博客 244

嵌入式硬件设计(一)|利用 NodeMCU-ESP8266 开发板和继电器结合APP“点灯•blinker”制作Wi-Fi智能开关(附有关硬件详细资料)

本文主要讲述利用 NodeMCU-ESP8266 开发板和继电器通过手机 APP “ 点灯 • Blinker ” 制作一款能够由手机控制的WiFi 智能开关,从而实现智能物联。

孟俊宇的博客 3155

Qt 5.14安装(配置MSVC 2017)

本文主要介绍Qt MSVC的安装,VS2017.

ifeng12358的博客 3709

Linux----Ubuntu系统官网下载iso镜像文件

Linux----Ubuntu系统官网下载iso镜像文件

MQ0522的博客 5万+

使用nodeMCU平台mqtt协议实现物联网通信

nodeMCU是物联网硬件模块,要联网,要发信息,就用mqtt协议走起来。怎么走,请看本文咯

newchenxf的专栏 1万+

LDRA Testbed(TBrun)软件单元测试_实例讲解(对多次调用的函数打桩)

在之前的文章《LDRA Testbed(TBrun)软件单元测试_操作指南》中,已经讲解了如何使用TBrun进行软件单元测试的基本操作步骤。本篇文章将结合实例进一步讲解被测函数中包含多次调用其他函数时,如何对其打桩来实现测试目的(详细的操作流程本文不再重述,若有不清楚的,可以结合之前的操作指南一起来看)。本文以一个被测函数作为示例,讲解了如何使用Testbed(TBrun)对涉及到多次调用其他函数的被测函数进行单元测试。本文的示例可能比较简单,但是思路、方法和流程都是通用的,希望对大家有所帮助。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1461

【ESP8266-NodeMCU软硬串口通讯】

通过对本次采用ESP8266node MCU开发板,利用自身软硬件串口通讯,采用关键字符串实现开灯功能。,接下来会有许多有趣的实验,尝试与Arduino通讯做语音小车,进而丰富我们的生活。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣ESP8266-NodeMCU物联网开发之Arduino环境搭建。

vor234的博客 7791

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

为减轻主核的负载率或者平衡各个核的资源分配,通常需要把一些MCU内部资源分配到从核上,在EB tresos工具中,通过ResourceM模块实现多核资源分配。

m0_38045338的博客 1387

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Node MCU V3学习(基于ESP8266)

3:安装u8g2图形库,直接在项目-->导入库-->管理库中搜索u8g2安装,注意不是u8glib库。4:打开文件-->示例-->u8g2-->full_buffer-->GraphicsTest。安装错误的库会导致出现编译错误。2:开发环境搭建参考。

iTom1900 1288

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 驱动VFD屏幕 / 真空荧光屏 (不完美)
下一篇: Node MCU / ESP8266运行Lua脚本从NTP服务器同步网络时间
Tyrion.Mon
博客等级 码龄8年 251粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值