Satura rādītājs:
- Piegādes
- 1. darbība: funkcijas
- 2. solis: PCB
- 3. solis: montāža
- 4. solis: Programmēšanas pārskats
- 5. solis: ievades
- 6. darbība. Izejas
- 7. solis: reģistrēšana
- 8. solis: skaņas signāls
- 9. darbība. IoT ārējās integrācijas
- 10. solis: lietošana
- 11. solis: nākotnes plāni
Video: ESP32 viedās mājas centrmezgls: 11 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Sistēmas izveide, kas var apstrādāt lielu daudzumu sensoru datu, tai ir vairākas izejas un savienojums ar internetu vai vietējo tīklu, prasa ilgu laiku un daudz pūļu. Pārāk bieži cilvēki, kuri vēlas izveidot savus viedos mājas tīklus, cīnās ar iespēju atrast un salikt pielāgotus komponentus lielākā sistēmā. Tāpēc es vēlējos izveidot modulāru un daudzfunkcionālu platformu, kas atvieglotu ar IoT savienotu sensoru un izeju konstruēšanu.
Paldies DFRobot un PCBGOGO.com par šī projekta sponsorēšanu!
Lai iegūtu plašāku informāciju, apmeklējiet Github repo:
Piegādes
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
DHT22 sensors
www.dfrobot.com/product-1102.html
-
APDS9960 Gaismas un žestu sensors
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD modulis
www.dfrobot.com/product-590.html
-
Analogā RGB LED sloksne
www.dfrobot.com/product-1829.html
- DRV8825 pakāpju motoru draiveri
- SD karšu lasītājs
- NEMA17 soļu motori
1. darbība: funkcijas
Šīs plates galvenā iezīme ir ESP32 FireBeetle attīstības plāksne, kas apstrādā visus sakarus, sensoru rādījumus un izejas. Ir divi soļu motoru draiveri, kas kontrolē divus bipolārus soļu motorus.
I2C kopne ir arī paredzēta lietošanai kopā ar tādām sastāvdaļām kā APDS9960 vai LCD. Temperatūras nolasīšanai ir salauztas tapas, lai izveidotu savienojumu ar DHT22 sensoru, kā arī fotorezistors apkārtējās gaismas līmeņu nolasīšanai.
Uz tāfeles ir atbalsts analogai gaismas joslai, kurā ir trīs MOSFET, lai vadītu LED gaismas.
2. solis: PCB
Es sāku PCB projektēšanas procesu, vispirms izveidojot shematisku Eagle. Tā kā es nevarēju atrast ESP32 FireBeetle bibliotēku, tā vietā es vienkārši izmantoju divas 1 x 18 kontaktu galvenes. Pēc tam es izveidoju strāvas pārvaldības ķēdi, kas varētu pieņemt 12 V caur līdzstrāvas mucas ligzdu un pārveidot to par 5 V sensoru un ESP32 barošanai.
Pēc shēmas pabeigšanas es ķēros pie pašas PCB projektēšanas.
Es zināju, ka līdzstrāvas cilindra kontaktdakšai jāatrodas plāksnes priekšpuses tuvumā, un 100uF barošanas bloku izlīdzinošajiem kondensatoriem jābūt tuvu soļu motora draivera barošanas avotiem. Kad viss bija izklāstīts, es sāku maršrutēt pēdas.
Lai gan Oshpark ražo augstas kvalitātes PCB, to cenas ir diezgan augstas. Par laimi, PCBGOGO.com ražo arī lieliskus PCB par pieņemamu cenu. Es varēju nopirkt desmit PCB tikai par 5 USD, nevis samaksāt 52 USD tikai par trim dēļiem no Oshpark.com.
3. solis: montāža
Kopumā dēļa salikšana bija diezgan vienkārša. Es sāku, pielodējot virspusē uzstādītās sastāvdaļas, un pēc tam pievienojot mucas domkrata savienotāju un regulatoru. Tālāk es lodēju tapu galvenēs tādām sastāvdaļām kā motora draiveri un FireBeetle.
Pēc lodēšanas pabeigšanas es pārbaudīju tāfeles īssavienojumu, ievietojot multimetru pretestības mērīšanas režīmā un pārbaudot, vai pretestība pārsniedz noteiktu daudzumu. Tāfele pagāja, tāpēc es varēju pieslēgt katru komponentu.
4. solis: Programmēšanas pārskats
Es gribēju, lai šīs plates kods būtu modulārs un ērti lietojams. Tas nozīmēja vairākas klases, kas apstrādā īpašas funkcijas, kā arī lielāku iesaiņojuma klasi, kas apvieno mazākās.
5. solis: ievades
Lai apstrādātu ievades, es izveidoju klasi ar nosaukumu “Hub_Inputs”, kas ļauj mājas centrmezglam sazināties ar APDS9960, kā arī izveidot un pārvaldīt pogas un kapacitatīvus pieskāriena interfeisus. Tajā ir šādas funkcijas:
Poga Izveidot
Iegūstiet, ja tiek nospiesta poga
Iegūstiet pogu nospiešanas skaitu
Iegūstiet jaunāko žestu
Iegūstiet kapacitatīvo pieskāriena vērtību
Pogas tiek saglabātas kā struktūra ar trim atribūtiem: is_pressed, numberPresses un pin. Katra poga, kad tā ir izveidota, ir pievienota pārtraukumam. Kad tiek aktivizēts pārtraukums, pakalpojuma pārtraukšanas kārtība (ISR) tiek pārsūtīta uz šīs pogas rādītāju (norādīta kā tās atmiņas adrese pogu masīvā) un palielina pogu nospiešanas skaitu, kā arī atjaunina is_pressed Būla vērtību.
Kapacitatīvās pieskāriena vērtības ir daudz vienkāršākas. Tos iegūst, nododot skārientapu funkcijai touchRead ().
Jaunākais žests tiek atjaunināts, aptaujājot APDS9960 un pārbaudot, vai nav konstatēts jauns žests, un, ja tāds ir konstatēts, iestatiet privātā žesta mainīgo uz šo žestu.
6. darbība. Izejas
Viedās mājas centrmezglam ir vairāki veidi, kā izvadīt informāciju un mainīt gaismas. Ir tapas, kas izlauž I2C kopni, ļaujot lietotājiem pievienot LCD. Līdz šim tiek atbalstīts tikai viens LCD izmērs: 20 x 4. Izmantojot funkciju “hub.display_message ()”, lietotāji var parādīt LCD ziņojumus, ievadot virknes objektu.
Ir arī tapas galvene, lai savienotu virkni analogo gaismas diodes. Izsaucot funkciju “hub.set_led_strip (r, g, b)”, tiek iestatīta joslas krāsa.
Abi soļu motori tiek darbināti, izmantojot pāris DRV8825 draivera plates. Es nolēmu izmantot BasicStepper bibliotēku, lai apstrādātu motoru. Kad dēlis ir sāknēts, tiek izveidoti divi pakāpju objekti, un abi motori tiek aktivizēti. Lai aktivizētu katru motoru, tiek izmantota funkcija “hub.step_motor (motor_id, steps)”, kur motora id ir 0 vai 1.
7. solis: reģistrēšana
Tā kā plāksnei ir vairāki sensori, es vēlējos iespēju lokāli apkopot un reģistrēt datus.
Lai sāktu reģistrēšanu, tiek izveidots jauns fails ar “hub.create_log (faila nosaukums, galvene)”, kur galvene tiek izmantota, lai izveidotu CSV faila rindu, kas apzīmē kolonnas. Pirmā kolonna vienmēr ir laika zīmogs gada mēnesī Diena Stunda: Min: Sec formātā. Lai iegūtu laiku, funkcija hub.log_to_file () iegūst laiku, izmantojot funkciju basic_functions.get_time (). Pēc tam tm laika struktūra ar atsauci tiek nodota reģistrēšanas funkcijā kopā ar datiem un faila nosaukumu.
8. solis: skaņas signāls
Ko dod IoT dēlis, ja nevarat atskaņot mūziku? Tāpēc es iekļāvu skaņas signālu ar funkciju skaņu atskaņošanai. Izsaucot “hub.play_sounds (melodija, ilgums, garums)”, tiek atskaņota dziesma, melodija ir notu frekvenču masīvs, ilgums kā notu ilguma masīvs un garums kā piezīmju skaits.
9. darbība. IoT ārējās integrācijas
Centrs pašlaik atbalsta IFTTT tīmekļa āķus. Tos var aktivizēt, izsaucot funkciju Hub_IoT.publish_webhook (URL, dati, notikums, atslēga) vai Hub_IoT.publish_webhook (URL, dati). Tādējādi uz norādīto URL tiek nosūtīts POST pieprasījums ar šiem datiem, kā arī notikuma nosaukums, ja nepieciešams. Lai iestatītu IFTTT integrācijas piemēru, vispirms izveidojiet jaunu sīklietotni. Pēc tam atlasiet tīmekļa aizķeres pakalpojumu, kas tiek aktivizēts, kad tiek saņemts pieprasījums.
Pēc tam zvaniet notikumam “high_temp” un saglabājiet to. Pēc tam sadaļā “Tas” atlasiet Gmail pakalpojumu un izvēlieties opciju “Sūtīt e -pastu sev”. Pakalpojuma iestatījumos ierakstiet “Temperatūra ir augsta!” par tēmu, un tad es ievietoju “{{Value1}} izmērītā temperatūra {{OccurredAt}}”, kas parāda izmērīto temperatūru un laiku, kad notikums tika aktivizēts.
Pēc iestatīšanas vienkārši ielīmējiet IFTTT ģenerēto tīmekļa aizķeres URL un notikumu sadaļā ievietojiet “high_temp”.
10. solis: lietošana
Lai izmantotu Smart Home Hub, vienkārši izsauciet visas nepieciešamās funkcijas iestatīšanas () vai cilpas (). Es jau ievietoju funkciju izsaukumu paraugus, piemēram, pašreizējā laika drukāšanu un IFTTT notikuma izsaukšanu.
11. solis: nākotnes plāni
Smart Home Hub sistēma ļoti labi darbojas vienkāršiem mājas automatizācijas un datu vākšanas uzdevumiem. To var izmantot gandrīz jebko, piemēram, LED sloksnes krāsas iestatīšanai, telpas temperatūras uzraudzībai, gaismas ieslēgšanai un daudziem citiem iespējamiem projektiem. Nākotnē es vēlos vēl vairāk paplašināt funkcionalitāti. Tas varētu ietvert spēcīgāka tīmekļa servera pievienošanu, vietējo failu mitināšanu un pat Bluetooth vai mqtt.
Ieteicams:
Izveidojiet viedās mājas vadības sistēmu STONE HMI displejā: 23 soļi
Izveidojiet viedās mājas vadības sistēmu STONE HMI displejā: Projekta ievads Šajā apmācībā ir parādīts, kā izmantot skārienekrāna moduli STONE STVC050WT-01, lai izveidotu vienkāršu sadzīves tehnikas vadības sistēmu
Alexa viedās mājas sistēma, izmantojot NodeMCU releja moduli: 10 soļi
Alexa viedās mājas sistēma, izmantojot NodeMCU releja moduli: Šajā IoT projektā esmu izveidojis Alexa viedās mājas automatizācijas sistēmu, izmantojot NodeMCU ESP8266 & Releju modulis. Jūs varat viegli kontrolēt gaismu, ventilatoru un citu sadzīves tehniku, izmantojot balss komandu. Lai savienotu viedo skaļruni Echo Dot ar
ForgetMeNot - viedās mājas paziņojumu platforma: 14 soļi (ar attēliem)
ForgetMeNot - viedās mājas paziņojumu platforma: būdami aizņemti koledžas studenti, skrienot starp nodarbībām, darbiem un ģimenes pienākumiem, mēs mēdzam aizmirst sīkumus. Dzimšanas diena nāk un aiziet nemanot, svarīgs termiņš tiek nokavēts aizmirstības dēļ un dažreiz vienkārši
Pilnīgs viedās mājas papildinājums: 8 soļi
Pilnīgs viedās mājas papildinājums: mans iepriekšējais projekts " Pilnīgā viedā māja " veiksmīgi darbojas gandrīz 5 gadus bez problēmām. Tagad, kad es nolēmu pievienot atgriezenisko saiti, nemainot pašreizējo shēmu un shēmu. Tātad šis papildinājums pro
Arduino viedās mājas sistēma: 7 soļi
Arduino viedās mājas sistēma: šajā pamācībā mēs parādīsim, kā izveidot savu viedās mājas sistēmu, izmantojot MATLAB lietotņu noformētāju ar Sparkfun Red tāfeli. Šo pamācību var izmantot, lai palīdzētu labāk izprast MATLAB lietotņu noformētāju, kā arī izmantot fotoreformu