🌡️ Interfaçage de capteurs avec Arduino

Connectez et programmez les capteurs les plus populaires : température, distance, luminosité et mouvement

Pourquoi les capteurs sont essentiels

Un microcontrôleur seul ne perçoit rien du monde extérieur. Les capteurs sont les « sens » de votre projet : ils convertissent des grandeurs physiques (température, distance, luminosité, accélération…) en signaux électriques que l'Arduino peut lire et traiter. La majorité des projets embarqués intègrent au moins un capteur.

Les capteurs se connectent à l'Arduino de trois façons principales :

🌡️ Capteur DHT11 / DHT22 — Température et humidité

Le DHT22 (ou son petit frère le DHT11) est l'un des capteurs les plus utilisés avec Arduino. Il mesure la température et l'humidité relative de l'air via un protocole numérique propriétaire à un seul fil de données.

Caractéristiques comparées

SpecDHT11DHT22
Plage température0 à 50°C-40 à 80°C
Précision temp.±2°C±0.5°C
Plage humidité20–80%0–100%
Fréquence de lecture1 Hz0.5 Hz (2s)
Prix~1 €~3 €

Câblage

Code Arduino

#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
    Serial.begin(9600);
    dht.begin();
}

void loop() {
    delay(2000);  // DHT22 : lecture toutes les 2 secondes min

    float h = dht.readHumidity();
    float t = dht.readTemperature();

    if (isnan(h) || isnan(t)) {
        Serial.println("Erreur de lecture DHT !");
        return;
    }

    Serial.print("Température : ");
    Serial.print(t);
    Serial.print("°C  |  Humidité : ");
    Serial.print(h);
    Serial.println("%");
}

N'oubliez pas d'installer la bibliothèque « DHT sensor library » par Adafruit via le gestionnaire de bibliothèques.

📏 Capteur HC-SR04 — Distance par ultrasons

Le HC-SR04 mesure la distance à un objet par émission et réception d'ondes ultrasoniques. Sa portée va de 2 cm à 400 cm avec une précision d'environ 3 mm.

Principe de fonctionnement

Le capteur émet une impulsion ultrasonique (40 kHz) par le transducteur TRIG. L'onde rebondit sur l'objet et est captée par ECHO. Le temps aller-retour permet de calculer la distance : distance = (temps × vitesse du son) / 2.

Câblage

Code Arduino

const int TRIG = 9;
const int ECHO = 10;

void setup() {
    Serial.begin(9600);
    pinMode(TRIG, OUTPUT);
    pinMode(ECHO, INPUT);
}

void loop() {
    // Impulsion TRIG de 10 µs
    digitalWrite(TRIG, LOW);
    delayMicroseconds(2);
    digitalWrite(TRIG, HIGH);
    delayMicroseconds(10);
    digitalWrite(TRIG, LOW);

    // Mesure du temps aller-retour
    long duree = pulseIn(ECHO, HIGH);
    float distance = duree * 0.034 / 2.0;  // cm

    Serial.print("Distance : ");
    Serial.print(distance);
    Serial.println(" cm");
    delay(200);
}

☀️ LDR — Capteur de luminosité

La LDR (Light Dependent Resistor) ou photorésistance est le capteur analogique le plus simple. Sa résistance diminue quand la luminosité augmente. Couplée à une résistance fixe en diviseur de tension, elle fournit une tension analogique proportionnelle à la lumière ambiante.

Câblage (diviseur de tension)

void setup() {
    Serial.begin(9600);
}

void loop() {
    int luminosite = analogRead(A0);  // 0 (sombre) à 1023 (très lumineux)

    Serial.print("Luminosité : ");
    Serial.println(luminosite);

    if (luminosite < 300) {
        Serial.println("→ Sombre (veilleuse ON)");
    } else {
        Serial.println("→ Lumineux (veilleuse OFF)");
    }
    delay(500);
}

Ce capteur est idéal pour une veilleuse automatique, un suivi solaire ou un luxmètre basique.

🌡️ DS18B20 — Sonde de température étanche

Le DS18B20 est un capteur de température numérique utilisant le protocole 1-Wire (un seul fil de données). Il est précis (±0.5°C), étanche (version sonde inox) et permet de chaîner plusieurs capteurs sur le même fil.

Câblage

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature capteurs(&oneWire);

void setup() {
    Serial.begin(9600);
    capteurs.begin();
}

void loop() {
    capteurs.requestTemperatures();
    float temp = capteurs.getTempCByIndex(0);

    Serial.print("Température : ");
    Serial.print(temp);
    Serial.println("°C");
    delay(1000);
}

Installez les bibliothèques « OneWire » et « DallasTemperature » via le gestionnaire de bibliothèques.

📋 Tableau récapitulatif des capteurs courants

CapteurMesureInterfacePrix
DHT11 / DHT22Température + humiditéNumérique 1 fil1–3 €
HC-SR04Distance (ultrasons)Numérique (TRIG/ECHO)1 €
LDRLuminositéAnalogique0.20 €
DS18B20Température (étanche)1-Wire2 €
BMP280 / BME280Temp + pression (+ humidité)I2C2–4 €
MPU6050Accéléromètre + gyroscopeI2C2 €
IR (TCRT5000)Proximité / suivi de ligneAnalogique / Numérique0.50 €