On reprend les deux tutoriels d’avant mais cette fois-ci on va jusqu’au bout … Ma compagne se lançant dans l’élevage de volaille, cela nous coûtera moins cher de fabriquer les portes que de les acheter (en moyenne 150-200€ actuellement et il m’en faut une dizaine…). Pour l’instant les fonctionnalités sont basiques, la porte se lève et se baisse en fonction du lever et le coucher du soleil civil, c’est-à-dire 6° en dessous de l’horizon. Une fois l’action faite, je reçois une notification sur Telegram. Pour la partie logiciel, j’ai optimisé afin de n’avoir qu’un fichier configurer. En bref, je clone le dépôt, j’édite le fichier de configuration et c’est parti !
Sommaire
liste du matériel
- Pont L298N (alimentation du moteur) – 1,29€
- Moteur 12 V 25 RPM – 7.50€
- Transformateur 220v vers 12v (alimentation du pont) – 7.54€
- Axe 4 mm (1m, en fonction du positionnement peut servir 3 fois) – 4.53€
- Coupleur d’axe 6mm vers 4mm ou à imprimer soit même – 2.10€
- Porte en aluminium & polyéthylène (pour faire 2 porte de 25×25) ou récup – 12,53
- Capteur de fin de course (10) – 1,96€
- Rail en U (récup)
- Boîtier de protection – 7.32€
- Câbles, poulies etc. (récup)
- Carte MicroSD – 7€
- Raspberry – 10,44€
Soit : 51,16€ pour une porte automatisée
Installation
On connecte le transformateur 220v vers 12v sur le pont L298N H, ensuite on alimente le raspberry à partir du L298N, cela permet de se passer d’un transformateur 12v vers 5v. Le moteur est relié également au raspberry. Ensuite il y a deux montages possible :
- soit on installe les capteurs de fin de course directement sur les câbles reliés aux pins de contrôle raspberry/L298NH (mais dans ce cas, pas d’alerte, s’il y a un problème)
- soit on connecte directement les pins concernées au L298NH et on en dédit deux autres aux contrôles.
Je vais opter pour la seconde option, puisque là il s’agira de vérifier une dizaine de poulailler en même temps.
Pour le schéma, cela donne ça :
Le montage :
Préparation du Raspberry
Installation en suivant les consignes de l’article suivant : mettre en place le ssh et le wifi sur un raspberry 0w
Ensuite j’active les GPIO avec un sudo raspi-config
Il faut également bien mettre la bonne heure, car par défaut c’est configuré sur Londre. Toujours dans raspi-config
changer les paramètres des langues en prenant le menu 5 > L2 puis sélectionner Europe puis Paris (dans mon cas).
Une fois cela fait on installe les applications nécessaires :
sudo apt install python3-pip git
Également, dans la foulée, on installe la liste des librairies utiles pour les scripts en python.
pip3 install ephem requests RPi.GPIO
Installation du projet
Ensuite on récupère le code présent sur le dépot git du projet à l’aide la commande et on édite le fichier de identifiant.conf.sample que l’on renomme en configuration.conf :
git clone https://github.com/fz3p/chickencoopV2.git chickencoopV2
cd chickencoopV2
mv configuration.sample configuration.conf
nano configuration.conf
service;identifiant IDBOT;identifiant du bot telegram IDCHAT;identifiant du chat HORIZON;horizon souhaité LATITUDE;latitude souhaité LONGITUDE;longitude souhaité GPIOUP;17 (gpio pour monter la porte) GPIODOWN;27 (gpio pour descendre la porte) GPIOUPCTRL;26 GPIODOWNCTRL;24 LENGTHUP;durée d'action du moteur en seconde pour la montée LENGTHDOWN;durée d'action du moteur en seconde pour la descente NAME;nom du poulailler
Pour les configurations du bot Telegram voir le tutoriel de création ; ce qui permettra de remplir les champs suivants : IDBOT et IDCHAT. En ce qui concerne l’horizon, -6 pour le civil, -12 pour le nautique et -18 pour l’astronomique. LATITUDE et LONGITUDE sont à compléter suivant votre localisation. Les champs GPIOUP et GPIODOWN concerne le montage. Le pin 11 pour lever la porte, le 17 pour la descendre. GPIOUPCTRL et GPIODOWNCTRL pour les capteurs de fin de course, respectivement 26 et 24. Enfin le nom du poulailler, cela permet de recevoir une indication sur la notification en cas de plusieurs poulailler.
Un fois cela fait, il faut tester. Ouvrir la console Python (python3
) dans le terminal et faire les manipulations suivantes :
import chickenhouse c = chickenhouse.init() c.close() # la porte se ferme et vous recevez un message dès que vous activez le capteur de fin de course, # sinon une alerte comme quoi la porte à un problème # pour tester l'ouverture : c.open() # même chose que pour la fermeture.
En ce qui concerne le code, il est constituer de 4 fichiers : login.py, qui appelle le fichier configuration.conf – tous les paramètres nécessaire au fonctionnement – telegram.py qui a pour objectif de transmettre les informations via Telegram ; chickenhouse.py qui gère l’ensemble des actions. Et enfin poulailler.py qui est juste là pour lancer la tâche via le cron. J’ai essayé de détailler au maximum le code en le commentant.
Automatisation
- soit à partir de l’utilisateur pi qui fait partie du groupe GPIO
- soit à partir du sudo
crontab -e
Ajouter deux lignes :
45 16 * * * python3 /home/pi/chickencoopV2/poulailler.py
50 1 * * * python3 /home/pi/checkencoopV2/poulailler.py
pour le coucher je me suis basé sur l’horaire de coucher civil (-6°) du solstice d’hiver,
pour le lever je me suis basé sur l’horaire de lever astronomique (-18) du solstice d’été
A adapter en fonction de votre localisation.
J’ai également rajouté des fonctions pour forcer l’ouverture et la fermeture de la porte dans tenir compte des capteurs de fin de course.