littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于ESP32的RESTful API服务器示例

项目简介

本项目展示了在ESP32上实现RESTful API服务器和HTTP服务器的方法,并配备前端浏览器UI。用户能借此学习ESP32处理HTTP请求、控制硬件设备(如LED灯),还可通过前端界面与设备交互。项目支持mDNS解析域名,即使设备IP地址变化,也能通过固定域名访问服务器。

项目的主要特性和功能

  1. RESTful API支持:提供多个API接口,包括/api/v1/system/info获取系统信息,/api/v1/temp/raw获取传感器原始温度数据,/api/v1/light/brightness控制LED灯亮度。
  2. mDNS支持:通过mDNS解析域名esp-home.local,确保设备IP变化时仍可通过固定域名访问服务器。
  3. 前端框架支持:采用Vue.js作为前端框架,Vuetify作为UI库,提供友好用户界面。
  4. 多种部署模式:支持将网页部署到主机PC、SPI Flash或SD卡,满足开发和生产环境需求。

安装使用步骤

硬件要求

  • ESP32开发板(如ESP32 - WROVER Kit、ESP32 - Ethernet - Kit)或ESP32核心板(如ESP32 - DevKitC)。
  • 若通过JTAG调试器部署网页,需额外的JTAG适配器。
  • 若将网页部署到SD卡,需额外的SD卡插槽板。

配置项目

  1. 打开项目配置菜单: bash idf.py menuconfig
  2. Example Connection Configuration菜单中:
    • 选择网络接口(Wi-Fi或以太网)。
    • 若选Wi-Fi接口,设置Wi-Fi SSID和密码。
    • 若选以太网接口,设置PHY模型、PHY地址和EMAC时钟模式。
  3. Example Configuration菜单中:
    • 设置mDNS主机名。
    • 选择网页部署模式(主机PC、SD卡或SPI Flash)。
    • 若选择部署到主机PC,指定网页的完整路径。
    • 设置网页在VFS中的挂载点(默认为/www)。

构建和烧录

  1. 编译网页文件: bash cd path_to_this_example/front/web-demo npm install npm run build
  2. 构建并烧录项目: 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】