littlebot
Published on 2025-04-13 / 3 Visits
0

【源码】基于ESP8266和React的物联网框架

项目简介

这是一个基于ESP8266/ESP32平台的物联网框架,提供简单、安全且可扩展的解决方案。前端运用React和Material-UI构建,支持响应式设计。该框架与PlatformIO IDE配合使用,具备WiFi配置、访问点管理、NTP时间同步、MQTT连接、远程固件更新和安全保护等功能。

项目的主要特性和功能

  • WiFi配置:有网络扫描和WiFi配置界面。
  • 访问点管理:支持持续或自动启用的访问点。
  • 网络时间同步:可通过NTP同步时间。
  • MQTT连接:能连接到MQTT代理用于自动化和监控。
  • 远程固件更新:支持OTA更新或通过UI上传固件。
  • 安全保护:保护RESTful端点和用户界面。

安装使用步骤

前提条件

构建和上传固件

  1. 将项目复制到本地并使用PlatformIO打开。
  2. PlatformIO会自动下载ESP8266平台和项目库依赖。
  3. 点击“Build”按钮或运行命令platformio run进行构建。
  4. 点击“Upload”按钮或运行命令platformio run -t upload将固件上传到设备。

构建和上传前端界面

  1. PlatformIO会在构建固件之前自动构建前端界面。
  2. 默认配置为从PROGMEM提供界面,也可选择从文件系统提供。
  3. 若选择从文件系统提供界面,需上传文件系统镜像,点击“Upload File System image”按钮或运行命令platformio run -t uploadfs

本地开发前端界面

  1. 将固件部署到设备。
  2. interface/package.json中配置设备的IP地址。
  3. interface目录下运行npm start启动开发服务器。
  4. 在本地开发前端界面。

选择功能

框架的许多内置功能可在编译时启用或禁用,通过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】