Përmbajtje:
- Furnizimet
- Hapi 1: Karakteristikat
- Hapi 2: PCB
- Hapi 3: Montimi
- Hapi 4: Vështrim i përgjithshëm i programimit
- Hapi 5: Inputet
- Hapi 6: Rezultatet
- Hapi 7: Regjistrimi
- Hapi 8: Zile
- Hapi 9: Integrimet e jashtme IoT
- Hapi 10: Përdorimi
- Hapi 11: Planet e së ardhmes
Video: ESP32 Smart Home Hub: 11 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Krijimi i një sistemi që mund të trajtojë sasi të mëdha të të dhënave të sensorit, të ketë dalje të shumta dhe të lidhet me internetin ose një rrjet lokal kërkon një kohë të gjatë dhe përpjekje të mëdha. Shumë shpesh, njerëzit që duan të bëjnë rrjetet e tyre të zgjuara të shtëpisë luftojnë me aftësinë për të gjetur dhe mbledhur përbërës të personalizuar në një sistem më të madh. Kjo është arsyeja pse unë doja të krijoja një platformë modulare dhe të pasur me karakteristika që do ta bënte të lehtë ndërtimin e sensorëve dhe daljeve të lidhura me IoT.
Faleminderit DFRobot dhe PCBGOGO.com për sponsorizimin e këtij projekti!
Për informacion më të thelluar, vizitoni repon e Github:
Furnizimet
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Sensori DHT22
www.dfrobot.com/product-1102.html
-
APDS9960 Sensori i dritës dhe gjesteve
www.dfrobot.com/product-1361.html
-
Moduli LCD I2C 20x4
www.dfrobot.com/product-590.html
-
Rrip LED RGB analog
www.dfrobot.com/product-1829.html
- Drejtuesit e motorit Stepper DRV8825
- Lexues i kartave SD
- NEMA17 Stepper Motors
Hapi 1: Karakteristikat
Karakteristika kryesore e këtij bordi është një Bord Zhvillimi ESP32 FireBeetle që trajton të gjithë komunikimin, leximet e sensorëve dhe daljet. Ekzistojnë dy drejtues të motorëve stepper që kontrollojnë dy motorë stepper bipolarë.
Autobusi I2C është gjithashtu i prishur për përdorim me përbërës të tillë si APDS9960 ose një LCD. Për të lexuar temperaturën, ka kunja të thyer për t'u lidhur me një sensor DHT22, si dhe një rezistencë fotografike për leximin e niveleve të dritës së ambientit.
Ekziston mbështetje për një shirit analog të dritës në tabelë, e cila ka tre MOSFET në të për të drejtuar dritat LED.
Hapi 2: PCB
Fillova procesin e projektimit të PCB duke krijuar së pari një skemë në Eagle. Meqenëse nuk isha në gjendje të gjeja një bibliotekë ESP32 FireBeetle, thjesht përdorja dy tituj pin 1x18 pin në vend të tyre. Pastaj, krijova një qark të menaxhimit të energjisë që mund të pranonte 12v përmes një prizë fuçi DC dhe ta konvertonte atë në 5v për të ndezur sensorët dhe ESP32.
Pas përfundimit të skemës, kalova në hartimin e vetë PCB -së.
E dija që priza e fuçisë DC do të duhej të ishte pranë pjesës së përparme të tabelës, dhe kondensatorët zbutës të furnizimit me energji 100uF duhej të ishin afër hyrjeve të fuqisë së drejtuesit të motorit stepper. Pasi gjithçka u shtrua, fillova të drejtoja gjurmët.
Ndërsa Oshpark bën PCB me cilësi të shkëlqyeshme, çmimet e tyre janë mjaft të larta. Fatmirësisht, PCBGOGO.com gjithashtu bën PCB të shkëlqyeshëm me një çmim të përballueshëm. Isha në gjendje të blija dhjetë PCB për vetëm 5 dollarë, në vend që të paguaja 52 dollarë për vetëm tre dërrasa nga Oshpark.com.
Hapi 3: Montimi
Në përgjithësi, montimi i bordit ishte mjaft i lehtë. Fillova duke bashkuar përbërësit e montuar në sipërfaqe, dhe pastaj duke bashkuar lidhësin dhe rregullatorin e folesë. Tjetra, unë bashkova në titujt e pin për përbërës të tillë si drejtuesit e motorit dhe FireBeetle.
Pasi të kishte përfunduar saldimi, e testova bordin për qark të shkurtër duke vënë një multimetër në modalitetin e matjes së rezistencës dhe duke parë nëse rezistenca ishte mbi një sasi të caktuar. Bordi kaloi, kështu që unë atëherë isha në gjendje të lidhesha me secilin komponent.
Hapi 4: Vështrim i përgjithshëm i programimit
Doja që kodi për këtë tabelë të ishte modular dhe i lehtë për t’u përdorur. Kjo nënkuptonte të kishit disa klasa që trajtojnë funksione të veçanta, së bashku me një klasë më të madhe mbështjellëse që kombinon ato më të vogla.
Hapi 5: Inputet
Për trajtimin e hyrjeve, unë krijova një klasë të quajtur "Hub_Inputs", e cila lejon që shpërndarësi i shtëpisë të komunikojë me APDS9960, së bashku me krijimin dhe menaxhimin e butonave dhe ndërfaqeve kapacitore të prekjes. Ai përmban funksionet e mëposhtme:
Butoni Krijo
Merr nëse shtypet butoni
Merrni numrin e shtypjeve të butonave
Merr gjestin e fundit
Merrni vlerën kapacitore të prekjes
Butonat ruhen si strukturë, me tre atribute: is_pressed, numberPresses dhe pin. Çdo buton, kur krijohet, i bashkëngjitet një ndërprerjeje. Kur kjo ndërprerje ndizet, Rutina e Shërbimit të Ndërprerjes (ISR) i kalohet treguesit të atij butoni (i dhënë si adresa e kujtesës së tij në grupin e butonave) dhe rrit numrin e shtypjeve të butonave, së bashku me azhurnimin e vlerës isole.
Vlerat kapëse të prekjes janë shumë më të thjeshta. Ato merren duke kaluar pinin e prekjes në funksionin touchRead ().
Gjesti i fundit përditësohet duke anketuar APDS9960 dhe duke kontrolluar nëse është zbuluar ndonjë gjest i ri, dhe nëse është zbuluar, vendosni ndryshoren e gjestit privat në atë gjest.
Hapi 6: Rezultatet
Qendra e shtëpisë së zgjuar përmban disa mënyra për të nxjerrë informacion dhe për të ndryshuar dritat. Ka kunja që shpërthejnë autobusin I2C, duke i lejuar përdoruesit të lidhin një LCD. Deri më tani, vetëm një madhësi LCD mbështetet: 20 x 4. Duke përdorur funksionin "hub.display_message ()", përdoruesit mund të shfaqin mesazhe në LCD duke kaluar në një objekt vargu.
Ekziston edhe një kokë pin për të lidhur një varg LED LED analog. Thirrja e funksionit "hub.set_led_strip (r, g, b)", vendos ngjyrën e shiritit.
Dy motorët stepper drejtohen duke përdorur një palë dërrasa shoferi DRV8825. Vendosa të përdor bibliotekën BasicStepper për të trajtuar kontrollin motorik. Kur bordi ngrihet, krijohen dy objekte stepper dhe të dy motorët bëhen të aktivizuar. Për të rritur secilin motor, përdoret funksioni "hub.step_motor (motor_id, steps)", ku ID e motorit është ose 0 ose 1.
Hapi 7: Regjistrimi
Për shkak se bordi ka disa sensorë, doja mundësinë për të mbledhur dhe regjistruar të dhënat në nivel lokal.
Për të filluar regjistrimin, krijohet një skedar i ri me "hub.create_log (emri i skedarit, titulli)", ku titulli përdoret për të bërë një rresht skedar CSV që tregon kolona. Kolona e parë është gjithmonë një vulë kohore në orën e ditës së muajit të vitit: Min: Formati i sek. Për të marrë kohën, funksioni hub.log_to_file () merr kohën me funksionin themelor_functions.get_time (). Struktura e kohës tm kalohet më pas me referencë në funksionin e regjistrimit, së bashku me të dhënat dhe emrin e skedarit.
Hapi 8: Zile
Çfarë përfitimi ka një bord IoT nëse nuk mund të luani muzikë? Kjo është arsyeja pse unë përfshiva një zile me një funksion për të luajtur tinguj. Thirrja "tinguj hub.play (melodi, kohëzgjatja, gjatësia)" fillon të luajë një këngë, me melodinë që është një grup frekuencash notash, kohëzgjatja si një grup kohëzgjatjesh të notave dhe gjatësia si numri i notave.
Hapi 9: Integrimet e jashtme IoT
Qendra aktualisht mbështet lidhëset e uebit IFTTT. Ato mund të nxiten duke thirrur funksionin Hub_IoT.publish_webhook (url, të dhëna, ngjarje, çelës) ose Hub_IoT.publish_webhook (url, të dhëna). Kjo dërgon një kërkesë POST në URL -në e dhënë me ato të dhëna të bashkangjitura, së bashku me një emër ngjarjeje nëse është e nevojshme. Për të krijuar një shembull integrimi IFTTT, së pari krijoni një aplet të ri. Pastaj zgjidhni shërbimin webhook që aktivizohet kur të merret një kërkesë.
Tjetra, quani ngjarjen "tempull i lartë" dhe ruajeni. Pastaj, zgjidhni shërbimin Gmail për pjesën "That" dhe zgjidhni opsionin "Dërgoni një email tek vetja". Brenda konfigurimit për shërbimin, vendosni "Temperatura është e lartë!" për lëndën, dhe më pas vendosa "Temperatura e matur e {{Vlera 1}} në {{OccurredAt}}", e cila tregon temperaturën e matur dhe kohën kur ngjarja u ndez.
Pasi ta vendosni, thjesht ngjitni URL -në e webhook që gjenerohet nga IFTTT dhe vendosni "high_temp" në seksionin e ngjarjeve.
Hapi 10: Përdorimi
Për të përdorur Smart Home Hub, thjesht telefononi çdo funksion të nevojshëm në konfigurim () ose loop (). Unë kam vënë tashmë shembullin e thirrjeve të funksioneve, të tilla si printimi i kohës aktuale dhe thirrja e një ngjarjeje IFTTT.
Hapi 11: Planet e së ardhmes
Sistemi Smart Home Hub funksionon shumë mirë për automatizimin e thjeshtë të shtëpisë dhe detyrat e mbledhjes së të dhënave. Mund të përdoret për pothuajse çdo gjë, të tilla si vendosja e ngjyrës së një shiriti LED, monitorimi i temperaturës së një dhome, kontrollimi nëse ndizet një dritë dhe një mori e tërë projektesh të tjera të mundshme. Në të ardhmen, do të doja të zgjeroja funksionalitetin edhe më shumë. Kjo mund të përfshijë shtimin e një serveri më të fuqishëm në internet, pritjen e skedarëve lokalë dhe madje edhe Bluetooth ose mqtt.
Recommended:
Fillimi me ESP32 - Instalimi i bordeve ESP32 në Arduino IDE - ESP32 Blink Code: 3 hapa
Fillimi me ESP32 | Instalimi i bordeve ESP32 në Arduino IDE | ESP32 Blink Code: Në këtë udhëzues do të shohim se si të fillojmë të punojmë me esp32 dhe si të instalojmë bordet esp32 në Arduino IDE dhe do të programojmë esp 32 që të ekzekutojë kodin e blinkimit duke përdorur arduino ide
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 Hapa
Firmware Sonoff B1 Home Automation Openhab Google Home: Më pëlqen vërtet firmware -i Tasmota për çelsat e mi Sonoff. Por a nuk ishte vërtet i kënaqur me firmware-in Tasmota në Sonoff-B1 tim. Unë nuk kam arritur plotësisht ta integroj atë në Openhab tim dhe ta kontrolloj atë përmes Google Home. Prandaj shkrova firmën time
Ndërfaqja e alarmit Honeywell Vista Me Smart Hub (Wink/Smartthings): 7 hapa (me fotografi)
Ndërfaqja e alarmit Honeywell Vista Me Smart Hub (Wink/Smartthings): Përshëndetje! Doja të jepja një mësim të shkurtër se si e integrova sistemin tim të alarmit Honeywell Vista në qendrën time të zgjuar. Unë jam duke përdorur Wink për këtë tutorial, por kjo duhet të funksionojë me çdo shpërndarës inteligjent (Smartthings/Iris/etj.) Para se të fillojmë, ju shkoni
DIY Google Home me altoparlant Bluetooth në Raspberry Pi Zero Docking Hub: 7 hapa (me fotografi)
DIY Google Home Me Altoparlantin Bluetooth në Raspberry Pi Zero Docking Hub: Ne kemi një udhëzues në DIY Amazon Echo Alexa - Alexa Voice Assistant në Raspberry Pi Zero Docking Hub. Këtë herë ne duam t'ju tregojmë se si të ndërtoni një DIY Google Home. Në këtë udhëzues, ne do t'ju tregojmë se si të instaloni dhe konfiguroni Google Assistant
Kontrolluesi NES / USB 4 HUB HUB: 7 hapa
NES Controller / 4 Port USB HUB: pasi pashë modat me një kontrollues klasik NES, unë kisha 2 të bëja diçka që dikush nuk e kishte bërë kurrë me të, kështu që bëra një shpërndarës USB 4 port 4 kompjuterin tim të lirë dhe të lehtë për tu bërë. kjo prerje mund të zgjasë pak nëse keni një lëkurë nuk duhet të zgjasë shumë