Innehållsförteckning:

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

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

Video: IoT Outdoor Pet Door: 6 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
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

Jag inspirerades av detta instruerbara att skapa en automatisk hönsdörr. Jag ville inte bara ha hönsdörren på en timer, utan jag ville också ansluta dörren till internet så att jag kunde styra den med min telefon eller min dator. Denna dörr byggdes för mitt hönshus, men den kunde enkelt appliceras på andra typer av hus för en mängd olika husdjur. Du kan också använda olika typer av 12V -motorer förutom den gamla bilantennmotorn jag använde.

Efter att ha installerat och anslutit Adafruit IO och IFTTT till min ESP8266 kan min hönshusdörr styras online. Dörren kan öppnas eller stängas:

1) Vid exakta tider som jag anger på adafruit.io

2) Genom att trycka på en knapp på min telefon

3) Genom att skicka ett textmeddelande till ett visst nummer

4) Genom att klicka på en knapp på adafruit.io

5) Genom att trycka på en fysisk knapp

Utöver dessa funktioner kan hönshusdörren skicka push -meddelanden till min telefon via IFTTT -appen om eventuella problem med dörren, till exempel att dörren inte kan öppnas eller stängas.

Eftersom mitt hönshus är utanför cirka 500 fot från min WiFi -router använde jag en 433MHz RFM69HCW -sändare och mottagare ihop med en ESP8266 för att genomföra detta projekt. Det finns en svart inomhus sändarbox med hårdvara som är ansluten till internet och en grå utomhusmottagarlåda som styr motorn.

Denna instruerbara tar dig igenom processen att skapa den hårdvara som krävs för att styra en 12V motor som öppnar eller stänger min hönshusdörr.

Jag använde följande delar:

Adafruit 32u4 med 433MHz RFM69HCW - $ 25

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

Adafruit fjäder HUZZAH med ESP8266 WiFi - $ 16,95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $ 10

Adafruit SMA -kontakt för 1,6 mm tjocka kretskort - $ 2,50

Adafruit uFL SMA -antennkontakt - $ 0,75

Adafruit RGB -tryckknapp - $ 10,95

12V strömförsörjning - $ 7

5V USB -strömförsörjning - $ 7

Micro USB -kabel - $ 5

4 Channel Relay Board (kan använda 2 kanaler)- $ 7

DC -DC Buck Converter (används endast en men kommer i ett paket med 5) - $ 20

Reed Switch (magnetisk dörrbrytarsensor) - $ 9

2x 433MHz rundstrålande antenn - $ 6

uFL till SMA -kabeladapter (används endast en men levereras som 2 -pack) - $ 5

Vattentät utomhusprojektlåda för ABS - $ 11

Svart ABS -projektlåda - $ 10

20x4 Blue Character LCD - $ 10

12V bilantennmotor - ~ $ 25 på ebay

Tråd och motstånd

Steg 1: Utomhusmottagare

Utomhusmottagare
Utomhusmottagare
Utomhusmottagare
Utomhusmottagare

Utomhusmottagaren består av en Adafruit 32u4 med 433MHz RFM69HCW ansluten till några reläer som slår på eller av strömmen för en 12V motor. Dessa moduler samt en 12V till 5V DC-DC-omvandlare är inuti en vattentät grå projektlåda. Slutligen finns det en dörrbrytarsensor ansluten till en av stiften på 32u4 Arduino mikrokontroller som känner av om dörren är ordentligt öppnad eller stängd när den borde ha.

Var 15: e sekund skickar inomhussändaren "Öppna" eller "Stäng". Baserat på det mottagna kommandot kommer Arduino 32u4 att slå på eller av ett relä. För motorn som jag valde, som är en gammal bilantennmotor, var jag tvungen att slå på eller av två reläer på grund av hur motorn är ansluten. I grund och botten fanns det ett relä för att slå på strömmen och sedan ett annat relä som styr huruvida motorn förlängs eller dras tillbaka.

När den öppna eller stänga sändningen har mottagits svarar utomhusmottagaren med "sensorOpen" eller "sensorClosed" för att indikera status för dörrbrytarsensorn. Helst skulle kommandot "öppen" returnera ett "sensorOpen" -svar, men om dörren fastnar eller motorn fastnar matchar dessa inte. När de inte matchar kommer inomhussändaren att visa den informationen och ett push -meddelande kommer att skickas till din telefon.

Steg 2: Anslutning av utomhusmottagarmaskinvara

Anslutning av utomhusmottagarmaskinvara
Anslutning av utomhusmottagarmaskinvara
Anslutning av utomhusmottagarmaskinvara
Anslutning av utomhusmottagarmaskinvara
Anslutning av utomhusmottagarmaskinvara
Anslutning av utomhusmottagarmaskinvara

Hårdvaran för utomhusmottagaren är inte för svår att koppla ihop. Jag inkluderade en fritzing schematisk nedan så att stiften som jag använde lätt kan ses.

Som jag nämnde ovan krävde motorn jag använde två reläer. Jag inkluderade en bild av pinout. Den andra du ansluter 12V till den röda ledningen kommer motorn att dra sig tillbaka om den är förlängd. Om du ansluter 12V till den röda tråden och den gröna tråden samtidigt kommer motorn att förlängas.

Reed -omkopplaren som jag länkade ovan bör vara ansluten som en normalt stängd switch. Skillnaden mellan normalt öppen och normalt stängd förklaras på bilden jag bifogade ovan. Med hjälp av programvara finns det ett internt pullup -motstånd anslutet till ingångsstiften på 32u4, så allt du behöver göra är att ansluta dörrkontakten till ingångsstiften och även till jord.

Du måste ansluta en antenn till Adafruit 32u4. Kolla in Adafruits riktigt väl förklarade handledning om detta steg. Jag valde att använda en extern antenn istället för en tråd för att få bättre räckvidd.

Steg 3: Inomhus sändare

Inomhus sändare
Inomhus sändare
Inomhus sändare
Inomhus sändare
Inomhus sändare
Inomhus sändare

Inomhussändaren består av en Adafruit Radio FeatherWing 433MHz RFM69HCW staplad ovanpå en Adafruit Feather HUZZAH med ESP8266 WiFi. Dessa moduler är anslutna till en 20x4 teckenskärm och en RGB -silverknapp inuti en svart projektlåda.

Displayen har en NTC -synkroniserad klocka, RSSI -styrkan i dB (mäter radiosignalernas styrka), tiden när hönshusdörren öppnas, tiden när hönshusdörren stängs och dörrens nuvarande status. Knappen är röd när dörren är stängd och grön när dörren är öppen.

Om utomhusmottagaren tappar ström eller om 433MHz -signalen inte kan skickas av någon anledning, går displayen och RGB -knappen in i det första av två möjliga fellägen. I det första felläget kommer displayen att visa "ERROR! Prova att starta om utomhusmottagaren." och knappen kommer inte att ha någon färg. Om dörrbrytarsensorn upptäcker att dörren inte stängdes eller öppnades ordentligt, går displayen och RGB -knappen in i det andra av två fellägen. I det andra felläget kommer displayen att visa "ERROR! Problem med dörr- eller switchgivare." och knappen kommer inte att ha någon färg. När problemet löser sig kommer displayen och RGB -knappen att återgå till det normala. Du kan få push -aviseringar till din telefon om något av dessa fellägen inträffar (jag går igenom den inställningen i ett senare steg).

Steg 4: Anslutning av hårdvara för inomhussändare

Anslutning av hårdvara för inomhussändare
Anslutning av hårdvara för inomhussändare
Anslutning av inomhus sändarhårdvara
Anslutning av inomhus sändarhårdvara

Efter att ha staplat Adafruit Radio FeatherWing 433MHz RFM69HCW ovanpå en Adafruit Feather HUZZAH med ESP8266 WiFi finns det bara 2 stift kvar som inte tas, I2C -stiften SDA och SCL. Det är därför jag gick med MCP23017 integrerad krets (IC). Det är en riktigt cool IC som ansluter upp till 16 extra ingångs-/utgångsstiften till alla mikrokontroller över I2C. Dessutom finns det ett förskrivet bibliotek som heter Adafruit-RGB-LCD-Shield som använder denna IC med en teckenvisning som är tekniskt skriven för denna Adafruit-produkt, men det fungerar perfekt för detta projekt.

Idén att använda MCP23017 med en teckenvisning kommer från denna mycket välskrivna instruerbara. Kolla gärna in det!

Jag tog det instruerbara och istället för att ansluta flera knappar och en RGB -skärm till IC, anslöt jag bara en knapp som hade en RGB LED inuti den och en svartvit skärm till IC. Detta tillät mig att definiera PIN 1 för IC (vanligtvis används för den blå bakgrundsbelysningen på en RGB -display) som bakgrundsbelysningen för min svartvita display, PIN 28 (används vanligtvis för den gröna bakgrundsbelysningen på en RGB -display) som den röda lysdioden inuti knappen och PIN 27 (används vanligtvis för den röda bakgrundsbelysningen på en RGB -display) som den gröna lysdioden inuti knappen. PIN 24 var ansluten till ena sidan av knappen och den andra sidan var ansluten till jord. Du kan se pinout på knappen på bilden ovan (jag lämnade den blå katoden frånkopplad).

Förutom att använda den instruerbara jag länkade för att hjälpa till att koppla upp skärmen, har jag inkluderat en fritzing schema som hjälper dig att ansluta allt.

Du måste korta tre stift på toppen av FeatherWing 433MHz RFM69HCW som förklaras av denna Adafruit -handledning. Du måste också ansluta en antenn till FeatherWing 433MHz RFM69HCW. Kolla in Adafruits riktigt väl förklarade handledning om detta steg. Jag valde att använda en extern antenn med en sidmonterad SMA -kontakt istället för en tråd för att få bättre räckvidd.

Steg 5: Ansluter till Adafruit. IO och IFTTT

Ansluter till Adafruit. IO och IFTTT
Ansluter till Adafruit. IO och IFTTT
Ansluter till Adafruit. IO och IFTTT
Ansluter till Adafruit. IO och IFTTT

Adafruit IO:

Följ instruktionerna i denna Adafruit -handledning för att registrera dig för Adafruit. IO om du inte har ett konto. Du bör också läsa om vad ett flöde och en instrumentpanel är.

Enkelt uttryckt är en instrumentpanel ungefär som det grafiska användargränssnittet medan flödena är det du skickar data till så att du kan lagra den på internet. Du måste skapa 1 instrumentpanel och 4 flöden. Jag namngav mitt innan jag visste hur jag stavade hönshuset korrekt, så förlåt fel stavning. Om du inte vill byta namn på flödesnamnen i arduino -koden, använd bara samma namn som jag gjorde.

Skapa de fyra flödena först:

1) "Chicken Coup" Detta är för den öppna/stängda omkopplaren

2) "Chicken Coup Timer" Detta är för den öppna timern

3) "Chicken Coup Timer 2" Detta är för stängningstimern

4) "Chicken Coup Error Message" Detta är för felmeddelandena

Skapa en instrumentpanel som heter Chicken Coup och lägg till 4 block med den blå knappen +. Se bilden ovan för de typer av block du ska placera samt namnen på blocken. Se till att namnge omkopplarens status exakt "Öppen" och "Stängd"

IFTTT:

IFTTT -delen av detta projekt lägger till möjligheten att trycka på en knapp på din telefon och skicka en text för att öppna eller stänga hönshusdörren. Det gör det också möjligt för IFTTT -appen att skicka push -aviseringar om något publiceras i Chicken Coup -felmeddelandets flöde. Om du inte vill ha dessa funktioner kan du hoppa över det här avsnittet.

Skapa först ett IFTTT -konto om du inte redan har ett. Om du vill använda de färdiga applets som jag skapade, navigerar du bara till mitt konto och aktiverar de applets du vill ha. Annars måste du skapa ditt eget och prenumerera eller publicera det adafruit -flöde du skapade ovan.

Steg 6: Ladda upp kod och redigera WiFi SSID och lösenord

Du måste gå igenom den här sidan i Adafruit -handledningen för att kunna ladda upp kod till inomhussändaren.

Du måste gå igenom den här sidan i Adafruit -handledningen för att kunna ladda upp kod till utomhusmottagaren.

Du måste installera RFM69 -biblioteket, Adafruit_RGBLCDShield -biblioteket, NTC -klockbiblioteket som heter simpleDSTadjust och tickerbiblioteket. Du kan hitta en handledning om hur du gör det här.

Öppna Arduino IDE och ladda upp "Outdoor_Receiver.ino" -koden till utomhus Arduino 32u4 via en USB -kabel.

Öppna sedan "Indoor_Transmitter.ino", öppna fliken config.h och ange ditt WiFi -namn (SSID) och lösenord i citattecken. Skaffa sedan ditt Adafruit. IO -användarnamn och IO -nyckel genom att följa den här självstudiesidan och ange det på fliken config.h.

Om du har ändrat namnen på Adafruit IO -flöden måste du redigera koden på huvudfliken Indoor_Transmitter. Redigera följande:

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

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

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

AdafruitIO_Feed *error = io.feed ("Chicken Coup Error Message");

Det borde vara allt du behöver göra! Om du ytterligare vill förstå hur de två skisserna fungerar kommenterade jag koden. Hör av dig om du har några frågor. Lycka till!

Rekommenderad: