pzem004t

Crates.iopzem004t
lib.rspzem004t
version0.1.7
sourcesrc
created_at2020-03-12 11:42:57.470532
updated_at2020-03-12 15:48:07.726851
descriptionAn embedded-hal driver for the PZEM004T energy monitor.
homepage
repositoryhttps://github.com/iostapyshyn/pzem004t
max_upload_size
id217835
size33,551
Ilya Ostapyshyn (iostapyshyn)

documentation

https://docs.rs/pzem004t

README

pzem004t

crates.io docs.rs license license Rust

An embedded-hal driver for the PZEM004T energy monitor.

A CLI for the library is available and can be run on all major operating systems (uses serialport crate).

Examples

Examples can be found in the examples/ directory.

Read the measurements off the sensor every second

let mut pzem = pzem004t::Pzem::new(serial, None).unwrap();
let mut m = pzem004t::Measurement::default();
loop {
    match pzem.read(&mut m, Some((&mut tim, TIMEOUT))) {
        Err(e) => hprintln!("Could not read PZEM004T: {}", e).unwrap(),
        Ok(()) => {
            hprintln!("Voltage: {:.1} V", m.voltage).unwrap();
            hprintln!("Current: {:.3} A", m.current).unwrap();
            hprintln!("Power: {:.1} W", m.power).unwrap();
            hprintln!("Energy: {:.3} kWh", m.energy).unwrap();
            hprintln!("Frequency: {:.1} Hz", m.frequency).unwrap();
            hprintln!("Power factor: {:.2}", m.pf).unwrap();
            hprintln!("Alarm: {}\n", m.alarm).unwrap();
        }
    }

    tim.start(1.hz());
    block!(tim.wait()).unwrap();
}

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in hexi by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 33

cargo fmt