Sadržaj:

IoT vanjska vrata za kućne ljubimce: 6 koraka (sa slikama)
IoT vanjska vrata za kućne ljubimce: 6 koraka (sa slikama)

Video: IoT vanjska vrata za kućne ljubimce: 6 koraka (sa slikama)

Video: IoT vanjska vrata za kućne ljubimce: 6 koraka (sa slikama)
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Juli
Anonim
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce
IoT Vanjska vrata za kućne ljubimce

Inspiriran sam ovim uputstvom za stvaranje automatskih vrata kokošinjaca. Ne samo da sam htio vrata od kokošinjaca na tajmeru, već sam htio i vrata povezati s internetom kako bih mogao upravljati telefonom ili računarom. Ova vrata su napravljena za moj kokošinjac, međutim, lako se mogu primijeniti na druge vrste stanova za razne kućne ljubimce. Osim starog antenskog motora za automobil koji sam koristio, mogli biste koristiti i različite vrste 12V motora.

Nakon postavljanja i povezivanja Adafruit IO i IFTTT s mojim ESP8266, mojim vratima kokošinjaca se može upravljati na mreži. Vrata se mogu otvoriti ili zatvoriti:

1) U tačno vrijeme koje unesem na adafruit.io

2) Pritiskom na dugme na telefonu

3) Slanjem tekstualne poruke na određeni broj

4) Klikom na dugme na adafruit.io

5) Pritiskom na fizičko dugme

Povrh ovih funkcija, vrata kokošinjaca mogu slati push obavijesti na moj telefon putem IFTTT aplikacije o svim problemima s vratima, poput vrata koja se ne otvaraju ili zatvaraju.

Budući da je moj kokošinjac udaljen oko 500 stopa od mog WiFi usmjerivača, koristio sam odašiljač i prijemnik RFM69HCW od 433 MHz uparen s ESP8266 da bih ostvario ovaj projekt. Postoji crna zatvorena kutija za odašiljač sa hardverom koji je spojen na internet i siva vanjska kutija za prijemnik koja upravlja motorom.

Ovo uputstvo će vas provesti kroz proces stvaranja hardvera potrebnog za upravljanje 12V motorom koji otvara ili zatvara vrata mog kokošinjaca.

Koristio sam sljedeće dijelove:

Adafruit 32u4 sa 433MHz RFM69HCW - 25 USD

Adafruit MCP23017 I2C 16 proširivač ulazno/izlaznih priključaka IC - 2,95 USD

Adafruit pero HUZZAH s ESP8266 WiFi - 16,95 USD

Adafruit Radio FeatherWing 433MHz RFM69HCW - 10 USD

Adafruit SMA konektor za PCB debljine 1,6 mm - 2,50 USD

Adafruit uFL SMA konektor za antenu - 0,75 USD

Adafruit RGB dugme - 10,95 USD

Napajanje od 12V - 7 USD

5V USB napajanje - 7 USD

Mikro USB kabel - 5 USD

4-kanalna relejna ploča (može koristiti 2-kanalnu)- 7 USD

DC -DC Buck pretvarač (korišten samo jedan, ali dolazi u pakiranju od 5 komada) - 20 USD

Reed prekidač (magnetni senzor prekidača vrata) - 9 USD

2x višesmjerna antena od 433MHz - 6 USD

uFL na SMA adapter za kabel (korišten samo jedan, ali dolazi u pakiranju od 2) - 5 USD

Vodootporna vanjska ABS projektna kutija - 11 USD

Crna ABS projektna kutija - 10 USD

20x4 LCD s plavim znakovima - 10 USD

12V automobilski antenski motor - ~ 25 USD na ebayu

Žica i otpornici

Korak 1: Vanjski prijemnik

Vanjski prijemnik
Vanjski prijemnik
Vanjski prijemnik
Vanjski prijemnik

Vanjski prijemnik sastoji se od Adafruit 32u4 sa 433MHz RFM69HCW spojenog na nekoliko releja koji uključuju ili isključuju napajanje za motor od 12V. Ovi moduli, kao i 12V do 5V DC-DC pretvarač nalaze se unutar vodootporne sive projektne kutije. Konačno, postoji senzor prekidača za vrata spojen na jedan od pinova 32u4 Arduino mikrokontrolera koji osjeća jesu li vrata pravilno otvorena ili zatvorena kada je trebalo.

Svakih 15 sekundi unutarnji odašiljač šalje "Otvori" ili "Zatvori". Na temelju primljene naredbe, Arduino 32u4 će uključiti ili isključiti relej. Za motor koji sam odabrao, a to je stari antenski motor, morao sam uključiti ili isključiti dva releja zbog načina na koji je motor ožičen. U osnovi je postojao relej za uključivanje napajanja, a zatim još jedan relej koji je kontrolirao hoće li motor biti produžen ili uvučen.

Nakon što se primi otvoreni ili zatvoreni prijenos, vanjski prijemnik odgovara sa "sensorOpen" ili "sensorClosed" kako bi pokazao status senzora prekidača vrata. U idealnom slučaju, naredba "open" vratila bi "sensorOpen" odgovor, međutim, ako se vrata zaglave ili motor zaglavi, oni se neće podudarati. Kada se ne podudaraju, unutarnji odašiljač će prikazati te informacije i push obavijest će biti poslana na vaš telefon.

Korak 2: Povezivanje hardvera vanjskog prijemnika

Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika

Hardver za vanjski prijemnik nije previše teško spojiti. Dolje sam uključio shemu fritzinga tako da se igle koje sam koristio mogu lako pregledati.

Kao što sam gore naveo, za motor koji sam koristio bila su potrebna dva releja. Uključio sam sliku isječka. Kad na 12V priključite crvenu žicu, motor će se povući ako se produži. Ako istovremeno spojite 12V na crvenu i zelenu žicu, motor će se produžiti.

Trskasti prekidač koji sam gore povezao trebao bi biti ožičen kao normalno zatvoren prekidač. Razlika između normalno otvorenog i normalno zatvorenog je objašnjena na slici koju sam priložio gore. Pomoću softvera postoji unutrašnji pullup otpornik pričvršćen na ulazni pin na 32u4, pa sve što trebate učiniti je spojiti prekidač vrata na ulazni pin i također na masu.

Morat ćete priključiti antenu na Adafruit 32u4. Molimo pogledajte zaista dobro objašnjeno uputstvo Adafruit o ovom koraku. Odlučio sam koristiti vanjsku antenu umjesto komada žice kako bih dobio bolji domet.

Korak 3: Unutrašnji odašiljač

Unutrašnji odašiljač
Unutrašnji odašiljač
Unutrašnji odašiljač
Unutrašnji odašiljač
Unutrašnji odašiljač
Unutrašnji odašiljač

Unutrašnji odašiljač sastoji se od Adafruit Radio FeatherWinga 433MHz RFM69HCW naslaganog na Adafruit Feather HUZZAH sa ESP8266 WiFi. Ovi moduli su spojeni na zaslon veličine 20x4 i RGB srebrno dugme unutar crne projektne kutije.

Zaslon ima NTC sinhronizirani sat, jačinu RSSI -ja u dB (mjeri jačinu radio signala), vrijeme otvaranja vrata kokošinjaca, vrijeme zatvaranja vrata kokošinjaca i trenutni status vrata. Dugme je crveno kada su vrata zatvorena i zeleno kada su vrata otvorena.

Ako vanjski prijemnik izgubi napajanje ili ako se signal iz 433MHz ne može poslati iz bilo kojeg razloga, zaslon i tipka RGB prelaze u prvi od dva moguća načina greške. U prvom režimu greške, na ekranu će se pojaviti poruka "ERROR! Pokušajte ponovo pokrenuti vanjski prijemnik." i dugme neće imati boju. Ako senzor prekidača vrata otkrije da se vrata nisu pravilno zatvorila ili otvorila, zaslon i tipka RGB prelaze u drugi od dva načina greške. U drugom načinu greške, na zaslonu će se pojaviti poruka "GREŠKA! Problem sa senzorima vrata ili prekidača." i dugme neće imati boju. Kad se problem sam riješi, zaslon i RGB tipka vratit će se u normalu. Možete primiti push obavijesti na telefon ako se pojavi bilo koji od ovih načina greške (preći ću na to podešavanje u kasnijem koraku).

Korak 4: Povezivanje hardvera odašiljača za zatvoreni prostor

Povezivanje hardvera odašiljača za unutarnji rad
Povezivanje hardvera odašiljača za unutarnji rad
Povezivanje hardvera odašiljača za unutarnji rad
Povezivanje hardvera odašiljača za unutarnji rad

Nakon slaganja Adafruit Radio FeatherWinga 433MHz RFM69HCW na vrhu Adafruit Feather HUZZAH -a sa ESP8266 WiFi, preostale su samo 2 iglice koje nisu uzete, I2C igle SDA i SCL. Zato sam se odlučio za integrirano kolo (IC) MCP23017. To je zaista cool IC koji povezuje do 16 dodatnih ulazno/izlaznih pinova na bilo koji mikrokontroler preko I2C. Osim toga, postoji unaprijed napisana biblioteka pod nazivom Adafruit-RGB-LCD-Shield koja koristi ovaj IC sa prikazom znakova koji je tehnički napisan za ovaj Adafruit proizvod, međutim, savršeno funkcionira za ovaj projekt.

Ideja o korištenju MCP23017 s prikazom znakova dolazi iz ove vrlo dobro napisane upute. Molimo provjerite!

Uzeo sam to uputstvo i umjesto povezivanja više tipki i RGB ekrana na IC, spojio sam samo jedno dugme koje je imalo RGB LED unutar sebe i jednobojni zaslon na IC. To mi je omogućilo da definiram PIN 1 IC (obično se koristi za plavo pozadinsko osvjetljenje RGB ekrana) kao pozadinsko osvjetljenje za moj jednobojni ekran, PIN 28 (obično se koristi za zeleno pozadinsko osvjetljenje RGB ekrana) kao crvenu LED diodu unutar dugme, a PIN 27 (obično se koristi za crveno pozadinsko osvetljenje RGB ekrana) kao zelena LED dioda unutar dugmeta. PIN 24 je spojen na jednu stranu dugmeta, a druga strana na masu. Isključivanje dugmeta možete vidjeti na gornjoj slici (ostavio sam plavu katodu isključenom).

Osim što sam koristio instrukcije koje sam povezao za pomoć u povezivanju zaslona, uključio sam i shemu prefarbavanja koja će vam pomoći da sve povežete.

Morat ćete kratiti tri igle na vrhu FeatherWinga 433MHz RFM69HCW kako je objašnjeno u ovom vodiču za Adafruit. Također ćete morati priključiti antenu na FeatherWing 433MHz RFM69HCW. Molimo pogledajte zaista dobro objašnjeno uputstvo Adafruit o ovom koraku. Odlučio sam koristiti vanjsku antenu sa bočno postavljenim SMA konektorom umjesto komada žice kako bih dobio bolji domet.

Korak 5: Povezivanje na Adafruit. IO i IFTTT

Povezivanje na Adafruit. IO i IFTTT
Povezivanje na Adafruit. IO i IFTTT
Povezivanje na Adafruit. IO i IFTTT
Povezivanje na Adafruit. IO i IFTTT

Adafruit IO:

Slijedite upute u ovom vodiču za Adafruit da biste se prijavili za Adafruit. IO ako nemate račun. Također biste trebali pročitati o tome šta je feed i nadzorna ploča.

Jednostavno rečeno, nadzorna ploča je nešto poput grafičkog korisničkog sučelja, dok su sažeci sadržaji na koje šaljete podatke kako biste ih mogli pohraniti na internet. Morat ćete stvoriti 1 nadzornu ploču i 4 izvoda. Ja sam svoje nazvao prije nego što sam znao pravilno napisati kokošinjac, pa oprostite zbog pogrešnog pravopisa. Ako ne želite preimenovati nazive izvora u arduino kodu, samo upotrijebite isto ime koje sam i ja.

Prvo kreirajte četiri izvora:

1) "Chicken Coup" Ovo je za prekidač za otvaranje/zatvaranje

2) "Chicken Coup Timer" Ovo je za otvoreni mjerač vremena

3) "Chicken Coup Timer 2" Ovo je mjerač vremena zatvaranja

4) "Poruka greške Chicken Coup" Ovo je za poruke o grešci

Zatim stvorite nadzornu ploču pod nazivom Chicken Coup i dodajte 4 bloka koristeći plavo + dugme. Molimo pogledajte gornju sliku za vrste blokova koje trebate postaviti, kao i nazive blokova. Svakako imenujte statuse prekidača "Otvoreno" i "Zatvoreno"

IFTTT:

IFTTT dio ovog projekta dodaje mogućnost da pritisnete dugme na svom telefonu i pošaljete tekst za otvaranje ili zatvaranje vrata kokošinjaca. Omogućava i aplikaciji IFTTT da vam šalje push obavijesti ako je bilo šta objavljeno na sažetku poruka o grešci pilećeg udara. Ako ne želite ove mogućnosti, možete preskočiti ovaj odjeljak.

Prvo postavite IFTTT račun ako ga već nemate. Ako želite koristiti već izrađene aplete koje sam stvorio, samo idite na moj račun i uključite željene aplete. U suprotnom ćete morati stvoriti vlastiti i pretplatiti se ili objaviti na adafruit feedu koji ste stvorili gore.

Korak 6: Prijenos koda i uređivanje WiFi SSID -a i lozinke

Morat ćete proći kroz ovu stranicu vodiča Adafruit da biste mogli učitati kôd na odašiljač u zatvorenom prostoru.

Morat ćete proći kroz ovu stranicu vodiča Adafruit da biste mogli učitati kôd na vanjski prijemnik.

Morat ćete instalirati biblioteku RFM69, biblioteku Adafruit_RGBLCDShield, biblioteku sata NTC koja se naziva simpleDSTadjust i biblioteku oznaka. Vodič o tome kako to učiniti možete pronaći ovdje.

Otvorite Arduino IDE i prenesite kod "Outdoor_Receiver.ino" na vanjski Arduino 32u4 putem USB kabela.

Zatim otvorite "Indoor_Transmitter.ino", otvorite karticu config.h i unesite svoje WiFi ime (SSID) i lozinku unutar navodnika. Zatim nabavite svoje Adafruit. IO korisničko ime i IO ključ slijedeći ovu stranicu s vodičem i unesite ih na karticu config.h.

Ako ste promijenili imena Adafruit IO feedova, morat ćete urediti kôd na glavnoj kartici Indoor_Transmitter. Uredite sljedeće:

AdafruitIO_Feed *toggleSwitch = io.feed ("Pileći udar");

AdafruitIO_Feed *timer = io.feed ("Tajmer za pileći udar");

AdafruitIO_Feed *timer2 = io.feed ("Tajmer za pileći udar 2");

AdafruitIO_Feed *error = io.feed ("Poruka greške pilećeg udara");

To bi trebalo biti sve što morate učiniti! Ako želite dodatno razumjeti kako dvije skice funkcioniraju, komentirao sam kod. Javite mi ako imate pitanja. Sretno!

Preporučuje se: