Generated using AI. Be aware that everything might not be accurate.



Chapitre 7 — Électronique au Jardin : Arduino et ESP32

Nous entrons dans la deuxième partie du livre. Après avoir compris les mécanismes scientifiques du jardin, nous allons construire des outils pour les mesurer et les automatiser. Les microcontrôleurs Arduino et ESP32 sont les plateformes idéales pour cette tâche.

7.1 Pourquoi des microcontrôleurs au jardin ?

Un jardin produit en continu des données pertinentes : température, humidité du sol, pH, rayonnement. L’œil humain ne peut surveiller ces variables en permanence. Un microcontrôleur, lui, peut :

  • Lire des capteurs toutes les N secondes, 24h/24
  • Prendre des décisions (ouvrir une vanne, allumer une pompe)
  • Enregistrer des données dans une carte SD ou envoyer par WiFi
  • Alerter en cas de valeur anormale (gel imminent, sol trop sec)

7.2 Arduino vs ESP32 : quel choisir ?

Arduino Uno/Nano (Microchip ATmega328P)

Caractéristique Valeur
Processeur ATmega328P, 8 bits, 16 MHz
Mémoire Flash 32 KB
RAM 2 KB
Tension de fonctionnement 5 V
Broches analogiques (ADC) 6 × 10 bits
Courant max par broche 40 mA
WiFi/Bluetooth Non (natif)
Consommation active ≈ 15–50 mA
Prix ≈ 3–5 €

Idéal pour : projets simples, environnements industriels (robustesse 5 V), apprentissage.

ESP32 (Espressif Systems)

Caractéristique Valeur
Processeur Xtensa LX6, 32 bits, 240 MHz (dual-core)
Mémoire Flash 4–16 MB
RAM 520 KB
Tension de fonctionnement 3,3 V
Broches analogiques (ADC) 18 × 12 bits
Courant max par broche 40 mA
WiFi 802.11 b/g/n (2,4 GHz)
Bluetooth BLE 4.2 + Classic
Consommation active ≈ 80–240 mA
Consommation deep sleep ≈ 10 µA
Prix ≈ 3–8 €

Idéal pour : projets connectés, traitement de données, deep sleep pour batteries.

ESP8266 (NodeMCU)

Alternative moins puissante à l’ESP32, sans Bluetooth et avec un seul cœur CPU. Très bon rapport qualité/prix pour des stations météo WiFi simples.

7.3 Protocoles de communication

Les capteurs communiquent avec le microcontrôleur via différents protocoles :

I²C (Inter-Integrated Circuit)

  • Fils : SDA (données) + SCL (horloge) + GND + VCC
  • Vitesse : 100 kHz (standard), 400 kHz (fast)
  • Adresses : 7 bits → 128 adresses max sur le même bus
  • Distance : < 1 m recommandé
  • Capteurs typiques : BME280 (T/H/P), ADS1115 (ADC 16 bits), OLED 128×64
# ESP32 MicroPython - Scanner I2C
from machine import I2C, Pin
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
devices = i2c.scan()
print("Appareils I2C trouvés:", [hex(d) for d in devices])

SPI (Serial Peripheral Interface)

  • Fils : MOSI + MISO + SCK + CS (par appareil) + GND + VCC
  • Vitesse : jusqu’à 80 MHz
  • Communication : full-duplex, plus rapide que I²C
  • Capteurs typiques : carte SD, MAX31855 (thermocouple), capteur pression BMP388

UART (Universal Asynchronous Receiver-Transmitter)

  • Fils : TX + RX + GND
  • Vitesse : 9600 à 115200 bps
  • Capteurs typiques : GPS (NEO-6M), capteur CO₂ MH-Z19, capteur UV

1-Wire

  • Fils : un seul fil de données + GND + VCC
  • Capteurs typiques : DS18B20 (température, étanche)
  • Avantage : plusieurs capteurs sur le même fil (adressage 64 bits)

Analogique (ADC)

Pour les capteurs résistifs simples (humidité sol capacitive ou résistive, LDR) :

V_out = V_cc × R_capteur / (R_capteur + R_reference)

La résolution d’un ADC 12 bits (ESP32) sur 3,3 V est :

Résolution = 3,3 V / 2¹² = 3,3 / 4096 ≈ 0,8 mV par division

Attention : l’ADC de l’ESP32 est non-linéaire, surtout aux extrémités (0–0,1 V et 3,1–3,3 V). Utiliser un ADS1115 externe pour les mesures précises.

7.4 Alimentation et consommation énergétique

Sources d’alimentation

Source Tension Avantage Inconvénient
USB 5 V 5 V Simple, disponible Câble nécessaire
Batterie Li-Ion 18650 3,7 V Autonome Gestion charge requise
Pack solaire 5–6 V Renouvelable Irradiation variable
Pile AA (2×) 3 V Petite taille Faible capacité

Calcul d’autonomie

Autonomie (h) = Capacité batterie (mAh) / Consommation moyenne (mA)

Optimisation par deep sleep :

Si l’ESP32 mesure pendant 1 s toutes les 5 minutes :

Consommation moyenne = (1s × 80 mA + 299s × 0,01 mA) / 300s
                    = (80 + 2,99) / 300
                    ≈ 0,277 mA

Avec une batterie 18650 (3 000 mAh) :

Autonomie = 3000 / 0,277 ≈ 10 800 h ≈ 450 jours !

Comparé à 37,5 h sans deep sleep (3000 / 80 mA).

7.5 Programmation : Arduino IDE vs MicroPython

Arduino IDE (C++)

// Exemple : lire un capteur analogique toutes les 10 s
const int PIN_CAPTEUR = A0;

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

void loop() {
  int valeur = analogRead(PIN_CAPTEUR);
  float tension = valeur * 5.0 / 1023.0;
  Serial.print("Tension: ");
  Serial.println(tension);
  delay(10000);  // 10 secondes
}

Avantages : bibliothèques très nombreuses, documentation abondante, compilation efficace.

MicroPython (Python sur ESP32)

# Exemple équivalent en MicroPython
from machine import ADC, Pin
import time

adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB)  # Plage 0-3,3 V

while True:
    valeur = adc.read()
    tension = valeur * 3.3 / 4095
    print(f"Tension: {tension:.3f} V")
    time.sleep(10)

Avantages : syntaxe Python familière, REPL interactif, idéal pour prototypage.

Dans ce livre, nous utilisons MicroPython pour les exemples ESP32 et Python standard pour les scripts d’analyse de données.

7.6 Architecture d’un système de jardin connecté

[Capteurs]          [ESP32]          [Serveur/Cloud]
  DS18B20 ──1Wire──┐
  SHT31   ──I2C───┤              ┌── InfluxDB
  Capteur H. ─ADC─┤── WiFi MQTT─┤── Grafana
  BH1750  ──I2C───┤              └── Alertes
  pH (ADC)────────┘

[Actionneurs]
  Pompe ──── Relais ──── ESP32
  Vanne ──── MOSFET ──── ESP32

Les chapitres suivants décrivent chaque bloc de cette architecture.

7.7 Précautions en environnement jardin

  • Imperméabilisation : utiliser des boîtiers IP65 minimum, des connecteurs étanches (type JST-SM)
  • Tensions : ne jamais dépasser 3,3 V sur les broches ESP32 (sauf broches tolérantes 5 V spécifiées)
  • Induction : éloigner les câbles de signal des câbles de puissance (pompes, électrovannes)
  • Condensation : un sachet de silica gel dans le boîtier protège l’électronique
  • Foudre : des optocoupleurs isolent l’électronique fine des électrovannes alimentées en 12–24 V

← Précédent : Compostage Suivant : Capteurs →

← Retour à la Table des Matières



>> You can subscribe to my mailing list here for a monthly update. <<