Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michaelbeaumont/dht-sensor
Rust embedded-hal based driver for the DHT11/DHT22 sensor
https://github.com/michaelbeaumont/dht-sensor
embedded-hal embedded-hal-driver
Last synced: 7 days ago
JSON representation
Rust embedded-hal based driver for the DHT11/DHT22 sensor
- Host: GitHub
- URL: https://github.com/michaelbeaumont/dht-sensor
- Owner: michaelbeaumont
- License: mit
- Created: 2020-01-09T00:09:15.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-03-04T21:15:19.000Z (8 months ago)
- Last Synced: 2024-10-04T12:51:24.728Z (about 1 month ago)
- Topics: embedded-hal, embedded-hal-driver
- Language: Rust
- Homepage:
- Size: 39.1 KB
- Stars: 26
- Watchers: 3
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# DHT11/DHT22 sensor driver
[![crates.io](https://img.shields.io/crates/v/dht-sensor)](https://crates.io/crates/dht-sensor)
[![Docs](https://docs.rs/dht-sensor/badge.svg)](https://docs.rs/dht-sensor)This library provides a platform-agnostic driver for the [DHT11 and DHT22](https://learn.adafruit.com/dht/overview) sensors.
Use one of two functions `dht11::Reading::read` and `dht22::Reading::read` to get a reading.
## Usage
The only prerequisites are an embedded-hal implementation that provides:
- `Delay`-implementing type, for example Cortex-M microcontrollers typically use the `SysTick`.
- `InputOutputPin`-implementing type, for example an `Output` from `stm32f0xx_hal`.
- Note that you'll almost certainly need to configure your pin as open drain. See [#23](https://github.com/michaelbeaumont/dht-sensor/issues/23) for some discussion.See the [stm32f042 example](examples/stm32f042.rs) for a commented example of
how to use the library.### Release mode may be required
Compiling in debug mode may disturb the timing-sensitive parts of this crate and ultimately lead to failure.
In this case, you will likely receive a `Timeout` error. Try compiling with `--release` instead.### Tests
To run the tests, use something like `cargo test --lib --target x86_64-unknown-linux-gnu`.