SmartAgro : Solutions IoT Avancées pour l'Agriculture de Précision
Composants et fournitures
| Composant | Quantité | Notes |
|---|---|---|
| Arduino MKR GSM 1400 | 1 | |
| Carte SIM Soracom Air Global IoT | 1 | |
| Arduino MKR MEM Shield | 1 | Pour carte SD |
| Module température/humidité GY-21 | 1 | |
| Capteur UV SI1145 (Adafruit) | 1 | |
| Capteur humidité sol (SparkFun, avec bornier) | 1 | |
| Sonde température étanche DS18B20 (Adafruit) | 1 | |
| Fils de connexion (jumper wires) | 1 |
Outils nécessaires
- Fer à souder
À propos de ce projet
Vue d'ensemble
La terre agricole est une ressource précieuse, indispensable à la société moderne. Mais l'agriculture fait face à de nombreux défis : température, humidité, ensoleillement optimaux pour les cultures, et protection contre les aléas.
Le concept d'agriculture intelligente (smart farming) émerge : surveiller ses cultures à distance. Mais les solutions existantes sont trop coûteuses pour les petites exploitations et ne couvrent pas toujours les grandes surfaces.
SmartAgro vise à créer un réseau de dispositifs simples à déployer sur le terrain. Ils collectent données atmosphériques, paramètres du sol et valeurs lumineuses, et envoient tout vers le cloud pour visualisation sur tableau de bord.
Toute exploitation, quelle que soit sa taille, peut ainsi entrer dans l'ère de l'agriculture connectée, avec une flotte scalable d'appareils capables d'alerter en cas de sécheresse imminente.


Fonctionnalités
SmartAgro permet de déployer facilement une flotte de capteurs sur le terrain. Ces dispositifs échantillonnent les capteurs à intervalles réguliers.
Les données sont :
- Journalisées sur carte SD (fichier
.csv) - Envoyées au backend (Soracom) pour visualisation sur dashboard
Le projet comprend un front-end (dispositifs terrain) et un backend (Soracom).
Front-end (dispositif terrain)
Basé sur MKR GSM. Le dispositif collecte les données, les écrit sur carte SD, les envoie à Soracom pour visualisation.


Carte SD : les données sont ajoutées à un fichier datalog.csv (créé s'il n'existe pas).

Alimentation : LiPo sur port dédié, power bank, ou batterie sur VIN. Le dispositif se met en veille entre deux lectures pour économiser l'énergie.
Envoi des données : via connexion GSM vers Soracom, payload JSON :
{
"Latitude": 53.3570404,
"Longitude": -6.2609935,
"soilTemp": 20.56,
"soilHumidity": 40,
"atmoTemp": 22.12,
"atmoHumidity": 62,
"uvLight": 0.00,
"irLight": 257,
"deviceName": "device1"
}
Backend (Soracom)
Soracom reçoit, traite et affiche les données sur dashboard (Soracom Lagoon).

Dashboard : hébergé sur Soracom Lagoon. Soracom Air reçoit les données, Soracom Harvest les stocke, Lagoon les interroge pour l'affichage. Localisation de chaque dispositif et toutes les données capteurs tracées.

Alertes : notification email si UV index ou humidité du sol anormaux.
Avantages
- Visualisation des données n'importe où, n'importe quand via le dashboard.
- Scalabilité aisée : déployer autant de dispositifs que nécessaire.
- Coût bien inférieur aux solutions du marché.
Construction du projet
Étape 1 : Matériel requis
- 1 × Arduino MKR GSM
- 1 × Arduino MKR MEM Shield
- 1 × Module GY-21 (température/humidité air)
- 1 × Sonde température étanche DS18B20 (sol)
- 1 × Capteur UV SI-1145
- 1 × Capteur humidité sol SparkFun
- 1 × Boîtier 2 piles AA (avec piles) ou batterie LiPo
- 1 × Carte SIM Soracom
- 1 × Carte SD
- Fils de connexion

Étape 2 : Câblage
Fer à souder nécessaire. Schéma dans le fichier Fritzing joint. N'oubliez pas d'emboîter le MEM shield sur la carte !

Étape 3 : Préparation du MKR GSM
Alimentation par 2 piles AA sur VIN. Photos du montage :











Étape 4 : Structure du code
4 sections principales :
- Préparation SD :
checkFile()vérifie existence dedatalog.csv, appellecreateFile()si absent (création + en-tête). - Collecte données :
collectData()interroge tous les capteurs (temp/hum air, temp/hum sol, UV, IR, visible). - Écriture SD :
burnData(String)ajoute une ligne CSV sur la carte. - Envoi Soracom :
parseData(String)établit connexion HTTP POST versharvest.soracom.io, envoie le payload JSON, affiche la réponse.
Le dispositif dort ensuite pendant sleepTime ms avant de recommencer.
Étape 5 : Variables à configurer
deviceName : nom personnalisé du dispositif (identification dans la flotte)sleepTime : temps de veille entre lectures (ms)proDebug :truepour débogage (nécessite moniteur série),falseen production
Étape 6 : Préparation carte SD
Formater en FAT32. Étapes illustrées :







Étape 7 : Téléverser le code
Connecter le MKR GSM, téléverser le code (mode 1 pour setup). Plonger les capteurs dans l'eau, appuyer sur le bouton, attendre collecte+envoi. Répéter pour peupler Soracom Air.
Étape 8 : Configuration Soracom
Deux sections :
- Création compte & enregistrement SIM (ignorer si compte existant).
- Groupes & Soracom Harvest pour collecter les données.
De nombreuses captures d'écran guident chaque étape (création compte, groupe, activation Harvest, configuration device, etc.).
Étape 9 : Configuration Soracom Lagoon (Dashboard & Alertes)
Création du dashboard, ajout de panneaux (graphiques, cartes, tableaux), configuration d'alertes email sur seuils UV/humidité sol. Nombreuses captures d'écran détaillées.
Bibliothèques utilisées
- ArduinoLowPower
- MKRGSM
- Wire
- OneWire
- DallasTemperature
- RTCZero
- SPI
- SD
Boîtier final
J'ai conçu un boîtier (idéalement avec partie supérieure transparente pour le capteur UV). Mon capteur UV est placé à l'extérieur pour éviter les interférences.






Note : Le MKR MEM shield est compact et simple. Un module SD classique (5V) nécessiterait un convertisseur de niveau 3,3V→5V.
Origine du projet
L'idée m'est venue en bus, en voyant des champs. J'ai lu sur les dispositifs de surveillance agricole, mais leurs coûts sont prohibitifs pour la plupart des agriculteurs. J'ai donc utilisé l'Arduino low-cost pour monitorer multiples paramètres et permettre à toute ferme, grande ou petite, d'accéder à l'IoT et l'agriculture de précision.

Code
Code complet disponible dans la section « Code » du projet original.
Schémas
schematics_rrBJ3HiIfc.fzz
Processus de fabrication
- Capteurs Arduino : Types, Applications et Projets Réels
- Construire un réseau de capteurs sans fil abordable pour votre maison
- Capteur CO2 K30 : Surveillance en temps réel de la qualité de l'air intérieur
- Construisez un Stadiomètre Numérique : Suivez la Croissance avec Arduino et Capteur Laser
- Capteur d'obstacle IR simple avec Arduino — LED IR + Photodiode
- Intégrer un capteur d'empreintes capacitif DFRobot (ID809) avec Arduino ou ESP8266
- Tour de Capteurs avec Arduino Cloud : Température, Mouvement et Gaz
- Pistolet à eau intelligent à détection de mouvement avec Arduino Nano
- Créer une interface web PHP pour contrôler votre Arduino Uno