风筝
发表于: 2022-11-5 19:23:33 | 显示全部楼层

几年前,ESP8266席卷了嵌入式的物联网世界。只需不到3美元,您就可以获得可编程的,启用WiFi的微控制器,能够从世界任何地方进行监视和控制物体。现在,Espressif乐鑫科技发布了完美的升级品:ESP32。成为ESP8266的继任者;它不仅具有WiFi支持,而且还具有蓝牙4.0 - 非常适合几乎任何物联网项目。


ESP-WROOM-32模块

该开发板包含了ESP-Wroom-32模块,该模块基于Tensilica Xtensa双核32位LX6微处理器。该处理器类似于ESP8266,但具有两个CPU内核(可以单独控制),以80至240MHz可调的时钟频率运行,并且以高达600DMIP(Dhrystone Million Instructions Per Second)执行。

ESP32-Hardware-Specifications-ESP-WROOM-32-Chip.jpg


ESP32控制器还有448 KB的ROM,520 KB的SRAM和4MB的闪存(用于程序和数据存储),足以应对组成网页的大字符串,JSON/XML数据以及我们在IOT设备上的所有内容。


ESP32集成了802.11b/g/n HT40 Wi-Fi收发器,因此它不仅可以连接到WiFi网络并与Internet进行交互,而且还可以建立自己的网络,从而允许其他设备直接连接到它。 ESP32也支持WiFi直连,这是对等连接而无需访问点的一个不错的选择。WiFi直连更容易设置,并且数据传输速度比蓝牙好得多。


该芯片还具有双模式蓝牙功能,这意味着它支持蓝牙4.0(BLE/Bluetooth Smart)和蓝牙Classic(BT),使其更具用途。


电源

由于ESP32的工作电压范围为2.2V至3.6V,因此开发板带有LDO电压调节器,可将电压保持在3.3V。它可以可靠地提供600mA,当ESP32在RF传输过程中拉多达250mA时,这应该足够了。调节器的输出也引出到板的一侧,并标记为3v3。该引脚可用于为外部组件提供电源。

ESP32-Hardware-Specifications-Power-Supply.jpg

ESP32开发板的电源是通过Micro B USB连接器提供的。另外,如果您具有调节的5V电压源,则可以使用VIN引脚直接提供ESP32及其外围设备。


另外,ESP32芯片的睡眠电流小于5 µA,使其适用于电池供电和可穿戴的电子产品。


外围设备和I/O

尽管ESP32总共有48个GPIO引脚,但其中只有25个被拆引出到开发板两侧的插头。这些引脚可以分配给各种外围职责,包括:

●    15个ADC通道 -  15个12位SAR ADC的通道。 ADC范围可以在固件中设置为0-1V,0-1.4V,0-2V或0-4V

●    2个UART接口 -  2个UART接口。一个用于串口加载代码。它们具有流控制,并支持IRDA!

●    25个PWM输出 -  25个用于调光LED或控制电动机的PWM引脚通道。

●    2个DAC通道 -  8位DAC可产生真正的模拟电压。

●    SPI、I2C和I2S接口 - 有3个SPI和1个I2C接口,可连接各种传感器和外围设备,如果您想在项目中添加声音,则有两个I2S接口。

●    9个触摸引脚-  9个GPIO具有电容触摸感应。

ESP32-Hardware-Specifications-Multiplexed-GPIO-pins.jpg


得益于ESP32的引脚多路复用功能,这意味着单个GPIO引脚可以充当ADC输入/DAC输出/触摸引脚。


板载开关和LED指示器

ESP32开发板具有两个按钮。一个标记为EN位于左上角的是复位按钮,用于复位ESP32芯片。左下角的另一个引导按钮是下载新草图/程序时使用的下载按钮。

ESP32-Hardware-Specifications-Reset-Boot-Buttons-LED-Indicators.jpg

开发板还具有2个LED指示灯 - 红色LED和蓝色LED。红色LED表示开发板已上电。蓝色LED是用户可编程的,连接到开发板的D2引脚。


串口通讯

开发板包括一颗Silicon Labs的CP2102 USB-TO-UART桥控制器,该芯片将USB信号转换为串口,并允许您的计算机与ESP32芯片进行编程和通信。

ESP32-Hardware-Specifications-USB-to-TTL-Converter.jpg


ESP32开发板引脚分配

ESP32开发板总共有30个引脚连接到外界。连接如下:

ESP32-Development-Board-Pinout.jpg


为了简单起见,我们将具有相似功能的引脚分组介绍。

●    电源引脚:有两组电源 - VIN引脚和3.3V引脚。如果您具有调节的5V电压源,则可以将VIN引脚用于直接提供ESP32及其外围设备。3.3V引脚是板载电压调节器的输出。该引脚可用于为外部组件提供电源。

●    GND 是ESP32开发板的地。

●    Arduino引脚不过是ESP32的硬件I2C和SPI引脚,可以连接您项目中各种传感器和外围设备。

●    GPIO引脚:ESP32开发板具有25个GPIO引脚,可以通过编程方式分配给各种功能。每个启用的GPIO都可以配置为内部上拉或下拉或设置为高阻抗。当配置为输入时,也可以将其设置为边沿触发或电平触发以产生CPU中断。

●    ADC通道:开发板集成了12位SAR ADC,并支持15个通道(模拟启用引脚)上的测量值。这些引脚中的一些可用于构建可编程增益放大器,该放大器用于测量小型模拟信号。 ESP32还可以在睡眠模式下操作时测量电压。

●    DAC通道:该开发板具有两个8位DAC通道,以将数字信号转换为真正的模拟电压。此双DAC可以驱动其他电路。

●    触摸引脚:开发板提供了9个电容式传感GPIO,可检测GPIO直接接触或与手指或其他物体近距离接近的电容变化。

●    UART:ESP32开发板具有2个UART接口,即UART0和UART2,它们提供异步通信(RS232和RS485)和IRDA支持,并以高达5Mbps进行通信。 UART还提供了CTS和RTS信号以及软件流控制(XON和XOFF)的硬件管理。

●    SPI:ESP32具有三个SPI(SPI、HSPI和VSPI)。这些SPI还支持以下通用SPI特征:

      ▘  SPI格式转移的4个正时模式

      ▘  最多80 MHz和80 MHz的分开时钟

      ▘  最多64字节FIFO

●    所有SPI也可以用于连接到外部闪存/SRAM和LCD。

●    PWM引脚:开发板有25个由脉冲宽度调制(PWM)控制器控制的PWM引脚的通道(几乎所有GPIO引脚)。 PWM输出可用于驱动数字电动机和LED。控制器由PWM计时器和PWM操作组成。每个计时器都以同步或独立的形式提供时间,并且每个PWM操作为一个PWM通道生成波形。

●    EN:用于使能ESP32。当上拉为高电平时启用芯片。当拉低时,芯片以最小的功率工作。

跳转到指定楼层
风筝
发表于: 2022-11-5 19:35:25 | 显示全部楼层

ESP32开发平台

有多种开发平台可以编程ESP32。您可以选择Espruino -  JavaScript SDK和固件密切模拟Node.js,也可以使用Mongoose OS - 用于IoT设备的操作系统(由Espressif Systems和Google Cloud Iot推荐的平台)或使用Espressif提供的软件开发套件(SDK)或Wikipedia上列出的平台之一。


幸运的是,ESP32社区最近通过创建Arduino附加组件将IDE选择更加多样。如果您刚刚开始编程ESP32,那么这是我们推荐的环境。查看ESP32 Arduino GitHub存储库以获取更多信息。


在Windows系统上安装ESP32 Core

Espressif的官方ESP32 Arduino Core在Github上托管。他们还没有Arduino开发板安装。在此之前,我们必须手动安装它。


首先是在计算机上安装了最新的Arduino IDE(Arduino 1.8.5或更高)。如果没有,我们建议现在升级。


接下来,您需要下载ESP32-Arduino GitHub存储库的内容。您可以访问GitHub并手动下载它,也可以单击下面的下载链接:ESP32 Arduino Core


现在转到您的Arduino Sketchbook目录。默认情况下是我的文档/Arduino目录。您可以通过打开Arduino IDE > File > Preferences > Sketchbook Location位置来验证它。

Sketchbook-Directory-Location-Arduino-IDE.jpg


现在,考虑到您的草图目录位于我的文档> Arduino中,打开目录。您应该在其中看到libraries文件夹。现在新建一个hardware的文件夹。它在其中创建另一个名为Espressif的文件夹。文件夹结构为My Documents > Arduino > hardware > espressif > esp32


现在,在ESP32文件夹中解压先前下载的ESP32内核。

Installing-ESP32-Core-on-Arduino-IDE-Extracting-ESP32-Core.jpg


为了编译ESP32的代码,您需要在计算机上安装的Xtensa GNU编译器集合(GCC)。转到esp32 > tools文件夹并执行get.exe

Installing-ESP32-Core-on-Arduino-IDE-Executing-get.exe-.jpg


该可执行文件将下载Xtensa GNU工具和ESP32软件开发套件(SDK),并将其解压缩到正确的位置。


您应该在tools文件夹中看到一些新文件夹,包括“ SDK”和“ XTENSA-ESP32-ELF”。

Installing-ESP32-Core-on-Arduino-IDE-Verifying-Installation.jpg

回复

使用道具 举报

风筝
发表于: 2022-11-5 19:40:28 | 显示全部楼层

Arduino示例:LED灯闪烁

为了确保正确设置ESP32 Arduino Core和ESP32开发板,我们将上传所有最简单的草图 - Blink(闪烁)!


我们将使用板载LED进行此测试。如本文前面提到的,开发板的D2引脚连接到板载蓝色LED灯。


在上传草图和使用LED之前,我们需要确保在Arduino IDE中正确选择开发板。打开Arduino IDE,然后在Arduino IDE > Tools > Board菜单下选择ESP32 Dev Module选项。

Selecting-ESP32-Dev-Module-in-Arduino-IDE.jpg


现在,使用Micro-B USB电缆将ESP32开发板插入计算机。开发板插入后,应为其分配一个唯一的COM端口。在Windows机器上,这将是com#之类的东西,在Mac/Linux计算机上,它将以/dev/tty.usbserial-xxxxx的形式出现。在Arduino IDE > Tools > Port菜单下选择此串口。


另外,默认情况下,上传速度将选择为921600。尝试将其降低至上传速度:115200,因为许多用户抱怨要以921600速度上传草图时获得ESPCOMM_SYNC失败错误。

Selecting-COM-port-in-Arduino-IDE.jpg


完成后,请将下面的示例草图上传到开发板。

  1. int ledPin = 2;
  2. void setup()
  3. {
  4.         pinMode(ledPin, OUTPUT);
  5. }
  6. void loop()
  7. {
  8.         digitalWrite(ledPin, HIGH);
  9.         delay(500);
  10.         digitalWrite(ledPin, LOW);
  11.         delay(500);
  12. }
复制代码

一旦上传代码,LED就会开始闪烁。您可能需要点击EN按钮复位ESP32。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 54 | 回复: 107



手机版|

GMT+8, 2024-4-23 06:30 , Processed in 0.139778 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表