embassy-am2302 (v0.5.1) 🦅
Driver async no_std pour le capteur de température et d'humidité AM2302 (DHT22).
Conçu spécifiquement pour l'écosystème Embassy (embassy-time, embassy-sync) et optimisé pour les performances du RP2350 (Pico 2).
⚠️ VERSIONS DÉPRÉCIÉES
Les versions 0.1.x, 0.2.x, 0.3.x et 0.4.x sont DÉPRÉCIÉES et ne doivent plus être utilisées.
Ces versions anciennes souffrent de :
- Conflits de structures EnvData inter-tâches
- Problèmes de typages critiques
- Incompatibilités avec le système de signaux
- Comportements instables en async
Utilisez obligatoirement la v0.5.1 ou supérieure.
🔴 ATTENTION CRITIQUE
La v0.5.1 corrige les conflits de structures EnvData lors de l'utilisation des signaux inter-tâches. C'est l'unique version stable recommandée pour tout projet asynchrone.
Fonctionnalités
- Async Natif : Entièrement non-bloquant via embassy-time.
- Calibration RP2350 : Testé et validé sur Pico 2 avec des seuils adaptés à la vitesse du processeur.
- Découplage Inter-tâches : Module signals intégré pour une communication thread-safe entre vos tâches.
- Zéro Allocation : Idéal pour les systèmes bare-metal et les kernels comme JC-OS.
Installation
[]
= "0.5.1"
= { = "0.4.0" }
= { = "0.6.0" }
= { = "1.0" }
Constantes de seuil (Calibration)
Le DHT22 mesure la durée des impulsions. La vitesse du processeur influence le comptage. Voici les valeurs validées :
| Constante | Carte | Fréquence | Seuil Recommandé |
|---|---|---|---|
PICO2_BIT_THRESHOLD |
Raspberry Pi Pico 2 | 150 MHz | 120 (Validé) |
PICO_BIT_THRESHOLD |
Raspberry Pi Pico | 125 MHz | 40 |
Note : Si vous utilisez des câbles longs, privilégiez un seuil plus élevé.
Exemple Complet : Intégration JC-OS (LCD + Capteur)
Voici comment orchestrer le capteur et un écran LCD HD44780 en utilisant le multitâche Embassy.
use Spawner;
use ;
use ;
use ;
use LcdI2c;
use Write;
use String;
// Utilisation du driver et du signal global
use ;
use ENV_SIGNAL;
async
async
Schéma de Câblage (Pico 2)
Pour éviter les erreurs 999.0 (Sensor Error), respectez scrupuleusement ce montage :
- VCC : Reliez au VBUS (5V) pour plus de stabilité.
- DATA : Pin GP22 (Pin 29 physique).
- GND : Masse commune.
- PULL-UP : Ajoutez une résistance physique de 4.7kΩ entre DATA et 3.3V.
Pourquoi cette architecture ?
L'utilisation du ENV_SIGNAL intégré permet un découplage total :
- Votre tâche de lecture gère le timing critique du capteur.
- Votre tâche d'affichage (ou de log) réagit instantanément dès qu'une donnée est disponible.
- Aucune variable globale risquée (
static mut), tout passe par un Signal sécurisé par section critique.
Copyright
Copyright (C) 2026 Jorge Andre Castro
Signé : The Rust Eagle 🦅
Licence
Ce projet est distribué sous licence GPL-2.0-or-later.
Voir le fichier LICENSE pour les détails.