vendredi 18 août 2023

Passage de triphasé en monophasé

 


Passage de triphasé en monophasé

Un peu en marge de mes articles consacrés à l'électronique et au logiciel, voici quelques informations qui peuvent intéresser ceux qui ont une vieille installation triphasée et désireraient changer pour du monophasé.

En effet, si l'on cherche sur le WEB comment réaliser cette opération assez simple, il est quasiment impossible de réunir absolument toutes les informations nécessaires.

La personne que j'ai eu au téléphone lorsque j'ai fait ma demande a été incapable de me renseigner de manière précise. Elle m'a simplement conseillé de passer par un électricien.

1. Contraintes liées au triphasé

Le triphasé est intéressant quand on possède des appareils triphasés (machines outils, four, etc.). Si l'on possède un ou plusieurs appareils de ce type, il est difficile de se passer de ce mode de distribution.

Attention, dans une habitation certains appareils triphasés ne sont pas reconnaissables au premier coup d’œil. Si l'appareil est branché sur une prise, la taille de celle-ci n'est pas un indice suffisant, il vaut mieux débrancher l'appareil :

Ceci est bien une prise triphasée.

Par contre celle-ci est monophasée 32A :

Certains appareils peuvent être branchés sur une sortie de câble :

  • chauffe-eau
  • cuisinière
  • etc.

Il vaut mieux démonter le cache pour inspection, à moins que le câblage soit visible côté appareil :

  • 1 fil rouge + 1 fil bleu + 1 fil jaune/vert : appareil monophasé
  • 3 fils rouges + 1 fil bleu + 1 fil jaune/vert : appareil triphasé 230V
  • 3 fils rouges + 1 fil jaune/vert : appareil triphasé 380V
Le deuxième cas correspond à ce que l'on appelle un câblage en étoile, le troisième cas correspond à ce que l'on appelle un câblage en triangle :


Certains appareils triphasés 230V peuvent être convertis en monophasé. Pour un chauffe-eau par exemple il suffit de brancher les trois résistances en parallèle. Par contre si c'est un modèle 380V (câblage en triangle), en 230V il ne fournira même pas la moitié de sa puissance, et il vous faudra ajouter un fil de neutre.

C'est une question de choix personnel. Si l'habitation est équipée d'appareils triphasés non transformables en monophasé, et si leur remplacement est coûteux, autant rester en triphasé.

Si l'habitation est équipée uniquement d'appareils monophasés, il y a certaines contraintes :

Pour un abonnement 6KW par exemple, la puissance maximale que l'on peut consommer est de 2KW par phase.

Contrairement à ce que l'on pourrait croire, si l'on consomme seulement sur une seule phase, on peut aller jusqu'à 3.5KW.

Par contre, si l'on met en route un appareil consommant 2KW, et que par malchance le cumulus de 2KW se met en route également, le compteur Linky se coupe, et il affiche "Puissance dépassée".

On comprend assez vite qu'en triphasé, malgré un abonnement 6KW, suffisant dans la majeure partie des cas, il est assez difficile d'équilibrer les phases pour avoir un fonctionnement optimal. Rien qu'en cuisine, si celle-ci est alimentée par la même phase, la mise en route simultanée d'une plaque de cuisson (1000W), d'un grille-pain (1500W) et d'une bouilloire (2000W) provoque une coupure, alors qu'en monophasé, cela passerait sans problème.

La première solution est d'augmenter la puissance disponible, avec à la clé une augmentation du tarif de l'abonnement. Pour passer de 6KW à 12KW, il en coûtera 226.68€ au lieu de 149.28€ par an.

2. Passer au monophasé

Si l'on veut profiter pleinement des 6KW disponibles, passer au monophasé est une solution qui permet de ne pas augmenter le tarif de l'abonnement.

Il y a une autre raison : certains appareils triphasés coûtent bien plus cher que leur équivalent monophasé. La différence de prix entre une pompe à chaleur triphasée et monophasée peut avoisiner 1000€. Autant investir dans une modification en monophasé qui coûtera bien moins cher.

2.1. Marche à suivre

Si vous avez pris la décision de passer en monophasé, la première chose à faire est d'appeler votre fournisseur d'énergie qui fixera un rendez-vous pour l'intervention. Le délai peut varier de quelques semaines à plus d'un mois. Cela vous laisse le temps de faire les modifications nécessaires, ou de contacter un électricien si vous ne vous sentez pas à même de les faire vous-même.

N'hésitez pas à prendre un peu d'avance. Votre installation doit être prête pour le jour de l'intervention du technicien ENEDIS, mais ne tardez pas trop. D'une part, selon la configuration de l'installation et son ancienneté, sa modification peut prendre plus ou moins de temps. D'autre part, en cas d'oubli ou d'erreur de votre part, il vaut mieux avoir quelques jours devant soi afin de pouvoir effectuer les corrections.

Comme dit plus haut, le passage en monophasé peut entraîner quelques modifications lourdes, comme le remplacement d'un chauffe-eau par exemple.

Entre le moment où votre installation est convertie en monophasé et le moment où le technicien ENEDIS va remplacer votre compteur, votre installation sera incapable de délivrer sa puissance maximale, soit 3,5KW pour un abonnement 6KW. Il va falloir tenir avec cette puissance réduite pendant quelques jours. Par exemple il vous sera impossible de démarrer une cuisson au four pendant que le chauffe-eau ou le lave-linge est en marche. Il est possible de brancher le chauffe-eau sur un programmateur afin de l'alimenter uniquement à certains moments bien choisis de la journée. Le lave-linge peut être également être démarré en différé.

2.2. Quel est le coût ?

L'intervention de l'agent ENEDIS implique le remplacement du compteur et du disjoncteur principal par des modèles monophasés. Il vous en coûtera exactement 150€.

Si vous désirez augmenter la puissance, il se peut que la section des fils aériens ou enterrés arrivant au compteur soit insuffisante. Dans ce cas, ENEDIS peut vous facturer une partie des frais de remplacement.

2.3. Le tableau existant

Le tableau peut être équipé de différentes manières suivant sa vétusté.

2.2.1. Disjoncteurs

Si des disjoncteurs sont déjà en place, l'opération sera simple. Une heure suffira.

2.3.2. porte-fusibles bipolaires

Si le tableau est équipé de porte-fusibles bipolaires, on peut laisser l'installation telle quelle, ou les remplacer par des disjoncteurs bipolaires et recâbler à l'identique.

Un porte-fusible bipolaire possède deux bornes d'entrée et deux bornes de sortie :

2.3.3. porte-fusibles unipolaires

Un porte-fusible uinipolaire possède une borne d'entrée et une borne de sortie :

Seuls les fils rouges sont protégés. Les fils bleus sont tous réunis sur une barrette de neutre :

Les nouvelles normes les interdisent depuis longtemps. Il faudra les remplacer par des disjoncteurs bipolaires. Je pense que dans ce cas il vaut mieux inspecter l'intérieur du tableau.

Il est absolument indispensable que les fils rouges et bleus soient correctement appairés sur les sortie de chaque disjoncteur.

On peut déjà commencer par faire les comptes. Le nombre de fils rouges sortant des porte-fusibles doit être égal au nombre de fils bleus sur la barrette de neutre, +1 pour le fil bleu d'arrivée de forte section. Si c'est le cas, c'est déjà une très bonne chose.

Si l'installation a été réalisée par un professionnel, c'est en général très simple. Il est facile de repérer les couples de fils bleu & rouge à l'intérieur du tableau. Ils sortent généralement de la même gaine.

Si par contre l'installation a été réalisée par un amateur, plusieurs couples de fils bleu & rouge peuvent arriver par la même gaine. Et il va falloir les distinguer. Il se peut que chaque couple ait une section différente, dans ce cas il n'y a pas de question à se poser.

Sinon, une solution consiste à appairer les fils au hasard. Les fils rouges étant déjà en place, on peut relier les fils bleus dans n'importe quel ordre sur les sorties des disjoncteurs concernés. Après avoir réarmé le disjoncteur principal, couper chaque disjoncteur à tour de rôle. Si l'installation fonctionne, comme voulu vous avez eu de la chance. Dans le cas contraire, inverser les fils bleus. Bien entendu, c'est facile avec deux paires de fils, au delà, cela prend plus de temps.

La pire des situations est celle où plusieurs fils rouges sortent d'une même gaine, et qu'un seul fil de neutre les accompagne. Dans ce cas, il est assez difficile d'ajouter un fil de neutre dans une gaine sur une installation existante. On peut dans un premier temps relier les sorties neutre des disjoncteurs entre elles, mais ce n'est pas une solution très sécurisante. Les normes actuelles l'interdisent.

2.3.4. Câbles d'arrivée

Les câbles reliant le disjoncteur principal et le tableau doivent être également inspectés. Leur section doit être suffisante :

  • 6mm² pour 6KW
  • 10mm² pour 9KW
  • 16mm² pour 12KW

Normalement, en triphasé, chaque fil de phase doit supporter le tiers de la puissance, et le fil de neutre la totalité. Dans une installation correctement dimensionnée, les fils de phase et de neutre doivent cependant être prévus pour supporter la totalité de la puissance, et avoir la même section, car l'équilibrage des phases n'est jamais parfait. Mais il vaut mieux vérifier.

2.4. Comment faire ?

Pour votre sécurité, avant toute intervention, couper le courant à l'aide du disjoncteur principal.

Tout d'abord voici quelques images de mon tableau électrique :

On peut remarquer que les différents porte fusibles sont étiquetés, ce qui est déjà une chance !

Mais l'installation date des années 1980. Les porte-fusibles sont des modèles unipolaires, ce qui est interdit à l'heure actuelle.

Sous le tableau principal se trouvent deux petits coffrets équipés de porte-fusibles triphasés (cuisinière et hangar) et d'un disjoncteur triphasé. On constate la présence d'une cuisinière dont le four est triphasé !

Comme j'ai remplacé cette vieille cuisinière par une plaque de cuisson et un four électrique monophasés, rien ne m'empêche plus de passer au monophasé.

On voit plus bas la répartition des trois phases du tableau principal. 3 bornes permettent de connecter les 3 fils de phases 10mm².

Ces fils sont suffisants pour du 6KW.

On voit également, sous les porte-fusibles, à gauche la barrette cuivre regroupant les fils bleus de neutre, à droite celle de terre.

Deux porte-fusibles bipolaires sont présents, le premier et le dernier, un ajout récent sans doute.

Quelles sont les opérations à prévoir ?

Pour respecter les normes actuelles, il serait bon de remplacer les porte-fusibles par des disjoncteurs bipolaires.

Egalement, un interrupteur différentiel ne ferait pas de mal, ainsi qu'une prise.

Voici le tableau après modifications : 

Deux fils de phase ont été supprimés, un seul a été conservé. Deux bornes reçoivent le fil de neutre (bleu) et le fil de phase (rouge), et deux peignes permettent la distribution sur les  autres disjoncteurs :

2.4.1. Cas des disjoncteurs et des porte-fusibles bipolaires

Si le tableau est équipé de disjoncteurs ou de porte-fusibles bipolaires, il n'y a rien d'autre à faire, sauf si vous désirez remplacer les porte-fusibles par des disjoncteurs.

Dans ce cas, il faudra retirer tous les câbles d'arrivée, et remplacer chaque porte-fusible par un disjoncteur, et recâbler les 2 sorties à l'identique. Travailler disjoncteur par disjoncteur, éviter de décâbler tous les fils en même temps, ce sera plus facile.

2.4.2. Cas des porte-fusibles unipolaires

Dans ce cas, le fil de neutre arrive du disjoncteur principal jusqu'à une barrette de neutre.

On doit donc basculer le fil de neutre sur l'entrée N des disjoncteurs.

Les fils rouges sortant par le bas des porte-fusibles sont simplement replacés sur les sorties phase (à droite) de chaque disjoncteur, à l'identique.

Jusqu'ici, c'est relativement simple. Si l'on en a assez pour aujourd’hui, on peut très bien laisser le fil d'arrivée bleu sur la barrette de neutre, l'installation doit fonctionner comme auparavant, sauf qu'elle est devenue monophasée.

La dernière opération à réaliser est d’appairer les fils de neutre et de phase pour que chaque disjoncteur  puisse couper phase et neutre simultanément. Pour cela il faut ouvrir le coffret supportant le tableau et travailler à l'intérieur, afin de pouvoir repérer les couples de fils qui sortent des gaines.

Une fois toutes les sorties neutre des disjoncteurs reliées, la barrette de neutre doit être vide. Sur la photo ci-dessus, c'est bien le cas.

Voici le tableau terminé :

L'ancien petit coffret à 6 modules n'était pas assez haut pour recevoir des bornes de raccordement :

Ces bornes sont absolument nécessaires au raccordement correct des fils d'arrivée. On peut difficilement glisser ceux-ci dans un disjoncteur ou dans un différentiel, surtout si un peigne est nécessaire. En tous cas la section d'un câble de 10mm² ou 16mm² rend cette opération difficile. Avec du 6mm² cela peut s'envisager.

Un deuxième tableau a donc été ajouté. Il accueille :

  • un disjoncteur 32A : plaque de cuisson et four
  • un disjoncteur 16A : chaudière
  • un interrupteur différentiel
  • un disjoncteur 32A : hangar
  • une prise

Seuls les deux premiers disjoncteurs sont non protégés par le différentiel. La sortie du différentiel alimente donc l'ancien tableau, le disjoncteur du hangar, et la prise :

En haut à gauche, les deux fils 16mm² venant du disjoncteur principal.

2.5. Les prises triphasées

Il y a de fortes chances que l'habitation ou ses dépendances soit équipée de prises triphasées. Il faudra les remplacer par des prises monophasées.

S'il s'agit de prises 3 pôles + terre, il faudra retirer les 4 fils et repasser 3 fils rouge, bleu, vert/jaune. 

S'il s'agit de prises 4 pôles + terre, on peut de contenter d'utiliser un seul fil rouge sur les 3. Le plus difficile sera de choisir le bon fil, côté prise et côté tableau. On peut procéder par essais successifs, ou s'aider d'un multimètre.

2.6. Problèmes éventuels

Vous avez besoin de plus de puissance, car par exemple vous comptez faire installer une pompe à chaleur ?

Dans ce cas, il faut probablement remplacer les fils entre le disjoncteur principal et votre tableau par des fils de plus forte section :

  • 6mm² pour 6KW
  • 10mm² pour 9KW
  • 16mm² pour 12KW

Cette opération est réalisable soi-même, car tout le matériel en aval du disjoncteur principal vous appartient.

Actuellement, aucun fil autre que ceux appartenant à ENEDIS ne doit se trouver dans le coffret ENEDIS.

Dans certaines installations anciennes, les fils reliant le disjoncteur principal et le tableau passent par l'intérieur du coffret bois EDF, et comme souvent le coffret EDF et le coffret du tableau sont accolés, un trou est pratiqué entre les deux pour le passage des deux câbles.

Si c'est votre cas, vous pouvez attendre le passage du technicien ENEDIS, qui retirera lui-même les anciens fils et vous laissera câbler les nouveaux, à moins qu'il n'ait la gentillesse de le faire lui-même.

Généralement le coffret EDF ou ENEDIS est scellé. Je vous déconseille de desceller celui-ci.

3. Conclusion

Avec quelques connaissance en électricité il est parfaitement possible de transformer soi-même un tableau triphasé en monophasé.

Avant de se lancer, il convient de faire une inspection minutieuse, afin d'éviter les surprises.

Faites soigneusement vos courses, n'oubliez rien :

  • fils d'arrivée si vous devez les remplacer
  • disjoncteurs
  • différentiel
  • bornes
  • peignes
  • prise de tableau

Et surtout évitez de faire quoi que ce soit quand les fournisseurs de matériel sont fermés. Un oubli, ou une erreur, est toujours possible.


Cordialement

Henri

Juillet 2023 : Actualité des Blogs du Mois

     


Actualité des Blogs du Mois


Sur le blog d'Yves Pelletier :

Sur  Framboise 314 :

Sur  MCHobby :

Sur Anacorp :


Cordialement

Henri 

 

mardi 15 août 2023

ESP32 : Micro-irrigation Connectée (3ème partie)

 


ESP32 : Micro-irrigation Connectée (3ème partie)


Cet article fait suite à ceux-ci :

ESP32 : Micro-irrigation Connectée (1ère partie)

ESP32 : Micro-irrigation Connectée (2ème partie)

Pour rappel, le projet se trouve ici :

https://bitbucket.org/henri_bachetti/esp32-sprinkle-timer

1. Le hardware

Du côté matériel, le capteur d'humidité et le capteur de débit sont présents : 

  • capteur d'humidité : GPIO36 (broche SVP)
  • capteur de débit : GPIO39 (broche SVN)

Contrairement à ce que je pensais, l'ESP32 est tout à fait capable de mesurer une tension analogique de 3.3V, ou plutôt la librairie ARDUINO fait ce qu'il faut pour que cela soit possible. Le pont diviseur R3 R5 disparaît du schéma (paragraphe 5).

En ce qui concerne le capteur de débit, la mesure renvoie des valeurs non nulles pour un débit de zéro. Il faut que je fasse des essais afin de voir s'il ne s'agirait pas d'un problème d'alimentation. Il est alimenté par la broche 5V de l'ESP32 et celui-ci est alimenté par l'USB. Comme il ne reste que 4.7V, ce n'est peut-être pas suffisant.

L'écran OLED est connecté, ainsi que le bouton fonction et arrosage manuel: 

  • SDA : GPIO21
  • SCL : GPIO22
  • bouton fonction : GPIO35
  • bouton arrosage manuel : GPIO34

Comme il n'y a pas de résistance de PULLUP interne sur les GPIOS 35 et 34, il faut en ajouter une sur le schéma entre GPIO35, GPIO34 et 3.3V : 10KΩ.

2. La configuration

2.1. config.ini

Le paramétrage des capteurs a été ajouté :

[moisture]
sensor=36
max=50

[flow]
sensor=39
max=10

2.2 Schedule.ini

Ce fichier reste inchangé, mis à part que deux périodes d'arrosage ont été ajoutées :

[courges.voie1]
schedule1=08:00,15

[massif.voie1]
schedule1=08:30,15

3. L'interface HTML

La page d'accueil comporte maintenant des boutons permettant de modifier les périodes d'arrosage et même d'en ajouter : 

Cliquer sur l'un des boutons CONFIGURE permet d'accéder à un formulaire :

Il suffit de modifier les valeurs et de cliquer sur OK pour enregistrer les changements. Les changements sont stockés dans le fichier schedule.ini.

En cliquant sur le bouton AJOUTER on accède à un formulaire à peine différent :

Le formulaire propose une liste des zones existantes.

Attention il n'y a pas pour l'instant de contrôle de validité sur ces deux formulaires. Il faut bien respecter le format de saisie HH:MM.

Les durées sont exprimées en minutes.

Le bouton maintenance permet d'accéder au menu suivant :

Les actions suivantes sont possibles :

  • tester les relais
  • afficher le fichier config.ini
  • afficher le fichier schedule.ini

Il est donc possible de sauvegarder ces deux fichiers avant une mise à jour des fichiers HTML. Les fichiers HTML et les fichiers de configuration (.ini) sont situés dans le même répertoire data du projet. Les fichiers de configuration seraient donc écrasés à la prochaine mise à jour si l'on ne prend pas de précautions.

4. L'écran OLED

L'afficheur montre la date et l'heure, ainsi que l'humidité et le débit :

Un appui sur le bouton fonction permet l'affichage de l'adresse IP de l'ESP32 pendant 4 secondes, puis de l'heure du prochain arrosage pendant 4 secondes, puis l'affichage revient à la normale.

Un appui sur le bouton d'arrosage manuel provoque l'affichage du premier arrosage manuel possible et de sa durée :

En appuyant plusieurs fois sur ce bouton on peut faire défiler les noms des voies. Un appui sur le bouton fonction déclenche l'arrosage manuel sur la voie choisie.

5. Rappels

Ce logiciel a besoin d'être compilé en utilisant les librairies suivantes :

ESPAsyncWebServer : https://github.com/me-no-dev/ESPAsyncWebServer

SPIFFSIniFile : https://github.com/yurilopes/SPIFFSIniFile

SSD1306 : https://github.com/adafruit/Adafruit_SSD1306

GFX : https://github.com/adafruit/Adafruit-GFX-Library

ezButton : https://github.com/ArduinoGetStarted/button

Quelques constantes peuvent être modifiées dans le code :

// max line length in config file
#define MAX_LINE 250
// max definition length for object names (relays, ways, zones, etc.)
#define MAX_DEF 50
#define MAX_BUF 30

// max ways and relays number
#define MAX_WAY 128
// max zones number
#define MAX_ZONE 12
// max waterings number in a day for each way
#define MAX_SCHEDULE 4
// max waterings number in a day for all ways
#define MAX_WATERING 256

On voit par exemple que le nombre d'arrosages par voie est limité à 4 par jour, ce qui me semble amplement suffisant. On peut bien entendu ajuster certaines valeurs, mais attention, celles-ci ne sont pas modifiables ultérieurement par l'interface HTML.

Pour le reste, relire l'article précédent : 5. Essayer

6. Le code

Le code, comme on peut s'en douter, n'est pas constitué d'un seul sketch, il serait énorme et illisible.

Voici une liste des fichiers :

esp32-sprinkle-timer.ino : le sketch principal
config.cpp, config.h : lecture du fichier de configuration config.ini
constants.h : constantes
flow.cpp, flow.h : capteur de débit
hmi.cpp, hmi.h : interface homme/machine sur l'écran OLED
html.cpp, html.h : interface homme/machine HTML
humidity.cpp, humidity.h : capteur d'humidité
module.cpp, module.h : gestion des modules (GPIOs, MCP23017, etc.)
oled.cpp, oled.h : écran OLED
relay.cpp, relay.h : gestion des relais
schedule.cpp, schedule.h : lecture du fichier de configuration schedule.ini
valve.cpp, valve.h : gestion des vannes
watering.cpp, watering.h : gestion des arrosages
way.cpp, way.h : gestion des voies
zone.cpp, zone.h : gestion des zones

Je veux bien admettre que ce code commence à devenir très conséquent, mais la complexité ne se gère pas avec simplicité. En opérant un découpage en modules simples, on peut toutefois réduire cette complexité et améliorer la lisibilité.

7. Conclusion

Les difficultés sont immenses car ce logiciel est hyper-paramétrable, et le temps manque. En effet, on peut difficilement s'occuper d'un jardin de 45m², récolter, cuisiner, faire des conserves, gérer un poulailler, aménager une nouvelle habitation, modifier son circuit électrique, et faire du développement logiciel en parallèle.

La période hivernale sera certainement plus productive en lignes de code. Patience ...


Cordialement

Henri

8. Mises à jour

18/08/2023 : ajout de l'écran OLED et du bouton fonction
22/08/2023 : ajout du bouton d'arrosage manuel


mercredi 3 mai 2023

ESP32 : Micro-irrigation Connectée (2ème partie)

 


ESP32 : Micro-irrigation Connectée (2ème partie)


Cet article fait suite à celui-ci :

ESP32 : Micro-irrigation Connectée (1ère partie)

Démarré en novembre, ce projet a bien progressé ces derniers jours. C'est l'occasion de donner un état d'avancement.

Pour rappel, le projet se trouve ici :

https://bitbucket.org/henri_bachetti/esp32-sprinkle-timer

1. La configuration

Les fichiers de configuration sont lus grâce à cette librairie :

SPIFFSIniFile

Elle est directement installable depuis le gestionnaire de bibliothèques de l'IDE.

1.1. config.ini

La configuration, un fichier config.ini chargé dans le système de fichier SPIFFS, n'a pas fondamentalement évolué, ce qui est bon signe. Par contre le logiciel exploite de nouvelles données : la configuration des zones d'arrosage.

Avant tout, il s'agit de bien comprendre les paramètres de ce fichier :

  • [relays] modules : la liste des modules :
    • gpio-1 : gestion des GPIOs de l'ESP32
    • mcp23017-1(0x20) : gestion des GPIOs d'un MCP23017 (adresse I2C 0x20)
    • mcp23017-2(0x21) : gestion des GPIOs d'un autre MCP23017 (adresse I2C 0x21)
  • [relays] gpio-1=GPIO-L(4), GPIO-L(5), etc. : liste des GPIOs de l'ESP32
  • [relays] mcp23017-1=I2C-H(0-15) : liste des sorties du MCP23017 N°1
  • [relays] mcp23017-2=I2C-H(0-15) : liste des sorties du MCP23017 N°2
  • [valve] main=gpio-1.0 : la sortie sur laquelle se trouve la vanne principale
  • [zones] zones=potager, courges, massif : la liste des zones
  • [potager] ways=tomates(gpio-1.2), etc. : la liste des voies d'arrosage pour cette zone

Les relais sont décrits avec une syntaxe donnant divers renseignements :

  • type-niveau(gpio) :
    • type : le type du module (GPIO ou I2C)
    • niveau : bas ou haut (L ou H) qui représente le niveau de commande du relais
    • gpio : le N° de la GPIO. Il peut s'agir d'une liste

Les modules relais du commerce sont activables par un niveau haut ou bas :

  • digitalWrite(pin, HIGH);
  • ou :
  • digitalWrite(pin, LOW);

Certains relais possèdent même un cavalier permettant de changer le niveau. Cette configuration permet d'indiquer au logiciel le type de relais que l'on utilise.

Exemples : 

  • GPIO-L(4), GPIO-L(5), GPIO-L(13), GPIO-L(14), GPIO-L(15), GPIO-L(16), GPIO-L(17), GPIO-L(18) : 8 GPIO de l'ESP32 commandent des relais activable par un niveau bas
  • I2C-H(0-15) : les 16 GPIOs d'un module I2C commandent des relais activables par un niveau haut

Par la suite, chaque voie d'arrosage va être associée à un relais. Pour ce faire, on ne va pas utiliser la même syntaxe, ce qui serait redondant et source d'erreurs. Les relais sont donc nommés comme ceci : 

  • module.index
    • module : le nom du module
    • index : l'index à partir de ZERO
Exemples : 

  • gpio-1.0 : la première GPIO du module gpio-1. Dans l'exemple précédent il s'agit donc de GPIO-L(4), GPIO-L(5) étant la deuxième (gpio-1.1), etc.
  • mcp23017-1.3 : la quatrième GPIO du module mcp23017-1

Une voie d'arrosage est le moyen physique d'arroser un point précis d'une zone. Elle est forcément associée à une GPIO, à un relais (ou un MOSFET), et à une vanne avec ses tuyaux et goutteurs.

Une zone est une zone géographique, normalement alimentée par sa propre arrivée d'eau. Elle regroupe un certain nombre de voies d'arrosage. Cette notion est totalement inutile d'un point de vue logiciel, sauf que plusieurs voies d'arrosage peuvent porter le même nom, si elles sont situées dans des zones différentes :

[zones]
zones=potager1, potager2

[potager1]
ways=tomates(gpio-1.2), courgettes(gpio-1.3), menthe(gpio-1.4), salades(gpio-1.5)

[potager2]
ways=tomates(gpio-1.6), courgettes(gpio-1.7)

On voit ici que deux voies tomates et deux voies courgettes existent, commandées par des GPIOs différentes bien sûr.

Dans la description des horaires d'arrosage (voir plus loin 1.3. schedule.ini), ces différentes voies seront nommées par rapport à leur zone d'appartenance (ce qui permet de les différencier) : 

  • potager1.tomates
  • potager2.tomates
  • potager1.courgettes
  • potager2.courgettes

La configuration des multiples voies d'une zone a été simplifiée par rapport à celle décrite dans l'article précédent. Elle se fait maintenant sur une seule ligne : 

[zones]
zones=potager, courges, massif

[potager]
ways=tomates(gpio-1.2), courgettes(gpio-1.3), menthe(gpio-1.4), salades(gpio-1.5)

[courges]
ways=voie1(gpio-1.6)

[massif]
ways=voie1(gpio-1.7)

Enfin, le dernier paramètre est la durée d'arrosage manuelle par défaut, en minutes :

[manual] duration=10

1.1.1 Exemples

Deux exemples de configuration sont fournis (dossier examples) : 

config.small.ini : un module 8 relais

config.mcp23017.ini : un module 8 relais + un module MCP23017

Un module MCP23017 peut piloter 16 MOSFETs ou 16 relais. Pour essayer le logiciel dans cette configuration, le module MCP23017 suffit. Il doit être relié aux broches I2C de l'ESP32 : GPIO21 & GPIO22.

Il suffit de copier l'un ou l'autre dans le répertoire data et de le renommer en config.ini. Renseigner ensuite la variable permettant l'accès au réseau WIFI : 

[WIFI]
access-point=SSID:ABCDEFGHIJ

Charger les fichiers du dossier data à l'aide du menu de l'IDE : "ESP32 sketch data upload".

Voici un exemple simple et commenté :

[WIFI]
' remplacer SSID et ABCDEFGHIJ par vos identifiants
access-point=SSID:ABCDEFGHIJ

[relays]
' un seul module gpio-1, gérant 8 GPIO de l'ESP32 (4, 5, et 13 à 18)
modules=gpio-1
gpio-1=GPIO-L(4), GPIO-L(5), GPIO-L(13), GPIO-L(14), GPIO-L(15), GPIO-L(16), GPIO-L(17), GPIO-L(18)

[valve]
' vanne principale sur les deux premières GPIO 4 et 5
main=gpio-1.0, gpio-1.1

[zones]
' 3 zones d'arrosage
zones=potager, courges, massif

[potager]
' 4 voies d'arrosage pour cette zone sur les GPIOs 13 à 16
ways=tomates(gpio-1.2), courgettes(gpio-1.3), menthe(gpio-1.4), salades(gpio-1.5)

[courges]
' 1 voie d'arrosage pour cette zone sur la GPIO 17
ways=voie1(gpio-1.6)

[massif]
' 1 voie d'arrosage pour cette zone sur la GPIO 18
ways=voie1(gpio-1.7)

[manual]
' durée d'arrosage manuel : 10 minutes
duration=10

1.2. Erreurs

Si une erreur est détectée dans le fichier de configuration, celle-ci est signalée sur le moniteur série : 

way::create voie1gpio-1.6)
voie1gpio-1.6): bad format, missing parenthesis
voie1gpio-1.6): error creating way
configuration failed

On voit bien ici qu'il manque une parenthèse :

voie1gpio-1.6)

La bonne syntaxe est : voie1(gpio-1.6)

1.3. schedule.ini

Un nouveau fichier a été créé : schedule.ini

Ce fichier décrit la programmation des zones d'arrosage :

  • heure de début
  • durée
  • arrosage systématique ou non en fonction du capteur d'humidité

[potager.tomates]
schedule1=06:00,15,*
schedule2=20:00,15,*

Cette section par exemple, décrit l'arrosage des tomates dans le potager :

  • un premier arrosage à 6H00 pendant 15 minutes
  • un deuxième arrosage à 20H00 pendant 15 minutes

Le caractère * signifie que l'arrosage est systématique, indépendant du capteur d'humidité. Si ce caractère est absent, l'arrosage sera dépendant du capteur :

[potager.courgettes]
schedule1=06:30,15
schedule2=20:30,15

1.4. Vanne motorisée

Une vanne motorisée (3 fils) nécessite d'être pilotée par deux relais, un pour l'ouverture, l'autre pour la fermeture. Ce genre de vanne met un certain temps à s'ouvrir et se fermer, environ 10 secondes, ce qui fait que le code nécessite un timer (la librairie ESP32 Ticker convient très bien).

Le logiciel est capable de prendre en compte une vanne motorisée comme vanne principale :

[valve]
main=gpio-1.0

Ce paramètre indique que la vanne principale est non motorisée, commandée par la GPIO-1.0

[valve]
main=gpio-1.0, gpio-1.1

Ce paramètre indique que la vanne principale est motorisée, commandée par les GPIO-1.0 et GPIO-1.1.

2. Arrosage automatique

La fonction loop() vérifie toutes les minutes qu'un arrosage automatique est nécessaire ou non, et le stoppe au moment adéquat.

L'interface HTML décrit les différentes voies d'arrosage configurées :

3. Arrosage manuel

L'interface graphique HTML montre également un bouton DEMARRER en face de chaque voie d'arrosage. Il suffit de cliquer sur ce bouton pour démarrer un arrosage manuel, après avoir saisi la durée dans le champ de saisie en haut à droite.

Lorsqu'un arrosage manuel est lancé, le bouton change de libellé (ARRETER), et un compteur affiche le temps restant, en minutes et secondes : 

Un clic sur le bouton ARRETER permet d'arrêter l'arrosage manuel.

On peut lancer plusieurs arrosages manuels simultanés.

3.1. Quelques explications techniques

Le pilotage de l'arrosage manuel est fait de manière autonome par l'ESP32, c'est à dire que l'on peut sans problème fermer le navigateur une fois l'arrosage lancé, ce qui ne serait pas le cas si j'avais choisi de piloter l'arrosage dans le code JavaScript. Ici, le code JavaScript se contente de demander régulièrement à l'ESP32 quel est le temps restant.

Pour les connaisseurs, le code JavaScipt envoie une requête HTTP à l'ESP32 via une WEB socket. Voir la fonction getData() de index.html.

4. HTML

Dans sa première version ce logiciel a été développé avec le librairie WebServer. Je me suis vite aperçu que sans AsyncWebServer et sa gestion de fichiers stockés en FLASH (SPIFFS), et surtout sa gestion des templates, le développement serait beaucoup trop complexe.

Installez cette librairie :

https://github.com/me-no-dev/ESPAsyncWebServer

Il s'en suit que le code HTML n'est plus intégré dans le code C++ du projet, mais dans le filesystem SPIFFS : index.html

4.1. Quelques explications tecniques

On peut remarquer deux choses dans ce code :

La présence de deux balises spéciales (place holders) :
  • %PLACEHOLDER_MANUAL_DURATION% : durée de l'arrosage manuel
  • %PLACEHOLDER_WATERINGS% : la liste des arrosages, sous forme de table HTML
Certains caractères % sont doublés, par exemple :

.mytable th { background-color:#BDB76B; color:white; width:50%%; }

Il s'agit probablement d'un bug de la gestion des templates AsyncWebServer, que j'ai contourné en utilisant cette astuce, un peu comme on le ferait avec printf() ou sprintf().

Pour résumer le principe, AsyncWebServer, après avoir lu le fichier index.html, va remplacer les place holders par leur vraie valeur :

  • %PLACEHOLDER_MANUAL_DURATION% : 10
  • %PLACEHOLDER_WATERINGS% : la table HTML des arrosages

Le remplacement est fait par une fonction située dans le fichier html.cpp

String templateProcessor(const String& var)
{
  if (var == "PLACEHOLDER_MANUAL_DURATION") {
    return String(Watering::manualDuration());
  }
  else if (var == "PLACEHOLDER_WATERINGS") {
    return wateringsTable;
  }
  return "";
}

5. Essayer

Pour essayer ce logiciel, il est nécessaire de connaître certains détails : 

Si la carte choisie est l'ESP32 DevKitC, La carte a sélectionner dans le menu Outils / Type de Carte est  la suivante : ESP32 Dev Module.

La configuration hardware actuelle est la suivante :
  • un module à 8 relais sur GPIO4, GPIO5, GPIO13 à GPIO18
  • un module MCP23017 connecté au bus I2C (si l'exemple config.mcp23017.ini est choisi)

Ceux qui sont à l'aise avec ces petits détails n'auront aucun mal à essayer ce logiciel dans sa version actuelle.

6. Conclusion

Ce projet n'est pas terminé. Il ne va pas cesser d'évoluer pendant les semaines à venir.

Il reste encore pas mal de travail, en particulier sur l'interface graphique :

  • modifier les heures d'arrosage, les durées
  • ajouter des heures d'arrosage
  • ajouter des zones, des voies
  • capteur d'humidité, de débit
  • écran OLED
  • etc.

Je suis parfaitement conscient que le code c++ et JavaScript de ce projet est complexe et certainement incompréhensible pour un débutant, mais il est difficile de faire simple quand on fait du développement WEB. L'essentiel est de bien comprendre la syntaxe des fichiers de configuration.

Si certaines notions sont incomprises, il est recommandé de poser des questions, même si je ne suis pas censé donner des cours de base de C++, HTML ou JavaScript en ligne.

Les développeurs expérimentés en JavaScript trouveront probablement que mon code JavaScript n'est pas celui d'un vrai professionnel JS, et qu'il ressemble trop à du C++, mais qu'ils me pardonnent, JS n'est pas mon langage de prédilection, je préfère C++ et PYTHON.

Pour conclure, le contenu de cet article risque d'être augmenté dans les prochains jours. Ne pas hésiter à revenir le consulter (voir 7. Mises à jour).


Cordialement

Henri

7. Mises à jour

04/05/2023 : paragraphes ajoutés ou fortement remaniés :
  • 1.1. config.ini
  • 1.1.1 Exemples
  • 1.2. Erreurs
  • 3.1. Quelques explications techniques
  • 4.1. Quelques explications techniques

mardi 4 avril 2023

Porte Motorisée de Poulailler : l'installation

 



Porte Motorisée de Poulailler

l'installation


Après 3 ans de fonctionnement, ce projet a été déménagé à mon nouveau domicile, acquis en fin d'année 2022. C'est l'occasion de construire un nouveau poulailler, et d'en profiter pour apporter quelques explications supplémentaires.

Dans ce nouvel article je vais présenter l'installation complète :

  • les poules, bien entendu
  • l'enclos
  • le cabanon
  • les cartes électroniques, le câblage, etc.

Si l'on est intéressé uniquement par le portillon électronique, on peut passer directement au chapitre 4.

Certaines améliorations du logiciel ont été effectuées.

1. Les poules

J'ai adopté 3 poules rousses : 

Elles sont jeunes, et proviennent d'un élevage sérieux situé à Sainte-Croix (71).

On peut trouver facilement des poules de réforme, provenant d'élevages de pondeuses. Ce sont des poules n'ayant plus assez de rendement pour un producteur d’œufs, mais elles vous donneront tout de même chacune plusieurs œufs par semaine. De plus vous aurez le plaisir de les sauver de l'abattoir.

1.1. La nourriture

Les poules sont nourries à l'aide d'un mélange de céréales prêt à l'emploi, et de granulés protéinés, disponibles à volonté.

On peut agrémenter leur nourriture en leur préparant un petit déjeuner matinal :

  • féculents : riz, pâtes, cuits
  • protéines végétales ou animales : œufs, sardines à l'huile, jambon, viande hachée, poisson, cuits
  • légumes : carottes râpées crues, carottes cuites, citrouilles, orties hachées, épinards hachés
  • matière grasse (très peu) : colza ou huile d'olive

La dernière folie : de la semoule de maïs, mélangée à des petits pois, ou des épinards, cuisson à l'eau, sans sel bien sûr. Elles en raffolent, et cela me permet de me débarrasser de stocks d'ingrédients que je n'utilise plus.

Le tout peut être servi tiède, surtout en hiver. On trouve énormément de recettes sur le WEB, mais attentions aux recettes qui intègrent du pain, même sec. Le pain contient du sel, et il est déconseillé.

Mais attention : vous vous apercevrez rapidement que les poules préfèrent les petits plats que vous leur préparez aux céréales et granulés. Certaines personnes de ma connaissance leur servent une assiette de pâtes cuites tous les jours, pour 3 poules. Leurs animaux ont une espérance de vie réduite à 3 ans, alors que normalement elles est plutôt de 5 à 10 ans. Ce n'est donc pas une bonne idée de leur servir quotidiennement des repas trop riches.

On peut donner aussi les restes de repas, les épluchures de légumes, croûtes de fromage, mais il vaut mieux éviter certains aliments :

  • pain
  • pomme de terre crue et épluchures
  • chocolat, café, marc de café
  • plats préparés ou surgelés, trop salés
  • viande crue
  • nourriture périmée, moisie, avariée
  • pelures d'oignons et de poireaux
  • peaux d'agrumes, de banane, de kiwi
  • avocat
  • céleri
  • aubergine
  • cacahuètes
  • haricots secs
  • trognons de chou
  • etc.

Il est facile de trouver des listes d'aliments non recommandés sur le WEB.

1.2. L'eau

L'eau propre doit être disponible également à volonté. La consommation peut aller jusqu'à plus de 50 cl d'eau par poule en période de forte chaleur.

1.3. La ponte

Le premier œuf a été pondu au bout de 10 jours, et ensuite le rythme s'est maintenu à un petit œuf par jours pendant quelques temps. Les œufs sont très petits au début, et sont un peu plus gros chaque jour. Mes poules sont jeunes et elles mettront un certain temps à pondre 250 à 300 œufs par an.

Avec des poules de réforme, les premiers œufs arriveront certainement plus vite, et seront plus gros et plus nombreux.

1.4. Adoption d'une nouvelle poule

Début mai, j'ai acheté une nouvelle poule, une race ancienne nommée coucou :

Elle provient d'un élevage bio, à un kilomètre de chez moi. D'après ce que j'ai en voir dans l'élevage, les locaux sont sains et propres.

Si vous adoptez une ou plusieurs poules dont vous ignorez tout, ou que vous avez des doutes, placez les nouvelles arrivantes en quarantaine pendant deux semaines.

Il existe des nombreuses pages WEB qui donnent des conseils judicieux : 

https://www.poulailler-direct.fr/content/36-comment-integrer-de-nouvelles-poules-dans-son-poulailler-

Pour ma part j'ai choisi d'intégrer la nouvelle arrivante directement, en début d'après-midi. Mais je dispose d'un grand espace depuis le 15 avril, d'environ 500m2, ce qui favorise la prise de distance entre la nouvelle arrivante et les autres. Deux des poules rousses, qui étaient présentes à proximité, ont tout d'abord été très effrayées par la nouvelle, plus jeune, mais plus imposante. Celle-ci est allée se réfugier sous un arbre aux branches basses, et y est restée plusieurs heures.

Après avoir surveillé les poules de temps à autre, à ma grande surprise, j'ai constaté que vers 18H les quatre poules picoraient le sol ensemble. L'acceptation a donc été plutôt rapide.

Plus tard dans la soirée, la nouvelle poule a pondu un œuf dans le pré, un œuf prématuré, sans coquille formée, que les autres se sont empressées de manger. Egalement, lorsque j'ai introduit la nouvelle poule dans le grand enclos, une des rousses était en train de pondre dans le cabanon, et elle a aussi pondu un œuf incomplètement formé, à la coquille molle. Je suppose qu'elle a eu peur en entendant les deux autres rousses réagir bruyamment en voyant la nouvelle arrivante. Le stress a donc été très important, aussi bien pour la nouvelle arrivante que pour les autres.

A la tombée de la nuit je me doutais bien que la nouvelle venue n'allait pas trouver le cabanon toute seule. J'ai donc du l'attraper et la placer dans le cabanon avec les autres. Comme la prise de contact avait déjà eu lieu, je me suis dit que cela se passerait bien. Et effectivement, je n'ai entendu aucun bruit suspect ensuite.

Le lendemain matin, à l'ouverture de la porte automatique, les rousses sont toutes sorties rapidement. La coucou est sortie quelques minutes plus tard. J'ai laissé le petit enclos de 20m2 fermé jusqu'à midi, le temps que la nouvelle repère bien les lieux. Quand je les ai libérées elles sont toutes sorties, et depuis, la coucou suit les rousses partout, ce qui est normal étant donné que ce sont elles les maîtresses des lieux, et qu'elles les connaissent parfaitement. Elle doit certainement trouver leur compagnie rassurante.

Le surlendemain tout le monde est rentré sans problème au cabanon à la tombée de la nuit.

J'estime que l'intégration de la nouvelle arrivante s'est bien passée parce que l'enclos est très grand et que la promiscuité est faible. Dans le petit enclos de 20m2 cela aurait certainement été beaucoup plus problématique.

Il est assez surprenant de constater qu'un nouvelle poule adopte très rapidement les habitudes des autres, et qu'elle en apprend énormément et vite. En deux jours, elle sait déjà tout : où se trouve la nourriture, l'eau, où passer la nuit, où est le pondoir (elle a pondu le troisième jour et au bon endroit).

Si l'on ne dispose pas de suffisamment d'espace, je déconseillerais totalement de procéder comme je l'ai fait. Il vaudrait mieux séparer les nouvelles arrivantes des autres, mais qu'elles puissent faire connaissance de visu, à travers un grillage par exemple.

2. L'enclos

L'enclos était dans mon cas un ancien chenil, d'environ 20 m². Il est clos, à l'aide de grillage simple torsion en maille 5x5 cm, sur 2 mètres de hauteur :

2.1. Le sol

A l'origine le sol était recouvert de béton. Environ 4 m² ont été retirés au marteau-piqueur afin que les poules puissent gratter la terre à la recherche de vers. Cela leur évite de s'ennuyer.

Si l'on dispose d'un carré de pré, c'est encore mieux. Les poules mangent énormément d'herbe, de pissenlits, etc. L’herbe et les plantes du jardin sont une très bonne source de vitamines A, B et C. Riches en calcium, minéraux et oligo-éléments essentiels, elles réduisent la fatigue et apportent de nombreux bienfaits, surtout en hiver quand les poules sont plus fragiles.

Les poules font également du bon travail au potager :

  • désherbage
  • chasse aux limaces, escargots

Elles grattent le sol à la recherche d’insectes, vers et larves en tous genres. En plus de se régaler, les volailles dénichent de la nourriture riche en protéines.

Attention à veiller à ce que le jardin ne contienne pas de plantes toxiques pour les poules. Il est facile d'en trouver des listes sur le WEB.

Pour l'instant, je leur procure quelques poignées d'herbe par jour, et je leur donne également les végétaux que je récolte quand je désherbe le jardin. Elles ont une excellente vue et y dénichent des insectes que nous autres ne voyons même pas.

J'envisage très sérieusement de laisser les poules vagabonder sur une partie de mon terrain, mais il faut avant cela que je pose une clôture.

C'est fait, depuis le 15 avril. Elles peuvent dorénavant se balader à côté de la maison, sur une pente herbeuse d'environ 500m2 :

Elles sont beaucoup plus actives depuis, et très occupées à dénicher de la nourriture, ce qui leur fait le plus grand bien.

Je suis absolument persuadé qu'un espace confiné n'est pas apte à maintenir les volailles en bonne forme et en bonne santé. Quand je vois un poulailler de quelques mètres carrés pour deux ou trois poules, je ne peux m'empêcher de les prendre en pitié.

2.2. Le ciel

Souvent les enclos sont recouverts de grillage fin. Le mien est simplement recouvert d'un filet à mailles nouées de 5x5cm, bien plus léger et facile à installer :

Il provient de ce fabricant : 

La Fabrique à filets

Un filet a plusieurs avantages : 

  • il permet d'éviter que les poules ne s'envolent
  • il protège des pigeons, qui viendraient manger la nourriture des poules
  • il protège des rapaces

Si l'on veut éviter que les poules ne s'envolent, on peut aussi couper 5 cm des grandes plumes de leurs ailes.

Je pense qu'il est préférable de signaler la présence du filet, à l'aide de rubans de couleur disposée ça et là, car je ne pense pas qu'il soit agréable de décrocher un rapace qui se serait pris les serres dans les mailles du filet.

3. Le cabanon

Le cabanon est réalisé en grande partie à l'aide de matériaux de récupération :

  • chevrons 6x8 cm
  • planches de sapin
  • panneaux d'OSB
  • bacs acier pour la toiture

Les dimensions sont les suivantes :

  • longueur 3 m
  • largeur 1 m
  • hauteur 1,50 m


On peut remarquer la porte à deux battants, qui permet une ouverture très large, ce qui est pratique pour le nettoyage.

Le voici en cours de construction : 

Il est constitué de trois parties :

  • le dortoir
  • le préau abrité
  • l'avancée de toit

3.1. Le dortoir

3.1.1. Les ouvertures

Deux ouvertures sont présentes :

  • l'ouverture pour le passage des poules : environ 24x32 cm
  • la porte principale à deux battants, permettant le nettoyage

Un perchoir et trois nichoirs équipent cet espace : 

3.1.2. Le sol

Le sol est constitué d'un plancher en OSB, recouvert de 3 ingrédients efficaces contre les parasites, poux rouges en particulier :

  • sable
  • paille de chanvre
  • un peu de terre de diatomée

3.1.3. L'aération

Le dortoir est étanche, ce qui permet d'éviter que les rongeurs n'y entrent. Mais il ne l'est pas totalement, on voit sur cette photo une aération en hauteur. L'air frais peut entrer par les interstices autour de la porte principale, et sortir par la grille d'aération.

3.1.4. Le plafond

Le dortoir comporte un plafond, recouvert de laine de roche et de laine de verre :

Ce plafond a deux fonctions :

  • éviter que des rongeurs ou les prédateurs n'entrent dans le dortoir
  • protéger du froid et de la chaleur

Il est important que le plafond ne soit pas situé trop en hauteur (un mètre suffit), cela permet de conserver une température plus clémente à l'intérieur, en hiver.

3.1.5. Les pondoirs

Les pondoirs sont les seuls à recevoir de la paille. Ils sont fabriqués en OSB et sont accessibles par l'extérieur :

L'OSB résiste à la pluie, mais on peut recouvrir la trappe d'accès de tôle, pour plus de longévité.

3.1.6. Le nettoyage

Le nettoyage est une tâche ingrate mais importante. Si vous n'êtes pas prêt à y consacrer un peu de temps, je vous déconseille de vous lancer dans l'aventure.

Le cabanon doit être débarrassé des fientes de poules plusieurs fois par semaine, afin de le conserver dans un état propre et sain, ce qui contribue non seulement à leur bien-être, mais permet aussi de diminuer les risques de maladies et de parasites en excès. On conseille également un grand nettoyage deux fois par an. On trouve à ce sujet beaucoup de conseils sur le WEB.

3.2. Le préau

La mangeoire en PVC a été installée sous le préau : 

Ce type de mangeoire faite maison permet de stocker plusieurs kilos de nourriture. Si l'on désire en fabriquer une, on trouve facilement des tutoriels sur le WEB.

3.3. L'avancée de toit

Celle-ci permet d'abriter un bac à sable, un ancien évier :

Le bac à sable est important, car c'est là que les poules viennent prendre leur bain de poussière. Il doit être rempli de sable fin, à l'abri des intempéries, et on peut y ajouter deux ingrédients antiparasites : de la cendre, et de la terre de diatomée.

L'abreuvoir de 5 litres est visible en arrière plan, surélevé afin que les poules ne salissent pas l'eau.

4. Les cartes électroniques et le câblage

Les cartes électroniques (carte de puissance et carte de commande) sont des réalisations personnelles.

Pour rappel, ce montage peut fonctionner avec deux types de moteur :

  • servomoteur
  • moto-réducteur + courroie avec poulies

Parlons tout d'abord du coût de ces cartes. La version que j'ai monté revient à environ 60€. Ce prix comprend les deux PCB (17€ chez JLCPCB, pour 5 pièces de chaque), et une batterie de marque SAMSUNG INR-18650 2500mAH.

Il s'agit d'une version à moto-réducteur, avec poulies et courroie. C'est également une version complète, connectée à un serveur DOMOTICZ, avec horloge RTC, capteur de température / humidité. Une version minimale à servomoteur coûterait environ 40€.

A cela il faut ajouter un panneau solaire. On trouve des modèles 4W à moins de 15€ sur AliExpress.

En comparaison, une porte du commerce vaut entre 100€ et plus de 200€. Certaines nécessitent une batterie 12V ou une alimentation secteur, d'autres fonctionnent sur piles. Certains modèles sont solaires, comme le ZenFarm (175€). Ces automatismes offrent en général deux modes de programmation (plage horaire, ou seuil de luminosité). La programmation par plage horaire ne me paraît pas une bonne solution, étant donné qu'elle devra être modifiée en fonction de la saison.

Avant un achat il faut bien réfléchir et examiner de près les caractéristiques, l'autonomie en particulier. On trouve des articles intéressants sur le WEB :

https://poules-club.com/porte-automatique-poulailler/

4.1. Les PCB

La fabrication des 2 PCB peut être confiée à un professionnel,  JLCPCB par exemple. C'est certainement la meilleure solution. Les électroniciens possédant le matériel d'insolation et gravure, comme moi, peuvent se lancer dans l'aventure d'un PCB maison, mais il y a tout de même pas mal d'inconvénients :

  • utiliser un PCB de qualité, BUNGARD par exemple
  • possibilité de court-circuits entre piste
  • possibilité de pistes coupées
  • test à l'ohmmètre obligatoire après fabrication
  • absence de vernis et de masque de soudure

Pour ma part j'ai fabriqué ces PCB moi-même mais j'ai eu quelques surprises (une piste coupée et plusieurs court-circuits entre pistes), et j'ai été obligé de recouvrir le côté soudures d'un vernis de tropicalisation, car la carte va fonctionner en extérieur.

En commandant les PCB chez un professionnel, ces problèmes seront évités.

4.2. La carte de puissance

La carte de puissance a été présentée en 3ème partie :

Ses dimensions sont les suivantes : 94mm x 100mm.

Depuis juillet 2020, un filtre composé d'un condensateur et d'une résistance a été ajouté, au dessus du L293D, afin de lisser la mesure du courant, comme expliqué dans le dernier article : 

Porte Motorisée de Poulailler (le bilan)

Pour la version à servomoteur, ces composants, L293D compris, sont inutiles.

4.3. La carte de commande

La carte de commande a été également présentée dans le même article, mais sans photos. La voici : 

Ses dimensions sont les suivantes : 94mm x 65mm. La carte est complète, mis à part le MCP23008, en haut à gauche, inutile pour l'instant.

Par rapport aux versions précédentes, le connecteur à 11 points (bleu) a été légèrement déplacé, afin d'être situé exactement au même emplacement que celui de la carte de puissance, ce qui permet d'empiler les deux cartes.

Rappel : certains modules sont optionnels :

  • le module DS3231, si l'on envisage d'utiliser une LDR ou la tension du panneau solaire pour déterminer l'heure d'ouverture et de fermeture
  • les modules NRF24L01 et SHT31D, seulement utiles si l'on possède un serveur DOMOTICZ

On peut remarquer :

Tous les modules sont enfichés sur des barrettes DUPONT femelles :

  • ARDUINO PRO MINI : 2 x 12 broches
  • module DS3231 : 6 broches
  • module SHT31D : 4 broches
  • module NRF24L01 : 8 broches
  • MCP23008 : 2 x 9 broches

Le module DS3231, au centre, est enfiché avec son support de pile en dessous. Ces modules sont en général livrés avec un connecteur coudé :

Il faut remplacer ce connecteur par un modèle droit, car avec le connecteur coudé le module occuperait une place très importante en hauteur. Ce n'est pas gênant d'un point de vue électronique, mais cela serait inesthétique et encombrant.

Les deux cartes peuvent être empilées à l'aide de colonnettes de 30 mm : 

Bien entendu, la carte de commande a été conçue pour accueillir des modules bien particuliers mais très courants. Si par exemple le module DS3231 ou SHT31D ont un brochage différent de ceux que j'ai utilisé, il faudra soit changer de modules, soit modifier le routage de la carte.

Egalement, on trouve différents modèles d'ARDUINO PRO MINI. Celui que j'ai utilisé est celui-ci :

On voit que les broches A4, A5, A6 et A7 sont situées sur le même côté de la carte.

Sur ce modèle, moins courant, les broches A6 et A7 sont situées en bout de carte. Elle ne pourra pas être enfichée sur le PCB, sauf si l'on modifie le routage.

4.4. La liaison entre cartes

Une nappe de 11 fils relie les deux cartes. Elle est réalisée à l'aide de fils de 70 mm, de connecteurs DUPONT sertis à l'aide d'une pince :

On trouvera difficilement des connecteurs à 11 points, il faut donc utiliser deux connecteurs pour chaque extrémité, 7 points + 4 points par exemple.

Je déconseille l'utilisation de fils simples DUPONT, les faux contacts seraient trop probables. Mais c'est néanmoins possible, si l'on teste la bonne tenue des fils sur les connecteurs. Dans cette optique, remplacer les connecteurs mâles des cartes par des modèles femelle, et utiliser des fils mâles serait certainement moins sujet à problèmes.

Les aventuriers peuvent également utiliser ce genre de connecteurs :


Le connecteur femelle peut être utilisé pour la carte de puissance, le connecteur mâle dit "sandwich", pour la carte de commande (situé sous la carte, et soudé par le dessus). Le connecteur sandwich a une longueur de 29mm. La carte de commande viendra donc s'enficher sur la carte de puissance. Avec des colonnettes de 30mm cela passe tout juste !

Mais cette technique n'est utilisable que si l'on fait fabriquer la carte de commande par un professionnel,  JLCPCB par exemple, avec trous métallisés. Avec un PCB maison simple face, comme je l'ai fait, le connecteur sandwich serait difficile à souder par le dessous, et la carte de commande serait difficile à extraire sans arracher les pastilles.

Je l'ai déjà fait sur ce projet

On voit bien les connecteurs mâles, rouges, soudés par le dessous. Les broches sont collées au PCB à la cyanoacrylate, sur l'autre côté. Cette carte maison ne quitte jamais la MEGA sur laquelle elle est enfichée, donc les risques sont limités.

5. Le logiciel

5.1. Les options

Pour rappel, ce logiciel est hautement paramétrable. Le fichier options.h regroupe les options possibles, entre autres : 

  • moteur à courant continu ou servomoteur
  • alimentation secteur ou batterie + panneau solaire
  • méthode d'ouverture / fermeture
    • grâce à la luminosité
    • LDR : idéal en cas d'alimentation secteur
    • mesure de la tension du panneau solaire
    • à l'aide d'un calcul de l'heure de lever et de coucher du soleil
      • RTC DS3231 avec saisie manuelle de l'heure
      • RTC DS3231 avec demande d'heure à un serveur DOMOTICZ
  • capteur de température / humidité (HDC2080, SHT31D, HTU21D) ou non
  • capteur de courant du panneau solaire ou non
La carte de commande supporte un seul capteur d'humidité, le SHT31D. Pour adapter un HDC2080 ou un HTU21D, il faudra prévoir une petite adaptation, le brochage étant différent. On peut éventuellement modifier le routage de la carte.

5.2. Démarrage

Ce chapitre décrit les essais du système en intérieur, à côté du bureau.

Après avoir choisi les bonnes options dans le logiciel et après l'avoir téléversé, voici ce que l'on peut observer sur le moniteur série après le démarrage.

Il s'agit d'une version compilée pour être utilisée avec : 

  • un moto-réducteur continu
  • un DS3231
  • un serveur DOMOTICZ
  • capteur de température / humidité SHT31D

MYSENSORS Automated Gate
Presentation: OK
time not received yet
wait for time
Time value received: 1679330566
UTC offset: 3600
checkLuminosity
gate state: LOW
GateScheduler::isDay
now 1679326966 20/3 15h42
sun rise 1679290885 19/3 5h41
sun set 1679334381 19/3 17h46
day: YES
### AUTO OPEN
Motor I: 149mA
overcurrent, STOP
time: 1 seconds
min voltage 4.08
gate state: HIGH
Time value received: 1679330566
UTC offset: 3600
checkLuminosity
gate state: HIGH
GateScheduler::isDay
now 1679326966 20/3 15h42
sun rise 1679290885 19/3 5h41
sun set 1679334381 19/3 17h46
day: YES
panel V: 13.74
panel I: 0.13
battery: 4.21V (100%)
temperature/humidity: 23.30/51.59
SLEEP 300

L'heure est demandée au serveur DOMOTICZ.

Au départ l'état logiciel de la porte est LOW.

Le logiciel détermine si l'on fait jour ou nuit : il fait jour (day: YES).

Il demande l'ouverture de la porte.

Comme elle est déjà ouverte le moteur est bloqué et le courant grimpe à 149mA immédiatement. La limite est fixée à 120mA dans options.h :

#define MOTOR_CURRENT     0.100

Le moteur est arrêté immédiatement (overcurrent, STOP).

La tension batterie est descendue à 4.08V pendant l'ouverture de la porte, ce qui est un signe de bonne santé de la batterie.

L'état de la porte passe à HIGH.

La tension du panneau solaire est de 13.74V

Le courant est de 0.13A, ce qui indique que la batterie est en charge.

La tension de la batterie est de 4.21V, la charge va bientôt s'arrêter.

Ensuite le microcontrôleur s'endort pour 300 secondes.

Voici ce qui est affiché lors de la fermeture : 

manualStartTime: 0
manualWakeupTime: 0
checkLuminosity
gate state: HIGH
GateScheduler::isDay
now 1679334672 20/3 17h51
sun rise 1679290873 19/3 5h41
sun set 1679334389 19/3 17h46
day: NO
### AUTO CLOSE
Motor I: 68mA
Motor I: 69mA
Motor I: 68mA
Motor I: 68mA
Motor I: 69mA
Motor I: 68mA
...
Motor I: 59mA
Motor I: 65mA
Motor I: 74mA
Motor I: 83mA
Motor I: 94mA
Motor I: 125mA
overcurrent, STOP
time: 16 seconds
min voltage 4.06
gate state: LOW
panel V: 3.72
panel I: 0.00
battery: 4.10V (92%)
temperature/humidity: 21.97/54.42
SLEEP 300

Au départ l'état de la porte est HIGH.

Le logiciel détermine si l'on fait jour ou nuit : il fait nuit (day: NO).

Il demande la fermeture de la porte.

Comme elle est ouverte le courant moteur grimpe à 68mA, puis lorsque le moteur bloque en fin de course, à 125mA.

Comme la limite de 120mA est dépassée le moteur est arrêté (overcurrent, STOP).

La fermeture a duré 16s.

La tension batterie est descendue à 4.06V pendant la fermeture de la porte.

L'état de la porte passe à LOW.

La tension du panneau solaire est de 3.72V

Le courant est de 0.00A, ce qui indique que la tension du panneau est insuffisante, ce qui est normal puisque le soleil est couché.

La tension de la batterie est de 4.10V.

Ensuite le microcontrôleur s'endort pour 300 secondes.

Comme on le voit, le moniteur série affiche beaucoup d'informations, ce qui peut permettre de régler pas mal de paramètres, en particulier le courant moteur maximal, mais aussi la tension de seuil jour/nuit de la LDR si cette option a été choisie.

Cela peut permettre aussi de déceler des problèmes de fonctionnement. Par exemple si le message "Couldn't find RTC" est affiché au départ, cela veut dire que le module DS3231 est mal câblé, ce qui m'est arrivé au départ (il était embroché à l'envers).

5.3. Mise à l'heure

5.3.1. Mise à l'heure manuelle

Si la méthode choisie pour déterminer l'heure d'ouverture et de fermeture de la porte est d'utiliser un DS3231, lors de la première mise en route, il faudra régler l'heure de ce module.

Par rapport aux versions précédentes, l'activation du shell change. Il faut appuyer sur les deux boutons simultanément, et les relâcher pour que l'on puisse modifier l'heure et la date à l'aide du serial monitor. Pour en sortir, si par exemple on a appuyé sur les deux boutons par mégarde, il suffit d'appuyer sur un des deux boutons.

Normalement, cette mise à l'heure devrait être valable pour plusieurs années.

La mise à l'heure a été décrite en 3ème partie, au paragraphe 4.1. 04/05/2020. En résumé, il faut entrer les commandes suivantes à l'aide du moniteur série : 

date Avr 04 2023

time 09:25:00

5.3.2. Mise à l'heure automatique

Si l'option DOMOTICZ a été choisie, le logiciel demandera l'heure au serveur. Il n'y a donc pas à s'en préoccuper.

Il est absolument indispensable qu'au démarrage du logiciel le serveur DOMOTICZ soit joignable, c'est à dire que la communication soit correcte. Une fois que l'heure a été obtenue, le module DS3231 est mis à l'heure, et le logiciel demande une ouverture de la porte (s'il fait jour), ou une fermeture (s'il fait nuit).

Si la communication avec le serveur est impossible, le logiciel reste bloqué dans un état d'attente. Il suffit d'avoir le moniteur série ouvert pour le constater. Il est donc essentiel que la communication avec le serveur DOMOTICZ soit correcte au démarrage.

Après un démarrage réussi, la porte sera ouverte ou fermée en fonction de l'heure de lever et de coucher du soleil. Que se passe t-il ensuite si le logiciel ne parvient pas à contacter le serveur pour remonter les informations (ouvertures, fermetures, niveau de la batterie, etc.) ? Les informations affichées par le serveur ne seront pas exactes, mais ce n'est pas dramatique, l'essentiel est que la commande de la porte fonctionne, n'est ce pas ?

Après un démarrage réussi, l'heure est demandée au serveur régulièrement, et un paramètre permet de régler la période (fichier options.h) :

#define TIME_REQUEST_PERIOD   2592000   // 30 days

Que se passe t-il si la réponse n'arrive pas ? ce n'est pas un problème. Le logiciel continuera à vivre avec l'heure fournie par le DS3231. Un DS3231 est très précis, et le fait de rater une mise à l'heure n'entraînera qu'un écart minime par rapport à l'heure réelle.

5.4. Surveillance de la tension de la batterie

La tension de la batterie est mesurée à chaque réveil. Pour que la mesure soit exacte il faut fixer la tension de référence de l'ADC dans options.h :

#define VREF              1.081

Cette valeur est à affiner par essais successifs, en comparant la tension de la batterie à la tension mesurée avec un multimètre. Cette valeur est également différente pour chaque exemplaire d'ARDUINO PRO MINI.

Suivant que l'on ait choisi ou non l'option DOMOTICZ, la surveillance pourra être faite à distance ou non. Dans tous les cas, si la batterie est trop faible, il faudra réagir :

  • recharger la batterie à l'aide d'un bloc secteur 5V branché sur le chargeur TP4056
  • augmenter la puissance du panneau
  • adopter des batteries neuves, en augmentant éventuellement la capacité

5.4.1. Surveillance manuelle

En journée, appuyer sur le bouton de fermeture de la porte. Si pendant la fermeture de la porte la tension de la batterie chute en dessous de 3V, la LED de l'ARDUINO clignote 5 fois.

On peut aussi surveiller la tension de la batterie régulièrement avec un multimètre, de préférence après une ouverture ou une fermeture de porte. On peut également brancher un PC portable muni d'un câble USB et d'un convertisseur USB / série sur les broches en bout de carte de la PRO MINI (celles qui servent au téléversement). La tension de la batterie sera affichée.

Il est important de surveiller la tension de la batterie. Il m'est arrivé deux fois d'être obligé de la recharger, en février, pendant une longue période de temps couvert. Sinon, il est parfaitement possible, si l'on veut être certain que la batterie ne se décharge pas excessivement, de laisser un chargeur 5V branché sur la prise USB du TP4056 pendant les mois de janvier / février.

5.4.2. Surveillance à distance

Si l'option DOMOTICZ a été choisie, la tension de la batterie est mesurée et remontée régulièrement vers le serveur DOMOTICZ :

Les icônes de la 10ème colonne (des piles) indiquent le pourcentage de charge. Il suffit de passer la souris au dessus de l'icône pour obtenir la valeur exacte.

5.4.3. Portée du NRF24L01

Concernant le module NRF24L01, on peut adopter un modèle avec antenne externe si nécessaire, pour une portée plus importante :

Pour ma part, le poulailler étant éloigné de l'endroit où se trouve mon serveur DOMOTICZ, j'ai choisi d'installer un répéteur à l'extérieur de l'habitation : 

https://www.mysensors.org/about/network

Et cela a suffit.

5.5. Ouverture et fermeture automatique

Dernièrement, une option a été ajoutée (voir options.h : CLOSE_DELAY).

// close delay in minutes
#define CLOSE_DELAY       30

Cette option permet de retarder la fermeture de la porte au coucher du soleil. En effet, lorsque le soleil  se couche la luminosité est loin d'être nulle, et les poules ne ressentent pas forcément la nécessité de rentrer dans le cabanon, en tous cas, pas toutes. Cela peut prendre plus d'un quart d'heure.

5.6. Ouverture et fermeture manuelle

Comme déjà expliqué dans Porte Motorisée de Poulailler (2ème Partie) :

Les deux boutons d'ouverture / fermeture manuelles sont branchés sur les broches 2 et 3, afin d'autoriser le réveil par interruption.

Lorsqu'une commande manuelle est effectuée, le logiciel passe en mode manuel, et ce mode sera désactivé au bout d'un temps défini (voir options.h : MANUAL_TIMEOUT), et le mode automatique reprendra alors la main.

Si l'on a fermé la porte manuellement en journée, elle sera ouverte à nouveau plus tard, ceci afin d'éviter les oublis.

Si l'option DOMOTICZ a été choisie, il n'y a pas de possibilité d'ouvrir ou fermer la porte depuis le serveur. En effet, l'ARDUINO devrait être éveillé en permanence afin d'assurer la réception de la commande. Avec une alimentation par batterie c'est hors de question.

5.6. L'intégration

Voici quelques photos du montage terminé, monté sur le cabanon :

On voit ici que la porte automatique est monobloc. Comme décrit dans l'article Porte Motorisée de Poulailler (2ème Partie) les glissières en U sont des crémaillères de quincaillerie prévues pour des consoles d'étagères. Leur largeur interne est de 12mm.

La partie haute est une plaque d'OSB de 23.5cm x 57cm x 12mm. La plaque est insérée dans les glissières et fixée par 6 vis à bois dans les trous prévus. Elle supporte tout le matériel : cartes électroniques, moteur, poulies.

La porte a été réalisée dans une plaque de PVC blanc (un morceau de couvercle de gaine GTL) de 23cm x 32cm pesant 250 grammes.

Le tout est fixé à l'extérieur à l'aide de 4 vis à bois, 2 sur la barre de seuil, et 2 au dessus de la porte. L'intérêt d'un tel montage est qu'il est facile à démonter en cas de panne, et facilement transportable d'un seul tenant jusqu'à mon atelier pour une réparation éventuelle, ou une mise à jour du logiciel. Après avoir enlevé 4 vis, et débranché le panneau solaire, on peut partir avec l'ensemble sous le bras.

De chaque côté des glissières blanches on distingue les anciennes glissières en bois, avec l'ancienne porte, à droite. Si je retire la porte automatique pour une intervention de longue durée, la porte manuelle reste utilisable.


Un coffret emprisonne l'électronique et le moteur pour les protéger de la poussière, et une plaque de plexiglas va recouvrir le tout, permettant de voir l'intérieur. Par transparence, à travers la carte de commande, on peut voir que la LED rouge du TP4056 est allumée.

Le moteur, les boutons et le panneau solaire sont raccordés à l'aide de 4 petits câbles, pourvus de connecteurs DUPONT, à la carte de commande et à la carte de puissance.

Sur le côté droit on peut voir les deux bouton d'ouverture et de fermeture manuels. Sur le dessus deux bornes bananes permettent de relier le panneau solaire.

6. Téléchargements

Cette version finale est disponible ici :

https://bitbucket.org/henri_bachetti/mysensors-gate/src/v1.4/

7. Conclusion

Ce projet est assez conséquent, c'est de loin le plus gros que j'aie réalisé jusqu'à présent. Les schémas et les photos des cartes montrent néanmoins qu'elles sont principalement constituées de modules tout faits. Les composants discrets sont peu nombreux. Seul le logiciel est imposant, du fait des nombreuses possibilités.

Pour terminer, je dirais que le fait de disposer d'un portillon automatique ne dispense pas de surveiller. Une petite visite matin et soir est indispensable, ne serait-ce que pour vérifier que toutes les poules sont rentrées à la tombée de la nuit.

Et il faut bien récolter les œufs quotidiennement ! C'est l'occasion de vérifier également la mangeoire et l'abreuvoir, et de changer l'eau si nécessaire.

Il ne m'est jamais arrivé de trouver une poule dehors après la tombée de la nuit. Lorsque la nuit tombe, les poules n'ont qu'une idée en tête, se réfugier à l'abri des prédateurs.

Le premier soir, j'ai eu beaucoup de mal à les faire entrer dans le cabanon. Le lendemain, elles ne voulaient pas sortir, elles trouvaient probablement le cabanon très à leur goût, et très sécurisant. Mais dès le surlendemain, quand la porte s'ouvre le matin, elles sont toutes sorties en quelques secondes. Il leur faut un temps d'adaptation à leur nouvel environnement.

A mon sens, l'avantage essentiel d'un portillon automatique est d'éviter de se lever aux aurores pour aller ouvrir la porte du cabanon. On a bien droit à une grasse matinée de temps en temps ! D'autre part j'ai déjà lu des commentaires parlant de poules qui se battent si le cabanon est ouvert très tard le matin.

En cas d'absence prolongée, il faut confier cette surveillance à un ami, un voisin, qui sera certainement ravi de bénéficier d’œufs frais pondus.

Certains amateurs de DIY vont trop loin et leur imagination déborde.

Voir ici : https://forum.arduino.cc/t/projet-automatisation-poulailler-smartphone/1064817

  • dégivrage de l'abreuvoir a l'aide d'une sonde de température et d'une résistance chauffante
  • surveillance du niveau de grain, du niveau d'eau
  • cameras de surveillance
  • puce RFID sur chaque poule pour fermer la porte uniquement lorsque toutes les poules sont rentrées !

Rien que le dégivrage de l'abreuvoir rendrait l'alimentation par batterie impossible !

Un badge RFID a une portée de quelques cm, et ne permet pas de détecter le sens de passage, autant dire mission impossible.

Je ne vous encourage pas à vous laisser aller à ce genre de délire de geek. Mon projet est certes complexe, mais les chances de mener à bien un projet encore plus complexe seraient quasi nulles. Il faut faire des choix, et la raison doit l'emporter sur l'abondance de fonctionnalités.

Pour conclure, les poules sont de animaux adorables, très attentifs et curieux, actifs, familiers, et font le bonheur des enfants.


Cordialement
Henri

8. Mises à jour

    07/05/2023 : 1.4. Adoption d'une nouvelle poule