Indholdsfortegnelse:

IoT Outdoor Pet Door: 6 trin (med billeder)
IoT Outdoor Pet Door: 6 trin (med billeder)

Video: IoT Outdoor Pet Door: 6 trin (med billeder)

Video: IoT Outdoor Pet Door: 6 trin (med billeder)
Video: seeing wife face for first time #shorts 2024, Juli
Anonim
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør
IoT udendørs kæledyrsdør

Jeg blev inspireret af dette instruerbare til at oprette en automatisk hønsegardør. Jeg ville ikke kun have hønsegårdsdøren på en timer, men jeg ville også forbinde døren til internettet, så jeg kunne styre den med min telefon eller min computer. Denne dør blev bygget til mit hønsehus, men den kunne let anvendes på andre typer boliger til en række forskellige kæledyr. Du kan også bruge forskellige slags 12V -motorer udover den gamle bilantennemotor, jeg brugte.

Efter opsætning og tilslutning af Adafruit IO og IFTTT til min ESP8266, kan min hønsegardør styres online. Døren kan åbnes eller lukkes:

1) På præcise tidspunkter, som jeg indtaster på adafruit.io

2) Ved at trykke på en knap på min telefon

3) Ved at sende en tekstbesked til et bestemt nummer

4) Ved at klikke på en knap på adafruit.io

5) Ved at trykke på en fysisk knap

Oven på disse funktioner kan hønsegårdsdøren sende push -notifikationer til min telefon via IFTTT -appen om eventuelle problemer med døren, f.eks. At døren ikke åbner eller lukker.

Fordi mit hønsehus er udenfor omkring 500 fod væk fra min WiFi -router, brugte jeg en 433MHz RFM69HCW sender og modtager parret med en ESP8266 for at gennemføre dette projekt. Der er en sort indendørs transmitterboks med hardware, der er forbundet til internettet og en grå udendørs modtagerboks, der styrer motoren.

Denne instruktive vil tage dig gennem processen med at oprette den hardware, der kræves til at styre en 12V motor, der åbner eller lukker min hønsegardør.

Jeg brugte følgende dele:

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 -stik til 1,6 mm tykke printkort - $ 2,50

Adafruit uFL SMA -antennestik - $ 0,75

Adafruit RGB -trykknap - $ 10,95

12V strømforsyning - $ 7

5V USB strømforsyning - $ 7

Micro USB -kabel - $ 5

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

DC -DC Buck Converter (kun brugt en, men kommer som en pakke med 5) - $ 20

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

2x 433MHz Omnidirektionel antenne - $ 6

uFL til SMA -kabeladapter (kun brugt en, men kommer i pakke med 2) - $ 5

Vandtæt udendørs ABS projektboks - $ 11

Sort ABS projektboks - $ 10

20x4 Blue Character LCD - $ 10

12V bilantennemotor - ~ $ 25 på ebay

Tråd og modstande

Trin 1: Udendørs modtager

Udendørs modtager
Udendørs modtager
Udendørs modtager
Udendørs modtager

Den udendørs modtager består af en Adafruit 32u4 med 433MHz RFM69HCW forbundet til et par relæer, der tænder eller slukker for en 12V motor. Disse moduler samt en 12V til 5V DC-DC-omformer er inde i en vandtæt grå projektboks. Endelig er der en dørkontaktføler tilsluttet en af stifterne på 32u4 Arduino -mikrokontrolleren, der registrerer, om døren er åbnet eller lukket korrekt, når den skulle have.

Hvert 15. sekund sender indendørssenderen "Åben" eller "Luk". Baseret på den modtagne kommando vil Arduino 32u4 tænde eller slukke et relæ. For den motor, jeg valgte, som er en gammel bilantennemotor, måtte jeg tænde eller slukke to relæer på grund af, hvordan motoren er tilsluttet. Grundlæggende var der et relæ til at tænde for strømmen og derefter et andet relæ, der kontrollerede, om motoren forlængede eller trak sig tilbage.

Når den åbne eller lukke transmission er modtaget, reagerer den udendørs modtager med "sensorOpen" eller "sensorClosed" for at angive status for dørkontaktføleren. Ideelt set ville kommandoen "åben" returnere et "sensorOpen" svar, men hvis døren sætter sig fast eller motoren sidder fast, vil disse ikke matche. Når de ikke matcher, viser indendørssenderen disse oplysninger, og der sendes en push -meddelelse til din telefon.

Trin 2: Tilslutning af udendørs modtagerhardware

Tilslutning af udendørs modtagerhardware
Tilslutning af udendørs modtagerhardware
Tilslutning af udendørs modtagerhardware
Tilslutning af udendørs modtagerhardware
Tilslutning af udendørs modtagerhardware
Tilslutning af udendørs modtagerhardware

Hardwaren til den udendørs modtager er ikke for svær at tilslutte. Jeg inkluderede en fritzing skematisk herunder, så de ben, jeg brugte, let kan ses.

Som jeg sagde ovenfor, krævede den motor, jeg brugte, to relæer. Jeg inkluderede et billede af pinout. I det sekund du tilslutter 12V til den røde ledning, vil motoren trække sig tilbage, hvis den forlænges. Hvis du tilslutter 12V til den røde ledning og den grønne ledning på samme tid, forlænges motoren.

Reedkontakten, jeg linkede ovenfor, skal forbindes som en normalt lukket switch. Forskellen mellem normalt åben og normalt lukket forklares på billedet, jeg vedhæftede ovenfor. Ved hjælp af software er der en intern pullup -modstand tilsluttet input -pin på 32u4, så alt hvad du skal gøre er at slutte dørkontakten til input -pin og også til jord.

Du bliver nødt til at tilslutte en antenne til Adafruit 32u4. Tjek venligst Adafruit's virkelig godt forklarede tutorial om dette trin. Jeg valgte at bruge en ekstern antenne i stedet for et stykke ledning for at få bedre rækkevidde.

Trin 3: Indendørs sender

Indendørs sender
Indendørs sender
Indendørs sender
Indendørs sender
Indendørs sender
Indendørs sender

Den indendørs sender består af en Adafruit Radio FeatherWing 433MHz RFM69HCW stablet oven på en Adafruit Feather HUZZAH med ESP8266 WiFi. Disse moduler er forbundet til et display på 20 x 4 tegn og en RGB -sølvknap inde i en sort projektboks.

Displayet har et NTC -synkroniseret ur, RSSI -styrken i dB (måler styrken af radiosignaler), det tidspunkt, hvor hønsegårdsdøren åbnes, det tidspunkt, hvor hønsegårdsdøren lukkes og dørens aktuelle status. Knappen er rød, når døren er lukket og grøn, når døren er åben.

Hvis den udendørs modtager mister strøm, eller hvis 433MHz -signalet af en eller anden grund ikke kan sendes, går displayet og RGB -knappen til den første af to mulige fejltilstande. I den første fejltilstand vil displayet sige "FEJL! Prøv at genstarte den udendørs modtager." og knappen vil ikke have en farve. Hvis dørkontaktsensoren registrerer, at døren ikke lukkede eller åbnede korrekt, går displayet og RGB -knappen ind i den anden af to fejltilstande. I den anden fejltilstand vil displayet sige "FEJL! Problem med dør eller switch sensor." og knappen vil ikke have en farve. Når problemet løser sig selv, går displayet og RGB -knappen tilbage til det normale. Du kan modtage push -meddelelser til din telefon, hvis en af disse fejltilstande forekommer (jeg vil gennemgå denne opsætning i et senere trin).

Trin 4: Tilslutning af indendørs transmitterhardware

Tilslutning af indendørs transmitterhardware
Tilslutning af indendørs transmitterhardware
Tilslutning af indendørs transmitterhardware
Tilslutning af indendørs transmitterhardware

Efter at have stablet Adafruit Radio FeatherWing 433MHz RFM69HCW oven på en Adafruit Feather HUZZAH med ESP8266 WiFi, er der kun 2 ben tilbage, der ikke tages, I2C ben SDA og SCL. Derfor gik jeg med MCP23017 integreret kredsløb (IC). Det er en virkelig cool IC, der forbinder op til 16 ekstra input/output pins til enhver mikrokontroller over I2C. Derudover er der et forhåndsskrevet bibliotek kaldet Adafruit-RGB-LCD-Shield, der bruger denne IC med en tegnvisning, der er teknisk skrevet til dette Adafruit-produkt, men det fungerer perfekt til dette projekt.

Ideen om at bruge MCP23017 med et tegnvisning kommer fra denne meget velskrevne instruerbare. Tjek det venligst!

Jeg tog det instruerbare, og i stedet for at forbinde flere knapper og en RGB -skærm til IC'en, tilsluttede jeg kun en knap, der havde en RGB LED inde i det og et monokromt display til IC. Dette tillod mig at definere PIN 1 på IC (typisk brugt til den blå baggrundsbelysning på en RGB -skærm) som baggrundsbelysning til min monokrome skærm, PIN 28 (typisk brugt til den grønne baggrundsbelysning på en RGB -skærm) som den røde LED inde i knappen og PIN 27 (bruges typisk til den røde baggrundsbelysning på et RGB -display) som den grønne LED inde i knappen. PIN 24 var forbundet til den ene side af knappen, og den anden side var forbundet til jorden. Du kan se pinout på knappen på billedet ovenfor (jeg lod den blå katode være afbrudt).

Udover at bruge den instruerbare jeg linkede til at hjælpe med at oprette skærmen, har jeg inkluderet en fritzing skematisk, der hjælper dig med at forbinde alt.

Du bliver nødt til at kortslutte tre ben på toppen af FeatherWing 433MHz RFM69HCW som forklaret af denne Adafruit -vejledning. Du bliver også nødt til at tilslutte en antenne til FeatherWing 433MHz RFM69HCW. Tjek venligst Adafruit's virkelig godt forklarede tutorial om dette trin. Jeg valgte at bruge en ekstern antenne med et sidemonteret SMA -stik i stedet for et stykke ledning for at få bedre rækkevidde.

Trin 5: Tilslutning til Adafruit. IO og IFTTT

Opretter forbindelse til Adafruit. IO og IFTTT
Opretter forbindelse til Adafruit. IO og IFTTT
Opretter forbindelse til Adafruit. IO og IFTTT
Opretter forbindelse til Adafruit. IO og IFTTT

Adafruit IO:

Følg instruktionerne i denne Adafruit -vejledning for at tilmelde dig Adafruit. IO, hvis du ikke har en konto. Du bør også læse om, hvad et feed og et dashboard er.

Enkelt sagt ligner et dashboard lidt som den grafiske brugergrænseflade, mens feeds er det, du sender data til, så du kan gemme det på internettet. Du skal oprette 1 dashboard og 4 feeds. Jeg navngav mit, før jeg vidste, hvordan jeg stavede hønsegården korrekt, så tilgiv venligst den forkerte stavning. Hvis du ikke vil omdøbe feednavne i arduino -koden, skal du bare bruge den samme navngivning, som jeg gjorde.

Opret de fire feeds først:

1) "Kyllingekup" Dette er til kontakten Åben/Lukket

2) "Chicken Coup Timer" Dette er til den åbne timer

3) "Chicken Coup Timer 2" Dette er til lukningstimeren

4) "Chicken Coup Error Message" Dette er til fejlmeddelelserne

Opret et dashboard ved siden af kaldet Chicken Coup, og tilføj 4 blokke ved hjælp af den blå + knap. Se billedet ovenfor for de typer blokke, du skal placere, samt navnene på blokkene. Sørg for at navngive switchstatus nøjagtigt "Open" og "Closed"

IFTTT:

IFTTT -delen af dette projekt tilføjer muligheden for at trykke på en knap på din telefon og sende en tekst for at åbne eller lukke hønsegårdsdøren. Det giver også IFTTT -appen mulighed for at sende dig push -meddelelser, hvis der offentliggøres noget til kyllingekup -fejlmeddelelsesfeedet. Hvis du ikke vil have disse muligheder, kan du springe dette afsnit over.

Opret først en IFTTT -konto, hvis du ikke allerede har en. Hvis du vil bruge de præfabrikerede applets, som jeg har oprettet, skal du bare navigere til min konto og tænde de applets, du ønsker. Ellers bliver du nødt til at oprette din egen og abonnere eller offentliggøre det adafruit -feed, du har oprettet ovenfor.

Trin 6: Upload kode og rediger WiFi SSID og adgangskode

Du bliver nødt til at gå igennem denne side i Adafruit -øvelsen for at kunne uploade kode til indendørssenderen.

Du bliver nødt til at gå igennem denne side i Adafruit -øvelsen for at kunne uploade kode til den udendørs modtager.

Du skal installere RFM69 -biblioteket, Adafruit_RGBLCDShield -biblioteket, NTC -urbiblioteket kaldet simpleDSTadjust og tickerbiblioteket. Du kan finde en vejledning i, hvordan du gør det her.

Åbn Arduino IDE, og upload "Outdoor_Receiver.ino" -koden til den udendørs Arduino 32u4 via et USB -kabel.

Åbn derefter "Indoor_Transmitter.ino", åbn fanen config.h, og indtast dit WiFi -navn (SSID) og adgangskode inde i anførselstegnene. Hent derefter dit Adafruit. IO brugernavn og IO -nøgle ved at følge denne vejledningsside og indtaste det på fanen config.h.

Hvis du har ændret navnene på Adafruit IO -feeds, skal du redigere koden på hovedfanen Indoor_Transmitter. Rediger følgende:

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

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

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

AdafruitIO_Feed *fejl = io.feed ("Fejlmeddelelse om kyllingekup");

Det burde være alt hvad du skal gøre! Hvis du gerne vil forstå yderligere, hvordan de to skitser fungerer, kommenterede jeg koden. Lad mig vide, hvis du har spørgsmål. Held og lykke!

Anbefalede: