Kazalo:

IoT zunanja vrata za hišne ljubljenčke: 6 korakov (s slikami)
IoT zunanja vrata za hišne ljubljenčke: 6 korakov (s slikami)

Video: IoT zunanja vrata za hišne ljubljenčke: 6 korakov (s slikami)

Video: IoT zunanja vrata za hišne ljubljenčke: 6 korakov (s slikami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Julij
Anonim
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata
IoT Zunanja hišna vrata

To navodilo me je navdihnilo za ustvarjanje avtomatskih vrat kokošinjca. Ne samo, da sem želel vrata kokošinjca na časovniku, ampak sem hotel povezati tudi vrata z internetom, da sem jih lahko upravljal s telefonom ali računalnikom. Ta vrata so bila zgrajena za moj kurnik, vendar pa bi jih bilo mogoče enostavno uporabiti za druge vrste bivališč za različne hišne ljubljenčke. Poleg starega antenskega motorja za avto, ki sem ga uporabljal, lahko uporabite tudi različne vrste 12V motorjev.

Po nastavitvi in povezovanju Adafruit IO in IFTTT z mojim ESP8266, lahko vrata svojih kokošnjakov nadzirate na spletu. Vrata lahko odprete ali zaprete:

1) V določenih časih, ko vstopim na adafruit.io

2) S pritiskom na gumb na telefonu

3) Pošiljanje besedilnega sporočila na določeno številko

4) S klikom na gumb na adafruit.io

5) S pritiskom na fizični gumb

Poleg teh funkcij lahko vrata kokošnjaka pošiljajo potisna obvestila v telefon prek aplikacije IFTTT o kakršnih koli težavah z vrati, na primer, če se vrata ne odprejo ali zaprejo.

Ker je moj kurnik zunaj približno 500 čevljev od usmerjevalnika WiFi, sem za izvedbo tega projekta uporabil oddajnik in sprejemnik RFM69HCW s 433 MHz, povezan z ESP8266. Obstaja črna notranja oddajna omarica s strojno opremo, ki je povezana z internetom, in siva zunanja sprejemna omarica, ki upravlja motor.

Ta navodila vas bodo popeljala skozi postopek ustvarjanja strojne opreme, potrebne za krmiljenje 12V motorja, ki odpre ali zapre vrata mojega kurnika.

Uporabil sem naslednje dele:

Adafruit 32u4 s 433MHz RFM69HCW - 25 USD

Razširjevalnik vhodno/izhodnih vrat Adafruit MCP23017 I2C 16 IC - 2,95 USD

Adafruit Feather HUZZAH z WiFi ESP8266 - 16,95 USD

Adafruit Radio FeatherWing 433MHz RFM69HCW - 10 USD

Priključek SMA Adafruit za PCB debeline 1,6 mm - 2,50 USD

Adafruit uFL SMA antenski priključek - 0,75 USD

Gumb Adafruit RGB - 10,95 USD

12V napajanje - 7 USD

5V USB napajalnik - 7 USD

Kabel mikro USB - 5 USD

4-kanalna relejna plošča (lahko uporabite 2-kanalno)- 7 USD

Pretvornik DC -DC Buck (uporabljen samo en, vendar v kompletu po 5) - 20 USD

Reed stikalo (senzor magnetnega stikala za vrata) - 9 USD

2x vsesmerna antena 433MHz - 6 USD

uFL na SMA kabelski adapter (uporabljen samo en, vendar v kompletu po 2) - 5 USD

Vodotesna zunanja projektna škatla ABS - 11 USD

Črna škatla za projekt ABS - 10 USD

LCD z modrimi znaki 20x4 - 10 USD

12V avtomobilski antenski motor - ~ 25 USD na ebayu

Žica in upori

Korak: Zunanji sprejemnik

Zunanji sprejemnik
Zunanji sprejemnik
Zunanji sprejemnik
Zunanji sprejemnik

Zunanji sprejemnik je sestavljen iz Adafruit 32u4 s 433MHz RFM69HCW, priključenega na nekaj relejev, ki vklopijo ali izklopijo napajanje 12V motorja. Ti moduli in pretvornik 12V do 5V DC-DC so v vodotesni sivi projektni škatli. Nazadnje je senzor stikala za vrata priključen na enega od zatičev mikrokrmilnika 32u4 Arduino, ki zazna, ali so vrata pravilno odprta ali zaprta, kadar bi morala.

Vsakih 15 sekund bo notranji oddajnik poslal "Odpri" ali "Zapri". Na podlagi prejetega ukaza bo Arduino 32u4 vklopil ali izklopil rele. Za motor, ki sem ga izbral, to je star motor za anteno avtomobila, sem moral vklopiti ali izklopiti dva releja zaradi načina ožičenja motorja. V bistvu je bil rele za vklop napajanja in nato še en rele, ki je nadzoroval, ali je motor podaljšan ali umaknjen.

Ko je sprejet odprt ali zaprt prenos, se zunanji sprejemnik odzove s "sensorOpen" ali "sensorClosed", da prikaže stanje senzorja stikala vrat. V idealnem primeru bi ukaz "open" vrnil odziv "sensorOpen", če pa se vrata zataknejo ali se motor zatakne, se ti ne bodo ujemali. Če se ne ujemajo, bo notranji oddajnik prikazal te informacije in potisno obvestilo bo poslano na vaš telefon.

2. korak: Priključitev strojne opreme zunanjega sprejemnika

Priključitev strojne opreme zunanjega sprejemnika
Priključitev strojne opreme zunanjega sprejemnika
Priključitev strojne opreme zunanjega sprejemnika
Priključitev strojne opreme zunanjega sprejemnika
Priključitev strojne opreme zunanjega sprejemnika
Priključitev strojne opreme zunanjega sprejemnika

Strojne opreme za zunanji sprejemnik ni preveč težko povezati. Spodaj sem vključil shemo fritovanja, da si lahko enostavno ogledate zatiče, ki sem jih uporabil.

Kot sem že navedel, je za motor, ki sem ga uporabil, potrebna dva releja. Priložil sem sliko pinout. Ko priključite 12V na rdečo žico, se bo motor umaknil, če bo podaljšan. Če hkrati priključite 12V na rdečo žico in zeleno žico, se bo motor podaljšal.

Reed stikalo, ki sem ga povezal zgoraj, mora biti ožičeno kot običajno zaprto stikalo. Razlika med normalno odprtim in normalno zaprtim je razložena na zgornji sliki, ki sem jo priložil. S pomočjo programske opreme je na vhodni zatič 32u4 pritrjen notranji uporni upor, zato morate le stikalo vrat priključiti na vhodni zatič in tudi na ozemljitev.

Na Adafruit 32u4 boste morali priključiti anteno. Oglejte si resnično dobro razloženo vadnico Adafruit o tem koraku. Za boljši doseg sem se odločil uporabiti zunanjo anteno namesto kosa žice.

Korak: Notranji oddajnik

Notranji oddajnik
Notranji oddajnik
Notranji oddajnik
Notranji oddajnik
Notranji oddajnik
Notranji oddajnik

Notranji oddajnik je sestavljen iz Adafruit Radio FeatherWing 433MHz RFM69HCW, zloženega na Adafruit Feather HUZZAH z WiFi ESP8266. Ti moduli so povezani z zaslonom znakov 20x4 in srebrnim gumbom RGB znotraj črne škatle za projekt.

Zaslon ima sinhronizirano uro NTC, moč RSSI v dB (meri moč radijskih signalov), čas, ko se bodo odprla vrata kurnika, čas, ko se bodo zaprla vrata kurnika, in trenutno stanje vrat. Gumb je rdeč, ko so vrata zaprta, in zelena, ko so vrata odprta.

Če zunanji sprejemnik izgubi moč ali če 433MHz signala iz kakršnega koli razloga ni mogoče poslati, bosta zaslon in gumb RGB prešla v prvega od dveh možnih načinov napak. V prvem načinu napake bo na zaslonu pisalo "NAPAKA! Poskusite znova zagnati zunanji sprejemnik." in gumb ne bo imel barve. Če senzor stikala za vrata zazna, da se vrata niso pravilno zaprla ali odprla, bosta zaslon in gumb RGB prešla v drugi od dveh načinov napak. V drugem načinu napake bo na zaslonu prikazano "NAPAKA! Težave z vrati ali stikalom stikala." in gumb ne bo imel barve. Ko se težava odpravi, se zaslon in gumb RGB vrneta v normalno stanje. Če pride do katerega od teh načinov napak, lahko na telefon prejmete potisna obvestila (to nastavitev bom obravnaval v naslednjem koraku).

4. korak: Priključitev strojne opreme notranjega oddajnika

Priključitev strojne opreme za notranji oddajnik
Priključitev strojne opreme za notranji oddajnik
Priključitev strojne opreme za notranji oddajnik
Priključitev strojne opreme za notranji oddajnik

Ko zložite Adafruit Radio FeatherWing 433MHz RFM69HCW na vrh Adafruit Feather HUZZAH z WiFi ESP8266, ostaneta le še 2 zatiča, ki sta zatiča I2C SDA in SCL. Zato sem se odločil za integrirano vezje (IC) MCP23017. To je res kul IC, ki poveže do 16 dodatnih vhodno/izhodnih zatičev na kateri koli mikrokrmilnik preko I2C. Poleg tega obstaja vnaprej napisana knjižnica, imenovana Adafruit-RGB-LCD-Shield, ki uporablja ta IC s prikazom znakov, ki je tehnično napisan za ta izdelek Adafruit, vendar za ta projekt odlično deluje.

Ideja o uporabi MCP23017 s prikazom znakov izhaja iz tega zelo dobro napisanega navodila. Prosim, preverite!

Vzel sem to navodilo in namesto, da bi na IC povezal več gumbov in zaslon RGB, sem na IC priključil le en gumb, ki je imel v sebi LED RGB in enobarvni zaslon. To mi je omogočilo, da sem določil PIN 1 IC (običajno se uporablja za modro osvetlitev zaslona RGB) kot osvetlitev mojega enobarvnega zaslona, PIN 28 (običajno se uporablja za zeleno osvetlitev zaslona RGB) kot rdečo LED v notranjosti gumb in PIN 27 (običajno se uporablja za rdečo osvetlitev zaslona RGB) kot zeleno LED v gumbu. PIN 24 je bil priključen na eno stran gumba, druga stran pa na ozemljitev. Izpis gumba lahko vidite na zgornji sliki (modro katodo sem pustil odklopljeno).

Poleg uporabe navodil, ki sem jih povezal za povezovanje zaslona, sem vključil še shemo fritovanja, ki vam bo pomagala povezati vse.

Na vrhu FeatherWing 433MHz RFM69HCW boste morali kratke tri zatiče, kot je razloženo v tej vadnici Adafruit. Na FeatherWing 433MHz RFM69HCW boste morali priključiti tudi anteno. Oglejte si resnično dobro razloženo vadnico Adafruit o tem koraku. Za boljši doseg sem se odločil uporabiti zunanjo anteno s stransko nameščenim SMA priključkom.

5. korak: Povežite se z Adafruit. IO in IFTTT

Povezovanje z Adafruit. IO in IFTTT
Povezovanje z Adafruit. IO in IFTTT
Povezovanje z Adafruit. IO in IFTTT
Povezovanje z Adafruit. IO in IFTTT

Adafruit IO:

Če nimate računa, sledite navodilom v tej vadnici Adafruit, da se prijavite na Adafruit. IO. Prav tako morate prebrati, kaj je vir in nadzorna plošča.

Preprosto povedano, nadzorna plošča je podobna grafičnemu uporabniškemu vmesniku, viri pa so tisto, na kar pošiljate podatke, tako da jih lahko shranite v internetu. Ustvariti morate 1 nadzorno ploščo in 4 vire. Svojega sem poimenoval, še preden sem znal pravilno črkovati kurnik, zato prosim oprostite napačnega črkovanja. Če ne želite preimenovati imen virov v kodi arduino, uporabite isto ime, ki sem ga uporabil jaz.

Najprej ustvarite štiri vire:

1) "Chicken Coup" To je za stikalo za odprto/zaprto

2) "Chicken Coup Timer" To je za časovnik odprtosti

3) "Chicken Coup Timer 2" To je časovnik za zapiranje

4) "Sporočilo o napaki Chicken Coup" To je za sporočila o napakah

Nato ustvarite nadzorno ploščo z imenom Chicken Coup in dodajte 4 bloke z uporabo modrega gumba +. Vrste blokov, ki jih morate postaviti, pa tudi imena blokov si oglejte na zgornji sliki. Status statusa stikala poimenujte točno "Odprto" in "Zaprto"

IFTTT:

Del tega projekta IFTTT dodaja možnost, da pritisnete gumb na telefonu in pošljete besedilo za odpiranje ali zapiranje vrat kurnika. Aplikaciji IFTTT omogoča tudi pošiljanje potisnih obvestil, če je v viru Chicken Coup Error Message kaj objavljeno. Če teh zmogljivosti ne želite, lahko ta razdelek preskočite.

Najprej ustvarite račun IFTTT, če ga še nimate. Če želite uporabiti že izdelane programčke, ki sem jih ustvaril, se pomaknite do mojega računa in vklopite želene programčke. V nasprotnem primeru boste morali ustvariti svojega in se naročiti ali objaviti na viru adafruit, ki ste ga ustvarili zgoraj.

6. korak: Nalaganje kode in urejanje SSID in gesla WiFi

Če želite naložiti kodo na notranji oddajnik, morate iti skozi to stran vadnice Adafruit.

Če želite naložiti kodo na zunanji sprejemnik, morate iti skozi to stran vadnice Adafruit.

Morali boste namestiti knjižnico RFM69, knjižnico Adafruit_RGBLCDShield, knjižnico ure NTC, imenovano simpleDSTadjust, in knjižnico z oznakami. Vadnico o tem, kako to storiti, najdete tukaj.

Odprite Arduino IDE in naložite kodo "Outdoor_Receiver.ino" na zunanji Arduino 32u4 prek kabla USB.

Nato odprite "Indoor_Transmitter.ino", odprite zavihek config.h in vnesite svoje navedbe WiFi (SSID) in geslo znotraj narekovajev. Nato pridobite uporabniško ime in ključ IO za Adafruit. IO, tako da sledite tej vadniški strani in jih vnesete na zavihek config.h.

Če ste spremenili imena virov Adafruit IO, boste morali kodo urediti na glavnem zavihku Indoor_Transmitter. Uredite naslednje:

AdafruitIO_Feed *toggleSwitch = io.feed ("Piščančji udar");

AdafruitIO_Feed *timer = io.feed ("Timer Chicken Coup Timer");

AdafruitIO_Feed *timer2 = io.feed ("Chicken Coup Timer 2");

AdafruitIO_Feed *error = io.feed ("Sporočilo o napaki piščančjega udara");

To bi moralo biti vse, kar morate storiti! Če bi radi razumeli, kako delujeta obe skici, sem komentiral kodo. Prosim, sporočite mi, če imate kakršna koli vprašanja. Vso srečo!

Priporočena: