Բովանդակություն:
- Քայլ 1: Սարքավորումներ:
- Քայլ 2: Softwareրագրակազմ:
- Քայլ 3: Aboutրագրաշարի մասին:
- Քայլ 4. «Առաջիկա նախագիծ»:
- Քայլ 5. Հաջորդը ՝ ESP32 NTP ջերմաստիճանի անոնի անալոգային մուտքագրում Steinhart-Hart ուղղումով
Video: ESP32 Capacitive Touch Input Օգտագործելով «Մետաղական անցքերի խրոցակներ» կոճակների համար. 5 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Երբ ես ավարտում էի նախագծման որոշումները ESP32 WiFi Kit 32 -ի վրա հիմնված առաջիկա նախագծի համար, որը պահանջում էր երեք կոճակի մուտքագրում, մեկ նկատելի խնդիր այն էր, որ WiFi Kit 32 -ը չունի մեխանիկական մեկ կոճակ, բայց միայն երեք մեխանիկական կոճակ, մուտքի համար: Այնուամենայնիվ, WiFi Kit 32 -ն ունի շատ տարողունակ հպման մուտք, այնպես որ ես որոշ ժամանակ ծախսել եմ սարքավորումներ հավաքելիս, ծրագրեր գրել և փորձարկել երեք կոճակով մուտքի դիզայն ՝ օգտագործելով ESP32 տարողունակ հպման մուտքի հնարավորությունը և երեք 3/8 "" մետաղական անցքի խրոցակներ ": կոճակներ:
Ինչպես պարզել է ցանկացած մարդ, ով փորձարկել է ESP32 capacitive touch input- երը, հպման մուտքերն, անշուշտ, բավական աղմկոտ են ՝ մուտքի հուսալի հայտնաբերման համար ֆիլտրացում պահանջելու համար: Առաջիկա ծրագրի մասերի ընդհանուր քանակը նվազագույնի հասցնելու համար ես որոշեցի, որ պարզ ընդհատվող թվային զտիչը (ավելի շատ «դեբունս» է, քան ֆիլտր, բայց ես շեղվում եմ), ի տարբերություն արտաքին զտիչի սարքավորումների ավելացման, կարող է հանդարտեցնել աղմկոտ մուտքերը:. Եվ փորձարկումներից հետո պարզ դարձավ, որ ESP32 տարողունակ մուտքերը, երեք 3/8 դյույմանոց մետաղական անցքերի խրոցակներ և թվային «զտիչ» ծրագրային ապահովում, իրոք, ապահովում էին դիզայնի հուսալի երեք կոճակ:
Այսպիսով, եթե դուք հետաքրքրված եք ESP32- ով թվային զտիչով տարողունակ մուտքի փորձարկմամբ, ես Arduino միջավայրի ձևաչափում ներառել եմ «Buttons.ino» աղբյուրի ծածկագիրը ՝ հավաքման և ծրագրավորման հրահանգների հետ միասին, ինչպես նաև աղբյուրի կոդի կարճ նկարագրությունը, այն, ինչ ես գտա, որպես երեք հուսալի մուտքի բարձր հուսալիություն:
Եվ, ինչպես միշտ, ես, հավանաբար, մեկ -երկու ֆայլ եմ մոռացել, կամ ով գիտի, թե ինչ, այնպես որ, եթե որևէ հարց ունեք, խնդրում եմ մի հապաղեք հարցնել, քանի որ ես շատ սխալներ եմ թույլ տալիս:
Եվ մեկ վերջին նշում, ես ոչ մի փոխհատուցում չեմ ստանում որևէ ձևով, ներառյալ, բայց չսահմանափակվելով անվճար նմուշներով, այս դիզայնում օգտագործված որևէ բաղադրիչի համար
Քայլ 1: Սարքավորումներ:
Դիզայնը օգտագործում է հետևյալ սարքավորումները.
- Մեկ, WiFi Kit 32:
- Երեք, 3/8 "մետաղական անցքի խրոցակներ:
- Երեք, 4 դյույմ երկարությամբ 28awg մետաղալար:
Սարքաշարը հավաքելու համար ես կատարեցի հետևյալ քայլերը.
- Պոկեք և կապեցեք յուրաքանչյուր 4 դյույմ երկարության ծայրերը, ինչպես ցույց է տրված:
- Առաջին մետաղալարը կպցրեց ESP32- ի 13 -ի կապին (TOUCH4, կամ «T4», մուտքագրում):
- Երկրորդ մետաղալարը կպցրեց ESP32- ի 12 -ի կապին (TOUCH5, կամ «T5», մուտքագրում):
- Երրորդ մետաղալարը կպցրեց ESP32- ի 14 -ի կապին (TOUCH6 կամ «T6» մուտքագրում):
- Երեք մետաղական 3/8 դյույմանոց անցքերից յուրաքանչյուրից մեկը զոդեց երեք մետաղալարերի երկարությունների ազատ ծայրերին:
Քայլ 2: Softwareրագրակազմ:
«Buttons.ino» ֆայլը Arduino միջավայրի ֆայլ է, որը պարունակում է դիզայնի ծրագրակազմ: Այս ֆայլից բացի, ձեզ անհրաժեշտ կլինի «U8g2lib» գրաֆիկական գրադարանը WiFi Kit32 OLED էկրանին (այս գրադարանի մասին լրացուցիչ տեղեկությունների համար տե՛ս
Ձեր Arduino գրացուցակում տեղադրված U8g2lib գրաֆիկական գրադարանով և Arduino միջավայրում բեռնված «Buttons.ino» - ով կազմեք և ներբեռնեք ծրագրակազմը ESP32- ում:
Ներբեռնելուց և գործարկելուց հետո էկրանի վերին տողը պետք է կարդա «Կոճակներ», իսկ ցուցադրման երկրորդ տողում `« 1 2 3 », որպես կոճակի ցուցիչ: 1, 2, 3 կոճակի ցուցիչներից յուրաքանչյուրի տակ գտնվում են հպումով կարդալու չզտված արժեքները, իսկ դրանցից յուրաքանչյուրի ներքևում `կոճակի սեղմման ցուցիչներն են (« 1 »սեղմվածների համար,« 0 »չսեղմվածների դեպքում): Ինչպես երևում է տեսանյութում (և եթե երկարաժամկետ փորձարկումը հաստատված է), ծրագրաշարի զտիչն ապահովում է կոճակի մուտքի հուսալի հայտնաբերում ՝ առանց կեղծ միացման:
Քայլ 3: Aboutրագրաշարի մասին:
Theրագրաշարը պարունակում է կոդի երեք հիմնական բաժին. Arduino- ն պահանջում էր «setup ()» և «loop ()» բաժիններ և «Ընդհատում» բաժին: Setup () բաժինը պարունակում է OLED և ծառայություններն ընդհատելու համար անհրաժեշտ ծածկագիրը: OLED- ի տեղադրման գործառույթները նկարագրված են վերը նշված հղումով: Ընդհատվող ծառայության կարգաբերման գործառույթները հետևյալն են.
- «timerLoopSemaphore = xSemaphoreCreateBinary ()» - ը սեմալիստ է ստեղծում «InterruptService ()» - ի (ընդհատման ծառայության ռեժիմի) համար `loop () - ի մասին տեղեկացնելու համար, երբ ժամանակն է կատարել loop pass:
- "timerInterruptService = timerBegin (0, 80, ճշմարիտ)" ստեղծում է ժմչփ ՝ օգտագործելով ապարատային ժմչփ 0 -ը ՝ 80 նախնական սանդղակով:
- "timerAttachInterrupt (timerInterruptService, & InterruptService, true)" կցում է InterruptService () ժամաչափին:
- "timerAlarmWrite (timerInterruptService, 1000, true)" ընդհատման ծառայության արագությունը սահմանում է 1000Hz:
- «timerAlarmEnable (timerInterruptService)» - ը գործարկում է ժամաչափի ահազանգը և դրանով իսկ ընդհատում ծառայությունը:
Տեղադրումն ավարտված է, loop () -ը մուտքագրվում է և անմիջապես կանգնում գծի վրա.
եթե (xSemaphoreTake (timerLoopSemaphore, portMAX_DELAY) == pdTRUE), loop () նշանակությունը այս պահին կսպասի մինչև InterruptService () սեմալիստի ժամանումը: Երբ սեմալֆորը գալիս է, loop () ծածկագիրը գործարկում է ՝ թարմացնելով OLED էկրանը կոճակի տվյալներով, այնուհետև վերադառնալով վերև ՝ կրկին սպասելով հաջորդ սեմալֆորին: InterruptService () - ով աշխատում է 1000Hz և LOOP_DELAY 30 արժեքով, loop () - ը կատարվում է յուրաքանչյուր 30 ms- ի դեպքում կամ 33.333Hz - ի ցուցադրման արագությամբ: Թեև սա ցուցադրման թարմացման ավելի բարձր արագություն է, քան պահանջվում է ESP32 ծրագրերի մեծ մասի համար, ես այս պարամետրը օգտագործեցի ՝ ֆիլտրի արագությունը ցուցադրելու համար: Ես փորձարկեցի և որոշեցի, որ մեկ օղակ () անցումը կատարելու համար պահանջվող ժամանակը պետք է լինի 20ms:
InterruptService- ը () կոչվում է setup- ում ստեղծված ժամաչափով () `1000Hz հաճախականությամբ: Calledանգահարելու դեպքում այն թարմացնում է երկու հաշվիչ ՝ nLoopDelay և nButtonDelay: Երբ nLoopDelay- ը հաշվարկվում է զրոյի, այն ուղարկում է սեմալիստը, որը թույլ է տալիս loop- ին () կատարել մեկ փոխանցում, այնուհետև վերականգնում է nLoopDelay- ը: Երբ nButtonDelay- ը հաշվարկվում է զրոյի, այն նույնպես վերակայվում է, ապա «զտիչներ» կոճակը գործարկվում է:
Յուրաքանչյուր կոճակի զտիչ ունի յուրահատուկ զտիչ հաշվիչ (օրինակ ՝ nButton1Count, nButton2Count և nButton3Count): Քանի դեռ կոճակին վերագրված հպման մուտքագրման արժեքը մեծ է կամ հավասար սահմանված շեմի արժեքին (BUTTON_THRESHHOLD), կոճակին և կոճակին հատկացված զտիչի հաշվիչը մնում է զրո: Եթե կոճակին վերագրված հպման մուտքագրման արժեքը սահմանված շեմից փոքր է, ապա կոճակին վերագրված զտիչի հաշվիչը ավելանում է յուրաքանչյուր 20 ms- ով մեկով: Երբ զտիչի հաշվիչը գերազանցում է կոճակի զտիչի արժեքը (BUTTON_FILTER), կոճակը համարվում է «սեղմված»: Այս մեթոդի ազդեցությունն է ստեղծել այնպիսի զտիչ, որը պահանջում է 80ms (20ms nButtonDelay * 4ms nButtonCountN որտեղ N- ը կոճակի թիվն է) սահմանված շեմից ներքև անընդհատ հպման մուտքային արժեքների համար `կոճակը իրականում սեղմված համարելու համար: Msանկացած ժամանակ, երբ 80ms- ից պակաս ժամանակը համարվում է «անսարքություն» և մերժվում է ֆիլտրի կողմից:
Հաշվի առնելով այս համառոտ նկարագրությունը, եթե ունեք որևէ հարց, խնդրում ենք ազատ զգալ հարցնելը, և ես ամեն ինչ կանեմ դրանց պատասխանելու համար:
Հուսով եմ ձեզ դուր եկավ:
Քայլ 4. «Առաջիկա նախագիծ»:
Առաջիկա նախագիծը ՝ «Intelligrill® Pro», երկակի ջերմաստիճանի զոնդի ծխող մոնիտոր է, որը պարունակում է.
- Steinhart-Hart ջերմաստիճանի զոնդի հաշվարկները (ի տարբերություն «փնտրման» աղյուսակների) ավելի մեծ ճշգրտության համար:
- 1-ին հետաքննության ավարտի կանխատեսող ժամանակը `ներառելով Շտայնհարթ-Հարթի հաշվարկներից ստացված ավելացված ճշգրտությունը:
- Երկրորդ զոնդը ՝ 2 զոնդը, ծխողների ջերմաստիճանը վերահսկելու համար (սահմանափակվում է 32 -ից մինչև 399 աստիճանով):
- Հպման հզորության կոնդենսատիվ կառավարման տարրեր (ինչպես սույն հրահանգում):
- WIFI- ի վրա հիմնված հեռավոր մոնիտորինգ (ֆիքսված IP հասցեով, թույլ է տալիս վերահսկել ծխողի առաջընթացը ցանկացած վայրից, որտեղ առկա է ինտերնետ կապ):
- Ընդլայնված ջերմաստիճանի տիրույթ (կրկին 32 -ից 399 աստիճան):
- Ավարտման ձայնային ազդանշաններ ՝ ինչպես Intelligrill® հաղորդիչում, այնպես էլ WiFi- ով աշխատող մոնիտորինգի սարքերի մեծ մասում:
- Temերմաստիճանի ցուցադրում կամ F աստիճանով կամ C աստիճանով:
- Timeամանակի ձևաչափ ՝ HH: MM: SS կամ HH: MM:
- Մարտկոցի ցուցադրում կամ վոլտով, կամ % լիցքավորված:
- Եվ շուտով, PID- ի արտադրանքը ծխող ծխողների համար:
«Intelligrill® Pro» - ն փորձարկում է դառնալ իմ նախագծած առավել ճշգրիտ, հնարավորությունների փաթեթավորված և հուսալի HTML- ի վրա հիմնված Intelligrill®- ը:
Այն դեռ փորձարկման փուլում է, բայց այն կերակուրների հետ, որոնք օգնում են պատրաստել թեստավորման ընթացքում, ես ավելացրել եմ ավելի քան մի քանի ֆունտ:
Կրկին, հուսով եմ, որ ձեզ դուր կգա:
Քայլ 5. Հաջորդը ՝ ESP32 NTP ջերմաստիճանի անոնի անալոգային մուտքագրում Steinhart-Hart ուղղումով
Պատրաստ եղեք փոշոտել ձեր հանրահաշվի գրքերը այս մեկի համար:
Խորհուրդ ենք տալիս:
Sոդում անցքերի բաղադրիչների միջոցով - Sոդման հիմունքներ. 8 քայլ (նկարներով)
Sոդում անցքերի բաղադրիչների միջոցով | Sոդման հիմունքներ. Այս Ուղեցույցում ես կքննարկեմ մի քանի հիմք `անցքերի բաղադրիչները միացնելով տախտակներին: Ենթադրեմ, որ դուք արդեն ստուգել եք իմ Soldering Basics շարքի առաջին 2 հրահանգները: Եթե դեռ չեք ստուգել իմ մուտքը
Փորձեք մերկ Arduino- ն, խաղային ծրագրակազմով `օգտագործելով capacitive input և LED: 4 քայլ
Փորձեք մերկ Arduino- ով, խաղային ծրագրակազմով `օգտագործելով capacitive input և LED: " Push-It " Ինտերակտիվ խաղ Arduino- ի մերկ տախտակի օգտագործմամբ, արտաքին մասերի կամ էլեկտրագծերի կարիք չկա (օգտագործում է capacitive 'touch' մուտքագրում): Վերևում ցուցադրվածը ցույց է տալիս, որ այն աշխատում է երկու տարբեր տախտակների վրա: Հրել-Այն ունի երկու նպատակ: Արագ ցուցադրելու համար/v
Arduino Mega RJ45 խրոցակներ մալուխների կառավարման համար. 5 քայլ
Arduino Mega RJ45 խրոցակներ մալուխների կառավարման համար. Arduino Mega- ն ունի տոննա կապում, դա գնելու մեծ պատճառ է, այնպես չէ՞: Մենք ուզում ենք օգտագործել բոլոր այդ կապումները: Հաղորդալարումը կարող է արագորեն դառնալ սպագետտի խառնաշփոթ առանց մալուխի կառավարման: Մենք կարող ենք համախմբել լարերը ՝ օգտագործելով Ethernet վարդակներ: Տվյալները պտտվում են
Պայծառության վերահսկում PWM- ի վրա հիմնված LED հսկողություն ՝ սեղմիչ կոճակների, ազնվամորի Pi- ի և քերծվածքի միջոցով. 8 քայլ (նկարներով)
Պայծառության վերահսկում PWM- ի վրա հիմնված LED հսկողություն ՝ օգտագործելով սեղմման կոճակներ, ազնվամորի Pi և քերծվածք. Ես փորձում էի գտնել մի տարբերակ, որը բացատրում էր, թե ինչպես է PWM- ն աշխատում իմ ուսանողների համար, ուստի ես ինքս ինձ խնդիր դրեցի ՝ փորձելու վերահսկել լուսադիոդի պայծառությունը ՝ օգտագործելով 2 կոճակ - մեկ կոճակ, որը մեծացնում է լուսադիոդի պայծառությունը, իսկ մյուսը ՝ այն լուսավորող: Առաջադիմելու համար
Ինչպես եռակցել անցքերի մասերը. 7 քայլ (նկարներով)
Ինչպես կպցնել անցքերի մասերը. Այս հրահանգով ես ձեզ ցույց կտամ, թե ինչպես կպցնել անցքերի մասերը: Ես ձեզ քայլ առ քայլ կտանեմ ընթացակարգի միջոցով, ինչպես նաև մի քանի խորհուրդ կտամ & հնարքներ, որոնք պետք է նոր մակարդակի հասցնեն ձեր զոդման հմտությունները: Այս ձեռնարկը վերաբերում է