一、ESP8266简介
ESP8266是一个成本较低的无线设备,它适用于TCP,IP,和微控制器。
ESP8266只是所用芯片型号,在此基础上衍生出其他厂商开发版本,常用的如:安信可公司推出的ESP8266-12F,在该模组的基础上还有其他厂商组装的开发板,如下图
ESP8266-12F开发板(cp2102版本)

二、ESP8266各硬件版本区别


三、ESP-12-F-产品规格书


| 序号 | pin脚名称 | 功能说明 | 可用GPIO | 使用说明 |
| 1 | RST | 复位 | \ | 休眠后唤醒 |
| 2 | ADC | A/D模拟电压转换输入 | \ | 输入电压:0~1V,取值范围:0~1024; 频繁调用会营销模块正常工作,需间隔5mS以上 |
| 3 | EN | 芯片使能端 | \ | 高电平有效 |
| 4 | GPIO16 | WAKE | 是 不推荐使用 | 常与RST短接,可实现定时唤醒; 开机需高电平否则启动失败; 作为输入时无中断功能; 作为输出时无I2C、PWM功能; |
| 5 | GPIO14 | HSPI_CLK | 是 | SPI引脚; 上电默认高电平; |
| 6 | GPIO12 | HSPI_MISO | 是 | SPI引脚; 上电默认高电平; |
| 7 | GPIO13 | HSPI_MOSI/UART0_RX | 是 | SPI引脚; 上电默认高电平; |
| 8 | VCC | 电源 | 否 | 输入3.3v |
| 9 | GPIO11 | SDCMD | 否 | 连接存储芯片,不可使用 |
| 10 | GPIO7 | SDD0 | 否 | 连接存储芯片,不可使用 |
| 11 | GPIO9 | SDD2 | 否 | 连接存储芯片,不可使用 |
| 12 | GPIO10 | SDD3 | 否 | 连接存储芯片,不可使用 |
| 13 | GPIO8 | SDD1 | 否 | 连接存储芯片,不可使用 |
| 14 | GPIO6 | SDCLK | 否 | 连接存储芯片,不可使用 |
| 15 | GND | 接地 | \ | 接地 |
| 16 | GPIO15 | HSPI_CS/UART0_TX | 否 | 正常运行需要下拉(某些模块可能已经内部下拉); |
| 17 | GPIO2 | UART1_TX | 是 | UART1无RX; 开机需高电平,否则启动失败; 默认连接到板载LED用于指示启动状态; |
| 18 | GPIO0 | 运行模式选择 | 否 | FLASH运行:悬空或拉高;UART下载:拉低 |
| 19 | GPIO4 | I2C总线SDA | 是 (上电稳定低电平) | |
| 20 | GPIO5 | I2C总线SCL | 是 (上电稳定低电平) | |
| 21 | GPIO3/RX | 串口接收RX | 是 | |
| 22 | GPIO1/TX | 串口发送TX | 是 | 启动时需为高,否则启动失败 |
| 模式 | EN | RST | GPIO15 | GPIO0 | GPIO2 | TX |
| 下载模式 | 高 | 高 | 低 | 低 | 高 | 高 |
| 运行模式 | 高 | 高 | 低 | 高 | 高 | 高 |
| NodeMCU | PIN脚 | 上电时 | 启动后什么都不做 | 启动后设置低电平 |
| D0 | GPIO16 | 高 | 高,110ms后下降至1V | 高,110ms后下降至1V |
| D1 | GPIO5 | 低 | 低 | 低 |
| D2 | GPIO4 | 低 | 低 | 低 |
| D3 | GPIO0 | 低然后振荡 | 变化,约100ms后稳定在高电平 | 变化,约110ms后稳定在低电平 |
| D4 | GPIO2 | 变化,约60ms后稳定在高电平 | 变化,约80ms后稳定在高电平 | 变化,约110ms后稳定在低电平 |
| D5 | GPIO14 | 高 | 高,约110ms后低电平 | 高,约110ms后低电平 |
| D6 | GPIO12 | 高 | 高,约110ms后低电平 | 高,约110ms后低电平 |
| D7 | GPIO13 | 高 | 高,约110ms后低电平 | 高,约110ms后低电平 |
| D8 | GPIO15 | 低 | 低,有毛刺110ms | 低,有毛刺110ms |
| D9 | GPIO3 | 低 | 低50ms后稳定高 | 低50ms后,高110ms后,稳定低 |
| D10 | GPIO1 | 低 | 低50ms后稳定高 | 低50ms后,高110ms后,稳定低 |
由此可得,D1-GPIO5 , D2-GPIO4是唯一安全驱动的GPIO
ESP8266MOD开发板引脚定义


可用于GPIO操作的引脚有:G0,G2,G4,G5,G12,G13,G14,G15,G16,其中G16是一个特殊的引脚,用于从深度睡眠模式唤醒模块。还需要注意一点,开发板上只有一个串口,将其引出为USB虚拟串口用于REPL操作,当你需要使用串口时,应注意避免冲突。
开发板通常只是用来开发代码时使用,因其集成了串口芯片和引出了复位、下载引脚,可以方便的进行固件下载
开发完成后通常会直接使用esp8266基本模组
另外除了ESP8266-12F外,还有ESP-12E、ESP-12S、ESP-01、ESP-01S等等非常众多的型号,它们的区别也仅仅就是模组引出的引脚数量不同,内置Flash芯片的大小不同
5、Arduino
使用 Arduino 软件可以自定义开发esp8266,如果使用esphome进行构建固件的话一般不用此软件
进入 Arduino 中文官网下载软件
4、AT指令
通常购买到的ESP8266硬件通常会自带一个AT固件用于基本的测试使用,也可能不带需要自行刷写
下载乐鑫官方烧写软件,Flash下载工具下载后在压缩包doc文件夹中有详细使用说明
下载恢复AT指令程序,下载最新推荐版本,刷入factory文件夹下的bin文件即可,或者查看下载指导
查看基本AT指令表
6、ESPEasy
和ESPhome为同类产品,
优点是:全程网页可视化操作,更改配置无需再次编译固件
缺点是:使用MQTT与 homeassistant 服务器进行通讯,需要手动修改配置,并且增减传感器需要重启homeassistant服务