硬件介绍
对于ESP32的硬件介绍其实没什么必要,直接上比较常见的开发板的对比。
arduino UNO R3 | BluePill | NodeMCU | ESP32 | 树莓派3代B型 | |
芯片 | ATMega328P | STM32F103C8T6 | ESP8266 | ESP32 | BCM2837 |
架构 | AVR 8位 | ARM cortex M3 32位 | Xtensa 32位 单核 L106 | Xtensa 32位 双核 LX6 | ARM Cortex-A53 1.2GHZ 4核 |
内核数 | 1 | 1 | 1 | 2 | 4 |
默认主频 | 16MHZ | 72MHZ | 80MHZ | 160MHZ | 1.2GHZ |
SRAM(运存) | 2KB | 20KB | 160KB | 521KB | 1GB |
FLASH(闪存) | 32KB | 64KB | 4M~16M | 4~16MB | Micro SD卡决定 |
GPIO | 14 | 37 | 17 | 36 | 40 |
PWM通道 | 6 | 15 | 8 | 16 | 4 |
ADC引脚 | 6/10bit | 10/12bit | 1/10bit | 18/12bit | 0 |
DAC引脚 | 0 | 0 | 0 | 2 | 0 |
接口 | SPI/I2C/UART | SPI/I2C/UART/CAN | SPI/I2C/UART/I2S | SPI/I2C/UART/I2S/CAN | SPI/I2C/UART |
WIFI功能 | 无 | 无 | 有 | 有 | 有 |
蓝牙 | 无 | 无 | 无 | 有 | 有 |
工作电压 | 5V | 3.3V | 3.3V | 3.3V | 5V |
把树莓派放上去其实没什么必要,这东西相当于一个微型电脑,对于可能的大部份应用场景来说价格上没有丝毫优势 。
开发环境的选择
ESP32常见的开发环境是三种
官方发布的开发套件ESP-IDF当前已经是v5.0版本,提供官方中文指南文档,包括安装和API参考:https://docs.espressif.com/projects/esp-idf/zh_CN/v5.0/esp32/index.html比较推荐使用该开发套件,不管安装还是使用都不会有那种未入门就想退出的感受。
vscode,由微软研发的一款免费、开源的跨平台代码编辑器,要利用该工具当做ESP32的开发工具在国内环境当前还是比较不理想,vscode是依靠安装PlatformIO IDE或ESP-IDF插件来进行ESP32的开发,但插件的安装过程对于新手十分不友好。
arduino IDE,新手或小白入门比较合适的一个开发环境,最大的缺点是缺少调试功能,在开发较复杂的项目时无法快速定位异常。
总结来说,如果不是vscode开发环境的狂热爱好者,在ESP32的开发中,不太推荐该开发环境。如果是在学习中,推荐是用arduino IDE。入门后对该开发板有相对的了解后或考虑开发比较复杂的项目时再去尝试用ESP-IDF。
因为本文为入门,后面会介绍在arduino IDE环境下安装ESP32开发板的支持。
安装arduino IDE和ESP32开发板支持
arduino IDE的安装比较友好,只要下载安装包,双击安装,最好选择一下安装的目录,没什么需要注意的地方。
下载地址:https://arduino.me/download
注意,当前最好是下载旧版的1.18.19,因为新版的2.0.xx当前未支持安装插件,ESP32的SPIFFS文件系统功能需要安装第三方的插件才能实现。
如果当前还没有打算或需求使用SPIFFS文件系统功能也可以尝试下载2.0.xx,其它功能基本相似。
因为需要安装ESP32开发板的支持,同时也要点击"ESP32离线安装包"。可以按照里面的教程安装好ESP32开发板的支持。
安装ESP32文件上传到SPIFFS文件系统插件
SPIFFS文件系统相当于电脑的硬盘,把一些比如启动需要初始化的数据或配置保存在里面。这也是开发板比较常见的任务之一,在出现异常重启或停电重启仍然保留可用的信息。当然,如果需要用ESP32开发一个小形的WEB服务器,也可以把页面文件(如html,css,json)保存在里面。
插件项目地址:https://github.com/lorol/arduino-esp32fs-plugin
该插件的说明和关于SPIFFS文件系统的说明可以在我的另一篇文章得到详细的介绍:https://blog.csdn.net/m0_50114967/article/details/126961233