Automatisk Kyckling Coop dörren (10 / 10 steg)

Steg 10: Arduino koden för automatisk Kyckling Coop dörren



Obs: för en trevligare utsikt över bilder, delar, diagram och koden, vänligen besök:
http://davenaves.com/blog/Interests-projects/Chickens/Chicken-Coop/Arduino-Chicken-Door/

Insider information
För att förhoppningsvis spara lite tid, jag ska släppa in dig på de knep som äntligen fick denna dörr att arbeta med ljusnivåer, debouncing växlarna och * kycklingar *. (som du ser i koden) Kolla ljuset nivåer varje 10 minuter för att undvika de avläsningar som studsar fram och tillbaka mellan mörk/twilight/ljus under dessa gryning/skymning minuter. Sedan, när "dark" nås (för mig valde jag > = 0 & & < = 3 baserat på när mina kycklingar faktiskt gick och stannade i coop) aktiverar motor dir ner > Dämpningstid växlarna > stoppa. Sedan göra motsatsen för morgonen. Jag är säker på att det finns olika, kanske mer effektiva metoder, men denna kod har varit igång felfritt ett tag nu och jag känner mig tillräckligt säker för att gå ut på natten utan att oroa om rovdjur. Även om jag fortfarande på något sätt hitta en anledning att kontrollera ChickenCam från tid till annan. (för närvarande väntar min nya servomotorer och night vision webcam att komma med posten)

bibliotek
< p > / / bibliotek < br >
< /p >< p > #include < SimpleTimer.h > / / läsa in SimpleTimer för att göra timers, istället för förseningar & alltför många millis uttalanden < br > #include < OneWire.h > / / läsa in onewire < /p > / *
(innan du kör skissen, ta bort blanksteg före och efter ovanstående ">" "<" tecken - instructables redaktören ville inte publicera det inkluderar inte jag lagt till dessa utrymmen)
*/

/*
* Copyright 2013, David Naves (http://daveworks.net, < en rel = "nofollow" > http://davenaves.com)
< /a >
*
* Detta program är fri programvara; Du kan vidaredistribuera det och/eller
* ändra den enligt villkoren i GNU General Public License
* som offentliggörs av Free Software Foundation; antingen version 3
* för licensen eller (vid ditt alternativ) någon senare version.
*
* Detta program är distribuerat i hopp om att det kommer att vara användbar,
* men utan garantier; utan att ens underförstådd garanti om
* SÄLJBARHET eller lämplighet för ett visst ändamål. Se den
* GNU General Public License för mer detaljer.
*
* Du bör ha fått en kopia av GNU General Public License
* tillsammans med detta program; om inte, skriv till fri programvara
* Foundation, Inc., 51 Franklin Street, femte våningen, Boston, MA
* 02110-1301, USA.

*/

/*
* Jag hoppas att om du använda/ändra denna kod, du kommer att dela din
* coop projekt med mig och världen (bilder, oavsett)
* Jag är stor delning.
* Skål,
* //D
*/

Pins
CONST int photocellPin = A0; fotocell ansluten till analoga 0
CONST int enableCoopDoorMotorB = 7. Aktivera motor b - stift 7
CONST int directionCloseCoopDoorMotorB = 8; riktning Stäng motor b - stift 8
CONST int directionOpenCoopDoorMotorB = 9; riktning öppna motor b - pin 9
CONST int bottomSwitchPin = 26. nedre växel är ansluten till stift 26
CONST int topSwitchPin = 27. högsta växeln är ansluten till stift 27

vars

fotocell
int photocellReading; analog läsning av photocel
int photocellReadingLevel; photocel läsa nivåer (mörk, twilight, ljus)

Reed växlar upp och ner på coop dörr

övre växel

int topSwitchPinVal; högsta växeln var för att läsa pin status
int topSwitchPinVal2; högsta växeln var för att läsa pin dröjsmål/debounce status
int topSwitchState; Top switch var för att hålla switch staten

nedre växel

int bottomSwitchPinVal; botten switch var för att läsa pin status
int bottomSwitchPinVal2; botten byta var för att läsa pin dröjsmål/debounce status
int bottomSwitchState; botten byta var för att hålla switch staten

behöver bara 1 SimpleTimer objekt
SimpleTimer coopTimer;
// ************************************** the setup **************************************

void setup(void) {
Serial.BEGIN(9600);

välkomstmeddelande
Serial.println ("kontroll doCoopDoor: varje 10 minuter för ljuset nivåer att öppna eller stänga dörren");
Serial.println();

Coop dörr

Coop dörr motor
pinMode (enableCoopDoorMotorB, produktionen); aktiverar motor pin = utgång
pinMode (directionCloseCoopDoorMotorB, produktionen); motoriska nära riktning pin = utgång
pinMode (directionOpenCoopDoorMotorB, produktionen); motoriska öppen riktning pin = utgång

Coop dörren växlar
nedre växel
pinMode (bottomSwitchPin, ingång); ställa in botten switch pin som indata
digitalWrite (bottomSwitchPin, hög); Aktivera botten switch resistor

övre växel
pinMode (topSwitchPin, ingång); ställa in högsta växeln pin som indata
digitalWrite (topSwitchPin, hög); Aktivera topp switch resistor

tidsbestämda åtgärder installationen
coopTimer.setInterval (600000, readPhotoCell); Läs fotocellen varje 10 minuter

}

funktioner

manövrera coop dörren

photocel att läsa nivåer av yttre ljus

void readPhotoCell() {/ / funktion att kallas upprepade gånger - per cooptimer i installationsprogrammet

photocellReading = analogRead(photocellPin);
Serial.Print ("Photocel Analog läsning =");

Serial.println(photocellReading);

Set photocel threshholds
om (photocellReading > = 0 & & photocellReading < = 3) {
photocellReadingLevel = '1';
Serial.Print ("Photocel läsning nivå:");
Serial.println ("- mörk");
} else om (photocellReading > = 4 & & photocellReading < = 120) {
photocellReadingLevel = "2";
Serial.Print ("Photocel läsning nivå:");
Serial.println ("-Twilight");
} else om (photocellReading > = 125) {
photocellReadingLevel = '3';
Serial.Print ("Photocel läsning nivå:");
Serial.println ("- Light");
}
}

Debounce botten reed switch

void debounceBottomReedSwitch() {

Debounce botten reed switch
bottomSwitchPinVal = digitalRead(bottomSwitchPin); Läs indatavärde och lagra den i val
Delay(10);
bottomSwitchPinVal2 = digitalRead(bottomSwitchPin); Läs indatavärde igen för att kontrollera eller studsa

om (bottomSwitchPinVal == bottomSwitchPinVal2) {/ / se till att vi fick 2 konsekvent avläsningar!
om (bottomSwitchPinVal! = bottomSwitchState) {/ / switch staten har förändrats!
bottomSwitchState = bottomSwitchPinVal;
}
Serial.Print ("botten Switch-värde:"); Visa "botten Switch-värde:"
Serial.println(digitalRead(bottomSwitchPin)); Visa aktuella värdet av botten switch;
}
}

Debounce topp reed switch
void debounceTopReedSwitch() {

topSwitchPinVal = digitalRead(topSwitchPin); Läs indatavärde och lagra den i val
Delay(10);
topSwitchPinVal2 = digitalRead(topSwitchPin); Läs indatavärde igen för att kontrollera eller studsa

om (topSwitchPinVal == topSwitchPinVal2) {/ / se till att vi fick 2 konsekvent avläsningar!
om (topSwitchPinVal! = topSwitchState) {/ / knappen staten har förändrats!
topSwitchState = topSwitchPinVal;
}
Serial.Print ("Top Switch-värde:"); Visa "botten Switch-värde:"
Serial.println(digitalRead(topSwitchPin)); Visa aktuella värdet av botten switch;
}
}

stoppa coop dörr motor
void stopCoopDoorMotorB() {
digitalWrite (directionCloseCoopDoorMotorB, låg); Stäng av motor nära riktning
digitalWrite (directionOpenCoopDoorMotorB, låg); slå på motor öppen riktning
analogWrite (enableCoopDoorMotorB, 0); Aktivera motor, 0 hastighet
}

nära coop dörr motor (motorisk dir nära = medurs)
void closeCoopDoorMotorB() {
digitalWrite (directionCloseCoopDoorMotorB, hög); slå på motor nära riktning
digitalWrite (directionOpenCoopDoorMotorB, låg); Stäng av motor öppen riktning
analogWrite (enableCoopDoorMotorB, 255); möjliggöra motor, full fart
om (bottomSwitchPinVal == 0) {/ / om botten reed switch krets är stängd
stopCoopDoorMotorB();
Serial.Print ("Coop dörren stängd - ingen fara");
}
}

öppna dörren coop (motor dir öppen = motsols)
void openCoopDoorMotorB() {
digitalWrite (directionCloseCoopDoorMotorB, låg); Stäng av motor nära riktning
digitalWrite (directionOpenCoopDoorMotorB, hög); slå på motor öppen riktning
analogWrite (enableCoopDoorMotorB, 255); möjliggöra motor, full fart
om (topSwitchPinVal == 0) {/ / om topp reed switch krets är stängd
stopCoopDoorMotorB();
Serial.Print ("Coop dörren öppen - fara!");
}
}

void doCoopDoor() {

om (photocellReadingLevel == '1') {/ / om det är mörkt
om (photocellReadingLevel! = "2") {/ / om det inte är twilight
om (photocellReadingLevel! = "3") {/ / om det inte är lätt
debounceTopReedSwitch(); läsa och Dämpningstid växlarna
debounceBottomReedSwitch();
closeCoopDoorMotorB(); stänga dörren
}
}
}
om (photocellReadingLevel == "3") {/ / om det är ljus
om (photocellReadingLevel! = "2") {/ / om det inte är twilight
om (photocellReadingLevel! = '1') {/ / om det inte är mörkt
debounceTopReedSwitch(); läsa och Dämpningstid växlarna
debounceBottomReedSwitch();
openCoopDoorMotorB(); Öppna dörren
}
}
}
}

// ************************************** the loop **************************************
void loop() {
röstningen sker
coopTimer.run();
doCoopDoor();

}

Lärdomar

Vad jag har lärt mig om dörren, Arduino, ljus och konstruktion:

  • Bäst att kolla ljusnivåer varje 10 minuter för att undvika de avläsningar som studsar fram och tillbaka mellan mörk/twilight/ljus under dessa gryning/skymning minuter
  • Testa din dörr med din kycklingar för att se om någon av dem gillar att hänga utanför efter timmar
  • Testa de faktiska ljus värdena utanför är mycket viktigt (många variabler inblandade: ljus från grannes hus, moln, intern/extern coop lyser etc.)
  • Debouncing av din växlar inom din Arduino kod är viktigt (dörren kommer att hoppa runt och misslyckas som elektroniska avläsningar varierar mycket av vilken millisekund)
  • Nå ut till hjälp på Arduino forum innan du drar ut håret. (vara trevligt, gör dina läxor och ställa specifika frågor)
  • Jag ändrade från joystickens mikrobrytare till reed växlar (magneter) eftersom jag inte ville mekaniken i mikro-brytarna misslyckas över tid

Vad jag har lärt mig om kycklingar:

  • Att hålla på en ljus inom coop kan hålla kycklingar utanför längre (jag tror b/c de omgivande ljus skiner utanför) och det är viktigt när det gäller att automatisera denna dörr, så de inte kommer få av misstag låst.
  • De kan hoppa och flyga (högt och långt)
  • De älskar att hönshus i säkerhet på natten, men vill inget mer än att få ut så snart det är ljus ut
Se Steg
Relaterade Ämnen

Enkel automatisk Kyckling Coop dörren

I detta Instructable kommer jag att visa hur man gör en enkel automatisk kyckling coop dörröppnare.För alla som håller kycklingar, är ständigt närvarande hotet om rovdjur djur som rävar alltid ett bekymmer. Nyligen hade vi alla våra kycklingar (4 av...

Arduino Kyckling Coop Controller

Under de senaste åren min familj har hållit ex-burhöns - de är cirka 18 månader gammal och har levt hela sitt liv i en bur miljö. Så mycket som vi älskar dessa små buntar av glädjeämnen och ägg kan det vara en arbetsträl att stiga upp tidigt på morgo...

Kyckling Coop Controller v2 programuppdatering

Bilder på tidigare Arduino Kyckling Coop styrenheten och dess nya kusin (överst).Under de senaste 18 månaderna har jag använt min Arduino baserat Kyckling Coop Controller till stor framgång med även några folk där ute redo för att bygga sina egna ver...

Lunchbox kyckling coop värmare

en billig, lätt värmare för liten kyckling coops.Steg 1: ingredienser: Använde jag en $2 matlåda från det lokala billiga skräp /dollar arkivet, och ett ljus från IKEA HEMMA. Jag köpte också en Thermocube för att reglera temperaturen.Steg 2: Klippa hå...

Automatisk Kyckling matare

Gå på nästa steg att se förbättrad version med fullständig instruktion.Jag har gjort en andra förbättrad version av hemlagad Kyckling matare gratis. Min plan var att göra det från material som everybodey har och att det är lätt att bygga.Steg 1: Enkl...

Göra en kyckling coop från gården skräp

göra en hönshuset med rester lätt kan hittas runt gården eller vid spetsen. Fäktning mesh, flexibla träd beskärningen, lera, halm och tenn. Denna kyckling coop använder mycket grundläggande färdigheter för vävning och jorden byggteknik. Mycket lätt f...

Kyckling Coop - fyra säsonger Kyckling Coop idéer

Hur man bygger en hönshuset för att höja kycklingar under fyra säsonger?Idéer, bygga guider, en detaljerade instruktioner.Läs mer: All-kryddar kyckling coopSteg 1: Bygga en utomhus höna coop med holkarFör sommar säsongen en hönshuset med hönsgård.Läs...

Automatisk kyckling dörröppnare med PICAXE

Med hjälp av den fantastiska PICAXE 08M 2 chip jag satte ihop en automatisk coop dörröppnare (heter den Cluck-O-Matic) så jag slapp att gå upp så tidigt på morgonen att låta kycklingarna från deras coop. Detta billiga kyckling dörröppnare enda öppnar...

Kyckling Coop från en lekstuga

om du inte har den samma exakta swingset som vi gjorde, detta Instructable kommer bara ge dig en idé om vad jag gjorde att omvandla min lekstuga till en coop. Självklart ska du inte sluta med samma slutprodukten som mig, men förhoppningsvis några av...

Rosa Kyckling Coop

Min fru bestämde sig hon vill få 2 kycklingar, så vi behövde en hönshuset. Eftersom vi inte hade th pengar att köpa en, gick vi omkring och letar pallar. Vi hittade alla möjliga olika stora sådana, och jag hittade en låda typ lastpall på mekaniken på...

Kyckling Coop gravitation PVC Feeder

Det finns många PVC Kyckling matare ute... Vad är unikt med vår? Det är enkelt och billigt och det fungerar bra!Från början byggde vi en matare med en Y längst ner som foder både vänster och höger, men det höll att få igensatt. Vi hittade denna desig...

Kyckling, Coop, trä

Hönshuset gjord av bara trä, hönsnät & en plåt. Ny och unik design. Endast 8 steg och än dess färdiga! Att få materialet innan du börja byggaSteg 1: Steg 1: samla material & målning ramensTill att börja vårt projekt vi gjort en lista på allt vi må...

Maximera Kyckling Coop utrymme för mer kycklingar

jag hade tagit en befintlig liten hund kennel byggnad och gjorde den till en hönshuset. Kenneln hade vattenförsörjning går till den och lampor och betonggolv. När jag först konverterade det jag bara hade utrymme några höns så jag inte var att tänka m...

Kyckling Coop skjutdörr prototyp

Så, vi köpte nyligen några höns. Som det börjar bli mörkt kommer att kycklingarna gå till coop för säkerhet och slummer. Vid första ljus kommer de vara upp och om och huvud ut in i hönsgården. Problemet är; skjutdörr till/från coop har manuellt öppna...

Hemlagad kyckling coop

nu jag inte var planerar att göra en instructable om detta vid tiden för byggnad, så några steg kanske saknas, men du kommer att få den allmänna idén. i grunden är detta min hemlagade hönshuset. Jag har ingen trä fungerande färdigheter och grundlägga...

Kyckling Coop - uppvärmd höna Coop - höna hus byggnad Plan

Hej, byggde jag en sommar och uppvärmd hönshuset eller hönshus för mina hönor. Fjäderfä kan leva på. Här visar temperaturen - 43 F någon gång. Därför byggde jag en uppvärmd coop. Jag producerade en gratis diy guide steg för steg med bilder att visa h...

Kyckling Coop

detta är min hönshuset, designad av planerar av jrossetti. Ursprungliga instructable kallas:"En liten kyckling traktor för den stadsbo" eller något liknande....

Kyckling Coop lampa Controller

Vi har kycklingar, och på vintern, vi har värmelampor att hålla dem varma. Men vi måste gå ut till coop och stänga av det om det är för varmt, och slå på den om det är för kallt. Jag ville göra en temperatur sensorsystem det vänden om på och av autom...

Android automatisk öppen elektriska dörren med QR kod scan

denna enkla handledning, Visa dig, hur man gör en enkel elektrisk dörröppnare.Inga knappar behövs.När du öppnar appen, telefonen automatiskt ansluta till din arduino via bluetooth,och skanna QR-koden, sedan öppna dörren för 3 SEK, och app stängning,...