ESP32 Հիմնական մեկնարկիչ
Հավաքածու
Փաթեթավորման ցուցակ
ESP32 Ներածություն
Նորե՞լ եք ESP32-ում: Սկսե՛ք այստեղից։ ESP32-ը չիպի վրա (SoC) միկրոկոնտրոլերների մի շարք է, որոնք մշակվել են Espressif-ի կողմից, որոնք ներառում են Wi-Fi և Bluetooth անլար հնարավորություններ և երկմիջուկ պրոցեսոր: Եթե դուք ծանոթ եք ESP8266-ին, ապա ESP32-ը նրա իրավահաջորդն է՝ հագեցած բազմաթիվ նոր հնարավորություններով:ESP32 Տեխնիկական պայմաններ
Եթե ցանկանում եք ստանալ մի փոքր ավելի տեխնիկական և կոնկրետ, կարող եք դիտել ESP32-ի հետևյալ մանրամասն բնութագրերը (աղբյուր. http://esp32.net/)—Լրացուցիչ մանրամասների համար՝ ստուգեք տվյալների թերթիկը):
- Անլար կապ WiFi՝ 150.0 Մբիթ/վրկ տվյալների փոխանցման արագություն HT40-ով
- Bluetooth՝ BLE (Bluetooth Low Energy) և Bluetooth Classic
- Պրոցեսոր՝ Tensilica Xtensa Dual-Core 32-bit LX6 միկրոպրոցեսոր, որն աշխատում է 160 կամ 240 ՄՀց հաճախականությամբ
- Հիշողություն:
- ROM՝ 448 ԿԲ (գործարկման և հիմնական գործառույթների համար)
- SRAM՝ 520 ԿԲ (տվյալների և հրահանգների համար)
- RTC fas SRAM՝ 8 ԿԲ (տվյալների պահպանման և հիմնական պրոցեսորի համար RTC Boot-ը խորը քնի ռեժիմից)
- RTC դանդաղ SRAM՝ 8 ԿԲ (խորը քնի ռեժիմում համապրոցեսոր մուտք գործելու համար) eFuse՝ 1 Կբիթ (որից 256 բիթն օգտագործվում է համակարգի համար (MAC հասցե և չիպի կոնֆիգուրացիա), իսկ մնացած 768 բիթը վերապահված է հաճախորդների հավելվածների համար, ներառյալ Flash-կոդավորում և Chip-ID)
Ներկառուցված ֆլեշ. ֆլեշը ներքին միացված է IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 և SD_DATA_1 ESP32-D2WD և ESP32-PICO-D4-ի միջոցով:
- 0 ՄԲ (ESP32-D0WDQ6, ESP32-D0WD և ESP32-S0WD չիպեր)
- 2 ՄԲ (ESP32-D2WD չիպ)
- 4 ՄԲ (ESP32-PICO-D4 SiP մոդուլ)
Ցածր էներգիա. ապահովում է, որ դուք դեռ կարող եք օգտագործել ADC-ի փոխարկումները, օրինակample, խոր քնի ժամանակ.
Ծայրամասային մուտք/ելք.
- ծայրամասային ինտերֆեյս DMA-ի հետ, որը ներառում է capacitive touch
- ADCs (անալոգային-թվային փոխարկիչ)
- DAC (թվային-անալոգային փոխարկիչ)
- I²C (Integrated Circuit)
- UART (ունիվերսալ ասինխրոն ընդունիչ/հաղորդիչ)
- SPI (սերիական ծայրամասային ինտերֆեյս)
- I²S (Integrated Interchip Sound)
- RMII (կրճատված մեդիա անկախ ինտերֆեյս)
- PWM (զարկերակային լայնության մոդուլացիա)
Անվտանգություն: ապարատային արագացուցիչներ AES-ի և SSL/TLS-ի համար
ESP32 զարգացման տախտակներ
ESP32-ը վերաբերում է մերկ ESP32 չիպին: Այնուամենայնիվ, «ESP32» տերմինը օգտագործվում է նաև ESP32 մշակման տախտակներին վերաբերվելու համար: ESP32 մերկ չիպերի օգտագործումը հեշտ կամ գործնական չէ, հատկապես երբ սովորում, փորձարկում և նախատիպեր պատրաստում: Շատ ժամանակ դուք կցանկանաք օգտագործել ESP32 մշակման տախտակ:
Մենք կօգտագործենք ESP32 DEVKIT V1 տախտակը որպես հղում: Ստորև բերված նկարը ցույց է տալիս ESP32 DEVKIT V1 տախտակը, տարբերակը 30 GPIO փինով:Տեխնիկական պայմաններ – ESP32 DEVKIT V1
Հետևյալ աղյուսակը ցույց է տալիս ESP32 DEVKIT V1 DOIT տախտակի առանձնահատկությունների և բնութագրերի ամփոփագիրը.
Միջուկների քանակը | 2 (երկակի միջուկ) |
Wi-Fi | 2.4 ԳՀց մինչև 150 Մբիթ/վրկ |
Bluetooth | BLE (Bluetooth Low Energy) և ժառանգական Bluetooth |
Ճարտարապետություն | 32 բիթ |
Ժամացույցի հաճախականությունը | Մինչև 240 ՄՀց |
RAM | 512 ԿԲ |
Կապում | 30 (կախված մոդելից) |
Ծայրամասային սարքեր | Capacitive touch, ADC (անալոգային թվային փոխարկիչ), DAC (թվայինից անալոգային փոխարկիչ), 12C (Inter-Integrated Circuit), UART (ունիվերսալ ասինխրոն ընդունիչ/հաղորդիչ), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integrated Inter-IC Ձայն), RMII (կրճատված մեդիա անկախ ինտերֆեյս), PWM (զարկերակային լայնության մոդուլյացիա) և այլն: |
Ներկառուցված կոճակներ | RESET և BOOT կոճակներ |
Ներկառուցված LED-ներ | ներկառուցված կապույտ LED միացված GPIO2; ներկառուցված կարմիր LED, որը ցույց է տալիս, որ տախտակը սնուցվում է |
USB դեպի UART կամուրջ |
CP2102 |
Այն գալիս է microUSB ինտերֆեյսով, որը կարող եք օգտագործել տախտակը ձեր համակարգչին միացնելու համար՝ կոդը վերբեռնելու կամ հոսանք կիրառելու համար:
Այն օգտագործում է CP2102 չիպը (USB-ից UART)՝ ձեր համակարգչի հետ COM պորտի միջոցով սերիական ինտերֆեյսի միջոցով հաղորդակցվելու համար: Մեկ այլ հայտնի չիպ է CH340: Ստուգեք, թե ինչ է USB-ից UART չիպերի փոխարկիչը ձեր տախտակի վրա, քանի որ ձեզ հարկավոր է տեղադրել անհրաժեշտ դրայվերները, որպեսզի ձեր համակարգիչը կարողանա շփվել տախտակի հետ (այս մասին ավելի ուշ՝ այս ուղեցույցում):
Այս տախտակը նաև ունի RESET կոճակ (կարող է գրվել EN)՝ տախտակը վերագործարկելու համար և BOOT կոճակ՝ տախտակը թարթելու ռեժիմում դնելու համար (հասանելի է կոդը ստանալու համար): Նկատի ունեցեք, որ որոշ տախտակներ կարող են չունենալ BOOT կոճակ:
Այն նաև գալիս է ներկառուցված կապույտ LED-ով, որը ներքին միացված է GPIO 2-ին: Այս լուսադիոդը օգտակար է վրիպազերծման համար՝ որոշակի տեսողական ֆիզիկական արդյունք տալու համար: Կա նաև կարմիր լուսադիոդ, որը վառվում է, երբ սնուցվում եք տախտակին:ESP32 Pinout
ESP32 ծայրամասային սարքերը ներառում են.
- 18 անալոգային-թվային փոխարկիչ (ADC) ալիք
- 3 SPI ինտերֆեյս
- 3 UART ինտերֆեյս
- 2 I2C ինտերֆեյս
- 16 PWM ելքային ալիք
- 2 թվային-անալոգային փոխարկիչներ (DAC)
- 2 I2S ինտերֆեյս
- 10 կոնդենսիվ զգայուն GPIO
ADC (անալոգային թվային փոխարկիչ) և DAC (թվայինից անալոգային փոխարկիչ) գործառույթները վերագրված են հատուկ ստատիկ կապին: Այնուամենայնիվ, դուք կարող եք որոշել, թե որ փիներն են UART, I2C, SPI, PWM և այլն, պարզապես անհրաժեշտ է դրանք վերագրել կոդը: Դա հնարավոր է ESP32 չիպի մուլտիպլեքսավորման հատկության շնորհիվ:
Թեև դուք կարող եք ծրագրաշարի վրա սահմանել քորոցների հատկությունները, կան լռելյայն նշանակված քորոցներ, ինչպես ցույց է տրված հետևյալ նկարում:Բացի այդ, կան հատուկ առանձնահատկություններով քորոցներ, որոնք դրանք դարձնում են համապատասխան կամ ոչ որոշակի նախագծի համար: Հետևյալ աղյուսակը ցույց է տալիս, թե որ կապումներն են լավագույնս օգտագործել որպես մուտքեր, ելքեր, և որոնք պետք է զգույշ լինեք:
Կանաչով ընդգծված քորոցները նորմալ են օգտագործելու համար: Դեղինով ընդգծվածները լավ են օգտագործելու համար, բայց դուք պետք է ուշադրություն դարձնեք, քանի որ դրանք կարող են անսպասելի վարք ունենալ հիմնականում բեռնման ժամանակ: Կարմիրով ընդգծված քորոցները խորհուրդ չի տրվում օգտագործել որպես մուտքեր կամ ելքեր:
GP IO | Մուտքագրում | Արդյունք | Նշումներ |
0 | վեր քաշեց | OK | թողարկում է PWM ազդանշանը բեռնման ժամանակ, պետք է լինի LOW՝ թարթման ռեժիմ մտնելու համար |
1 | TX փին | OK | վրիպազերծել ելքը բեռնման ժամանակ |
2 | OK | OK | միացված է բորտային LED-ին, պետք է լողացող կամ ՑԱԾՐ թողնել՝ թարթման ռեժիմ մտնելու համար |
3 | OK | RX փին | ԲԱՐՁՐ բեռնախցիկում |
4 | OK | OK | |
5 | OK | OK | թողարկում է PWM ազդանշանը բեռնման ժամանակ, ամրագոտի |
12 | OK | OK | բեռնախցիկը ձախողվում է, եթե այն բարձր է քաշվում, ամրացնող քորոց |
13 | OK | OK | |
14 | OK | OK | թողարկում է PWM ազդանշան բեռնման ժամանակ |
15 | OK | OK | թողարկում է PWM ազդանշանը բեռնման ժամանակ, ամրագոտի |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | միայն մուտքագրում | |
35 | OK | միայն մուտքագրում | |
36 | OK | միայն մուտքագրում | |
39 | OK | միայն մուտքագրում |
Շարունակեք կարդալ ESP32 GPIO-ների և դրա գործառույթների ավելի մանրամասն և խորը վերլուծության համար:
Մուտքագրեք միայն կապում
GPIO 34-ից 39-ը GPI-ներ են. մուտքագրում են միայն կապում: Այս քորոցները չունեն ներքին ձգվող կամ իջնող դիմադրություններ: Նրանք չեն կարող օգտագործվել որպես ելքեր, այնպես որ օգտագործեք այս կապում միայն որպես մուտքեր.
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI ֆլեշ ինտեգրված ESP-WROOM-32-ի վրա
GPIO 6-ից մինչև GPIO 11-ը ցուցադրվում են որոշ ESP32 մշակման տախտակներում: Այնուամենայնիվ, այս կապանքները միացված են ESP-WROOM-32 չիպի ինտեգրված SPI ֆլեշին և խորհուրդ չեն տրվում այլ օգտագործման համար: Այսպիսով, մի օգտագործեք այս քորոցները ձեր նախագծերում.
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Capacitive touch GPIO-ներ
ESP32-ն ունի 10 ներքին կոնդենսիվ հպման սենսոր: Դրանք կարող են զգալ տատանումներ այն ամենի մեջ, որը կրում է էլեկտրական լիցք, ինչպես մարդու մաշկը: Այսպիսով, նրանք կարող են հայտնաբերել տատանումները, որոնք առաջանում են GPIO-ներին մատով հպվելիս: Այս քորոցները կարող են հեշտությամբ ինտեգրվել կոնդենսիվ բարձիկների մեջ և փոխարինել մեխանիկական կոճակները: Capacitive touch pin-ները կարող են օգտագործվել նաև ESP32-ը խորը քնից արթնացնելու համար: Այդ ներքին հպման սենսորները միացված են այս GPIO-ներին.
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
Անալոգային թվային փոխարկիչ (ADC)
ESP32-ն ունի 18 x 12 բիթանոց ADC մուտքային ալիքներ (մինչդեռ ESP8266-ն ունի միայն 1x10 բիթ ADC): Սրանք GPIO-ներն են, որոնք կարող են օգտագործվել որպես ADC և համապատասխան ալիքներ.
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
Նշում. ADC2 կապանքները չեն կարող օգտագործվել, երբ օգտագործվում է Wi-Fi: Այսպիսով, եթե դուք օգտվում եք Wi-Fi-ից և դժվարանում եք արժեքը ստանալ ADC2 GPIO-ից, կարող եք փոխարենը մտածել ADC1 GPIO-ի օգտագործման մասին: Դա պետք է լուծի ձեր խնդիրը:
ADC մուտքային ալիքներն ունեն 12-բիթանոց լուծում: Սա նշանակում է, որ դուք կարող եք ստանալ անալոգային ընթերցումներ 0-ից մինչև 4095, որոնցում 0-ը համապատասխանում է 0V-ին և 4095-ից մինչև 3.3V: Դուք կարող եք նաև սահմանել ձեր ալիքների լուծումը կոդի և ADC միջակայքի վրա:
ESP32 ADC քորոցները չունեն գծային վարքագիծ: Դուք, հավանաբար, չեք կարողանա տարբերակել 0-ից 0.1 Վ, կամ 3.2-ից 3.3 Վ-ի միջև: Դուք պետք է հիշեք դա ADC կապում օգտագործելիս: Դուք կստանաք վարքագիծ, որը նման է հետևյալ նկարում ցուցադրվածին:Թվային անալոգային փոխարկիչ (DAC)
ESP2-ում կան 8 x 32 բիթանոց DAC ալիքներ՝ թվային ազդանշանները անալոգային ծավալի վերածելու համարtage ազդանշանի ելքեր. Սրանք DAC ալիքներն են.
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO-ներ
ESP32-ում կա RTC GPIO աջակցություն: RTC ցածր էներգիայի ենթահամակարգին ուղղորդված GPIO-ները կարող են օգտագործվել, երբ ESP32-ը խոր քնի մեջ է: Այս RTC GPIO-ները կարող են օգտագործվել ESP32-ը խորը քնից արթնացնելու համար, երբ ծայրահեղ ցածր է
Power (ULP) համապրոցեսորն աշխատում է: Հետևյալ GPIO-ները կարող են օգտագործվել որպես արտաքին արթնացման աղբյուր:
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
PWM
ESP32 LED PWM կարգավորիչն ունի 16 անկախ ալիք, որոնք կարող են կազմաձևվել տարբեր հատկություններով PWM ազդանշաններ ստեղծելու համար: Բոլոր կապումները, որոնք կարող են հանդես գալ որպես ելքեր, կարող են օգտագործվել որպես PWM կապիչներ (GPIO 34-ից 39-ը չեն կարող ստեղծել PWM):
PWM ազդանշան սահմանելու համար կոդում անհրաժեշտ է սահմանել այս պարամետրերը.
- Ազդանշանի հաճախականությունը;
- Աշխատանքային ցիկլ;
- PWM ալիք;
- GPIO, որտեղ դուք ցանկանում եք ելքային ազդանշան:
I2C
ESP32-ն ունի երկու I2C ալիք և ցանկացած փին կարող է սահմանվել որպես SDA կամ SCL: Arduino IDE-ի հետ ESP32-ն օգտագործելիս լռելյայն I2C փիներն են.
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Եթե ցանկանում եք օգտագործել այլ կապում լարային գրադարանից օգտվելիս, պարզապես անհրաժեշտ է զանգահարել.
Wire.begin (SDA, SCL);
SPI
Լռելյայնորեն, SPI-ի համար փին քարտեզագրումը հետևյալն է.
SPI | ՄՈՍԻ | ՄԻՍՈ | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Ընդհատում է
Բոլոր GPIO-ները կարող են կազմաձևվել որպես ընդհատումներ:
Գոտի կապում
ESP32 չիպն ունի հետևյալ ամրագոտիները.
- GPIO 0 (պետք է ցածր լինի՝ բեռնման ռեժիմ մտնելու համար)
- GPIO 2 (բեռնման ժամանակ պետք է լինի լողացող կամ ցածր)
- GPIO 4
- GPIO 5 (պետք է բարձր լինի բեռնման ժամանակ)
- GPIO 12 (բեռնման ժամանակ պետք է ցածր լինի)
- GPIO 15 (պետք է բարձր լինի բեռնման ժամանակ)
Դրանք օգտագործվում են ESP32-ը bootloader-ի կամ flashing ռեժիմի մեջ դնելու համար: Ներկառուցված USB/Serial-ով ծրագրավորող տախտակների մեծ մասում դուք կարիք չունեք անհանգստանալու այս կապիչների վիճակի մասին: Տախտակը կապում է ճիշտ վիճակում՝ թարթելու կամ բեռնման ռեժիմի համար: ESP32 Boot Mode Selection-ի մասին լրացուցիչ տեղեկություններ կարելի է գտնել այստեղ:
Այնուամենայնիվ, եթե դուք ունեք ծայրամասային սարքեր միացված այդ կապին, դուք կարող եք խնդիրներ ունենալ՝ փորձելով վերբեռնել նոր կոդ, թարթել ESP32-ը նոր որոնվածով կամ վերակայել տախտակը: Եթե դուք որոշ ծայրամասային սարքեր միացված եք կապող կապանքներին, և դուք դժվարանում եք վերբեռնել կոդը կամ թարթել ESP32-ը, դա կարող է պայմանավորված լինել այն պատճառով, որ այդ ծայրամասային սարքերը խանգարում են ESP32-ին մուտք գործել ճիշտ ռեժիմ: Կարդացեք Boot Mode Selection-ի փաստաթղթերը՝ ձեզ ճիշտ ուղղությամբ առաջնորդելու համար: Վերակայումից, թարթումից կամ գործարկումից հետո այդ կապումներն աշխատում են այնպես, ինչպես սպասվում էր:
Բեռնման ժամանակ ամրացնում է HIGH
Որոշ GPIO-ներ փոխում են իրենց վիճակը ԲԱՐՁՐ կամ ելքային PWM ազդանշաններ բեռնման կամ վերակայման ժամանակ:
Սա նշանակում է, որ եթե դուք ունեք ելքեր միացված այս GPIO-ներին, դուք կարող եք անսպասելի արդյունքներ ստանալ, երբ ESP32-ը վերակայվի կամ գործարկվի:
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6-ից մինչև GPIO 11 (միացված է ESP32 ինտեգրված SPI ֆլեշ հիշողությանը. խորհուրդ չի տրվում օգտագործել):
- GPIO 14
- GPIO 15
Միացնել (EN)
Enable (EN)-ը 3.3V կարգավորիչի միացման փին է: Այն վեր է քաշված, այնպես որ միացրեք գետնին, որպեսզի անջատեք 3.3 Վ կարգավորիչը: Սա նշանակում է, որ դուք կարող եք օգտագործել այս փինը՝ կապված կոճակի հետ՝ ձեր ESP32-ը վերագործարկելու համար, օրինակampլե.
GPIO հոսանքը կազմված է
Մեկ GPIO-ի համար գծված բացարձակ առավելագույն հոսանքը 40 մԱ է, համաձայն ESP32 տվյալների թերթիկի «Առաջարկվող գործառնական պայմաններ» բաժնի:
ESP32 Ներկառուցված Hall Effect Sensor
ESP32-ն ունի նաև ներկառուցված սրահի էֆեկտի սենսոր, որը հայտնաբերում է շրջակա միջավայրի մագնիսական դաշտի փոփոխությունները
ESP32 Arduino IDE
Arduino IDE-ի համար կա հավելում, որը թույլ է տալիս ծրագրավորել ESP32-ը՝ օգտագործելով Arduino IDE-ն և դրա ծրագրավորման լեզուն: Այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես տեղադրել ESP32 տախտակը Arduino IDE-ում, անկախ նրանից՝ դուք օգտագործում եք Windows, Mac OS X կամ Linux:
Նախադրյալներ՝ տեղադրված է Arduino IDE
Նախքան տեղադրման այս ընթացակարգը սկսելը, դուք պետք է ունենաք ձեր համակարգչում տեղադրված Arduino IDE-ն: Arduino IDE-ի երկու տարբերակ կա, որը կարող եք տեղադրել՝ 1-ին և 2-րդ տարբերակ:
Դուք կարող եք ներբեռնել և տեղադրել Arduino IDE-ը՝ սեղմելով հետևյալ հղման վրա. arduino.cc/en/Main/Software
Ո՞ր Arduino IDE տարբերակն ենք առաջարկում: Այս պահին կան plugins ESP32-ի համար (ինչպես SPIFFS Filesystem Uploader Plugin), որոնք դեռ չեն աջակցվում Arduino 2-ում: Այսպիսով, եթե մտադիր եք ապագայում օգտագործել SPIFFS plugin-ը, խորհուրդ ենք տալիս տեղադրել հին տարբերակը 1.8.X: Այն գտնելու համար պարզապես անհրաժեշտ է ոլորել ներքև Arduino ծրագրաշարի էջում:
ESP32 հավելման տեղադրում Arduino IDE-ում
ESP32 տախտակը ձեր Arduino IDE-ում տեղադրելու համար հետևեք հետևյալ հրահանգներին.
- Ձեր Arduino IDE-ում անցեք File> Նախապատվություններ
- Մուտքագրեք հետևյալը «Լրացուցիչ խորհրդի կառավարիչ URLs» դաշտը:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Այնուհետև սեղմեք «OK» կոճակը.Նշում. եթե դուք արդեն ունեք ESP8266 տախտակներ URL, կարող եք առանձնացնել URLs ստորակետով հետևյալ կերպ.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Բացեք խորհուրդների կառավարիչը: Գնացեք Գործիքներ > Տախտակ > Տախտակների կառավարիչ…Որոնել ESP32 and press install button for the “ESP32 by Espressif Systems“:
վերջ։ Այն պետք է տեղադրվի մի քանի վայրկյան հետո:
Վերբեռնեք թեստի կոդը
Միացրեք ESP32 տախտակը ձեր համակարգչին: Երբ ձեր Arduino IDE-ն բաց է, հետևեք հետևյալ քայլերին.
- Ընտրեք ձեր տախտակը Tools > Board մենյուում (իմ դեպքում դա ESP32 DEV մոդուլն է):
- Ընտրեք նավահանգիստը (եթե չեք տեսնում COM պորտը ձեր Arduino IDE-ում, դուք պետք է տեղադրեք CP210x USB-ը UART Bridge VCP վարորդներին):
- Բացեք հետևյալ օրինակըample տակ File > Օրինակamples > WiFi
(ESP32) > WiFiScan - Ձեր Arduino IDE-ում բացվում է նոր ուրվագիծ.
- Սեղմեք «Վերբեռնում» կոճակը Arduino IDE-ում: Սպասեք մի քանի վայրկյան, մինչև կոդը կազմվի և վերբեռնվի ձեր տախտակ:
- Եթե ամեն ինչ ստացվեց այնպես, ինչպես սպասվում էր, դուք պետք է տեսնեք «Վերբեռնումը ավարտված է»: հաղորդագրություն։
- Բացեք Arduino IDE սերիական մոնիտորը 115200 բուդ արագությամբ:
- Սեղմեք ESP32-ի միացնել միացնել կոճակը և կտեսնեք ձեր ESP32-ի մոտ հասանելի ցանցերը.
Անսարքությունների վերացում
Եթե փորձեք նոր ուրվագիծ վերբեռնել ձեր ESP32-ում և կստանաք այս սխալի հաղորդագրությունը «Տեղի է ունեցել ճակատագրական սխալ. Չհաջողվեց միանալ ESP32-ին. սպառվել է… Միացում…»: Դա նշանակում է, որ ձեր ESP32-ը չի գտնվում թարթման/բեռնման ռեժիմում:
Ընտրելով տախտակի ճիշտ անունը և COM-ը, հետևեք հետևյալ քայլերին.
Ձեր ESP32 տախտակի վրա սեղմած պահեք «BOOT» կոճակը
- Սեղմեք «Վերբեռնում» կոճակը Arduino IDE-ում ձեր էսքիզը վերբեռնելու համար.
- Այն բանից հետո, երբ կտեսնեք «Միացում…»: հաղորդագրություն ձեր Arduino IDE-ում, ազատեք մատը «BOOT» կոճակից.
- Դրանից հետո դուք պետք է տեսնեք «Վերբեռնումը ավարտված է» հաղորդագրությունը
վերջ։ Ձեր ESP32-ում պետք է գործարկվի նոր ուրվագիծը: Սեղմեք «ENABLE» կոճակը՝ ESP32-ը վերագործարկելու և նոր վերբեռնված ուրվագիծը գործարկելու համար:
Դուք նաև ստիպված կլինեք կրկնել կոճակների այդ հաջորդականությունը ամեն անգամ, երբ ցանկանում եք վերբեռնել նոր էսքիզ:
Նախագիծ 1 ESP32 Մուտքային ելքեր
Այս մեկնարկային ուղեցույցում դուք կսովորեք, թե ինչպես կարդալ թվային մուտքերը կոճակի անջատիչի նման և կառավարել թվային ելքերը, ինչպես LED-ը, օգտագործելով ESP32 Arduino IDE-ով:
Նախադրյալներ
Մենք կծրագրավորենք ESP32-ը՝ օգտագործելով Arduino IDE: Այսպիսով, նախքան շարունակելը համոզվեք, որ տեղադրված եք ESP32 տախտակների հավելումը.
- ESP32 հավելման տեղադրում Arduino IDE-ում
ESP32 Վերահսկիչ թվային ելքեր
Նախ, դուք պետք է սահմանեք GPIO-ն, որը ցանկանում եք վերահսկել որպես OUTPUT: Օգտագործեք pinMode() ֆունկցիան հետևյալ կերպ.
pinMode (GPIO, OUTPUT);
Թվային ելքը կառավարելու համար պարզապես անհրաժեշտ է օգտագործել digitalWrite() ֆունկցիան, որն ընդունում է որպես արգումենտ, GPIO-ն (int համարը), որին ակնարկում եք, և վիճակը՝ HIGH կամ LOW:
digitalWrite (GPIO, STATE);
Բոլոր GPIO-ները կարող են օգտագործվել որպես ելքեր, բացառությամբ GPIO 6-ից 11-ի (միացված է ինտեգրված SPI ֆլեշ-ին) և GPIO-ների 34, 35, 36 և 39 (մուտքագրել միայն GPIO-ները);
Իմացեք ավելին ESP32 GPIO-ների մասին. ESP32 GPIO Reference Guide
ESP32 Կարդալ թվային մուտքեր
Նախ, սահմանեք GPIO-ն, որը ցանկանում եք կարդալ որպես INPUT՝ օգտագործելով pinMode() ֆունկցիան հետևյալ կերպ.
pinMode (GPIO, INPUT);
Թվային մուտքագրումը, կոճակի նման, կարդալու համար դուք օգտագործում եք digitalRead() ֆունկցիան, որն ընդունում է որպես փաստարկ GPIO (int համարը), որին ակնարկում եք:
digitalRead (GPIO);
Բոլոր ESP32 GPIO-ները կարող են օգտագործվել որպես մուտքեր, բացառությամբ GPIO 6-ից 11-ի (միացված է ինտեգրված SPI ֆլեշ-ին):
Իմացեք ավելին ESP32 GPIO-ների մասին. ESP32 GPIO Reference Guide
Նախագիծ Example
Ցույց տալու համար, թե ինչպես օգտագործել թվային մուտքերը և թվային ելքերը, մենք կկառուցենք մի պարզ նախագիծ, օրինակampկոճակով և լուսադիոդով: Մենք կկարդանք կոճակի վիճակը և համապատասխանաբար կվառենք լուսադիոդը, ինչպես ցույց է տրված հետևյալ նկարում:
Պահանջվող մասեր
Ահա այն մասերի ցանկը, որոնք ձեզ անհրաժեշտ են շղթան կառուցելու համար.
- ESP32 DEVKIT V1
- 5 մմ LED
- 220 Օմ դիմադրություն
- Պուշբութոն
- 10k Ohm դիմադրություն
- Breadboard
- Jumper մետաղալարեր
Սխեմատիկ դիագրամ
Նախքան շարունակելը, դուք պետք է միացում հավաքեք LED-ով և կոճակով:
Մենք LED-ը միացնելու ենք GPIO 5-ին, իսկ սեղմակը՝ GPIO-ին 4.Կոդ
Բացեք Project_1_ESP32_Inputs_Outputs.ino կոդը arduino IDE-ումԻնչպես է աշխատում օրենսգիրքը
Հետևյալ երկու տողերում դուք ստեղծում եք փոփոխականներ՝ կապին նշանակելու համար.
Կոճակը միացված է GPIO 4-ին, իսկ LED-ը միացված է GPIO 5-ին: Arduino IDE-ն ESP32-ով օգտագործելիս 4-ը համապատասխանում է GPIO 4-ին, իսկ 5-ը՝ GPIO 5-ին:
Հաջորդը, դուք ստեղծում եք փոփոխական՝ կոճակի վիճակը պահելու համար: Լռելյայնորեն այն 0 է (սեղմված չէ):
int buttonState = 0;
Setup()-ում դուք նախաստորագրում եք կոճակը որպես INPUT, իսկ LED-ը՝ որպես OUTPUT:
Դրա համար դուք օգտագործում եք pinMode() ֆունկցիան, որն ընդունում է ձեր նշած փին-ը, և ռեժիմը՝ INPUT կամ OUTPUT:
pinMode (կոճակPin, INPUT);
pinMode (ledPin, OUTPUT);
Loop()-ում այն տեղն է, որտեղ դուք կարդում եք կոճակի վիճակը և համապատասխանաբար սահմանում LED-ը:
Հաջորդ տողում դուք կարդում եք կոճակի վիճակը և պահում այն buttonState փոփոխականում:
Ինչպես նախկինում տեսանք, դուք օգտագործում եք digitalRead() ֆունկցիան:
buttonState = digitalRead (buttonPin);
Հետևյալ if հայտարարությունը ստուգում է, թե արդյոք կոճակի վիճակը ԲԱՐՁՐ է: Եթե այդպես է, ապա այն միացնում է LED-ը՝ օգտագործելով digitalWrite() ֆունկցիան, որն ընդունում է որպես արգումենտ ledPin-ը և HIGH վիճակը:
եթե (buttonState == ԲԱՐՁՐ)Եթե կոճակի վիճակը ԲԱՐՁՐ չէ, դուք անջատում եք լուսադիոդը: Պարզապես սահմանեք LOW որպես երկրորդ արգումենտ digitalWrite() ֆունկցիայի մեջ:
Կոդի բեռնում
Վերբեռնման կոճակը սեղմելուց առաջ գնացեք Tools > Board և ընտրեք :DOIT ESP32 DEVKIT V1 տախտակը:
Գնացեք Tools > Port և ընտրեք COM պորտը, որին միացված է ESP32-ը: Այնուհետև սեղմեք վերբեռնման կոճակը և սպասեք «Վերբեռնված է» հաղորդագրությանը:Նշում. Եթե վրիպազերծման պատուհանում տեսնում եք շատ կետեր (միացող…__…__) և «Չհաջողվեց միանալ ESP32-ին. սպառվել է փաթեթի վերնագրի սպասման ժամկետը» հաղորդագրությունը, դա նշանակում է, որ դուք պետք է սեղմեք ESP32-ի BOOT կոճակը: կոճակը կետերից հետո
սկսել երևալ:Խնդիրների վերացում
Ցույց
Կոդը բեռնելուց հետո փորձարկեք ձեր միացումը: Ձեր լուսադիոդը պետք է լուսավորվի, երբ սեղմում եք կոճակը.Եվ անջատեք այն, երբ թողարկեք այն.
Նախագիծ 2 ESP32 անալոգային մուտքեր
Այս նախագիծը ցույց է տալիս, թե ինչպես կարելի է կարդալ անալոգային մուտքերը ESP32-ով Arduino IDE-ի միջոցով:
Անալոգային ընթերցումը օգտակար է փոփոխական ռեզիստորներից արժեքներ կարդալու համար, ինչպիսիք են պոտենցիոմետրերը կամ անալոգային սենսորները:
Անալոգային մուտքեր (ADC)
ESP32-ով անալոգային արժեք կարդալը նշանակում է, որ կարող եք չափել տարբեր ծավալtage մակարդակները 0 Վ-ից 3.3 Վ-ի միջև:
ՀատորըtagՉափված e-ն այնուհետև վերագրվում է 0-ի և 4095-ի միջև ընկած արժեքի, որտեղ 0 Վ-ը համապատասխանում է 0-ին, իսկ 3.3 Վ-ը՝ 4095-ի: Ցանկացած ծավալtage 0 V-ի և 3.3 V-ի միջև ընկած ժամանակահատվածում կտրվի համապատասխան արժեքը:ADC-ն ոչ գծային է
Իդեալում, դուք ակնկալում եք գծային վարքագիծ ESP32 ADC կապում օգտագործելիս:
Այնուամենայնիվ, դա տեղի չի ունենում: Այն, ինչ դուք կստանաք, վարքագիծ է, ինչպես ցույց է տրված հետևյալ գծապատկերում.Այս պահվածքը նշանակում է, որ ձեր ESP32-ը չի կարողանում տարբերել 3.3 Վ-ը 3.2 Վ-ից:
Դուք կստանաք նույն արժեքը երկու հատորների համարtages: 4095:
Նույնը տեղի է ունենում շատ ցածր ծավալի դեպքումtage արժեքներ. 0 Վ-ի և 0.1 Վ-ի համար դուք կստանաք նույն արժեքը՝ 0: Դուք պետք է հիշեք սա ESP32 ADC կապումներն օգտագործելիս:
analogRead() ֆունկցիա
ESP32-ով անալոգային մուտքագրումը Arduino IDE-ի միջոցով կարդալը նույնքան պարզ է, որքան analogRead() ֆունկցիան օգտագործելը: Այն ընդունում է որպես փաստարկ GPIO-ն, որը ցանկանում եք կարդալ.
analogRead (GPIO);
Միայն 15-ն է հասանելի DEVKIT V1 տախտակում (տարբերակ 30 GPIO-ով):
Ձեռք բերեք ձեր ESP32 տախտակի գագաթնակետը և գտնեք ADC կապերը: Դրանք ընդգծված են ստորև նկարում կարմիր եզրագծով:Այս անալոգային մուտքային կապումներն ունեն 12-բիթանոց լուծում: Սա նշանակում է, որ երբ դուք կարդում եք անալոգային մուտքագրում, դրա միջակայքը կարող է տատանվել 0-ից մինչև 4095:
Նշում. ADC2 փիները չեն կարող օգտագործվել, երբ օգտագործվում է Wi-Fi: Այսպիսով, եթե դուք օգտվում եք Wi-Fi-ից և դժվարանում եք արժեքը ստանալ ADC2 GPIO-ից, դրա փոխարեն կարող եք մտածել ADC1 GPIO-ի օգտագործման մասին, որը պետք է լուծի ձեր խնդիրը:
Տեսնելու համար, թե ինչպես է ամեն ինչ կապված, մենք կկազմենք պարզ նախկինample է կարդալ անալոգային արժեքը պոտենցիոմետրից:
Պահանջվող մասեր
Այս նախկինի համարample, ձեզ անհրաժեշտ են հետևյալ մասերը.
- ESP32 DEVKIT V1 տախտակ
- Potentiometer
- Breadboard
- Jumper մետաղալարեր
Սխեմատիկ
Միացրեք պոտենցիոմետր ձեր ESP32-ին: Պոտենցիոմետրի միջին փին պետք է միացված լինի GPIO 4-ին: Որպես հղում կարող եք օգտագործել հետևյալ սխեմատիկ դիագրամը:Կոդ
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Բացեք Project_2_ESP32_Inputs_Outputs.ino կոդը arduino IDE-ումԱյս կոդը պարզապես կարդում է արժեքները պոտենցիոմետրից և տպում այդ արժեքները Սերիական մոնիտորում:
Կոդում դուք սկսում եք սահմանելով GPIO-ը, որին միացված է պոտենցիոմետրը: Այս նախկինումample, GPIO 4.Setup()-ում սկզբնավորեք սերիական հաղորդակցությունը 115200 բուդ արագությամբ:
Loop()-ում օգտագործեք analogRead() ֆունկցիան՝ potPin-ից անալոգային մուտքագրումը կարդալու համար:
Վերջապես տպեք սերիական մոնիտորի պոտենցիոմետրից կարդացված արժեքները:
Վերբեռնեք տրամադրված կոդը ձեր ESP32-ում: Համոզվեք, որ ընտրված եք ճիշտ տախտակը և COM պորտը Գործիքներ ցանկում:
Փորձարկում Նախample
Կոդը բեռնելուց և ESP32-ի վերակայման կոճակը սեղմելուց հետո բացեք Serial Monitor-ը 115200 բուդ արագությամբ: Պտտեք պոտենցիոմետրը և տեսեք, որ արժեքները փոխվում են:Առավելագույն արժեքը, որը դուք կստանաք, 4095 է, իսկ նվազագույն արժեքը 0 է:
Փաթաթում
Այս հոդվածում դուք սովորել եք, թե ինչպես կարդալ անալոգային մուտքերը՝ օգտագործելով ESP32-ը Arduino IDE-ով: Ամփոփելով.
- ESP32 DEVKIT V1 DOIT տախտակը (տարբերակը՝ 30 կապում) ունի 15 ADC կապում, որոնք կարող եք օգտագործել անալոգային մուտքերը կարդալու համար:
- Այս կապումներն ունեն 12 բիթ թույլտվություն, ինչը նշանակում է, որ կարող եք արժեքներ ստանալ 0-ից մինչև 4095:
- Arduino IDE-ում արժեք կարդալու համար դուք պարզապես օգտագործում եք analogRead() ֆունկցիան:
- ESP32 ADC քորոցները չունեն գծային վարքագիծ: Դուք, հավանաբար, չեք կարողանա տարբերակել 0-ից 0.1 Վ, կամ 3.2-ից 3.3 Վ-ի միջև: Դուք պետք է հիշեք դա ADC կապում օգտագործելիս:
Project 3 ESP32 PWM (անալոգային ելք)
Այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես ստեղծել PWM ազդանշաններ ESP32-ով Arduino IDE-ի միջոցով: Որպես նախկինampՄենք կկառուցենք մի պարզ միացում, որը խամրեցնում է LED-ը՝ օգտագործելով ESP32-ի LED PWM կարգավորիչը:ESP32 LED PWM վերահսկիչ
ESP32-ն ունի LED PWM կարգավորիչ՝ 16 անկախ ալիքներով, որոնք կարող են կազմաձևվել տարբեր հատկություններով PWM ազդանշաններ ստեղծելու համար:
Ահա այն քայլերը, որոնք դուք պետք է հետևեք՝ Arduino IDE-ի միջոցով LED-ը PWM-ով թուլացնելու համար.
- Նախ, դուք պետք է ընտրեք PWM ալիք: Կան 16 ալիքներ 0-ից 15:
- Այնուհետև անհրաժեշտ է սահմանել PWM ազդանշանի հաճախականությունը: LED-ի համար 5000 Հց հաճախականությունը լավ է օգտագործել:
- Դուք նաև պետք է սահմանեք ազդանշանի աշխատանքային ցիկլի լուծումը. դուք ունեք 1-ից մինչև 16 բիթ լուծումներ: Մենք կօգտագործենք 8-բիթանոց լուծում, ինչը նշանակում է, որ դուք կարող եք վերահսկել LED պայծառությունը՝ օգտագործելով 0-ից 255 արժեք:
- Հաջորդը, դուք պետք է նշեք, թե որ GPIO-ին կամ GPIO-ներին կհայտնվի ազդանշանը: Դրա համար դուք կօգտագործեք հետևյալ գործառույթը.
ledcAttachPin (GPIO, ալիք)
Այս ֆունկցիան ընդունում է երկու արգումենտ։ Առաջինը GPIO-ն է, որը կարտադրի ազդանշանը, իսկ երկրորդը այն ալիքն է, որը կստեղծի ազդանշան: - Ի վերջո, LED պայծառությունը PWM-ի միջոցով կառավարելու համար դուք օգտագործում եք հետևյալ գործառույթը.
ledcWrite (ալիք, dutycycle)
Այս ֆունկցիան որպես արգումենտ ընդունում է PWM ազդանշանը ստեղծող ալիքը և աշխատանքային ցիկլը:
Պահանջվող մասեր
Այս ձեռնարկին հետևելու համար ձեզ հարկավոր են հետևյալ մասերը.
- ESP32 DEVKIT V1 տախտակ
- 5 մմ LED
- 220 Օմ դիմադրություն
- Breadboard
- Jumper մետաղալարեր
Սխեմատիկ
Միացրեք LED-ը ձեր ESP32-ին, ինչպես հետևյալ սխեմատիկ դիագրամում: LED-ը պետք է միացված լինի GPIO-ին 4.Նշում. դուք կարող եք օգտագործել ցանկացած փին, որը ցանկանում եք, քանի դեռ այն կարող է հանդես գալ որպես արդյունք: Բոլոր կապումները, որոնք կարող են հանդես գալ որպես ելքեր, կարող են օգտագործվել որպես PWM կապում: ESP32 GPIO-ների մասին լրացուցիչ տեղեկությունների համար կարդացեք.
Կոդ
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Բացեք Project_3_ESP32_PWM.ino կոդը arduino IDE-ումԴուք սկսում եք սահմանելով այն քորոցը, որին կցված է LED-ը: Այս դեպքում LED-ը կցվում է GPIO 4-ին:
Այնուհետև սահմանում եք PWM ազդանշանի հատկությունները: Դուք սահմանում եք 5000 Հց հաճախականություն, ընտրում եք 0 ալիքը ազդանշան ստեղծելու համար և սահմանում եք 8 բիթ լուծում: Դուք կարող եք ընտրել այլ հատկություններ, որոնք տարբերվում են դրանցից, տարբեր PWM ազդանշաններ ստեղծելու համար:
Setup()-ում դուք պետք է կազմաձևեք LED PWM-ն այն հատկություններով, որոնք դուք նախանշել եք ավելի վաղ՝ օգտագործելով ledcSetup() ֆունկցիան, որն ընդունում է որպես արգումենտներ, ledChannel-ը, հաճախականությունը և լուծումը հետևյալ կերպ.
Հաջորդը, դուք պետք է ընտրեք GPIO-ն, որից ազդանշանը կստանաք: Դրա համար օգտագործեք ledcAttachPin() ֆունկցիան, որն ընդունում է որպես արգումենտ GPIO-ն, որտեղ ցանկանում եք ստանալ ազդանշանը, և այն ալիքը, որը ազդանշան է առաջացնում: Այս նախկինումample, մենք կստանանք ազդանշան ledPin GPIO-ում, որը համապատասխանում է GPIO 4-ին: Ազդանշանը ստեղծող ալիքը ledChannel-ն է, որը համապատասխանում է 0-րդ ալիքին:
Օղակում դուք կփոխեք աշխատանքային ցիկլը 0-ից 255-ի միջև՝ LED պայծառությունը բարձրացնելու համար:
Եվ հետո՝ 255-ի և 0-ի միջև՝ պայծառությունը նվազեցնելու համար:
LED-ի պայծառությունը սահմանելու համար պարզապես անհրաժեշտ է օգտագործել ledcWrite() ֆունկցիան, որն ընդունում է որպես արգումենտ ազդանշան արտադրող ալիքը և աշխատանքային ցիկլը:
Քանի որ մենք օգտագործում ենք 8-բիթանոց լուծում, աշխատանքային ցիկլը կվերահսկվի՝ օգտագործելով 0-ից մինչև 255 արժեք: Նկատի ունեցեք, որ ledcWrite() ֆունկցիայում մենք օգտագործում ենք ազդանշանը ստեղծող ալիքը, և ոչ թե GPIO:
Փորձարկում Նախample
Վերբեռնեք կոդը ձեր ESP32-ում: Համոզվեք, որ ընտրված եք ճիշտ տախտակը և COM պորտը: Նայեք ձեր շրջանին: Դուք պետք է ունենաք լուսադիոդ, որը մեծացնում և նվազեցնում է պայծառությունը:
Project 4 ESP32 PIR շարժման ցուցիչ
Այս նախագիծը ցույց է տալիս, թե ինչպես կարելի է հայտնաբերել շարժումը ESP32-ի միջոցով՝ օգտագործելով PIR շարժման սենսորը: Զնգիչը ազդանշան կհնչեցնի, երբ շարժումը հայտնաբերվի, և կդադարեցնի ահազանգը, երբ որևէ շարժում չի հայտնաբերվի նախապես սահմանված ժամանակով (օրինակ՝ 4 վայրկյան):
Ինչպես է աշխատում HC-SR501 շարժման ցուցիչը
.HC-SR501 սենսորի աշխատանքի սկզբունքը հիմնված է շարժվող օբյեկտի վրա ինֆրակարմիր ճառագայթման փոփոխության վրա: HC-SR501 սենսորի կողմից հայտնաբերման համար օբյեկտը պետք է բավարարի երկու պահանջ.
- Օբյեկտը արձակում է ինֆրակարմիր ճանապարհը:
- Օբյեկտը շարժվում է կամ ցնցվում
Այսպիսով.
Եթե առարկան արձակում է ինֆրակարմիր ճառագայթ, բայց չի շարժվում (օրինակ՝ մարդը կանգնում է առանց շարժվելու), այն չի հայտնաբերվում սենսորի կողմից:
Եթե օբյեկտը շարժվում է, բայց չի արձակում ինֆրակարմիր ճառագայթ (օրինակ՝ ռոբոտը կամ մեքենան), այն ՉԻ հայտնաբերվում սենսորի կողմից:
Ներկայացնում ենք ժամանակաչափերը
Այս նախկինումampՄենք նաև կներկայացնենք ժամանակաչափեր: Մենք ցանկանում ենք, որ LED-ը միացված մնա շարժման հայտնաբերումից հետո կանխորոշված վայրկյանների քանակով: Delay() ֆունկցիան օգտագործելու փոխարեն, որն արգելափակում է ձեր կոդը և թույլ չի տալիս որևէ այլ բան անել որոշակի վայրկյանների ընթացքում, մենք պետք է օգտագործենք ժամանակաչափ:Delay() ֆունկցիան
Դուք պետք է ծանոթ լինեք delay() ֆունկցիային, քանի որ այն լայնորեն օգտագործվում է: Այս գործառույթը բավականին պարզ է օգտագործելու համար: Այն ընդունում է մեկ int թիվը որպես փաստարկ:
Այս թիվը ներկայացնում է այն ժամանակը միլիվայրկյաններով, երբ ծրագիրը պետք է սպասի մինչև կոդերի հաջորդ տողին անցնելը:Երբ դուք ուշացնում եք (1000), ձեր ծրագիրը դադարում է այդ տողում 1 վայրկյանով:
delay()-ը արգելափակող ֆունկցիա է: Արգելափակման գործառույթները թույլ չեն տալիս ծրագրին որևէ այլ բան անել, քանի դեռ այդ առաջադրանքը չի ավարտվել: Եթե Ձեզ անհրաժեշտ է, որ մի քանի առաջադրանքներ կատարվեն միաժամանակ, դուք չեք կարող օգտագործել delay():
Նախագծերի մեծ մասի համար դուք պետք է խուսափեք ուշացումներից և փոխարենը օգտագործեք ժամանակաչափեր:
millis() ֆունկցիան
Օգտագործելով millis() կոչվող ֆունկցիան՝ կարող եք վերադարձնել ծրագրի առաջին մեկնարկից անցած միլիվայրկյանների թիվը:Ինչու է այդ գործառույթը օգտակար: Քանի որ օգտագործելով որոշ մաթեմատիկա, դուք հեշտությամբ կարող եք ստուգել, թե որքան ժամանակ է անցել առանց ձեր ծածկագիրը արգելափակելու:
Պահանջվող մասեր
Այս ձեռնարկին հետևելու համար ձեզ անհրաժեշտ են հետևյալ մասերը
- ESP32 DEVKIT V1 տախտակ
- PIR շարժման սենսոր (HC-SR501)
- Ակտիվ Buzzer
- Jumper մետաղալարեր
- Breadboard
ՍխեմատիկՆշում. Աշխատանքային հատորtagHC-SR501-ի e-ն 5 Վ է: Օգտագործեք Vin փին այն միացնելու համար:
Կոդ
Նախքան այս ձեռնարկին անցնելը, դուք պետք է տեղադրեք ESP32 հավելումը ձեր Arduino IDE-ում: Հետևեք հետևյալ ձեռնարկներից մեկին՝ ESP32-ը Arduino IDE-ում տեղադրելու համար, եթե դեռ չեք արել: (Եթե արդեն արել եք այս քայլը, կարող եք բաց թողնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Բացեք Project_4_ESP32_PIR_Motion_Sensor.ino կոդը arduino IDE-ում:
Ցույց
Վերբեռնեք կոդը ձեր ESP32 տախտակին: Համոզվեք, որ ընտրված եք ճիշտ տախտակը և COM միացքը: Վերբեռնեք կոդը հղումային քայլերը:
Բացեք սերիական մոնիտորը 115200 բուդ արագությամբ:Տեղափոխեք ձեր ձեռքը PIR սենսորի դիմաց: Զնգիչը պետք է միանա, և հաղորդագրությունը տպագրվում է Սերիական մոնիտորում՝ ասելով «Շարժումը հայտնաբերվեց: Զարթուցիչի ազդանշան»:
4 վայրկյան հետո ազդանշանը պետք է անջատվի:
Նախագիծ 5 ESP32 անջատիչ Web Սերվեր
Այս նախագծում դուք կստեղծեք ինքնուրույն web սերվեր ESP32-ով, որը վերահսկում է ելքերը (երկու LED), օգտագործելով Arduino IDE ծրագրավորման միջավայրը: Այն web սերվերը պատասխանատու է շարժական սարքերի համար և կարող է մուտք գործել ցանկացած սարքով, որը որպես բրաուզեր տեղական ցանցում: Մենք ձեզ ցույց կտանք, թե ինչպես ստեղծել web սերվեր և ինչպես է կոդը աշխատում քայլ առ քայլ:
Նախագիծն ավարտված էview
Նախքան նախագծին անմիջապես անցնելը, կարևոր է ուրվագծել մեր web սերվերը կանի, որպեսզի հետագայում ավելի հեշտ լինի հետևել քայլերին:
- Այն web սերվերը, որը դուք կստեղծեք, կառավարում է երկու լուսադիոդ՝ կապված ESP32 GPIO 26-ին և GPIO 27-ին;
- Դուք կարող եք մուտք գործել ESP32 web սերվեր՝ մուտքագրելով ESP32 IP հասցեն տեղական ցանցի բրաուզերի վրա.
- Սեղմելով կոճակները ձեր web սերվեր, դուք կարող եք ակնթարթորեն փոխել յուրաքանչյուր LED-ի վիճակը:
Պահանջվող մասեր
Այս ձեռնարկի համար ձեզ հարկավոր են հետևյալ մասերը.
- ESP32 DEVKIT V1 տախտակ
- 2x5 մմ LED
- 2 x 200 Օմ դիմադրություն
- Breadboard
- Jumper մետաղալարեր
Սխեմատիկ
Սկսեք շղթայի կառուցմամբ: Միացրեք երկու LED ESP32-ին, ինչպես ցույց է տրված հետևյալ սխեմատիկ գծապատկերում. մեկը LED-ը միացված է GPIO 26-ին, իսկ մյուսը՝ GPIO 27-ին:
Նշում. Մենք օգտագործում ենք ESP32 DEVKIT DOIT տախտակը 36 պինով: Նախքան շղթան հավաքելը, համոզվեք, որ ստուգեք ձեր օգտագործած տախտակի պինոտը:Կոդ
Այստեղ մենք տրամադրում ենք ESP32-ը ստեղծող կոդը web սերվեր. Բացեք Project_5_ESP32_Switch ծածկագիրըWeb_Server.ino arduino IDE-ում, բայց դեռ մի վերբեռնեք այն: Դուք պետք է որոշ փոփոխություններ կատարեք, որպեսզի այն աշխատի ձեզ համար:
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Ձեր ցանցի հավատարմագրերի կարգավորումը
Դուք պետք է փոփոխեք հետևյալ տողերը ձեր ցանցի հավատարմագրերի հետ՝ SSID և գաղտնաբառը: Կոդը լավ մեկնաբանված է, թե որտեղ պետք է փոփոխություններ կատարեք:Կոդի բեռնում
Այժմ կարող եք վերբեռնել կոդը և և web սերվերը անմիջապես կաշխատի:
Կոդը ESP32-ում վերբեռնելու համար հետևեք հետևյալ քայլերին.
- Միացրեք ձեր ESP32 տախտակը ձեր համակարգչին;
- Arduino IDE-ում ընտրեք ձեր տախտակը Tools > Board (մեր դեպքում մենք օգտագործում ենք ESP32 DEVKIT DOIT տախտակը);
- Ընտրեք COM պորտը Գործիքներ > Պորտ:
- Սեղմեք «Վերբեռնում» կոճակը Arduino IDE-ում և սպասեք մի քանի վայրկյան, մինչև կոդը կազմվի և վերբեռնվի ձեր տախտակ:
- Սպասեք «Վերբեռնումն ավարտված է» հաղորդագրությանը:
Գտնելով ESP IP հասցեն
Կոդը բեռնելուց հետո բացեք Serial Monitor-ը 115200 բուդ արագությամբ:Սեղմեք ESP32 EN կոճակը (վերակայել): ESP32-ը միանում է Wi-Fi-ին և թողարկում է ESP IP հասցեն Սերիական մոնիտորին: Պատճենեք այդ IP հասցեն, քանի որ այն ձեզ անհրաժեշտ է ESP32 մուտք գործելու համար web սերվեր.
Մուտք գործելով Web Սերվեր
Մուտք գործելու համար web սերվեր, բացեք ձեր բրաուզերը, տեղադրեք ESP32 IP հասցեն և կտեսնեք հետևյալ էջը:
Նշում. Ձեր զննարկիչը և ESP32-ը պետք է միացված լինեն նույն LAN-ին:Եթե նայեք Սերիական մոնիտորին, կարող եք տեսնել, թե ինչ է կատարվում հետին պլանում: ESP-ն HTTP հարցում է ստանում նոր հաճախորդից (այս դեպքում՝ ձեր դիտարկիչից):
Դուք կարող եք նաև տեսնել այլ տեղեկություններ HTTP հարցման մասին:
Ցույց
Այժմ դուք կարող եք ստուգել, թե արդյոք ձեր web սերվերը ճիշտ է աշխատում: Սեղմեք կոճակները՝ LED-ները կառավարելու համար:Միևնույն ժամանակ, դուք կարող եք մի հայացք նետել Սերիական մոնիտորին, որպեսզի տեսնեք, թե ինչ է կատարվում հետին պլանում: ՆախampԵրբ սեղմում եք կոճակը՝ GPIO 26-ը միացնելու համար, ESP32-ը հարցում է ստանում /26/on-ով: URL.
Երբ ESP32-ը ստանում է այդ հարցումը, այն միացնում է GPIO 26-ին կցված լուսադիոդը և թարմացնում դրա վիճակը web էջ.
GPIO 27-ի կոճակը նույն կերպ է աշխատում: Ստուգեք, որ այն ճիշտ է աշխատում:
Ինչպես է աշխատում օրենսգիրքը
Այս բաժնում ավելի մանրամասն կանդրադառնա կոդը՝ տեսնելու, թե ինչպես է այն աշխատում:
Առաջին բանը, որ դուք պետք է անեք, WiFi գրադարանը ներառելն է:Ինչպես նշվեց նախկինում, դուք պետք է տեղադրեք ձեր ssid-ը և գաղտնաբառը հետևյալ տողերում՝ կրկնակի չակերտների ներսում:
Այնուհետև դուք սահմանում եք ձեր web սերվեր դեպի 80 նավահանգիստ:
Հետևյալ տողը փոփոխական է ստեղծում HTTP հարցումի վերնագիրը պահելու համար.
Հաջորդը, դուք ստեղծում եք օժանդակ փոփոխականներ՝ ձեր ելքերի ընթացիկ վիճակը պահելու համար: Եթե ցանկանում եք ավելացնել ավելի շատ արդյունքներ և պահպանել դրա վիճակը, դուք պետք է ավելի շատ փոփոխականներ ստեղծեք:
Դուք նաև պետք է նշանակեք GPIO ձեր յուրաքանչյուր արդյունքին: Այստեղ մենք օգտագործում ենք GPIO 26 և GPIO 27: Դուք կարող եք օգտագործել ցանկացած այլ հարմար GPIO:
կարգավորում ()
Հիմա եկեք անցնենք setup(). Նախ՝ մենք սկսում ենք սերիական հաղորդակցություն 115200 բուդ արագությամբ՝ վրիպազերծման նպատակով:Դուք նաև սահմանում եք ձեր GPIO-ները որպես OUTPUT և սահմանում դրանք LOW:
Հետևյալ տողերը սկսում են Wi-Fi կապը WiFi.begin-ով (ssid, գաղտնաբառ), սպասեք հաջող միացման և տպեք ESP IP հասցեն Serial Monitor-ում:
հանգույց ()
Loop()-ում մենք ծրագրավորում ենք, թե ինչ է տեղի ունենում, երբ նոր հաճախորդը կապ է հաստատում the-ի հետ web սերվեր.
ESP32-ը միշտ լսում է մուտքային հաճախորդներին հետևյալ տողով.Երբ հաճախորդից հարցում է ստացվում, մենք կպահենք մուտքային տվյալները: Հետևյալ while հանգույցը կաշխատի այնքան ժամանակ, քանի դեռ հաճախորդը միացված է: Մենք խորհուրդ չենք տալիս փոխել կոդի հետևյալ մասը, եթե հստակ չգիտեք, թե ինչ եք անում:
if և else հայտարարությունների հաջորդ բաժինը ստուգում է, թե որ կոճակն է սեղմված ձեր մեջ web էջը և համապատասխանաբար վերահսկում է ելքերը: Ինչպես նախկինում տեսանք, մենք հարցում ենք անում տարբեր հարցերի վերաբերյալ URLs կախված սեղմված կոճակից:
ՆախampԵթե սեղմել եք GPIO 26 ON կոճակը, ESP32-ը հարցում է ստանում /26/ON URL (մենք կարող ենք տեսնել, որ այդ տեղեկատվությունը սերիական մոնիտորում HTTP վերնագրի վրա): Այսպիսով, մենք կարող ենք ստուգել, թե արդյոք վերնագիրը պարունակում է GET /26/on արտահայտությունը: Եթե այն պարունակում է, մենք փոխում ենք output26state փոփոխականը ON, և ESP32-ը միացնում է LED-ը:
Սա աշխատում է նույն կերպ մյուս կոճակների համար: Այսպիսով, եթե ցանկանում եք ավելացնել ավելի շատ արդյունքներ, դուք պետք է փոփոխեք կոդի այս մասը՝ դրանք ներառելու համար:
Ցուցադրվում է HTML-ը web էջ
Հաջորդ բանը, որ դուք պետք է անեք, ստեղծելն է web էջ. ESP32-ը պատասխան կուղարկի ձեր դիտարկիչին՝ որոշ HTML կոդով, որպեսզի ստեղծի այն web էջ.
Այն web էջն ուղարկվում է հաճախորդին՝ օգտագործելով այս արտահայտիչ client.println(): Դուք պետք է մուտքագրեք այն, ինչ ցանկանում եք ուղարկել հաճախորդին որպես փաստարկ:
Առաջին բանը, որ մենք պետք է ուղարկենք, միշտ հետևյալ տողն է, որը ցույց է տալիս, որ մենք ուղարկում ենք HTML:Այնուհետև հետևյալ տողը կազմում է web էջը արձագանքող ցանկացած web բրաուզեր.
Իսկ ֆավիկոնում հարցումները կանխելու համար օգտագործվում է հետևյալը. – Այս տողի համար անհանգստանալու կարիք չկա:
Ոճավորումը Web Էջ
Հաջորդը, մենք ունենք մի քանի CSS տեքստ՝ կոճակները և կոճակները ոճավորելու համար web էջի տեսքը.
Մենք ընտրում ենք Helvetica տառատեսակը, սահմանում ենք բովանդակությունը, որը պետք է ցուցադրվի որպես բլոկ և հավասարեցվի կենտրոնում:Մենք ոճավորում ենք մեր կոճակները #4CAF50 գույնով, առանց եզրագծերի, տեքստի սպիտակ գույնով և այս ներդիրով՝ 16px 40px: Մենք նաև սահմանում ենք տեքստի ձևավորումը ոչ մեկին, սահմանում ենք տառաչափը, լուսանցքը և կուրսորը ցուցիչով:
Մենք նաև սահմանում ենք ոճը երկրորդ կոճակի համար՝ կոճակի բոլոր հատկություններով, որոնք սահմանել ենք ավելի վաղ, բայց այլ գույնով: Սա կլինի անջատման կոճակի ոճը:
Կարգավորումը Web Էջի առաջին վերնագիր
Հաջորդ տողում կարող եք սահմանել ձեր առաջին վերնագիրը web էջ. Այստեղ մենք ունենք «ESP32 Web Սերվեր», բայց դուք կարող եք փոխել այս տեքստը այն, ինչ ցանկանում եք:Կոճակների և համապատասխան վիճակի ցուցադրում
Այնուհետև դուք գրում եք պարբերություն GPIO 26-ի ընթացիկ վիճակը ցուցադրելու համար: Ինչպես տեսնում եք, մենք օգտագործում ենք output26State փոփոխականը, որպեսզի վիճակն անմիջապես թարմացվի, երբ այս փոփոխականը փոխվի:Այնուհետև մենք ցուցադրում ենք միացման կամ անջատման կոճակը՝ կախված GPIO-ի ներկա վիճակից: Եթե GPIO-ի ներկայիս վիճակն անջատված է, մենք ցույց ենք տալիս ON կոճակը, եթե ոչ, մենք ցուցադրում ենք OFF կոճակը:
Մենք օգտագործում ենք նույն ընթացակարգը GPIO 27-ի համար:
Կապի փակում
Վերջապես, երբ պատասխանն ավարտվում է, մենք ջնջում ենք վերնագրի փոփոխականը և դադարեցնում կապը հաճախորդի հետ client.stop():
Փաթաթում
Այս ձեռնարկում մենք ձեզ ցույց ենք տվել, թե ինչպես կառուցել ա web սերվեր ESP32-ով: Մենք ձեզ ցույց ենք տվել մի պարզ նախկինampԱյն կառավարում է երկու LED, բայց գաղափարն այն է, որ այդ LED-ները փոխարինվեն ռելեով կամ ցանկացած այլ ելքով, որը ցանկանում եք կառավարել:
Project 6 RGB LED Web Սերվեր
Այս նախագծում մենք ձեզ ցույց կտանք, թե ինչպես հեռակա կարգով կառավարել RGB LED-ը ESP32 տախտակով՝ օգտագործելով web սերվեր գունավոր ընտրիչով:
Նախագիծն ավարտված էview
Նախքան սկսելը, եկեք տեսնենք, թե ինչպես է աշխատում այս նախագիծը.
- ESP32 web սերվերը ցուցադրում է գույնի ընտրիչ:
- Երբ դուք ընտրում եք գույն, ձեր զննարկիչը հարցում է կատարում a URL որը պարունակում է ընտրված գույնի R, G և B պարամետրերը:
- Ձեր ESP32-ը ստանում է հարցումը և բաժանում արժեքը յուրաքանչյուր գույնի պարամետրի համար:
- Այնուհետև այն համապատասխան արժեքով PWM ազդանշան է ուղարկում GPIO-ներին, որոնք վերահսկում են RGB LED-ը:
Ինչպե՞ս են աշխատում RGB LED- ները:
Ընդհանուր կաթոդային RGB LED-ում բոլոր երեք LED-ները կիսում են բացասական կապը (կաթոդ): Կոմպլեկտում ներառված բոլորը սովորական կաթոդային RGB են:Ինչպե՞ս ստեղծել տարբեր գույներ:
RGB LED-ով դուք, իհարկե, կարող եք արտադրել կարմիր, կանաչ և կապույտ լույս, և յուրաքանչյուր LED-ի ինտենսիվությունը կարգավորելով՝ կարող եք նաև այլ գույներ արտադրել:
ՆախampԶուտ կապույտ լույս արտադրելու համար դուք պետք է սահմանեք կապույտ լուսադիոդը ամենաբարձր ինտենսիվության վրա, իսկ կանաչ և կարմիր լուսադիոդները՝ նվազագույն ինտենսիվության: Սպիտակ լույսի համար դուք պետք է սահմանեք բոլոր երեք LED-ները ամենաբարձր ինտենսիվության վրա:
Գույների խառնում
Այլ գույներ արտադրելու համար դուք կարող եք համատեղել երեք գույները տարբեր ինտենսիվությամբ: Յուրաքանչյուր LED-ի ինտենսիվությունը կարգավորելու համար կարող եք օգտագործել PWM ազդանշան:
Քանի որ LED-ները շատ մոտ են միմյանց, մեր աչքերը տեսնում են գույների համադրության արդյունքը, այլ ոչ թե երեք գույներն առանձին-առանձին:
Գույները համադրելու մասին պատկերացում կազմելու համար նայեք հետևյալ աղյուսակին։
Սա գույների խառնման ամենապարզ աղյուսակն է, բայց ձեզ հնարավորություն է տալիս պատկերացում կազմել, թե ինչպես է այն աշխատում և ինչպես արտադրել տարբեր գույներ:Պահանջվող մասեր
Այս նախագծի համար ձեզ անհրաժեշտ են հետևյալ մասերը.
- ESP32 DEVKIT V1 տախտակ
- RGB LED
- 3 x 220 ohm դիմադրություն
- Jumper մետաղալարեր
- Breadboard
ՍխեմատիկԿոդ
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
- ESP32 հավելման տեղադրում Arduino IDE-ում
Շղթան հավաքելուց հետո բացեք կոդը
Նախագիծ_6_RGB_LED_Web_Server.ino arduino IDE-ում:
Նախքան ծածկագիրը վերբեռնելը, մի մոռացեք տեղադրել ձեր ցանցի հավատարմագրերը, որպեսզի ESP-ն կարողանա միանալ ձեր տեղական ցանցին:Ինչպես է աշխատում կոդը
ESP32 ուրվագիծն օգտագործում է WiFi.h գրադարանը:Հետևյալ տողերը սահմանում են լարային փոփոխականներ՝ R, G և B պարամետրերը պահելու հարցում:
Հաջորդ չորս փոփոխականներն օգտագործվում են հետագայում HTTP հարցումը վերծանելու համար:
Ստեղծեք երեք փոփոխական GPIO-ների համար, որոնք կվերահսկեն ժապավենի R, G և B պարամետրերը: Այս դեպքում մենք օգտագործում ենք GPIO 13, GPIO 12 և GPIO 14:
Այս GPIO-ները պետք է PWM ազդանշաններ թողարկեն, ուստի մենք պետք է նախ կարգավորենք PWM հատկությունները: Սահմանեք PWM ազդանշանի հաճախականությունը 5000 Հց: Այնուհետև յուրաքանչյուր գույնի համար միացրեք PWM ալիք
Եվ վերջապես, PWM ալիքների լուծումը սահմանեք 8 բիթ
Setup()-ում վերագրեք PWM հատկությունները PWM ալիքներին
Կցեք PWM ալիքները համապատասխան GPIO-ներին
Հետևյալ կոդի բաժինը ցուցադրում է ձեր գույնի ընտրիչը web էջը և հարցում է կատարում ձեր ընտրած գույնի հիման վրա:
Երբ գույն եք ընտրում, ստանում եք հարցում հետևյալ ձևաչափով.
Այսպիսով, մենք պետք է բաժանենք այս տողը R, G և B պարամետրերը ստանալու համար: Պարամետրերը պահվում են redString, greenString և blueString փոփոխականներում և կարող են ունենալ 0-ից 255 արժեքներ:ESP32-ով ժապավենը կառավարելու համար օգտագործեք ledcWrite() ֆունկցիան՝ HTTP-ից վերծանված արժեքներով PWM ազդանշաններ ստեղծելու համար: խնդրանք։
Նշում. իմացեք ավելին PWM-ի մասին ESP32-ով. Project 3 ESP32 PWM (անալոգային ելք)
ESP8266-ով ժապավենը կառավարելու համար մենք պարզապես պետք է օգտագործենք
analogWrite() ֆունկցիան՝ PWM ազդանշաններ ստեղծելու համար HTPP հարցումից վերծանված արժեքներով:
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Քանի որ մենք ստանում ենք տողային փոփոխականի արժեքները, մենք պետք է դրանք վերածենք ամբողջ թվերի՝ օգտագործելով toInt() մեթոդը։
Ցույց
Ձեր ցանցի հավատարմագրերը տեղադրելուց հետո ընտրեք ճիշտ տախտակը և COM պորտը և վերբեռնեք կոդը ձեր ESP32-ում: Վերբեռնման կոդի հղումային քայլերը:
Վերբեռնումից հետո բացեք Serial Monitor-ը 115200 բուդ արագությամբ և սեղմեք ESP Enable/Reset կոճակը: Դուք պետք է ստանաք տախտակի IP հասցեն:Բացեք ձեր զննարկիչը և տեղադրեք ESP IP հասցեն: Այժմ օգտագործեք գույնի ընտրիչը՝ RGB LED-ի համար գույն ընտրելու համար:
Այնուհետև անհրաժեշտ է սեղմել «Փոխել գույնը» կոճակը, որպեսզի գույնն ուժի մեջ մտնի:RGB LED-ն անջատելու համար ընտրեք սև գույնը:
Ամենաուժեղ գույները (գույն ընտրողի վերևում) ավելի լավ արդյունք կտան:
Project 7 ESP32 ռելե Web Սերվեր
ESP32-ի հետ ռելեի օգտագործումը հիանալի միջոց է AC կենցաղային տեխնիկան հեռակա կարգով կառավարելու համար: Այս ձեռնարկը բացատրում է, թե ինչպես կառավարել ռելե մոդուլը ESP32-ով:
Մենք կանդրադառնանք, թե ինչպես է աշխատում ռելեի մոդուլը, ինչպես միացնել ռելեը ESP32-ին և կառուցել web սերվեր՝ ռելեին հեռակա կարգով կառավարելու համար:
Ներկայացնելով ռելեներ
Ռելեը էլեկտրականությամբ աշխատող անջատիչ է և, ինչպես ցանկացած այլ անջատիչ, այն կարող է միացնել կամ անջատվել՝ թույլ տալով, որ հոսանքը անցնի կամ չանցնի: Այն կարելի է կառավարել ցածր ծավալովtages, ինչպես 3.3V-ը, որը տրամադրվում է ESP32 GPIO-ների կողմից և թույլ է տալիս մեզ վերահսկել բարձր ձայնըtagնման են 12V, 24V կամ ցանցի ծավալtage (230V Եվրոպայում և 120V ԱՄՆ-ում):Ձախ կողմում կան երեք վարդակների երկու հավաքածու բարձր ծավալը միացնելու համարtages, և աջ կողմի քորոցները (ցածր ծավալtagե) միացեք ESP32 GPIO-ներին:
Հիմնական հատորtagե ՄիացումներՆախորդ լուսանկարում ցուցադրված ռելեի մոդուլն ունի երկու միակցիչ, որոնցից յուրաքանչյուրը երեք վարդակից ունի՝ ընդհանուր (COM), նորմալ փակ (NC) և նորմալ բաց (NO):
- COM. միացրեք հոսանքը, որը ցանկանում եք կառավարել (ցանցային հtagե)
- NC (Նորմալ փակ). սովորաբար փակ կոնֆիգուրացիան օգտագործվում է, երբ ցանկանում եք, որ ռելեը լռելյայն փակվի: NC-ը միացված են COM կապին, ինչը նշանակում է, որ հոսանքը հոսում է, եթե դուք ազդանշան չուղարկեք ESP32-ից դեպի ռելեի մոդուլ՝ միացումը բացելու և ընթացիկ հոսքը դադարեցնելու համար:
- NO (Normally Open). սովորաբար բաց կոնֆիգուրացիան աշխատում է հակառակը. NO-ի և COM կապի միջև կապ չկա, այնպես որ միացումը խզվում է, եթե ESP32-ից ազդանշան չուղարկեք միացումը փակելու համար:
Վերահսկիչ կապումՑածր ծավալըtage կողմը ունի չորս կապում և երեք կապում: Առաջին հավաքածուն բաղկացած է VCC-ից և GND-ից՝ մոդուլը միացնելու համար, և մուտքային 1 (IN1) և մուտքային 2 (IN2)՝ համապատասխանաբար ներքևի և վերին ռելեները կառավարելու համար:
Եթե ձեր ռելեի մոդուլն ունի միայն մեկ ալիք, դուք կունենաք ընդամենը մեկ IN pin: Եթե դուք ունեք չորս ալիք, դուք կունենաք չորս IN կապում և այլն:
Ազդանշանը, որը դուք ուղարկում եք IN կապին, որոշում է՝ ռելեն ակտիվ է, թե ոչ: Ռելեդը գործարկվում է, երբ մուտքն անցնում է մոտ 2 Վ-ից ցածր: Սա նշանակում է, որ դուք կունենաք հետևյալ սցենարները.
- Սովորաբար փակ կոնֆիգուրացիա (NC):
- ԲԱՐՁՐ ազդանշան – հոսում է հոսանք
- ՑԱԾՐ ազդանշան – հոսանքը չի հոսում
- Սովորաբար բաց կոնֆիգուրացիա (NO):
- ԲԱՐՁՐ ազդանշան – հոսանքը չի հոսում
- ՑԱԾՐ ազդանշան - հոսող հոսանք
Դուք պետք է օգտագործեք սովորաբար փակ կոնֆիգուրացիա, երբ հոսանքը պետք է հոսել շատ դեպքերում, և դուք միայն երբեմն ուզում եք դադարեցնել այն:
Օգտագործեք սովորաբար բաց կոնֆիգուրացիա, երբ ցանկանում եք, որ հոսանքը երբեմն հոսի (օրինակampլե, միացնել ալamp երբեմն):
Էլեկտրաէներգիայի մատակարարման ընտրությունՊինների երկրորդ հավաքածուն բաղկացած է GND, VCC և JD-VCC կապումներից:
JD-VCC քորոցը սնուցում է ռելեի էլեկտրամագնիսը: Ուշադրություն դարձրեք, որ մոդուլն ունի ցատկող գլխարկ, որը միացնում է VCC և JD-VCC կապերը; այստեղ ցուցադրվածը դեղին է, բայց ձերը կարող է տարբեր գույն ունենալ:
Թռիչքի գլխարկը միացված է, VCC և JD-VCC կապում են: Դա նշանակում է, որ ռելեի էլեկտրամագնիսը ուղղակիորեն սնուցվում է ESP32 հոսանքի պտուտակից, ուստի ռելեի մոդուլը և ESP32 սխեմաները ֆիզիկապես մեկուսացված չեն միմյանցից:
Առանց ցատկող գլխարկի, դուք պետք է ապահովեք անկախ էներգիայի աղբյուր՝ ռելեի էլեկտրամագնիսը JD-VCC կապի միջոցով միացնելու համար: Այդ կոնֆիգուրացիան ֆիզիկապես մեկուսացնում է ռելեները ESP32-ից մոդուլի ներկառուցված օպտոկապլերով, որը կանխում է ESP32-ի վնասումը էլեկտրական ցատկերի դեպքում:
ՍխեմատիկԶգուշացում. Բարձր ծավալի օգտագործումըtagԷլեկտրաէներգիայի մատակարարումները կարող են լուրջ վնասվածքներ պատճառել:
Հետեւաբար, 5 մմ LED-ները օգտագործվում են բարձր մատակարարման ծավալի փոխարենtagե լամպերը փորձի մեջ: Եթե դուք ծանոթ չեք ցանցի հատորինtagհարցրեք մեկին, ով պետք է օգնի ձեզ: ESP-ը ծրագրավորելիս կամ ձեր շղթան միացնելիս համոզվեք, որ ամեն ինչ անջատված է ցանցիցtage.Գրադարանի տեղադրում ESP32-ի համար
Սա կառուցելու համար web սերվեր, մենք օգտագործում ենք ESPAsync-ըWebՍերվերի գրադարան և AsyncTCP գրադարան:
ESPAsync-ի տեղադրումWebՍերվերի գրադարան
Տեղադրելու համար հետևեք հաջորդ քայլերին ESPAsyncWebՍերվեր գրադարան:
- Սեղմեք այստեղ՝ ESPAsync-ը ներբեռնելու համարWebՍերվերի գրադարան. Դուք պետք է ունենաք
.zip պանակ ձեր Ներբեռնումների պանակում - Անջատեք .zip թղթապանակը և դուք պետք է ստանաք ESPAsyncWebServer-master թղթապանակ
- Վերանվանեք ձեր թղթապանակը ESPAsync-իցWebServer-master դեպի ESPAsyncWebՍերվեր
- Տեղափոխեք ESPAsync-ըWebՍերվերի պանակը ձեր Arduino IDE տեղադրման գրադարանների պանակում
Որպես այլընտրանք, ձեր Arduino IDE-ում կարող եք գնալ Sketch > Include
Գրադարան > Ավելացնել .ZIP գրադարան… և ընտրեք այն գրադարանը, որը նոր եք ներբեռնել:
AsyncTCP գրադարանի տեղադրում ESP32-ի համար
Այն ESPAsyncWebՍերվեր գրադարանը պահանջում է AsyncTCP գրադարան աշխատելու համար: Հետևեք
այդ գրադարանը տեղադրելու հաջորդ քայլերը.
- Սեղմեք այստեղ՝ AsyncTCP գրադարանը ներբեռնելու համար: Դուք պետք է ունենաք .zip պանակ ձեր Ներբեռնումների պանակում
- Անջատեք .zip թղթապանակը և դուք պետք է ստանաք AsyncTCP-master պանակը
1. Վերանվանեք ձեր թղթապանակը AsyncTCP-master-ից AsyncTCP
3. Տեղափոխեք AsyncTCP թղթապանակը ձեր Arduino IDE տեղադրման գրադարանների պանակ
4. Վերջապես, նորից բացեք ձեր Arduino IDE-ը
Որպես այլընտրանք, ձեր Arduino IDE-ում կարող եք գնալ Sketch > Include
Գրադարան > Ավելացնել .ZIP գրադարան… և ընտրեք այն գրադարանը, որը նոր եք ներբեռնել:
Կոդ
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Պահանջվող գրադարանները տեղադրելուց հետո բացեք Project_7_ESP32_Relay_ կոդըWeb_Server.ino arduino IDE-ում:
Նախքան ծածկագիրը վերբեռնելը, մի մոռացեք տեղադրել ձեր ցանցի հավատարմագրերը, որպեսզի ESP-ն կարողանա միանալ ձեր տեղական ցանցին:Ցույց
Անհրաժեշտ փոփոխությունները կատարելուց հետո վերբեռնեք կոդը ձեր ESP32-ում: Վերբեռնման կոդի հղումային քայլերը:
Բացեք սերիական մոնիտորը 115200 բուդ արագությամբ և սեղմեք ESP32 EN կոճակը՝ դրա IP հասցեն ստանալու համար: Այնուհետև բացեք զննարկիչը ձեր տեղական ցանցում և մուտքագրեք ESP32 IP հասցեն՝ մուտք գործելու համար: web սերվեր.
Բացեք սերիական մոնիտորը 115200 բուդ արագությամբ և սեղմեք ESP32 EN կոճակը՝ դրա IP հասցեն ստանալու համար: Այնուհետև բացեք զննարկիչը ձեր տեղական ցանցում և մուտքագրեք ESP32 IP հասցեն՝ մուտք գործելու համար: web սերվեր.Նշում. Ձեր զննարկիչը և ESP32-ը պետք է միացված լինեն նույն LAN-ին:
Դուք պետք է ստանաք հետևյալը երկու կոճակներով, որքան ձեր կոդում սահմանված ռելեների քանակը:Այժմ դուք կարող եք օգտագործել կոճակները՝ սմարթֆոնի միջոցով ձեր ռելեները կառավարելու համար:
Project_8_Output_State_Synchronization_ Web_Սերվեր
Այս նախագիծը ցույց է տալիս, թե ինչպես կառավարել ESP32 կամ ESP8266 ելքերը՝ օգտագործելով a web սերվեր և ֆիզիկական կոճակ միաժամանակ: Ելքի վիճակը թարմացվում է web էջ՝ արդյոք այն փոխվում է ֆիզիկական կոճակի միջոցով, թե web սերվեր.
Նախագիծն ավարտված էview
Եկեք արագ նայենք, թե ինչպես է աշխատում նախագիծը:ESP32 կամ ESP8266 հոսթեր ա web սերվեր, որը թույլ է տալիս վերահսկել ելքի վիճակը.
- Ներկայիս ելքային վիճակը ցուցադրվում է վրա web սերվեր;
- ESP-ը նաև միացված է ֆիզիկական կոճակին, որը կառավարում է նույն ելքը.
- Եթե դուք փոխում եք ելքի վիճակը՝ օգտագործելով ֆիզիկական կոճակը, դրա ներկայիս վիճակը նույնպես թարմացվում է կոճակի վրա web սերվեր.
Ամփոփելով, այս նախագիծը թույլ է տալիս վերահսկել նույն արդյունքը, օգտագործելով a web սերվեր և սեղմող կոճակ միաժամանակ: Ամեն անգամ, երբ ելքային վիճակը փոխվում է, web սերվերը թարմացվում է:
Պահանջվող մասեր
Ահա այն մասերի ցանկը, որոնք ձեզ անհրաժեշտ են շղթան կառուցելու համար.
- ESP32 DEVKIT V1 տախտակ
- 5 մմ LED
- 220 Օմ դիմադրություն
- Պուշբութոն
- 10k Ohm դիմադրություն
- Breadboard
- Jumper մետաղալարեր
ՍխեմատիկԳրադարանի տեղադրում ESP32-ի համար
Սա կառուցելու համար web սերվեր, մենք օգտագործում ենք ESPAsync-ըWebՍերվերի գրադարան և AsyncTCP գրադարան: (Եթե արդեն արել եք այս քայլը, կարող եք բաց թողնել հաջորդ քայլին):
ESPAsync-ի տեղադրումWebՍերվերի գրադարան
Հետևեք հաջորդ քայլերին՝ ESPAsync-ը տեղադրելու համարWebՍերվերի գրադարան.
- Սեղմեք այստեղ՝ ESPAsync-ը ներբեռնելու համարWebՍերվերի գրադարան. Դուք պետք է ունենաք
.zip պանակ ձեր Ներբեռնումների պանակում - Անջատեք .zip թղթապանակը և դուք պետք է ստանաք ESPAsyncWebServer-master թղթապանակ
- Վերանվանեք ձեր թղթապանակը ESPAsync-իցWebServer-master դեպի ESPAsyncWebՍերվեր
- Տեղափոխեք ESPAsync-ըWebՍերվերի պանակը ձեր Arduino IDE տեղադրման գրադարանների պանակում
Որպես այլընտրանք, ձեր Arduino IDE-ում կարող եք գնալ Sketch > Include
Գրադարան > Ավելացնել .ZIP գրադարան… և ընտրեք այն գրադարանը, որը նոր եք ներբեռնել:
AsyncTCP գրադարանի տեղադրում ESP32-ի համար
ESPAsyncWebՍերվերի գրադարանը պահանջում է AsyncTCP գրադարանը աշխատելու համար: Այդ գրադարանը տեղադրելու համար հետևեք հետևյալ քայլերին.
- Սեղմեք այստեղ՝ AsyncTCP գրադարանը ներբեռնելու համար: Դուք պետք է ունենաք .zip պանակ ձեր Ներբեռնումների պանակում
- Անջատեք .zip թղթապանակը և դուք պետք է ստանաք AsyncTCP-master պանակը
- Վերանվանեք ձեր թղթապանակը AsyncTCP-master-ից AsyncTCP
- Տեղափոխեք AsyncTCP թղթապանակը ձեր Arduino IDE տեղադրման գրադարանների պանակ
- Վերջապես, նորից բացեք ձեր Arduino IDE-ն
Որպես այլընտրանք, ձեր Arduino IDE-ում կարող եք գնալ Sketch > Include
Գրադարան > Ավելացնել .ZIP գրադարան… և ընտրեք այն գրադարանը, որը նոր եք ներբեռնել:
Կոդ
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Պահանջվող գրադարանները տեղադրելուց հետո բացեք կոդը
Project_8_Output_State_Synchronization_Web_Server.ino arduino IDE-ում:
Նախքան ծածկագիրը վերբեռնելը, մի մոռացեք տեղադրել ձեր ցանցի հավատարմագրերը, որպեսզի ESP-ն կարողանա միանալ ձեր տեղական ցանցին:
Ինչպես է աշխատում օրենսգիրքը
Կոճակի վիճակը և ելքային վիճակը
ledState փոփոխականը պահպանում է LED ելքային վիճակը: Լռելյայն համար, երբ web սերվերը սկսվում է, այն ցածր է:
ButtonState և lastButtonState կոճակները օգտագործվում են՝ պարզելու համար՝ սեղմված է կոճակը, թե ոչ:Կոճակ (web սերվեր)
Մենք չենք ներառել HTML-ը index_html փոփոխականի վրա կոճակ ստեղծելու համար:
Դա պայմանավորված է նրանով, որ մենք ցանկանում ենք, որպեսզի կարողանանք փոխել այն՝ կախված ընթացիկ LED վիճակից, որը կարող է փոխվել նաև սեղմակով:
Այսպիսով, մենք ստեղծել ենք տեղապահ %BUTTONPLACEHOLDER% կոճակի համար, որը կփոխարինվի HTML տեքստով կոճակը հետագայում կոդի վրա ստեղծելու համար (սա կատարվում է պրոցեսոր() ֆունկցիայի մեջ):պրոցեսոր ()
Processor() ֆունկցիան փոխարինում է HTML տեքստի ցանկացած տեղապահին իրական արժեքներով: Նախ, այն ստուգում է, թե արդյոք HTML տեքստերը պարունակում են որևէ մեկը
տեղապահներ %BUTTONPLACEHOLDER%.Այնուհետև կանչեք theoutputState() ֆունկցիան, որը վերադարձնում է ընթացիկ ելքային վիճակը: Մենք այն պահպանում ենք outputStateValue փոփոխականում։
Դրանից հետո օգտագործեք այդ արժեքը՝ HTML տեքստ ստեղծելու համար՝ կոճակը ճիշտ վիճակով ցուցադրելու համար.
HTTP GET ելքի վիճակը փոխելու հարցում (JavaScript)
Երբ սեղմում եք կոճակը, կանչվում է thetoggleCheckbox() ֆունկցիան: Այս ֆունկցիան հարցում կներկայացնի տարբեր URLs լուսադիոդը միացնելու կամ անջատելու համար:LED-ը միացնելու համար այն հարցում է կատարում /update?state=1 URL:
Հակառակ դեպքում այն հարցում է կատարում /update?state=0-ում URL.
HTTP GET կարգավիճակի թարմացման հարցում (JavaScript)
Արդյունքի վիճակը թարմացված պահելու համար web սերվեր, մենք կանչում ենք հետևյալ ֆունկցիան, որը նոր հարցում է կատարում /state-ում URL ամեն վայրկյան.Կարգավորել հարցումները
Այնուհետև մենք պետք է կարգավորենք, թե ինչ է տեղի ունենում, երբ ESP32-ը կամ ESP8266-ը ստանում են հարցումներ դրանց վերաբերյալ: URLs.
Երբ հարցում է ստացվում root-ում /URL, ուղարկում ենք HTML էջը, ինչպես նաև պրոցեսորը։Հետևյալ տողերը ստուգում են՝ արդյոք դուք հարցում եք ստացել /update?state=1 կամ /update?state=0-ի վերաբերյալ: URL և համապատասխանաբար փոխում է ledState-ը:
Երբ հարցում է ստացվում /state-ում URL, մենք ուղարկում ենք ընթացիկ ելքային վիճակը.
հանգույց ()
Loop()-ում մենք անջատում ենք կոճակը և միացնում կամ անջատում LED-ը՝ կախված ledState-ի արժեքից: փոփոխական.Ցույց
Վերբեռնեք կոդը ձեր ESP32 տախտակում: Վերբեռնեք կոդի հղումային քայլերը:
Այնուհետև բացեք Սերիական մոնիտորը 115200 բուդ արագությամբ: Սեղմեք ներկառուցված EN/RST կոճակը՝ IP հասցե ստանալու համար:Բացեք զննարկիչը ձեր տեղական ցանցում և մուտքագրեք ESP IP հասցեն: Դուք պետք է մուտք ունենաք դեպի web սերվեր, ինչպես ցույց է տրված ստորև:
Նշում. Ձեր զննարկիչը և ESP32-ը պետք է միացված լինեն նույն LAN-ին:Դուք կարող եք միացնել կոճակը web սերվեր՝ լուսադիոդը միացնելու համար:
Դուք կարող եք նաև կառավարել նույն LED-ը ֆիզիկական կոճակով: Դրա վիճակը միշտ կթարմացվի ավտոմատ կերպով web սերվեր.
Նախագիծ 9 ESP32 DHT11 Web Սերվեր
Այս նախագծում դուք կսովորեք, թե ինչպես կառուցել ասինխրոն ESP32 web սերվեր DHT11-ով, որը ցուցադրում է ջերմաստիճանը և խոնավությունը Arduino IDE-ի միջոցով:
Նախադրյալներ
Այն web սերվերը մենք ավտոմատ կերպով կթարմացնենք ընթերցումները՝ առանց թարմացնելու անհրաժեշտության web էջ.
Այս նախագծով դուք կսովորեք.
- Ինչպես կարդալ ջերմաստիճանը և խոնավությունը DHT սենսորներից;
- Կառուցեք ասինխրոն web սերվեր՝ օգտագործելով ESPAsyncWebՍերվերի գրադարան;
- Թարմացրեք սենսորների ընթերցումները ավտոմատ կերպով՝ առանց թարմացնելու անհրաժեշտության web էջ.
Ասինխրոն Web Սերվեր
կառուցելու համար web սերվերը, որը մենք կօգտագործենք ESPAsyncWebՍերվերի գրադարան որը ապահովում է ասինխրոն ստեղծելու հեշտ ճանապարհ web սերվեր. Ասինխրոնի կառուցում web սերվերն ունի մի քանի ավանtages, ինչպես նշված է գրադարանի GitHub էջում, ինչպիսիք են.
- «Միաժամանակ մեկից ավելի կապեր վարել»;
- «Երբ ուղարկում եք պատասխանը, դուք անմիջապես պատրաստ եք կարգավորել այլ կապեր, մինչդեռ սերվերը հոգ է տանում պատասխանն ուղարկելու հետին պլանում»:
- «Կաղապարների մշակման պարզ շարժիչ՝ կաղապարներ մշակելու համար»;
Պահանջվող մասեր
Այս ձեռնարկը լրացնելու համար ձեզ անհրաժեշտ են հետևյալ մասերը.
- ESP32 մշակման տախտակ
- DHT11 մոդուլ
- Breadboard
- Jumper մետաղալարեր
ՍխեմատիկԳրադարանների տեղադրում
Այս նախագծի համար անհրաժեշտ է տեղադրել մի քանի գրադարան.
- Այն DHT և Adafruit միասնական սենսոր Վարորդի գրադարաններ DHT սենսորից կարդալու համար:
- ESPAsyncWebՍերվեր և Async TCP գրադարաններ՝ ասինխրոնը կառուցելու համար web սերվեր.
Այդ գրադարանները տեղադրելու համար հետևեք հետևյալ հրահանգներին.
DHT սենսորների գրադարանի տեղադրում
Arduino IDE-ի միջոցով DHT սենսորից կարդալու համար անհրաժեշտ է տեղադրել DHT սենսորային գրադարան. Հետևեք հաջորդ քայլերին՝ գրադարանը տեղադրելու համար:
- Սեղմեք այստեղ՝ DHT Sensor գրադարանը ներբեռնելու համար: Դուք պետք է ունենաք .zip պանակ ձեր Ներբեռնումների պանակում
- Անջատեք .zip թղթապանակը և դուք պետք է ստանաք DHT-sensor-library-master պանակը
- Վերանվանեք ձեր թղթապանակը DHT-sensor-library-master-ից դեպի DHT_sensor
- Տեղափոխեք DHT_sensor պանակը ձեր Arduino IDE տեղադրման գրադարանների պանակ
- Վերջապես, նորից բացեք ձեր Arduino IDE-ն
Adafruit Unified Sensor Driver-ի տեղադրում
Դուք նաև պետք է տեղադրեք Adafruit Unified Sensor Driver գրադարան աշխատել DHT սենսորի հետ: Հետևեք հաջորդ քայլերին՝ գրադարանը տեղադրելու համար:
- Սեղմեք այստեղ՝ Adafruit Unified Sensor գրադարանը ներբեռնելու համար: Դուք պետք է ունենաք .zip պանակ ձեր Ներբեռնումների պանակում
- Անջատեք .zip թղթապանակը և դուք պետք է ստանաք Adafruit_sensor-master պանակը
- Վերանվանեք ձեր թղթապանակը Adafruit_sensor-master-ից Adafruit_sensor
- Տեղափոխեք Adafruit_sensor պանակը ձեր Arduino IDE տեղադրման գրադարանների պանակ
- Վերջապես, նորից բացեք ձեր Arduino IDE-ն
ESPAsync-ի տեղադրումWebՍերվերի գրադարան
Տեղադրելու համար հետևեք հաջորդ քայլերին ESPAsyncWebՍերվեր գրադարան:
- Սեղմեք այստեղ՝ ESPAsync-ը ներբեռնելու համարWebՍերվերի գրադարան. Դուք պետք է ունենաք
.zip պանակ ձեր Ներբեռնումների պանակում - Փակեք .zip թղթապանակը և պետք է
ստացեք ESPAsyncWebServer-master թղթապանակ - Վերանվանեք ձեր թղթապանակը ESPAsync-իցWebServer-master դեպի ESPAsyncWebՍերվեր
- Տեղափոխեք ESPAsync-ըWebՍերվերի պանակը ձեր Arduino IDE տեղադրման գրադարանների պանակում
Async TCP գրադարանի տեղադրում ESP32-ի համար
Այն ESPAsyncWebՍերվեր գրադարանը պահանջում է AsyncTCP գրադարան աշխատելու համար: Այդ գրադարանը տեղադրելու համար հետևեք հետևյալ քայլերին.
- Սեղմեք այստեղ՝ AsyncTCP գրադարանը ներբեռնելու համար: Դուք պետք է ունենաք .zip պանակ ձեր Ներբեռնումների պանակում
- Անջատեք .zip թղթապանակը և դուք պետք է ստանաք AsyncTCP-master պանակը
- Վերանվանեք ձեր թղթապանակը AsyncTCP-master-ից AsyncTCP
- Տեղափոխեք AsyncTCP թղթապանակը ձեր Arduino IDE տեղադրման գրադարանների պանակ
- Վերջապես, նորից բացեք ձեր Arduino IDE-ն
Կոդ
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ում
Պահանջվող գրադարանները տեղադրելուց հետո բացեք կոդը
Project_9_ESP32_DHT11_Web_Server.ino arduino IDE-ում:
Նախքան ծածկագիրը վերբեռնելը, մի մոռացեք տեղադրել ձեր ցանցի հավատարմագրերը, որպեսզի ESP-ն կարողանա միանալ ձեր տեղական ցանցին:Ինչպես է աշխատում օրենսգիրքը
Հետևյալ պարբերություններում մենք կբացատրենք, թե ինչպես է աշխատում կոդը: Շարունակեք կարդալ, եթե ցանկանում եք ավելին իմանալ կամ անցեք Ցուցադրման բաժին՝ վերջնական արդյունքը տեսնելու համար:
Գրադարանների ներմուծում
Նախ, ներմուծեք անհրաժեշտ գրադարանները: WiFi, ESPAsyncWebՍերվերը և ESPAsyncTCP-ն անհրաժեշտ են կառուցելու համար web սերվեր. Adafruit_Sensor և DHT գրադարաններն անհրաժեշտ են DHT11 կամ DHT22 սենսորներից կարդալու համար:Փոփոխականների սահմանում
Սահմանեք GPIO-ը, որին միացված է DHT տվյալների փին: Այս դեպքում այն միացված է GPIO 4-ին:Այնուհետև ընտրեք DHT սենսորի տեսակը, որն օգտագործում եք: Մեր նախկինումample, մենք օգտագործում ենք DHT22: Եթե դուք օգտագործում եք մեկ այլ տեսակ, դուք պարզապես պետք է չմեկնաբանեք ձեր սենսորը և մեկնաբանեք մնացած բոլորը:
Պատկերացրեք DHT օբյեկտը այն տեսակով և փինով, որը մենք սահմանել ենք ավելի վաղ:Ստեղծեք AsyncWebՍերվերի օբյեկտ 80 նավահանգստում:
Կարդացեք ջերմաստիճանի և խոնավության գործառույթները
Մենք ստեղծել ենք երկու ֆունկցիա՝ մեկը ջերմաստիճանը կարդալու համար Մենք ստեղծել ենք երկու ֆունկցիա՝ մեկը ջերմաստիճանը կարդալու համար (readDHTTemperature()) և մյուսը՝ խոնավությունը (readDHTHumidity()):Սենսորային ընթերցումներ ստանալը նույնքան պարզ է, որքան օգտագործելը Սենսորային ընթերցումներ ստանալը նույնքան պարզ է, որքան readTemperature() և readHumidity() մեթոդները dht օբյեկտի վրա:
Մենք նաև ունենք պայման, որը վերադարձնում է երկու գծիկ (–), եթե սենսորը չկարողանա ստանալ ընթերցումները:
Ընթերցումները վերադարձվում են որպես լարային տեսակ: Լողացողը տողի վերածելու համար օգտագործեք String() ֆունկցիան
Լռելյայնորեն մենք կարդում ենք ջերմաստիճանը Ցելսիուս աստիճաններով: Ջերմաստիճանը Ֆարենհեյթի աստիճանով ստանալու համար մեկնաբանեք ջերմաստիճանը Ցելսիուսով և չմեկնաբանեք ջերմաստիճանը Ֆարենհայթով, որպեսզի ունենաք հետևյալը.
Վերբեռնեք կոդը
Այժմ վերբեռնեք կոդը ձեր ESP32-ում: Համոզվեք, որ ընտրված եք ճիշտ տախտակը և COM միացքը: Վերբեռնեք կոդը հղման քայլերը:
Վերբեռնումից հետո բացեք Serial Monitor-ը 115200 բուդ արագությամբ: Սեղմեք ESP32 reset կոճակը: ESP32 IP հասցեն պետք է տպագրվի սերիայի մեջ մոնիտոր.Ցույց
Բացեք զննարկիչը և մուտքագրեք ESP32 IP հասցեն: Ձեր web սերվերը պետք է ցուցադրի սենսորների վերջին ընթերցումները:
Նշում. Ձեր զննարկիչը և ESP32-ը պետք է միացված լինեն նույն LAN-ին:
Ուշադրություն դարձրեք, որ ջերմաստիճանի և խոնավության ցուցանիշները թարմացվում են ավտոմատ կերպով՝ առանց թարմացնելու անհրաժեշտության web էջ.
Project_10_ESP32_OLED_Display
Այս նախագիծը ցույց է տալիս, թե ինչպես օգտագործել 0.96 դյույմանոց SSD1306 OLED էկրանը ESP32-ով՝ օգտագործելով Arduino IDE:
Ներկայացնում ենք 0.96 դյույմանոց OLED էկրան
Այն OLED էկրան որը մենք կօգտագործենք այս ձեռնարկում SSD1306 մոդելն է՝ միագույն, 0.96 դյույմանոց էկրան՝ 128×64 պիքսելով, ինչպես ցույց է տրված հետևյալ նկարում:OLED էկրանը չի պահանջում հետին լուսավորություն, ինչը հանգեցնում է մութ միջավայրում շատ գեղեցիկ հակադրության: Բացի այդ, նրա պիքսելները էներգիա են սպառում միայն այն ժամանակ, երբ դրանք միացված են, ուստի OLED էկրանը ավելի քիչ էներգիա է ծախսում, համեմատած այլ էկրանների հետ:
Քանի որ OLED էկրանն օգտագործում է I2C կապի արձանագրություն, լարերը շատ պարզ են: Որպես հղում կարող եք օգտագործել հետևյալ աղյուսակը.
OLED փին | ESP32 |
Վին | 3.3 Վ |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
ՍխեմատիկSSD1306 OLED գրադարանի տեղադրում – ESP32
Կան մի քանի գրադարաններ ESP32-ով OLED էկրանը կառավարելու համար:
Այս ձեռնարկում մենք կօգտագործենք երկու Adafruit գրադարաններ. Adafruit_SSD1306 գրադարան և Adafruit_GFX գրադարան.
Հետևեք հաջորդ քայլերին՝ այդ գրադարանները տեղադրելու համար:
- Բացեք ձեր Arduino IDE-ն և անցեք Sketch > Include Library > Manage Librarys: Գրադարանի կառավարիչը պետք է բացվի:
- Մուտքագրեք «SSD1306» որոնման վանդակում և տեղադրեք SSD1306 գրադարանը Adafruit-ից:
- Adafruit-ից SSD1306 գրադարանը տեղադրելուց հետո որոնման դաշտում մուտքագրեք «GFX» և տեղադրեք գրադարանը:
- Գրադարանները տեղադրելուց հետո վերագործարկեք ձեր Arduino IDE-ն:
Կոդ
Պահանջվող գրադարանները տեղադրելուց հետո բացեք Project_10_ESP32_OLED_Display.ino-ն arduino IDE-ում: ծածկագիրը
Մենք կծրագրավորենք ESP32-ը Arduino IDE-ի միջոցով, այնպես որ համոզվեք, որ տեղադրել եք ESP32 հավելումը նախքան շարունակելը. (Եթե արդեն արել եք այս քայլը, կարող եք անցնել հաջորդ քայլին):
ESP32 հավելման տեղադրում Arduino IDE-ումԻնչպես է աշխատում օրենսգիրքը
Գրադարանների ներմուծում
Նախ, դուք պետք է ներմուծեք անհրաժեշտ գրադարանները: Wire գրադարանը՝ I2C-ն օգտագործելու համար, և Adafruit գրադարանները՝ էկրանին գրելու համար՝ Adafruit_GFX և Adafruit_SSD1306:Նախաձեռնեք OLED էկրանը
Այնուհետև դուք սահմանում եք ձեր OLED լայնությունը և բարձրությունը: Այս նախկինումampմենք օգտագործում ենք 128×64 OLED էկրան: Եթե դուք օգտագործում եք այլ չափեր, կարող եք փոխել այն SCREEN_WIDTH և SCREEN_HEIGHT փոփոխականներում:Այնուհետև նախաստորագրեք ցուցադրման օբյեկտը ավելի վաղ սահմանված լայնությամբ և բարձրությամբ I2C կապի արձանագրությամբ (&Wire):
(-1) պարամետրը նշանակում է, որ ձեր OLED էկրանը չունի RESET փին: Եթե ձեր OLED էկրանն իսկապես ունի RESET փին, այն պետք է միացված լինի GPIO-ին: Այդ դեպքում որպես պարամետր պետք է փոխանցեք GPIO համարը։
Setup()-ում սկզբնավորեք Serial Monitor-ը 115200 բուդ արագությամբ՝ վրիպազերծման նպատակով:Նախաձեռնեք OLED էկրանը start() մեթոդով հետևյալ կերպ.
Այս հատվածը նաև հաղորդագրություն է տպում Սերիական մոնիտորի վրա, եթե չկարողանանք միանալ էկրանին:
Եթե դուք օգտագործում եք այլ OLED էկրան, գուցե անհրաժեշտ լինի փոխել OLED հասցեն: Մեր դեպքում հասցեն 0x3C է:
Էկրանի սկզբնավորումից հետո ավելացրեք երկու վայրկյան ուշացում, որպեսզի OLED-ը բավարար ժամանակ ունենա նախաստորագրվելու համար՝ նախքան տեքստ գրելը.
Մաքրել ցուցադրումը, սահմանել տառատեսակի չափը, գույնը և գրել տեքստ
Էկրանի սկզբնավորումից հետո մաքրեք էկրանի բուֆերը clearDisplay() մեթոդով.
Նախքան տեքստ գրելը, դուք պետք է սահմանեք տեքստի չափը, գույնը և որտեղ տեքստը կցուցադրվի OLED-ում:
Սահմանեք տառատեսակի չափը setTextSize() մեթոդով.Սահմանեք տառատեսակի գույնը setTextColor() մեթոդով.
WHITE-ը սահմանում է սպիտակ տառատեսակը և սև ֆոնը:
Սահմանեք այն դիրքը, որտեղից սկսվում է տեքստը՝ օգտագործելով setCursor(x,y) մեթոդը: Այս դեպքում մենք սահմանում ենք, որ տեքստը սկսվի (0,0) կոորդինատներից՝ վերևի ձախ անկյունում:Վերջապես, դուք կարող եք տեքստն ուղարկել էկրանին println() մեթոդով, հետևյալ կերպ
Այնուհետև դուք պետք է զանգահարեք display() մեթոդը՝ իրականում տեքստը էկրանին ցուցադրելու համար:
Adafruit OLED գրադարանը տրամադրում է տեքստը հեշտությամբ ոլորելու օգտակար մեթոդներ:
- startscrollright (0x00, 0x0F): ոլորել տեքստը ձախից աջ
- startscrollleft (0x00, 0x0F): ոլորել տեքստը աջից ձախ
- startscrolldiagright(0x00, 0x07): ոլորել տեքստը ձախ ներքևի անկյունից դեպի աջ վերին անկյուն startscrolldiagleft(0x00, 0x07): ոլորել տեքստը ներքևի աջ անկյունից դեպի ձախ վերին անկյուն
Վերբեռնեք կոդը
Այժմ վերբեռնեք կոդը ձեր ESP32-ում: Վերբեռնեք կոդի հղումային քայլերը:
Կոդը բեռնելուց հետո OLED-ը կցուցադրի շարժվող տեքստը:
Փաստաթղթեր / ռեսուրսներ
![]() |
LAFVIN ESP32 Basic Starter Kit [pdf] Հրահանգների ձեռնարկ ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |