Inhoudsopgave:

IoT Outdoor Pet Door - Ajarnpa
IoT Outdoor Pet Door - Ajarnpa

Video: IoT Outdoor Pet Door - Ajarnpa

Video: IoT Outdoor Pet Door - Ajarnpa
Video: Mistakenly Grabbing Molten Glass (For safety/hazard education, don’t try!) #shorts 2024, November
Anonim
IoT-buitendeur voor huisdieren
IoT-buitendeur voor huisdieren
IoT Buitendeur voor huisdieren
IoT Buitendeur voor huisdieren
IoT Buitendeur voor huisdieren
IoT Buitendeur voor huisdieren
IoT-buitendeur voor huisdieren
IoT-buitendeur voor huisdieren

Ik werd geïnspireerd door deze instructable om een automatische kippenhokdeur te maken. Ik wilde niet alleen de deur van het kippenhok op een timer, maar ik wilde de deur ook verbinden met internet zodat ik hem kon bedienen met mijn telefoon of mijn computer. Deze deur is gebouwd voor mijn kippenhok, maar kan gemakkelijk worden toegepast op andere soorten huisvesting voor verschillende huisdieren. Je kunt ook verschillende soorten 12V-motoren gebruiken naast de oude auto-antennemotor die ik gebruikte.

Na het instellen en aansluiten van Adafruit IO en IFTTT op mijn ESP8266, kan mijn kippenhokdeur online worden bediend. De deur kan worden geopend of gesloten:

1) Op precieze tijden die ik invoer op adafruit.io

2) Door op een knop op mijn telefoon te drukken

3) Door een sms naar een specifiek nummer te sturen

4) Door op een knop op adafruit.io. te klikken

5) Door op een fysieke knop te drukken

Naast deze functies kan de deur van het kippenhok pushmeldingen naar mijn telefoon sturen via de IFTTT-app over eventuele problemen met de deur, zoals het niet openen of sluiten van de deur.

Omdat mijn kippenhok zich buiten ongeveer 150 ft van mijn WiFi-router bevindt, heb ik een 433MHz RFM69HCW-zender en -ontvanger gecombineerd met een ESP8266 gebruikt om dit project te voltooien. Er is een zwarte binnenzenderdoos met hardware die verbonden is met internet en een grijze buitenontvangerdoos die de motor aanstuurt.

Deze instructable leidt je door het proces van het maken van de hardware die nodig is om een 12V-motor te besturen die mijn kippenhokdeur opent of sluit.

Ik heb de volgende onderdelen gebruikt:

Adafruit 32u4 met 433MHz RFM69HCW - $ 25

Adafruit MCP23017 I2C 16 input/output poortuitbreiding IC - $2.95

Adafruit Feather HUZZAH met ESP8266 WiFi - $ 16,95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $10

Adafruit SMA-connector voor 1,6 mm dikke PCB's - $ 2,50

Adafruit uFL SMA-antenneconnector - $ 0,75

Adafruit RGB-drukknop - $ 10,95

12V voeding - $ 7

5V USB-voeding - $ 7

Micro-USB-kabel - $ 5

4-kanaals relaisbord (kan 2 kanalen gebruiken) - $ 7

DC-DC Buck Converter (slechts één gebruikt, maar wordt geleverd als een pakket van 5) - $ 20

Reed-schakelaar (magnetische deurschakelaarsensor) - $ 9

2x 433MHz omnidirectionele antenne - $ 6

uFL naar SMA-kabeladapter (slechts één gebruikt, maar wordt geleverd als een pakket van 2) - $ 5

Waterdichte ABS-projectdoos voor buiten - $ 11

Zwarte ABS-projectdoos - $ 10

20x4 blauw karakter LCD - $10

12V auto-antennemotor - ~ $ 25 op ebay

Draad en weerstanden

Stap 1: Buitenontvanger

Buiten ontvanger
Buiten ontvanger
Buiten ontvanger
Buiten ontvanger

De buitenontvanger bestaat uit een Adafruit 32u4 met 433MHz RFM69HCW aangesloten op enkele relais die de voeding voor een 12V motor in- of uitschakelen. Deze modules en een 12V naar 5V DC-DC converter bevinden zich in een waterdichte grijze projectdoos. Ten slotte is er een deurschakelaarsensor aangesloten op een van de pinnen van de 32u4 Arduino-microcontroller die detecteert of de deur goed is geopend of gesloten wanneer dat zou moeten.

Elke 15 seconden stuurt de binnenzender "Open" of "Close". Op basis van het ontvangen commando zal de Arduino 32u4 een relais in- of uitschakelen. Voor de motor die ik koos, een oude auto-antennemotor, moest ik twee relais in- of uitschakelen vanwege de manier waarop de motor is aangesloten. In principe was er een relais om de stroom in te schakelen en vervolgens een ander relais dat regelde of de motor al dan niet werd uit- of ingetrokken.

Zodra de open of gesloten transmissie is ontvangen, reageert de buitenontvanger met "sensorOpen" of "sensorClosed" om de status van de deurschakelaarsensor aan te geven. Idealiter zou het "open"-commando een "sensorOpen"-reactie retourneren, maar als de deur vastloopt of de motor vastloopt, komen deze niet overeen. Als ze niet overeenkomen, geeft de binnenzender die informatie weer en wordt er een pushmelding naar je telefoon gestuurd.

Stap 2: Hardware voor buitenontvanger aansluiten

Hardware voor buitenontvanger aansluiten
Hardware voor buitenontvanger aansluiten
Hardware voor buitenontvanger aansluiten
Hardware voor buitenontvanger aansluiten
Hardware voor buitenontvanger aansluiten
Hardware voor buitenontvanger aansluiten

De hardware voor de buitenontvanger is niet al te moeilijk om aan te sluiten. Ik heb hieronder een fritzing-schema opgenomen, zodat de pinnen die ik heb gebruikt gemakkelijk kunnen worden bekeken.

Zoals ik hierboven al zei, had de motor die ik gebruikte twee relais nodig. Ik heb een foto van de pinout bijgevoegd. De tweede keer dat u 12V aansluit op de rode draad, zal de motor intrekken als deze is uitgeschoven. Als je tegelijkertijd 12V aansluit op de rode draad en de groene draad, dan schuift de motor uit.

De reed-schakelaar die ik hierboven heb gekoppeld, moet worden bedraad als een normaal gesloten schakelaar. Het verschil tussen normaal open en normaal gesloten wordt uitgelegd in de afbeelding die ik hierboven heb bijgevoegd. Met behulp van software is er een interne pullup-weerstand aangesloten op de ingangspen op de 32u4, dus alles wat u hoeft te doen is de deurschakelaar op de ingangspen en ook op aarde aansluiten.

Je zult een antenne aan de Adafruit 32u4 moeten bevestigen. Bekijk de goed uitgelegde tutorial van Adafruit over deze stap. Ik koos ervoor om een externe antenne te gebruiken in plaats van een stuk draad om een beter bereik te krijgen.

Stap 3: Binnenzender

Binnenzender
Binnenzender
Binnenzender
Binnenzender
Binnenzender
Binnenzender

De binnenzender bestaat uit een Adafruit Radio FeatherWing 433MHz RFM69HCW gestapeld op een Adafruit Feather HUZZAH met ESP8266 WiFi. Deze modules zijn verbonden met een 20x4 karakterdisplay en een RGB zilveren knop in een zwarte projectbox.

Het display heeft een NTC-gesynchroniseerde klok, de RSSI-sterkte in dB (meet de sterkte van radiosignalen), de tijd waarop de deur van het kippenhok opengaat, de tijd waarop de deur van het kippenhok sluit en de huidige status van de deur. De knop is rood als de deur gesloten is en groen als de deur open is.

Als de buitenontvanger stroom verliest of als het 433MHz-signaal om welke reden dan ook niet kan worden verzonden, gaan het display en de RGB-knop naar de eerste van twee mogelijke foutmodi. In de eerste foutmodus zal het display zeggen "ERROR! Probeer de buitenontvanger opnieuw op te starten." en de knop heeft geen kleur. Als de deurschakelaarsensor detecteert dat de deur niet goed sloot of openging, gaan het display en de RGB-knop naar de tweede van twee foutmodi. In de tweede foutmodus zal het display "ERROR! Deur- of schakelaarsensorprobleem" weergeven. en de knop heeft geen kleur. Wanneer het probleem zichzelf oplost, worden het display en de RGB-knop weer normaal. U kunt pushmeldingen op uw telefoon ontvangen als een van deze foutmodi optreedt (ik zal die instelling in een latere stap bespreken).

Stap 4: Hardware voor binnenzender aansluiten

Hardware voor binnenzender aansluiten
Hardware voor binnenzender aansluiten
Hardware voor binnenzender aansluiten
Hardware voor binnenzender aansluiten

Na het stapelen van de Adafruit Radio FeatherWing 433MHz RFM69HCW op een Adafruit Feather HUZZAH met ESP8266 WiFi, zijn er nog maar 2 pinnen over die niet worden genomen, de I2C-pinnen SDA en SCL. Dit is waarom ik ging met de MCP23017 geïntegreerde schakeling (IC). Het is een echt cool IC dat tot 16 extra input/output-pinnen verbindt met elke microcontroller via I2C. Bovendien is er een vooraf geschreven bibliotheek genaamd Adafruit-RGB-LCD-Shield die dit IC gebruikt met een karakterweergave die technisch is geschreven voor dit Adafruit-product, maar het werkt perfect voor dit project.

Het idee om de MCP23017 te gebruiken met een karakterdisplay komt van deze zeer goed geschreven instructable. Bekijk het alsjeblieft!

Ik nam die instructie en in plaats van meerdere knoppen en een RGB-display op de IC aan te sluiten, heb ik slechts één knop met een RGB-led erin en een monochroom display op de IC aangesloten. Hierdoor kon ik PIN 1 van de IC (meestal gebruikt voor de blauwe achtergrondverlichting van een RGB-display) definiëren als de achtergrondverlichting voor mijn monochrome display, PIN 28 (meestal gebruikt voor de groene achtergrondverlichting van een RGB-display) als de rode LED in de knop en PIN 27 (meestal gebruikt voor de rode achtergrondverlichting van een RGB-display) als de groene LED in de knop. PIN 24 was verbonden met de ene kant van de knop en de andere kant was verbonden met aarde. U kunt de pin-out van de knop zien in de afbeelding hierboven bijgevoegd (ik liet de blauwe kathode losgekoppeld).

Naast het gebruik van die instructable die ik heb gekoppeld om het scherm te bedraden, heb ik een fritzing-schema toegevoegd waarmee je alles kunt aansluiten.

Je zult drie pinnen aan de bovenkant van de FeatherWing 433MHz RFM69HCW moeten kortsluiten, zoals uitgelegd in deze Adafruit-tutorial. U moet ook een antenne aansluiten op de FeatherWing 433MHz RFM69HCW. Bekijk de goed uitgelegde tutorial van Adafruit over deze stap. Ik koos ervoor om een externe antenne te gebruiken met een aan de zijkant gemonteerde SMA-connector in plaats van een stuk draad om een beter bereik te krijgen.

Stap 5: Verbinding maken met Adafruit. IO en IFTTT

Verbinding maken met Adafruit. IO en IFTTT
Verbinding maken met Adafruit. IO en IFTTT
Verbinding maken met Adafruit. IO en IFTTT
Verbinding maken met Adafruit. IO en IFTTT

Adafruit IO:

Volg de instructies in deze Adafruit-tutorial om je aan te melden voor Adafruit. IO als je geen account hebt. Lees ook wat een feed en een dashboard is.

In eenvoudige bewoordingen lijkt een dashboard op de grafische gebruikersinterface, terwijl de feeds de gegevens zijn waarnaar u gegevens verzendt, zodat u deze op internet kunt opslaan. U moet 1 dashboard en 4 feeds maken. Ik heb de mijne een naam gegeven voordat ik wist hoe ik kippenhok correct moest spellen, dus vergeef de verkeerde spelling. Als je de feednamen in de Arduino-code niet wilt hernoemen, gebruik dan dezelfde naam die ik heb gebruikt.

Maak eerst de vier feeds:

1) "Chicken Coup" Dit is voor de Open/Gesloten schakelaar

2) "Chicken Coup Timer" Dit is voor de open timer

3) "Chicken Coup Timer 2" Dit is voor de close timer

4) "Chicken Coup Error Message" Dit is voor de foutmeldingen

Maak vervolgens een dashboard met de naam Chicken Coup en voeg 4 blokken toe met de blauwe + knop. Zie de afbeelding hierboven voor de soorten blokken die u moet plaatsen, evenals de namen van de blokken. Zorg ervoor dat u de schakelaarstatussen exact "Open" en "Gesloten" noemt

IFTTT:

Het IFTTT-gedeelte van dit project voegt de mogelijkheid toe om op een knop op je telefoon te drukken en een sms te sturen om de deur van het kippenhok te openen of te sluiten. Het stelt de IFTTT-app ook in staat u pushmeldingen te sturen als er iets is gepubliceerd in de Chicken Coup Error Message-feed. Als u deze mogelijkheden niet wilt, kunt u deze sectie overslaan.

Stel eerst een IFTTT-account in als u er nog geen heeft. Als u de vooraf gemaakte applets wilt gebruiken die ik heb gemaakt, navigeert u gewoon naar mijn account en schakelt u de gewenste applets in. Anders moet je er zelf een maken en je abonneren op of publiceren op de adafruit-feed die je hierboven hebt gemaakt.

Stap 6: Code uploaden en WiFi SSID en wachtwoord bewerken

U moet deze pagina van de Adafruit-tutorial doorlopen om de code naar de binnenzender te kunnen uploaden.

U moet deze pagina van de Adafruit-tutorial doorlopen om de code naar de buitenontvanger te kunnen uploaden.

U moet de RFM69-bibliotheek, de Adafruit_RGBLCDShield-bibliotheek, de NTC-klokbibliotheek met de naam simpleDSTadjust en de tickerbibliotheek installeren. Een tutorial over hoe dat te doen vind je hier.

Open Arduino IDE en upload de "Outdoor_Receiver.ino"-code naar de Arduino 32u4 voor buiten via een USB-kabel.

Open vervolgens "Indoor_Transmitter.ino", open het tabblad config.h en voer uw wifi-naam (SSID) en wachtwoord in tussen de aanhalingstekens. Verkrijg vervolgens uw Adafruit. IO-gebruikersnaam en IO-sleutel door deze zelfstudiepagina te volgen en deze in te voeren op het tabblad config.h.

Als je de namen van de Adafruit IO-feeds hebt gewijzigd, moet je de code op het hoofdtabblad Indoor_Transmitter aanpassen. Bewerk het volgende:

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");

Dat zou alles moeten zijn wat je hoeft te doen! Als je meer wilt weten over hoe de twee schetsen werken, heb ik de code becommentarieerd. Laat het me weten als je vragen hebt. Veel geluk!

Aanbevolen: