项目简介
本项目展示了在ESP32上实现RESTful API服务器和HTTP服务器的方法,并配备前端浏览器UI。用户能借此学习ESP32处理HTTP请求、控制硬件设备(如LED灯),还可通过前端界面与设备交互。项目支持mDNS解析域名,即使设备IP地址变化,也能通过固定域名访问服务器。
项目的主要特性和功能
- RESTful API支持:提供多个API接口,包括
/api/v1/system/info
获取系统信息,/api/v1/temp/raw
获取传感器原始温度数据,/api/v1/light/brightness
控制LED灯亮度。 - mDNS支持:通过mDNS解析域名
esp-home.local
,确保设备IP变化时仍可通过固定域名访问服务器。 - 前端框架支持:采用Vue.js作为前端框架,Vuetify作为UI库,提供友好用户界面。
- 多种部署模式:支持将网页部署到主机PC、SPI Flash或SD卡,满足开发和生产环境需求。
安装使用步骤
硬件要求
- ESP32开发板(如ESP32 - WROVER Kit、ESP32 - Ethernet - Kit)或ESP32核心板(如ESP32 - DevKitC)。
- 若通过JTAG调试器部署网页,需额外的JTAG适配器。
- 若将网页部署到SD卡,需额外的SD卡插槽板。
配置项目
- 打开项目配置菜单:
bash idf.py menuconfig
- 在
Example Connection Configuration
菜单中:- 选择网络接口(Wi-Fi或以太网)。
- 若选Wi-Fi接口,设置Wi-Fi SSID和密码。
- 若选以太网接口,设置PHY模型、PHY地址和EMAC时钟模式。
- 在
Example Configuration
菜单中:- 设置mDNS主机名。
- 选择网页部署模式(主机PC、SD卡或SPI Flash)。
- 若选择部署到主机PC,指定网页的完整路径。
- 设置网页在VFS中的挂载点(默认为
/www
)。
构建和烧录
- 编译网页文件:
bash cd path_to_this_example/front/web-demo npm install npm run build
- 构建并烧录项目:
bash idf.py -p PORT flash monitor
额外步骤(部署到主机PC)
若选择通过JTAG调试器部署网页,需运行支持semihost功能的OpenOCD:
bash
openocd-esp32/bin/openocd -s openocd-esp32/share/openocd/scripts -f board/esp32-wrover-kit-3.3v.cfg
示例输出
- 在浏览器中渲染网页:在浏览器中输入
http://esp-home.local
或ESP32的IP地址,即可访问网页界面。 - ESP监控输出:在控制台中,可看到ESP32的输出信息,如网络连接状态、文件发送完成以及LED控制信息。
故障排除
若构建时出现错误...front/web-demo/dist doesn't exit. Please run 'npm run build' in ...front/web-demo
,需确保在构建项目之前已经生成了dist
目录。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】