Arduino Forum

International => Français => Réalisations et Projets Finis => Topic started by: etibou on Sep 07, 2014, 06:28 pm

Title: Porte automatique pour poulailler
Post by: etibou on Sep 07, 2014, 06:28 pm
Bonjour à tous,
Voici mon projet de porte automatique pour poulailler.
Les données de base :
- Mettre en place une porte automatique pour un poulailler dont les occupants se font dévorer à la tombée de la nuit par un animal (fouine, marte ou autre..)
- Le système devra être économe en énergie car fonctionnement sur batterie de voiture ou moto (pas de 220 V dispo à portée)
- Le coût de l'ensemble ne doit pas supérieur à un système fini du commerce (100 à 150 €)

J'ai utilisé une carte arduino uno + horloge Tiny RTC + carte contrôleur 2 moteur DAGU
L'intérêt de la carte DAGU est qu'elle est très peu chère et qu'elle dispose d'une zone de prototypage.
Ayant fait une erreur dans l'achat du moto-réducteur, j'ai du utiliser un petit convertisseur dc-dc.

La porte à piloter est une porte de type guillotine avec un contact de fermeture et d'ouverture.
La nuit tombe à différents horaires suivant la saison, j'ai donc utilisé un tableau mensuel pour les heures d'ouverture et fermeture. Pour compenser la variation entre le début et la fin de mois, j'ai ajouté une cellule photosensible qui permet de fermer la porte 45 minutes avant l'heure prévu si la luminosité est faible.

Autres fonctionnalités ajoutées :
- Fonctionnement par interruption (sleep) pour économiser du courant ou fonctionnement normal
- Bouton marche/arrêt
- Détection d'anomalie (timeout) pour ne pas tout casser si il y a un problème
- Gestion de l'alimentation de la carte contrôleur par relais + transistor (tjrs pour économiser)
- Programmation des valeurs (Date,timeout, etc) via RS.
- Mesure de la tension de la Batterie et alerte par Biper si < seuil mini de charge
- Quelques LED pour suivre le fonctionnement du système
- Des fonctions de débugage par RS.

En pièce jointe, le code et le schéma.
Lexique photos :
Montage Arduino
1) Arduino
2) Carte contrôleur DAGU
3) Relais puissance alimentation dc-dc
4) Tiny RTC
5) Moto-réducteur
Vue porte ouverte
1) Contre-poids (réduction énergie dissipée moteur)
2) Contact Porte ouverte
3) Poulies
4) Contact Porte fermée

Si vous voulez utiliser ce système pour votre poulailler que vous disposez d'une source d'alimentation régulière, vous pouvez simplifier le schéma en supprimant.
1) Le relais
2) L'alimentation dc-dc si votre moteur utilise la même alim que l'arduino
3) Le fonctionnement en interruption
Title: Re: Porte automatique pour poulailler
Post by: icare on Sep 07, 2014, 09:06 pm
Bonjour,
Il y avait aussi la solution de construire un mirador et d'attendre les intrus. :)
Plaisanterie à part, voila une belle petite réalisation.
Bravo
Title: Re: Porte automatique pour poulailler
Post by: etibou on Sep 09, 2014, 08:30 pm
Merci,
Réalisation très utile car les poules ne se font plus manger (sauf par nous ). :)

Title: Re: Porte automatique pour poulailler
Post by: etibou on Oct 05, 2014, 02:18 pm
Bonjour à tous,

Voici une nouvelle version du programme qui gère l'ouverture et la fermeture de la porte en fonction d'un calcul du lever et du coucher du soleil qui tient compte de la position géographique (longitude+latitude) du poulailler.
Référence astronomiques dans le programme.
Cette nouvelle version gère également le changement d'heure automatique été/hiver. (calcul avec utilisation de l'algo de Mike Keith)
+ qq petites corrections.
A suivre..

Que va faire la prochaine version du programme !!
Title: Re: Porte automatique pour poulailler
Post by: dxfantome on Jan 06, 2015, 09:12 pm
question ...
pourquoi ne pas utiliser une LDR (capteur de lumiere )(cout quelque dizaine de centime) pour prendre en compte le levé et couché du soleil ?
Title: Re: Porte automatique pour poulailler
Post by: vohu on Feb 11, 2015, 08:39 am
Sans doute parce qu'en hivers il fait souvent sombre, et la porte pourrait ne pas s'ouvrir ou passer son temps à ouvrir et se fermer.

Je pense que le mix des 2 est une bonne solution (comme il l'a fait d'ailleurs)
Title: Re: Porte automatique pour poulailler
Post by: wipsy7 on Sep 28, 2015, 09:48 pm
Bonjour,
Merci à toi pour ce poste.
Comment as tu réalisé l'accouplement entre le moteur et la poulie. Moi je ne sais pas quoi mettre sur le bout de mon rotor.

Merci
Title: Re: Porte automatique pour poulailler
Post by: Fameuhly on Jan 22, 2016, 06:12 pm
Merci pour le croquis,
je débute avec arduino et les montages... Serait-ce possible de voir la vue "platine d'essai" sur Fritzing ?
En tout cas, ça motive à s'y mettre !
Title: Re: Porte automatique pour poulailler
Post by: achess on Jan 22, 2016, 11:15 pm
Bonsoir,
Etibou n'est pas venu ici depuis octobre 2014 et je trouve son montage bien compliqué. J'ai fait un circuit qui ne prends en compte que la lumière et  fonctionne très bien depuis mai 2015.
J'ai utilisé des transistors de récupération qu'on peut simplifier avec un l293d http://moncastel.free.fr/forum/trappePoule/
Title: Re: Porte automatique pour poulailler
Post by: juljez on Jan 31, 2016, 08:12 pm
Bonsoir,
Etibou n'est pas venu ici depuis octobre 2014 et je trouve son montage bien compliqué. J'ai fait un circuit qui ne prends en compte que la lumière et  fonctionne très bien depuis mai 2015.
J'ai utilisé des transistors de récupération qu'on peut simplifier avec un l293d http://moncastel.free.fr/forum/trappePoule/
Bonjour, je suis très intéressé par votre montage, pourriez vous m'aider a l'utiliser avec un l293d ...?
Je suis plus que débutant, ce sont mes premiers pas.
m'aiguilller sur les branchements?
Merci par avance.
Cordialement,
Juljez
Title: Re: Porte automatique pour poulailler
Post by: achess on Jan 31, 2016, 08:32 pm
Bonsoir,
Le L293D remplace à lui seul les 4 transistors et les diodes http://wiki.mchobby.be/index.php?title=Hack-micropython-L293D
Restera plus qu'à mettre une résistance de 5 à 10 ohm en série pour protéger le circuit et le moteur lors des blocages en fin de course.


Title: Re: Porte automatique pour poulailler
Post by: etibou on Feb 20, 2016, 07:49 am
Bonjour à tous,
Me revoila, désolé pour l'absence mais les alertes mails ne fonctionnaient pas.
J'étais allé bricoler un peu le raspberry mais je préfère l'arduino.
Si vous avez des questions encore d'actualité, j'y répondrai.
Comme a dit achess, il est possible de simplifier le schéma.
Si vous avez une alimentation constante, la gestion par interruption n'est pas nécessaire(économie de courant)
Si votre capteur de lumière est bien exposé, le calcul des heures de fermeture et d'ouverture n'est pas utile mais pensez à mettre un timer pour que vos poules ne couchent pas dehors en cas de couverture nuageuse intense le soir..
Je poste une nouvelle version qui intègre une phase d'apprentissage pour mémoriser le temps de fermeture afin d'éviter la casse si les capteurs de fin de course ne fonctionnement pas..
J'ai noté que la led de nuit est utile elle dérange les prédateurs..
A+

Title: Re: Porte automatique pour poulailler
Post by: achess on Feb 20, 2016, 04:03 pm
Bonjour,
Si votre capteur de lumière est bien exposé, le calcul des heures de fermeture et d'ouverture n'est pas utile mais pensez à mettre un timer pour que vos poules ne couchent pas dehors en cas de couverture nuageuse intense le soir..
Je n'ai jamais eu ce problème, peut-être parce que la cellule est à l'extérieur et j'ai mis une résistance série avec la LDR de 150 kohm permettant de monter le seuil nuit plus haut qu'avec 10k (la LDR fait plus d'un Mohm à ce moment).

Quand la trappe se ferme, les poules sont rentrées depuis minimum 1/2 heure... et je ne les ai pas dressées pour ça ;).
Temps couvert ou pas, je n'ai jamais laissé de poule dehors depuis 8 mois. J'ai juste remonté un peu le seuil jour pour que l'hiver, la trappe s'ouvre pas trop tard le matin.
Title: Re: Porte automatique pour poulailler
Post by: etibou on Feb 21, 2016, 11:50 am
Bonjour,
Super si ça fonctionne comme çà..
Mon poulailler étant très ombragé, je n'ai pas pu régler correctement le seuil de nuit avec ce type schéma.
Trop haut, la porte se fermait avant que les poules soit rentrées, trop bas la porte se fermait trop tard le renard était déjà passé ;(
Ce dernier passe juste après la tombé de la nuit et je ne l'ai pas dressé non plus..
Title: Re: Porte automatique pour poulailler
Post by: achess on Feb 21, 2016, 08:02 pm
Ombragé n'est pas un problème du moment que la cellule soit à l'extérieur.
Le seuil trop sensible doit être du à la résistance talon de trop faible valeur.

Mon seuil nuit n'est pas réglé sur nuit noire, mais juste après le crépuscule, sinon les nuits de pleine lune, la trappe ne se fermerait pas.

L'enclos est clôturé, ce n'est pas le renard que je crains le plus. et puis je ne pense pas que ma trappe se ferme plus tard que la tienne.

J'ai utilisé la led du circuit pour régler les seuils
Code: [Select]
void loop() {
  LDR = analogRead(pinldr);
if((LDR>jour) && (LDR<nuit))digitalWrite(led, 1);
else digitalWrite(led, 0);
}// fin de loop()

Dans une pièce sans fenêtre en ouvrant la porte progressivement.

Je suppose une erreur sur ton schéma, la batterie 9V reliée sur le 5v ?

La résistance  de tirage de la LDR tire au moins et moi c'est l'inverse ?
Title: Re: Porte automatique pour poulailler
Post by: etibou on Feb 24, 2016, 01:16 pm
Bonjour,

Vu l'ombrage,ma courbe de lumière est asymptotique et la détection devait se réaliser sur la partie quasiment linéaire. De plus, en cas de forte couverture nuageuse ou non j'avais un gros décalage en ordonné (y).
Comme tout fonctionne correctement depuis que je calcule le coucher du soleil pour déterminer le crépuscule, j'ai laissé la cellule pour ajuster si nécessaire.
Je modifierai le montage quand il sera H.S.
A+ sur un autre montage..
Title: Re: Porte automatique pour poulailler
Post by: benoitchampougny on Apr 24, 2016, 10:02 am
salut a tous,

Je suis a la recherche de développeur pour un projet opensource similaire, Nous somme déjà 3 sur ce projet.
Ce projet consiste a rendre accessible aux plus novices les fonctionnalités du rapberry pi et arduino combinés dans le but de gérer des systêmes domotiques annexes tel qu'une ruche, un jardin, un aquarium, une cave a vin, une champignonnière, un terrarium, une serre, enfin presque tout enfaite.

Une interface graphique seras accessible depuis partout. Un systême de scénarios configurable permettra la régulation ainsi que l'alerte mail et sms du systême.

Le But étant de pouvoir partager depuis un site communautaire des données créer par la communauté dans un esprit de DRY (don't repeat yourself), pour éviter que chacun écrive sont petit morceau de code dans sont coin alors qu'il pourrais le rendre accessible a toute une communauté. Quel gains de temps pour toute une communauté!!!.

n'hésitez pas à nous rejoindre, on ne mort pas lol!!! les projets open sources ont besoin de vous!!

https://ardui-farm.sonetin.com/
Title: Re: Porte automatique pour poulailler
Post by: Acetronics on Oct 28, 2016, 02:06 pm
Bonjour Etibou,

je savoure ce montage, et j'ai bien envie de copier ( lamentablement ? ).

il me manque juste une petite info pour boucler la réalisation :

La carte auxilliaire;

je n'ai pas réussi à la retrouver ( ou plutôt son schéma ) sur le ouèbe, donc, j'en suis à supposer qu'elle supporte juste deux transistors ( Mosfets ? ) de puissance et 2 relais inverseurs avec leurs transistors de commande.
la moitié seulement étant utilisé ici.

c'est en tout cas ce que semble suggérer ton sketch...

Merci de ta réponse
Alain
Title: Re: Porte automatique pour poulailler
Post by: etibou on Oct 28, 2016, 03:01 pm
Bonjour,

Un système est toujours améliorable, si j'aurai a le refaire, je le ferai peut être plus simple.
Il fonctionne toujours..
Voici le schéma de la carte dagu (pièce jointe).
Elle est disponible chez selectronique :http://www.selectronic.fr/dagu-carte-controleur-pour-2-moteurs-dc-2a.html (http://www.selectronic.fr/dagu-carte-controleur-pour-2-moteurs-dc-2a.html)

Bon courage.
Etienne
Title: Re: Porte automatique pour poulailler
Post by: Acetronics on Nov 24, 2016, 11:20 am
Merci Etienne,

aucune surprise dans le schéma... ( tant mieux ! )

par contre, je coince coté compilation ... :

Quote
if (RTC_OK)
  {
    DateTime nowtmp = RTC.now();
    return(nowtmp.get());
  }
  else
  {
    return(millis()/1000);
  }
je récupère ceci ...

Arduino : 1.6.13 (Windows 10), Carte : "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

C:\Users\Aurore\Documents\Poulailler_2\Poulailler_2.ino: In function 'long unsigned int LitTemps()':

Poulailler_2:335: error: 'class DateTime' has no member named 'get'

     return(nowtmp.get());

inutile de préciser que le langage arduino n'est pas mon fort ( d'hab, c'est du µChip ... )

Alain




Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 26, 2016, 07:46 am
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+
Title: Re: Porte automatique pour poulailler
Post by: Acetronics on Nov 26, 2016, 11:12 am
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); " ...
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 27, 2016, 06:41 pm
Bonjour,

Cela serait dommage de tout réécrire, il faut essayer de modifier le "get" en "secondstime".
Et voir si ça compile..
A+
Title: Re: Porte automatique pour poulailler
Post by: Acetronics on Nov 27, 2016, 08:36 pm
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

Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 28, 2016, 08:38 am
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
Title: Re: Porte automatique pour poulailler
Post by: Acetronics on Nov 28, 2016, 09:55 am
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
Title: Re: Porte automatique pour poulailler
Post by: achess on Nov 28, 2016, 10:20 am
Bonjour,
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.
Title: Re: Porte automatique pour poulailler
Post by: Wudrif on Mar 22, 2017, 05:03 pm
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
Title: Re: Porte automatique pour poulailler
Post by: Placo on Apr 25, 2017, 07:09 pm
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.
Title: Re: Porte automatique pour poulailler
Post by: etibou on Apr 25, 2017, 08:14 pm
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.


Title: Re: Porte automatique pour poulailler
Post by: etibou on Apr 25, 2017, 08:22 pm
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).
Title: Re: Porte automatique pour poulailler
Post by: chris35 on May 21, 2017, 07:58 pm
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)
Title: Re: Porte automatique pour poulailler
Post by: etibou on May 23, 2017, 01:57 pm
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 !!
Title: Re: Porte automatique pour poulailler
Post by: electronn2002 on Jun 13, 2017, 07:59 pm
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
Title: Re: Porte automatique pour poulailler
Post by: etibou on Jun 16, 2017, 05:50 am
Hello,

Je pense qu'il manque la librairie RTC dans le module de compilation..
A rechercher et télecharger sur le net.
Bon courage..
Title: Re: Porte automatique pour poulailler
Post by: electronn2002 on Jun 18, 2017, 10:06 pm
Bonsoir,

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

et tjrs cette erreur
Title: Re: Porte automatique pour poulailler
Post by: etibou on Jun 29, 2017, 07:59 am
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..
Title: Re: Porte automatique pour poulailler
Post by: gogolch on Jul 09, 2017, 09:54 am
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 ?
Title: Re: Porte automatique pour poulailler
Post by: etibou on Jul 30, 2017, 07:54 am
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.

Title: Re: Porte automatique pour poulailler
Post by: sagittarius21 on Oct 14, 2017, 07:34 pm
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.
Title: Re: Porte automatique pour poulailler
Post by: _pepe_ on Oct 17, 2017, 08:32 am
Supprimé
Title: Re: Porte automatique pour poulailler
Post by: achess on Oct 17, 2017, 09:05 am
Bonjour,
Je ne suis pas d'accord : c'est parce que j'avais un problème de fiabilité de contacts fin de course que j'ai opté pour l'arrêt sur contrôle du courant moteur.

J'ai d'abord inséré une résistance en série avec le moteur pour ne pas guillotiner une poule coincée et protéger le moteur en cas de défaut de fin de course. Réglé pour obtenir juste la puissance nécessaire à l'ouverture de la porte.

J'avais dans un premier temps fait une détection sur un seuil de courant correspondant au courant de blocage, mais ce n'était pas non plus fiable à cause de la grande variation de la résistance de contact des balais sur le collecteur moteur.

La solution a été de prendre en compte le fait que le courant ne varie plus quand le moteur est bloqué avec cet extrait de programme :
Code: [Select]
   
unsigned long debut_blocage; // début du blocage
int delai_blocage = 100;
int mem_courant; // courant moteur au début du blocage
....

 case 1 : // surveillance courant moteur
      courant_moteur = analogRead(pinmoteur);
      if (courant_moteur != mem_courant) { // normal
        // sauve le courant moteur et debute le comptage
        mem_courant = courant_moteur;
        debut_blocage = millis();
      }
      // arret moteur si courant moteur invariable depuis delai_blocage
      if (courant_moteur == mem_courant) { // bloqué
        if ((millis() - debut_blocage) > delai_blocage) {
          // bloqué et délai dépassé
          stop();
        }
      }; break;

Ça économise les contacts, leurs taquets de fin course et leur câblage.
Il aurait été possible facilement de faire comme une logique de réouverture de porte comme dans les ascenseurs.
Title: Re: Porte automatique pour poulailler
Post by: icare on Oct 17, 2017, 09:14 am
Bonjour,
Ça économise les contacts, leurs taquets de fin course et leur câblage.
Il aurait été possible facilement de faire comme une logique de réouverture de porte comme dans les ascenseurs.
Toutes les solutions sont bonnes mais quid de la sécurité ?
Title: Re: Porte automatique pour poulailler
Post by: _pepe_ on Oct 17, 2017, 11:04 am
Supprimé
Title: Re: Porte automatique pour poulailler
Post by: achess on Oct 17, 2017, 12:35 pm
Bonjour,
Vous êtes dans un raisonnement de process industriel, moi dans l'efficacité et la simplicité de fabrication DIY et puis il s'agit de poules, pas de VIP ;)

Pour la détection de blocage, une simple résistance suffit. Et puis le risque de blocage peut se gérer facilement, sachant que la durée normale d'ouverture et de fermeture sont connues. Ce n'est jamais arrivé sur mon bricolage en 2 ans et demi de fonctionnement, sinon j'aurais pu ajouter un signal d'alarme  et des détecteurs optiques ou à effet hall.
Title: Re: Porte automatique pour poulailler
Post by: _pepe_ on Oct 17, 2017, 02:11 pm
Supprimé
Title: Re: Porte automatique pour poulailler
Post by: achess on Oct 18, 2017, 08:34 am
Si on gère avec un servo-moteur, la question des fins de course est réglée et même plus besoin d'électronique de puissance ;)
Title: Re: Porte automatique pour poulailler
Post by: _pepe_ on Oct 18, 2017, 10:32 am
Supprimé
Title: Re: Porte automatique pour poulailler
Post by: achess on Oct 18, 2017, 05:15 pm
Oui on peut récupérer l'info de la position sur le potentiomètre du servo.
Et pour la coupure d'alimentation en fin de course, j'avais fait un test avec un mosfet N et comme le servo se trouve en roue-libre, une astuce pour que la porte ne puisse pas s'ouvrir.
Un contrepoids parce que ce servo était un 3Kg/cm.

test (https://www.youtube.com/watch?v=1Y_6Dzo9-Po)
Title: Re: Porte automatique pour poulailler
Post by: Gismoleraton on Nov 12, 2017, 02:04 pm
Bonjour Etibou,


Je pense qu'il y avait plus simple à faire et moins cher ....

Déjà ton système de guidage de ta porte en bois, n'oublie pas qu'en hiver avec le froit et l'humidity, le bois va gonfler et donc un risque ed voir ta porte coincé dans le raille de guidage  .... passe plutot sur un profilé '' U '' en alu pour limiter le coincement .

Pour ta motorisation , un simple moteur de ballet d'essuis glace trouver à la casse voiture t'évite de jouer avec un contre poids et ce type de moteur à du couple  !!!! ainsi tu usines un petit tambour dans le quel viendra une simple sangle qu'on trouve à 2€ dans une surface de bricolage. Tu places ce moteur au dessus et milieu de la porte . Un éventuelle poids au bas de la porte pour bien faire descendre celle-ci si elle devait légèrement coincé ( gonflement à cause de l'eau, humidité ).

Pour la partie électrique
- 2 relais avec deux swuitches fin de course haut + bas
- 1 interrupteur pour ouverture / fermeture / stop intermédiaire coté poupoule
- 1 arduino
- 1 RTC DS1302 ( calandrier avec timer inclus ) Arduino à un kit pour cela .
- 1 LDR
- 1 mini kit HF + boite + 1interrupteur + lcd Arduino ( voir sur Banggood , aliexpress , ... ) coté maison


Tu communiques ainsi à distance et tu fais ce que tu veux depuis chez toi

Energie : il existe des mini batteries avec système rechargeable à la lumière du jour pour quelques euros ... histoire d'avoir toujours du courant coté poupoule ....  :)

Ceci est mon point de vue bien sur . Estimation du projet +/- 50€

 
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Nov 19, 2017, 05:01 pm
bonjour, je débute en Arduino et je voudrais quelques avis et conseille.
j ai un poulailler et cela fait 2 fois qu' une martre me tu 1 poule, c est pour cela que je veut mettre une porte automatique qui s 'ouvre le jour et ce ferme la nuit.
je suis bricoleur mais alors pas du tous informaticien.
donc j ai réalisé ma porte ( guillotine ) avec capteur fin de course et un moteur de vieille perceuse 12 v ( contrôle avec pince ampèremétrique 2A).
maintenant je m 'attelle a la commande de la porte .après recherche je vais commander
Arduino uno
shield moteur r3 pour le moteur alimentation extérieur 12 v
ldr
jusque la ok mais ou ça ce complique c est la programmation et le branchement de la ldr.
après recherche la ldr doit être brancher entre 5v et A0
1er question :
puis je brancher la ldr sur le shield entre 5v et A0.
pour la programmation j ' ai pris quelques livre a la médiathèque, mais pas facile .
puis je avoir votre avis sur ce que je viens de dire .
merci d avance pour vos conseilles




Title: Re: Porte automatique pour poulailler
Post by: tahitibob35 on Nov 19, 2017, 08:09 pm
Un commencement :
https://wiki.mchobby.be/index.php?title=Photo-r%C3%A9sistance (https://wiki.mchobby.be/index.php?title=Photo-r%C3%A9sistance)
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Nov 19, 2017, 08:44 pm
merci pour la réponse , je vais étudier ça.
pour la ldr ce qui m inquiète c 'est de la brancher sur le shield (( lui alimenté en 12v ) et le uno branché en 6 volt) .j ai bien compris que la valeur de la ldr etait compris entre 0 et 1023 ( valeur analogique).
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 20, 2017, 11:56 am
Bonjour,

Il va te rester un problème à traiter.
Quel algorithme va tu choisir pour déclencher la fermeture et l'ouverture de ta porte ?
Les rôdeurs attaquent souvent au crépuscule.
Porte fermée trop tard = poules mangées dans le poulailler.
Porte fermée trop tôt = Poules non rentrées et mangées..
Certains ont utiliser une cellule photorésistance pour détecter la luminosité à condition que ton poulailler ne soit pas installer dans un endroit trop sombre.
Pour ma part, j'ai du calculer l'heure du coucher du soleil en fonction de date..Un peu complexe..
Bon courage..
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Nov 20, 2017, 06:02 pm
bonsoir pour l ouverture et la fermeture je suis parti sur une ldr ( poulailler dégager)et il faudra que je mette un retard a l ouverture et a la fermeture.les poules sont régulières et ne trainent pas dehors.
mon gros souci c 'est la programmation , je vais commencer a m 'y atteler, cela n 'as pas l 'air d' être simple.
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 21, 2017, 10:19 am
Bonjour,

Pour la programmation, je peux te donner un coup main..
A toi de voir..
Title: Re: Porte automatique pour poulailler
Post by: achess on Nov 21, 2017, 03:01 pm
bonjour,
La mesure de lumière peut aussi être une surveillance de la tension aux bornes d'un panneau solaire.

Un retard à l'ouverture peut être utile si il y a des risque de déclenchement par des phares de voiture ou lampe de poche.
On peut décider que le seuil indiquant le jour  soit maintenu 2 minutes avant d'ouvrir et ensuite, attendre le seuil correspondant à la nuit pour refermer et éviter les déclenchements intempestifs.
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 21, 2017, 04:07 pm
Un moyenne glissante peut aussi faire l'affaire pour être certain que le jour est levé.. :)
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Nov 21, 2017, 04:19 pm
bonjour
merci pour vos réponses.
ça commence bien :)  , je voulais commander mon uno avec le shield r3 et la ldr ,
mais je n arrive pas a trouver un site ou le shield est disponible
pour la programmation , lorsque j aurais le matériel , je vais essayer tous seul, mais c 'est sympa de me proposer de l aide ( merci), si besoin je vous demanderais et j 'en aurais certainement besoin, car très bricoleur mais l'automatisme cela fait longtemps que j en ait pas fait, je me suis arrêté au Tsx17 de telemecanique a l' école ( au moins 20 ans )
pour la programmation , en effet ,je voudrais retarder la fermeture lorsque la ldr donnera l 'ordre de fermer.
pour l 'ouverture je n en ais pas besoin car le chien sera dehors avant que les poules ne sortent.
bon je repart a la recherche de ce shield
bonne soirée
amicalement
Title: Re: Porte automatique pour poulailler
Post by: allanco2 on Nov 21, 2017, 05:26 pm
Bonjour a tous ,

Moi aussi depuis 10j je bosse sur une porte automatique, voici la une courte présentation du projet :

Vidéo Youtube (https://www.youtube.com/watch?v=guLCFIgEFcg)


Je vient de m'inscrire sur le fofo , pour avoir des infos sur le moteur stepper voir comment cela ce programme . J'ai aussi l'idée de rajouter une temporisation lors du seul de luminosité atteint car ma première idée de rajouter une autre photorésistance est energivore .

L'idée supplémentaire de mettre un mode veille / hibernation est interessant ainsi qu'une alerte de manque de tension/courant .

Dans l'attente de vous relire



Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 21, 2017, 06:50 pm
Hello,

Ton lien youtube n'est pas valide . Pb de droit de lecture ?
Pour la tempo, il y a plusieurs solutions, tout dépend du temps à attendre en ms ou en seconde..
Il y a plein d'exemples dispos... Recherche tempo arduino...
A+
Title: Re: Porte automatique pour poulailler
Post by: allanco2 on Nov 22, 2017, 12:22 pm
Ok ok merci , j'attend de recevoir le moteur pour me remettre dedans !

Lien Youtube fctionnel :)
Title: Re: Porte automatique pour poulailler
Post by: allanco2 on Nov 29, 2017, 01:46 pm
Bonjour ,

Maintenant que j'ai le moteur j'ai un problème de code :

En effet le moteur tourne de deux tours sans arrêts dans sa condition ouvert ou fermé :

Code: [Select]


//*Projet SavetheChickens

// Integre la librairie moteur pas pas
#include <Stepper.h>

// Assignation des entrées / sorties
int pinLEDRED= 13; //rouge = fermeture
int pinLEDGRE= 12; //verte = ouverture                   
int pinCapteur=0;  // Photoresistance

const int stepsPerRevolution = 2048; //2048 pour la 28BYJ-48 = 1 tour
int Nbre_tour ;
// initialiser la bibliotheque stepper sur les broches D8 a D11:
Stepper myStepper(stepsPerRevolution, 8,10,9,11); //Attribution des broches

// Déclaration des variables

int ValeurMesure = 0;   //phtoresistance lus                 
int ValeurSeuil=500;   //photoresitance seuil

void setup(){
     pinMode(pinLEDRED,OUTPUT);
     pinMode(pinLEDGRE,OUTPUT);
       // reglage de la vitesse (28BYJ-48):
  myStepper.setSpeed(14); // de 4 a 14 vitesse de rotation       
}

void loop(){
     ValeurMesure = analogRead(pinCapteur); // Mesure de la tension
         
 if
      (ValeurMesure<ValeurSeuil){            // Si la mesure est inférieure au seuil fermeture de la porte
          digitalWrite(pinLEDRED,HIGH);
          digitalWrite(pinLEDGRE,LOW);
          Nbre_tour = 2; //Faire 2 tours dans un sens:
          myStepper.step(stepsPerRevolution*Nbre_tour);
          delay(1000);
          }
     else                         // Sinon  ouverture de la porte
          {digitalWrite(pinLEDRED,LOW);
          digitalWrite(pinLEDGRE,HIGH);
          Nbre_tour = 2; //Faire 2 tours dans l autre sens:
          myStepper.step(-stepsPerRevolution*Nbre_tour);
          delay(1000);
          }
}



Avez vous une idée ?
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 30, 2017, 08:15 am
Bonjour,

Il faut décomposer le problème pour savoir si le problème vient de la lecture de la tension ou de la commande moteur.
A+
Title: Re: Porte automatique pour poulailler
Post by: dfgh on Nov 30, 2017, 06:44 pm
hello
c'est ce que demande ton prg

dans la loop,
tu lis la ldr, tu demandes deux tours au moteur, tu fais une tempo de 1 seconde.
puis comme c'est une loop, tu recommences
tu lis la ldr, tu demandes deux tours au moteur, tu fais une tempo de 1 seconde.
puis comme c'est une loop, tu recommences
tu lis la ldr, tu demandes deux tours au moteur, tu fais une tempo de 1 seconde.
puis comme c'est une loop, tu recommences
tu lis la ldr, tu demandes deux tours au moteur, tu fais une tempo de 1 seconde.

etc....

donc,
en debut de ton prg, declare un boolean haut=true; (on suppose que ta porte est ouverte)

et dans ta condition if, rajoute un test sur le flag

: if ((ValeurMesure<ValeurSeuil)&&haut ==false){xxxxxxx;xxxxxx; haut = true}

en fin de la fonction " montée" de la porte, tu rajoutes une ligne: haut = true;
et dans la partie else, passe le flag à false   
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Dec 03, 2017, 12:50 pm
bonjour ,
je viens de commander le matériel,
carte uno arduino
Arduino Motor Shield 2 x 2 A
Module à photorésistance GT1107
j y reçois dans la semaine.
bon reste plus qu a apprendre la programmation  :(

donc je récapitule :
position initiale :porte ouverte , ldr =1 ,capteur haut actionné, moteur a l 'arrêt, frein moteur

mise en route: ldr=0 ( je verrai en fonction de la luminosité)
moteur marche : sens 1 ( descente de la porte)
capteur bas actionné
arrêt moteur
frein moteur

 si ldr=1 actionner plus de 5 minute
moteur marche: sens 2 (montée de la porte)
capteur haut actionné
arrêt moteur
frein moteur

je veut rajouter une mise en sommeil  de la carte pour eco d'énergie mais je sais pas ou la mettre?

branchement:
carte uno alimenté en 9v
moteur sur shield  avec alimentation 12 v indépendante

ldr  branchée sur A0

capteur haut sur A1
capteur bas sur A2

 voila j' en suis là . si vous voyez des erreurs ou des oublis
merci d 'avance
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Dec 08, 2017, 05:12 pm
bonsoir , je viens de recevoir le matériel, c est tout petit  :)
allez maintenant au boulot.
c 'est parti :
1 ère question
pour la librairie du shield arduino r3 moteur, je doit bien inclure:#include<stepper.h>
merci pour vos réponses.

Title: Re: Porte automatique pour poulailler
Post by: pralfi on Dec 10, 2017, 06:18 pm
bonsoir , j ai besoin d'un petit coup de main .
j ai réussi a faire fonctionner le moteur
j ai réussi a contrôler la ldr pour avoir les seuil jour et nuit
ensuite j ai essayé de faire fonctionner le moteur avec la ldr :
seuil jour : rotation moteur pendant 2 seconde
seuil nuit : rotation inverse moteur pendant de 2 seconde
mon souci , j' utilise le frein moteur( voir programme) , mais je voudrais l' arrêter ( c' est a dire moteur a l 'arrêt sans frein), mais je ne vois pas comment, j ai inséré break mais le frein moteur est toujours actif.
je met le programme afin de voir ou est l' erreur
merci d avance
Code: [Select]

const int rotationA = 12;
const int vitesseA = 3;
const int freinA= 9;


const int delayLength = 60;
int ldrPin = 3; // ldr sur pin 3
int ldrReading; // lecture ldr
int VALIDE_MOTEUR = 0; //variable pour determiner si le moteur doit tourner ou non


void setup() {
// donnée de depart
   Serial.begin(9600);
   pinMode(rotationA, OUTPUT);
   pinMode(freinA, OUTPUT);
   pinMode(vitesseA, OUTPUT);
  
  
}

void loop() {
  ldrReading = analogRead(ldrPin);
  Serial.print("Analog reading = ");
  Serial.print(ldrReading);
 
  if (ldrReading < 100 && VALIDE_MOTEUR == 0)
 
  {
    Serial.println(" - Nuit");
    for (int i=0;i<20;i++){
  digitalWrite(freinA, LOW);// arret du frein
  digitalWrite(rotationA, HIGH);//rotation moteur descente
  analogWrite(vitesseA, 255);//vitesse a fond
 
  delay(2000);
 
  digitalWrite(freinA,HIGH);//frein
  break;//arret
    
    }
  VALIDE_MOTEUR=1;
  }
  
 
    if (ldrReading > 600 && VALIDE_MOTEUR == 1)
  {
    Serial.println(" - jour");
   for (int i=0;i<20;i++){
  digitalWrite(freinA, LOW);  // arret frein
  digitalWrite(rotationA, LOW);   // rotation moteur montée
  analogWrite(vitesseA, 255);   // vitesse a fond
 
  delay(2000);
  
  digitalWrite (freinA,HIGH);//frein
  break;//arret
  
 

}
VALIDE_MOTEUR=0;
   }
   }
 

Title: Re: Porte automatique pour poulailler
Post by: dfgh on Dec 10, 2017, 07:01 pm
hello
int ldrPin = 3; // D3 entrée digitale

ldrReading = analogRead(ldrPin);
 
 
  if (ldrReading < 100 && VALIDE_MOTEUR == 0)

tu lis quoi sur ton moniteur avec les deux lignes suivantes ?


Serial.print("Analog reading = ");
  Serial.print(ldrReading);
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Dec 10, 2017, 08:51 pm
bonsoir ,  j utilise un shield moteur arduino r3 , j ai mis ma ldr sur le pin 3 car le 0 et le 1 sont pris par le shield
ensuite j utilise la lecture du pin 3 pour avoir la valeur ,et si il est inférieur a 100 cela valide la fonction moteur 0.
pour avoir la valeur qu il me fallait j ai branché la ldr seul et regardé les valeurs que cela me donnais sur le moniteur.je ne peut pas lire en fonction car je suis branché avec 12 volt externe
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Dec 13, 2017, 10:11 am
help,
bonjour ,
j 'ai besoin d 'un petit coup de main ,
j e m explique , j ' essaye de realiser une porte de poulailler( encore),je dispose d' un uno et un moteur shield r3 arduino.
j 'ai essayé de faire un programme ( étant débutant) pour faire tourner un moteur 12v avec ldr )
2 seconde montée lorsqu il fait jour
2 seconde descente lorsqu il fait nuit
mon souci :
je n arrive pas a arrêté le moteur a part avec le frein moteur, je voudrais qu il s arrête après avoir  utiliser le frein moteur .
voici le programme:
Code: [Select]

const int rotationA = 12;
const int vitesseA = 3;
const int freinA= 9;


const int delayLength = 60;
int ldrPin = 3; // ldr sur pin 3
int ldrReading; // lecture ldr
int VALIDE_MOTEUR = 0; //variable pour determiner si le moteur doit tourner ou non


void setup() {
// donnée de depart
   Serial.begin(9600);
   pinMode(rotationA, OUTPUT);
   pinMode(freinA, OUTPUT);
   pinMode(vitesseA, OUTPUT);
 
   
}

void loop() {
  ldrReading = analogRead(ldrPin);
  Serial.print("Analog reading = ");
  Serial.print(ldrReading);
 
  if (ldrReading < 100 && VALIDE_MOTEUR == 0)
 
  {
    Serial.println(" - Nuit");
    for (int i=0;i<20;i++){
  digitalWrite(freinA, LOW);// arret du frein
  digitalWrite(rotationA, HIGH);//rotation moteur descente
  analogWrite(vitesseA, 255);//vitesse a fond
 
  delay(2000);
 
  digitalWrite(freinA,HIGH);//frein
 
  break;//arret
   
    }
  VALIDE_MOTEUR=1;
  }
 
 
    if (ldrReading > 600 && VALIDE_MOTEUR == 1)
  {
    Serial.println(" - jour");
   for (int i=0;i<20;i++){
  digitalWrite(freinA, LOW);  // arret frein
  digitalWrite(rotationA, LOW);   // rotation moteur montée
  analogWrite(vitesseA, 255);   // vitesse a fond
 
  delay(2000);
 
  digitalWrite (freinA,HIGH);//frein
  break;//arret
   
 

}
VALIDE_MOTEUR=0;
   }
   }
 




j ai utilisé la fonction break mais ça ne fonctionne pas
merci d 'avance pour votre aide
Title: Re: Porte automatique pour poulailler
Post by: etibou on Jan 07, 2018, 07:30 pm
Bonjour à tous,

Voici la dernière version de mon code pour tenir compte des dernières nouvelles du compilateur version 1.8.5. et la nouvelle bibliothèque DS1307 pour la RTC. Le croquis se compile également avec Arduino Web Editor .
Bon Année à tous.
Etibou
Title: Re: Porte automatique pour poulailler
Post by: kate77 on Feb 03, 2018, 07:57 pm
bonjour, cela fait plusieurs jours que te travaille à plein temps et avec plaisir pour trouver des informations pour automatiser une porte de poulailler en utilisant : une nano arduino, un moteur 12v unipolaire, une ldr, deux capteurs de fin de course, une alimentation par panneau solaire... Mes plans de construction sont terminés (poteaux sur pilotis, cuve plastique 1000 l à l'intérieur pour aménagement du poulailler pour faciliter le nettoyage et lutter contre les poux rouges,  habillage en bois à l'extérieur, et toit végétalisé. La porte est une porte à guillotine en plastique placée entre deux glissières alu en U. je n'ai jamais rien réalisé en électronique, pour les plans et la réalisation de la construction du poulailler, je peux, mais pour l'électronique non. j'ai essayé de comprendre le fonctionnement, et beaucoup lu ces derniers jours, j'ai réalisé deux croquis (je ne dis pas schémas car je ne sais pas faire, mais j'ai fait des images des composants que je pense devoir utiliser et un assemblage en fonction de ce que j'ai cru comprendre) un pour l'alimentation par panneau solaire, et un autre pour les câblages de l'ensemble des composants. Je demande vraiment votre indulgence car c'est pour moi une première. Je m'adresse à vous pour un crash test de mes solutions, sont elles viables sans risque ? faut il les mettre à la poubelle et les refaire ??? bref, pouvez vous m'apporter vos corrections et vos conseils. Je vous en remercie d'avance. Bien cordialement et à bientôt j'espère. (trois documents en pièces jointes : porte, alimentation et montage des composants.

Title: Re: Porte automatique pour poulailler
Post by: kate77 on Feb 03, 2018, 08:17 pm
problème avec les fichiers, nouveau post pour compléter.
Title: Re: Porte automatique pour poulailler
Post by: etibou on Feb 05, 2018, 08:15 am
Bonjour,

Juste une petite question : Pourquoi gérer plusieurs tensions car tout est réalisable en 12 V Batterie, Moteur, Panneau solaire ?
Il faut faire un petit calcul sur la consommation de l'ensemble et sur la capacité d'alimentation sinon il faudra prévoir une alimentation complémentaire: Les poules vont rester dehors ou dedans l'hiver si la batterie se vide totalement..
Bon courage.
Etibou
Title: Re: Porte automatique pour poulailler
Post by: kate77 on Feb 05, 2018, 09:47 am
bonjour, j'avais prévu une tension 5v pour la carte nano arduino et 12 v pour le moteur, mais à te lire : donc pour plus de simplicité et plus de réserve : une batterie 12 v chargée par le panneau solaire, qui ensuite alimente et le moteur et la carte arduino. je revois ma copie. Merci pour tes conseils. et bonne journée.
Title: Re: Porte automatique pour poulailler
Post by: pralfi on Feb 09, 2018, 01:14 pm
bonjour, mon système fonctionne depuis 15 jours grâce au coup de main de ETIBOU.
mon système fonctionne avec un panneau 10w 12v
par contre j alimente avec 2 tensions
12v pour le shield moteur
9 v pour le uno grâce a un réducteur de tension (12-9v) car j avais peur que 12 v soit risqué pour la carte.
Title: Re: Porte automatique pour poulailler
Post by: kate77 on Mar 06, 2018, 12:36 pm
bonjour à tous,

merci encore à Etibou pour m'avoir communiqué un code pour gérer la porte du poulailler.

Mais.... j'ai encore besoin de vos services :

J'ai maintenant reçu l'ensemble des composants dont j'avais besoin et j'ai construit une maquette grandeur nature de la future porte du poulailler (j'avance par ailleurs dans sa construction), porte réelle pour tester si le moteur peut soulever cette porte sans problème.

J'ai réalisé les câblages provisoires  (d2-int1 d3-int2 d4-int3 d5-int4) (voir fichier fritzing) en me basant sur le site Eskimon http://eskimon.fr/290-arduino-603-petits-pas-le-moteur-pas-pas, mais rien à faire, je n'arrive pas à faire fonctionner le moteur.

Celui ci est alimenté directement sur le module ALM2003 par une batterie 12-6v chargée par panneaux solaires, relié au gnd de la carte arduino nano.

il s'agit du moteur 28BYJ-48 12V (spec en annexe).

capteurs de fin de course haut et bas (d11 et d12)

photoresistance (a0)

les tests d'alimentation sont corrects sur tous les points d'entrée, mais je n'ai pas le matériel pour vérifier leur puissance.

j'ai modifié sur le code les nombres de pas, vitesse .... mais rien n'y fait.

bref, je ne sais que faire.

si vous pouviez voir les fichiers que j'ai mis en pièces jointes pour voir ce que j'ai mal fait, car je pense être passé à coté de quelques choses (au pluriel...).

merci d'avance et bonne journée


Title: Re: Porte automatique pour poulailler
Post by: kate77 on Mar 06, 2018, 12:45 pm
complément photo maquette
Title: Re: Porte automatique pour poulailler
Post by: etibou on Mar 07, 2018, 07:16 pm
Bonjour;

Je ne vois pas le soucis. Il faut décomposer les fonctions pour déterminer ce qui ne marche pas.
Le fichier ino joint teste le moteur. Rotation dans un sens puis dans l'autre.
A suivre.
Title: Re: Porte automatique pour poulailler
Post by: kate77 on Mar 08, 2018, 07:29 pm
bonsoir,

bon, je démonte tout, et refait les branchements en pas à pas en réalisant les tests par étapes.

Merci pour le code de test moteur.

Je vous tiens informés

à bientôt
Title: Re: Porte automatique pour poulailler
Post by: kate77 on Mar 09, 2018, 12:55 pm
bonjour à tous,

avancée des tests avec alimentation faite par usb arduino


tests : carte nano : ok
module uln2003 : ok
moteur ok mais très lent avec modification du code stepper de cette façon, je pense qu'il sera plus rapide sur du 12v.

#include <Stepper.h>

const int stepsPerRevolution = 64;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution,  2, 4, 3, 5);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(100);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(400);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(400);
}

Je continue les tests avec l'ajout des fin de courses puis de la photoresistance.

A bientôt
Title: Re: Porte automatique pour poulailler
Post by: etibou on Mar 09, 2018, 02:21 pm
Hello,

Une bonne nouvelle sauf qu'il me semble que la vitesse de rotation d'un moteur pas à pas ne dépend pas de sa tension d'alimentation si celle-ci est dans sa plage de fonctionnement sauf si l'intensité de la source de courant est trop faible..

A suivre.
Title: Re: Porte automatique pour poulailler
Post by: thom13 on Nov 06, 2018, 03:36 am
Bonjour à tous,

merci pour toutes ces informations, après avoir épluché l'internet et les 6 pages de ce forum, je suis rendu avec un Arduino uno, un capteur de luminosité BH1750, un shield moteur Adafruit V2 et un moteur pas à pas Nema 17.

J'essaye de faire quelque chose de simple car je suis loin d'être un programmeur, et c'est la que je bloque, le moteur réagi très bien au capteur de luminosité pour l'ouverture et la fermeture de la porte, sauf qu'il ne s'arrête jamais de tourner...

Voici mon code:
Code: [Select]
/*
  BH1750.h pour lecture de la luminosité (modele GY-30)
  Adafruit MotorShield V2 pour la gestion du moteur Stepper Nema17
  Sur Arduino Uno
*/

#include <Wire.h>
#include <BH1750.h>
#include <Adafruit_MotorShield.h>

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);

// Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);

BH1750 lightMeter;

void setup(){

  Serial.begin(9600);

  // Initialize the I2C bus (BH1750 library doesn't do this automatically)
  Wire.begin();
  // On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3);

  lightMeter.begin(BH1750::ONE_TIME_HIGH_RES_MODE);
  //lightMeter.setMTreg(69);  // not needed, only mentioning it

  Serial.println(F("BH1750 Test begin"));

  Serial.begin(9600);           // set up Serial library at 9600 bps
  Serial.println("Stepper test!");

  AFMS.begin();  // create with the default frequency 1.6KHz
  //AFMS.begin(1000);  // OR with a different frequency, say 1KHz
 
  myMotor->setSpeed(10);  // 10 rpm   
}



void loop() {
  float lux = lightMeter.readLightLevel(true); //lecture de la luminosité
  Serial.print(F("Light: "));
  Serial.print(lux);
  Serial.println(F(" lx"));

if (lux > 10) {
   
    myMotor->step(200, FORWARD, SINGLE);
    Serial.println(F("Ouverture porte"));
}
    else if (lux < 10) {
      myMotor->step(200, BACKWARD, SINGLE);
      Serial.println(F("Fermeture porte"));
    }
}


Si une âme charitable voudrait m'indiquer ce qu'il manque dans mon code.

J'avais aussi l'idée de le mettre sur mon réseau MySensors qui fonctionne avec Domoticz, je vais me pencher la dessus, cela permettrait la gestion des heures du levé et couché du soleil a travers Domoticz. Mais bon une étape a la fois...
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 06, 2018, 08:24 am
Bonjour,

Il y a un petit problème dans la logique du code car une fois que le niveau de lumière détecté et que tu as donné l'ordre de fermer ou d'ouvrir, il faut mémoriser le statut par un boolean afin qu'à la boucle suivante tu ne renvoi pas l'ordre si le seuil de lumière est toujours atteint.
Exemple

Si Lux > 10 et porteFermée alors j'ouvre et portefermée = faux.
Si Luv < 10 et non portefermée alors je ferme et portefermée = vrai.

Reste à gérer le statut initial (démarrage du programme porte ouverte ou fermée).
Généralement avec des détecteur de lumière, on détermine un seuil bas et un seuil haut afin d'éviter le phénomène de porte qui se ferme et qui s'ouvre alternativement à la bascule du seuil.

Bon courage.


Title: Re: Porte automatique pour poulailler
Post by: nolo on Nov 10, 2018, 07:40 pm
Bonjour, Je cherche une personne pour me faire un petit programme ,et comme tu as proposé à certain ,je me permet de te demander se service car je galère quant ont approche les 70 ans cela peut se comprendre .

Mon projet  Une balance piloté par le fameux moto réducteur 28byj 48 est controlé par un endstop   0  _ 5 volts  .

Le fonctionnement est assez simple  un levier avec un contre poids  équilibre une balance sous une ruche qui prend du poids ou en pert .  Le moto réducteur sert à déplacer le contre poids comme ont peut le faire sur les balance manuel .

QUANT le endstop me donne une tention >à 4 volts  >5  le moteur se déplace de 10 pas en avant  (  moins ou plus à voir )
Quant le   endstop me donne une tention  de 2 à volts4 volts  le moto ne fait rien
Quant le   endstop me donne une tention < à 2 volts      le moteur se déplace de 10 pas en arriere  .

La prise de poids est trés lente  1 à 2 kg par 24 heures ,le temps de la boucle reste à déterminée ;
La mécanique fonctionne comme décrite plus haut avec le endstop .

Le nombre de pas du motoréduc   en  plus ou moins  devras etre stoké dans un compteur et multiplier par un coef quime donne le poids de la ruche .

Merci pour pour ton aide si possible  Nolo


Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 11, 2018, 07:23 am
Bonjour,

C'est pas très compliqué, je t'écris un petit bout code mais es-tu certain du fonctionnement du endstop car généralement les fin de course sont tout ou rien, c'est à dire 0 ou 5V.
Avec l'age, il faut prendre un peu plus de temps, je connais bien le problème même si je n'ai pas 70, je n'ai plus 20 ans..
A+
Title: Re: Porte automatique pour poulailler
Post by: Artouste on Nov 11, 2018, 12:45 pm
Bonjour, Je cherche une personne pour me faire un petit programme ,et comme tu as proposé à certain ,je me permet de te demander se service car je galère quant ont approche les 70 ans cela peut se comprendre .

Mon projet  Une balance piloté par le fameux moto réducteur 28byj 48 est controlé par un endstop   0  _ 5 volts  .

Le fonctionnement est assez simple  un levier avec un contre poids  équilibre une balance sous une ruche qui prend du poids ou en pert .  Le moto réducteur sert à déplacer le contre poids comme ont peut le faire sur les balance manuel .

QUANT le endstop me donne une tention >à 4 volts  >5  le moteur se déplace de 10 pas en avant  (  moins ou plus à voir )
Quant le   endstop me donne une tention  de 2 à volts4 volts  le moto ne fait rien
Quant le   endstop me donne une tention < à 2 volts      le moteur se déplace de 10 pas en arriere  .

La prise de poids est trés lente  1 à 2 kg par 24 heures ,le temps de la boucle reste à déterminée ;
La mécanique fonctionne comme décrite plus haut avec le endstop .

Le nombre de pas du motoréduc   en  plus ou moins  devras etre stoké dans un compteur et multiplier par un coef quime donne le poids de la ruche .

Merci pour pour ton aide si possible  Nolo



Bonjour
Pour faire de la pesée de ruche , il y a plus simple (pour peu que ta méthode soit réellement envisageable avec ce que tu à choisi , ce dont je doute fortement 8)  )
regarde déjà ce sujet pèse ruche  (https://forum.arduino.cc/index.php?topic=478616.msg3268816#msg3268816) de Lacuzon
Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 11, 2018, 08:40 pm
Bonjour,

Dans le projet mentionné, ils utilisent un capteur d'une balance électronique qu'ils amplifient.
Si tu veux conserver le fonctionnement de contrepoids avec un déplacement par un moteur pas à pas, c'est possible.
Il faut 2 contacts fin de course sur le balancier, un pour le poids en diminution, un pour le poids en augmentation.
Dès que l'un des contacts est actionné, le moteur déplace le contrepoids jusqu'à ce que le contact disparaît.
Le système peut fonctionner dans un sens ou dans l'autre.(prise ou perte de poids).
Reste le pb de la précision et de la plage de mesure car cela dépendra de la valeur du contrepoids.
Une petite valeur = précision élevée mais plage de mesure réduite (dépend de la longueur de course du contrepoids).. Attention aux perturbations extérieures qui peuvent fausser la mesure.
Une valeur plus importante = précision moindre mais page de mesure plus grande et moins sensible aux
 perturbations extérieures.

Je peux t'écrire un bout de code suivant ce scénario.
Le résultat cumulé du poids sera envoyé par la ligne série.
Pour avoir le poids total de la ruche, il faudra gérer une tare.
Je t'envoi un code à tester rapidement.
Bonne soirée.
Etibou



Title: Re: Porte automatique pour poulailler
Post by: etibou on Nov 12, 2018, 06:45 pm
Bonsoir,

Voici le code promis.
Du coup, il peut gérer soit des contacts fin de course soit une entrée analogique.
Il suffit de commenter ou dé-commenter les #define non utiles
Le fonctionnement avec les contacts a été testé (moteur 28BYJ6-48 5v)
Reste à tester le fonctionnement avec l'entrée analogique et bien définir le sens des corrections.
A tester..
Bon courage.
Etibou
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Jan 06, 2019, 01:55 pm
Bonjour,
j'ai réalisé une porte poulailler à guillotine, avec 2 fin de courses haut et bas, et le moteur est une foreuse sans fils.
Au niveau mécanique ça fonctionne très bien.
Pour la programmation c'est un Arduino uno.
détection nuit/ jour par une cellule photo-résistance.
le problème est que j'ai voulus ajouter une temporisation à la fermeture (qui fonctionne bien)
mais il y a un problème à l'ouverture: on dirait que il ne tient pas compte de la temporisation.

Pour le moment j'utilise une horloge pour retarder l'ouverture....
et j'ai mis des // dans mon programme, je pense que j'ai un problème de compréhention des if et else, ou des lignes de conditions en général
Voici le progamme

Code: [Select]
const char ledbleu = 2; // variable broche 2 (vraie), Une LED bleu  pour détection crépuscule, s'il fait sombre
const char fermeture = 7;  // variable pour broche 7 (vraie), pour fermer porte
const char capteur = 0; // broche A0 sur laquelle va être connecté le pont diviseur de tension

float tension = 0;             // variable qui va enregistrer la tension lue en sortie du capteur
float seuilObscurite = 4.2;    // valeur en V, seuil qui détermine le niveau auquel l'obscurité est présente
int x=0;
void setup()
        {
           // définition des broches utilisées
           pinMode(ledbleu, OUTPUT);
           pinMode(fermeture, OUTPUT);
           digitalWrite(ledbleu, HIGH);
           digitalWrite(fermeture, HIGH);
           Serial.begin(9600); // la voie série pour monitorer
        }
void loop()
{
    // conversion de cette valeur en tension
    tension = (analogRead(capteur) * 5.0) / 1024;

    if(tension >= seuilObscurite)  //Pour FERMETURE
          {
            x=x+1;
                 if (x==1)digitalWrite(ledbleu, LOW);               // detection seuil obscurité On allume la LED bleu         
                 if (x==1)delay(240000);                              // délai pour ne fermer porte que aprés 4 minutes ( 240 000)
                 x=2;     
             digitalWrite(fermeture, LOW);                           //  On ferme la porte apres x secondes
             digitalWrite(ledbleu, HIGH);                           // On éteint la LED bleu
          }     
    if(tension < seuilObscurite)  //Pour OUVERTURE
              {
                x=3;
                //Serial.print(" x=  ");
               //if (x==3)delay(240000);//délai pour ouvrir la porte que aprés 4 minutes
                if (x==3)digitalWrite(fermeture, HIGH); // on ouvre la porte
         x=0;
     }

    // délai pour ne prendre des mesures que toutes les 60-secondes (60 000)
    delay(60000);
   
                   //Serial.print(" x=  ");
                    Serial.println(x);
}
Title: Re: Porte automatique pour poulailler
Post by: etibou on Jan 06, 2019, 08:33 pm
Hello,

C'est pas mal mais il faut tenir compte de quelques règles.
Quand on mesure la tension d'une cellule photo-résistance et qu'on détermine un niveau de luminosité pour déclencher l'ouverture et la fermeture d'une porte, il est préférable d'avoir deux seuils de détection différents pour éviter que la porte fasse le yo-yo au moment du passage du seuil. Une autre possibilité est de travailler avec une valeur moyennée.
Je pense que le pb vient de la variable x. Il est préférable d'utiliser un booléen pour mémoriser l'état de la porte et engager une seule fois l'ordre d'ouverture et de fermeture.
Voici un exemple de code avec les 2 seuils de détection (valeurs arbitraire) et un booléen pour mémoriser l'état de la porte. (Attention code non testé)
Code: [Select]

const char ledbleu = 2; // variable broche 2 (vraie), Une LED bleu  pour détection crépuscule, s'il fait sombre
const char fermeture = 7;  // variable pour broche 7 (vraie), pour fermer porte
const char capteur = 0; // broche A0 sur laquelle va être connecté le pont diviseur de tension

float tension = 0;             // variable qui va enregistrer la tension lue en sortie du capteur
float seuilObscurite = 4.2;    // valeur en V, seuil qui détermine le niveau auquel l'obscurité est présente
float seuilLumonisite = 4;    // valeur en V, seuil qui détermine le niveau auquel la luminosité est présente
boolean PorteFermee = false;  // statut de la porte ou démarre toujours le programme porte ouverte
int x = 0;
void setup()
{
  // définition des broches utilisées
  pinMode(ledbleu, OUTPUT);
  pinMode(fermeture, OUTPUT);
  digitalWrite(ledbleu, HIGH);
  digitalWrite(fermeture, HIGH);
  Serial.begin(9600); // la voie série pour monitorer
}
void loop()
{
  // conversion de cette valeur en tension
  tension = (analogRead(capteur) * 5.0) / 1024;

  if ((tension >= seuilObscurite) && !PorteFermee) //Pour FERMETURE
  {

    digitalWrite(ledbleu, LOW);             // detection seuil obscurité On allume la LED bleu
    delay(240000);                            // délai pour ne fermer porte que aprés 4 minutes ( 240 000)

    digitalWrite(fermeture, LOW);                           //  On ferme la porte apres x secondes
    digitalWrite(ledbleu, HIGH);                           // On éteint la LED bleu
    PorteFermee = true;
  }

  if ((tension < seuilLumonisite) && PorteFermee) //Pour OUVERTURE
  {

    //Serial.print(" x=  ");
    delay(240000);//délai pour ouvrir la porte que aprés 4 minutes
    digitalWrite(fermeture, HIGH); // on ouvre la porte
    PorteFermee = false;
  }

  // délai pour ne prendre des mesures que toutes les 60-secondes (60 000)
  delay(60000);

  //Serial.print(" x=  ");
  Serial.println(x);
}


Bon courage..
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Jan 07, 2019, 12:34 pm
Bonjour,
merci pour cette réponse, en effet les problèmes viennent surement de là, je vais tester et je vous tient au courant.
Bonne journée.
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Jan 07, 2019, 01:40 pm
Voilà, j'ai testé, et tout fonctionne bien , je peux régler la temporisation, comme je le voulais, merci Etibou ton code était bon dés le départ.
Je pense que je vais essayer de mesurer aussi la tension du moteur pour mettre une sécurité supplémentaire en cas de blocage du moteur.
Title: Re: Porte automatique pour poulailler
Post by: etibou on Jan 08, 2019, 08:55 am
Bonjour et Bonne Année à tous,

Je poste la dernière version du code pour mon projet de porte automatique de poulailler.
Ce code est allégé et simplifié car on utilise un moteur pas à pas (28BYJ-48 5V) pour piloter la porte guillotine au lieu d'un moto-réducteur
Plus de fin de course mais un mode étalonnage pour déterminer la longueur de course de la porte.
Les heures de fermetures et d'ouverture sont toujours calculées par rapport au levé et couché du soleil.(plus de cellule photo-résistance)
Les inconvénients de ce nouveau code sont qu'il n'y a plus de détection d'anomalie de fermeture (plus de fin de course) et que l'ensemble consomme plus de courant avec le maintient sous tension du module ULN2003.

Composants nécessaires
- Arduino uno
- Tiny RTC
- Moteur Pas à Pas 28BYJ-48 5V
- Module pilotage Moteur ULN2003
- Convertisseur DC-DC 12V-5V


A bientôt.
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Jan 08, 2019, 09:47 pm
Bonsoir, et bonne année à tous,
on peu dire a mon niveau, waou ça c'est un travail approfondis, je vais maintenant essayer d'en comprendre un petit peu , bon travail superbe.
Title: Re: Porte automatique pour poulailler
Post by: norman46 on Feb 20, 2019, 11:44 am
Bonjour je suis en dernière année secondaire et je compte faire votre projet en travail de fin d'étude j'aurai besoin de quelque information supplémentaire pourrions-nous parler via mail ou autre voici mon mail: norman14@live.fr
Title: Re: Porte automatique pour poulailler
Post by: etibou on Feb 25, 2019, 02:33 pm
Bonjour,

Je vous ai directement répondu par mail. Aucun problème pour répondre à vos questions.
Title: Re: Porte automatique pour poulailler
Post by: mattymatt on Apr 01, 2019, 07:05 pm
Bonjour,

c'est un super projet que tu nous présente là !
j'aimerais savoir comment l'adapter à un arduino pro mini ?
Title: Re: Porte automatique pour poulailler
Post by: etibou on Apr 02, 2019, 04:05 pm
Bonjour,

Pour le code, je ne vois pas ce qui bloquerai son bon déroulement sur Arduino pro mini car le fonctionnement d'une Arduino pro mini est quasiment identique à un arduino uno sauf qu'il n'y a pas l'interface de communication USB pour la programmation et le mode débug en liaison série.
Si après programmation on supprime la carte de communication pour conserver que  "Arduino pro mini", il sera difficile de la mettre à l'heure ou de passer en mode debug..
Pour les projets qui n'utilisent pas d'horloge mais juste un détection de seuil lumineux l'Arduino pro mini est intéressante car une fois le programme au point, il n'y a plus besoin d'accéder à la carte. Elle est autonome.
A voir...



Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Apr 13, 2019, 10:59 pm
Bonjour,
je pense ajouter une gestion des heures,pour cela j'ai opté pour un rtc ic2 1307,
tout se passe bien pour la lecture , sauf au niveau de ma variable "mois", il semble que cette variable ne marche pas, je voudrai  le chiffre du mois en décimal.
En fait comment placer et écrire les données de date et d'heures dans des variables...

exemple : si avril alors retirer 180 secondes à l'ouverture
             si mai alors retirer 360 secondes à l'ouverture....etc
comme cela la porte s'ouvre de plus en plus tôt.

j'ai mis des //****************** (pour ce qui concerne la variable "mois" )

Bonne soirée.


Code: [Select]
#include <RTClib.h>
#include <Wire.h>

RTC_DS1307 RTC; //Classe RTC_DS1307

const char ledbleu = 2; // variable broche 2 (vraie), Une LED bleu  pour détection crépuscule, s'il fait sombre
const char fermeture = 7;  // variable pour broche 7 (vraie), pour fermer porte
const char capteur = 0; // broche A0 sur laquelle va être connecté le pont diviseur de tension

float tension = 0;             // variable qui va enregistrer la tension lue en sortie du capteur
float seuilObscurite = 4.2;    // valeur en V, seuil qui détermine le niveau auquel l'obscurité est présente
float seuilLumonisite = 4;    // valeur en V, seuil qui détermine le niveau auquel la luminosité est présente
boolean PorteFermee = false;  // statut de la porte ou démarre toujours le programme porte ouverte
int mois = 4;  //********************************

void setup()
{
  // définition des broches utilisées
  pinMode(ledbleu, OUTPUT);
  pinMode(fermeture, OUTPUT);
  digitalWrite(ledbleu, HIGH);
  digitalWrite(fermeture, HIGH);
  Serial.begin(57600); // la voie série pour monitorer
  Wire.begin(); //Démarrage de la librairie wire.h
  RTC.begin(); //Démarrage de la librairie RTClib.h

 
  
  //Si RTC ne fonctionne pas
  if (! RTC.isrunning()) {
    Serial.println("RTC ne fonctionne pas !");
  
    //Met à l'heure à date à laquelle le sketch est compilé
    RTC.adjust(DateTime(__DATE__, __TIME__));
    //Cela fonctionne également :
    //RTC.adjust(DateTime("Dec  5 2012","12:00:00"));
    //RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0));
    }
  }
void loop()
{
  //Affichage de l'heure
  DateTime now = RTC.now();
  //Serial.print(now.day(), DEC);
  //Serial.print('/');
  Serial.println(now.month(), DEC);
  
   mois == now.month();   //*******************
   Serial.println(mois);   //**********************
  Serial.print('/');
  Serial.print(now.year(), DEC);
  Serial.println(' ');
  //Serial.print(now.hour(), DEC);
  //Serial.print(':');
  //Serial.print(now.minute(), DEC);
  //Serial.print(':');
//  Serial.print(now.second(), DEC);
 // Serial.println();
  //delay(3000);
  // conversion de cette valeur en tension
  tension = (analogRead(capteur) * 5.0) / 1024;

  if ((tension >= seuilObscurite) && !PorteFermee) //Pour FERMETURE
  {
  
    digitalWrite(ledbleu, LOW);             // detection seuil obscurité On allume la LED bleu
    delay(4000);                            // délai pour ne fermer porte que aprés 4 minutes ( 240 000) pour essais 4sec =4000

    digitalWrite(fermeture, LOW);                           //  On ferme la porte apres x secondes
    digitalWrite(ledbleu, HIGH);                           // On éteint la LED bleu
    PorteFermee = true;
    Serial.print(" PorteFermee=  ");
    Serial.println(PorteFermee);
  }

  if ((tension < seuilLumonisite) && PorteFermee) //Pour OUVERTURE   //*********************
  {
       if (mois == 4)                                                //**********************
  {
  Serial.println('avril');                                           //**********************
  delay(3);
  }
  
    delay(4000);//délai pour ouvrir la porte que aprés 4 minutes pour essais 4sec =4000
    digitalWrite(fermeture, HIGH); // on ouvre la porte
    PorteFermee = false;
    Serial.print(" PorteFermee=  ");
    Serial.println(PorteFermee);
  }

  // délai pour ne prendre des mesures que toutes les 60-secondes (60 000) cela évite les ouvertures en cas d'orage
  delay(500);// pour essais 1/2seconde=500

 
  //Serial.println(PorteFermee);
}

  
Title: Re: Porte automatique pour poulailler
Post by: etibou on Apr 15, 2019, 07:08 am
Bonjour,

Une petite erreur de syntaxe  mois == now.month();
Le double "=" est un test d'égalité et non pas d'affectation.
Un seul "=" est nécessaire..
Bonne journée
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Apr 15, 2019, 10:58 am
Bonjour, oui bien vu, j'ai changé et ça marche, j'avais aussi mis serial.print ('avril') entre simple guiements ce qui me donnais comme résultat : 26988 je ne sais pas pourquoi, peu être en hexa...
merci beaucoup .
Maintenant je vais ajouter des if pour une ouverture différé différente chaque mois en fonction du lever du jour.

Pourquoi je veux ça, c'est pour ouvrir le poulailler a des heures ou il y a déjà une activité dans les rues , ce qui je l'espère empêche le renard de venir....

Bonne journnée
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Apr 15, 2019, 08:26 pm
bonjour,
voilà que je bloque à nouveau, je ne comprend pas la structure des if, j'en ai placé deux pour le mois 4 et le mois 5, et apparemment contre toute attente il passe au if 5.....pourtant je suis au mois 4.

ci-dessous le code:
Code: [Select]
#include <RTClib.h>
#include <Wire.h>

RTC_DS1307 RTC; //Classe RTC_DS1307

const char ledbleu = 2; // variable broche 2 (vraie), Une LED bleu  pour détection crépuscule, s'il fait sombre
const char fermeture = 7;  // variable pour broche 7 (vraie), pour fermer porte
const char capteur = 0; // broche A0 sur laquelle va être connecté le pont diviseur de tension

float tension = 0;             // variable qui va enregistrer la tension lue en sortie du capteur
float seuilObscurite = 4.2;    // valeur en V, seuil qui détermine le niveau auquel l'obscurité est présente
float seuilLumonisite = 4;    // valeur en V, seuil qui détermine le niveau auquel la luminosité est présente
boolean PorteFermee = false;  // statut de la porte ou démarre toujours le programme porte ouverte
int mois = 0;  //********************************
float xtemp = 0;

void setup()
{
  // définition des broches utilisées
  pinMode(ledbleu, OUTPUT);
  pinMode(fermeture, OUTPUT);
  digitalWrite(ledbleu, HIGH);
  digitalWrite(fermeture, HIGH);
  Serial.begin(57600); // la voie série pour monitorer
  Wire.begin(); //Démarrage de la librairie wire.h
  RTC.begin(); //Démarrage de la librairie RTClib.h

 
 
  //Si RTC ne fonctionne pas
  if (! RTC.isrunning()) {
    Serial.println("RTC ne fonctionne pas !");
   
    //Met à l'heure à date à laquelle le sketch est compilé
    RTC.adjust(DateTime(__DATE__, __TIME__));
    //Cela fonctionne également :
    //RTC.adjust(DateTime("Dec  5 2012","12:00:00"));
    //RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0));
    }
  }
void loop()
{
  //Affichage de l'heure
  DateTime now = RTC.now();
  Serial.print(now.day(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
 
   mois = now.month(), DEC;   //*******************
   //Serial.println(mois);   //**********************
  Serial.print('/');
  Serial.print(now.year(), DEC);
  Serial.print(' ');
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
  //delay(3000);
  // conversion de cette valeur en tension
  tension = (analogRead(capteur) * 5.0) / 1024;

  if ((tension >= seuilObscurite) && !PorteFermee) //Pour FERMETURE
  {
   
    digitalWrite(ledbleu, LOW);             // detection seuil obscurité On allume la LED bleu
    delay(4000);                            // délai pour ne fermer porte que aprés 4 minutes ( 240 000) pour essais 4sec =4000

    digitalWrite(fermeture, LOW);                           //  On ferme la porte apres x secondes
    digitalWrite(ledbleu, HIGH);                           // On éteint la LED bleu
    PorteFermee = true;
    Serial.print(" PorteFermee=  ");
    Serial.println(PorteFermee);
  }

  if ((tension < seuilLumonisite) && PorteFermee) //Pour OUVERTURE   //*********************
  {
       if (mois = 4)                                               
  {                           
    xtemp = 40000;
  Serial.print(" avril = ");                                         
  Serial.println(mois);
Serial.print("xtemp = ");
Serial.println(xtemp);
                         
  }
         if (mois = 5)                                               
  {                       
    xtemp = 8000;
  Serial.print(" mai = ");                                         
  Serial.println(mois);
Serial.print("xtemp = ");
Serial.println(xtemp);
  }                   
   
    delay(xtemp);//délai pour ouvrir la porte que aprés xtemp secondes, pour essais 4sec =4000
    digitalWrite(fermeture, HIGH); // on ouvre la porte
    PorteFermee = false;
    Serial.print(" PorteFermee=  ");
    Serial.println(PorteFermee);
  }

  // délai pour ne prendre des mesures que toutes les 60-secondes (60 000) cela évite les ouvertures en cas d'orage
  delay(500);// pour essais 1/2seconde=500

 
  //Serial.println(PorteFermee);
}
Title: Re: Porte automatique pour poulailler
Post by: philippe6philoux on Apr 15, 2019, 09:33 pm
bonsoir, autant pour moi ,j'ai fait la même erreur dans l'autre sens, pas mis == ,maintenant mes if fonctionnent tous correctement..