项目简介
这是一个基于ESP8266/ESP32平台的物联网框架,提供简单、安全且可扩展的解决方案。前端运用React和Material-UI构建,支持响应式设计。该框架与PlatformIO IDE配合使用,具备WiFi配置、访问点管理、NTP时间同步、MQTT连接、远程固件更新和安全保护等功能。
项目的主要特性和功能
- WiFi配置:有网络扫描和WiFi配置界面。
- 访问点管理:支持持续或自动启用的访问点。
- 网络时间同步:可通过NTP同步时间。
- MQTT连接:能连接到MQTT代理用于自动化和监控。
- 远程固件更新:支持OTA更新或通过UI上传固件。
- 安全保护:保护RESTful端点和用户界面。
安装使用步骤
前提条件
- 安装PlatformIO IDE。
- 安装Node.js以使用npm构建前端界面。
构建和上传固件
- 将项目复制到本地并使用PlatformIO打开。
- PlatformIO会自动下载ESP8266平台和项目库依赖。
- 点击“Build”按钮或运行命令
platformio run
进行构建。 - 点击“Upload”按钮或运行命令
platformio run -t upload
将固件上传到设备。
构建和上传前端界面
- PlatformIO会在构建固件之前自动构建前端界面。
- 默认配置为从PROGMEM提供界面,也可选择从文件系统提供。
- 若选择从文件系统提供界面,需上传文件系统镜像,点击“Upload File System image”按钮或运行命令
platformio run -t uploadfs
。
本地开发前端界面
- 将固件部署到设备。
- 在
interface/package.json
中配置设备的IP地址。 - 在
interface
目录下运行npm start
启动开发服务器。 - 在本地开发前端界面。
选择功能
框架的许多内置功能可在编译时启用或禁用,通过features.ini
中的构建标志控制,以节省空间和内存。
工厂设置
框架内置工厂设置,作为可配置服务的默认值,可通过factory_settings.ini
中的构建标志自定义。
构建不同设备
该项目支持ESP8266和ESP32平台,通过修改platformio.ini
文件中的配置来支持不同设备。
自定义和主题
框架和Material-UI允许一定程度的自定义。编辑interface/src/CustomMuiTheme.tsx
文件可更改主题,替换interface/public/app/icon.png
文件可更改应用图标,在interface/.env
文件中可修改应用名称。
后端
后端是由ESPAsyncWebServer托管的REST端点集合。框架源代码按功能划分,可通过src/main.cpp
文件初始化框架并添加自定义端点。
安全特性
框架有安全特性防止未经授权使用设备,通过SecurityManager.h提供的安全管理器,对请求处理函数进行包装,使用内置的AuthenticationPredicates进行访问控制。
访问设置和服务
框架通过getter函数提供对各种功能的访问,如文件系统、安全管理器、WiFi设置服务、MQTT设置服务等,可通过这些服务读取或更新设置并观察设置变化。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】