项目简介
本项目基于ESP32开发板构建智能电表系统,借助WiFi连接,具备邮件客户端功能、传感器数据管理以及HTTP服务等。利用ESP32开发板进行数据采集与存储,通过WiFi实现数据传输与通信,还能利用邮件进行通知。项目包含硬件开发板、WiFi连接、文件系统管理、邮件发送等多个功能模块。
项目的主要特性和功能
- WiFi连接:利用ESP32开发板的WiFi模块,支持AP模式和STA模式的网络连接。
- 数据采集与存储:通过PZEM - 004T传感器采集数据,并存储在EEPROM或SPIFFS文件系统中。
- 邮件发送:可定时发送电费统计邮件,也能响应按钮按下事件发送邮件。
- HTTP服务:提供API接口,用于获取系统状态、配置信息以及更新固件等操作。
- 时间管理:通过NTP时间协议获取准确时间并进行格式化。
- 文件系统管理:使用LittleFS和SPIFFS文件系统管理传感器数据。
- 定时任务:定时读取传感器数据、更新EEPROM和发送邮件。
安装使用步骤
硬件准备
准备ESP32开发板(如ESP32 - Solo1)和pzem - 004T电源模块等硬件。
软件环境配置
确保已安装以下依赖项: - Arduino IDE 或 PlatformIO - WiFi 库(通常在 ESP32 开发环境中默认包含)
Arduino IDE 安装步骤
- 打开 Arduino IDE。
- 转到
文件 -> 首选项
,在附加开发板管理器网址
中添加链接:https://dl.espressif.com/dl/package_esp32_index.json - 打开
工具 -> 开发板 -> 开发板管理器
,搜索并安装esp32
。 - 确认 WiFi 库已安装(通常安装 ESP32 开发包时会默认包含)。
- 国内下载 platformio 库需科学上网或使用代理,也可离线安装,参考 Bilibili 视频。
PlatformIO 安装步骤
- 安装 VS Code 和 PlatformIO 插件。
- 在
platformio.ini
文件中添加所需的依赖项:ini [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino upload_protocol = esptool upload_speed = 115200 monitor_speed = 115200 board_build.f_cpu = 24000000L build_flags = -D PIO_FRAMEWORK_ARDUINO_MMU_EXTERNAL_128K board_build.mcu = esp32 board_build.filesystem = littlefs board_build.partitions = partitions_custom.csv lib_deps = joysfera/Tasker@^2.0.3 mandulaj/PZEM - 004T - v30@^1.1.2 mobizt/ESP Mail Client@^3.4.19 arduino - libraries/NTPClient@^3.2.1 paulstoffregen/Time@^1.6.1 xiaozi/Blinker@^0.3.10
编译与烧录
- 连接 ESP32 开发板。
- 使用 Arduino IDE 或 PlatformIO 进行项目编译,然后使用烧录工具将编译后的程序烧录到 ESP32 开发板中。
配置与使用
- 连接开发板 AP 热点。
- 打开浏览器,输入 192.168.4.1 进入配置页面,在网页中编辑您的 WiFi 和邮箱配置。
- BlinkerAUTH 为特定密钥。
- WiFi 连接成功后热点自动关闭,若连接失败设备自动开启热点,重复步骤 2。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】