Turinys:

„IoT“lauko naminių gyvūnėlių durys: 6 žingsniai (su nuotraukomis)
„IoT“lauko naminių gyvūnėlių durys: 6 žingsniai (su nuotraukomis)

Video: „IoT“lauko naminių gyvūnėlių durys: 6 žingsniai (su nuotraukomis)

Video: „IoT“lauko naminių gyvūnėlių durys: 6 žingsniai (su nuotraukomis)
Video: Бетонирование лестницы, исправляем прошлые косяки при застройке сентябрь 2017 2024, Lapkritis
Anonim
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys
„IoT“lauko naminių gyvūnėlių durys

Mane įkvėpė šis nurodymas sukurti automatines vištienos durų duris. Aš ne tik norėjau, kad vištidės durys būtų ant laikmačio, bet ir norėjau prijungti duris prie interneto, kad galėčiau jas valdyti telefonu ar kompiuteriu. Šios durys buvo pastatytos mano vištidėms, tačiau jas galima lengvai pritaikyti kitų tipų namams įvairiems naminiams gyvūnėliams. Be seno automobilio antenos variklio, kurį naudojau, taip pat galite naudoti įvairių tipų 12 V variklius.

Įdiegus ir prijungus „Adafruit IO“ir „IFTTT“prie ESP8266, mano vištidės durys gali būti valdomos internetu. Duris galima atidaryti arba uždaryti:

1) Tiksliu laiku, kai įvedu adafruit.io

2) Paspaudus telefono mygtuką

3) Siųsdami tekstinį pranešimą tam tikru numeriu

4) Spustelėję mygtuką adafruit.io

5) Paspaudus fizinį mygtuką

Be šių funkcijų, vištienos durų durys gali siųsti tiesioginius pranešimus į mano telefoną per IFTTT programą apie bet kokias su durimis susijusias problemas, pvz., Duris, kurios neatsidaro ar neužsidaro.

Kadangi mano vištidė yra maždaug 500 pėdų atstumu nuo mano „WiFi“maršrutizatoriaus, šiam projektui įgyvendinti panaudojau 433MHz RFM69HCW siųstuvą ir imtuvą, suporuotą su ESP8266. Yra juoda patalpų siųstuvo dėžutė su aparatūra, prijungta prie interneto, ir pilka lauko imtuvo dėžė, valdanti variklį.

Ši instrukcija padės jums sukurti aparatūrą, reikalingą valdyti 12 V variklį, kuris atidaro arba uždaro mano vištienos keptuvės duris.

Aš naudoju šias dalis:

„Adafruit 32u4“su 433 MHz RFM69HCW - 25 USD

„Adafruit MCP23017 I2C 16“įvesties/išvesties prievado plėtiklio IC - 2,95 USD

„Adafruit Feather HUZZAH“su „ESP8266 WiFi“- 16,95 USD

„Adafruit Radio FeatherWing“433MHz RFM69HCW - 10 USD

„Adafruit SMA“jungtis 1,6 mm storio PCB - 2,50 USD

„Adafruit uFL SMA“antenos jungtis - 0,75 USD

„Adafruit RGB“mygtukas - 10,95 USD

12 V maitinimo šaltinis - 7 USD

5 V USB maitinimo šaltinis - 7 USD

„Micro USB“kabelis - 5 USD

4 kanalų perdavimo lenta (gali naudoti 2 kanalus)- 7 USD

DC -DC Buck Converter (naudotas tik vienas, bet tiekiamas kaip 5 pakuotės) - 20 USD

„Reed Switch“(magnetinis durų jungiklio jutiklis) - 9 USD

2x 433MHz daugialypė antena - 6 USD

uFL į SMA kabelio adapteris (naudotas tik vienas, bet tiekiamas kaip 2 pakuotės) - 5 USD

Neperšlampama lauko ABS projekto dėžutė - 11 USD

Juoda ABS projekto dėžutė - 10 USD

20x4 mėlynas simbolių skystųjų kristalų ekranas - 10 USD

12 V automobilio antenos variklis - ~ 25 USD „ebay“

Vielos ir rezistoriai

1 žingsnis: Lauko imtuvas

Lauko imtuvas
Lauko imtuvas
Lauko imtuvas
Lauko imtuvas

Lauko imtuvą sudaro „Adafruit 32u4“su 433MHz RFM69HCW, prijungtu prie kelių relių, kurios įjungia arba išjungia 12 V variklio maitinimą. Šie moduliai ir 12V iki 5V DC-DC keitiklis yra vandeniui atsparioje pilkoje projekto dėžutėje. Galiausiai prie vieno iš 32u4 „Arduino“mikrovaldiklio kaiščių yra prijungtas durų jungiklio jutiklis, kuris nustato, ar tinkamai atidarytos ar uždarytos durys.

Kas 15 sekundžių vidinis siųstuvas siunčia „Atidaryti“arba „Uždaryti“. Remiantis gauta komanda, „Arduino 32u4“įjungs arba išjungs relę. Pasirinktam varikliui, kuris yra senas automobilio antenos variklis, turėjau įjungti arba išjungti dvi reles dėl to, kaip variklis yra prijungtas. Iš esmės buvo relė, skirta įjungti maitinimą, ir tada kita relė, kuri valdė, ar variklis išsiplėtė, ar ne.

Gavus atidarytą ar uždarytą transmisiją, lauko imtuvas atsako „sensorOpen“arba „sensorClosed“, nurodydamas durų jungiklio jutiklio būseną. Idealiu atveju komanda „atidaryti“grąžintų atsakymą „sensorOpen“, tačiau jei durys įstrigs arba variklis užstrigs, jie nesutaps. Kai jie nesutampa, vidinis siųstuvas parodys šią informaciją ir į jūsų telefoną bus išsiųstas tiesioginis pranešimas.

2 veiksmas: lauko imtuvo aparatūros prijungimas

Lauko imtuvo aparatūros prijungimas
Lauko imtuvo aparatūros prijungimas
Lauko imtuvo aparatūros prijungimas
Lauko imtuvo aparatūros prijungimas
Lauko imtuvo aparatūros prijungimas
Lauko imtuvo aparatūros prijungimas

Lauko imtuvo aparatūrą nėra labai sunku prijungti. Žemiau pateikiau šlifavimo schemą, kad mano naudojamus kaiščius būtų lengva peržiūrėti.

Kaip minėjau aukščiau, mano naudojamam varikliui reikėjo dviejų relių. Įdėjau pinouto nuotrauką. Antrą kartą prijungus 12V prie raudono laido, variklis atsitrauks, jei bus pratęstas. Jei prie raudonos ir žalios vielos vienu metu prijungsite 12V, variklis pratęs.

Nendrinis jungiklis, kurį susiejau aukščiau, turėtų būti prijungtas kaip įprastai uždarytas jungiklis. Skirtumas tarp įprastai atidarytų ir paprastai uždarytų yra paaiškintas aukščiau esančiame paveikslėlyje. Naudojant programinę įrangą, prie 32u4 įvesties kaiščio yra pritvirtintas vidinis ištraukimo rezistorius, todėl viskas, ką jums reikia padaryti, yra prijungti durų jungiklį prie įvesties kaiščio ir įžeminti.

Prie „Adafruit 32u4“turėsite prijungti anteną. Peržiūrėkite „Adafruit“tikrai gerai paaiškintą šio veiksmo pamoką. Aš pasirinkau naudoti išorinę anteną, o ne vielos gabalą, kad pasiekčiau geresnį diapazoną.

3 žingsnis: vidinis siųstuvas

Vidinis siųstuvas
Vidinis siųstuvas
Vidinis siųstuvas
Vidinis siųstuvas
Vidinis siųstuvas
Vidinis siųstuvas

Vidinį siųstuvą sudaro „Adafruit Radio FeatherWing“433MHz RFM69HCW, sukrauti ant „Adafruit Feather HUZZAH“su „ESP8266 WiFi“. Šie moduliai yra prijungti prie 20x4 simbolių ekrano ir sidabro spalvos RGB mygtuko juodos projekto dėžutės viduje.

Ekranas turi NTC sinchronizuotą laikrodį, RSSI stiprumą dB (matuoja radijo signalų stiprumą), laiką, kada atsidarys vištienos keptuvės durys, laiką, kada užsidarys vištidės durys, ir dabartinę durų būseną. Mygtukas raudonas, kai durys uždarytos, ir žalias, kai durys atidarytos.

Jei lauko imtuvas dingsta arba jei dėl kokių nors priežasčių 433 MHz signalas negali būti išsiųstas, ekranas ir RGB mygtukas pereis į pirmąjį iš dviejų galimų klaidų režimų. Pirmuoju klaidos režimu ekrane bus rodoma "KLAIDA! Pabandykite iš naujo paleisti lauko imtuvą". ir mygtukas neturės spalvos. Jei durų jungiklio jutiklis nustato, kad durys nebuvo tinkamai uždarytos ar atidarytos, ekranas ir RGB mygtukas pereis į antrąjį iš dviejų klaidų režimų. Antruoju klaidos režimu ekrane bus rodoma "KLAIDA! Durų ar jungiklių jutiklio problema". ir mygtukas neturės spalvos. Kai problema išsispręs savaime, ekranas ir RGB mygtukas grįš į normalią būseną. Galite gauti tiesioginius pranešimus į savo telefoną, jei įvyksta bet kuris iš šių klaidų režimų (šią sąranką peržiūrėsiu vėliau).

4 veiksmas: patalpų siųstuvo aparatūros prijungimas

Vidinio siųstuvo aparatūros prijungimas
Vidinio siųstuvo aparatūros prijungimas
Vidinio siųstuvo aparatūros prijungimas
Vidinio siųstuvo aparatūros prijungimas

Sujungus „Adafruit Radio FeatherWing 433MHz RFM69HCW“ant „Adafruit Feather HUZZAH“su „ESP8266 WiFi“, liko tik 2 nepriimti kaiščiai - I2C kaiščiai SDA ir SCL. Štai kodėl aš pasirinkau MCP23017 integruotą grandinę (IC). Tai tikrai šaunus IC, jungiantis iki 16 papildomų įvesties/išvesties kaiščių prie bet kurio mikrovaldiklio per I2C. Be to, yra iš anksto parašyta biblioteka „Adafruit-RGB-LCD-Shield“, kuri naudoja šį IC su simbolių ekranu, kuris yra techniškai parašytas šiam „Adafruit“produktui, tačiau puikiai tinka šiam projektui.

Idėja naudoti MCP23017 su simbolių ekranu kyla iš šios labai gerai parašytos instrukcijos. Prašome tai patikrinti!

Aš pasirinkau tai pamokomą ir vietoj to, kad prie IC prijungčiau kelis mygtukus ir RGB ekraną, prie IC prijungiau tik vieną mygtuką, kurio viduje buvo RGB šviesos diodas ir vienspalvis ekranas. Tai leido man apibrėžti IC PIN kodą 1 (paprastai naudojamą mėlynam RGB ekrano apšvietimui) kaip mano vienspalvio ekrano apšvietimą, PIN 28 (paprastai naudojamas žaliam RGB ekrano apšvietimui) kaip raudoną šviesos diodą mygtuką ir PIN 27 (paprastai naudojamas raudonam RGB ekrano apšvietimui) kaip žalias šviesos diodas mygtuko viduje. PIN 24 buvo prijungtas prie vienos mygtuko pusės, o kita - prie žemės. Viršuje esančiame paveikslėlyje galite pamatyti mygtuko kaištį (palikau atjungtą mėlyną katodą).

Be to, kad naudoju tą instrukciją, kurią susiejau, kad padėtų prijungti ekraną, aš pridėjau frizingo schemą, kuri padės jums viską sujungti.

„FeatherWing 433MHz RFM69HCW“viršuje turėsite sutrumpinti tris kaiščius, kaip paaiškinta šioje „Adafruit“pamokoje. Prie „FeatherWing 433MHz RFM69HCW“taip pat turėsite prijungti anteną. Peržiūrėkite „Adafruit“tikrai gerai paaiškintą šio veiksmo pamoką. Pasirinkiau naudoti išorinę anteną su šone sumontuota SMA jungtimi, o ne vielos gabalu, kad gautumėte geresnį diapazoną.

5 veiksmas: prisijungimas prie „Adafruit. IO“ir IFTTT

Prisijungimas prie „Adafruit. IO“ir IFTTT
Prisijungimas prie „Adafruit. IO“ir IFTTT
Prisijungimas prie „Adafruit. IO“ir IFTTT
Prisijungimas prie „Adafruit. IO“ir IFTTT

Adafruit IO:

Jei neturite paskyros, vadovaukitės šios „Adafruit“mokymo programos instrukcijomis. Taip pat turėtumėte perskaityti, kas yra kanalas ir prietaisų skydelis.

Paprasčiau tariant, prietaisų skydelis yra tarsi grafinė vartotojo sąsaja, o kanalai yra tai, į ką siunčiate duomenis, kad galėtumėte juos saugoti internete. Turėsite sukurti 1 prietaisų skydelį ir 4 sklaidos kanalus. Aš pavadinau savo, kol nežinojau, kaip teisingai rašyti vištienos košę, todėl prašau atleisti neteisingą rašybą. Jei nenorite pervardyti sklaidos kanalų pavadinimų „arduino“kode, tiesiog naudokite tą patį pavadinimą kaip ir aš.

Pirmiausia sukurkite keturis kanalus:

1) „Vištienos gaudyklė“Tai skirta jungikliui „Atidaryti/uždaryti“

2) „Vištienos gaudymo laikmatis“Tai yra atidarymo laikmatis

3) „Vištienos gaudymo laikmatis 2“Tai skirtas uždarymo laikmačiui

4) „Vištienos perversmo klaidos pranešimas“Tai skirta klaidų pranešimams

Sukurkite prietaisų skydelį, pavadintą „Vištienos perversmas“, ir pridėkite 4 blokus naudodami mėlyną mygtuką +. Žiūrėkite paveikslėlį, kuriame pateikiami blokų tipai, kuriuos turėtumėte įdėti, taip pat blokų pavadinimai. Būtinai pavadinkite jungiklio būsenas tiksliai „Atidaryta“ir „Uždaryta“

IFTTT:

Šio projekto IFTTT dalis suteikia galimybę paspausti telefono mygtuką ir nusiųsti tekstą, kad atidarytumėte arba uždarytumėte vištienos keptuvės duris. Tai taip pat leidžia IFTTT programai siųsti jums tiesioginius pranešimus, jei kas nors bus paskelbta „Chicken Coup“klaidų pranešimų sklaidos kanale. Jei nenorite šių galimybių, galite praleisti šį skyrių.

Pirmiausia sukurkite IFTTT paskyrą, jei jos dar neturite. Jei norite naudoti mano sukurtas iš anksto sukurtas programėles, tiesiog eikite į mano paskyrą ir įjunkite norimas programėles. Priešingu atveju turėsite sukurti savo ir užsiprenumeruoti arba paskelbti aukščiau sukurtą adafruit kanalą.

6 veiksmas: kodo įkėlimas ir „WiFi“SSID ir slaptažodžio redagavimas

Norėdami įkelti kodą į vidinį siųstuvą, turėsite pereiti šį „Adafruit“mokymo programos puslapį.

Norėdami įkelti kodą į lauko imtuvą, turėsite pereiti į šį „Adafruit“mokymo programos puslapį.

Jums reikės įdiegti RFM69 biblioteką, „Adafruit_RGBLCDShield“biblioteką, NTC laikrodžių biblioteką „simpleDSTadjust“ir žymeklių biblioteką. Čia galite rasti pamoką, kaip tai padaryti.

Atidarykite „Arduino IDE“ir USB kabeliu įkelkite „Outdoor_Receiver.ino“kodą į lauko „Arduino 32u4“.

Tada atidarykite „Indoor_Transmitter.ino“, atidarykite skirtuką config.h ir įveskite „WiFi“pavadinimą (SSID) ir slaptažodį kabutėse. Tada įsigykite „Adafruit. IO“vartotojo vardą ir „IO Key“vadovaudamiesi šiuo vadovo puslapiu ir įveskite jį į skirtuką config.h.

Jei pakeitėte „Adafruit IO“kanalų pavadinimus, turėsite redaguoti kodą pagrindiniame skirtuke „Indoor_Transmitter“. Redaguokite šiuos dalykus:

AdafruitIO_Feed *toggleSwitch = io.feed ("Vištienos perversmas");

„AdafruitIO_Feed“*laikmatis = io.feed („Vištienos perversmo laikmatis“);

AdafruitIO_Feed *timer2 = io.feed ("Vištienos gaudymo laikmatis 2");

AdafruitIO_Feed *klaida = io.feed ("Vištienos perversmo klaidos pranešimas");

Tai turėtų būti viskas, ką turite padaryti! Jei norite toliau suprasti, kaip veikia du eskizai, pakomentavau kodą. Jei turite klausimų, praneškite man. Sėkmės!

Rekomenduojamas: