Skip to content
 
 

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MB_GW - ESP32 Modbus 工业网关

Version ESP-IDF Language License

项目简介

MB_GW 是基于 ESP32 + ESP-IDF 开发的轻量级 Modbus RTU <-> TCP 工业网关,内置 Vue 开发的 Web 可视化管理后台,支持 RS485 Modbus 设备网络接入、寄存器批量配置、数据采集与转发,适用于工业物联网、PLC、传感器、智能仪表等场景。

项目前后端一体化:底层通信逻辑使用 C 语言,Web 管理页面采用 Vue 开发,支持浏览器零客户端配置,开箱即用。

技术占比

  • Vue:47.0%(Web 管理前端)
  • C:42.9%(ESP32 底层驱动、Modbus 协议栈、网关业务)
  • CSS:7.7%(页面样式)
  • CMake:2.2%(工程编译配置)
  • Other:0.2%

核心功能

  1. Modbus 协议转换

    • Modbus RTU(RS485)与 Modbus TCP 双向互通
    • 支持多从站轮询、寄存器读写、批量采集
    • 修复批量写入、时间戳显示异常问题
  2. Web 可视化配置后台

    • 浏览器直接访问网关内置网页,无需上位机软件
    • 寄存器配置页面支持 CSV 文件批量导入导出
    • 实时查看寄存器数据、通信日志、设备时间戳
    • WiFi、串口参数、轮询周期、从站 ID 可视化配置
  3. 工程稳定保障

    • 开启任务看门狗(Task Watchdog Timer),防止任务卡死
    • 自定义 Flash 分区表 partitions.csv,支持网页静态文件存储与 NVS 参数持久化
    • 完整 CMake 工程管理,依赖锁定文件 dependencies.lock 保证编译一致性
    • FreeRTOS 多任务分离:Web 服务、Modbus 采集、后台配置独立调度
  4. 数据特性

    • 寄存器批量读写,支持批量下发指令
    • 每条采集数据附带标准时间戳,方便时序数据分析
    • 本地持久化配置,断电参数不丢失

目录结构

MB_GW
├── main                # ESP32 C 主程序,Modbus 网关核心逻辑
├── web                 # Vue 前端网页源码(网关内置 WebServer)
├── .clangd             # C/C++ 代码补全配置
├── CMakeLists.txt      # ESP-IDF 工程构建脚本 V1.0.0
├── dependencies.lock    # 第三方依赖锁定版本
├── partitions.csv      # 自定义 Flash 分区表(网页文件/NVS/应用分区)
├── sdkconfig           # ESP-IDF 编译配置(开启任务看门狗)
└── README.md           # 项目说明文档

硬件需求

  • ESP32-C3 模组
  • TTL 转 RS485 模块(MAX485)
  • 直流 12V 供电
  • WiFi 网络环境

开发环境搭建

1. 环境依赖

  • ESP-IDF V6.0.1 版本(推荐)
  • Git
  • Node.js(如需二次修改 Vue Web 前端)
  • CMake / Ninja

2. 拉取代码

git clone https://github.com/Johncora/MB_GW.git
cd MB_GW

3. Web 前端编译(可选,修改页面后执行)

cd web
npm install
npm run build
# 编译产物会自动打包进 ESP32 Flash 文件系统

4. 固件编译与烧录

# 配置工程参数(串口、WiFi、Modbus 串口引脚)
idf.py menuconfig

# 编译固件
idf.py build

# 烧录至 ESP32
idf.py flash -p /dev/ttyUSB0

# 打开串口日志
idf.py monitor -p /dev/ttyUSB0

使用流程

默认 管理员用户 admin 密码 12345678

默认 AP 名称 ModbusGateway 密码 12345678

  1. 烧录固件,ESP32 上电启动
  2. 设备默认开启 AP 热点,或连接局域网 WiFi(可在网页配置)
  3. 浏览器输入网关 IP 进入 Web 管理页面
  4. 配置 RS485 串口参数(波特率、数据位、校验)、Modbus 从站列表
  5. 寄存器配置页面导入 CSV 批量添加采集点位
  6. 开启自动轮询,实时查看寄存器数值与时间戳日志
  7. 外部 Modbus TCP 客户端(上位机、SCADA)可直接连接网关访问 RTU 设备

更新日志

  • V1.0.0:初始版本,基础 Modbus 网关、Web 管理、自定义分区
  • 迭代1:添加 Task Watchdog Timer,提升系统稳定性
  • 迭代2:寄存器配置页面新增 CSV 导入功能
  • 迭代3:修复批量写入寄存器异常、时间戳显示错乱问题
  • 迭代4:优化移动端web布局

适用场景

  • 工厂老旧 Modbus RTU 仪表网络化改造
  • 楼宇自控、水泵、温湿度传感器远程采集
  • PLC 远程网络调试、多设备集中监控
  • 物联网边缘采集网关,对接云平台/本地 SCADA

硬件

https://oshwhub.com/no_on/project_xasarmaw

开源协议

MIT License,可自由商用、二次开发,保留开源声明即可。

问题反馈

提交 Issue:https://github.com/Johncora/MB_GW/issues

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages