INTERRUPTEUR CREPUSCULAIRE
Projet Chicken Secur
Dans un précédent billet, j'ai décrit une commande de moteur par un montage en H-Bridge.
L'application dans mon cas se rapportait à la commande d'ouverture et de fermeture de la porte d'un poulailler pour mettre des poules à l'abri des prédateurs nocturnes .
Le moteur en question commande une poulie qui permet l'ouverture et la fermeture de l'abri des poules.
D'autres système mécaniques de fermeture sont aussi possibles autour d'un moteur de contrôle de mouvement équipé de deux contacts de fin de course.
Dans l'article précédent, la programmation se fait par un timer dont il faut changer régulièrement les heures en fonction des saisons et des changement horaires.
Afin de rendre cette ouverture et cette fermeture calées sur le cycle solaire, comme le sont les poules, j'ai étudié la possibilité de calculer les éphémérides solaires de façon à connaitre en temps réel les heures de lever et de coucher du soleil et ceci en tenant compte automatiquement de la position géographique du lieu.
En effet, il y a pratiquement une heure de décalage entre Brest et Nice, alors vous pensez, à Vladivostok ..
J'ai donc introduit dans le système un petit module GPS qui nous fournira en temps réel la date et l'heure et en plus les coordonnées géographiques exactes du lieu où est installé le poulailler.
Un module Arduino-nano, à partir de ces données GPS, nous calculera les éphémérides solaires et délivrera un signal binaire jour/nuit pour commander le moteur via un commutateur en H-Bridge.
La mécanique d'ouverture et de fermeture de la porte sera adaptée en fonction de la configuration.
Le Schéma sera le suivant pour une commande H-Bridge :
Le système est alimenté par une petite batterie 12 V de quelques Ah, tenue en charge permanente par un petit panneau solaire.
Pour limiter la consommation, j'ai opté pour une alimentation à découpage avec un LM2576 plutôt qu'un régulateur linéaire pour générer le +5V qui alimente le GPS et l'Arduino. Cependant, on peut monter un LM7805 en lieu et place, les pins correspondent. Ne pas monter la self et la diode Schottky ainsi que la résistance R6, et une résistance de 0 Ohm pour R5.
Un afficheur OLED 1.3" optionnel permet de visualiser l'heure en temps universel (TU ou GMT), la date et les coordonnées GPS ainsi que l'état binaire de la commande Jour/Nuit. Il peut être retiré une fois les mises au point faites, les gallinacées n'en auront pas besoin.
Une version du firmware est prévue pour un afficheur LCD 4X20 caractères.
Une LED (D1) sur la sortie digitale AD6 de l'Arduino indique elle aussi l'état Jour/Nuit et c'est cette même sortie AD6 qui contrôle du moteur de porte.
Une autre LED (D5) sur AD7 clignote à la seconde lors de la réception des trames GPS.
Dans ces conditions, l'ouverture et la fermeture de la porte du poulailler seront synchronisées sur le lever et le coucher réel du soleil, quelle que soit la saison ou le lieu, de Brest à Nice ou de Dunkerque à Tamanrasset.
Un offset d'une demi-heure est prévue sur l'heure de fermeture pour permettre à la poule retardataire de rentrer pendant la période crépusculaire.
Le tout est câblé sur un circuit imprimé double face de 60x80 mm.
Les composants de l'alimentation ici en jaune sont montés sur la face arrière du circuit imprimé.
Liste des composants
Item | Quantité | Désignation | Valeur | |
1 | 4 | C1,C2,C4,C5 | 100nF | CMS 0805 |
2 | 1 | C3 | 10µF | |
3 | 1 | C6 | 470µF | |
4 | 2 | D5,D1 | LED | 3 mm |
5 | 2 | D2,D3 | SS14 | SMD |
6 | 4 | D6,D7,D8,D9 | 1N4007 | SMD |
7 | 1 | GPS1 | NEO M8N | |
8 | 1 | JP1 | OLED | |
9 | 1 | JP2 | BORNIER 5,08 mm | 5.08 mm |
10 | 1 | JP6 | JACK ALIM | 2.1 mm |
11 | 1 | L1 | 100uH | SMD |
12 | 1 | MG1 | MOTO REDUCTEUR 12V | |
13 | 4 | Q1,Q4,Q5,Q8 | 2N7000 | TO92 |
14 | 2 | Q3,Q2 | MOSFET P IRFR9120 | DPAK TO252 |
15 | 2 | Q6,Q7 | MOSFET N IRFR120 |
DPAK TO252 |
16 | 2 | R1,R7 | 2.2k | CMS 0805 |
17 | 2 | R2,R3 | 470 | CMS 0805 |
18 | 1 | R4 | 1K | CMS 0805 |
19 | 3 | R5,R6,R16 | R | CMS 0805 |
20 | 8 | R8,R9,R10,R11,R12,R13,R14,R15 | 10k | CMS 0805 |
21 | 2 | SW1, SW2 |
FIN DE COURSE |
|
22 | 1 | U1 | ARDUINO NANO | |
23 | 1 | U2 | LM2576CT-5V | SMD |
Pour une autre utilisation que la commande d'un moteur en H-bridge, par exemple pour un éclairage nocturne, j'ai réalisé une version avec un relais.
Autre exemple de motorisation
Mise en boitier du prototype.
Impression 3D
Proto version relais
Proto version H-bridge
D'autres utilisations sont possibles comme de l'éclairage ou du pilotage d'évènements nocturnes ou diurnes.
Fonctionnement de l'Arduino.
A la mise sous tension le système est en attente de trames GPS valides.
La LED D5 clignote une fois chaque seconde dès la réception des premières trames NMEA et récupère la date et l'heure assez rapidement.
Par contre il faut plus de trois satellites pour avoir des coordonnées géographiques correctes.
Comme par défaut, les coordonnées géographiques affichées sont celles du centre de la France, avec la date et l'heure, on peut déjà calculer les heures de fermeture et d'ouverture.
Une fois le nombre convenable de satellites atteint et affiché sur l'OLED, le calcul est affiné sur les coordonnées réelles du lieu.
La LED D5 clignote alors deux fois à chaque seconde.
Quelques PCB pour version composants CMS sont disponibles, me contacter.
Version simplifiée à relais
Cette version permet de contrôler par un seul relais 2RT soit une commande jour/nuit de moteur avec fin de course dans les deux sens de rotation, soit une commande par contacts secs en ouverture ou en fermeture.
Item | Quantity | Reference | Part |
1 | 4 | C1,C2,C4,C5 | 100nF |
2 | 1 | C3 | 10µF |
3 | 1 | C6 | 470µF |
4 | 2 | D5,D1 | LED |
5 | 4 | D2,D6,D7,D8 | Schottky SS14 SMD |
6 | 1 | D4 | 1N4148 |
7 | 1 | F1 |
LITELFUSE RXEF030, 200/500 mA |
8 | 1 | GPS1 | NEO M7N |
9 | 1 | JP1 | Connexion option OLED |
10 | 1 | JP2 | Connexion batterie |
11 | 1 | JP4 | BORNIER 3x5.08mm |
12 | 1 | JP5 | Strap 2.54 mm |
13 | 1 | JP6 | Connexion chargeur |
14 | 1 | JP7 | Connexion Cmd manuelle |
15 | 1 | JP8 | BORNIER 5.08mm Moteur |
16 | 1 | K1 | RELAIS 5V NEC MR602-5SR |
17 | 1 | Q1 | 2N7000 SOT23 |
18 | 3 | R1,R7,R10 | 2.2k SMD0805 |
19 | 2 | R2,R3 | 470 SMD0805 |
20 | 1 | R4 | 1K SMD0805 |
21 | 1 | R8 | R Maintien charge batterie |
22 | 1 | U1 | ARDUINO NANO |
23 | 1 | U3 | 78M05 |
Monter en premier tous les composants CMS, puis les quelques composants traversants.
Ne souder sur le connecteur Arduino que les pins cerclées en sérigraphie.
Redresser à 90° le connecteur du GPS et le souder dur le circuit imprimé.
L'afficheur OLED est facultatif.
Restera ensuite à programmer l'Arduino par son connecteur USB.
Avec un nombre de composants réduit, le cout final d'un tel système ne dépasse pas les 20€
Circuit imprimé et firmware sur demande.
Je remercie mon ami Jean-Louis F5DJL, "docteur ès Arduinos", pour le portage des librairies nécessaires au calcul des éphémérides ainsi que la mise au point du code Arduino.
Merci également à Hervé F1UPL pour l'aide à l'impression 3D.
Pack de programmation sur demande