杨骐铭 21009102182
在本篇文章中,您将了解到ESP32 Wi-Fi和蓝牙模块以及如何进行设置。
什么是ESP32?
ESP8266 Wi-Fi模块是过去几年中最受欢迎和最实用的模块之一。市场上有这种模块的各种版本。
ESP32模块是ESP8266的升级版本。除了Wi-Fi模块,该模块还包含蓝牙4.0模块。双核CPU工作频率为80至240 MHz,包含两个Wi-Fi和蓝牙模块以及各种输入和输出引脚, ESP32是物联网项目的理想选择。
ESP32模块引脚分布
虽然ESP32的引脚数比常用的处理器少,但在引脚上复用多个功能时不会遇到任何问题。
警告:ESP32引脚的电压电平为3.3伏。如果要将ESP32连接到其他工作电压为5伏的设备,则应使用电平转换器转换电压电平。
电源引脚:该模块有两个电源引脚 - 5V和3.3V。您可以使用这两个引脚来向其他设备和模块供电。
GND引脚:该模块的接地有3个引脚。
启用引脚(EN):该引脚用于启用和禁用模块。引脚为高电平时启用模块,低电平禁用模块。
输入/输出引脚(GPIO):您可以使用32个GPIO引脚与LED、开关和其他输入/输出设备进行通信。
您可以在内部上拉或下拉这些引脚。
注意:GPIO6至GPIO11引脚(SCK/CLK,SDO/SD0,SDI/SD1,SHD/SD2,SWP/SD3和SCS/CMD引脚)用于模块内部闪存的SPI通信,我们不建议使用它们。
ADC:您可以使用此模块上的16个ADC引脚将模拟电压(某些传感器的输出)转换为数字电压。其中一些转换器连接到内部放大器,能够以高精度测量小电压。
DAC:ESP32模块有两个数模转换器,精度为8位。
触摸焊盘:ESP32模块上有10个引脚,对电容变化很敏感。您可以将这些引脚连接到某些焊盘(PCB上的焊盘),并将它们用作触摸开关。
SPI:该模块上有两个SPI接口,可用于连接显示屏、SD / microSD存储卡模块、外部闪存等。
I2C:SDA和SCL引脚用于I2C通信。
串行通信(UART):该模块上有两个UART串行接口。使用这些引脚,您可以在两个设备之间传输高达5Mbps的信息。 UART0还具有CTS和RTS控制。
PWM:几乎所有ESP32输入/输出引脚都可用于PWM(脉冲宽度调制)。使用这些引脚可以控制电机、LED灯和颜色等。
ESP32模块模式
ESP32芯片有5种模式:
活动模式:在这种模式下,Wi-Fi和蓝牙发射器和接收器的所有部分都是活动的。在这种情况下,电流消耗在80和260mA之间。
调制解调器睡眠模式:处理器仍处于活动状态,但Wi-Fi和蓝牙已禁用。在这种情况下,电流消耗在3到20mA之间。
轻度睡眠模式:主处理器停止工作,但RTC单元和ULP处理器单元仍处于活动状态。电流消耗约为0.8 mA。
深度睡眠模式:只有RTC单元处于活动状态。在这种情况下,Wi-Fi和蓝牙通信的数据存储在RTC的存储器中。在此模式下,电流消耗在10到150μA之间。
休眠模式:除了用于时钟的RTC定时器和连接到RTC的一些I / O引脚外,所有单元均被禁用。 RTC定时器或连接的引脚可以将芯片从此状态唤醒。在这种情况下,电流消耗约为2.5μA。
有关更多信息,请查看模块数据表。
ESP32芯片和模块数据表
ESP32模块及其芯片组的数据手册可以从以下链接下载。
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
https://espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf
ESP32 VS. ESP8266
市场上有各种类型的ESP32和ESP8266模块。在本节中,对ESP8266 NodeMcu和ESP32 DEV模块进行了比较:
ESP8266 NodeMcuESP32 DEV模块电源3.3V3.3VCPUTensilica L106 32位Xtensa双核32位LX6蓝牙无符合蓝牙v4.2 BR/EDR和BLE规范GPIO1732闪存大小最大16MB最大16MBADC10位12位DAC无2 * 8bitUART22
通常,ESP32模块比ESP8266价格更贵。因此,如果您不需要蓝牙、数字转换器、许多I/O引脚和......,您可以通过购买ESP8266模块来节省资金。
所需的材料
ESP32模块
Arduino IDE
在Arduino IDE上安装ESP32
ESP32的安装过程与ESP8266的安装几乎相同。要在Arduino IDE上安装ESP32,请执行以下步骤:
注意:您需要Arduino IDE 1.8.5或更高版本才能在其上安装ESP32。
第一步:从GitHub下载所需的文件
从GitHub帐户下载ESP32 Arduino Core。您也可以使用直接下载链接。
https://github.com/espressif/arduino-esp32/archive/master.zip
第二步:将文件移动到Arduino sketchbook位置
默认情况下,Arduino sketchbook位于“我的文档”中。要查找示意图的确切路径,请从“文件”菜单中检查首选项。
在sketchbook位置的Arduino文件夹旁边创建一个名为hardware的新文件夹。
在hardware文件夹中创建一个名为espressif的文件夹,然后在espressif文件夹中创建另一个名为esp32的文件夹。最后,您创建的路径应如下图所示:
解压缩您在上一步中下载的文件,并将其移至此地址。
第三步:运行get.exe
要在Arduino软件上安装ESP32,您需要在系统上安装Xtensa GNU编译器集合。转到esp32> tools并运行get.exe文件。
运行get.exe后,所需的文件将自动下载并传输到tools文件夹。此步骤可能需要一些时间。
安装完成后,必须将新文件添加到tools文件夹中。
使用Arduino IDE在ESP32上上传代码
在ESP32模块上传代码与其他Arduino开发板类似。您可以使用Arduino内置示例(如Blink)来测试它。
注意:如果之前未在计算机中安装CP2102驱动程序,则应从此处下载,然后安装。
要上传代码,请从“工具”菜单中选择开发板类型。然后选择连接到电路板的串口并单击上载。
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(2, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
故障排除
如果您遇到以下错误,请不要担心。编程ESP32时通常会出现此问题。执行以下步骤来解决问题:
1. 确保正确设置上传波特率。通常,此波特率应为115200。
2. 按住开发板上的Boot按钮。
3. 单击“上传”选项。
4. 当您看到消息“Writing at 0x00001000 … (100%)”时,将手指从“Boot”按钮上移开。
5. 上传完成后,您可以看到提示上传消息Done。
转载自知乎https://zhuanlan.zhihu.com/p/105178847