由Espressif Systems创造的ESP32是一款低成本、低功耗片上系统(SoC)系列,具有Wi-Fi和双模蓝牙功能。 ESP32系列包括芯片ESP32-D0WDQ6(和ESP32-D0WD)、ESP32-D2WD、ESP32-S0WD和系统级封装(SiP)ESP32-PICO-D4。 其核心是双核或单核Tensilica Xtensa LX6微处理器,时钟频率高达240MHz。 ESP32由内置天线开关、射频巴伦、功率放大器、低噪声接收放大器、滤波器和电源管理模块高度集成。 ESP32专为移动设备、可穿戴电子设备和物联网应用而设计,通过节能功能实现超低功耗,包括精细分辨率时钟门控、多种功率模式和动态功率调节。
特性与指标
有关ESP32芯片和ESP32-PICO-D4数据手册的信息,请参见ESP32数据手册,了解有关SiP模块的信息。
- 处理器:
- 主处理器: Tensilica Xtensa 32-bit LX6微处理器
- 内核: 2 or 1 (depending on variation), 除了ESP32-S0WD(单核)外,ESP32系列中的所有芯片都是双核的。
- 时钟频率:高达240 MHz
- 性能:高达600 DMIPS
- 超低功耗协处理器:允许您在深度睡眠时进行ADC转换,计算和电平阈值。
- 无线连接:
- Wi-Fi:802.11b/g/n/e/i(802.11n @ 2.4 GHz,最高150Mbit/s)
- 蓝牙:v4.2 BR/EDR和蓝牙低功耗(BLE)
- 存储器:
- 内部存储器:
- ROM:448KB - 用于启动和核心功能。
- SRAM:520KB - 用于数据和指令。
- RTC快速SRAM:8KB - 用于RTC期间的数据存储和主CPU从深度睡眠模式启动。
- RTC慢速SRAM:8KB - 用于深度睡眠模式期间的协处理器访问。
- eFuse:1Kbit - 其中256位用于系统(MAC地址和芯片配置),其余768位保留用于客户应用,包括Flash-Encryption和Chip-ID。
- 嵌入式闪存:Flash通过ESP32-D2WD和ESP32-PICO-D4上的IO16,IO17,SDCMD,SDCLK,SDDATA0和SDDATA1进行内部连接。
- 0MB(ESP32-D0WDQ6,ESP32-D0WD和ESP32-S0WD芯片)
- 2MB(ESP32-D2WD芯片)
- 4MB(ESP32-PICO-D4 SiP模块)
- 外部闪存和SRAM:ESP32支持多达四个16MB外部QSPI闪存和带有基于AES的硬件加密的SRAM,以保护开发人员的程序和数据。 ESP32可以通过高速缓存访问外部QSPI闪存和SRAM。
- 高达16MB的外部闪存被内存映射到CPU代码空间,支持8位,16位和32位访问。支持代码执行。
- 最多8MB的外部闪存/SRAM存储器映射到CPU数据空间,支持8位,16位和32位访问。闪存和SRAM支持数据读取。 SRAM支持数据写入。带有嵌入式闪存的ESP32芯片不支持外部闪存和外设之间的地址映射。
- 外设输入/输出:带有DMA的丰富外设接口,包括电容式触摸,ADC(模数转换器),DAC(数模转换器),I²C(内部集成电路),UART(通用异步接收器/发送器) ),CAN 2.0(控制器区域网络),SPI(串行外设接口),I²S(集成IC间声音),RMII(简化介质无关接口),PWM(脉冲宽度调制)等。
- 安全:
- 支持IEEE 802.11标准安全功能,包括WFA,WPA / WPA2和WAPI
- 安全启动
- Flash加密
- 1024位OTP,客户最多768位
- 加密硬件加速:AES,SHA-2,RSA,椭圆曲线加密(ECC),随机数发生器(RNG)
澄清说明:在这种情况下,“RTC”有点像“Espressifism”,因为它被用作低功耗和模拟子系统的简写,它独立于CPU和主要的“数字”外围设备(“数字”是另一个Espressifism)。作为RTC子系统的一部分,有一些实时时钟功能,但还有很多其他的东西。
社区和交流
对于大多数问题,最好在论坛中提交一篇文章,以获得最广泛的社区可见性,并轻松写出您的情境背景的细节 - 例如,包括示例代码和详细说明软件的相关配置,固件和 硬件。 或者,通过IRC进行实时聊天是与他人交谈,学习新事物,有时在现场获得问题答案的好方法。 但是,话虽如此,在线聊天的主要缺点是,不是每个人都在活跃或同时看着频道(聊天室) - 人们在不同的时间工作并生活在世界的不同地方 - 所以时间可以是 击中或没打中。 因此,如果您在IRC频道中提出问题,请尽量留意,因为可能需要一段时间才能回复。
- Forum: ESP32.com (Official Espressif ESP32 Forums)
- Chat: #ESP32 on IRC.freenode.net
要连接到Freenode IRC网络上的#ESP32聊天频道,您需要使用IRC客户端程序。 对于长期使用,建议下载完整的IRC客户端。 但是,对于临时使用,您可以使用Freenode的网络聊天客户端
- Reddit: /r/esp32
阅读和视频
- 项目
- 阅读和文档
- 新手入门指南:
- ESP-IDF编程指南 ⭐ - Generated from the docs directory in the ESP-IDF repository.
- Kolban关于ESP32的教程 (PDF) ⭐
- 如何入门ESP32? - (Elliot Williams, Hackaday, 2016 Oct 4)
- 如何入门ESP32? - (Rita Zhang, 2016 Sept 29)
- 官方Espressif的资源
- Espressif支持下载 - 包括ESP32 SoC、ESP32-PICO-D4 SiP、ESP-WROOM-32、ESP32-WROOM-32D、ESP32-WROOM-32U、ESP32-WROVER、ESP32-WROVER-I、ESP32-SOLO-1模块、ESP32-DevKitC、ESP-WROVER-KIT、ESP32-PICO-KIT开发套件等的资源.
- ESP32技术参考手册 (PDF) ⭐
- 芯片错误数据说明: ECO和ESP32错误的解决办法 (PDF)
- ESP32硬件设计指南 (PDF)
- ESP32蓝牙网络用户指南 (PDF) - 可以同时参考: EspBluFi安卓应用程序
- JTAG调试
- 如何使用FTDI C232HM DDHSL-0通过JTAG / OpenOCD / GDB调试ESP32
- 沃森物联网平台
- 蓝牙和沃森的实验 - 使用ESP32 / Arduino将蓝牙设备连接到Watson IoT Platform. 源代码: ESP32BleBeacon.ino, ESP32BleGateway.ino
-
- 随机书呆子教程
-
* 著名的视频
- Engineers.SG
- Linux.conf.au 2017 & Open Hardware Mini-Conference
- 微控制器硬件和软件 (Angus Gratton, 2017 Jan 17, 23 min.)
- IoTuz硬件设计,制造,与KiCad合作 (Bob Powers, 2017 Jan 17, 40 min.)
- IoTuz软件设计挑战和ESP-IDF (Mark Wolfe, 2017 Jan 17, 28 min.)
- 适用于ESP32的MicroPython (Nick Moore, 2017 Jan 17, 28 min.)
- 使用IoTuz的开发实例 (Andy Gelme, 2017 Jan 17, 29 min.)
- 适用于ESP32的MicroPython (Nick Moore, PyCon Australia, 2017 Aug 4, 25 min.)
- 如何为任何项目添加Wi-Fi控制 — ESP32初学者指南 (GreatScott, 2017 Oct 1, 11 min.)
- 使用ESP32和网络摄像头进行Wi-Fi范围测试:使用定向天线10公里 (Florian Euchner, 2017 Apr 8, 5¾ min.)
- 小水果:Mac Plus的解除(小型化) (Jeroen Domburg, Hackaday Superconference, 2017 Nov 12, 31.4 min.) — see also: close-up video
-
-
-
-
-
-
- 通过AWS IoT MQTT进行控制 (使用ESP8266,但也适用于ESP32。)
-
* ESP32单位的第一印象
* 杂项讨论
开发平台
开发软件,工具,环境,语言,平台,框架,库,代码和其他资源:
- ESP-IDF (Espressif IoT开发框架)
- 存储库
ESP32的官方发展框架. - ESP32 ESP-IDF的AT申请 * 其他Espressif项目
- ESP32蓝牙/BLE堆栈预编译二进制库
(包含在ESP-IDF中.) - ESP32 Wi-Fi堆栈预编译二进制库
(包含在ESP-IDF中.)
- Arduino (C++)
- Simba嵌入式编程平台
另请参见:Pumbaa(Simba上的MicroPython) - Zephyr项目
可扩展的实时操作系统(RTOS),支持多种硬件架构,针对资源受限设备进行了优化,并在构建时考虑了安全性。 -
- 实例
-
- MicroPython
-
- Pumbaa
Simba上的MicroPython. - Boris Lovosevic's MicroPython
适用于ESP32的MicroPython,具有4个MiB pSRAM支持和ESP-IDF构建系统。有关详细信息,请参阅Boris的论坛帖子。
-
- Hybrid C/Python
- Lua
- Lua RTOS
使用Lua编程语言直接编程或使用基于块的编程语言将块转换为Lua。- 基于Whitecat生态系统的Web IDE
Whitecat以Lua RTOS为核心。
-
- JavaScript
- Duktape
- Espruino JavaScript
- 存储库
- 文档
- Mongoose JS (mJS)
- mruby (Carson McDonald & Yamamoto Masaya)
- 值得注意的项目: RubyOnWheelchair
尽管基于STM32的电路板最终用于板载以太网项目的最终形式,但在原型制作过程中使用了ESP32电路板。
- 向前
- BASIC
- TinyBasic (另请参阅: ESP32文本演示中的BASIC演示。)
- 其他代码和库
- MQTT
- 用于ESP-IDF项目的MQTT组件(JoëlGähwiler)
基于lwmqtt库。
- LibWebSockets
构建轻量级C库以使用最少的CPU和内存资源,在客户端或服务器两个方向上提供快速吞吐量。 -
- 通过HTTP服务器控制GPIO
使用lwIP httpservernetconn示例。
- 环形日志(Edmund Huber)
磁盘上的环形缓冲区,用于持久的固定大小的日志。 - 温度/湿度传感器
- ESP-IDF的单个DS18B20
DS18B20是1-Wire数字温度计。 - 简单的DHT11库
DHT11是一款简单的温湿度传感器。 - BME280 湿度/温度/压力传感器
- 相机
- Bitluni的OV7670相机和TFT显示屏
- 发光二极管
- AniCharlieplex
动画使用IS31FL3731突破和Charlieplex 9×16 LED矩阵。
- 机器人
- 游戏
- 任天堂游戏系统仿真
- Wi-Fi
- 嗅探
- Wi-Fi Sniffer (Łukasz Podkalicki)
-
- 蓝牙
- 音频
- 显示和图形
- ESP32的ePaper库
注意:在ePaper.c中调整SPI时钟
- DAC-Cosine (Krzysztof)
在ESP32内部运行余弦波形发生器的API。 - ESP32_BadAppleBad:SSD1306 OLED和RLE视频数据(Lutz Lisseck)
东芝在带有SSD1306 OLED的ESP32上观看Bad Apple视频; 使用Heatshrink压缩库来解压缩RLE编码的视频数据。 - 音频频谱可视化
- SH1106 OLED的8倍频程(G6EJD; 视频)
- 开发工具和环境
- Zerynth Studio
Zerynth的物联网设备平台中间件支持ESP32。 支持的主板包括 ESP32-DevKitC, SparkFun ESP32 Thing, Olimex ESP32-EVB和Olimex ESP32网关。 - Pymakr
用于Pycom板上的MicroPython的Pycom IDE。 - 用于ESP32 Web IDE的TUNIOT
TUNIOT是一个生成Arduino代码的可视化编程环境。 - QEMU
- PCB设计资源
- KiCad
- ESP32 KiCad足迹(Adam Vadala-Roth)
- KiCad库 (Baoshi Zhu)
- WEMOS LoLin32 KiCad库/足迹(Eric Renfro)
- ESP32 KiCad (Morgan Allen)
- EAGLE
- Altium Designer
- ESP-32S和ESP-WROOM-32的库 (Evert Dekker)
- 硬件参考设计
- ESP-WROOM-32参考设计V1.0(ZIP)
硬件
购买渠道及相关信息