Capteur humidité du Sol pour moins de 5€

SNAG-000119Dans ma lancé, après le capteur de niveau d’eau dans ma cuve de récupération je vais vous présenter un nouveau capteur très simple à réaliser pour mesurer l’humidité de votre sol et l’envoyer à domoticz.

Matériel :

  • RF transmiter : 433Mhz WL RF Transmitter (1€)
  • ATTINY85-20PU Pour ATMEL DIP-8 Tiny85-20PU  (6€ les 5 soit 1.20€ pièce)
  • Boite De Connexion Raccordement Etanche Plastique Electronique 100x60x25mm (1.15€)
  • 8 Pin Socket Solder Prototype Circuit Adaptor PCB Attiny85 (2.20€ les 10, soit 0.22€/pièce)
  • Une résistance de 100kΩ

(le matériel est quasiment identique à celui utilisé pour le capteur de niveau d’eau).

Schémas des connexions :

 

capteur_hum

Connexion Arduino / attiny85 pour capteur humidité pour domoticz

Code  :

Le code est disponible ici :  soil_moisture_sensors.ino

Dans Domoticz :

Si tout fonctionne correctement vous devriez vous apparaître dans domoticz un nouveau dispositif :

SNAG-000120

Ajoutez ce dispositif et déclarez le en compteur avec une unité « / 1024 » (car les données envoyées sont codé de 0 a 1024).

SNAG-000121

Cela va apparaître ensuite dans domoticz comme cela :SNAG-000122

Pour ma part j’ai créé ensuite un capteur virtuel de type « Humidité de surface » :

SNAG-000123

Capteur de type humidité dans domoticz

 

et j’ai créer un petit script /home/pi/domoticz/scripts/lua/script_device_hum_sol.lua pour l’alimenter et ajuster le résultat pour qu’il soit entre 0 et 100% :

commandArray = {}
--Cette fonction calcule la difference de temps (en secondes) entre maintenant
--et la date passee en parametre.
function timedifference (s)
  year = string.sub(s, 1, 4)
  month = string.sub(s, 6, 7)
  day = string.sub(s, 9, 10)
  hour = string.sub(s, 12, 13)
  minutes = string.sub(s, 15, 16)
  seconds = string.sub(s, 18, 19)
  t1 = os.time()
  t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
  difference = os.difftime (t1, t2)
  return difference
end


if (timedifference(otherdevices_lastupdate['Capt_Hum_Sol_1']) < 30 and timedifference(otherdevices_lastupdate['Capt. Hum 1']) > 50)
then

   val = tonumber(otherdevices_svalues['Capt_Hum_Sol_1']);
   val1 = math.floor(100*(val/1024));
   --commandArray['UpdateDevice']='idx|nValue|sValue  nvalue=HUM&svalue=HUM_STAT
   commandArray['UpdateDevice']='354|'..val1..'|0';

   print('Capt. Hum 1 - '..val1..' %'.."  "..val)
end
return commandArray

Ici 354 correspond au numéro de capteur virtuel crée.

Et voila ce que ça donne dans domoticz :

les deux capteurs

A droite le capteur virtuel a gauche le capteur qui reçoit les données de la sonde.

Par la suite vous pouvez cachez la capteur « Capt_Hum_Sol_1 » en utilisant les $Hidden Devices.

Et dans le monde réel voici mon capteur : Les sondes sont faites avec du câble coaxial dont l’âme est partiellement dénudée, à priori ça fonctionne plutôt bien…

Comme le cuivre a tendance à s’oxyder rapidement j’ai étamer avec de l’étain les deux sondes.

Capteur

Capteur humidité du sol Aduino / Attiny85

Après quelques jours de mesure 

Après quelques jours de mesure

Les références qui m’ont aidé sur internet :

 

Cet article vous a plus, vous avez des commentaire / amélioration à apporter ? laissez un commentaire 🙂

 

 

 

8 réflexions au sujet de « Capteur humidité du Sol pour moins de 5€ »

  1. lan

    Bonjour j ai essayé , mais un probleme dans le script [in /home/pi/domoticz/scripts/lua/script_device_hum_sol.lua: /home/pi/domoticz/scripts/lua/script_device_hum_sol.lua:5: bad argument #1 to ‘sub’ (string expected, got nil)] .

    Répondre
  2. spike

    Bonsoir, n’y aurait il pas une erreur sur le schéma de câblage au niveau de l’émetteur 433?
    il est indiqué :
    vcc émetteur sur Pin 3 ATtiny
    Data émetteur sur vcc 4,5v
    et gnd sur gnd
    ne faudrait il pas relier vcc émetteur sur 4,5v et data sur la pin 3 ATtiny ??
    Merci.

    Répondre
  3. Nicolas

    Bonjour,
    J’ai suivi votre tuto a la lettre mais je ne parviens pas a voir quoi que ce soit dans domoticz. Je me demande si la bibliotheque x10 fonctionne bien avec Arduino 1.6.7.

    Répondre
  4. Kham

    Bonjour,

    Peut on faire un serveur domoticz avec le récepteur 433 mhz (le même style que cet éméteur) avec les gpio

    Merci d’avance

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *