Satura rādītājs:

ESP32 viedās mājas centrmezgls: 11 soļi
ESP32 viedās mājas centrmezgls: 11 soļi

Video: ESP32 viedās mājas centrmezgls: 11 soļi

Video: ESP32 viedās mājas centrmezgls: 11 soļi
Video: Использование термопары MAX6675 с ESP32 Bluetooth 2024, Novembris
Anonim
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls
ESP32 viedās mājas centrmezgls

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

Iespējas
Iespējas
Iespējas
Iespējas
Iespējas
Iespējas

Šī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

PCB
PCB
PCB
PCB
PCB
PCB
PCB
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

Montāža
Montāža
Montāža
Montāža
Montāža
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

Ieejas
Ieejas
Ieejas
Ieejas
Ieejas
Ieejas

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

Izejas
Izejas
Izejas
Izejas
Izejas
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

Mežizstrāde
Mežizstrāde
Mežizstrāde
Mežizstrāde
Mežizstrāde
Mežizstrāde

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

Signāls
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

Ārējās IoT integrācijas
Ārējās IoT integrācijas
Ārējās IoT integrācijas
Ārējās IoT integrācijas
Ārējās IoT integrācijas
Ārējās IoT 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

Lietošana
Lietošana
Lietošana
Lietošana
Lietošana
Lietošana
Lietošana
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: