# envController **Repository Path**: vanmintec/env-controller ## Basic Information - **Project Name**: envController - **Description**: 基于 **ESP32-S3** 的环境监控 / 远程控制网关,集数据采集、输出控制、联动告警、Web 管理于一体。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2026-06-02 - **Last Updated**: 2026-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: ESP32, 动环系统, 数据监控, 远程控制, 物联网 ## README # EnvController 环境监控网关 基于 **ESP32-S3** 的环境监控 / 远程控制网关,集数据采集、输出控制、联动告警、Web 管理于一体。 ## 1. 产品简介 ```mermaid flowchart LR S[环境传感器
温湿度/电表/水浸/光敏...] --> D[EnvController 网关] D --> W[Web 管理界面
浏览器访问] D --> C[外部设备
继电器/电磁阀/灯光...] D --> A[声光告警] ``` - 采集外部传感器数据(Modbus 总线 / 板载输入) - 控制外部设备(输出通道) - 联动规则自动控制 + 分级告警 - 历史数据本地存储,Web 界面全功能管理 - 可选接入**涂鸦云(TuyaLink 直连)**,云端查看/控制 - **以太网/串口/WiFi 数据链路均已下沉固件 C 模块**:RS485(DE/CRC)、W5500 以太网(esp_eth 全链路+初始化硬复位)、涂鸦 HMAC——关键时序不依赖 Python 估算,软复位后自动恢复 > **✨ 引脚可编辑,适配灵活** > 以太网 SPI、串口(RS485)、I2C、板载输入(DI/ADC)、输出等**全部引脚**均可在工程模式按接线实际配置,无需改动硬件即可适配不同开发板与现场接线方案,是本产品的核心灵活性之一。 ## 2. 硬件兼容性与支持的外设 - **兼容 ESP32-S3 N16R8 开发板**(16MB Flash / 8MB PSRAM) - 已支持外设: | 外设 | 用途 | |------|------| | W5500 以太网模块(SPI) | 有线网络接入(固件 C 模块 wizeth 驱动,初始化含硬件复位,软复位后自动恢复) | | WiFi(板载) | 无线网络接入 | | RS485 串口 | Modbus RTU 总线(接传感器/电表/PLC) | | TCA9554 I2C 扩展输出 | 8 路数字输出(继电器/电磁阀等) | | 板载 GPIO / ADC | 数字输入(水浸/门磁/烟感)+ 模拟量输入(光敏/电压/液位) | | SD 卡(TF) | 历史数据本地存储 | | RTC 实时时钟 | 时间记录 / 时间同步 | ## 3. 主要功能 | 功能 | 说明 | |------|------| | 数据采集 | Modbus 传感器 + 板载 DI/ADC 输入,实时采集 | | 输出控制 | 板载输出 / Modbus 输出 / GPIO 输出,支持手动与自动 | | 联动规则 | 条件满足自动执行输出动作(如温度高自动开空调) | | 分级告警 | 4 级告警、布防时间段、声光输出、自动消除 | | 历史数据 | 按天存储,Web 曲线查询 | | SD 卡管理 | 文件查看 / 上传 / 下载 / 删除 | | Web 管理 | 全部配置与监控通过浏览器完成,无需安装软件 | | MQTT 接入 | 可选 MQTT 上云(自定义协议:周期 DATA + 指令 /cmd + 告警事件) | | Home Assistant | `mqtt_mode=home_assistant` 单活模式:标准 **MQTT Discovery** 自动发现(数值/开关/选择/布防/告警事件等实体),平台侧零配置;删除通道自动清理残留实体 | | 涂鸦云接入 | 可选 TuyaLink 直连(云端设备接入,配置密钥/区域后可上线下发) | | **引脚可编辑** | 以太网/串口/I2C/输入/输出引脚均可在工程模式按需配置,适配不同硬件接线 | ## 4. 使用说明 ### 4.1 连接与访问 设备支持**以太网**与 **WiFi** 两种接入方式。上电后,通过浏览器访问设备地址(IP 以实际获取为准,可在路由后台或使用搜索工具查看)。 **默认账号**: | 账号 | 密码 | 角色 | |------|------|------| | `admin` | `admin` | 普通用户(日常管理) | | `engineer` | `engineer` | 工程用户(引脚/串口/总线等工程配置) | > 首次使用建议修改默认密码。 ### 4.2 固件烧写(envctrl_flash.exe) 使用随包附带的烧写工具,无需安装 Python: 1. 运行 `envctrl_flash.exe` 2. 选择设备**串口号**(如 COM8) 3. 选择**固件文件**(`.bin`,由厂商提供) 4. 选择波特率(默认 115200,线材质量好可提速) 5. 点击**开始刷写**,等待完成(设备自动重启) ### 4.3 设备搜索(envctrl_finder.exe) - 自动发现局域网内所有 EnvController 设备(显示名称/SN/IP/版本) - 双击设备可修改 IP(需输入设备账号密码认证,修改后自动重启生效) ## 5. 发布内容 编译好的固件、工具与升级包在仓库 [release/](release/) 目录: | 文件 | 说明 | |------|------| | `envctrl_finder.exe` | 设备搜索工具(发现设备 / 修改 IP) | | `envctrl_flash.exe` | 固件烧写工具 | | `envController-1.5.1-beta-20260906.bin` | 固件文件(配合烧写工具使用,ENVCTRL_S3 自编译固件) | | `envController-*-update.tar` | 设备升级包(配合设备 Web 维护页使用) | | `README.md` | 本说明文档 | | `API.md` | HTTP 接口文档(对接开发用) | | `MQTT.md` | MQTT 协议文档(对接开发用) | ## 6. 目录用途 | 目录 | 用途 | |------|------| | `flash/` | **板子运行的代码**:部署/刷写进设备的全部代码(`main.py` + 各服务 + `lib/` + `html/`) | | `c_mods/` | **固件 C 扩展模块**(`rs485bus` / `tuyacrypto` / `wizeth`),经 `USER_C_MODULES` 编译进固件,Python 侧自动回退旧实现 | | `tools/` | **用户向工具**:设备搜索(`envctrl_finder.py`)、固件刷写(`flash_fw.py` / `flash_fw_gui.py`) | | `docs/` | **文档**:API / FEATURES / MQTT / 项目介绍(README 留在仓库根目录) | | `release/` | **发布物**:固件 bin、升级包、工具 exe、文档与界面截图 | ## 7. 界面预览 | 页面 | 截图 | |------|------| | 主页(数据总览) | ![主页](docs/img/主页.png) | | 仪表盘(大屏) | ![仪表盘](docs/img/仪表盘.png) | | 设置 | ![设置](docs/img/设置.png) | | 输入输出管理 | ![输入输出](docs/img/输入输出.png) | | 联动规则 | ![联动规则](docs/img/联动规则.png) | | 告警规则 | ![告警规则](docs/img/告警规则.png) | ## 8. 联系我们 - **邮箱**:30629873@qq.com - **QQ**:30629873 - **Bug 报告 / 建议**:请发送邮件至上述邮箱,邮件中请附上设备 SN、固件版本与问题描述 - **承接系统移植,需提供测试板 ## 9. 更新记录 ### v1.5.1-beta(2026-09-06) - **涂鸦 TuyaLink 体验完善**:DP 功能点内置中文名(带设备来源前缀,如 UPS 输入电压/电量仪电压/空调设定温度),设置页功能绑定卡片直接显示功能点中文名(标识符降级小字);与涂鸦批量导入表 `product_dp_import.xlsx` 保持一致,另附 DP 多语言表 - **配置备份/恢复修复**:维护页"导入配置"选完文件无响应的问题修复(文件 input 内联触发);导入前对文件结构(JSON/kind/目标段)前后端双重校验,空文件或错文件明确报错 - **重启后自动刷新**:升级、重启、恢复出厂、工程重置、导入后重启等所有重启场景,设备恢复上线后页面自动刷新,无需手动 F5 - **OTA 白名单纳入 tuya_link_service**:升级包现可覆盖涂鸦链路服务(此前含该服务的升级包会被拒绝) - **烧写工具升级**:自动定位支持 `release/envController-*.bin`;exe 打包修复 esptool stub 缺失(`--collect-all esptool`) - **发布产物**:`envController-1.5.1-beta-20260906.bin` / `-update.tar`(应用代码编译为 .mpy,源码保护) ### v1.5.0-beta(2026-09-02) - 代码全面下沉固件 C 模块:RS485(DE/CRC)、W5500 以太网(esp_eth 全链路 + 初始化硬复位)、涂鸦 HMAC;软复位自动恢复,不再依赖 Python 时序估算 - **Home Assistant 接入完善**:MQTT Discovery 实体声明 flash 持久化,删除通道后自动发空 retain 清理残留实体(此前 HA 实体不随配置更新) - 系统配置导出/导入(用户/工程分离,维护页操作) - 页面重构与多页拆分(设置/维护/规则/告警各自独立)