Skip to content

zhihao1021/ESP_Power_Monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Power Monitor with ESP32 and HLW8112

Generated by Copilot

ESP32 + ESP-IDF 專案,用 SPI 讀取多顆 HLW8112 的電力資料(電壓、電流、功率、能量)。

功能

  • 以 SPI 與 HLW8112 通訊,支援寄存器讀寫與驗證
  • 讀取並換算:
    • 電壓 RmsU
    • 電流 RmsIA/RmsIB
    • 有功功率 PowerPA/PowerPB
    • 累積能量 Energy_PA/Energy_PB
  • 透過 GPIO 25/26/27 選擇不同 HLW8112 裝置(0~7)
  • 啟動時可初始化 Wi-Fi(Station mode)

專案結構

  • main/main.c:主流程、HLW8112 初始化、週期性讀值
  • main/spi.cmain/spi.h:SPI 初始化與裝置選擇
  • main/wifi.cmain/wifi.h:Wi-Fi 初始化
  • main/hlw8112/hlw8112.c:HLW8112 底層讀寫
  • main/hlw8112/convert.c:原始寄存器值換算為工程值
  • main/hlw8112/registers.h:寄存器定義與位元欄位
  • main/Kconfig.projbuild:可調整的專案設定

環境需求

  • ESP-IDF v5.5.x(專案目前在 v5.5.3 測試)
  • ESP32 開發板
  • HLW8112 硬體與對應前端量測電路

設定

先進入專案根目錄,執行:

idf.py menuconfig

Power Monitor Configuration 內設定:

  • Wifi Config
    • ESP_WIFI_SSID
    • ESP_WIFI_PASSWORD
    • 掃描驗證模式與 WPA3 SAE 選項
  • SPI Config
    • ESP_SPI_HOST_2ESP_SPI_HOST_3
    • ESP_SPI_SPEED(預設 100000)
  • Others config
    • ESP_STRICT_VERIFY

SPI 腳位

menuconfig 選擇的 Host 不同:

  • SPI Host 2
    • CS: GPIO15
    • CLK: GPIO14
    • MISO: GPIO12
    • MOSI: GPIO13
  • SPI Host 3
    • CS: GPIO5
    • CLK: GPIO18
    • MISO: GPIO19
    • MOSI: GPIO23

裝置選擇線(多工/解碼)固定使用:

  • SEL0: GPIO25
  • SEL1: GPIO26
  • SEL2: GPIO27

建置與燒錄

idf.py build
idf.py -p COM3 flash
idf.py -p COM3 monitor

Windows 使用者請將 COM3 改成實際序列埠。

執行行為

  • app_main() 會依序對裝置索引 0..6 做 HLW8112 初始化
  • 之後固定選擇索引 5,每秒輸出一次量測資訊

常見除錯方向

  • 先確認 REG_SYSCONREG_EMUCON 等初始化值是否與預期一致
  • 若能量脈衝相關計數異常(如 PFCntPA 一直為 0):
    • 檢查 EMUCON.Comp_off 是否關閉比較器
    • 檢查 PAstart/HFConst 設定
    • 檢查 PowerPAEMUStatus 是否符合脈衝產生條件
  • SPI 讀值驗證失敗時,優先檢查配線、SPI mode 與 clock

授權

目前未附授權條款;如需公開發佈,建議補上 LICENSE

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors