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 :
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 :
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).
Cela va apparaître ensuite dans domoticz comme cela :
Pour ma part j’ai créé ensuite un capteur virtuel de type « Humidité de surface » :
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 :
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.
Les références qui m’ont aidé sur internet :
- Capteur pour Plantes DIY
- Capteur maison arduino
- echofab.org
- DIY : un montage à base d’Arduino pour arroser vos plantes
Cet article vous a plus, vous avez des commentaire / amélioration à apporter ? laissez un commentaire 🙂