PZEM-004T v3.0 开源项目教程
1. 项目的目录结构及介绍
PZEM-004T v3.0 项目的目录结构如下:
PZEM-004T-v30/
├── examples/
│ ├── BasicReadings/
│ └── CustomAddress/
├── src/
│ ├── PZEM004Tv30.cpp
│ └── PZEM004Tv30.h
├── .gitignore
├── LICENSE
├── LINKS.md
├── README.md
├── keywords.txt
├── library.json
└── library.properties
目录介绍:
- examples/: 包含项目的示例代码,帮助用户快速理解和使用库。
- BasicReadings/: 展示如何读取基本的电力参数。
- CustomAddress/: 展示如何设置自定义地址。
- src/: 包含库的核心源代码文件。
- PZEM004Tv30.cpp: 库的主要实现文件。
- PZEM004Tv30.h: 库的头文件。
- .gitignore: 指定Git版本控制系统忽略的文件和目录。
- LICENSE: 项目的许可证文件,采用MIT许可证。
- LINKS.md: 包含项目相关链接的文档。
- README.md: 项目的主文档,包含项目介绍、安装和使用说明。
- keywords.txt: 包含库的关键词,用于Arduino IDE的搜索功能。
- library.json: 库的元数据文件,用于Arduino库管理器。
- library.properties: 库的属性文件,用于Arduino库管理器。
2. 项目的启动文件介绍
项目的启动文件主要是 examples/BasicReadings/BasicReadings.ino
。这个文件展示了如何使用PZEM-004T v3.0库来读取基本的电力参数,如电压、电流、功率和能量。
启动文件内容概述:
#include <PZEM004Tv30.h>
PZEM004Tv30 pzem(Serial2);
void setup() {
Serial.begin(115200);
}
void loop() {
float voltage = pzem.voltage();
if (!isnan(voltage)) {
Serial.print("Voltage: "); Serial.print(voltage); Serial.println("V");
} else {
Serial.println("Error reading voltage");
}
float current = pzem.current();
if (!isnan(current)) {
Serial.print("Current: "); Serial.print(current); Serial.println("A");
} else {
Serial.println("Error reading current");
}
float power = pzem.power();
if (!isnan(power)) {
Serial.print("Power: "); Serial.print(power); Serial.println("W");
} else {
Serial.println("Error reading power");
}
float energy = pzem.energy();
if (!isnan(energy)) {
Serial.print("Energy: "); Serial.print(energy); Serial.println("Wh");
} else {
Serial.println("Error reading energy");
}
delay(2000);
}
功能介绍:
- 引入库:
#include <PZEM004Tv30.h>
- 初始化对象:
PZEM004Tv30 pzem(Serial2);
- 读取电压:
float voltage = pzem.voltage();
- 读取电流:
float current = pzem.current();
- 读取功率:
float power = pzem.power();
- 读取能量:
float energy = pzem.energy();
3. 项目的配置文件介绍
项目的配置文件主要是 library.properties
和 library.json
。这两个文件包含了库的元数据,用于Arduino库管理器。
library.properties 内容概述:
name=PZEM004Tv30
version=1.1.2
author=Jakub Mandula
maintainer=Jakub Mandula
sentence=Arduino