Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Ne kartą atsitiktinai užrakintas iš savo namų, nusprendžiau, kad turi būti geresnis būdas patekti į mano namus, nesusijęs su laužymu ir įėjimu (ir neslėpiant rakto kažkur lauke).
Pažvelgęs į mano garažo vartų sąranką pastebėjau, kad variklis garažo vartams atidaryti gali būti įjungtas tiesiog trumpai sujungus du kontaktus. Pamačiusi tai supratau, kad labai paprastas sprendimas būtų prijungti esp8266 prie relės, kurią galėčiau paleisti (atidaryti arba uždaryti duris) prisijungdamas prie esp8266 valdiklio, naudodamas savo mobilųjį telefoną.
1 veiksmas: medžiagos, įrankiai ir programinė įranga
Medžiagos
- NodeMCU
- 1 kanalo 5 V relės modulis
- USB lizdas/įkrovimo įrenginys
- Varžtai (M2*8)
- min USB kabelis
Įrankiai
- Lituoklis
- Lituoklis
- Termiškai susitraukiantis vamzdis
- Vielos nuėmikliai
- Jungiamasis laidas
- 3D spausdintuvas
- Žvaigždžių atsuktuvas
- Replės
Programinė įranga
- „Arduino IDE“
- Fritzing
- FreeCAD
2 žingsnis: kodavimas
Prie „Arduino IDE“buvo pridėta ši biblioteka: https://github.com/Links2004/arduinoWebSockets.git. Taip pat, jei dar nepridėjote bibliotekos esp8266, tai reikia padaryti taip:
- Eikite į Failas> Nuostatos. Lauke „Papildomų lentų tvarkyklės URL“įveskite (arba nukopijuokite ir įklijuokite) https://arduino.esp8266.com/stable/package_esp8266… ir spustelėkite gerai.
- Tada eikite į Įrankiai> Lenta> Valdybos valdytojas. Paieškos laukelyje įveskite „esp8266“. Turėtų būti rodomas įrašas „ESP8266 Community“esp8266. Spustelėkite tą įrašą ir apatiniame dešiniajame kampe ieškokite diegimo mygtuko.
Čia nereikia pridėti daug daugiau, išskyrus naudojamą kodą (pridedamas „GarageDoorHack-Final“), paimtas iš https://gist.github.com/bbx10/667e3d4f5f2c0831d00b ir šiek tiek pakeistas, kad atitiktų tai, ką turėjau padaryti, ty trumpam suaktyvinti relė, kai buvo spustelėtas mygtukas.
Remdamiesi kodu, būtinai atnaujinkite šias eilutes, kad atspindėtų belaidį SSID ir PASSWORD:
- static const char ssid = "SSID";
- static const char password = "PASSWORD";
naudodami serijinį monitorių (įkėlę kodą) galėsite pamatyti, koks IP yra priskirtas „NodeMCU“.
Paskutinis dalykas, į kurį verta atkreipti dėmesį, yra tai, kad mano „NodeMCU“plokštės smeigtukai buvo priskirti skirtingai nuo to, kas paminėta internete, ty mano GPIO05 buvo 5 kaištis, kur kaip internetinė nuoroda, kurią naudoju, sakoma, kad tai yra 1 (o gal mano GPIO) kaiščiai, surinkti kita tvarka). Bet kokiu atveju turėjau naudoti bandymus ir klaidas, kad galėčiau nustatyti, kuris kaištis iš tikrųjų yra GPIO5.
3 žingsnis: sudėkite viską kartu
Toliau sekė žingsniai:
- Aš nukirpau visus „NodeMCU“kaiščius, kurių nenaudojau (taip, aš galėjau juos neišlituoti, bet man buvo lengviau).
- Lituokite jungiamuosius laidus ant atitinkamų kaiščių (kaip parodyta aukščiau esančiose diagramose ir nuotraukose), jungtims izoliuoti naudokite termiškai susitraukiančius vamzdžius.
- 3D spausdintas dėklas (pridedami STL failai; FCSTD failas yra „FreeCAD“failas).
- Prisukite „NodeMCU“plokštę žemyn. Varžtai, kuriuos turėjau, buvo per ilgi, todėl naudoju reples, kad juos sutrumpinčiau.
- Stumkite relės viršų į kvadratinį laikiklį dangtelyje, kuris tvirtai laikė ją. Orientacija buvo tokia, kad relės kontaktai buvo nukreipti į laido išėjimo angą dangtelyje.
- Uždėjo dangtelį ir užsuko.
- Prijungė relės laidus prie garažo vartų variklio gnybtų.
- Prijunkite projektą prie USB maitinimo šaltinio.
- Laukė, kol „NodeMCU“patvirtins belaidį ryšį.
- Naršiau IP adresą iš savo telefono.
- Patikrinta paspaudus mygtuką.
Sraigtiniai varžtai, kuriuos gerai dirbau, bet savisriegiai, būtų buvę lengviau dirbti.
4 žingsnis: paskutiniai komentarai
Šie nurodymai nepatenka į šios instrukcijos taikymo sritį, tačiau juos verta aptarti:
IP adresas
Pagal numatytuosius nustatymus jūsų maršrutizatorius išduos atsitiktinius IP adresus, o tai reiškia, kad jūsų įrenginio IP adresas ne visada gali būti tas pats, o tai labai apsunkintų jūsų telefono paiešką ir prieigą. Todėl svarbu jam priskirti fiksuotą IP. Yra du pagrindiniai būdai tai padaryti, kiekvienas turi savo privalumų ir trūkumų. Mano pasirinkimas yra leisti maršrutizatoriaus DHCP serveriui tai padaryti. Bendrieji veiksmai, kurių reikia laikytis naudojant šį metodą:
- Prisijunkite prie maršrutizatoriaus kaip administratorius.
- Pažvelkite į DHCP žurnalus ir įrašykite MAC adresą, susietą su IP adresu, kuris buvo išduotas jūsų „NodeMCU“.
- Raskite meniu parinktį, leidžiančią nustatyti IP rezervavimą. Čia galėsite nurodyti MAC adresą ir IP, kurį norite, kad šis MAC adresas visada gautų.
Paprastai darau tai, kas pirmiau, vykdant savo projektus.
Kaip sukurti nuorodą telefone
- Įsitikinkite, kad esate prisijungę prie to paties belaidžio tinklo kaip ir jūsų įrenginys.
- Kai IP adresas jau nustatytas, turėtumėte turėti galimybę jį rasti savo telefone.
- Išsaugokite IP kaip žymę.
- Išsaugokite žymę savo telefono pagrindiniame puslapyje.
Saugumas
Kiekvienas, prisijungęs prie jūsų belaidžio tinklo, galės naršyti prie šio IP ir suaktyvinti relę. Norėdami tai padaryti, jie turės žinoti jūsų belaidžio SSID ir slaptažodį. Paprastam vartotojui to tikriausiai pakanka. Jei norite aukštesnio saugumo lygio, galite įdiegti tam tikrą MAC filtravimą savo maršrutizatoriuje arba atskirame serveryje arba galite išbandyti dviejų veiksnių autentifikavimo metodą. Tai reiškia, kad jei kas nors žino, kaip nulaužti jūsų tinklą, tikriausiai žino, kaip nulaužti visus aukščiau išvardintus sprendimus. Be to, jei jie tikrai nori patekti, jie greičiausiai tiesiog įsibraus.
Trumpai tariant, jei gyvenate mažos rizikos aplinkoje, tikriausiai neturite ko bijoti. Kita vertus, jei gyvenate didelės rizikos aplinkoje, tikriausiai turite susirūpinti svarbesniais dalykais ir įsilaužti į garažo duris.
Visa tai pasakius, šis projektas yra daugiau koncepcijos įrodymo projektas, o ne skirtas visapusiškam gamybos įgyvendinimui. Kiekvienas, įgyvendinantis šį projektą, tai daro savo rizika.
Baigiamieji komentarai
Kartais atrodo, kad ryšys su „NodeMCU“nutrūksta. Kai tai atsitiks, jums tiesiog reikia atnaujinti tinklalapį ir jis turėtų sėkmingai prisijungti.
Ir galiausiai, užuot prijungęs valdiklį tiesiai prie durų variklio, galėjau jį prijungti lygiagrečiai su rankiniu jungikliu garaže. Nors tai būtų leidusi paslėpti grandinę sienoje, aš turėčiau sukurti kitą planą, susijusį su įrenginio maitinimu. Energijos problemą būtų buvę gana lengva išspręsti, tačiau kol kas nemanau, kad pastangos būtų vertos.
Apskritai tai yra paprastas ir pigus projektas, kurį man patiko užbaigti.
Naujausi įvykiai
Apsilankykite https://www.instructables.com/id/Simple-Garage-Doo… ir pamatysite antrąją „Simple Garage Door Hack“versiją.