Cuprins:

Ușă pentru animale de companie IoT în aer liber: 6 pași (cu imagini)
Ușă pentru animale de companie IoT în aer liber: 6 pași (cu imagini)

Video: Ușă pentru animale de companie IoT în aer liber: 6 pași (cu imagini)

Video: Ușă pentru animale de companie IoT în aer liber: 6 pași (cu imagini)
Video: Iată DE CE Vânătorii Nu vor ÎMPUȘCA NICIODATĂ un Lup cu Pată ALBĂ 2024, Iulie
Anonim
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor
Ușă pentru animale de companie IoT Outdoor

M-a inspirat acest instructabil pentru a crea o ușă automată pentru cocină. Nu numai că am vrut ușa coșului de pui pe un cronometru, dar am vrut și să conectez ușa la internet, astfel încât să o pot controla cu telefonul sau computerul. Această ușă a fost construită pentru coșul meu de pui, cu toate acestea, ar putea fi ușor aplicată pe alte tipuri de locuințe pentru o varietate de animale de companie. De asemenea, ați putea folosi diferite tipuri de motoare de 12V pe lângă vechiul motor de antenă auto pe care l-am folosit.

După configurarea și conectarea Adafruit IO și IFTTT la ESP8266, ușa mea de găină poate fi controlată online. Ușa poate fi deschisă sau închisă:

1) La momente precise pe care le introduc pe adafruit.io

2) Prin apăsarea unui buton de pe telefonul meu

3) Prin trimiterea unui mesaj text către un anumit număr

4) Făcând clic pe un buton de pe adafruit.io

5) Prin apăsarea unui buton fizic

În plus față de aceste caracteristici, ușa coșului poate trimite notificări push către telefonul meu prin intermediul aplicației IFTTT cu privire la orice probleme legate de ușă, cum ar fi ușa care nu se deschide sau se închide.

Deoarece ghișeul meu se află la aproximativ 500 de metri distanță de routerul meu WiFi, am folosit un transmițător și un receptor RFM69HCW de 433 MHz asociat cu un ESP8266 pentru a realiza acest proiect. Există o cutie neagră de transmițător interior cu hardware conectat la internet și o cutie de recepție gri în aer liber care controlează motorul.

Această instrucțiune vă va duce prin procesul de creare a hardware-ului necesar pentru a controla un motor de 12V care deschide sau închide ușa găinăriei mele.

Am folosit următoarele părți:

Adafruit 32u4 cu 433MHz RFM69HCW - 25 USD

Adafruit MCP23017 I2C 16 IC de expansiune port intrare / ieșire - 2,95 USD

Adafruit Feather HUZZAH cu ESP8266 WiFi - 16,95 USD

Adafruit Radio FeatherWing 433MHz RFM69HCW - 10 USD

Conector SMA Adafruit pentru PCB grosime 1,6 mm - 2,50 USD

Adafruit uFL SMA Antenna Connector - 0,75 USD

Buton Adafruit RGB - 10,95 USD

Alimentare de 12V - 7 USD

Sursă de alimentare USB de 5V - 7 USD

Cablu micro USB - 5 USD

Placă de releu cu 4 canale (poate folosi 2 canale) - 7 USD

Convertor DC-DC Buck (folosit doar unul, dar vine ca pachet de 5) - 20 USD

Reed Switch (senzor magnetic al comutatorului ușii) - 9 USD

2x antenă omnidirecțională de 433 MHz - 6 USD

Adaptor de cablu uFL la SMA (folosit doar unul, dar vine ca pachet de 2) - 5 USD

Cutie de proiect ABS impermeabilă în aer liber - 11 USD

Cutie proiect negru ABS - 10 USD

LCD cu caractere albastre 20x4 - 10 USD

Motor de antenă auto de 12V - ~ 25 USD pe eBay

Sârmă și rezistențe

Pasul 1: Receptor exterior

Receptor exterior
Receptor exterior
Receptor exterior
Receptor exterior

Receptorul exterior este format dintr-un Adafruit 32u4 cu RFM69HCW de 433MHz conectat la câteva relee care pornesc sau opresc alimentarea pentru un motor de 12V. Aceste module, precum și un convertor DC-DC de 12V la 5V se află într-o cutie de proiectare gri impermeabilă. În cele din urmă, există un senzor de comutare a ușii conectat la unul dintre pinii microcontrolerului Arduino 32u4 care detectează dacă ușa a fost deschisă sau închisă corect atunci când ar trebui să aibă.

La fiecare 15 secunde, transmițătorul interior va trimite „Deschis” sau „Închis”. Pe baza comenzii primite, Arduino 32u4 va activa sau dezactiva un releu. Pentru motorul pe care l-am ales, care este un motor vechi de antenă auto, a trebuit să pornesc sau să opresc două relee din cauza modului în care este conectat motorul. Practic a existat un releu pentru a porni alimentarea și apoi un alt releu care controlează dacă motorul se extinde sau nu.

Odată ce transmisia deschisă sau închisă este recepționată, receptorul exterior răspunde cu „senzor Deschis” sau „senzor închis” pentru a indica starea senzorului comutatorului ușii. În mod ideal, comanda „deschis” ar returna un răspuns „senzor Deschis”, totuși, dacă ușa se blochează sau motorul se blochează, acestea nu se vor potrivi. Când nu se potrivesc, transmițătorul interior va afișa aceste informații și o notificare push va fi trimisă pe telefonul dvs.

Pasul 2: Conectarea hardware-ului receptorului exterior

Conectarea hardware-ului receptorului exterior
Conectarea hardware-ului receptorului exterior
Conectarea hardware-ului receptorului exterior
Conectarea hardware-ului receptorului exterior
Conectarea hardware-ului receptorului exterior
Conectarea hardware-ului receptorului exterior

Hardware-ul pentru receptorul exterior nu este prea dificil de conectat. Am inclus mai jos o schemă fritzing, astfel încât pinii pe care i-am folosit să poată fi vizualizați cu ușurință.

După cum am menționat mai sus, motorul pe care l-am folosit a necesitat două relee. Am inclus o imagine a pinout-ului. În momentul în care conectați 12V la firul roșu, motorul se va retrage dacă este extins. Dacă conectați 12V la firul roșu și firul verde în același timp, motorul se va extinde.

Comutatorul reed pe care l-am legat mai sus ar trebui să fie conectat ca un comutator normal închis. Diferența dintre normal deschis și normal închis este explicată în imaginea pe care am atașat-o mai sus. Folosind software-ul, există un rezistor de tragere intern atașat la pinul de intrare de pe 32u4, deci tot ce trebuie să faceți este să conectați comutatorul ușii la pinul de intrare și, de asemenea, la masă.

Va trebui să atașați o antenă la Adafruit 32u4. Vă rugăm să consultați tutorialul Adafruit foarte bine explicat despre acest pas. Am ales să folosesc o antenă externă în loc de o bucată de sârmă pentru a obține o autonomie mai bună.

Pasul 3: Transmițător interior

Transmițător interior
Transmițător interior
Transmițător interior
Transmițător interior
Transmițător interior
Transmițător interior

Transmițătorul interior este format dintr-un Adafruit Radio FeatherWing 433MHz RFM69HCW stivuit deasupra unui Adafruit Feather HUZZAH cu ESP8266 WiFi. Aceste module sunt conectate la un afișaj de caractere 20x4 și un buton RGB argintiu în interiorul unei cutii negre de proiect.

Afișajul are un ceas sincronizat cu NTC, puterea RSSI în dB (măsoară puterea semnalelor radio), ora la care se va deschide ușa gătitului, ora la care se va închide ușa gătitului și starea actuală a ușii. Butonul este roșu când ușa este închisă și verde când ușa este deschisă.

Dacă receptorul exterior pierde puterea sau dacă semnalul de 433 MHz nu poate fi trimis din orice motiv, afișajul și butonul RGB vor intra în primul dintre cele două moduri de eroare posibile. În primul mod de eroare, afișajul va spune „EROARE! Încercați să reporniți receptorul exterior.” iar butonul nu va avea o culoare. Dacă senzorul comutatorului ușii detectează că ușa nu s-a închis sau s-a deschis corect, afișajul și butonul RGB vor intra în al doilea dintre cele două moduri de eroare. În cel de-al doilea mod de eroare, pe afișaj va apărea „EROARE! Problemă senzor ușă sau comutator”. iar butonul nu va avea o culoare. Când problema se rezolvă singură, afișajul și butonul RGB vor reveni la normal. Puteți primi notificări push pe telefonul dvs. dacă apare oricare dintre aceste moduri de eroare (voi trece peste această configurare într-un pas ulterior).

Pasul 4: Conectarea hardware-ului transmițătorului interior

Conectarea hardware-ului transmițătorului interior
Conectarea hardware-ului transmițătorului interior
Conectarea hardware-ului transmițătorului interior
Conectarea hardware-ului transmițătorului interior

După stivuirea Adafruit Radio FeatherWing 433MHz RFM69HCW deasupra unui Adafruit Feather HUZZAH cu WiFi ESP8266, mai sunt doar 2 pini care nu sunt luați, pinii I2C SDA și SCL. Acesta este motivul pentru care am mers cu circuitul integrat (IC) MCP23017. Este un IC foarte interesant care conectează până la 16 pini de intrare / ieșire suplimentari la orice microcontroler pe I2C. În plus, există o bibliotecă pre-scrisă numită Adafruit-RGB-LCD-Shield care folosește acest IC cu un afișaj de caractere care este scris tehnic pentru acest produs Adafruit, însă funcționează perfect pentru acest proiect.

Ideea de a utiliza MCP23017 cu un afișaj de caractere vine de la acest instructiv foarte bine scris. Te rog sa verifici!

Am luat acel instructabil și, în loc să conectez mai multe butoane și un afișaj RGB la IC, am conectat un singur buton care avea un LED RGB în interiorul său și un afișaj monocrom la IC. Acest lucru mi-a permis să definesc PIN-ul 1 al IC-ului (utilizat în mod obișnuit pentru lumina de fundal albastră a unui afișaj RGB) ca iluminare de fundal pentru afișajul meu monocrom, PIN 28 (utilizat de obicei pentru lumina de fundal verde a unui afișaj RGB) ca LED-ul roșu din interiorul buton și PIN 27 (utilizat de obicei pentru iluminarea de fundal roșie a unui afișaj RGB) ca LED verde din interiorul butonului. PIN-ul 24 a fost conectat la o parte a butonului, iar cealaltă parte a fost conectată la masă. Puteți vedea pinout-ul butonului în imaginea atașată mai sus (am lăsat catodul albastru deconectat).

Pe lângă utilizarea acestui instrument instructiv pe care l-am legat pentru a ajuta la conectarea ecranului, am inclus o schemă interesantă care vă va ajuta să conectați totul.

Va trebui să scurtați trei pini în partea de sus a FeatherWing 433MHz RFM69HCW, așa cum este explicat de acest tutorial Adafruit. Va trebui, de asemenea, să atașați o antenă la FeatherWing 433MHz RFM69HCW. Vă rugăm să consultați tutorialul Adafruit foarte bine explicat despre acest pas. Am ales să folosesc o antenă externă cu un conector SMA montat lateral în loc de o bucată de sârmă pentru a obține o autonomie mai bună.

Pasul 5: Conectarea la Adafruit. IO și IFTTT

Conectarea la Adafruit. IO și IFTTT
Conectarea la Adafruit. IO și IFTTT
Conectarea la Adafruit. IO și IFTTT
Conectarea la Adafruit. IO și IFTTT

Adafruit IO:

Vă rugăm să urmați instrucțiunile din acest tutorial Adafruit pentru a vă înscrie la Adafruit. IO dacă nu aveți un cont. De asemenea, ar trebui să citiți despre ce este un feed și un tablou de bord.

În termeni simpli, un tablou de bord este un fel de interfață grafică cu utilizatorul, în timp ce fluxurile sunt către care trimiteți datele, astfel încât să le puteți stoca pe internet. Va trebui să creați 1 tablou de bord și 4 fluxuri. Am numit-o pe a mea înainte să știu cum să scriu corect cocoșul de pui, așa că vă rog să iertați ortografia incorectă. Dacă nu doriți să redenumiți numele fluxurilor din codul arduino, folosiți același nume pe care l-am făcut.

Creați mai întâi cele patru fluxuri:

1) „Chicken Coup” Aceasta este pentru comutatorul Deschis / Închis

2) „Chicken Coup Timer” Acesta este pentru temporizatorul deschis

3) „Chicken Coup Timer 2” Acesta este pentru temporizatorul de închidere

4) „Chicken Coup Error Message” Acesta este pentru mesajele de eroare

Creați apoi un tablou de bord numit Chicken Coup și adăugați 4 blocuri folosind butonul albastru +. Vă rugăm să consultați imaginea de mai sus pentru tipurile de blocuri pe care ar trebui să le plasați, precum și numele blocurilor. Asigurați-vă că numiți stările comutatorului exact „Deschis” și „Închis”

IFTTT:

Partea IFTTT a acestui proiect adaugă capacitatea de a apăsa un buton pe telefonul dvs. și de a trimite un text pentru a deschide sau a închide ușa gătitului. De asemenea, permite aplicației IFTTT să vă trimită notificări push dacă este publicat ceva în fluxul de mesaje de eroare Chicken Coup. Dacă nu doriți aceste funcții, puteți sări peste această secțiune.

Mai întâi, configurați un cont IFTTT dacă nu aveți deja unul. Dacă doriți să utilizați applet-urile prefabricate pe care le-am creat, navigați la contul meu și porniți applet-urile dorite. În caz contrar, va trebui să vă creați propriul dvs. și să vă abonați sau să publicați feedul adafruit pe care l-ați creat mai sus.

Pasul 6: Încărcarea codului și editarea SSID WiFi și a parolei

Va trebui să parcurgeți această pagină a tutorialului Adafruit pentru a putea încărca codul pe transmițătorul interior.

Va trebui să parcurgeți această pagină a tutorialului Adafruit pentru a putea încărca codul pe receptorul exterior.

Va trebui să instalați biblioteca RFM69, biblioteca Adafruit_RGBLCDShield, biblioteca de ceas NTC numită simpleDSTadjust și biblioteca de marcaje. Aici puteți găsi un tutorial despre cum să faceți acest lucru.

Deschideți Arduino IDE și încărcați codul „Outdoor_Receiver.ino” pe Arduino 32u4 în aer liber printr-un cablu USB.

Apoi, deschideți „Indoor_Transmitter.ino”, deschideți fila config.h și introduceți numele WiFi (SSID) și parola în interiorul ghilimelelor. Apoi, obțineți numele de utilizator Adafruit. IO și cheia IO urmând această pagină de tutorial și introduceți-le în fila config.h.

Dacă ați schimbat numele fluxurilor IO Adafruit, va trebui să editați codul în fila principală Indoor_Transmitter. Editați următoarele:

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 („Mesaj de eroare Chicken Coup”);

Asta ar trebui să fie tot ce trebuie să faci! Dacă doriți să înțelegeți în continuare modul în care funcționează cele două schițe, am comentat codul. Vă rog să-mi spuneți dacă aveți întrebări. Noroc!

Recomandat: