快速导读
手把手代码注释,完整案例讲解开发过程以及细节,一键式运行代码。
ESP保姆级付费专栏群707958244
,不喜勿加,凭借付费专栏订单号加入
参考:
1、安装 Arduino IDE —— 1.8.13
2、安装 ESP8266 —— 2.7.4
双击安装完毕后,可以查看环境是否配置成功。
3、配置Arduino IDE 首选项
找到首选项。
把编译
和上传
勾选上。
4、硬件开发板 —— ESP8266 NodeMcu 和 ESP32 NodeMcu
本系列只推荐 ESP8266 NodeMcu 和 ESP32 NodeMcu(对于初学者来说少走很多弯路,极度极度推荐),没有之一。
上图为ESP8266
左边为ESP32,右边为ESP8266
5、ESP8266 NodeMcu 开发板
下图为模组(芯片)引脚:
下图为NodeMcu(开发板)引脚:
5.1 引脚定义
绿色高亮标识
引脚可以大胆放心普通IO口用黄色高亮标识
引脚可以普通IO口用,但是需要注意启动时候的状态红色高亮标识
引脚就不建议做普通IO口
5.2 跟启动相关的引脚
有一些引脚(上拉或者下拉)可以阻止ESP8266正常启动。
- GPIO16: pin is high at BOOT
启动的时候输出
高电平
- GPIO0: boot failure if pulled LOW
如果下拉到GND,直接启动失败
- GPIO2: pin is high on BOOT, boot failure if pulled LOW
- 启动的时候输出
高电平
- 如果下拉到GND,直接启动失败
- GPIO15: boot failure if pulled HIGH
- 如果上拉到VCC,直接启动失败
- GPIO3: pin is high at BOOT
启动的时候输出高电平
- GPIO1: pin is high at BOOT, boot failure if pulled LOW
- 启动的时候输出高电平
- 如果下拉到GND,直接启动失败
- GPIO10: pin is high at BOOT
启动的时候输出高电平
- GPIO9: pin is high at BOOT
启动的时候输出高电平
除开上面列举的IO口,除了GPIO5和GPIO4以外,其他IO口都可以输出一个低电平。
GPIO4 and GPIO5 are the most safe to use GPIOs if you want to operate relays. (IO4/IO5 是最安全用来操作继电器)
5.3 ADC输入
在ESP8266上只有一个ADC GPIO。它的测量范围是 0 to 1V。而NodeMcu基于ESP8266-12,所以也只有一个ADC GPIO,但是由于电阻分压电路,可以测量范围扩展到 0-3.3V
。
5.4 板载LED灯
NodeMcu上存在一个板载LED灯,目前是连接到 GPIO2。
高电平灭、低电平亮
5.5 复位按键
当按键接到GND,ESP8266复位,系统重启。
5.6 GPIO0 —— 烧录 or 工作
- 当GPIO0 接到GND,ESP8266处于烧录下载模式
- 当GPIO0 接到Vcc,ESP8266处于正常工作模式
5.7 GPIO16 —— 睡眠唤醒
GPIO16可以用来把ESP8266从睡眠模式中唤醒,只需要把GPIO16接到 RST引脚。
5.8 IIC总线
- GPIO5: SCL
- GPIO4: SDA
5.9 SPI总线
- GPIO12: MISO
- GPIO13: MOSI
- GPIO14: SCLK
- GPIO15: CS
5.10 PWM引脚
GPIO0-GPIO16都可以作为软件PWM引脚。并且PWM是10位。
5.11 中断引脚
除开GPIO16,其他GPIO都可以作为中断引脚。
6. ESP32 NodeMcu开发板
6.1 引脚定义
绿色高亮标识
引脚可以大胆放心普通IO口用黄色高亮标识
引脚可以普通IO口用,但是需要注意启动时候的状态红色高亮标识
引脚就不建议做普通IO口
6.2 只能作为输入引脚
- GPIOs 34 - 39
6.3 SPI Flash占用引脚,不需要使用
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
6.4 电容式触摸GPIO
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
6.5 ADC
ESP32有 18 x 12 bits ADC 。12位ADC意味着 0 to 4095(0v-3.3v)
对应引脚:
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
分为ADC1和ADC2.
请注意,ADC2通道在ESP32开启WIFI后,功能会受到限制,建议使用ADC1通道!
6.6 DAC
2 x 8 bits DAC
对应引脚:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
6.7 RTC
提供了单独的 RTC GPIO(共18个引脚)支持,这些GPIO连接到“ RTC”低功耗和模拟子系统,当芯片处于深度睡眠状态,需要运行超低功耗协处理器(ULP)或使用ADC / DAC /等模拟功能时,这些GPIO便起作用。
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
6.8 PWM
ESP32 有16个独立通道来生成PWM信号。基本上所有的引脚都可以用来作为PWM引脚(除开 GPIOs 34 to 39)
6.9 I2C
ESP32有 两个I2C通道,以及 任意的引脚都可以设置为 SDA or SCL。
默认I2C引脚
- GPIO 21 (SDA)
- GPIO 22 (SCL)