项目简介
本项目是基于ESP8266微控制器和MQTT协议构建的水表监控系统。借助ESP8266和LiquidCrystal_I2C显示屏,系统可实时监控水表数据,并通过MQTT协议将数据传输至远程服务器。同时,系统支持通过Wi-Fi进行固件更新,还能将测量数据保存到EEPROM中。
项目的主要特性和功能
- 实时监控:利用ESP8266和LiquidCrystal_I2C显示屏实时显示水表数据。
- MQTT通信:支持使用MQTT协议与远程服务器进行数据的发布和订阅。
- 固件更新:可通过Wi-Fi进行固件更新,保证系统处于最新状态。
- 数据存储:将所有测量数据保存到EEPROM,防止断电导致数据丢失。
- 初始值设置:支持通过MQTT设置初始水表读数,便于系统初始化和数据校准。
安装使用步骤
1. 配置设置
在编译和上传代码前,修改Settings.h
文件中的配置参数,如Wi-Fi SSID、密码、MQTT服务器地址、端口、用户名和密码等。
```cpp
define WIFI_SSID "YourWiFiSSID"
define WIFI_PASSWORD "YourWiFiPassword"
define MQTT_SERVER "YourMQTTServerIP"
define MQTT_PORT 1883
define MQTT_USER "YourMQTTUsername"
define MQTT_PASS "YourMQTTPassword"
```
2. 编译和上传代码
用Arduino IDE打开项目文件,选择正确的开发板(ESP8266)和端口,点击“上传”按钮将代码上传到ESP8266。
3. 启动系统
上传完成后,系统自动启动并尝试连接配置的Wi-Fi网络和MQTT服务器。连接成功后,开始监控水表数据并通过MQTT发布数据。
4. 设置初始值
若需设置初始水表读数,可通过MQTT发布以下主题和消息:
- 重置读数:/watercount/correct/reset
= 1
- 设置冷水读数:/watercount/correct/Cold
= 00000.000
- 设置热水读数:/watercount/correct/Hot
= 00000.000
系统接收到消息后更新EEPROM中的数据,并通过MQTT返回确认消息。
5. 查看数据
可通过MQTT客户端订阅相关主题查看系统发布的数据,或连接到系统的HTTP更新服务器查看系统状态和进行固件更新。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】