Skip to main content

Crate embassy_am2302

Crate embassy_am2302 

Source
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 :

CarteFréquenceConstante
Raspberry Pi Pico 2 (RP2350)150 MHzPICO2_BIT_THRESHOLD
Raspberry Pi Pico (RP2040)125 MHzPICO_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§

Am2302Error
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.