Go Down

Topic: Porte de poulailler automatique (Read 9004 times) previous topic - next topic

Gozo

Re Bonjour
Merci de vos réponses et de votre humour.
''oui via un module wifi c'est faisable avec une synchro sur un server, ca permet en plus d'ouvrir ou fermer a distance la porte si besoin.''
''pourquoi ne pas prendre un yun simplement.''   C'est quoi un Yun?
(Intéressant  mais très avancer pour moi)
Dites- moi serait-t 'il plus simple pour démarrer mon projet d'utiliser sur le secteur 115V un timer pour ouvrir et fermer la porte ou deux timer, un pour ouvrir et un pour fermer la porte combiné à l'Arduino?  Je suis à me préparer une autre commande de pièces : une autre carte Arduino Uno, et autres bricoles pour étudier et pouvoir  faire d'autres tests.
Pour voir mon poulailler  aller sur    http://coop-la-basse-cour.forumactif.com/t14820-voici-leur-poulailler-presque-termine?highlight=leur+poulailler        (il y a trois pages à voir)


infobarquee

c'est quoi un yun?
un arduino avec une carte réseau rj45 et un module wifi, le tout basé sur openwrt (linux modifié)
et la possibilité de faire la même chose qu'un arduino
http://boutique.semageek.com/fr/208-arduino-yun.html

tu peux utiliser un timer aussi, mais il faudra bien faire quelque chose pour inverser le sens du moteur si en haut ou en bas ;)
avec un nono, tu fais tout ca et bien plus encore.
ex :
compter le nombre de cocottes qui sont rentrées ou sorties
mettre une télécommande IR pour ouvrir/fermer la porte
mettre une balance sous le nid pour savoir s'il y a des oeufs :)
allumer un spot pour aller voir la nuit, ou si quelque chose s'approche de trop du poulailler
etc...
AUCUNE AIDE PAR MP

john_lenfr


il y a eu un topic dédié là dessus il n'y a pas tres longtemps

Je dirais que c'est celui-ci:
http://forum.arduino.cc/index.php?PHPSESSID=cbvqd2jrnged8jk3i7gkbeceo1&topic=202001.msg1529672#msg1529672

Pour lequel j'avais donné la synchro NTP et la routine DST:

Code: [Select]

#include <EthernetUdp.h>
// Configuration pour connection à un serveur NTP pour mise à jour de l'heure
unsigned int localPort = 8888;             // local port to listen for UDP packets
IPAddress timeServer(95, 130, 9, 77);      // http://Ntp.crashdump.fr se synchronise sur les serveur de strate 1
//IPAddress timeServer(193, 79, 237, 14);
//IPAddress timeServer(193, 52, 137, 193);   //http://www.pool.ntp.org/fr/
byte pb[48];                  // buffer to hold incoming and outgoing packets // NTP time stamp is in the first 48 bytes of the message

//Déclaration Internet
EthernetServer server(80);//déclaration du serveur internet de la carte Arduino.
// A UDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

void ntpUpdate(void)
{
   lcd.setCursor(0,0);
   lcd.print("NTP Time sync...");
   Udp.begin(localPort);
   delay(250);
   // send an NTP packet to a time server
   sendNTPpacket(timeServer);

   // wait to see if a reply is available
   delay(1000);

   if ( Udp.parsePacket() ) {
         // read the packet into the buffer
     
         Udp.read(pb, 48);
     
         // NTP contains four timestamps with an integer part and a fraction part
         // we only use the integer part here
         unsigned long t1, t2, t3, t4;
         t1 = t2 = t3 = t4 = 0;
         for (int i=0; i< 4; i++)
         {
           t1 = t1 << 8 | pb[16+i];      
           t2 = t2 << 8 | pb[24+i];      
           t3 = t3 << 8 | pb[32+i];      
           t4 = t4 << 8 | pb[40+i];
         }
           
         // part of the fractional part
         // could be 4 bytes but this is more precise than the 1307 RTC
         // which has a precision of ONE second
         // in fact one byte is sufficient for 1307
           float f1,f2,f3,f4;
           f1 = ((long)pb[20] * 256 + pb[21]) / 65536.0;      
           f2 = ((long)pb[28] * 256 + pb[29]) / 65536.0;      
           f3 = ((long)pb[36] * 256 + pb[37]) / 65536.0;      
           f4 = ((long)pb[44] * 256 + pb[45]) / 65536.0;
           //Serial.println(f1);
           //Serial.println(f2);
           //Serial.println(f3);
           //Serial.println(f4);
           const unsigned long seventyYears = 2208988800UL;
           t1 -= seventyYears;
           t2 -= seventyYears;
           t3 -= seventyYears;
           t4 -= seventyYears;
     
           //Serial.println("T1 .. T4 && fractional parts");
           //PrintDateTime(DateTime(t1)); Serial.println(f1,4);
           //PrintDateTime(DateTime(t2)); Serial.println(f2,4);
           //PrintDateTime(DateTime(t3)); Serial.println(f3,4);
           
           //PrintDateTime(DateTime(t4)); Serial.println(f4,4);
           //Serial.println();
           // Adjust timezone and DST... in my case substract 4 hours for Chile Time
           // or work in UTC?
           t4 += adjustDstEurope(t4); // Adjustig Time with DST Europe/France: UTC+1h in winter, UTC+2h in summer
           t4 += 1;                // adjust the delay(1000) lost at begin of loop
           if (f4 > 0.4) t4++;     // adjust fractional part, see above
           clock__rtc.adjust(DateTime(t4)); // update RTC DS 1307 Clock
           lcd.setCursor(0,0);
           lcd.print("NTP sync OK!    ");
           delay(2000);
           lcd.clear();
     }
     else
     {
     lcd.setCursor(0,0);
     lcd.print("NTP sync not OK!");
     delay(2000);
     lcd.clear();
     }
}


int adjustDstEurope(DateTime t)
{
/*You can use the following equations to calculate when DST starts and ends.
The divisions are integer divisions, in which remainders are discarded.
"mod" means the remainder when doing integer division, e.g., 20 mod 7 = 6.
That is, 20 divided by 7 is 2 and 6/7th (where six is the remainder).
With: y = year.
       For the United States:
           Begin DST: Sunday April (2+6*y-y/4) mod 7+1
           End DST: Sunday October (31-(y*5/4+1) mod 7)
          Valid for years 1900 to 2006, though DST wasn't adopted until the 1950s-1960s. 2007 and after:
           Begin DST: Sunday March 14 - (1 + y*5/4) mod 7
           End DST: Sunday November 7 - (1 + y*5/4) mod 7;
       European Economic Community:
           Begin DST: Sunday March (31 - (5*y/4 + 4) mod 7) at 1h U.T.
           End DST: Sunday October (31 - (5*y/4 + 1) mod 7) at 1h U.T.
           Since 1996, valid through 2099
(Equations by Wei-Hwa Huang (US), and Robert H. van Gent (EC))

Adjustig Time with DST Europe/France/Paris: UTC+1h in winter, UTC+2h in summer

*/

 // last sunday of march
 int beginDSTDate=  (31 - (5* t.year() /4 + 4) % 7);
 //Serial.println(beginDSTDate);
 int beginDSTMonth=3;
 //last sunday of october
 int endDSTDate= (31 - (5 * t.year() /4 + 1) % 7);
 //Serial.println(endDSTDate);
 int endDSTMonth=10;
 // DST is valid as:
 if (((t.month() > beginDSTMonth) && (t.month() < endDSTMonth))
     || ((t.month() == beginDSTMonth) && (t.day() >= beginDSTDate))
     || ((t.month() == endDSTMonth) && (t.day() <= endDSTDate)))
 return 7200;      // DST europe = utc +2 hour (summer time)
 else return 3600; // nonDST europe = utc +1 hour (winter time)
}


T'a jusqu'à samedi pour programmer, sinon il faudra attendre 6 mois pour tester si ça fonctionne  :smiley-mr-green: :smiley-mr-green:

Gozo

Salut à tous
Merci de vos commentaires, avec RTC, Arduino Yum, serveur NTP, routine DST, je suis certain que je pourrais avoir un système performant mais vous m'avez perdu  bin raide :smiley-mr-green:. Pour le moment je dois faire plus simple, une carte avec un L298N Dual-H Bridge ou une Ardumoto, une Uno, une  photorésistance ou une carte Light Sensor Photoresistor LM393 et si c'est possible d'installer dans le code un délai de quelques minutes pour laisser le temps à la photocellule  de se  réinitialiser  pour éviter les fausses alertes. Est-ce possible?   Merci, vos suggestions sont très appréciées.                                                     

Gozo

Bonjour
Je vous remercie de vos réponses, j'ai bien compris que je dois étudier le système Arduino, pour réussir mon projet et ne pas m'attendre à avoir tout cuit dans le bec.  Je me suis procuré: « Tous les cours Arduino en 1 clic ! » (45 PDF) sur le  site : http://www.mon-club-elec.fr/ et les recommande à tous les newbies comme moi. J'espère un jour devenir assez bon pour aider un autre membre.
Merci encore Gozo

Philippe77

Bonjour,
J'ai aussi  des poules et j ai commencé un blog sur le sujet
http://portepoulaillerautomatique.blogspot.fr/
Si ça peut aider !

dans mon cas j ai pas le 220v et j ai cherché une solution économe en énergie...
Si y a des questions n'hésites pas.

Go Up