Capteur Sigfox d'humidité du sol — v1
MKR Fox 1200, sonde capacitive, boîtier imprimé en 3D, une pile AA pour 8 mois d'autonomie. Un message Sigfox par jour sur la sécheresse du carré de tomates.
L'idée : savoir depuis le canapé si mon potager a soif, sans WiFi, sans abonnement data, avec une pile qui dure toute la saison.
Sigfox est parfait pour ça — 0G, 140 messages/jour max, ~10€/an, portée kilométrique. Un message de 12 octets, ça suffit largement pour dire « humidité du sol : 42% ».
Le setup
- Arduino MKR Fox 1200 — ~35€, antenne intégrée, abonnement Sigfox 2 ans offerts
- Sonde capacitive SEN0193 (DFRobot) — ~4€, pas résistive. Les résistives rouillent en 3 semaines, les capacitives tiennent des saisons.
- Pile AA alcaline — la MKR Fox tourne en 3.3V, mais la pile AA tient tout l'été si on dort bien
- Boîtier imprimé en 3D — PETG (résistant aux UV et à l'eau) avec joint caoutchouc sur le couvercle
- Une vis pour planter la sonde droite dans le sol
Budget total : ~45€. L'abonnement Sigfox après les 2 ans offerts passe à ~10€/an pour 140 msg/j.
Le code (résumé)
Le code tient en 80 lignes. Une lecture de la sonde, un deepSleep(24 heures), un message Sigfox toutes les 24h au réveil.
#include <SigFox.h>
#include <ArduinoLowPower.h>
const int SOIL_PIN = A1;
void setup() {
SigFox.begin();
SigFox.end(); // minimal init, we re-start on each send
}
void loop() {
int raw = 0;
for (int i = 0; i < 10; i++) raw += analogRead(SOIL_PIN);
raw /= 10;
// mapping empirique : 580 = dans l'eau, 830 = sec à l'air
int humidity = constrain(map(raw, 830, 580, 0, 100), 0, 100);
SigFox.begin();
SigFox.beginPacket();
SigFox.write((uint8_t)humidity);
SigFox.write((uint8_t)(raw >> 8));
SigFox.write((uint8_t)(raw & 0xFF));
SigFox.endPacket();
SigFox.end();
LowPower.deepSleep(24UL * 60UL * 60UL * 1000UL);
}
Côté Sigfox, un callback HTTPS vers Solae, mon dashboard potager qui stocke le point et affiche la courbe.
Le boîtier
Imprimé en PETG, 3 parties :
- Le corps (100×60×40 mm) qui contient la MKR + la pile
- Le couvercle avec joint en O-ring et 4 vis M3
- La gaine de sonde qui enserre la SEN0193 pour la protéger — seule la pointe capacitive dépasse dans le sol
L'étanchéité est correcte, j'ai eu zéro infiltration en 10 mois. J'ai testé en laissant le capteur sous un tuyau d'arrosage à pleine pression 30 secondes. Rien.
Ce qui a marché
- Autonomie : 8 mois sur une pile alcaline AA. Tiendrait plus avec une lithium mais j'essaye de rester sur des piles courantes.
- Signal : je suis à 2 km de l'antenne Sigfox la plus proche, signal RSSI autour de -90 dBm. Jamais de perte.
- Précision : ±3% après calibration. Suffisant pour décider si j'arrose.
Ce qui a mal marché
- Le câble de la sonde. La SEN0193 vient avec un câble trop court, j'ai soudé une rallonge qui a fini par s'oxyder. La v2 aura un connecteur étanche.
- La calibration. Chaque sonde est un peu différente. J'ai passé 2 samedis à calibrer 3 capteurs (eau distillée → air sec → terre sèche → terre trempée). Fastidieux.
- Le mapping empirique dans le code dépend de la terre. Mon carré de tomates a une terre différente de celui des courges. J'ai dû déployer 2 capteurs calibrés différemment.
La suite
La v2 est en cours — PCB maison (pas d'Arduino), plus fine, pile CR2032, connecteur étanche pour la sonde. Je vise 1 an d'autonomie et un formfactor vraiment discret.
L'article sur la v2 arrive quand je l'aurai validée sur une saison complète.
Pour voir les données en direct : dashboard Solae. Pour voir le semis que ce capteur surveille : les semis 2026.