Automatique de poulet Coop porte (10 / 10 étapes)

Étape 10 : Le Code de l’Arduino pour la porte de Coop de poulet automatique

Remarque : pour une vue plus agréable sur les images, les pièces, les diagrammes et les code, veuillez visiter :
http://davenaves.com/blog/Interests-Projects/Chickens/Chicken-Coop/Arduino-Chicken-Door/

Info de l’initié
J’espère que pour vous faire pour économiser quelque temps, je vais vous laisser sur le truc qui a finalement obtenu cette porte pour travailler avec les niveaux de luminosité, debouncing les commutateurs et * le * poulets. (comme vous le verrez dans le code) Vérifier toutes les 10 minutes pour éviter les lectures rebondir en arrière entre les niveaux la lumière crépusculaire/clair/sombre durant ces aube/crépuscule minutes. Alors, quand « sombre » est atteint (pour moi, j’ai choisi > = 0 & & < = 3 fondé lorsque mes poulets en fait s’est passé et est resté dans la cage) activez dir moteur bas > debounce les commutateurs > arrêter. Puis faire l’inverse pour le matin. Je suis sûr qu’il y a différents, peut-être plus efficaces, mais ce code a fonctionné parfaitement pendant un certain temps maintenant et je me sens suffisamment en confiance pour sortir la nuit sans se soucier des prédateurs. Bien que toujours en quelque sorte, j’ai trouver une raison pour vérifier la ChickenCam de temps en temps. (actuellement en attente de mon nouveau servo-moteurs et nuit vision web cam pour arriver par la poste)

< p > les bibliothèques / / bibliothèques < br >< / p >< p > #include < SimpleTimer.h > / / charger la bibliothèque SimpleTimer de faire des minuteries, au lieu de retards & trop de déclarations millis < br > #include < OneWire.h > / / charger la librairie onewire < /p > / * (avant d’exécuter l’esquisse, supprimer les espaces avant et après ce qui précède ">" "<" personnages - l’éditeur d’instructables ne serait pas publier la comprend à moins que j’ai ajouté ces espaces) * / / * * Copyright 2013 , David Naves (http://daveworks.net, < un rel = « nofollow » > http://davenaves.com) < /a > ** ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou * modifier selon les termes de la GNU General Public License * telle que publiée par la Free Software Foundation ; soit la version 3 * de la licence, ou (à votre choix) toute version ultérieure. ** Ce programme est distribué dans l’espoir qu’il sera utile, * mais sans aucune garantie ; sans même la garantie implicite de * qualité marchande ou ADEQUATION a un usage particulier. Voir la * GNU General Public License pour plus de détails. ** Vous devriez avoir reçu une copie de la GNU General Public License * avec ce programme ; Sinon, écrivez à la Free Software * Foundation, Inc., 51 Franklin Street, 5ème étage, Boston, MA * 02110-1301, USA. * / / * * J’espère que si vous utiliser/modifier ce code, vous partagerez votre * projet coop avec moi et le monde (photos, quel que soit) * je suis grand sur le partage. * Cheers, * //D * / //pins const int photocellPin = A0 ; cellule photoélectrique reliée à analogique 0 const int enableCoopDoorMotorB = 7 ; Enable b moteur - broche 7 const int directionCloseCoopDoorMotorB = 8 ; direction ferme b moteur - Broche 8 const int directionOpenCoopDoorMotorB = 9 ; direction ouvrir b moteur - broche 9 const int bottomSwitchPin = 26 ; bas switch est connectée aux broches 26 const int topSwitchPin = 27 ; haut de la page switch est connectée aux broches 27 / / vars / / cellule photoélectrique int photocellReading ; lecture analogique de le photocel int photocellReadingLevel ; photocel lecture des niveaux (sombre, crépusculaire, lumière) / / reed passe en haut et en bas de la porte de la coop / / top interrupteur int topSwitchPinVal ; commutateur haut var pour lire le code pin État int topSwitchPinVal2 ; commutateur haut var pour lire le code pin retard/debounce État int topSwitchState ; haut var de commutateur pour en conserver l’état de l’interrupteur / / fond interrupteur int bottomSwitchPinVal ; bas commutateur var pour lire le code pin État int bottomSwitchPinVal2 ; bas commutateur var pour lire le code pin retard/debounce État int bottomSwitchState ; bas commutateur var pour tenir l’état de l’interrupteur / / suffit 1 SimpleTimer objet SimpleTimer coopTimer ; *** la configuration *** void setup(void) {Serial.begin(9600); / / welcome message Serial.println ("vérification doCoopDoor : toutes les 10 minutes pour les niveaux de lumière à ouverture ou fermeture de porte") ; Serial.println() ; porte de Coop / / coop porte moteur pinMode (enableCoopDoorMotorB, sortie) ; activez le moteur broche = sortie pinMode (directionCloseCoopDoorMotorB, sortie) ; goupille de sens proche du moteur = sortie pinMode (directionOpenCoopDoorMotorB, sortie) ; broche moteur direction open = sortie / / coop porte commutateurs / / bas commutateur pinMode (bottomSwitchPin, entrée) ; Set axe de commutation inférieure comme entrée digitalWrite (bottomSwitchPin, HIGH) ; activer la résistance de commutateur de fond / / top interrupteur pinMode (topSwitchPin, entrée) ; Placez l’interrupteur haut de la page code pin comme entrée digitalWrite (topSwitchPin, HIGH) ; activer l’interrupteur supérieur résistance / / temps de mesures d’installation coopTimer.setInterval (600000, readPhotoCell) ; lire la photocellule toutes les 10 minutes} / / fonctions / / utiliser la porte de la coop / / / photocel lire niveaux d’extérieur lumineuse readPhotoCell() Sub {/ / fonction devant être appelé à plusieurs reprises - par cooptimer dans le programme d’installation photocellReading = analogRead(photocellPin) ; Serial.Print ("lecture analogique Photocel =") ; Serial.println(photocellReading) ; Si la valeur photocel seuils (photocellReading > = 0 & & photocellReading < = 3) {photocellReadingLevel = « 1 » ; Serial.Print ("niveau de lecture de Photocel:") ; Serial.println ("- foncé ») ; } else if (photocellReading > = 4 & & photocellReading < = 120) {photocellReadingLevel = « 2 » ; Serial.Print ("niveau de lecture de Photocel:") ; Serial.println ("-Twilight") ; } else if (photocellReading > = 125) {photocellReadingLevel = « 3 » ; Serial.Print ("niveau de lecture de Photocel:") ; Serial.println ("- Light") ; }} //debounce bas reed commutateur Sub debounceBottomReedSwitch() {//debounce bas reed commutateur bottomSwitchPinVal = digitalRead(bottomSwitchPin); / / lire la valeur d’entrée et stockez-la dans le val delay(10) ; bottomSwitchPinVal2 = digitalRead(bottomSwitchPin); / / lire la valeur d’entrée à nouveau pour vérifier ou rebondir si (bottomSwitchPinVal == bottomSwitchPinVal2) {/ / Veillez à ce que nous avons obtenu 2 lectures cohérente! si (bottomSwitchPinVal! = bottomSwitchState) {/ / l’état de l’interrupteur a changé
! bottomSwitchState = bottomSwitchPinVal ; } Serial.print ("valeur de commutateur en bas:") ; afficher "la valeur de commutateur bas:" Serial.println(digitalRead(bottomSwitchPin)) ; afficher la valeur actuelle du commutateur inférieur ; }} / / debounce reed haut commutateur Sub debounceTopReedSwitch() {topSwitchPinVal = digitalRead(topSwitchPin); / / lire la valeur d’entrée et stockez-la dans le val delay(10) ; topSwitchPinVal2 = digitalRead(topSwitchPin); / / lire la valeur d’entrée à nouveau pour vérifier ou rebondir si (topSwitchPinVal == topSwitchPinVal2) {/ / Veillez à ce que nous avons obtenu 2 lectures cohérente! si (topSwitchPinVal! = topSwitchState) {/ / l’état du bouton a changé! topSwitchState = topSwitchPinVal;} Serial.Print (« haut de la page Switch valeur: ") ; afficher "la valeur de commutateur bas:" Serial.println(digitalRead(topSwitchPin)) ; afficher la valeur actuelle du commutateur inférieur ; }} / / stop la coop porte moteur stopCoopDoorMotorB() Sub {digitalWrite (directionCloseCoopDoorMotorB, basse); / / arrêter de sens proche du moteur digitalWrite (directionOpenCoopDoorMotorB, basse); / / mettez le moteur direction open analogWrite (enableCoopDoorMotorB, 0); / / activer le moteur, vitesse 0} / / fermer le moteur de porte de coop (dir moteur proches = vers la droite) void closeCoopDoorMotorB() {digitalWrite (directionCloseCoopDoorMotorB, HIGH); / / mettez le sens étroit du moteur digitalWrite (directionOpenCoopDoorMotorB, basse); / / éteindre moteur direction open analogWrite (enableCoopDoorMotorB, 255); / / activer le moteur , pleine vitesse si (bottomSwitchPinVal == 0) {/ / si le circuit de commutation pour le roseau bas est fermée stopCoopDoorMotorB() ; Serial.Print ("Coop porte fermée - aucun danger") ; }} / / ouvrir la porte de la coop (dir moteur ouvert = dans le sens antihoraire) void openCoopDoorMotorB() {digitalWrite (directionCloseCoopDoorMotorB, basse); / / arrêter de sens proche du moteur digitalWrite (directionOpenCoopDoorMotorB, HIGH); / / mettez le moteur direction open analogWrite (enableCoopDoorMotorB, 255); / / activer la vitesse moteur, complet si (topSwitchPinVal == 0) {/ / si le circuit de commutation haut reed est fermé stopCoopDoorMotorB() ; Serial.Print ("Coop porte ouverte - danger!") ; }} void doCoopDoor() {si (photocellReadingLevel == '1') {/ / si il fait sombre si (photocellReadingLevel! = '2') {/ / si ce n'est pas le crépuscule si (photocellReadingLevel! = '3') {/ / si ce n’est pas clair debounceTopReedSwitch(); / / lire et debounce les commutateurs debounceBottomReedSwitch() ; closeCoopDoorMotorB(); / / fermer la porte}}} si (photocellReadingLevel == '3') {/ / si c’est la lumière si (photocellReadingLevel! = '2') {/ / si ce n'est pas le crépuscule si (photocellReadingLevel! = '1') {/ / si ce n’est pas sombre debounceTopReedSwitch(); / / lire et debounce les commutateurs debounceBottomReedSwitch() ; openCoopDoorMotorB(); / / ouvrir la porte}}}} / / *** la boucle *** void loop() {/ / interrogation produit coopTimer.run() ; doCoopDoor();}

Leçons apprises

Ce que j’ai appris sur la porte, Arduino, lumière et la construction :

  • Préférable de vérifier les niveaux de lumière toutes les 10 minutes pour éviter les lectures rebondir en arrière entre twilight/clair/sombre durant ces aube/crépuscule minutes
  • Tester votre porte avec vos poules pour voir si aucun d'entre eux aiment s’accrocher à l’extérieur après les heures
  • Tester les valeurs réelles de la lumière à l’extérieur est très important (plusieurs variables impliquées : lumière de la maison du voisin, nuages, interne/externe coop lumières etc..)
  • Debouncing de vos commutateurs dans le code de l’Arduino est important (porte va sauter partout et échoue comme lectures électroniques varient considérablement de la milliseconde)
  • Tendre la main à l’aide sur les Forums Arduino avant de tirer vos cheveux. (soyez gentil, faire vos devoirs et poser des questions très précises)
  • J’ai changé de micro-switchs d' interrupteurs reed (aimants) parce que je ne voulais pas la mécanique des micro-switchs d’échouer au fil du temps

Ce que j’ai appris sur les poulets :

  • Garder une lumière au sein de la coop peut garder des poulets à l’extérieur de plus de temps (je pense que b/c la lumière ambiante brille à l’extérieur) et c’est important quand on veut automatiser cette porte, afin qu’ils ne s’accidentellement verrouillés.
  • Ils peuvent sauter et voler (haut et loin)
  • Ils aiment à se percher en toute sécurité pendant la nuit, mais ne veulent rien de plus qu’au sortir dès qu’il est lumière

Articles Liés

Poulet Coop porte coulissante Prototype

Poulet Coop porte coulissante Prototype

Donc, nous avons récemment acheté quelques poulets. Qu'il commence à faire nuit les poules seront à la tête dans la cage pour la sécurité et de siestes. Au premier feu, ils vont être up et sur et la tête dehors dans le poulailler. Le problème est ; l
Simple automatique Chicken Coop porte

Simple automatique Chicken Coop porte

Dans ce Instructable je vais montrer comment faire un simple poulet automatique coop gâche.Pour toute personne qui élève des poulets, la menace toujours présente d'animaux prédateurs comme les renards est toujours un sujet d'inquiétude. Récemment, no
Élever des poulets Your par Coops de bâtiment avec différents Plans de poulet Coop

Élever des poulets Your par Coops de bâtiment avec différents Plans de poulet Coop

si vous avez des plans pour élever votre propre poulet, c'est aussi une excellente idée à envisager certains PCO poulet important, où vous pouvez augmenter votre poulet. La première pensée de construire votre poulailler peut sembler être une tâche in
Poulet Coop - quatre saisons Chicken Coop idées

Poulet Coop - quatre saisons Chicken Coop idées

Comment construire un poulailler pour élever des poulets pendant quatre saisons ?Idées, construire des guides, des instructions détaillées.Lire la suite : poulailler toutes saisonsÉtape 1: Créer une coopérative de poule en plein air avec des nichoirs
Contrôleur de poulet Coop lampe

Contrôleur de poulet Coop lampe

Nous avons des poulets, et en hiver, nous avons des lampes chauffantes pour les garder chauds. Mais nous devons aller à la coop et mettez-le hors tension si il fait trop chaud et allumez-le s'il fait trop froid. J'ai voulu faire un système de capteur
Bois de poulet, Coop,

Bois de poulet, Coop,

Poulailler fabriqué à partir de tout bois, grillage et une feuille de métal. Conception nouvelle et unique. Seulement 8 étapes et que sa fini ! Obtenir les matériaux avant de commencer la constructionÉtape 1: Étape 1: collecte des matériaux & peintur
Mes poulets coop

Mes poulets coop

Veuillez m'excuser pour la mauvaise traduction. Mon anglais est très mauvais, et j'espère que vous comprenez mon exposé...Mon poulailler construit en récupérer des palettes en bois.1. l'armature est faite en tasseau de 30 X 50 mm.2. toutes les partie
Poulet Coop gravité PVC Feeder

Poulet Coop gravité PVC Feeder

Il y a de nombreux conducteurs de poulet PVC là-bas... ce qui est nôtre unique ? C'est simple et peu coûteux et il fonctionne très bien !Au départ, nous avons construit une mangeoire avec un Y au fond qui alimentent les deux gauche et droit, mais il
Faire un poulet coop de ferme ordure

Faire un poulet coop de ferme ordure

faire un poulailler à l'aide de restes trouvés facilement autour de la ferme ou à la pointe. Clôtures treillis, élagage arbre flexible, boue, paille et étain. Ce poulailler utilise des techniques de tissage très basiques et de la terre, techniques de
Android automatique électrique Ouvrez la porte avec le balayage de code de QR

Android automatique électrique Ouvrez la porte avec le balayage de code de QR

ce tutoriel simple, vous montrer, comment faire une gâche électrique simple.Pas besoin de boutons.Lorsque vous ouvrez l'application, le téléphone automatique connecte votre arduino via bluetooth,et scanner le code QR, puis ouvrez la porte pour 3 seco
Alimenteur automatique de poulet

Alimenteur automatique de poulet

Demande mangeoire kit est une mangeoire de gravité très fiable, à la demande qui maintient votre flux sûr et loin des éléments et des souris. Que vous utilisiez en intérieur ou extérieur, kit de PECk-O-MATIC demande mangeoire exerce vos oiseaux picor
Appareil de chauffage Lunchbox poulet coop

Appareil de chauffage Lunchbox poulet coop

un appareil bon marché, facile pour petits poulaillers.Étape 1: ingrédients : j'ai utilisé une boîte à lunch 2 $ de la Banque d'année indésirable bon marché local et une lumière d'IKEA HEMMA. J'ai également acheté une Thermocube pour réguler la tempé
Page d’accueil d’e/s automatique ouverture/fermeture de porte d’entrée

Page d’accueil d’e/s automatique ouverture/fermeture de porte d’entrée

OBJECTIF :L'opération OPEN & CLOSE de la porte de verrouillageLa porte s'ouvre complètement le front montant de 1 capteur & Gate doit fermer complètement par un front descendant du capteur 2Contrôle:Se connecter i/o. Télécharger le logiciel iciPla
Arrière-cour poulet coop/poulailler

Arrière-cour poulet coop/poulailler

ce poulailler a été faite de morceaux de contreplaqué, des morceaux de planches qui traînent au sous-sol, 2 morceaux de plexiglas permettant de couvrir les puits de fenêtre sur le devant de la maison, un bâton d'yard, une béquille, un sac en plastiqu