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, Srpanj
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

Nadahnuo me ovaj instruktor za stvaranje automatskih vrata kokošinjaca. Ne samo da sam htio vrata kokošinjaca na tajmeru, već sam htio i vrata spojiti na internet kako bih ih mogao kontrolirati telefonom ili računalom. Ova vrata su izgrađena za moj kokošinjac, međutim, lako se mogu primijeniti na druge vrste stanova za razne kućne ljubimce. Također možete koristiti različite vrste 12V motora osim starog antenskog motora za automobile koji sam koristio.

Nakon postavljanja i povezivanja Adafruit IO i IFTTT s mojim ESP8266, mojim vratima za kokošinjac može se upravljati putem interneta. Vrata se mogu otvoriti ili zatvoriti:

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

2) Pritiskom na gumb na telefonu

3) Slanjem tekstualne poruke na određeni broj

4) Klikom na gumb na adafruit.io

5) Pritiskom na fizički gumb

Povrh tih značajki, vrata kokošinjaca mogu slati push obavijesti na moj telefon putem aplikacije IFTTT 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, upotrijebio sam odašiljač i prijamnik RFM69HCW od 433 MHz uparen s ESP8266 da bih ostvario ovaj projekt. Tu je crna unutarnja odašiljačka kutija s hardverom koji je spojen na internet i siva vanjska prijemna kutija koja upravlja motorom.

Ova instrukcija će vas provesti kroz proces stvaranja hardvera potrebnog za upravljanje 12V motorom koji otvara ili zatvara vrata mojih kokošinjaca.

Koristio sam sljedeće dijelove:

Adafruit 32u4 sa 433MHz RFM69HCW - 25 USD

Adapruit 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 priključak za antenu - 0,75 USD

Adafruit RGB tipka - 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 kanala)- 7 USD

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

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

2x 433MHz svesmjerna antena - 6 USD

uFL na SMA kabelski adapter (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

LCD s plavim znakovima 20x4 - 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 vrata spojen na jedan od pinova 32u4 Arduino mikrokontrolera koji osjeća jesu li vrata ispravno 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 za automobil, 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.

Kad se primi otvoreni ili zatvoreni prijenos, vanjski prijemnik odgovara sa "sensorOpen" ili "sensorClosed" kako bi naznačio status osjetnika prekidača vrata. U idealnom slučaju, naredba "open" vratila bi odgovor "sensorOpen", međutim, ako se vrata zaglave ili motor zaglavi, oni se neće podudarati. Kad se ne podudaraju, unutarnji odašiljač prikazat će te informacije, a push obavijest bit će poslana na vaš telefon.

Korak 2: Spajanje hardvera vanjskog prijemnika

Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Povezivanje hardvera vanjskog prijemnika
Spajanje hardvera vanjskog prijemnika
Spajanje 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. Onog trenutka kad spojite 12V na crvenu žicu, motor će se povući ako se produži. Ako spojite 12V na crvenu žicu i zelenu žicu istovremeno, 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 gornjoj slici koju sam priložio. Pomoću softvera na ulazni pin na 32u4 pričvršćen je unutarnji otpornik za izvlačenje pa sve što trebate učiniti je spojiti prekidač vrata na ulazni pin, a također i na masu.

Morat ćete priključiti antenu na Adafruit 32u4. Molimo pogledajte zaista dobro objašnjen vodič za ovaj korak Adafruit -a. Odlučio sam koristiti vanjsku antenu umjesto komada žice kako bih dobio bolji domet.

Korak 3: Unutarnji odašiljač

Unutarnji odašiljač
Unutarnji odašiljač
Unutarnji odašiljač
Unutarnji odašiljač
Unutarnji odašiljač
Unutarnji odašiljač

Unutarnji odašiljač sastoji se od Adafruit Radio FeatherWinga 433MHz RFM69HCW naslaganog na Adafruit Feather HUZZAH s ESP8266 WiFi. Ovi moduli povezani su s zaslonom od 20x4 znakova i srebrnim gumbom RGB unutar crne projektne kutije.

Zaslon ima sat usklađen s NTC -om, jačinu RSSI -ja u dB (mjeri jačinu radio signala), vrijeme otvaranja vrata kokošinjaca, vrijeme zatvaranja vrata kokošinjaca i trenutačni status vrata. Gumb je crven kada su vrata zatvorena i zelen 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 pogreške. U prvom načinu pogreške na zaslonu će se pojaviti poruka "ERROR! Pokušajte ponovno pokrenuti vanjski prijemnik." a gumb neće imati boju. Ako osjetnik prekidača vrata otkrije da se vrata nisu pravilno zatvorila ili otvorila, zaslon i tipka RGB prelaze u drugi od dva načina pogreške. U drugom načinu pogreške, na zaslonu će se pojaviti poruka "GREŠKA! Problem sa senzorima vrata ili prekidača." a gumb 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 svoj telefon ako se pojavi bilo koji od ovih načina pogreške (preći ću na to postavljanje u kasnijem koraku).

Korak 4: Spajanje hardvera unutarnjeg odašiljača

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

Nakon slaganja Adafruit Radio FeatherWinga 433MHz RFM69HCW na vrh Adafruit Feather HUZZAH -a s 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 stvarno cool IC koji povezuje do 16 dodatnih ulazno/izlaznih pinova na bilo koji mikrokontroler preko I2C. Osim toga, postoji unaprijed napisana knjižnica pod nazivom Adafruit-RGB-LCD-Shield koja koristi ovaj IC s prikazom znakova koji je tehnički napisan za ovaj Adafruit proizvod, međutim, savršeno radi za ovaj projekt.

Ideja o korištenju MCP23017 s prikazom znakova potječe od ove vrlo dobro napisane upute. Molimo provjerite!

Uzeo sam tu instrukciju i umjesto povezivanja više gumba i RGB zaslona na IC, spojio sam samo jednu tipku koja je imala 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 zaslona) kao pozadinsko osvjetljenje za moj jednobojni zaslon, PIN 28 (obično se koristi za zeleno pozadinsko osvjetljenje RGB zaslona) kao crvenu LED diodu unutar gumb, a PIN 27 (obično se koristi za crveno pozadinsko osvjetljenje RGB zaslona) kao zelena LED dioda unutar gumba. PIN 24 je spojen na jednu stranu gumba, a druga strana na masu. Isključivanje gumba možete vidjeti na gornjoj slici (ostavio sam plavu katodu isključenom).

Osim korištenja instrukcija koje sam povezao za povezivanje 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šnjen vodič za ovaj korak Adafruit -a. Odlučio sam koristiti vanjsku antenu sa bočno postavljenim SMA priključkom umjesto komada žice kako bih dobio bolji domet.

Korak 5: Spajanje na Adafruit. IO i IFTTT

Spajanje na Adafruit. IO i IFTTT
Spajanje na Adafruit. IO i IFTTT
Spajanje na Adafruit. IO i IFTTT
Spajanje 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 što je feed i nadzorna ploča.

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

Prvo izradite četiri feeda:

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 pogreške Chicken Coup" Ovo je za poruke o pogrešci

Zatim stvorite nadzornu ploču pod nazivom Chicken Coup i dodajte 4 bloka pomoću plavog gumba +. Molimo pogledajte gornju sliku za vrste blokova koje trebate postaviti, kao i nazive blokova. Status statusa prekidača obavezno imenujte "Otvoreno" i "Zatvoreno"

IFTTT:

IFTTT dio ovog projekta dodaje mogućnost pritiskanja gumba na telefonu i slanja teksta za otvaranje ili zatvaranje vrata kokošinjaca. Također omogućuje aplikaciji IFTTT da vam šalje push obavijesti ako se bilo što objavi u feedu poruke o pogrešci pilećeg udara. Ako ne želite ove mogućnosti, možete preskočiti ovaj odjeljak.

Najprije postavite IFTTT račun ako ga već nemate. Ako želite koristiti unaprijed izrađene aplete koje sam izradio, 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 ovu stranicu vodiča Adafruit da biste mogli učitati kôd na odašiljač u zatvorenom prostoru.

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

Morat ćete instalirati knjižnicu RFM69, knjižnicu Adafruit_RGBLCDShield, knjižnicu sata NTC koja se naziva simpleDSTadjust i knjižicu s oznakama. 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 korisničko ime za Adafruit. IO i IO ključ slijedeći ovu stranicu s uputama i unesite ih na karticu config.h.

Ako ste promijenili nazive 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 o greški 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čeni: