Carte Arduino
Explication du code IRS-SI
1. Les bibliothèques
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <rgb_lcd.h>
#include <AM2302-Sensor.h>
On charge les outils nécessaires : SPI et Ethernet pour la connexion réseau, Wire pour le bus I2C, rgb_lcd pour l'écran, AM2302 pour le capteur température/humidité.
2. La configuration
#define PIN_DHT A0
#define PIN_BOUTON 2
#define PIN_LUMINOSITE A3
On déclare les broches utilisées. Si tu changes un câble de place, tu modifies juste ici sans toucher au reste du code.
3. Les objets
rgb_lcd lcd;
EthernetServer serveur(PORT_HTTP);
AM2302::AM2302_Sensor capteurDHT(PIN_DHT);
On crée les 3 composants principaux : l'écran, le serveur web sur le port 80, et le capteur DHT.
4. Le setup — initialisation
lcd.begin(16, 2);
lcd.setRGB(0, 0, 255);
lcd.print("Initialisation");
L'écran démarre en bleu et affiche "Initialisation".
if (Ethernet.begin(mac)) {
lcd.setRGB(0, 255, 0);
lcd.print(Ethernet.localIP());
serveur.begin();
} else {
lcd.setRGB(255, 0, 0);
lcd.print("ERREUR reseau");
while (true) { }
}
On demande une adresse IP au routeur (DHCP). Si ça marche → écran vert + affichage de l'IP. Si ça échoue → écran rouge + blocage total.
5. La boucle principale
if (digitalRead(PIN_BOUTON) == LOW) {
lireCapteurs();
afficherSurLCD();
}
En permanence : si le bouton est pressé, on lit les capteurs et on affiche sur l'écran.
EthernetClient client = serveur.available();
if (client) {
traiterRequeteHTTP(client);
}
En permanence aussi : si quelqu'un se connecte via un navigateur, on lui répond.
6. La lecture des capteurs
void lireCapteurs() {
capteurDHT.read();
temperature = capteurDHT.get_Temperature();
humidite = capteurDHT.get_Humidity();
luminosite = analogRead(PIN_LUMINOSITE);
}
On interroge le capteur DHT pour la temp/humidité, et on lit la valeur analogique du capteur de luminosité (0 = sombre, 1023 = pleine lumière).
7. La page web
client.println("HTTP/1.1 200 OK");
...
client.print("<p>Temperature : <b>"); client.print(temperature, 1);
client.print("<p>Humidite : <b>"); client.print(humidite, 0);
client.print("<p>Luminosite : <b>"); client.print(luminosite);
On envoie une page HTML simple au navigateur avec les 3 valeurs des capteurs en temps réel.
No Comments