Skip to main content

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.