Innholdsfortegnelse:

IoT Outdoor Pet Door: 6 trinn (med bilder)
IoT Outdoor Pet Door: 6 trinn (med bilder)

Video: IoT Outdoor Pet Door: 6 trinn (med bilder)

Video: IoT Outdoor Pet Door: 6 trinn (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door

Jeg ble inspirert av dette instruerbare til å lage en automatisk hønsehusdør. Ikke bare ville jeg ha hønsehusdøren på en timer, men jeg ønsket også å koble døren til internett slik at jeg kunne kontrollere den med telefonen eller datamaskinen min. Denne døren ble bygget for mitt hønsehus, men den kan lett brukes på andre typer boliger for en rekke kjæledyr. Du kan også bruke forskjellige typer 12V -motorer i tillegg til den gamle bilantennemotoren jeg brukte.

Etter å ha satt opp og koblet Adafruit IO og IFTTT til min ESP8266, kan kyllingdørdøren min styres online. Døren kan åpnes eller lukkes:

1) På presise tidspunkt som jeg skriver inn på adafruit.io

2) Ved å trykke på en knapp på telefonen min

3) Ved å sende en tekstmelding til et bestemt nummer

4) Ved å klikke på en knapp på adafruit.io

5) Ved å trykke på en fysisk knapp

På toppen av disse funksjonene kan hønsehusdøren sende push -varsler til telefonen min via IFTTT -appen om problemer med døren, for eksempel at døren ikke åpnes eller lukkes.

Fordi hønsegården min er utenfor omtrent 500 fot fra WiFi -ruteren min, brukte jeg en 433MHz RFM69HCW sender og mottaker sammen med en ESP8266 for å gjennomføre dette prosjektet. Det er en svart innendørs senderboks med maskinvare som er koblet til internett og en grå utendørs mottakerboks som styrer motoren.

Denne instruksen tar deg gjennom prosessen med å lage maskinvaren som kreves for å kontrollere en 12V motor som åpner eller lukker min hønsehusdør.

Jeg brukte følgende deler:

Adafruit 32u4 med 433MHz RFM69HCW - $ 25

Adafruit MCP23017 I2C 16 input/output port expander IC - $ 2,95

Adafruit Feather HUZZAH med ESP8266 WiFi - $ 16,95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $ 10

Adafruit SMA -kontakt for 1,6 mm tykke PCB - $ 2,50

Adafruit uFL SMA -antennekontakt - $ 0,75

Adafruit RGB -trykknapp - $ 10,95

12V strømforsyning - $ 7

5V USB -strømforsyning - $ 7

Micro USB -kabel - $ 5

4 Channel Relay Board (kan bruke 2 kanaler)- $ 7

DC -DC Buck Converter (bare brukt en, men kommer i en pakke med 5) - $ 20

Reed Switch (magnetisk dørbryter sensor) - $ 9

2x 433MHz Omnidireksjonell antenne - $ 6

uFL til SMA kabeladapter (bare brukt, men kommer i pakke med 2) - $ 5

Vanntett utendørs ABS prosjektboks - $ 11

Svart ABS prosjektboks - $ 10

20x4 blå tegn LCD - $ 10

12V bilantennemotor - ~ $ 25 på ebay

Ledning og motstander

Trinn 1: Utendørs mottaker

Utendørs mottaker
Utendørs mottaker
Utendørs mottaker
Utendørs mottaker

Utendørsmottakeren består av en Adafruit 32u4 med 433MHz RFM69HCW koblet til noen få reléer som slår på eller av strøm for en 12V motor. Disse modulene samt en 12V til 5V DC-DC-omformer er inne i en vanntett grå prosjektboks. Til slutt er det en dørbryter -sensor koblet til en av pinnene på 32u4 Arduino -mikrokontrolleren som registrerer om døren er åpnet eller lukket ordentlig eller ikke når den skal ha det.

Hvert 15. sekund sender innendørs senderen "Åpen" eller "Lukk". Basert på den mottatte kommandoen, vil Arduino 32u4 slå på eller av et relé. For motoren jeg valgte, som er en gammel bilantennemotor, måtte jeg slå på eller av to reléer på grunn av hvordan motoren er koblet til. I utgangspunktet var det et relé for å slå på strømmen og deretter et annet relé som styrte om motoren forlenget eller trekket seg inn eller ikke.

Når den åpne eller lukkede overføringen er mottatt, svarer utendørsmottakeren med "sensorOpen" eller "sensorClosed" for å indikere statusen til dørbryterføleren. Ideelt sett vil kommandoen "åpen" returnere et "sensorOpen" -svar, men hvis døren setter seg fast eller motoren setter seg fast, vil disse ikke stemme overens. Når de ikke stemmer overens, viser innendørssenderen den informasjonen og et push -varsel blir sendt til telefonen.

Trinn 2: Koble til utendørs mottaker maskinvare

Koble til utendørs mottaker maskinvare
Koble til utendørs mottaker maskinvare
Koble til utendørs mottaker maskinvare
Koble til utendørs mottaker maskinvare
Koble til utendørs mottaker maskinvare
Koble til utendørs mottaker maskinvare

Maskinvaren til utendørs mottakeren er ikke så vanskelig å koble til. Jeg inkluderte en fritzingskjema nedenfor, slik at pinnene jeg brukte lett kan sees.

Som jeg sa ovenfor, krevde motoren jeg brukte to reléer. Jeg tok med et bilde av pinout. I det andre du kobler 12V til den røde ledningen, vil motoren trekke seg tilbake hvis den er forlenget. Hvis du kobler 12V til den røde ledningen og den grønne ledningen samtidig, vil motoren strekke seg.

Reed -bryteren jeg koblet ovenfor, bør kobles til som en normalt lukket bryter. Forskjellen mellom normalt åpen og normalt lukket er forklart på bildet jeg vedlagte ovenfor. Ved hjelp av programvare er det en intern pullup -motstand festet til inngangspinnen på 32u4, så alt du trenger å gjøre er å koble dørbryteren til inngangspinnen og også til jord.

Du må koble en antenne til Adafruit 32u4. Ta en titt på Adafruits virkelig godt forklarte opplæring om dette trinnet. Jeg valgte å bruke en ekstern antenne i stedet for et stykke ledning for å få bedre rekkevidde.

Trinn 3: Innendørs sender

Innendørs sender
Innendørs sender
Innendørs sender
Innendørs sender
Innendørs sender
Innendørs sender

Innendørssenderen består av en Adafruit Radio FeatherWing 433MHz RFM69HCW stablet på toppen av en Adafruit Feather HUZZAH med ESP8266 WiFi. Disse modulene er koblet til et display på 20 x 4 tegn og en RGB -sølvknapp inne i en svart prosjektboks.

Displayet har en NTC -synkronisert klokke, RSSI -styrken i dB (måler styrken på radiosignaler), tidspunktet når hønsehusdøren åpnes, tidspunktet når hønsehusdøren lukkes og dørens nåværende status. Knappen er rød når døren er lukket og grønn når døren er åpen.

Hvis utendørs mottakeren mister strøm eller hvis 433MHz -signalet ikke kan sendes av en eller annen grunn, går displayet og RGB -knappen inn i den første av to mulige feilmoduser. I den første feilmodusen vil displayet vise "FEIL! Prøv å starte utendørsmottakeren på nytt." og knappen vil ikke ha en farge. Hvis dørbryterens sensor oppdager at døren ikke lukket eller åpnet seg ordentlig, går displayet og RGB -knappen inn i den andre av to feilmoduser. I den andre feilmodusen vil displayet vise "FEIL! Problem med dør eller bryter sensor." og knappen vil ikke ha en farge. Når problemet løser seg selv, vil displayet og RGB -knappen gå tilbake til det normale. Du kan motta push -varsler til telefonen din hvis en av disse feilmodusene oppstår (jeg går over det oppsettet i et senere trinn).

Trinn 4: Koble til innendørs sendermaskinvare

Koble til innendørs sendermaskinvare
Koble til innendørs sendermaskinvare
Koble til innendørs sendermaskinvare
Koble til innendørs sendermaskinvare

Etter å ha stablet Adafruit Radio FeatherWing 433MHz RFM69HCW på toppen av en Adafruit Feather HUZZAH med ESP8266 WiFi, er det bare 2 pins igjen som ikke tas, I2C -pinnene SDA og SCL. Dette er grunnen til at jeg gikk med MCP23017 integrert krets (IC). Det er en veldig kul IC som kobler opptil 16 ekstra input/output pins til en hvilken som helst mikrokontroller over I2C. I tillegg er det et forhåndsskrevet bibliotek kalt Adafruit-RGB-LCD-Shield som bruker denne IC med en tegnvisning som er teknisk skrevet for dette Adafruit-produktet, men det fungerer perfekt for dette prosjektet.

Ideen om å bruke MCP23017 med et tegnvisning kommer fra denne meget velskrevne instruksen. Vennligst sjekk det ut!

Jeg tok det instruerbare, og i stedet for å koble flere knapper og en RGB -skjerm til IC, koblet jeg bare en knapp som hadde en RGB LED inne i den og en monokrom skjerm til IC. Dette tillot meg å definere PIN 1 på IC (vanligvis brukt for den blå bakgrunnsbelysningen på en RGB -skjerm) som bakgrunnsbelysning for min monokrome skjerm, PIN 28 (vanligvis brukt for den grønne bakgrunnsbelysningen til en RGB -skjerm) som den røde LED -en inne i -knappen og PIN -kode 27 (vanligvis brukt for den røde bakgrunnsbelysningen på en RGB -skjerm) som den grønne LED -en inne i knappen. PIN 24 var koblet til den ene siden av knappen og den andre siden var koblet til bakken. Du kan se pinout på knappen på bildet vedlagt ovenfor (jeg lot den blå katoden være frakoblet).

I tillegg til å bruke den instruerbare jeg koblet til for å koble til skjermen, har jeg inkludert en fritzing -skjematisk oversikt som hjelper deg med å koble til alt.

Du må korte tre pinner på toppen av FeatherWing 433MHz RFM69HCW som forklart av denne Adafruit -opplæringen. Du må også koble en antenne til FeatherWing 433MHz RFM69HCW. Ta en titt på Adafruits virkelig godt forklarte opplæring om dette trinnet. Jeg valgte å bruke en ekstern antenne med en sidemontert SMA -kontakt i stedet for et stykke ledning for å få bedre rekkevidde.

Trinn 5: Koble til Adafruit. IO og IFTTT

Kobler til Adafruit. IO og IFTTT
Kobler til Adafruit. IO og IFTTT
Kobler til Adafruit. IO og IFTTT
Kobler til Adafruit. IO og IFTTT

Adafruit IO:

Følg instruksjonene i denne Adafruit -opplæringen for å registrere deg for Adafruit. IO hvis du ikke har en konto. Du bør også lese om hva en feed og et dashbord er.

Enkelt sagt, et dashbord er omtrent som det grafiske brukergrensesnittet mens feedene er det du sender data til, slik at du kan lagre det på internett. Du må opprette 1 dashbord og 4 feeder. Jeg navngav min før jeg visste hvordan jeg stavet hønsehuset riktig, så tilgi feil stavemåte. Hvis du ikke vil gi nytt navn til feednavnene i arduino -koden, bare bruk den samme navngivningen som jeg gjorde.

Lag de fire feedene først:

1) "Chicken Coup" Dette er for åpen/lukket bryter

2) "Chicken Coup Timer" Dette er for den åpne timeren

3) "Chicken Coup Timer 2" Dette er for lukkertimeren

4) "Chicken Coup Error Message" Dette er for feilmeldingene

Lag et dashbord ved siden av kalt Chicken Coup og legg til 4 blokker ved å bruke den blå knappen +. Se bildet ovenfor for typer blokker du bør plassere, samt navnene på blokkene. Sørg for å navngi bryterstatusene nøyaktig "Åpen" og "Lukket"

IFTTT:

IFTTT -delen av dette prosjektet legger til muligheten til å trykke på en knapp på telefonen og sende en tekst for å åpne eller lukke hønsehusdøren. Det lar også IFTTT -appen sende deg push -varsler hvis noe er publisert til Chicken Coup Error Message feed. Hvis du ikke vil ha disse mulighetene, kan du hoppe over denne delen.

Sett først opp en IFTTT -konto hvis du ikke allerede har en. Hvis du vil bruke de ferdiglagde appletene jeg opprettet, bare naviger til kontoen min og slå på appletene du vil ha. Ellers må du lage din egen og abonnere eller publisere adafruit -feedet du opprettet ovenfor.

Trinn 6: Last opp kode og rediger WiFi SSID og passord

Du må gå gjennom denne siden i Adafruit -opplæringen for å kunne laste opp kode til innendørssenderen.

Du må gå gjennom denne siden i Adafruit -opplæringen for å kunne laste opp kode til utendørs mottakeren.

Du må installere RFM69 -biblioteket, Adafruit_RGBLCDShield -biblioteket, NTC -klokkebiblioteket kalt simpleDSTadjust og ticker -biblioteket. Du finner en veiledning om hvordan du gjør det her.

Åpne Arduino IDE og last opp "Outdoor_Receiver.ino" -koden til utendørs Arduino 32u4 via en USB -kabel.

Deretter åpner du "Indoor_Transmitter.ino", åpner config.h -fanen og skriver inn ditt WiFi -navn (SSID) og passord inne i anførselstegnene. Deretter får du Adafruit. IO -brukernavnet og IO -nøkkelen ved å følge denne opplæringssiden og skrive den inn i kategorien config.h.

Hvis du endret navnene på Adafruit IO -feedene, må du redigere koden i hovedfanen Indoor_Transmitter. Rediger følgende:

AdafruitIO_Feed *toggleSwitch = io.feed ("kyllingkupp");

AdafruitIO_Feed *timer = io.feed ("Chicken Coup Timer");

AdafruitIO_Feed *timer2 = io.feed ("Chicken Coup Timer 2");

AdafruitIO_Feed *error = io.feed ("Feilmelding om kyllingkupp");

Det burde være alt du trenger å gjøre! Hvis du vil forstå hvordan de to skissene fungerer ytterligere, kommenterte jeg koden. Gi meg beskjed hvis du har spørsmål. Lykke til!

Anbefalt: