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

【源码】基于NodeMCU的WiFi以太网水表读数器

项目简介

本项目是基于NodeMCU的WiFi/以太网水表读数系统,可远程读取水表数据并通过MQTT协议传输。与传统脉冲计数的水表读取方式不同,它能精确捕获水表的索引数据。支持无线或有线(以太网)连接、MQTT协议的远程索引更新,还可与智能家居系统(如Domoticz或Home Assistant)集成,同时具备OTA(空中编程)支持。项目使用了W5500以太网模块和LJ18A3-8-ZM18电感式传感器等硬件。

项目的主要特性和功能

  • 支持通过以太网或WiFi连接家庭网络。
  • 利用MQTT协议将水表数据发送至服务器。
  • 精确捕获并发送水表索引数据,而非仅脉冲计数。
  • 可通过MQTT协议远程更新水表的索引设置。
  • 支持智能家居系统(如Domoticz或Home Assistant)的自动发现功能。
  • 提供OTA空中编程支持,便于固件更新。

安装使用步骤

硬件准备

  • NodeMCU V3开发板:运行水表读数器核心代码。
  • W5500以太网模块及盾板:用于以太网连接。
  • LJ18A3-8-ZM18电感式传感器:检测水表读数。
  • micro USB POE分离器(可选):若需POE供电。
  • 3D打印的盒子和密封件(可选):保护设备。

软件部署步骤

  1. 安装Arduino IDE。
  2. 安装依赖库:
  3. ArduinoJson(至少版本7.0.4)
  4. PubSubClient(至少版本2.8)
  5. 在Arduino IDE中选择NodeMCU 0.9开发板。
  6. 根据需求修改代码参数:
  7. 网络连接设置:选以太网或WiFi连接。
  8. WiFi设置:设置WiFi的SSID和密码(使用WiFi连接时)。
  9. 以太网设置:设置W5500的CSPIN和MAC地址。
  10. MQTT设置:设置MQTT服务器的IP地址、端口、用户名、密码、自动发现主题和发布主题。
  11. 传感器设置:设置传感器编号和设备名称,确保多设备使用时唯一。
  12. 将修改后的代码上传到NodeMCU开发板。
  13. 测试与调试,确保设备能正确连网并将数据发送到MQTT服务器。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】