Dans le contexte d’un élevage de volailles en plein air avec des parcs un peu éloignés de l’exploitation le soucis du fonctionnement de la clôture électrique est important. Cette clôture évite l’intrusion de prédateurs (renards, chiens errants, fouines, etc… ) dans les parcs ou vivent en liberté prés d’un millier de volailles. La clôture est relativement longue, sur batterie et se recharge via des panneaux solaires. Il faut passer régulièrement vérifier son fonctionnement. Il y a souvent des soucis avec soit la végétation, avec le grillage de protection ou carrément le poste de clôture .Un équipement de supervision de clôture avec des options d’alarme est relativement onéreux ( autour des 500 à 600 € ). D’ou l’idée de créer notre propre système de supervision.
Le système est conçu autour d’un Arduino UNO R3 et d’un module SIM900 pour la partie GSM. On a tenté avec un module SIM800L mais ils n’ont jamais fonctionné correctement, carte sim non reconnue ou pb de connexion série… L’Arduino et le module SIM900 sont alimentés depuis la batterie du poste de clôture via un module d’alimentation LM2596 ou la tension est abaissé à 10volts env. Au niveau de la clôture pour vérifier son fonctionnement, on a utiliser un système de flash pour clôture .Ce dispositif produit a chaque pic de haute tension un flash. Ce flash est peu visible la journée. Ce produit est peu couteux et on s’affranchit des soucis de connexion a la clôture électrique et a la haute tension.
https://www.agradi.fr/ako-signal-lumineux-de-cloture.htm
Une résistance photo électrique est collée sur les Led du flash pour clôture. Dans la boucle de l’Arduino, on regarde si on voit le flash et on comptabilise les flashs vus par minute. Si on est en dessous d’un seuil, on déclenche une alarme via SMS. Idem pour la charge de la batterie, via un pont diviseur de tension avec des résistances, on calcule toutes les minutes la tension de la batterie. Si elle est en dessous d’un seuil, on déclenche une alarme via SMS.
L’abonnement est de type Free à 2€ avec sms illimités.
Au niveau du logiciel implanté dans l’arduino, il est possible d’interroger le système pour avoir son état via un sms spécifique. Le système envoi un SMS à son démarrage, puis à 8h du matin et 17h le soir. Il est possible d’activer un mode « debug » avec la réception du SMS d’état soit toutes les minutes, ou toutes les heures. Il est aussi possible d’avoir un sms récapitulant tous les compteurs.
Tout le système est enfermé dans une boite étanche et placé a proximité du poste de clôture, raccordé à la batterie pour son alimentation et à la terre/clôture pour le flash. Le cout de revient est de moins d’une centaine d’euros avec la boite étanche.
On est parti d’un « Super Starter Kit Arduino Uno R3 Elegoo » qui contient tous les éléments nécessaire, résistances, photo résistances, Arduino, plaques prototype pour souder et raccorder les composants, etc… qu’on trouve entre 30€ et 40€ sur internet. Il suffit de rajouter un module SIM900 à environ 20€ et le module LM2596 à 2€ ou 3€.
Coté réalisation, les premiers tests on montré que la proximité de la haute tension avec l’arduino ou ces modules m’apportait aucune perturbation. Le flash clôture est mis dans le noir pour que la photorésistance capte correctement et uniquement sa « lumière » sans etre polluée par les leds de l’Arduino ou des autres modules. Pour l’instant ce système fonctionne sans interruption depuis plusieurs semaines avec un mode debug d’un SMS toutes les heures pour son suivi. La batterie ne semble pas perturbée. C’est une 12v/70Ah avec un panneau solaire. Sa tension moyenne calculée est d’environ 13,5vols. Il y a eu de grosses pluies/orages pendant cette période et le système à très bien fonctionné. De baisses de régime du flash ont été constatés, surement liés a des contacts temporaires avec la végétation ou des tentatives d’intrusions de prédateurs.
Le code coté arduino est en amélioration constante
.Coté évolution, on pourrait facilement ajouter la gestion d’un relais ( contenu dans le kit ELEGOO ) qui permettrait de d’allumer ou d’arrêter le poste de clôture via un message SMS.
Ajouter des infos sur la température et humidité avec une DHT22.
De récupérer via des radios fréquences en 433Mhz/868Mhz le niveau des cuves à eaux et aliments et générer des alarmes en fonction de leur niveau de remplissage.
Réalisation pratique
Dans la partie pratique, j’ai testé au début des modules Gsm Sim800L, sur 2 modules impossible de les utiliser, d’abord, ils demandent une alimentation entre 3 et 4v de 2A, sur un module impossible de faire reconnaitre la carte Sim Free, sur l’autre, impossible de communiquer avec. Sur les modules Sim900, un peu plus chère, le premier a fonctionner sans soucis, mais 2 autres on eu des soucis,carte Sim non reconnue ou impossible de communiquer avec le module quelque soit le débit du port série.
Le module sim900 ( attention pas le sim900A utilisable qu’en Chine … ) peut être alimenté de 5 à 12v, J’ai choisis arbitrairement de l’alimenter par une tension d’environ 10v par abaissement de la tension de la batterie avec un module LM2596. Le module est protégé par une diode contre les inversions de polarité coté batterie.
Sur le module Sim900, il faut mettre les cavaliers dans la position d’utilisation du port série software sur les pins 7 et 8. Il faut réaliser une petite soudure sur le point noté R13 sur le circuit afin que le module puis démarrer sans appuyer sur le bouton marche/arrêt.
L’alimentation 10v est soudée directement sur le connecteur d’alimentation jack du module SIM900. Le commutateur d’alimentation est mis sur la position extérieure. Une pile de type CR1220 est insérée dans le support pour la gestion RTC mais c’est facultatif
.Coté logiciel, J’ai utilisé la librairie GPRS_Shield_Arduino pour la gestion des commandes AT passées au module Sim900. La librairie a été épurée de toutes les fonctions non nécessaires ( gestion des appels tél, connections MMS et http ) pour gagner de la place mémoire.
Il est conseillé de modifier la valeur du buffer de réception dans la librairie de 64 à 128.vers la ligne 43 du fichier SoftwareSerial.h
dans arduino-1.8.16/hardware/arduino/avr/libraries/SoftwareSerial/src/
#define _SS_MAX_RX_BUFF 128 // RX buffer size
La photorésistance est collée au néoprène sur les 3 leds du flash de clôture. Dans le boitier, des morceaux de mousse isole la photorésistance de la lumière des petites led des modules. On a utilisé la plaquette prototype livrée avec le kit Elegoo pour y souder les résistances nécessaires et les divers raccordement.
La plaquette prototype s’insère ensuite sur les broches de l’Arduino Uno R3. Bien mettre le connecteur USB vers un des trous bouchés du boitier pour facilité un branchement du pc sur le terrain.
Le poste de clôture émet environ 35 coups de haute tension par minute et qui dure environ 1/2 seconde. Comme la « capture » du flash est aléatoire, après des tests, on considère que si on capture plus de 15 flashs dans une minute, la clôture est opérationnelle. Les opérations sur les SMS (envois, lecture, etc ) prennent chaque fois plusieurs secondes , temps pendant lequel on regarde pas les flashs de la clôture.
Le code du logiciel :
En pratique, on s’aperçoit que l’on capture en temps normal entre 30 à 35 flashs par minute. mais des qu’il y a plusieurs évènements SMS, on tombe autour de 20 flash par minute.
Les messages SMS :
On a repris un peu l’idée des codes SimPal T2 pour les messages SMS
#01# demande d’information d’état
#22# demande des compteurs
#33# valide une alarme clôture
#34# valide une alarme batterie
#40# seuil de détection du flash par défaut
#41# incrémente le seuil de détection du flash
#42# décrémente le seuil de détection du flash
#96# raz du mode debug
#97# debug demande 1 sms d’info toutes les minutes
#98# debug demande 1 sms d’info toutes les heures
#4321# reboot du système ( en test )