Porte automatique pour poulailler

Bonjour,

Le système indique que la méthode get n’existe pas dans la class DateTime.
Il faut regarder du coté des librairies et en particulier la Rtclib.
En pièce jointe celle que j’ai utilisée.
Peut être pas up to date…
Si tu veux utiliser celle qui est installée dans ton compilateur, il faut modifier un peu le code…
La fonction get donne un temps en ms depuis le 01/01/2000…
A+

rtclib.zip (43.5 KB)

Bonjour Etienne

là, il semble que ce soit plus grave que ça ...

j'ai essayé l'exemple DS1307 de la librairie ( à jour ) et ... mème résultat: ça coince encore pile au mème endroit.

apparemment ça n'est pas une question de version de l'IDE ( je suis sous XP, DONC, IDE 1.65 ... no comment ! ) la 1.06 donne le mème résultat.

je commence à croire que je vais devoir tout réécrire sous MikroC Pro ( pour utiliser un matériel/IDE que je connais bien ... )

Bon Week End

Alain

PS: j'ai bien trouvé une horreur à base de " return(nowtmp.unixtime()-946728000); " ...

Bonjour,

Cela serait dommage de tout réécrire, il faut essayer de modifier le "get" en "secondstime". Et voir si ça compile.. A+

Bonsoir et merci Etienne,

je ne sais pas d'où tu sors ce "secondstime" ... j'avais parcouru le Oueb pour trouver "quelque chose" de ressemblant, mais strictement aucune trace de ça ...

en lançant une recherche google ... rien non plus. sauf avec le bon mot,évidemment ... et encore ...( gag ! )

c'est franchement rageant de ne pas arriver à trouver ce genre d'infos à la rubrique "référence" ... ne parlons pas de l'aide contextuelle qui retourne toujours la mème réponse !

Maintenant ça compile correctement ... me reste à vérifier que le fonctionnement est bien celui attendu.( humour .... quoi que ? )

coté "hard" je sens que je vais faire une jolie carte sur ulticap/ultiboard 5.7 ( l'ancètre de la Version actuelle National à 15000$ ... qui coûtait 1200 F de 1990 ! )

DONC, si tu veux, je t'envoie une carte en remerciement ....

maintenant, allez hop ... au boulot.

Bonne soirée et merci encore. Alain

Bonjour,

Super si ça se compile. Dans mon programme, j'utilisait la fonction get pour calculer une différence de temps entre 2 événements afin de gérer un timeout car ma construction mécanique de ma porte n'était pas top. Le timeout évitait que le moto réducteur casse tout si un fin de course ne se déclenchait pas. Ta modification ne devrait pas modifier le fonctionnement général : A tester pour les timeout.. A+ Etienne

Bonjour Etienne

En ce qui concerne les fins de course …
j’ai jeté un oeil sur Ebay et on y trouve des moto réducteurs avec codeurs quadrature à vil prix …
un arduino doit savoir se débrouiller de ça sans difficultés - la quadrature n’étant pas utile ici, un seul capteur suffit -.

ça fait juste une fonction de comptage à rajouter au listing … et ça permet de repérer rapidement un blocage moteur.

quant à la détection de consommation du moteur, c’est une pure vue de l’esprit dans le cas d’un motoréducteur à forte démultiplication …

j’avais aussi regardé les servos treuils de radiocommande, mais ceux à prix raisonnable ont une précision de positionnement " très relative " … et certains ( Hobbyking i.e.) sont mème incapables de fournir du couple à l’approche de leur position visée : et un barbecue garanti, un …

Bonne journée
Alain

Bonjour,

Acetronics: quant à la détection de consommation du moteur, c'est une pure vue de l'esprit dans le cas d'un motoréducteur à forte démultiplication ...

Ce qui est facilement détectable est l'absence de variation du courant quand le moteur est bloqué.

Il suffit de calibrer une résistance série au moteur qui limite le courant de blocage pour le protéger et sert en même temps de repère de tension pour l'arduino.

Bonjour Etibou (les autres aussi bien entendus ;)

Il faut bien avouer que pour des gens qui ne sont pas du métier comme moi, il n'est pas toujours évident de vous suivre... Je ne dois pas être seul dans cette situation, j'aimerai donc recommencer ton schéma en l'adaptant à une alimentation régulière, ainsi qu'en supprimant le convertisseur dc-dc mais aussi apporter des annotations plus précises comme par exemple les référénces des contacts utilisé pour la fermeture et l'ouverture, le commutateur, le buzzer, le transitor Q1 car il est difficile de le déterminer lorsque l'on a encore peu d'expérience dans le domaine.

Est ce que je peux utiliser un L298N pour remplacer ta carte DAGU et utiliser un PCB vierge à côté sans devoir modifier ta programmation?

Il y a un symbole ou 2 dont je ne suis également pas trop certain de la signification sur ton schéma: - sous les 3 leds, est ce le symbole d'un buzzer? - à droite des interrupteurs, symbole grande barre verticale, petite barre, grande barre, petite barre, est ce un double accumulateur?

Merci d'avance pour le temps que tu consacreras à me répondre.

Gilles

Bonjour,
Complètement débutant, je suis très intéressé par votre solution.
Pouvez-vous me dire ou me fournir en matériel et si je peux utiliser votre système ?
Je suis preneur de tout plan, dessins, conseils, etc…
Bravo !

Merci.

Bonjour De Retour.. Désolé de ne pas avoir répondu à toutes les questions mais les alertes mail n'ont pas fonctionné..

Pour le matériel, on peut l'acheter sur différents sites Conrad..Amazon, Lextronic etc.. Il est possible de simplifier le schéma en supprimant le convertisseur dc-dc, les leds etc.. Il faut garder quelques condensateurs et résistances pour un fonctionnement des contacts. Sinon une carte Arduino avec une carte de pilotage moteur DC et un moteur DC plus 2 contacts et ça fonctionne.. Il existe des kits de découverte Arduino assez complets mais pas donnés.. Attention, mon projet est complexe car je ne pouvais pas me fier au niveau de luminosité pour fermer la porte sinon il y a des schémas bien plus simples..

Pour la partie mécanique, une simple porte guillotine entre 2 rails et le tour est joué.. Bon courage.

Voici la dernière version de code compatible avec le compilateur Arduino 1.6.5.
Il y a peut être une petite adaptation à réaliser avec la bibliothèque de l’horloge (la mienne est ancienne).

Poulailler_2.ino (36.7 KB)

Ce message pour remercier Etibou et Achess qui m’ont fortement inspiré dans la réalisation de ma version.

Mon montage étant terminé, je poste ici quelques infos pour ceux qui veulent s’en inspirée.
Ma version est mécaniquement différente, mon poulailler du commerce avait une porte coulissante latéralement, je suis donc partie sur une solution à crémaillère.

L’ensemble des composants électroniques ont étés récupérés, le moteur aussi (automobile).
Le moteur 12V DC + motoréducteur a beaucoup conditionné le choix des composants.
Le moteur fonctionne encore sous 4V a vitesse réduite et couple suffisant pour ma porte, il consomme 1.1A (3A en blocage), heureusement il ne fonctionne que 30secondes par jour.
Pour fournir un tel courant, j’ai opté pour une batterie plomb 6V 5Ah et panneau solaire car je n’ai pas d’énergie à proximité.
Mon poulailler est très ombragé (sous un cerisier) et beaucoup d’arbre dans l’environnement.
Mon choix initial d’un panneau solaire 6V s’est relevé non adapté car un tel panneau fourni le maximum de puissance vers sa tension nominale 6V et pour une batterie plomb, il faut environ 7V + seuil diode anti retour. Mon choix final est un panneau 9V 3W clampé à 7.5V par zéner 5W et une diode schottky en anti retour (dans le cas d’un poulailler fortement ensoleillé, doubler ou changer de type de diode pour éviter de dépasser 7.05V)

La consommation de ma carte Arduino nano est d’environ 10-15mA avec système de mise en veille.
Ayant peur de manquer d’énergie en hiver, j’ai imaginé une solution entièrement analogique et très basique. Le montage basé autour d’un ampli op ne consomme que 0.5mA mais n’a pas la souplesse d’un logiciel. Il m’a obligé à réaliser mon pont en H par solution à mosfet.
L’avenir nous diras si la solution Arduino passe l’hiver ?

La sélection entre les 2 versions s’effectue par 4 switchs

J’ai aussi prévu une option hard pour alimenter un moteur capable de nourrir les poules. Un système basé sur une vis sans fin que je réaliserai dans un futur.

Un bouton poussoir (a la demande de ma femme) pour fermer (ou ouvrir) le poulailler de façon anticipée et être ainsi sur de la fermeture (cela la rassure).
Et aussi (modif de ce matin) pouvoir ouvrir exceptionnellement si une poule n’est pas rentré dans les délais comme cela est arrivé hier soir mais j’avais mis une heure maximum de fermeture trop tôt.

Coté cout de réalisation (environ 30€)
Batterie 12.5€ (port inclus)
Panneau solaire 5€
Carte Arduino Nano 2.5€
Module RTC 1.5€
Quelques composants (Zéner, Mos)

Place au photos, codes, mesures …

Le mos canal P IRF9520 a été remplacé par un IRF5305 (bien meilleur RdsOn)

DS1307.h (1.39 KB)

Fonction.h (2 KB)

Mesure Panneau solaire.pdf (29.3 KB)

Panneau solaire.JPG

Poulailler_Chris_V2.ino (19.6 KB)

Schéma.pdf (296 KB)

Pas mal du tout.. Reste à voir si le système sera autonome toute l'année. Pour ma part, j'ai du tirer une petite ligne 12V pour recharger la batterie l'hiver car avec un temps couvert sur plusieurs jour et ma batterie était vide et le système en alerte. Ne pas descendre en dessous d'une tension de 10V pour une batterie de 12V sinon il y a quelques fois des soucis pour reprendre la charge.. Attention à ISF avec toutes ces poules de luxe !!

Bonsoir,

Très intéressé par votre montage pour le realizer aussi à la maison

alors j'ai voulu simplement recopier et utiliser la version poulallier2.ino mais lorsque je veux vérifier la compilations j'ai plusieurs messages d'erreur du type :

Poulailler_2:942: error: 'setTime' was not declared in this scope

setTime(now.hour(),now.minute(),now.second(),now.day(),now.month(),now.year());

Poulailler_2:946: error: 'now' was not declared in this scope

if (prevtime != now())

Poulailler_2:1026: error: 'hour' was not declared in this scope

Temps = hour()+minute()/60.0;

Poulailler_2:1026: error: 'minute' was not declared in this scope

Temps = hour()+minute()/60.0;

exit status 1 'hour' was not declared in this scope

n'étant pas très féru de la programmation je rame un peu

Merci de vos conseils et aide

Hello,

Je pense qu'il manque la librairie RTC dans le module de compilation.. A rechercher et télecharger sur le net. Bon courage..

Bonsoir,

j'ai pourtant plusieurs librairies RTC dans le répertoire (RTClib-master et ARduino-DS3231-master).

et tjrs cette erreur

Bonjour,

Je n'ai pas d'idée sur le problème, il faudrait que je réinstalle le dernier compilateur sur un autre PC pour tester. Si je trouve la solution, je posterai..

Bonjour Etibou, comme plusieurs autre je débute en Arduino et bute sur des problèmes de bibliothèques. Serait-il possible que vous postiez toute les vôtres et nous donniez la version de votre compilateur ?

Bonjour,

Actuellement j'ai un vieux compilateur en 1.6.5. Quand je migre mon programme sur la version 1.8.3, plus rien se compile même avec les anciennes bibliothèques.

Il faudrait reprendre le programme et le corriger pour le rendre compatible avec la nouvelle version de compilateur.. Je regarderai si j'ai un peu de temps.. Bon courage.

Pas mal. Bon boulot. Ceci dit, pourquoi toujours utiliser des fins de course et donc utiliser inutilement des IO et de la câblerie redonbdante au lieu d'une eeprom i2c, procéder à un apprentissage ouverture/fermeture et donc mémorisation des temps d'ouverture fermeture dans cette eeprom? En plus de la détection d'intensité du moteur en protection avec réglage du seuil de détection. Juste une idée, comme ça. Ainsi ce montage pourra être utilisé pour d'autres champs d'application du domaine d'ouverture/fermeture.