ESP32 Arduino开发框架是专门针对ESP32开发板的Arduino应用C++开发框架,为用户开发IOT应用、音频应用、人机交互(HMI)应用提供一致的开发体验。
目前支持以下功能:
- 提供LED、灯珠等设备的驱动
- 提供常用音频编解码器设备的驱动
- 提供统一的抽象化接口来操作UI、音频开发等
- 提供WiFi信息配置界面
- 提供OTA在线升级
- 内置支持LVGL、TFT_eSPI、U8G2、GFX_Library图形化开发库
运行DEMO
若本开发框架内置了你的开发板
- 打开config.h文件,找到开发板型号,将定义值修改为1
- 将要运行应用 APP_DEMO_xxx 的值修改为1
- 设置开发板的型号、FLASH大小、PSRAM、分区等选项
- 编译并上传运行
架构

本框架采用C++面向对象设计,其中Board类封装硬件相关代码,包括LED、传感器、执行器件、显示器件等的驱动代码;
Application类为业务应用提供基础封装,包括时钟、WiFi配置、音频处理、OTA升级、与Board类硬件驱动的交互等功能,提供一套标准的开发规范。
应用开发
硬件驱动开发
- 在boards文件夹创建一个子目录,如your_board,新建一个继承WifiBoard类(若不使用WiFi功能,也可以继承Board类)的自定义开发板类,然后实现设备的驱动:
LED:内置单色LED、三色LED和WS2812灯珠类;
按键:内置OneButton按键库;
显示屏:内置U8G2、TFT_eSPI、GFX Libarary驱动库;
其他可参考DEMO程序。
- 实现create_board方法,返回your_board的类实例;
- 设置开发板的型号、FLASH大小、PSRAM、分区等选项;
业务应用开发
- 在src文件夹创建一个子目录,如your_app,新建一个继承Application类的自定义应用类,然后实现业务逻辑;
- 继承并重写OnInit方法,编写相关初始化代码;
- 继承并重写OnLoop方法,编写相关需要重复执行的代码;
- 实现create_application方法,返回youe_app的类实例。
在Application类实例里,可以通过Board类实例来访问各硬件。
源码地址
Gitee: https://gitee.com/billyzh/esp32-arduino-framework
Github: https://github.com/makingrobot/esp32-arduino-framework