Mayar , Ruby-Joe : Prototypage
Contexte
Dans le cadre de nos expérimentations avec l'Arduino, nous avons exploré son potentiel en développant un système simple de détection d'humidité.
Objectif
Utiliser un capteur d'humidité avec une carte Arduino pour contrôler des LEDs. Lorsque l'humidité dépasse un seuil de 50%, la LED rouge s'allume. Si l'humidité est inférieure à ce seuil, c'est la LED verte qui s'allume.
Matériel
- 1 carte Arduino
- 1 BASE SHIELD
- 2 résistances
- 1 plaque de montage rapide (breadboard)
- 1 LED verte
- 1 LED rouge
- 4 fils de connection
- 1 capteur de température et d'humidité (type SHT31 ou similaire)
Montage Physique
Le capteur de température et d'humidité est connecté à la carte Arduino via un Base Shield, facilitant l'interface avec le capteur en utilisant le protocole I2C. Le rôle de ce capteur est de mesurer l'humidité ambiante.
Deux LEDs (une rouge et une verte) sont utilisées pour indiquer le niveau d'humidité :
- La LED rouge s'allume lorsque l'humidité dépasse 50%.
- La LED verte s'allume lorsque l'humidité est inférieure à 50%.
Les deux LEDs sont connectées à la breadboard, chacune avec une résistance pour limiter le courant. La LED rouge est branchée sur la broche 8 de l'Arduino, et la LED verte sur la broche 12. Elles sont ensuite reliées à la masse (GND) de l'Arduino pour fermer le circuit.
Le tout est alimenté par l'Arduino, qui est relié à un ordinateur via USB pour à la fois alimenter le circuit et afficher les résultats sur le moniteur série.
Explication du Code
Le code se compose de plusieurs parties importantes :
- Inclusion des bibliothèques et initialisation des variables
Ici, on inclut les bibliothèques nécessaires pour utiliser le protocole I2C et le capteur d'humidité SHT31. Les pins des LEDs sont définies respectivement sur les broches 8 (LED rouge) et 12 (LED verte). Les variables start et stop sont initialisés et utilisées pour mesurer le temps d’exécution de la lecture du capteur en microsecondes. L’objet sht permet d’interagir avec le capteur SHT31. - Configuration initiale dans la fonction
setup()
Cette partie du code initialise la communication série à 9600 baud (Serial.begin(9600)) pour afficher les résultats sur le moniteur série. Les pins des LEDs sont configurées en tant que sorties, et la communication I2C (Wire.begin()) avec le capteur est démarrée.
- Lecture des données d'humidité et Condition de contrôle des LEDs
Dans la boucle principale, le capteur d'humidité est interrogé, et la valeur mesurée est récupérée et affichée sur le moniteur série. Le capteur renvoie un pourcentage d'humidité.
Ensuite, avec une condition "if", selon le niveau d'humidité mesuré, le programme allume la LED rouge ou la LED verte. Si l'humidité dépasse ou est égale à 50%, la LED rouge s'allume (digitalWrite(LED, HIGH)) et la LED verte s'éteint. Si l'humidité est inférieure à 50%, c’est la LED verte qui s'allume et la LED rouge qui s'éteint. Ce contrôle est répété à chaque itération de la boucle.
La fonction delay(100) introduit une pause de 100 millisecondes entre chaque lecture pour Ă©viter une boucle trop rapide.
Tests
Après avoir terminé le montage et la programmation de l'Arduino, nous avons effectué des tests pour vérifier le bon fonctionnement du système.