littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于ESPIDF框架的电源监控系统

项目简介

本项目受Savjee的能源监测项目启发,主要目标是实现对电力消耗的实时监测,同时助力开发者学习ESP-IDF。项目集成了WiFi、mDNS、MQTT、UART通信、Home Assistant MQTT自动发现、FreeRTOS、cJSON等诸多功能。系统启动后会连接WiFi,借助mDNS发现MQTT服务器并建立连接,发送自动发现消息,随后每分钟将传感器数据发布到Home Assistant。

项目的主要特性和功能

  1. 电源数据监测:利用PZEM - 004T v3.0电源监测模块,可采集频率、电压、电流等电源相关数据。
  2. 网络通信:支持WiFi连接,能通过mDNS自动发现MQTT服务器,也可手动配置MQTT代理URL。
  3. 数据传输:通过MQTT协议将传感器数据发送到Home Assistant,实现数据的集中管理与展示。
  4. 自动发现:向Home Assistant发送自动发现消息,便于设备在Home Assistant中自动识别和配置。
  5. 显示功能:可使用SSD1306 0.96" Oled显示屏显示相关信息。

安装使用步骤

前提条件

用户已下载本项目的源码文件,且具备以下环境: - 开发工具:VSCode + Espressif IDF扩展 或 Eclipse + Espressif插件

具体步骤

  1. 添加组件:在项目根目录下创建“components”文件夹,将相关组件复制到该文件夹中。
  2. 配置项目:
    • 运行ESP-IDF配置编辑器(在VSCode中操作或运行idf.py menuconfig),设置参数,如板载闪存大小(CONFIG_ESPTOOLPY_FLASHSIZE="4MB")、板载CPU频率(CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240)等。若添加了SSD1306组件,需设置GPIO引脚;启用mDNS;可按需提高日志级别。
    • 在main.c文件开头配置PZEM - 004T v3.0的串口通信参数。
    • 在main.h中启用USE_MDNS,若mDNS发现失败,可在config.h中设置MQTT URL。
    • 在项目main文件夹中创建credentials.h文件,定义WiFi和MQTT的相关信息。
  3. 编译和烧录:使用ESP-IDF的编译和烧录工具将代码烧录到ESP32开发板。
  4. 硬件连接:将PZEM - 004T v3.0模块通过电平转换器连接到ESP32开发板,如有需要,连接SSD1306显示屏。
  5. 运行测试:上电后,观察设备是否成功连接WiFi和MQTT服务器,以及数据是否正常传输到Home Assistant。

下载地址

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