Chapitre 8 — Les Capteurs : Température, Humidité, pH, Lumière

Un capteur convertit une grandeur physique ou chimique en signal électrique mesurable. Comprendre le principe de mesure permet de calibrer correctement, d’identifier les dérives et de choisir le bon capteur pour chaque application.

8.1 Température

DS18B20 (1-Wire, numérique)

Le DS18B20 est un capteur de température précis, étanche, très utilisé dans le jardin (sol, compost, eau de réservoir).

Principe : thermistance + convertisseur ADC intégré + interface 1-Wire.

Caractéristiques :

Résistance de pull-up requise : 4,7 kΩ entre DQ et VCC (obligatoire pour le bus 1-Wire).

# Lecture DS18B20 - MicroPython (ESP32)
from machine import Pin
import onewire, ds18x20, time

ds_pin = Pin(4)
ow = onewire.OneWire(ds_pin)
ds = ds18x20.DS18X20(ow)
roms = ds.scan()

def lire_temp_sol():
    ds.convert_temp()       # Lance la conversion ADC
    time.sleep_ms(750)      # Attendre (12 bits = 750 ms max)
    return ds.read_temp(roms[0])

BME280 (I²C, T/H/Pression)

Le BME280 de Bosch mesure la température, l’humidité relative et la pression atmosphérique sur le même composant.

Caractéristiques :

Calcul VPD à partir du BME280 :

import math

def calcul_vpd(temp_C, humidite_pct):
    es = 0.6108 * math.exp(17.27 * temp_C / (temp_C + 237.3))  # kPa
    ea = es * humidite_pct / 100
    return round(es - ea, 3)  # kPa

8.2 Humidité du sol

Il existe deux principes principaux de mesure de l’humidité volumique du sol :

Capteurs résistifs (conductance)

Les capteurs résistifs mesurent la résistance électrique du sol entre deux électrodes. Résistance élevée = sol sec.

Avantages : très bon marché (< 1 €) Inconvénients : corrosion rapide des électrodes, dépendance à la salinité, calibration difficile

Ne pas alimenter en DC continu → électrolyse et corrosion. Utiliser une alimentation AC (signal carré 1 kHz) ou n’alimenter que pendant la mesure.

Capteurs capacitifs (constante diélectrique)

Ces capteurs exploitent la forte constante diélectrique de l’eau (ε_eau = 80) comparée à l’air (ε_air = 1) et aux minéraux (ε_sol = 3–5).

ε_apparent = f(θ_volumique)

L’équation de Topp (1980) est la référence empirique :

θ = -5,3×10⁻² + 2,92×10⁻²·ε - 5,5×10⁻⁴·ε² + 4,3×10⁻⁶·ε³

Avantages : pas de corrosion, peu sensible à la salinité Inconvénients : dépendance à la texture du sol (nécessite calibration locale)

Capteurs recommandés :

# Lecture capteur capacitif analogique (MicroPython)
from machine import ADC, Pin

adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB)

def lire_humidite_sol():
    # Valeurs à calibrer pour votre capteur/sol
    SEC = 2800   # Valeur ADC sol sec
    SATURE = 1200  # Valeur ADC sol saturé
    brut = adc.read()
    pct = (SEC - brut) / (SEC - SATURE) * 100
    return max(0, min(100, pct))

8.3 pH

La mesure électrochimique du pH repose sur l’électrode de verre.

Principe de l’électrode de verre

L’électrode de verre développe un potentiel de membrane proportionnel au log[H⁺] dans la solution, selon l’équation de Nernst :

E = E° + (RT/nF) × ln[H⁺] E = E° - 0,0592 × pH (à 25°C)

La valeur 0,0592 V/pH (≈ 59 mV/pH) est la pente de Nernst à 25°C. À 20°C elle vaut 58 mV/pH, à 30°C elle vaut 60 mV/pH — d’où la nécessité de corriger la température.

Correction de température :

pente(T) = 0,0001984 × (273,15 + T) [V/pH]

Module pH pour Arduino/ESP32

Les électrodes de pH génèrent un signal dans une plage ±414 mV (pH 0–14). Un module de conditionnement (type Atlas Scientific EZO-pH ou DFRobot SEN0161) amplifie et met à l’échelle ce signal pour un ADC.

Calibration : toujours calibrer avec 2 ou 3 tampons (pH 4,01 ; 7,01 ; 10,01). La calibration en 2 points donne une droite (pente + offset).

# Calibration 2 points et lecture pH (Python, fichier de calibration)
def tension_vers_ph(tension_mV, pente, offset):
    """Convertit une tension ADC en valeur pH."""
    return (tension_mV - offset) / pente

# Exemple : point 1 = pH 4.01 à 210 mV, point 2 = pH 7.01 à 30 mV
pente = (30 - 210) / (7.01 - 4.01)  # mV/pH = -60 mV/pH
offset = 210 - pente * 4.01

8.4 Lumière (PAR)

BH1750 (I²C, luminosité)

Le BH1750 mesure l’éclairement en lux, pas en PAR (µmol/m²/s). La conversion approximative est :

PAR (µmol/m²/s) ≈ lux × 0,0185 (pour la lumière solaire)

Valeur lux Équivalent PAR Interprétation
< 1 000 lux < 18 µmol/m²/s Très faible
10 000 lux 185 µmol/m²/s Ombre légère
50 000 lux 925 µmol/m²/s Soleil voilé
100 000 lux 1 850 µmol/m²/s Plein soleil

Photodiode + filtre PAR (précis)

Pour une mesure PAR rigoureuse, une photodiode (ex. SFH 2716) couplée à un filtre passe-bande 400–700 nm et un transimpédance-amplificateur donne une mesure précise, mais requiert un circuit plus complexe.

AS7341 (spectrométrie 11 canaux)

Ce capteur mesure 11 canaux spectraux de 415 nm à 940 nm + un canal clair et un canal NIR. Il permet de décomposer le spectre lumineux — utile pour caractériser des sources artificielles en serre.

# Intégration journalière DLI (µmol/m²/jour)
# À appeler toutes les 10 minutes (voir code/data_logger.py)
def integrer_dli(mesures_par_interval, interval_s=600):
    total_umol = sum(m * interval_s for m in mesures_par_interval)
    return total_umol / 1e6  # Convertir en mol/m²/jour

8.5 Conductivité électrique (CE)

La CE de la solution du sol mesure la concentration totale en ions dissous (sels). On mesure la résistance entre deux électrodes à fréquence fixe (évite l’électrolyse).

CE (mS/cm) = constante_cellule / résistance (Ω)

La constante de cellule k (cm⁻¹) dépend de la géométrie des électrodes :

k = d / A (distance inter-électrodes / surface)

Correction de température (la CE augmente de ≈ 2 %/°C) :

CE_25 = CE_T / (1 + 0,0191 × (T - 25))

8.6 Tableau de synthèse des capteurs

Paramètre Capteur recommandé Interface Précision Prix approx.
Température sol DS18B20 étanche 1-Wire ±0,5°C 2–4 €
Température/Humidité air BME280 I²C ±1°C, ±3%HR 3–6 €
Humidité sol Capacitif v1.2 Analogique ±3% (après calibration) 1–3 €
pH sol DFRobot SEN0161 Analogique ±0,1 pH 25–50 €
Lumière BH1750 I²C ±20% 1–3 €
CE Atlas Scientific EZO-EC UART/I²C ±2% 80–150 €
PAR précis Apogee SQ-520 Analogique/RS-232 ±5% 250–400 €

← Précédent : Électronique Suivant : Irrigation Automatique →

← Retour à la Table des Matières