ESP8266自制10块钱的Modbus独立网关,采集电表数据发ThingsPanel

该文章已生成可运行项目,

文章速览

  • ✅ 总成本仅需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-

软件环境搭建

在这里插入图片描述

所需库文件

  1. WiFiManager - 实现WiFi配网功能
  2. PubSubClient - MQTT通信支持
  3. ModbusMaster - Modbus协议支持
  4. ArduinoJson - JSON数据处理

开发环境配置

  1. 安装Arduino IDE
  2. 添加ESP8266开发板支持
  3. 安装上述依赖库

代码实现与功能说明

代码中的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
本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值