Automatisation IoT

Agriculture intelligente IoT avec MQTT : capteurs, connectivité et architecture

Un guide pratique de l'agriculture intelligente IoT : quels capteurs comptent, comment connecter des parcelles sans Wi-Fi, comment structurer les topics MQTT d'une exploitation et comment garder le système opérationnel au fil des saisons.

Parcelle d'agriculture intelligente IoT avec sondes de sol, station météo, vannes d'irrigation et passerelle LoRaWAN envoyant des données vers un broker MQTT
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

L'agriculture intelligente IoT consiste à installer des capteurs et des actionneurs dans les champs, les serres et les bâtiments d'élevage afin que les décisions concernant l'eau, le climat et les animaux reposent sur des mesures plutôt que sur des suppositions. Ce guide explique quels capteurs valent la peine d'être déployés, comment connecter des sites sans Wi-Fi ni secteur, comment concevoir une structure de topics MQTT unique pour toute l'exploitation et comment garder le système fiable pendant toute une saison de culture.

Ce que mesure réellement l'agriculture intelligente IoT

Les exploitations sont variées, mais les mesures utiles se répartissent en quelques groupes. Commencez par celui qui répond à votre question la plus coûteuse, généralement l'eau, et ajoutez les autres une fois que le chemin des données fonctionne.

Domaine Capteurs typiques Décisions éclairées
Sol Humidité capacitive ou TDR, température du sol, CE (salinité) Quand et combien de temps irriguer, calendrier de fertilisation
Météo Température de l'air, humidité, pluviomètre, vent, rayonnement solaire, humectation foliaire Alertes de gel, fenêtres de traitement, estimation de l'évapotranspiration
Irrigation Débitmètres, capteurs de pression, position des vannes, courant des pompes Détection de fuites, confirmation que l'eau a bien été délivrée
Cultures sous abri Climat de la serre, CO2, lumière Aération, chauffage, brumisation, ombrage
Élevage Niveau des abreuvoirs, climat du bâtiment, colliers GPS, niveau des silos d'aliments Bien-être animal, alertes de vol et de fuite, planification du remplissage
Stockage Température et humidité des silos à grains, température des chambres froides Prévention des pertes

Une erreur courante consiste à acheter un gros kit de capteurs avant d'avoir décidé quelle action chaque mesure déclenchera. Une valeur d'humidité du sol sur laquelle personne n'agit n'est qu'un graphique. Notez d'abord la décision, puis la mesure et l'intervalle d'échantillonnage dont elle a besoin.

L'emplacement compte autant que le capteur lui-même. Une seule sonde de sol par parcelle n'apprend pas grand-chose si la parcelle comporte des zones sableuses et argileuses ; une sonde par zone d'irrigation, placée à un endroit représentatif à la profondeur des racines, est une meilleure règle de départ. Les stations météo ont besoin d'un terrain dégagé, loin des bâtiments et des arbres, et les capteurs des bâtiments d'élevage doivent être placés à hauteur des animaux plutôt que près du toit.

Connectivité sans Wi-Fi

Les champs sont rarement couverts par le Wi-Fi, et y tirer des câbles est peu pratique. Le choix de la radio détermine l'autonomie, le coût et les payloads que vous pouvez envoyer.

Option Portée Consommation Idéal pour
Wi-Fi Quelques dizaines de mètres Élevée Serres, bâtiments d'élevage, abords des bâtiments
LoRaWAN Plusieurs kilomètres en terrain dégagé Très faible Capteurs de plein champ envoyant de petites mesures toutes les quelques minutes
NB-IoT / LTE-M Partout où l'opérateur a une couverture Faible à modérée Sites isolés sans passerelle, équipements mobiles
Routeur cellulaire (4G) Couverture de l'opérateur Élevée (secteur ou grand panneau solaire) Stations de pompage, passerelles, caméras

Pour la plupart des exploitations, le schéma qui fonctionne est un mélange : Wi-Fi ou Ethernet dans les bâtiments, LoRaWAN pour les capteurs de plein champ sur batterie, et un routeur cellulaire au niveau de la passerelle si l'exploitation n'a pas d'internet fixe. Les payloads LoRaWAN sont minuscules (quelques dizaines d'octets) : les appareils envoient donc des données binaires compactes qu'un serveur de réseau décode en JSON.

Un seul broker pour toute l'exploitation

Quelle que soit la radio, les données doivent aboutir à un endroit unique où chaque outil peut les utiliser. MQTT remplit bien ce rôle : les appareils ou les passerelles publient, et les tableaux de bord, les contrôleurs d'irrigation, les alertes et le stockage s'abonnent indépendamment. Ajouter un nouveau consommateur ne nécessite jamais de toucher à un capteur.

 Field sensors --LoRaWAN--> Gateway --> TTN / ChirpStack --+
 Greenhouse ESP32 --Wi-Fi/TLS---------------------------+  |
 Pump controller --4G router---------------------------+|  |
                                                       vvv v
                                               MQTT broker (cloud)
                                                 |    |     |
                                    Node-RED logic  Dashboard  Python logger

Les serveurs de réseau LoRaWAN exposent leurs propres interfaces MQTT. Un petit pont s'y abonne et republie les mesures décodées dans l'arborescence de topics de votre exploitation, comme le montrent les tutoriels The Things Network MQTT et ChirpStack. Les appareils Wi-Fi, comme un ESP32 dans une serre, publient directement vers le broker.

Exploiter soi-même ce broker sur un PC de la ferme signifie qu'il s'arrête en même temps que le courant, et l'accès à distance exige une redirection de port. Un broker MQTT cloud est joignable depuis chaque parcelle, chaque téléphone et chaque prestataire sans ouvrir le réseau de l'exploitation.

Concevoir les topics d'une exploitation

Une hiérarchie cohérente rend les wildcards utiles et garde le système compréhensible des années plus tard. Un schéma qui fonctionne :

<farm>/<site>/<zone>/<device>/<kind>

greenfield/north/field3/soil-07/telemetry
greenfield/north/field3/soil-07/status
greenfield/north/field3/valve-02/set
greenfield/north/field3/valve-02/state
greenfield/barn/climate/th-01/telemetry
greenfield/barn/trough-2/level-01/telemetry

Avec cette structure, greenfield/north/+/+/telemetry vous donne tous les capteurs du site nord, et greenfield/+/+/+/status l'état en ligne de chaque appareil. Gardez les payloads en JSON, avec les unités dans les noms de champs ou un schéma fixe :

{
  "ts": "2026-10-16T06:15:00Z",
  "moisture_pct": 31.5,
  "soil_temp_c": 14.2,
  "battery_v": 3.71,
  "rssi": -112
}

Inclure la tension de la batterie et la puissance du signal radio dans chaque message coûte quelques octets et économise des heures de déplacements sur le terrain, car vous voyez un capteur défaillant avant qu'il ne cesse d'émettre. Publiez un message status retained avec un last will offline depuis chaque appareil connecté, afin que les tableaux de bord sachent immédiatement lesquels ont disparu.

Si vous raisonnez en termes d'entreprise, de site, de zone et d'équipement, c'est la même idée qu'une hiérarchie ISA-95, et la vue des appareils de ConnectMQ regroupe automatiquement les topics selon ces niveaux.

Un agrégateur minimal en Python

Une fois les données en circulation, le premier consommateur utile est souvent un simple abonné qui signale les capteurs silencieux ou hors plage. Cet exemple utilise le serveur MQTT public gratuit avec un préfixe unique pour que vous puissiez l'essayer immédiatement ; il est réservé aux tests et aux données factices.

import json
import time
import paho.mqtt.client as mqtt

BROKER = "broker.connectmq.com"
PREFIX = "connectmq/demo/f7q2m1/farm"
STALE_AFTER_S = 3 * 3600
last_seen = {}

def on_connect(client, userdata, flags, reason_code, properties):
    print("connected:", reason_code)
    client.subscribe(f"{PREFIX}/+/+/+/telemetry", qos=1)

def on_message(client, userdata, msg):
    device = "/".join(msg.topic.split("/")[4:7])
    last_seen[device] = time.time()
    try:
        data = json.loads(msg.payload)
    except ValueError:
        print("bad payload from", device)
        return
    if data.get("battery_v", 4.0) < 3.4:
        print(f"LOW BATTERY {device}: {data['battery_v']} V")
    if data.get("moisture_pct", 50) < 20:
        print(f"DRY SOIL {device}: {data['moisture_pct']} %")

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="farm-agg-f7q2m1")
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, 1883, keepalive=60)
client.loop_start()

while True:
    now = time.time()
    for device, ts in list(last_seen.items()):
        if now - ts > STALE_AFTER_S:
            print(f"STALE {device}: no data for {int((now - ts) / 60)} min")
    time.sleep(300)

Publiez une mesure de test avec mosquitto_pub -h broker.connectmq.com -p 1883 -i t-f7q2m1 -t 'connectmq/demo/f7q2m1/farm/north/field3/soil-07/telemetry' -m '{"moisture_pct":18,"battery_v":3.3}' et les deux avertissements s'affichent.

Alimentation et boîtiers

Le matériel de terrain vit sous la pluie, dans la poussière, la chaleur et le gel. Voici des enseignements pratiques valables pour presque tous les déploiements :

  1. Budgétez d'abord l'énergie. Un capteur qui dort entre deux mesures et transmet en LoRaWAN peut fonctionner longtemps sur batterie ; un appareil Wi-Fi qui reste connecté, non. De petits panneaux solaires avec un régulateur de charge conviennent aux passerelles et aux contrôleurs.
  2. Utilisez des boîtiers certifiés et des presse-étoupes. La condensation à l'intérieur d'un boîtier tue plus d'électronique que la pluie à l'extérieur. Ajoutez un aérateur respirant et un dessiccant.
  3. Montez au-dessus de la hauteur des cultures et à l'écart des passages d'engins. Tracteurs et faucheuses représentent un réel danger pour les câbles et les piquets.
  4. Étiquetez chaque appareil avec son identifiant et son topic, afin que quiconque le trouve sur le terrain sache de quoi il s'agit.
  5. Prévoyez l'intersaison. Récupérez ou hivernez les capteurs inutiles, et notez les valeurs d'étalonnage avant de les retirer.

Sécurité et propriété des données

Les données agricoles révèlent les rendements, les pratiques et les moments où personne n'est sur place. Chiffrez avec TLS chaque connexion qui quitte l'exploitation, utilisez des identifiants distincts pour chaque passerelle ou contrôleur, et ne publiez jamais de données réelles dans un espace public de test. Les actionneurs méritent la plus grande attention : quiconque peut publier sur le topic set d'une vanne peut l'ouvrir. Le guide des bonnes pratiques de sécurité MQTT couvre l'essentiel, et un broker MQTT managé prend en charge les certificats TLS, l'authentification et les mises à jour du broker.

Par où commencer

Commencez petit : un capteur de sol, une mesure météo, un broker et un tableau de bord. Le montage capteur d'humidité du sol MQTT est un bon premier appareil, et une fois les mesures fiables, le tutoriel système d'arrosage automatique boucle la boucle en pilotant les vannes. Pour des schémas plus larges couvrant maisons, bâtiments et exploitations, le guide de l'automatisation IoT relie l'ensemble.

Construisez le réseau de votre exploitation sur ConnectMQ

ConnectMQ offre à votre exploitation un broker MQTT managé et privé avec TLS, des identifiants générés, un explorateur de topics en direct, un tableau de bord et des règles d'alerte à seuil pour les valeurs critiques comme le gel ou un sol sec. Créez un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire, et connectez dès aujourd'hui votre premier capteur de terrain.

Questions fréquentes

LoRaWAN ou Wi-Fi : lequel est le meilleur pour l'agriculture intelligente IoT ?

LoRaWAN pour les capteurs sur batterie répartis dans les champs, Wi-Fi pour les appareils situés dans les bâtiments ou à proximité. De nombreuses exploitations utilisent les deux, réunis au niveau du broker MQTT.

À quelle fréquence les capteurs agricoles doivent-ils émettre ?

L'humidité du sol évolue lentement : toutes les 15 à 60 minutes suffit généralement. Le gel et le climat des serres justifient des mises à jour plus rapides, toutes les une à cinq minutes.

Ai-je besoin d'un serveur sur l'exploitation ?

Pas nécessairement. Passerelles et contrôleurs peuvent publier directement vers un broker cloud via le réseau cellulaire ou un internet fixe, et la logique peut tourner dans Node-RED ou en Python là où c'est le plus pratique.

MQTT fonctionne-t-il sur des connexions rurales peu fiables ?

Oui. MQTT est léger, prend en charge les sessions persistantes et la relivraison en QoS 1, et les clients se reconnectent automatiquement, ce qui convient aux liaisons cellulaires intermittentes.

Articles liés

Guide d'installation de Zigbee2MQTT : du coordinateur au tableau de bord

Installez Zigbee2MQTT avec Docker, configurez le coordinateur et la connexion MQTT, appairez et renommez les appareils, pilotez-les via MQTT et affichez leurs états sur un tableau de bord, en testant d'abord sur le serveur MQTT public gratuit.

8 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.