文章速览
- ✅ 总成本仅需10元 是之前的十分之一
- 🔧 15分钟即可完成组装
- 📊 实时采集电表数据并上传至ThingsPanel
- 💡 完整代码和接线图解
为什么要自制Modbus网关?
市面上的Modbus网关动辄100元以上,而通过本教程,你只需要10元就能实现同样的功能。我们将使用ESP8266配合RS485模块,打造一个经济实惠的Modbus网关解决方案。

数据已经上线

材料清单
- ESP8266模块
- MAX485模块
- 若干杜邦线
- USB数据线(烧录用)
详细接线教程

第一步:MAX485与ESP8266连接
| MAX485引脚 | ESP8266引脚 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| DI | TX(GPIO1) |
| RO | RX(GPIO3) |
| RE+DE | D1(GPIO5) |
💡 重要提示: RE和DE需要短接后再连接到D1引脚
第二步:电表RS485接线
- 电表A+ → MAX485 A+
- 电表B- → MAX485 B-
软件环境搭建

所需库文件
- WiFiManager - 实现WiFi配网功能
- PubSubClient - MQTT通信支持
- ModbusMaster - Modbus协议支持
- ArduinoJson - JSON数据处理
开发环境配置
- 安装Arduino IDE
- 添加ESP8266开发板支持
- 安装上述依赖库
代码实现与功能说明
代码中的MQTT连接参数需要在ThingsPanel中创建手动设备(不需要绑定设备配置模板),后即可得到。
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ModbusMaster.h>
#include <ArduinoJson.h>
#include <WiFiManager.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>
// MQTT设置,自行修改
const char* mqtt_server = "47.115.210.16";
const int mqtt_port = 1883;
char mqtt_username[40] = "fe917b16-d786-3297-8f1";
char mqtt_password[40] = "f129542";
char mqtt_client_id[40] = "mqtt_3243936a-c23";
const char* telemetry_topic = "devices/telemetry";
const char* control_topic

最低0.47元/天 解锁文章
915

被折叠的 条评论
为什么被折叠?



