做一期ESP8266-NodeMCU物联网模块的介绍,详解该模块的电路和原理以及引脚的使用说明,后面会逐步上案例的。如有问题,请联系,及时更正。
ESP8266-NodeMCU 开发板
物联网模块,有ESP8266网络模块,配置有一般开发板的常用功能。iic ,pwm ,串口等常见通信。
目前流行的ESP8266-NodeMCU有两块,他们只是串口烧写芯片有所不同,因此在开发之前需要安装对应板子的串口驱动,分别是CH340和CP2102驱动,然后直接用安卓数据线连接电脑。
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芯片有17个GPIO引脚(GPIO0~GPIO16)。这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO 11。
电压 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引脚来读取开关状态或进行I²C通讯。
上拉电阻/下拉电阻
GPIO 0-15引脚都配有内置上拉电阻。这一点与Arduino十分类似。GPIO16 引脚配有内置下拉电阻。
ESP8266 只有一个模拟输入引脚(该引脚通过模拟-数字转换将引脚上的模拟电压数值转化为数字量)。
此引脚可以读取的模拟电压值为 0 – 1.0V。请注意:ESP8266 芯片模拟输入引脚连接在1.0V以上电压可能损坏ESP8266芯片。
以上所描述的是针对ESP8266芯片的引脚。
幸运的是,对于NodeMCU开发板引脚,情况就不同了。
NodeMCU开发板配有降压电路。您可以用NodeMCU开发板的模拟输入引脚读取0-3.3V的模拟电压信号。
ESP8266有2个硬件串行端口(UART)。
串行端口0(UART0)使用GPIO1和GPIO3引脚。其中GPIO1引脚是TX0,GPIO3是RX0。
串行端口1(UART1)使用GPIO2和GPIO8引脚。其中GPIO2引脚是TX1,GPIO8是RX1。请注意,由于GPIO8被用于连接闪存芯片,串行端口1只能使用GPIO2来向外发送串行数据。
ESP8266只有软件模拟的I²C端口,没有硬件I²C端口。也就是说我们可以使用任意的两个GPIO引脚通过软件模拟来实现I²C通讯。ESP8266的数据表(datasheet)中,GPIO2标注为SDA,GPIO14标注为SCL。
ESP8266的SPI端口情况如下:
GPIO14 — CLK
GPIO12 — MISO
GPIO13 — MOSI
GPIO 15 — CS(SS)
GPIO15----管脚D8
GPIO12-----管脚D6
GPIO14-----管脚D5
GPIO4-----管脚D2
Arduino 编程 ESP8266 12F NodeMCU 实现 PWM 控制呼吸灯
同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 模块的例程。