Բովանդակություն:
- Պարագաներ
- Քայլ 1: Առանձնահատկություններ
- Քայլ 2: PCB
- Քայլ 3: Հավաքում
- Քայլ 4: mingրագրավորման ակնարկ
- Քայլ 5: Ներածումներ
- Քայլ 6: Արդյունքներ
- Քայլ 7: Անտառահատում
- Քայլ 8: Buzzer
- Քայլ 9. Արտաքին IoT ինտեգրումներ
- Քայլ 10: Օգտագործում
- Քայլ 11: Ապագա ծրագրեր
Video: ESP32 Smart Home Hub: 11 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Համակարգ ստեղծելը, որը կկարողանա կառավարել մեծ քանակությամբ սենսորային տվյալներ, ունենալ բազմաթիվ ելքեր և միանալ ինտերնետին կամ տեղական ցանցին, պահանջում է երկար ժամանակ և մեծ ջանքեր: Շատ հաճախ մարդիկ, ովքեր ցանկանում են սեփական խելացի տան ցանցերը դարձնել, դժվարանում են գտնել և հավաքել հատուկ բաղադրիչներ ավելի մեծ համակարգի մեջ: Այդ պատճառով ես ուզում էի ստեղծել մոդուլային և հնարավորություններով հարուստ հարթակ, որը դյուրին կդարձներ IoT- ի հետ կապված սենսորների և ելքերի կառուցումը:
Շնորհակալություն DFRobot- ին և PCBGOGO.com- ին այս նախագիծը հովանավորելու համար:
Ավելի մանրամասն տեղեկությունների համար այցելեք Github ռեպո ՝
Պարագաներ
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
DHT22 տվիչ
www.dfrobot.com/product-1102.html
-
APDS9960 Լույսի և ժեստերի ցուցիչ
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD մոդուլ
www.dfrobot.com/product-590.html
-
Անալոգային RGB LED ժապավեն
www.dfrobot.com/product-1829.html
- DRV8825 Stepper Motor վարորդներ
- SD քարտի ընթերցող
- NEMA17 Stepper Motors
Քայլ 1: Առանձնահատկություններ
Այս տախտակի հիմնական առանձնահատկությունը ESP32 FireBeetle Development Board- ն է, որը կարգավորում է բոլոր հաղորդակցությունները, սենսորների ընթերցումները և ելքերը: Գոյություն ունեն երկու շարժիչային շարժիչ, որոնք վերահսկում են երկու երկբևեռ տիպային շարժիչներ:
I2C ավտոբուսը նույնպես կոտրված է այնպիսի բաղադրիչներով օգտագործելու համար, ինչպիսիք են APDS9960- ը կամ LCD- ը: Theերմաստիճանը կարդալու համար կան կոճակներ, որոնք կոտրված են DHT22 սենսորին միանալու համար, ինչպես նաև շրջապատող լուսավորության մակարդակները կարդալու համար նախատեսված ֆոտոռեզիստոր:
Տախտակի վրա կա անալոգային լուսային ժապավենի աջակցություն, որի վրա տեղադրված է երեք MOSFET ՝ LED լույսերը վարելու համար:
Քայլ 2: PCB
Ես սկսեցի PCB- ի նախագծման գործընթացը ՝ նախ ստեղծելով սխեմա Eagle- ում: Քանի որ ես չկարողացա գտնել ESP32 FireBeetle գրադարան, փոխարենը ես օգտագործեցի երկու կապ 1x18 փին երկու վերնագիր: Այնուհետև ես ստեղծեցի էներգիայի կառավարման միացում, որը կարող էր ընդունել 12 վ լարման տակառի միջոցով և այն վերածել 5 վ -ի ՝ սենսորների և ESP32- ի սնուցման համար:
Սխեման ավարտելուց հետո ես անցա PCB- ի նախագծման վրա:
Ես գիտեի, որ DC- ի տակառի խրոցը պետք է լինի տախտակի առջևի մոտ, իսկ 100uF էներգիայի մատակարարման հարթեցման կոնդենսատորները պետք է մոտենան սլաքի շարժիչի շարժիչի հզորության մուտքերին: Ամեն ինչ դասավորվելուց հետո ես սկսեցի հետքեր ուղարկել:
Մինչ Oshpark- ը հիանալի որակի PCB է պատրաստում, դրանց գները բավականին բարձր են: Բարեբախտաբար, PCBGOGO.com- ը նաև հիանալի PCB է պատրաստում մատչելի գնով: Ես կարողացա տասը հատ հատ գնել 5 դոլարով, այլ ոչ թե 52 դոլար վճարել Oshpark.com- ի ընդամենը երեք տախտակի համար:
Քայլ 3: Հավաքում
Ընդհանուր առմամբ, խորհուրդը հավաքելը բավականին հեշտ էր: Ես սկսեցի մակերեսին ամրացված բաղադրամասերը զոդել, այնուհետև ամրացնելով տակառի միակցիչը և կարգավորիչը: Հաջորդը, ես կպցրի վերնագրերում այն բաղադրիչների համար, ինչպիսիք են շարժիչային վարորդները և FireBeetle- ը:
Eringոդման աշխատանքներն ավարտելուց հետո ես փորձարկեցի տախտակը կարճ միացման համար `մուլտիմետրը դիմադրության չափման ռեժիմի մեջ դնելով և տեսնելով, թե արդյոք դիմադրությունը որոշակի չափից ավելի է: Տախտակն անցավ, այնպես որ ես այնուհետև կարողացա միացնել յուրաքանչյուր բաղադրիչ:
Քայլ 4: mingրագրավորման ակնարկ
Ես ուզում էի, որ այս տախտակի ծածկագիրը լինի մոդուլային և հեշտ օգտագործելի: Սա նշանակում էր ունենալ մի քանի դասեր, որոնք կարգավորում են որոշակի գործառույթներ, ինչպես նաև ավելի մեծ փաթաթան դաս, որը միավորում է փոքրերը:
Քայլ 5: Ներածումներ
Մուտքերի մշակման համար ես ստեղծեցի «Hub_Inputs» կոչվող դաս, որը հնարավորություն է տալիս տնային հանգույցին հաղորդակցվել APDS9960- ի հետ, ինչպես նաև ստեղծել և կառավարել կոճակներ և տարողունակ հպման միջերեսներ: Այն պարունակում է հետևյալ գործառույթները.
Ստեղծել կոճակը
Ստացեք, եթե կոճակը սեղմված է
Ստացեք կոճակների սեղմումների քանակը
Ստացեք վերջին ժեստը
Ստացեք capacitive touch արժեքը
Կոճակները պահվում են որպես կառուցվածք ՝ երեք հատկանիշով ՝ is_pressed, numberPresses և pin: Յուրաքանչյուր կոճակ, երբ ստեղծվում է, կցվում է ընդհատմանը: Երբ այդ ընդհատումը գործարկվում է, ընդհատման ծառայության ռեժիմին (ISR) փոխանցվում է այդ կոճակի ցուցիչը (նշվում է որպես դրա հիշողության հասցե կոճակի զանգվածում) և ավելացնում է կոճակների սեղմումների քանակը, ինչպես նաև is_pressed բուլյան արժեքը թարմացնելը:
Հզոր շոշափելիքի արժեքները շատ ավելի պարզ են: Դրանք առբերվում են ՝ հպման քորոցը փոխանցելով touchRead () գործառույթին:
Վերջին ժեստը թարմացվում է ՝ հարցնելով APDS9960- ը և ստուգելով, թե որևէ նոր ժեստ է հայտնաբերվել, և եթե մեկը հայտնաբերվել է, մասնավոր ժեստի փոփոխականը սահմանեք այդ ժեստի վրա:
Քայլ 6: Արդյունքներ
Խելացի տան հանգույցն ունի տեղեկատվություն թողարկելու և լույսերը փոխելու մի քանի եղանակ: Կան կապումներ, որոնք խախտում են I2C ավտոբուսը ՝ թույլ տալով օգտվողներին միացնել LCD: Մինչ այժմ, LCD- ի միայն մեկ չափս է ապահովվում ՝ 20 x 4. Օգտագործելով «hub.display_message ()» գործառույթը, օգտվողները կարող են LCD- ում ցուցադրել հաղորդագրություններ ՝ լարային օբյեկտի մեջ մտնելով:
Կա նաև կապի վերնագիր ՝ անալոգային LED- ների շարանը միացնելու համար: «Hub.set_led_strip (r, g, b) գործառույթը կանչելը սահմանում է շերտի գույնը:
Երկու քայլային շարժիչները շարժվում են DRV8825 զույգ վարորդական տախտակի միջոցով: Ես որոշեցի օգտագործել BasicStepper գրադարանը `շարժիչի կառավարումը կարգավորելու համար: Երբ տախտակը բարձրանում է, ստեղծվում է երկու քայլող օբյեկտ, և երկու շարժիչներն էլ միացված են: Յուրաքանչյուր շարժիչին քայլելու համար օգտագործվում է «hub.step_motor (motor_id, steps)» գործառույթը, որտեղ շարժիչի ID- ն կամ 0 է, կամ 1:
Քայլ 7: Անտառահատում
Քանի որ տախտակն ունի մի քանի սենսորներ, ես ցանկանում էի, որ կարողանամ տվյալներ հավաքել և գրանցել տեղում:
Գրանցումը սկսելու համար ստեղծվում է նոր ֆայլ «hub.create_log (ֆայլի անուն, վերնագիր)», որտեղ վերնագիրն օգտագործվում է CSV ֆայլի տող պատրաստելու համար, որը նշում է սյուներ: Առաջին սյունակը միշտ ամսվա դրոշմ է Տարվա ամսվա օրվա ժամում `Min: Sec ձևաչափով: Getամանակ ստանալու համար hub.log_to_file () գործառույթը ժամանակ է ստանում հիմնական_functions.get_time () գործառույթով: Այնուհետև tm ժամանակի կառուցվածքը հղումով փոխանցվում է մուտքագրման գործառույթին ՝ տվյալների և ֆայլի անվան հետ միասին:
Քայլ 8: Buzzer
Ի՞նչ օգուտ ունի IoT տախտակը, եթե չես կարող երաժշտություն նվագել: Ահա թե ինչու ես ներառեցի ազդանշան ՝ հնչյուններ նվագարկելու գործառույթով: «Hub.play_sounds (մեղեդի, տևողություն, երկարություն)» զանգը սկսում է երգ նվագել, որի մեղեդին նոտերի հաճախությունների զանգված է, տևողությունը ՝ որպես նոտայի տևողության զանգված, իսկ երկարությունը ՝ որպես նոտաների քանակ:
Քայլ 9. Արտաքին IoT ինտեգրումներ
Այս պահին կենտրոնը աջակցում է IFTTT վեբհանգույցներին: Դրանք կարող են գործարկվել ՝ զանգահարելով Hub_IoT.publish_webhook (url, տվյալներ, իրադարձություն, բանալին) կամ Hub_IoT.publish_webhook (url, data) գործառույթ: Սա ուղարկում է POST հարցումը տվյալ URL- ին `կցված տվյալներով, անհրաժեշտության դեպքում նաև իրադարձության անվան հետ: IFTTT ինտեգրման օրինակ ստեղծելու համար նախ ստեղծեք նոր հավելված: Այնուհետև ընտրեք վեբհուկի ծառայությունը, որը գործարկում է հարցումը ստանալիս:
Հաջորդը, իրադարձությունը անվանեք «բարձր_տեմպ» և պահեք այն: Այնուհետև ընտրեք Gmail ծառայությունը «Դա» մասի համար և ընտրեք «Ինձ էլ -նամակ ուղարկել» տարբերակը: Forառայության կարգավորման մեջ նշեք «temperatureերմաստիճանը բարձր է»: առարկայի համար, այնուհետև ես դնում եմ «Չափված ջերմաստիճանը {{Value1}} - ի վրա {{OccurredAt}}», որը ցույց է տալիս չափված ջերմաստիճանը և իրադարձության գործարկման ժամանակը:
Այն կարգավորելուց հետո պարզապես կպցրեք IHTTT- ի կողմից ստեղծված webhook հասցեն և իրադարձությունների բաժնում տեղադրեք «high_temp»:
Քայլ 10: Օգտագործում
Smart Home Hub- ից օգտվելու համար պարզապես զանգահարեք անհրաժեշտ բոլոր գործառույթները `(setup () կամ loop () պարամետրերում: Ես արդեն տեղադրել եմ ֆունկցիոնալ զանգերի օրինակ, օրինակ ՝ ընթացիկ ժամանակը տպելը և IFTTT իրադարձության կանչը:
Քայլ 11: Ապագա ծրագրեր
Smart Home Hub համակարգը շատ լավ է աշխատում տան պարզ ավտոմատացման և տվյալների հավաքման առաջադրանքների համար: Այն կարող է օգտագործվել գրեթե ամեն ինչի համար, օրինակ ՝ LED շերտի գույնը սահմանելը, սենյակի ջերմաստիճանը վերահսկելը, լույսի առկայությունը ստուգելը, և մի շարք այլ հնարավոր նախագծեր: Ապագայում ես կցանկանայի ավելի ընդլայնել ֆունկցիոնալությունը: Սա կարող է ներառել ավելի հզոր վեբ սերվեր, տեղական ֆայլերի հոստինգ և նույնիսկ Bluetooth կամ mqtt ավելացնել:
Խորհուրդ ենք տալիս:
Սկսելով ESP32 - - ով ESP32 տախտակների տեղադրում Arduino IDE- ում - ESP32 Blink կոդ ՝ 3 քայլ
Սկսելով ESP32 | - ով ESP32 տախտակների տեղադրում Arduino IDE- ում | ESP32 Blink Code: Այս հրահանգների մեջ մենք կտեսնենք, թե ինչպես սկսել աշխատել esp32- ի հետ և ինչպես տեղադրել esp32 տախտակները Arduino IDE- ում, և մենք ծրագրելու ենք esp 32 -ին `թարթելու ծածկագիրը գործարկելով arduino ide- ի միջոցով:
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 քայլ
Sonoff B1 Firmware Home Automation Openhab Google Home. Ինձ իսկապես դուր է գալիս Tasmota- ի որոնվածը իմ Sonoff անջատիչների համար: Բայց a- ն իրականում գոհ չէր իմ Sonoff-B1- ի Tasmota- ի որոնվածից: Ինձ լիովին չհաջողվեց այն ներառել իմ Openhab- ում և վերահսկել այն Google Home- ի միջոցով: Հետևաբար ես գրեցի իմ սեփական ընկերությունը
Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 քայլ (նկարներով)
Raspberry Pi-Arduino-SignalR Home Automation Hub. Հետևելով այստեղ և այստեղ հրապարակված իմ մի քանի նախածանցային IBLE- ներին, այս նախագիծը կատարում է առաջին քայլը `տան ավտոմատացման հանգույցի հիմնական տարբերակի կառուցման ուղղությամբ: Ես օգտագործել եմ մի քանի տարբեր տեխնոլոգիաներ ջանք ՝ հասկանալու, թե ինչպես կարող եմ
Ինտերֆեյս Honeywell Vista rmարթուցիչ Smart Hub (Աչքով/Խելացի բաներով) ՝ 7 քայլ (նկարներով)
Ինտերֆեյս Honeywell Vista ահազանգ Smart Smart Hub- ով (Աչքով/Smartthings). Բարև ձեզ: Ես ուզում էի կարճ ձեռնարկ տալ, թե ինչպես իմ Honeywell Vista ազդանշանային համակարգը ինտեգրվեց իմ խելացի հանգույցում: Այս ձեռնարկի համար ես օգտագործում եմ Wink- ը, բայց այն պետք է աշխատի ցանկացած խելացի հանգույցի հետ (Smartthings/Iris/այլն): Նախքան սկսելը, դուք գնաք
DIY Google Home Bluetooth բարձրախոսով Raspberry Pi Zero Docking Hub- ում ՝ 7 քայլ (նկարներով)
DIY Google Home ՝ Bluetooth բարձրախոսով Raspberry Pi Zero Docking Hub- ում. Մենք ունենք ուսանելի DIY Amazon Echo Alexa - Alexa ձայնային օգնական Raspberry Pi Zero Docking Hub- ում: Այս անգամ մենք ուզում ենք ձեզ ցույց տալ, թե ինչպես կարելի է ինքնուրույն կառուցել Google Home: Այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես տեղադրել և կարգավորել Google Օգնականը