Taula de continguts:

Porta exterior per a mascotes IoT: 6 passos (amb imatges)
Porta exterior per a mascotes IoT: 6 passos (amb imatges)

Vídeo: Porta exterior per a mascotes IoT: 6 passos (amb imatges)

Vídeo: Porta exterior per a mascotes IoT: 6 passos (amb imatges)
Vídeo: Disparate Pieces | Critical Role: THE MIGHTY NEIN | Episode 4 2024, Desembre
Anonim
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT
Porta per a mascotes exterior IoT

Em va inspirar aquest instructiu per crear una porta automàtica de galliner. No només volia la porta del galliner en un temporitzador, sinó que també volia connectar la porta a Internet per poder controlar-la amb el telèfon o l’ordinador. Aquesta porta va ser construïda per al meu galliner, però es podria aplicar fàcilment a altres tipus d’habitatges per a diverses mascotes. També podríeu utilitzar diferents tipus de motors de 12V, a més del motor d’antena de cotxe antic que feia servir.

Després de configurar i connectar Adafruit IO i IFTTT al meu ESP8266, la porta del galliner es pot controlar en línia. La porta es pot obrir o tancar:

1) En els moments precisos que entro a adafruit.io

2) Prement un botó al telèfon

3) En enviar un missatge de text a un número específic

4) Fent clic en un botó a adafruit.io

5) Prement un botó físic

A més d’aquestes funcions, la porta del galliner pot enviar notificacions automàtiques al meu telèfon a través de l’aplicació IFTTT sobre qualsevol problema amb la porta, com ara que la porta no s’obre ni es tanca.

Com que el meu galliner es troba a uns 500 peus de distància del meu enrutador WiFi, he utilitzat un transmissor i un receptor RFM69HCW a 433 MHz combinats amb un ESP8266 per dur a terme aquest projecte. Hi ha una caixa de transmissor interior de color negre amb maquinari connectat a Internet i una caixa de recepció exterior de color gris que controla el motor.

Aquesta instrucció us guiarà pel procés de creació del maquinari necessari per controlar un motor de 12V que obri o tanca la porta del galliner.

He utilitzat les parts següents:

Adafruit 32u4 amb 433 MHz RFM69HCW: 25 dòlars

IC expansor de ports d'entrada / sortida Adafruit MCP23017 I2C 16: 2,95 dòlars

Adafruit Feather HUZZAH amb WiFi ESP8266: 16,95 $

Ràdio Adafruit FeatherWing 433 MHz RFM69HCW: 10 dòlars

Connector SMA Adafruit per a PCB de 1,6 mm de gruix - 2,50 dòlars

Connector d'antena SMA d'Adafruit uFL: 0,75 dòlars

Polsador Adafruit RGB: 10,95 dòlars

Font d'alimentació de 12 V: 7 dòlars

Font d'alimentació USB de 5 V: 7 dòlars

Cable micro USB: 5 dòlars

Taula de retransmissió de 4 canals (es pot utilitzar 2 canals): 7 dòlars

Convertidor Buck DC-DC (només en fa servir un però inclouen 5 paquets): 20 $

Reed Switch (sensor d’interruptor magnètic de la porta): 9 dòlars

Antena omnidireccional de 2x 433 MHz - 6 dòlars

Adaptador de cable uFL a SMA (només se’n fa servir un però inclouen 2 paquets): 5 dòlars

Caixa de projecte ABS impermeable exterior: 11 dòlars

Caixa de projecte ABS negre: 10 dòlars

LCD de caràcters blaus 20x4: 10 dòlars

Motor d'antena de cotxe de 12 V: ~ 25 dòlars a eBay

Filferro i resistències

Pas 1: Receptor exterior

Receptor exterior
Receptor exterior
Receptor exterior
Receptor exterior

El receptor exterior consisteix en un Adafruit 32u4 amb RFM69HCW a 433 MHz connectat a uns pocs relés que activen o apaguen l’alimentació d’un motor de 12 V. Aquests mòduls, a més d’un convertidor de CC a CC de 12V a 5V, es troben dins d’una caixa de projecte gris impermeable. Finalment, hi ha un sensor d’interruptor de porta connectat a un dels pins del microcontrolador Arduino 32u4 que detecta si la porta s’ha obert o tancat correctament quan s’hauria de tenir.

Cada 15 segons, el transmissor interior enviarà "Obre" o "Tanca". Basat en l'ordre rebuda, l'Arduino 32u4 activarà o desactivarà un relé. Per al motor que vaig triar, que és un vell motor d’antena de cotxe, vaig haver d’encendre o apagar dos relés a causa de com està connectat el motor. Bàsicament hi havia un relé per engegar l’alimentació i, després, un altre relé que controlava si el motor s’allargava o es retraia.

Un cop rebuda la transmissió oberta o tancada, el receptor exterior respon amb "sensorOpen" o "sensorClosed" per indicar l'estat del sensor de l'interruptor de la porta. Idealment, l'ordre "obrir" retornaria una resposta "sensorOpen", però, si la porta s'encalla o el motor s'encalla, no coincidiran. Quan no coincideixin, el transmissor interior mostrarà aquesta informació i s'enviarà una notificació push al telèfon.

Pas 2: Connexió del maquinari del receptor exterior

Connexió del maquinari del receptor exterior
Connexió del maquinari del receptor exterior
Connexió del maquinari del receptor exterior
Connexió del maquinari del receptor exterior
Connexió del maquinari del receptor exterior
Connexió del maquinari del receptor exterior

El maquinari del receptor exterior no és massa difícil de connectar. A continuació he inclòs un esquema divertit perquè es puguin veure fàcilment els pins que he utilitzat.

Com he dit anteriorment, el motor que he utilitzat requeria dos relés. He inclòs una imatge del pinout. El segon que connecteu 12V al cable vermell, el motor es retractarà si s’estén. Si connecteu 12 V al fil vermell i el fil verd alhora, el motor s’estendrà.

L'interruptor Reed que he enllaçat anteriorment s'ha de connectar com un interruptor normalment tancat. La diferència entre normalment oberta i normalment tancada s’explica a la imatge que adjunto més amunt. Mitjançant el programari, hi ha una resistència d’extracció interna connectada al pin d’entrada del 32u4, de manera que tot el que heu de fer és connectar l’interruptor de la porta al pin d’entrada i també a terra.

Haureu de connectar una antena a l'Adafruit 32u4. Consulteu el tutorial realment ben explicat d’Adafruit sobre aquest pas. Vaig optar per utilitzar una antena externa en lloc d'un tros de filferro per obtenir un millor abast.

Pas 3: transmissor interior

Transmissor interior
Transmissor interior
Transmissor interior
Transmissor interior
Transmissor interior
Transmissor interior

El transmissor interior està format per una ràdio Adafruit FeatherWing 433 MHz RFM69HCW apilada damunt d’un Adafruit Feather HUZZAH amb WiFi ESP8266. Aquests mòduls estan connectats a una pantalla de 20x4 caràcters i a un botó platejat RGB dins d’un quadre de projecte negre.

La pantalla té un rellotge sincronitzat NTC, la intensitat RSSI en dB (mesura la intensitat dels senyals de ràdio), l’hora en què s’obrirà la porta del galliner, l’hora en què es tancarà la porta del galliner i l’estat actual de la porta. El botó és vermell quan la porta està tancada i verd quan la porta està oberta.

Si el receptor exterior perd alimentació o si el senyal de 433 MHz no es pot enviar per qualsevol motiu, la pantalla i el botó RGB passaran al primer dels dos modes d’error possibles. Al primer mode d'error, a la pantalla es mostrarà "ERROR! Proveu a reiniciar el receptor exterior". i el botó no tindrà un color. Si el sensor de l'interruptor de la porta detecta que la porta no es va tancar ni obrir correctament, la pantalla i el botó RGB passaran al segon dels dos modes d'error. Al segon mode d'error, a la pantalla es mostrarà "ERROR! Problema del sensor de porta o interruptor". i el botó no tindrà un color. Quan el problema es resol, la pantalla i el botó RGB tornaran a la normalitat. Podeu rebre notificacions automàtiques al vostre telèfon si es produeix algun d'aquests modes d'error (revisaré aquesta configuració en un pas posterior).

Pas 4: Connexió del maquinari del transmissor interior

Connexió del maquinari del transmissor interior
Connexió del maquinari del transmissor interior
Connexió del maquinari del transmissor interior
Connexió del maquinari del transmissor interior

Després d’apilar l’Adafruit Radio FeatherWing 433MHz RFM69HCW a sobre d’un Adafruit Feather HUZZAH amb WiFi ESP8266, només queden 2 pins que no es prenen, els pins I2C SDA i SCL. Per això vaig anar amb el circuit integrat (IC) MCP23017. És un CI molt fresc que connecta fins a 16 pins d'entrada / sortida addicionals a qualsevol microcontrolador a través d'I2C. A més, hi ha una biblioteca pre-escrita anomenada Adafruit-RGB-LCD-Shield que utilitza aquest CI amb una pantalla de caràcters que està tècnicament escrita per a aquest producte Adafruit, però funciona perfectament per a aquest projecte.

La idea d’utilitzar l’MCP23017 amb una visualització de caràcters prové d’aquest instructiu molt ben escrit. Comproveu-ho!

Vaig agafar aquesta instrucció i, en lloc de connectar diversos botons i una pantalla RGB a l'IC, només vaig connectar un botó que tenia un LED RGB a l'interior i una pantalla monocroma a l'IC. Això em va permetre definir el PIN 1 de l’IC (que s’utilitza normalment per a la llum de fons blava d’una pantalla RGB) com a llum de fons per a la meva pantalla monocroma, el PIN 28 (que s’utilitza normalment per a la llum de fons verda d’una pantalla RGB) com a LED vermell a l’interior del i el PIN 27 (que s'utilitza normalment per a la llum de fons vermella d'una pantalla RGB) com a LED verd que hi ha a l'interior del botó. El PIN 24 estava connectat a un costat del botó i l’altre costat a terra. Podeu veure el pinout del botó a la imatge adjunta a sobre (he deixat el càtode blau desconnectat).

A més d’utilitzar aquest instructiu que he enllaçat per ajudar a connectar la pantalla, he inclòs un esquema divertit que us ajudarà a connectar-ho tot.

Haureu de reduir tres passadors a la part superior del FeatherWing a 433 MHz RFM69HCW, tal com s’explica en aquest tutorial d’Adafruit. També haureu de connectar una antena al FeatherWing RFM69HCW a 433 MHz. Consulteu el tutorial realment ben explicat d’Adafruit sobre aquest pas. Vaig optar per utilitzar una antena externa amb un connector SMA muntat lateral en lloc d’un tros de filferro per obtenir un millor abast.

Pas 5: Connexió a Adafruit. IO i IFTTT

Connexió a Adafruit. IO i IFTTT
Connexió a Adafruit. IO i IFTTT
Connexió a Adafruit. IO i IFTTT
Connexió a Adafruit. IO i IFTTT

Adafruit IO:

Seguiu les instruccions d’aquest tutorial d’Adafruit per registrar-vos a Adafruit. IO si no teniu cap compte. També heu de llegir què és un feed i un tauler.

En termes senzills, un tauler és una mena d’interfície gràfica d’usuari, mentre que els canals d’enviament són els que envieu les dades perquè pugueu emmagatzemar-los a Internet. Haureu de crear 1 tauler de control i 4 feeds. He anomenat el meu abans de saber escriure correctament el galliner, així que perdoneu l'ortografia incorrecta. Si no voleu canviar el nom dels noms del canal al codi arduino, feu servir el mateix nom que he fet.

Creeu primer els quatre feeds:

1) "Chicken Coup" Això és per a l'interruptor Obert / Tancat

2) "Temporitzador de cop de pollastre" És per al temporitzador obert

3) "Chicken Coup Timer 2": per al temporitzador de tancament

4) "Missatge d'error de cop de pollastre" És per als missatges d'error

Crea un tauler següent anomenat Chicken Coup i afegeix 4 blocs amb el botó blau +. Consulteu la imatge superior per conèixer els tipus de blocs que heu de col·locar i els noms dels blocs. Assegureu-vos de nomenar els estats del commutador exactament com a "Obert" i "Tancat".

IFTTT:

La part IFTTT d’aquest projecte afegeix la possibilitat de prémer un botó al telèfon i enviar un text per obrir o tancar la porta del galliner. També permet a l’aplicació IFTTT enviar-vos notificacions automàtiques si es publica alguna cosa al feed de missatges d’error de Chicken Coup. Si no voleu aquestes funcions, podeu ometre aquesta secció.

En primer lloc, configureu un compte IFTTT si encara no en teniu cap. Si voleu utilitzar les miniaplicacions prefabricades que he creat, aneu al meu compte i activeu les miniaplicacions que vulgueu. En cas contrari, haureu de crear els vostres propis i subscriure-us o publicar-vos al feed d’adruit que heu creat anteriorment.

Pas 6: penjar codi i editar SSID i contrasenya WiFi

Haureu de passar per aquesta pàgina del tutorial d’Adafruit per poder penjar codi al transmissor interior.

Haureu de passar per aquesta pàgina del tutorial d’Adafruit per poder penjar codi al receptor exterior.

Haureu d’instal·lar la biblioteca RFM69, la biblioteca Adafruit_RGBLCDShield, la biblioteca de rellotges NTC anomenada simpleDSTadjust i la biblioteca ticker. Aquí podeu trobar un tutorial sobre com fer-ho.

Obriu Arduino IDE i pengeu el codi "Outdoor_Receiver.ino" a l'Arduino 32u4 exterior mitjançant un cable USB.

A continuació, obriu "Indoor_Transmitter.ino", obriu la pestanya config.h i introduïu el vostre nom WiFi (SSID) i la vostra contrasenya dins de les cometes. A continuació, obtingueu el vostre nom d’usuari i clau d’IO d’Adafruit. IO seguint aquesta pàgina de tutorial i introduïu-los a la pestanya config.h.

Si heu canviat els noms dels canals IO d'Adafruit, haureu d'editar el codi a la pestanya principal Indoor_Transmitter. Editeu el següent:

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 ("Missatge d'error de cop de pollastre");

Això hauria de ser tot el que heu de fer. Si voleu entendre com funcionen els dos esbossos, he comentat el codi. Si teniu cap pregunta, feu-m’ho saber. Bona sort!

Recomanat: