Turinys:
- Prekės
- 1 žingsnis: funkcijos
- 2 žingsnis: PCB
- 3 žingsnis: Surinkimas
- 4 žingsnis: Programavimo apžvalga
- 5 žingsnis: įvestys
- 6 žingsnis: išėjimai
- 7 žingsnis: registravimas
- 8 žingsnis: garsinis signalas
- 9 veiksmas: išorinės daiktų interneto integracijos
- 10 žingsnis: naudojimas
- 11 žingsnis: ateities planai
Video: „ESP32 Smart Home Hub“: 11 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Sukurti sistemą, galinčią tvarkyti didelius jutiklių duomenų kiekius, turėti kelis išėjimus ir prisijungti prie interneto ar vietinio tinklo, reikia daug laiko ir daug pastangų. Labai dažnai žmonės, norintys sukurti savo išmaniųjų namų tinklus, stengiasi rasti ir surinkti pasirinktinius komponentus į didesnę sistemą. Štai kodėl norėjau sukurti modulinę ir daug funkcijų turinčią platformą, kuri leistų lengvai sukurti su internetu prijungtus jutiklius ir išvestis.
Dėkojame DFRobot ir PCBGOGO.com už šio projekto rėmimą!
Norėdami gauti išsamesnės informacijos, apsilankykite „Github“repo:
Prekės
-
„DFRobot ESP32 FireBeetle“
www.dfrobot.com/product-1590.html
-
DHT22 jutiklis
www.dfrobot.com/product-1102.html
-
APDS9960 šviesos ir gestų jutiklis
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD modulis
www.dfrobot.com/product-590.html
-
Analoginė RGB LED juostelė
www.dfrobot.com/product-1829.html
- DRV8825 žingsninių variklių tvarkyklės
- SD kortelių skaitytuvas
- NEMA17 žingsniniai varikliai
1 žingsnis: funkcijos
Pagrindinis šios plokštės bruožas yra ESP32 „FireBeetle“kūrimo plokštė, kuri tvarko visus ryšius, jutiklių rodmenis ir išėjimus. Yra du žingsninių variklių valdikliai, valdantys du bipolinius žingsninius variklius.
I2C magistralė taip pat skirta naudoti su tokiais komponentais kaip APDS9960 arba LCD. Temperatūrai skaityti yra sulaužyti kaiščiai, skirti prijungti prie DHT22 jutiklio, taip pat yra fotorezistorius, skirtas aplinkos šviesos lygiams nuskaityti.
Lentoje palaikoma analoginė šviesos juosta, kurioje yra trys MOSFET, kad būtų galima valdyti šviesos diodus.
2 žingsnis: PCB
Aš pradėjau PCB projektavimo procesą, pirmiausia sukūręs schemą „Eagle“. Kadangi man nepavyko rasti ESP32 „FireBeetle“bibliotekos, aš tiesiog naudoju dvi kaiščių 1x18 kontaktų antraštes. Tada aš sukūriau energijos valdymo grandinę, kuri galėtų priimti 12 voltų per nuolatinės srovės statinės lizdą ir konvertuoti į 5 voltų jutiklius ir ESP32.
Baigęs schemą, pradėjau kurti pačią PCB.
Aš žinojau, kad nuolatinės srovės cilindro kištukas turi būti šalia plokštės priekio, o 100uF maitinimo šaltinio išlyginamieji kondensatoriai turi būti arti žingsninio variklio vairuotojo maitinimo šaltinių. Kai viskas buvo išdėstyta, aš pradėjau maršrutus pėdsakais.
Nors „Oshpark“gamina aukštos kokybės PCB, jų kainos yra gana aukštos. Laimei, PCBGOGO.com taip pat gamina puikias PCB už prieinamą kainą. Aš galėjau nusipirkti dešimt PCB tik už 5 USD, o ne sumokėti 52 USD už tik tris plokštes iš „Oshpark.com“.
3 žingsnis: Surinkimas
Apskritai plokštės surinkimas buvo gana lengvas. Pradėjau lituoti ant paviršiaus sumontuotus komponentus, o tada pritvirtinau statinės lizdo jungtį ir reguliatorių. Tada aš lituodavau kaiščių antraštes tokiems komponentams kaip variklio tvarkyklės ir „FireBeetle“.
Kai litavimas buvo baigtas, aš išbandžiau plokštę dėl trumpojo jungimo, įjungdamas multimetrą į pasipriešinimo matavimo režimą ir pažiūrėjęs, ar pasipriešinimas viršijo tam tikrą sumą. Lenta praėjo, todėl galėjau prijungti kiekvieną komponentą.
4 žingsnis: Programavimo apžvalga
Norėjau, kad šios plokštės kodas būtų modulinis ir lengvai naudojamas. Tai reiškė, kad turi keletą klasių, kurios atlieka tam tikras funkcijas, ir didesnę įvyniojimo klasę, apimančią mažesnes.
5 žingsnis: įvestys
Norėdami tvarkyti įvestis, sukūriau klasę pavadinimu „Hub_Inputs“, kuri leidžia namų centrui bendrauti su APDS9960, taip pat sukurti ir valdyti mygtukus bei talpines jutiklines sąsajas. Jame yra šios funkcijos:
Sukurti mygtuką
Gaukite, jei paspaudžiamas mygtukas
Gaukite mygtukų paspaudimų skaičių
Gaukite naujausią gestą
Gaukite talpinę prisilietimo vertę
Mygtukai saugomi kaip struktūra, turintys tris atributus: is_pressed, numberPresses ir pin. Kiekvienas mygtukas, kai jis sukurtas, yra prijungtas prie pertraukos. Kai šis pertraukimas suaktyvinamas, pertraukimo paslaugų tvarka (ISR) perduodama to mygtuko žymekliui (nurodomas kaip jo atminties adresas mygtukų masyve) ir padidina mygtukų paspaudimų skaičių kartu atnaujinant is_pressed Boolean reikšmę.
Talpinės prisilietimo vertės yra daug paprastesnės. Jie gaunami perduodant jutiklinį kaištį į funkciją „touchRead ()“.
Naujausias gestas atnaujinamas apklausiant APDS9960 ir patikrinus, ar nebuvo aptikta naujų gestų, o jei buvo aptiktas, nustatykite privataus gesto kintamąjį į tą gestą.
6 žingsnis: išėjimai
Išmaniųjų namų centre yra keletas būdų, kaip išvesti informaciją ir pakeisti šviesas. Yra kaiščių, kurie išlaužia I2C magistralę ir leidžia vartotojams prijungti LCD ekraną. Taigi kol kas palaikomas tik vieno dydžio LCD: 20 x 4. Naudodami funkciją „hub.display_message ()“, vartotojai gali rodyti pranešimus LCD ekrane, perduodami eilutės objektą.
Taip pat yra kaiščio antraštė, skirta prijungti analoginių šviesos diodų eilutę. Paskambinus funkcijai „hub.set_led_strip (r, g, b)“, nustatoma juostelės spalva.
Du žingsniniai varikliai varomi naudojant porą DRV8825 tvarkyklių plokščių. Variklio valdymui nusprendžiau naudoti „BasicStepper“biblioteką. Įkėlus plokštę, sukuriami du žingsniniai objektai ir abu varikliai įjungiami. Kiekvienam varikliui paleisti naudojama funkcija „hub.step_motor (motor_id, steps)“, kur variklio ID yra 0 arba 1.
7 žingsnis: registravimas
Kadangi plokštėje yra keli jutikliai, norėjau galimybės vietoje rinkti ir registruoti duomenis.
Norėdami pradėti registravimą, sukuriamas naujas failas su „hub.create_log (failo pavadinimas, antraštė)“, kuriame antraštė naudojama CSV failo eilutei, žyminčiai stulpelius, sudaryti. Pirmasis stulpelis visada yra laiko žyma metų mėnesio dienos valandos: min: sek formatu. Norėdami gauti laiko, funkcija hub.log_to_file () gauna laiką naudodami pagrindines funkcijas.get_time (). Tada tm laiko struktūra perduodama nuoroda į registravimo funkciją kartu su duomenimis ir failo pavadinimu.
8 žingsnis: garsinis signalas
Kam naudinga daiktų interneto lenta, jei negalite leisti muzikos? Štai kodėl aš įtraukiau garsinį signalą su funkcija atkurti garsus. Skambinant „hub.play_sounds (melodija, trukmė, ilgis)“pradedama leisti daina, o melodija yra natų dažnių masyvas, trukmė - natų trukmės masyvas, o ilgis - natų skaičius.
9 veiksmas: išorinės daiktų interneto integracijos
Centras šiuo metu palaiko IFTTT žiniatinklio kabliukus. Juos galima suaktyvinti paskambinus „Hub_IoT.publish_webhook“(URL, duomenys, įvykis, raktas) arba „Hub_IoT.publish_webhook“(URL, duomenys). Tai siunčia POST užklausą nurodytu URL su tais duomenimis ir prireikus įvykio pavadinimu. Norėdami nustatyti IFTTT integravimo pavyzdį, pirmiausia sukurkite naują programėlę. Tada pasirinkite žiniatinklio užkabos paslaugą, kuri suveikia gavus užklausą.
Tada paskambinkite įvykiui „high_temp“ir išsaugokite jį. Tada dalyje „Tai“pasirinkite „Gmail“paslaugą ir pasirinkite parinktį „Siųsti el. Laišką sau“. Paslaugos sąrankoje įrašykite „Temperatūra aukšta! temai, tada įdėjau „Išmatuota temperatūra {{Value1}} {{OccurredAt}}“, kuri rodo išmatuotą temperatūrą ir įvykio suveikimo laiką.
Nustatę, tiesiog įklijuokite IFTTT sukurtą žiniatinklio užkabos URL ir įvykių skiltyje įrašykite „high_temp“.
10 žingsnis: naudojimas
Jei norite naudoti „Smart Home Hub“, tiesiog paskambinkite į visas reikiamas funkcijas, esančias sąrankoje () arba cikle (). Aš jau pateikiau funkcijų iškvietimų pavyzdžius, pvz., Dabartinio laiko spausdinimą ir IFTTT įvykio iškvietimą.
11 žingsnis: ateities planai
„Smart Home Hub“sistema labai gerai tinka paprastoms namų automatizavimo ir duomenų rinkimo užduotims. Jis gali būti naudojamas beveik viskam, pavyzdžiui, nustatyti LED juostos spalvą, stebėti kambario temperatūrą, patikrinti, ar įjungta lemputė, ir daugybę kitų galimų projektų. Ateityje norėčiau dar labiau išplėsti funkcionalumą. Tai gali apimti tvirtesnės žiniatinklio serverio pridėjimą, vietinį failų prieglobą ir net „Bluetooth“arba „mqtt“.
Rekomenduojamas:
„Alexa Smart Home“sistema naudojant „NodeMCU“relės modulį: 10 žingsnių
„Alexa Smart Home“sistema, naudojant „NodeMCU“relės modulį: Šiame „IoT“projekte aš sukūriau „Alexa Smart Home Automation“sistemą, naudodamas „NodeMCU ESP8266 & Relės modulis. Naudodami balso komandą galite lengvai valdyti šviesą, ventiliatorių ir kitus buitinius prietaisus. Norėdami prijungti išmanųjį garsiakalbį „Echo Dot“su
Žingsnių skaitiklis - mikro: bitas: 12 žingsnių (su paveikslėliais)
Žingsnių skaitiklis - „Micro: Bit“: šis projektas bus žingsnių skaitiklis. Savo žingsniams matuoti naudosime „Micro: Bit“įmontuotą akselerometro jutiklį. Kiekvieną kartą purtant „Micro: Bit“, prie skaičiaus pridėsime 2 ir parodysime jį ekrane
IOT123 - ASIMILIATORIUS JUTIKLIO HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 žingsnių
IOT123 - ASIMILIATORIUS JUTIKLIO HUB: ICOS10 CUSTOMIZATION WEBSEREVER: ASSIMILATE SENSOR/ACTOR Vergai įterpia metaduomenis, kurie naudojami apibrėžiant vizualizacijas Crouton. Ši sąranka prideda žiniatinklio serverį prie ESP8266 pagrindinio kompiuterio, aptarnauja kai kuriuos konfigūracijos failus, kuriuos gali keisti vartotojas, ir tada naudoja tuos failus iš naujo apibrėžti
„IoT-HUB-Live“integracija (ESP 8266, „Arduino“): 11 žingsnių
„IoT-HUB-Live“integracija (ESP 8266, „Arduino“): jei turite „IoT“įrenginių ir jums reikia debesies paslaugos, kad išsaugotumėte matavimus
„Honeywell Vista“aliarmo sąsaja su „Smart Hub“(„Wink“/„Smartthings“): 7 žingsniai (su nuotraukomis)
„Honeywell Vista“aliarmo sąsaja su „Smart Hub“(„Wink“/„Smartthings“): Sveiki! Norėjau pateikti trumpą pamoką, kaip integruoti „Honeywell Vista“signalizacijos sistemą į savo išmanųjį centrą. Šiai pamokai naudoju „Wink“, tačiau tai turėtų veikti su bet kokiu išmaniuoju centru („Smartthings“/„Iris“ir tt). Prieš pradėdami, eikite