ESP8266-NodeMCU物联网原理介绍以及说明(新手入门)

做一期ESP8266-NodeMCU物联网模块的介绍,详解该模块的电路和原理以及引脚的使用说明,后面会逐步上案例的。如有问题,请联系,及时更正。

ESP8266-NodeMCU 开发板

物联网模块,有ESP8266网络模块,配置有一般开发板的常用功能。iic ,pwm ,串口等常见通信。

ESP8266-NodeMCU

  1. ESP8266-NodeMCU是一个开源硬件开发板,由于它支持WIFI功能,所以在物联网(IOT)领域,Arduino开发板最大的对手之一就是ESP8266-NodeMCU开发板。
  2. ESP8266-NodeMCU尺寸与Nano类似,他并不是Arduino团队开发的,但是我们也可以使用Arduino IDE对他进行开发。而且他还有一颗地道的“中国芯”—ESP8266模块。
    NodeMcu arduino编程环境搭建(Esp8266开发环境搭建)
  3. ESP8266模块+NodeMCU模块组成的
  4. 简单理解一下NodeMCU ,NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了可以运行在esp8266Wi-FiSoC芯片之上的固件,以及基于ESP-12模组的硬件,(少量的排针和usb 数据接口,存储构成最简单的一个用用功能的单元模块)
  5. 生产厂家:安信可和乐鑫都是主流的esp8266 衍生流,,差球不多,均都有中英文说明。

在这里插入图片描述

目前流行的ESP8266-NodeMCU有两块,他们只是串口烧写芯片有所不同,因此在开发之前需要安装对应板子的串口驱动,分别是CH340和CP2102驱动,然后直接用安卓数据线连接电脑。

NodeMCU引脚功能

在这里插入图片描述

上图图例说明

POWER: 电源                                    SP,FUNCTION:nodemcu 操作内部存储单元的(6-11不用)
I/O:通用输入输出                                COMM,INTERFACE: 均代表的是通讯引脚spi ,串口,iic
ADC:模拟                                       PIN NUMBER:排针序号,开发过程不太用,pcb制作会用
CONTROL:字面理解就是控制,8266 都知道需要CHPD拉高   PWM
N/C: N/O 是常开触点。N/C 是常闭触点(就是不用)

sub数据口旁边的两个按键说明一下
RST(复位键)               
FLASH(刷固件用的,可以参考刷固件手册)

ESP8266引脚功能一览

在这里插入图片描述

引脚说明

ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO 11。

作为唯一模拟引脚ADC引脚AD

   电压 0-1V,
   其他数字引脚0-3.3V 

-lua编程中的端口例如:lua程序中的pin5对应D5,D5对应GPIO14 pin2对应D2,D2对应GPIO4 其中pin6-pin11 不可用,

–lua编程中的端口对应:[[
0–GPIO16 1–GPIO5 2–GPIO4 3–GPIO0 4–GPIO2
5–GPIO14 6–GPIO12 7–GPIO13 8–GPIO15 9–GPIO3
10–GPIO1 11–GPIO9 12–GPIO10
]]

GPIO15(D8)

GPIO15(D8)引脚在开发板运行中一直保持低电平状态。
因此请不要使用GPIO15引脚来读取开关状态或进行I²C通讯。

上拉电阻/下拉电阻
GPIO 0-15引脚都配有内置上拉电阻。这一点与Arduino十分类似。GPIO16 引脚配有内置下拉电阻。

Esp8266芯片的模拟输入

ESP8266 只有一个模拟输入引脚(该引脚通过模拟-数字转换将引脚上的模拟电压数值转化为数字量)。
此引脚可以读取的模拟电压值为 0 – 1.0V。请注意:ESP8266 芯片模拟输入引脚连接在1.0V以上电压可能损坏ESP8266芯片。
以上所描述的是针对ESP8266芯片的引脚。

幸运的是,对于NodeMCU开发板引脚,情况就不同了。
NodeMCU开发板配有降压电路。您可以用NodeMCU开发板的模拟输入引脚读取0-3.3V的模拟电压信号。

串行端口 请勿占用使用TA

ESP8266有2个硬件串行端口(UART)。
串行端口0(UART0)使用GPIO1和GPIO3引脚。其中GPIO1引脚是TX0,GPIO3是RX0。
串行端口1(UART1)使用GPIO2和GPIO8引脚。其中GPIO2引脚是TX1,GPIO8是RX1。请注意,由于GPIO8被用于连接闪存芯片,串行端口1只能使用GPIO2来向外发送串行数据。

IIC模式

ESP8266只有软件模拟的I²C端口,没有硬件I²C端口。也就是说我们可以使用任意的两个GPIO引脚通过软件模拟来实现I²C通讯。ESP8266的数据表(datasheet)中,GPIO2标注为SDA,GPIO14标注为SCL。

SPI 模式

ESP8266的SPI端口情况如下:

GPIO14 — CLK
GPIO12 — MISO
GPIO13 — MOSI
GPIO 15 — CS(SS)

在这里插入图片描述

pwm

GPIO15----管脚D8
GPIO12-----管脚D6
GPIO14-----管脚D5
GPIO4-----管脚D2

Arduino 编程 ESP8266 12F NodeMCU 实现 PWM 控制呼吸灯

ESP8266 网络

同ESP8266模块用法一样,

电路图如下

请添加图片描述
图片来自商家的,有点虚,自己下载放大看吧

下面是学习Arduino 开发的主文件示例,后面的程序会在改函数基础上去编写代码。

/*当程序开始执行时,将调用setup()函数,使用它来初始化变量,引脚模式,开始使用库等。设置功能仅在 Arduino 板的每次通电或复位后运行一次。使用此函数,类似于起始函数。与stm32的main函数相似的*/
void setup() {
  // put your setup code here, to run once:

}

/*在创建一个 setup() 函数(初始化并设置初始值)之后,loop() 函数将按照其名称的含义执行,并连续循环,从而允许程序进行更改和响应。使用它来主动控制arduino板。连续执行函数内的语句.写一些需要循环操作的逻辑代码*/
void loop() {
  // put your main code here, to run repeatedly:

}

后面会发布 NodeMcu arduino ESP8266WIFI 模块的例程。


版权声明:本文为qq_35653974原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。