Expand description
Driver async no_std pour le capteur AM2302 (DHT22).
Compatible avec toutes les cartes Embassy via embedded-hal (pins)
et embassy-time (délais précis).
§Calibration du seuil
Le DHT22 encode ses bits par la durée relative du signal haut :
~28 µs → bit 0, ~70 µs → bit 1. Cette crate mesure cette durée
par comptage d’itérations de boucle. Le seuil dépend de la
fréquence du MCU :
| Carte | Fréquence | Constante |
|---|---|---|
| Raspberry Pi Pico 2 (RP2350) | 150 MHz | PICO2_BIT_THRESHOLD |
| Raspberry Pi Pico (RP2040) | 125 MHz | PICO_BIT_THRESHOLD |
§Exemple — Embassy RP2350
ⓘ
use embassy_rp::gpio::Flex;
use embassy_am2302::{am2302_read, PICO2_BIT_THRESHOLD};
#[embassy_executor::task]
async fn sensor_task(mut pin: Flex<'static>) {
loop {
match am2302_read(&mut pin, PICO2_BIT_THRESHOLD).await {
Ok(data) => defmt::info!("{}°C {}%", data.temp, data.hum),
Err(_) => {}
}
embassy_time::Timer::after_secs(3).await;
}
}Modules§
- signals
- Signal global portant la dernière mesure publiée par
crate::am2302_read.
Structs§
- EnvData
- Données environnementales lues depuis le capteur AM2302.
Enums§
- Am2302
Error - Erreurs possibles lors de la lecture du capteur AM2302.
Constants§
- PICO2_
BIT_ THRESHOLD - Seuil calibré pour le Raspberry Pi Pico 2 (RP2350) à 150 MHz.
- PICO_
BIT_ THRESHOLD - Seuil calibré pour le Raspberry Pi Pico (RP2040) à 125 MHz.
Functions§
- am2302_
read - Lit une mesure depuis le capteur AM2302.