ESP32 үндсэн эхлүүлэгч
Иж бүрдэл
Сав баглаа боодлын жагсаалт
ESP32 танилцуулга
ESP32-г шинээр ашиглаж байна уу? Эндээс эхэл! ESP32 нь Wi-Fi болон Bluetooth утасгүй холболт, хоёр цөмт процессорыг багтаасан Espressif-ийн бүтээсэн Chip дээрх бага хүчин чадалтай систем (SoC) микроконтроллеруудын цуврал юм. Хэрэв та ESP8266-г мэддэг бол ESP32 нь түүний залгамжлагч бөгөөд олон шинэ функцээр дүүрэн байдаг.ESP32 техникийн үзүүлэлтүүд
Хэрэв та арай илүү техникийн болон тодорхой мэдээлэл авахыг хүсвэл ESP32-ийн дараах нарийвчилсан үзүүлэлтүүдийг үзэж болно (эх сурвалж: http://esp32.net/)-дэлгэрэнгүй мэдээллийг, мэдээллийн хуудсыг шалгана уу):
- Утасгүй холболт WiFi: HT150.0-тай 40 Mbps өгөгдлийн хурд
- Bluetooth: BLE (Bluetooth Low Energy) болон Bluetooth Classic
- Процессор: Tensilica Xtensa Dual-Core 32 бит LX6 микропроцессор, 160 эсвэл 240 МГц давтамжтай ажилладаг
- Санах ой:
- ROM: 448 KB (ачаалах болон үндсэн функцуудад зориулагдсан)
- SRAM: 520 KB (өгөгдөл болон зааварчилгааны хувьд)
- RTC fas SRAM: 8 КБ (унтах горимоос RTC ачаалах үед өгөгдөл хадгалах болон үндсэн CPU-д зориулагдсан)
- RTC удаашралтай SRAM: 8KB (гүн нойрны горимын үед хамтран процессор хандах) eFuse: 1 Кбит (үүнээс 256 битийг системд (MAC хаяг болон чипийн тохиргоо) ашигладаг) үлдсэн 768 битийг хэрэглэгчийн программуудад зориулж нөөцөлсөн. Flash-шифрлэлт ба чип ID)
Суулгасан флаш: ESP16-D17WD болон ESP0-PICO-D1 дээрх IO32, IO2, SD_CMD, SD_CLK, SD_DATA_32 болон SD_DATA_4-ээр дамжуулан дотооддоо холбогдсон флаш.
- 0 МБ (ESP32-D0WDQ6, ESP32-D0WD, болон ESP32-S0WD чипүүд)
- 2 МБ (ESP32-D2WD чип)
- 4 МБ (ESP32-PICO-D4 SiP модуль)
Бага чадал: жишээлбэл, ADC хөрвүүлэлтийг ашиглах боломжтой гэдгийг баталгаажуулдагample, гүн нойрсох үед.
Захын оролт/гаралт:
- багтаамжтай мэдрэгчийг агуулсан DMA-тай захын интерфейс
- 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 хавтанг лавлагаа болгон ашиглах болно. Доорх зурган дээр 32 GPIO зүү бүхий ESP1 DEVKIT V30 хавтанг харуулж байна.Үзүүлэлтүүд - ESP32 DEVKIT V1
Дараах хүснэгтэд ESP32 DEVKIT V1 DOIT хавтангийн онцлог, үзүүлэлтүүдийн хураангуйг харуулав.
Цөмийн тоо | 2 (хоёр цөмт) |
Wi-Fi | 2.4 GHz хүртэл 150 Мбит/с хүртэл |
Bluetooth | BLE (Bluetooth Low Energy) болон хуучин Bluetooth |
Архитектур | 32 бит |
Цагийн давтамж | 240 МГц хүртэл |
RAM | 512 КБ |
Зүү | 30 (загвараас хамаарч) |
Захын төхөөрөмжүүд | Capacitive touch, ADC (аналогоос дижитал хөрвүүлэгч), DAC (тооноос аналог руу хөрвүүлэгч), 12C (интер-интеграц хэлхээ), UART (бүх нийтийн асинхрон хүлээн авагч/дамжуулагч), CAN 2.0 (хяналтын бүсийн сүлжээ), SPI (цуваа захын интерфейс) , 12S (Integrated Inter-IC Дуу), RMII (Багасгасан медиа-бие даасан интерфэйс), PWM (импульсийн өргөн модуляц) гэх мэт. |
Суулгасан товчлуурууд | RESET болон BOOT товчлуурууд |
Баригдсан LED | GPIO2-д холбогдсон цэнхэр LED суурилуулсан; самбарыг тэжээж байгааг харуулсан улаан LED суурилуулсан |
USB-ээс UART гүүр |
CP2102 |
Энэ нь microUSB интерфэйстэй хамт ирдэг бөгөөд та кодыг байршуулах эсвэл тэжээл өгөхийн тулд самбарыг компьютерт холбоход ашиглаж болно.
Энэ нь цуваа интерфэйс ашиглан COM портоор дамжуулан таны компьютертэй холбогдохын тулд CP2102 чипийг (USB to UART) ашигладаг. Өөр нэг алдартай чип бол CH340 юм. USB-аас UART чип хувиргагчийг самбар дээр байгаа эсэхийг шалгаарай, учир нь та компьютерт самбартай холбогдохын тулд шаардлагатай драйверуудыг суулгах шаардлагатай болно (энэ талаар дэлгэрэнгүй мэдээллийг энэ гарын авлагын дараагаар уншина уу).
Энэ самбар нь мөн самбарыг дахин эхлүүлэх RESET товчлуур (EN гэж шошготой байж болно) болон самбарыг анивчдаг горимд оруулах BOOT товчлууртай (код хүлээн авах боломжтой). Зарим самбарт BOOT товчлуур байхгүй байж болохыг анхаарна уу.
Энэ нь мөн GPIO 2-д холбогдсон хөх өнгийн LED-тэй хамт ирдэг. Энэхүү LED нь дибаг хийхэд ашигтай бөгөөд зарим төрлийн харааны физик гаралтыг өгдөг. Мөн самбарт тэжээл өгөх үед асдаг улаан LED байдаг.ESP32 залгуур
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 дохио гарна, анивчих горимд орохын тулд БАГА байх ёстой |
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
ESP-WROOM-32 дээр нэгдсэн SPI флэш
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 GPIOs
ESP32 нь 10 дотоод багтаамжтай мэдрэгчтэй мэдрэгчтэй. Эдгээр нь хүний арьс гэх мэт цахилгаан цэнэг агуулсан аливаа зүйлийн өөрчлөлтийг мэдэрч чаддаг. Тиймээс тэд GPIO-д хуруугаараа хүрэхэд үүссэн өөрчлөлтийг илрүүлж чадна. Эдгээр зүүг багтаамжтай дэвсгэрт хялбархан нэгтгэж, механик товчлууруудыг сольж болно. Capacitive мэдрэгчтэй зүү нь 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 нь зөвхөн 1x 10 бит ADC-тэй). Эдгээр нь ADC болон холбогдох суваг болгон ашиглаж болох GPIO-ууд юм:
- 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)
Жич: Wi-Fi ашиглаж байгаа үед ADC2 зүүг ашиглах боломжгүй. Тиймээс, хэрэв та 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 х 32 бит DAC суваг байдагtage дохионы гаралт. Эдгээр нь DAC сувгууд юм:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
ESP32 дээр RTC GPIO дэмжлэг байдаг. RTC бага чадлын дэд систем рүү чиглүүлсэн GPIO-г ESP32 гүн нойронд байх үед ашиглаж болно. Эдгээр RTC GPIO-уудыг Ultra Low үед 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 хянагч нь өөр өөр шинж чанартай PWM дохио үүсгэхээр тохируулах боломжтой 16 бие даасан сувагтай. Гаралтын үүрэг гүйцэтгэж чадах бүх зүүг PWM зүү болгон ашиглаж болно (GPIO 34-39 нь PWM үүсгэж чадахгүй).
PWM дохиог тохируулахын тулд кодонд эдгээр параметрүүдийг тодорхойлох шаардлагатай.
- дохионы давтамж;
- Ажлын мөчлөг;
- PWM суваг;
- Дохио гаргахыг хүссэн GPIO.
I2C
ESP32 нь хоёр I2C сувагтай бөгөөд ямар ч зүүг SDA эсвэл SCL болгон тохируулах боломжтой. ESP32-г Arduino IDE-тэй ашиглах үед анхдагч 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-г ачаалагч эсвэл анивчдаг горимд оруулахад ашигладаг. Суурилуулсан USB/цуваа бүхий хөгжүүлэлтийн ихэнх самбар дээр та эдгээр тээглүүрүүдийн төлөв байдлын талаар санаа зовох шаардлагагүй болно. Самбар нь анивчсан эсвэл ачаалах горимд зүүг зөв төлөвт оруулдаг. ESP32 ачаалах горимын сонголтын талаарх дэлгэрэнгүй мэдээллийг эндээс авах боломжтой.
Гэсэн хэдий ч, хэрэв танд эдгээр тээглүүрүүдэд холбогдох нэмэлт төхөөрөмж байгаа бол шинэ код байршуулах, ESP32-г шинэ програм хангамжаар анивчуулах, самбарыг дахин тохируулах зэрэгт асуудал гарч болзошгүй. Хэрэв танд оосортой холбогдсон зарим нэмэлт төхөөрөмж байгаа бөгөөд код байршуулах эсвэл ESP32-г анивчуулахад асуудал гарч байгаа бол эдгээр нэмэлт төхөөрөмжүүд нь ESP32-г зөв горимд оруулахад саад болж байгаатай холбоотой байж магадгүй юм. Таныг зөв чиглэлд чиглүүлэхийн тулд ачаалах горимыг сонгох баримт бичгийг уншина уу. Дахин тохируулсны дараа анивчсан эсвэл ачаалсны дараа тэдгээр зүү нь хүлээгдэж буй байдлаар ажиллана.
Ачаалах үед өндөр зүү
Зарим GPIO нь ачаалах эсвэл дахин тохируулах үед төлөвөө HIGH болгож өөрчилдөг эсвэл 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.3V зохицуулагчийг идэвхгүй болгохын тулд газартай холбоно уу. Энэ нь та товчлууртай холбогдсон энэ зүүг ашиглан ESP32-оо дахин эхлүүлэх боломжтой гэсэн үг юмample.
GPIO гүйдэл зурсан
ESP40 мэдээллийн хуудасны "Зөвлөмж болгож буй үйл ажиллагааны нөхцөл" хэсгийн дагуу GPIO-д авсан үнэмлэхүй хамгийн их гүйдэл нь 32 мА байна.
ESP32 суурилуулсан танхимын эффект мэдрэгч
ESP32 нь хүрээлэн буй орчны соронзон орны өөрчлөлтийг илрүүлдэг танхимын эффект мэдрэгчтэй.
ESP32 Arduino IDE
Arduino IDE болон түүний програмчлалын хэлийг ашиглан ESP32 програмчлах боломжийг олгодог Arduino IDE-д зориулсан нэмэлт хэрэгсэл байдаг. Энэ зааварт бид Windows, Mac OS X эсвэл Linux ашиглаж байгаа эсэхээс үл хамааран Arduino IDE дээр ESP32 самбарыг хэрхэн суулгахыг харуулах болно.
Тавигдах шаардлага: 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 залгаасыг ашиглахаар төлөвлөж байгаа бол хуучин хувилбар 1.8.X-г суулгахыг зөвлөж байна. Та үүнийг олохын тулд Arduino програмын хуудсыг доош гүйлгэх хэрэгтэй.
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Arduino IDE-дээ ESP32 хавтанг суулгахын тулд дараах зааврыг дагана уу.
- Arduino IDE-дээ дараах руу очно уу File> Сонголтууд
- Дараахыг "Нэмэлт Удирдах Зөвлөлийн Менежер URLs" талбар:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Дараа нь "OK" товчийг дарна уу:Жич: Хэрэв танд ESP8266 самбар байгаа бол URL, та салгаж болно URLдараах байдлаар таслалтай s:
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 нээлттэй үед дараах алхмуудыг дагана уу:
- Хэрэгслүүд > Самбар цэснээс самбараа сонгоно уу (миний хувьд энэ нь ESP32 DEV модуль юм)
- Портыг сонгоно уу (хэрэв та Arduino IDE-д COM порт харагдахгүй бол CP210x USB to UART Bridge VCP драйверуудыг суулгах хэрэгтэй):
- Дараах эксийг нээнэ үүample under 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 шинэ ноорог ажиллаж байгаа байх ёстой. ESP32-г дахин эхлүүлэхийн тулд "ENABLE" товчийг дарж, шинээр байршуулсан ноорог ажиллуулна уу.
Та мөн шинэ ноорог байршуулахыг хүсэх бүртээ энэ товчлуурын дарааллыг давтах шаардлагатай болно.
Төслийн 1 ESP32 оролт гаралт
Энэхүү эхлэх гарын авлагад та Arduino IDE-тэй ESP32-г ашиглан товчлуурын унтраалга гэх мэт дижитал оролтыг уншиж, LED гэх мэт дижитал гаралтыг хэрхэн удирдах талаар сурах болно.
Урьдчилсан нөхцөл
Бид Arduino IDE ашиглан ESP32 программчлах болно. Тиймээс, үргэлжлүүлэхээсээ өмнө ESP32 хавтангийн нэмэлтийг суулгасан эсэхээ шалгаарай:
- Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
ESP32 хяналтын дижитал гаралт
Эхлээд та хянахыг хүсч буй GPIO-г ГАРАЛТ болгон тохируулах хэрэгтэй. PinMode() функцийг дараах байдлаар ашиглана уу.
pinMode (GPIO, OUTPUT);
Дижитал гаралтыг удирдахын тулд та аргумент болгон хүлээн авдаг digitalWrite() функцийг, таны хэлж буй GPIO (int тоо) болон ӨНДӨР эсвэл БАГА гэсэн төлөвийг ашиглахад л хангалттай.
digitalWrite(GPIO, STATE);
GPIO 6-11 (нэгдсэн SPI флэштэй холбогдсон) болон GPIO 34, 35, 36, 39 (зөвхөн GPIO оролт)-аас бусад бүх GPIO-г гаралт болгон ашиглаж болно;
ESP32 GPIO-ийн талаар нэмэлт мэдээлэл аваарай: ESP32 GPIO лавлах гарын авлага
ESP32 Дижитал оролтыг уншина
Эхлээд pinMode() функцийг ашиглан уншихыг хүссэн GPIO-г INPUT болгон тохируулна уу:
pinMode (GPIO, INPUT);
Товчлуур шиг дижитал оролтыг уншихын тулд та аргумент болгон хүлээн зөвшөөрч буй digitalRead() функцийг ашиглана.
дижитал Унших (GPIO);
GPIO 32-6 (нэгдсэн SPI флэштэй холбогдсон)-аас бусад бүх ESP11 GPIO-г оролт болгон ашиглаж болно.
ESP32 GPIO-ийн талаар нэмэлт мэдээлэл аваарай: ESP32 GPIO лавлах гарын авлага
Төсөл Example
Дижитал оролт болон дижитал гаралтыг хэрхэн ашиглахыг танд харуулахын тулд бид энгийн төслийн жишээг бүтээх болноampтовчлуур болон LED бүхий le. Дараах зурагт үзүүлсэн шиг бид товчлуурын төлөвийг уншиж, LED-ийг гэрэлтүүлэх болно.
Шаардлагатай хэсгүүд
Хэлхээ барихад шаардлагатай хэсгүүдийн жагсаалт энд байна.
- ESP32 DEVKIT V1
- 5 мм LED
- 220 Ом эсэргүүцэл
- Дарах товчлуур
- 10 к Ом эсэргүүцэл
- Талхны самбар
- Холболтын утаснууд
Схемийн диаграм
Үргэлжлүүлэхийн өмнө та 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 товчлуурState = 0;
Setup() хэсэгт та товчлуурыг INPUT, LED-ийг OUTPUT болгон эхлүүлнэ.
Үүний тулд та өөрийн хэлж буй зүүг хүлээн авах pinMode() функц болон INPUT эсвэл OUTPUT горимыг ашиглана.
pinMode(товчлуур, INPUT);
pinMode(ledPin, OUTPUT);
Loop() нь товчлуурын төлөвийг уншиж, LED-ийг тохируулсан газар юм.
Дараагийн мөрөнд товчлуурын төлөвийг уншиж, buttonState хувьсагчд хадгална.
Өмнө нь харсанчлан, та digitalRead() функцийг ашигладаг.
buttonState = digitalRead(buttonPin);
Дараах if хэллэг нь товчлуурын төлөв HIGH байгаа эсэхийг шалгана. Хэрэв тийм бол ledPin-ийг аргумент болгон хүлээн авах digitalWrite() функцийг ашиглан LED-ийг асааж, ӨНДӨР төлөвийг асаана.
хэрэв (buttonState == HIGH)Хэрэв товчлуурын төлөв ӨНДӨР биш бол та LED-ийг унтраана. DigitalWrite() функцэд LOW-г хоёр дахь аргумент болгон тохируулна уу.
Кодыг байршуулж байна
Байршуулах товчийг дарахаас өмнө Tools > Board руу ороод :DOIT ESP32 DEVKIT V1 самбарыг сонго.
Tools > Port руу очоод ESP32 холбогдсон COM портыг сонгоно уу. Дараа нь байршуулах товчийг дараад "Байршуулж дууслаа" гэсэн мессежийг хүлээнэ үү.Тэмдэглэл: Хэрэв та дибаг хийх цонхон дээр олон цэгүүд (холбож байна…__…__) харвал "ESP32-д холбогдож чадсангүй: Пакетийн толгой хэсгийг хүлээхэд хугацаа хэтэрсэн" гэсэн мессеж гарч ирвэл та ESP32-ийн BOOT дээр дарах хэрэгтэй гэсэн үг юм. цэгийн дараа товчлуур
гарч эхлэх.Алдааг олж засварлах
Жагсаал
Кодоо байршуулсны дараа хэлхээгээ шалгана уу. Таныг товчлуурыг дарахад таны LED гэрэл асна:Үүнийг суллахдаа унтраа:
Төслийн 2 ESP32 аналог оролтууд
Энэхүү төсөл нь Arduino IDE ашиглан ESP32 ашиглан аналог оролтыг хэрхэн уншихыг харуулж байна.
Аналог унших нь потенциометр эсвэл аналог мэдрэгч зэрэг хувьсах резисторуудын утгыг уншихад тустай.
Аналог оролт (ADC)
ESP32 ашиглан аналог утгыг унших нь янз бүрийн эзлэхүүнийг хэмжих боломжтой гэсэн үг юмtage түвшин 0 В-оос 3.3 В хооронд байна.
Ботьtagхэмжсэн e-г дараа нь 0-ээс 4095-ын хоорондох утгыг оноож, 0 В нь 0-тэй, 3.3 В нь 4095-тай тохирч байна. Дурын хэмжээ.tage 0 В-оос 3.3 В-ын хооронд тохирох утгыг өгнө.ADC нь шугаман бус юм
Хамгийн тохиромжтой нь ESP32 ADC тээглүүрүүдийг ашиглахдаа шугаман зан төлөвийг хүлээх болно.
Гэсэн хэдий ч ийм зүйл болохгүй. Дараах диаграммд үзүүлсэн зан төлөвийг олж авах болно.Энэ нь таны ESP32 нь 3.3 В-ыг 3.2 В-оос ялгах чадваргүй гэсэн үг юм.
Та хоёр боть ижил утгыг авах болноtages: 4095.
Энэ нь маш бага хэмжээний хувьд тохиолддогtage утгууд: 0 В ба 0.1 В-ийн хувьд та ижил утгыг авах болно: 0. ESP32 ADC зүүг ашиглахдаа үүнийг санаж байх хэрэгтэй.
analogRead() функц
Arduino IDE ашиглан ESP32 ашиглан аналог оролтыг унших нь analogRead() функцийг ашиглахтай адил хялбар юм. Энэ нь таны уншихыг хүссэн GPIO-г аргумент болгон хүлээн зөвшөөрдөг:
аналог унших (GPIO);
DEVKIT V15board-д (1 GPIO-той хувилбар) ердөө 30 ширхэг байдаг.
ESP32 самбарын зүүг аваад ADC зүүг олоорой. Эдгээрийг доорх зурган дээр улаан хүрээгээр тодруулсан.Эдгээр аналог оролтын зүү нь 12 битийн нягтралтай. Энэ нь аналог оролтыг унших үед түүний хүрээ 0-ээс 4095 хооронд хэлбэлзэж болно гэсэн үг юм.
Тайлбар: Wi-Fi ашиглаж байгаа үед ADC2 зүүг ашиглах боломжгүй. Тиймээс, хэрэв та Wi-Fi ашиглаж байгаа бөгөөд ADC2 GPIO-ээс утгыг авахад асуудалтай байгаа бол оронд нь ADC1 GPIO-г ашиглах нь таны асуудлыг шийдэх ёстой.
Бүх зүйл хоорондоо хэрхэн уялдаж байгааг харахын тулд бид энгийн экс-г хийх болноample потенциометрээс аналог утгыг унших.
Шаардлагатай хэсгүүд
Энэ эксample, танд дараах хэсгүүд хэрэгтэй:
- ESP32 DEVKIT V1 самбар
- Potentiometer
- Талхны самбар
- Холболтын утаснууд
Бүдүүвч
Потенциометрийг өөрийн ESP32 руу холбоно уу. Потенциометрийн дунд зүү нь GPIO 4-д холбогдсон байх ёстой. Та дараах бүдүүвч диаграмыг лавлагаа болгон ашиглаж болно.Код
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Project_2_ESP32_Inputs_Outputs.ino кодыг arduino IDE дээр нээнэ үү.Энэ код нь потенциометрийн утгыг зүгээр л уншиж, цуврал монитор дээр хэвлэнэ.
Кодод та потенциометрийн холбогдсон GPIO-г тодорхойлж эхэлнэ. Энэ жишээндample, GPIO 4.Setup() хэсэгт цуваа холболтыг 115200 дамжуулах хурдаар эхлүүлнэ.
Loop()-д analogRead() функцийг ашиглан potPin-ээс аналог оролтыг уншина уу.
Эцэст нь цуваа дэлгэц дээрх потенциометрээс уншсан утгыг хэвлэнэ.
Өгөгдсөн кодыг өөрийн ESP32 руу оруулна уу. Хэрэгслийн цэснээс зөв самбар болон COM портыг сонгосон эсэхээ шалгаарай.
Эксийг туршиж байнаample
Кодоо байршуулж, ESP32 дахин тохируулах товчийг дарсны дараа Цуваа мониторыг 115200 дамжуулах хурдаар нээнэ үү. Потенциометрийг эргүүлж, утгууд өөрчлөгдөж байгааг харна уу.Таны авах хамгийн дээд утга нь 4095, хамгийн бага утга нь 0 байна.
Боож байна
Энэ нийтлэлээс та Arduino IDE-тэй ESP32 ашиглан аналог оролтыг хэрхэн унших талаар сурсан. Дүгнэж хэлэхэд:
- ESP32 DEVKIT V1 DOIT хавтан (30 тээглүүртэй хувилбар) нь аналог оролтыг уншихад ашиглаж болох 15 ADC зүүтэй.
- Эдгээр зүү нь 12 битийн нягтаршилтай бөгөөд энэ нь та 0-ээс 4095 хүртэлх утгыг авах боломжтой гэсэн үг юм.
- Arduino IDE дээрх утгыг уншихын тулд та analogRead() функцийг ашиглахад л хангалттай.
- ESP32 ADC тээглүүр нь шугаман үйлдэлгүй. Та магадгүй 0 ба 0.1 В, эсвэл 3.2 ба 3.3 В хооронд ялгах чадваргүй байх болно. Та ADC зүүг ашиглахдаа үүнийг санаж байх хэрэгтэй.
Төсөл 3 ESP32 PWM(Аналог гаралт)
Энэ зааварт бид Arduino IDE ашиглан ESP32 ашиглан PWM дохиог хэрхэн үүсгэхийг танд үзүүлэх болно. Хуучин хүний хувьдampБид ESP32-ийн LED PWM хянагчийг ашиглан LED-ийг бүдгэрүүлдэг энгийн хэлхээг бүтээх болно.ESP32 LED PWM хянагч
ESP32 нь өөр өөр шинж чанартай PWM дохио үүсгэхээр тохируулах боломжтой 16 бие даасан суваг бүхий LED PWM хянагчтай.
Arduino IDE ашиглан PWM бүхий LED-ийг бүдгэрүүлэхийн тулд дараах алхмуудыг дагах хэрэгтэй.
- Эхлээд та PWM сувгийг сонгох хэрэгтэй. 16-ээс 0 хүртэлх 15 суваг байдаг.
- Дараа нь та PWM дохионы давтамжийг тохируулах хэрэгтэй. LED-ийн хувьд 5000 Гц давтамжийг ашиглахад тохиромжтой.
- Та мөн дохионы ажлын мөчлөгийн нарийвчлалыг тохируулах хэрэгтэй: танд 1-ээс 16 битийн нарийвчлал байна. Бид 8 битийн нарийвчлалыг ашиглах бөгөөд энэ нь та 0-ээс 255 хүртэлх утгыг ашиглан LED гэрлийг хянах боломжтой гэсэн үг юм.
- Дараа нь та аль GPIO эсвэл GPIO дээр дохио гарч ирэхийг зааж өгөх хэрэгтэй. Үүний тулд та дараах функцийг ашиглана.
ledcAttachPin(GPIO, суваг)
Энэ функц нь хоёр аргументыг хүлээн авдаг. Эхнийх нь дохиог гаргах GPIO, хоёр дахь нь дохио үүсгэх суваг юм. - Эцэст нь PWM ашиглан LED гэрлийг хянахын тулд та дараах функцийг ашиглана уу.
ledcWrite(суваг, үүргийн мөчлөг)
Энэ функц нь PWM дохиог үүсгэж буй суваг болон ажлын мөчлөгийг аргумент болгон хүлээн авдаг.
Шаардлагатай хэсгүүд
Энэ зааварчилгааг дагахын тулд танд дараах хэсгүүд хэрэгтэй:
- ESP32 DEVKIT V1 самбар
- 5 мм LED
- 220 Ом эсэргүүцэл
- Талхны самбар
- Холболтын утаснууд
Бүдүүвч
Дараах схемийн дагуу LED-ийг ESP32 руу холбоно уу. LED нь GPIO-д холбогдсон байх ёстой 4.Жич: гаралт болж чадах л бол та хүссэн зүүгээ ашиглаж болно. Гаралтын үүрэг гүйцэтгэж чадах бүх зүүг PWM зүү болгон ашиглаж болно. ESP32 GPIO-ийн талаар дэлгэрэнгүй мэдээллийг уншина уу: ESP32 Pinout лавлагаа: Та ямар GPIO зүү ашиглах ёстой вэ?
Код
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Project_3_ESP32_PWM.ino кодыг arduino IDE дээр нээнэ үүТа LED-ийн залгагдсан зүүг тодорхойлж эхэлнэ. Энэ тохиолдолд LED нь GPIO 4-д холбогдсон байна.
Дараа нь та PWM дохионы шинж чанарыг тохируулна. Та 5000 Гц давтамжийг тодорхойлж, дохио үүсгэхийн тулд 0 сувгийг сонгож, 8 битийн нарийвчлалыг тохируулна. Та өөр өөр PWM дохио үүсгэхийн тулд эдгээрээс өөр шинж чанаруудыг сонгож болно.
Setup() хэсэгт та аргумент, ledChannel, давтамж, нягтралыг дараах байдлаар хүлээн авдаг ledcSetup() функцийг ашиглан өмнө нь тодорхойлсон шинж чанараараа LED PWM-ийг тохируулах хэрэгтэй.
Дараа нь та дохио авах GPIO-г сонгох хэрэгтэй. Үүний тулд дохио авахыг хүссэн GPIO болон дохио үүсгэж буй сувгийг аргумент болгон хүлээн авдаг ledcAttachPin() функцийг ашиглана. Энэ жишээндample, бид GPIO 4-тэй тохирох ledPin GPIO-д дохио авах болно. Дохио үүсгэдэг суваг нь ledChannel буюу 0-р сувагтай тохирч байна.
Гогцоонд та LED гэрлийг нэмэгдүүлэхийн тулд ажлын мөчлөгийг 0-ээс 255 хооронд өөрчлөх болно.
Дараа нь гэрэлтүүлгийг багасгахын тулд 255-аас 0-ийн хооронд байна.
LED-ийн гэрлийг тохируулахын тулд та дохио үүсгэж буй суваг болон ажлын мөчлөгийг аргумент болгон хүлээн авдаг ledcWrite() функцийг ашиглах хэрэгтэй.
Бид 8 битийн нарийвчлалыг ашиглаж байгаа тул ажлын мөчлөгийг 0-ээс 255 хүртэлх утгыг ашиглан хянах болно. ledcWrite() функцэд бид GPIO биш харин дохио үүсгэдэг сувгийг ашигладаг болохыг анхаарна уу.
Эксийг туршиж байнаample
Кодоо ESP32 дээрээ байршуулна уу. Зөв самбар болон COM портыг сонгосон эсэхээ шалгаарай. Өөрийн хэлхээг хар. Та гэрэлтүүлгийг нэмэгдүүлж, багасгадаг LED-тэй байх ёстой.
Төсөл 4 ESP32 PIR хөдөлгөөн мэдрэгч
Энэ төсөл нь PIR хөдөлгөөн мэдрэгч ашиглан ESP32-ийн тусламжтайгаар хөдөлгөөнийг хэрхэн илрүүлэхийг харуулж байна. Хөдөлгөөн илэрсэн үед дуут дохио дуугарах ба урьдчилан тогтоосон хугацаанд (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)
- Идэвхтэй дуугаралт
- Холболтын утаснууд
- Талхны самбар
БүдүүвчЖич: Ажлын ботьtagHC-SR501-ийн e нь 5V байна. Үүнийг ажиллуулахын тулд Vin зүү ашиглана уу.
Код
Энэхүү зааварчилгааг үргэлжлүүлэхийн өмнө та ESP32 нэмэлтийг Arduino IDE дээрээ суулгасан байх ёстой. Дараах зааврын аль нэгийг дагаж ESP32-г Arduino IDE дээр суулгаж амжаагүй байгаа бол (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Project_4_ESP32_PIR_Motion_Sensor.ino кодыг arduino IDE дээр нээнэ үү.
Жагсаал
Кодоо ESP32 самбартаа байршуулна уу. Зөв самбар болон COM портыг сонгосон эсэхээ шалгаарай. Байршуулах кодын лавлах алхмууд.
Цуваа дэлгэцийг 115200 дамжуулах хурдаар нээнэ үү.Гараа PIR мэдрэгчийн урд хөдөлгө. Дуут дохио асах ёстой бөгөөд "Хөдөлгөөн илэрсэн! Дуут дохио" гэсэн мессеж Цуваа дэлгэц дээр хэвлэгдэх болно.
4 секундын дараа дуут дохио унтарна.
Төсөл 5 ESP32 шилжүүлэгч Web Сервер
Энэ төсөлд та бие даасан төсөл үүсгэх болно web Arduino IDE програмчлалын орчинг ашиглан гаралтыг (хоёр LED) хянадаг ESP32 бүхий сервер. The web сервер нь гар утсанд хариу үйлдэл үзүүлэх чадвартай бөгөөд дотоод сүлжээнд хөтчөөр ажилладаг ямар ч төхөөрөмжөөс хандах боломжтой. Бид танд хэрхэн үүсгэхийг харуулах болно web сервер болон код хэрхэн ажилладаг талаар алхам алхмаар.
Төсөл дууссанview
Төсөл рүү шууд орохын өмнө бидний юу болохыг тоймлох нь чухал юм web сервер хийх бөгөөд ингэснээр дараа нь алхмуудыг дагахад хялбар болно.
- The web Таны бүтээх сервер нь ESP32 GPIO 26 болон GPIO 27-д холбогдсон хоёр LED-ийг удирддаг;
- Та ESP32 руу нэвтрэх боломжтой web дотоод сүлжээнд байгаа хөтөч дээр ESP32 IP хаягийг бичиж сервер;
- Өөрийн товчлуурууд дээр дарснаар web сервер нь LED бүрийн төлөвийг шууд өөрчлөх боломжтой.
Шаардлагатай хэсгүүд
Энэхүү зааварчилгааны хувьд танд дараах хэсгүүд хэрэгтэй болно.
- ESP32 DEVKIT V1 самбар
- 2х 5мм LED
- 2х 200 Ом эсэргүүцэл
- Талхны самбар
- Холболтын утаснууд
Бүдүүвч
Хэлхээ барьж эхэл. Дараах схемийн дагуу хоёр LED-ийг ESP32-д холбоно уу - нэг LED нь GPIO 26, нөгөө нь GPIO 27-д холбогдсон байна.
Жич: Бид 32 зүү бүхий ESP36 DEVKIT DOIT хавтанг ашиглаж байна. Хэлхээг угсрахаасаа өмнө ашиглаж буй самбарынхаа залгуурыг шалгана уу.Код
Энд бид ESP32-г үүсгэдэг кодыг өгдөг web сервер. Project_5_ESP32_Switch _ кодыг нээнэ үүWeb_Server.ino arduino IDE дээр, гэхдээ үүнийг хараахан байршуулж болохгүй. Үүнийг өөрт ашигтай болгохын тулд та зарим өөрчлөлтийг хийх хэрэгтэй.
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Таны сүлжээний итгэмжлэлүүдийг тохируулах
Та дараах мөрүүдийг сүлжээний итгэмжлэлээрээ өөрчлөх шаардлагатай: SSID болон нууц үг. Код нь хаана өөрчлөлт хийх ёстойг сайтар тайлбарласан болно.Кодыг байршуулж байна
Одоо та код болон кодыг байршуулж болно web сервер шууд ажиллах болно.
ESP32 руу код байршуулахын тулд дараах алхмуудыг дагана уу:
- ESP32 самбараа компьютертээ залгаарай;
- Arduino IDE дээр Хэрэгслүүд > Самбар хэсгээс самбараа сонгоно уу (бидний хувьд ESP32 DEVKIT DOIT хавтанг ашиглаж байна);
- Tools > Port хэсгээс COM портыг сонгоно уу.
- Arduino IDE дээрх "Байршуулах" товчийг дараад кодыг эмхэтгэж, самбарт байршуулах хүртэл хэдэн секунд хүлээнэ үү.
- "Байршуулж дууслаа" гэсэн мессежийг хүлээнэ үү.
ESP IP хаягийг хайж байна
Кодоо байршуулсны дараа цуврал мониторыг 115200 дамжуулах хурдаар нээнэ үү.ESP32 EN товчийг дарна уу (дахин тохируулах). ESP32 нь Wi-Fi-д холбогдож, ESP IP хаягийг цуврал монитор дээр гаргадаг. Энэ IP хаягийг хуулж ав, учир нь энэ нь танд ESP32-д хандах шаардлагатай web сервер.
хандах нь Web Сервер
хандахын тулд web серверийг нээж, ESP32 IP хаягийг оруулаад дараах хуудсыг харах болно.
Жич: Таны хөтөч болон ESP32 нэг LAN сүлжээнд холбогдсон байх ёстой.Хэрэв та Цуврал мониторыг харвал цаана нь юу болж байгааг харж болно. ESP нь шинэ үйлчлүүлэгчээс HTTP хүсэлтийг хүлээн авдаг (энэ тохиолдолд таны хөтөч).
Та мөн HTTP хүсэлтийн талаарх бусад мэдээллийг харж болно.
Жагсаал
Одоо та өөрийн эсэхийг шалгах боломжтой web сервер хэвийн ажиллаж байна. Товчнууд дээр дарж LED-г удирдана.Үүний зэрэгцээ та Цуврал мониторыг хараад цаана нь юу болж байгааг харах боломжтой. Жишээ ньample, та GPIO 26-г асаах товчийг дарахад ESP32 /26/on дээр хүсэлт хүлээн авна. URL.
ESP32 энэ хүсэлтийг хүлээн авмагц GPIO 26-д холбогдсон LED-ийг асааж, төлөвийг нь шинэчилнэ. web хуудас.
GPIO 27 товчлуур нь ижил төстэй байдлаар ажилладаг. Энэ нь зөв ажиллаж байгаа эсэхийг шалгана уу.
Код хэрхэн ажилладаг вэ
Энэ хэсэгт кодыг нарийвчлан авч үзэхийн тулд энэ нь хэрхэн ажилладагийг харах болно.
Таны хийх ёстой хамгийн эхний зүйл бол WiFi номын санг оруулах явдал юм.Өмнө дурьдсанчлан, та давхар хашилт дотор дараах мөрөнд ssid болон нууц үгээ оруулах хэрэгтэй.
Дараа нь та өөрийн тохиргоог хийнэ үү web сервер 80 порт руу.
Дараах мөр нь HTTP хүсэлтийн толгой хэсгийг хадгалах хувьсагчийг үүсгэдэг:
Дараа нь та гаралтынхаа одоогийн төлөвийг хадгалах туслах хувьсагчдыг үүсгэнэ. Хэрэв та илүү олон гаралт нэмж, төлөвийг нь хадгалахыг хүсвэл илүү олон хувьсагч үүсгэх хэрэгтэй.
Та мөн гаралт бүртээ GPIO оноох хэрэгтэй. Энд бид GPIO 26 болон GPIO 27-г ашиглаж байна. Та өөр ямар ч тохиромжтой GPIO ашиглаж болно.
тохиргоо ()
Одоо тохиргоо руу орцгооё(). Эхлээд бид дибаг хийх зорилгоор 115200 дамжуулах хурдаар цуваа холболтыг эхлүүлнэ.Та мөн GPIO-уудаа OUTPUT гэж тодорхойлж, LOW болгож тохируулна уу.
Дараах мөрүүд нь WiFi.begin (ssid, нууц үг)-ээр Wi-Fi холболтыг эхлүүлж, амжилттай холболтыг хүлээж, ESP IP хаягийг цуврал дэлгэц дээр хэвлэнэ.
давталт()
Loop()-д бид шинэ үйлчлүүлэгчтэй холбогдоход юу болохыг программчилдаг 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 хуудас.
The 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-үүдийг реле эсвэл хянахыг хүссэн бусад гаралтаар солих санаа юм.
Төслийн 6 RGB LED Web Сервер
Энэ төсөлд бид RGB LED-ийг ESP32 самбар ашиглан алсаас хэрхэн удирдахыг харуулах болно web өнгө сонгогчтой сервер.
Төсөл дууссанview
Эхлэхээсээ өмнө энэ төсөл хэрхэн ажилладагийг харцгаая:
- ESP32 web сервер өнгө сонгогчийг харуулна.
- Таныг өнгө сонгоход таны хөтөч a дээр хүсэлт гаргадаг URL сонгосон өнгөний R, G, B параметрүүдийг агуулсан.
- Таны ESP32 хүсэлтийг хүлээн авч, өнгөний параметр бүрийн утгыг хуваана.
- Дараа нь RGB LED-ийг удирдаж буй GPIO-д тохирох утгатай PWM дохиог илгээдэг.
RGB LED хэрхэн ажилладаг вэ?
Нийтлэг катодын RGB LED-д бүх гурван LED нь сөрөг холболтыг (катод) хуваалцдаг. Иж бүрдэлд багтсан бүгд нийтлэг катодын RGB байна.Янз бүрийн өнгийг хэрхэн бүтээх вэ?
Мэдээжийн хэрэг, RGB LED-ийн тусламжтайгаар та улаан, ногоон, цэнхэр гэрлийг гаргаж авах боломжтой бөгөөд LED бүрийн эрчмийг тохируулснаар та бусад өнгийг гаргаж чадна.
Жишээ ньample, цэвэр цэнхэр гэрэл гаргахын тулд та цэнхэр LED-ийг хамгийн их эрчимтэй болгож, ногоон, улаан LED-ийг хамгийн бага эрчимтэй болгох хэрэгтэй. Цагаан гэрлийн хувьд та бүх гурван LED-ийг хамгийн их эрчимтэй болгох ёстой.
Өнгө холих
Бусад өнгө гаргахын тулд та гурван өнгийг өөр өөр эрчимтэй хослуулж болно. LED бүрийн эрчмийг тохируулахын тулд та PWM дохиог ашиглаж болно.
LED нь хоорондоо маш ойрхон байдаг тул бидний нүд гурван өнгийг тус тусад нь биш харин өнгөний хослолын үр дүнг хардаг.
Өнгийг хэрхэн хослуулах талаар санаа авахын тулд дараах хүснэгтийг харна уу.
Энэ бол хамгийн энгийн өнгө холих график боловч энэ нь хэрхэн ажилладаг, хэрхэн өөр өөр өнгө гаргах талаар санаа өгдөг.Шаардлагатай хэсгүүд
Энэ төслийн хувьд танд дараах хэсгүүд хэрэгтэй болно.
- ESP32 DEVKIT V1 самбар
- RGB LED
- 3х 220 ом эсэргүүцэл
- Холболтын утаснууд
- Талхны самбар
БүдүүвчКод
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
- Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Хэлхээг угсарсны дараа кодыг нээнэ үү
Төсөл_6_RGB_LED_Web_Server.ino arduino IDE дээр.
Кодоо байршуулахаасаа өмнө ESP таны дотоод сүлжээнд холбогдохын тулд сүлжээний итгэмжлэлээ оруулахаа бүү мартаарай.Код хэрхэн ажилладаг
ESP32 тойм зураг нь WiFi.h номын санг ашигладаг.Дараах мөрүүд нь хүсэлтийн R, G, B параметрүүдийг хадгалах мөрийн хувьсагчдыг тодорхойлдог.
Дараагийн дөрвөн хувьсагчийг дараа нь HTTP хүсэлтийг тайлахад ашиглана.
R, G, B зурвасын параметрүүдийг хянах GPIO-д гурван хувьсагч үүсгэ. Энэ тохиолдолд бид 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 дохиог үүсгэнэ үү. хүсэлт.
Жич: ESP32-тай PWM-ийн талаар илүү ихийг мэдэж аваарай: Project 3 ESP32 PWM(Аналог Гаралт)
ESP8266 ашиглан туузыг удирдахын тулд бид зүгээр л ашиглах хэрэгтэй
analogWrite() функц нь HTPP хүсэлтээс тайлагдсан утгуудаар PWM дохио үүсгэх.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Бид мөрийн хувьсагчийн утгуудыг авдаг тул toInt() аргыг ашиглан бүхэл тоо руу хөрвүүлэх хэрэгтэй.
Жагсаал
Сүлжээний итгэмжлэлээ оруулсны дараа баруун самбар болон COM портыг сонгоод ESP32. Upload кодын лавлах алхмууд руу кодыг байршуулна уу.
Татаж авсны дараа 115200 дамжуулах хурдаар Serial Monitor-ийг нээж, ESP Enable/Reset товчийг дарна уу. Та самбарын IP хаягийг авах ёстой.Хөтөчөө нээгээд ESP IP хаягаа оруулна уу. Одоо өнгө сонгогчийг ашиглан RGB LED-ийн өнгийг сонгоно уу.
Дараа нь өнгө нь хүчин төгөлдөр болохын тулд та "Өнгийг өөрчлөх" товчийг дарах хэрэгтэй.RGB LED-ийг унтраахын тулд хар өнгийг сонгоно уу.
Хамгийн хүчтэй өнгө (өнгө сонгогчийн дээд талд) нь илүү сайн үр дүнд хүрэх болно.
Төсөл 7 ESP32 реле Web Сервер
ESP32-тэй реле ашиглах нь АС гэр ахуйн цахилгаан хэрэгслийг алсаас удирдах гайхалтай арга юм. Энэхүү заавар нь ESP32 ашиглан релений модулийг хэрхэн удирдахыг тайлбарладаг.
Бид релений модуль хэрхэн ажилладаг, релейг ESP32-тэй хэрхэн холбож, хэрхэн холбох талаар авч үзэх болно. web релейг алсаас удирдах сервер.
Релейг танилцуулж байна
Реле нь цахилгаанаар ажилладаг унтраалга бөгөөд бусад унтраалгатай адил гүйдлийг дамжуулж, унтрааж, асаах боломжтой. Үүнийг бага хэмжээгээр хянах боломжтойtages, ESP3.3 GPIO-ийн өгсөн 32V шиг өндөр хүчдэлийг хянах боломжийг бидэнд олгодог.tag12V, 24V эсвэл үндсэн хүчдэл гэх мэтtage (Европт 230 В, АНУ-д 120 В).Зүүн талд өндөр вольтыг холбох гурван залгуур бүхий хоёр багц байдагtages, баруун талд байгаа тээглүүр (бага ботьtage) ESP32 GPIO-д холбогдох.
Mains Voltage ХолболтуудӨмнөх зурагт үзүүлсэн реле модуль нь нийтлэг (COM), хэвийн хаалттай (NC), хэвийн нээлттэй (NO) гэсэн гурван залгууртай хоёр холбогчтой.
- COM: хянахыг хүсч буй гүйдлээ холбоно уу (гол ботьtage).
- NC (Нормаль хаалттай): ердийн хаалттай тохиргоог релейг анхдагчаар хаахыг хүссэн үед ашигладаг. Сүлжээний сүлжээ нь COM тээглүүрүүдийг холбосон тул хэлхээг нээж, гүйдлийн урсгалыг зогсоохын тулд ESP32-аас реле модуль руу дохио илгээхгүй л бол гүйдэл урсаж байна гэсэн үг.
- ҮГҮЙ (Ердийн нээлттэй): ердийн нээлттэй тохиргоо эсрэгээр ажилладаг: NO болон COM зүү хооронд ямар ч холболт байхгүй тул та ESP32-оос хэлхээг хаах дохиог илгээхгүй бол хэлхээ тасарна.
Хяналтын зүүБага ботьtage тал нь дөрвөн тээглүүр, гурван зүү бүхий багцтай. Эхний багц нь модулийг асаах VCC ба GND, доод ба дээд релеийг удирдах оролт 1 (IN1) ба оролт 2 (IN2) -ээс бүрдэнэ.
Хэрэв таны релений модуль зөвхөн нэг сувагтай бол танд зөвхөн нэг IN зүү байх болно. Хэрэв танд дөрвөн суваг байгаа бол дөрвөн IN зүү гэх мэт.
Таны IN зүү рүү илгээсэн дохио нь реле идэвхтэй байгаа эсэхийг тодорхойлдог. Оролт нь ойролцоогоор 2 В-оос доош орох үед реле идэвхждэг. Энэ нь танд дараах хувилбарууд тохиолдох болно гэсэн үг юм.
- Ердийн хаалттай тохиргоо (NC):
- ӨНДӨР дохио - гүйдэл урсаж байна
- БАГА дохио - гүйдэл урсахгүй байна
- Ихэвчлэн нээлттэй тохиргоо (NO):
- ӨНДӨР дохио - гүйдэл урсахгүй байна
- БАГА дохио - урсаж буй гүйдэл
Ихэнх тохиолдолд гүйдэл урсах үед та ердийн хаалттай тохиргоог ашиглах ёстой бөгөөд та үүнийг хааяа зогсоохыг хүсдэг.
Гүйдлийг хааяа урсгахыг хүсвэл ердийн нээлттэй тохиргоог ашиглаарай (жишээ ньample, al-г асаана уу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 фолдерыг задлаад та ESPAsync авах хэрэгтэйWebСервер-мастер хавтас
- ESPAsync-ээс хавтасныхаа нэрийг өөрчилWebESPAsync руу серверийн мастерWebСервер
- ESPAsync-ийг зөөнө үүWebСерверийн хавтсыг өөрийн Arduino IDE суулгацын номын сангийн хавтас руу оруулна
Эсвэл та Arduino IDE дээрээ Sketch > Include руу очиж болно
Номын сан > .ZIP номын сан нэмээд... саяхан татаж авсан номын сангаа сонгоно уу.
ESP32-д зориулсан AsyncTCP номын санг суулгаж байна
The ESPAsyncWebСервер номын сан шаарддаг AsyncTCP ажиллах номын сан. Дага
номын санг суулгах дараагийн алхамууд:
- AsyncTCP номын санг энд дарж татаж авна уу. Та "Татаж авсан файл" хавтсандаа .zip хавтастай байх ёстой
- .zip фолдерыг задлаад AsyncTCP-мастер фолдер авах болно
1. Фолдерынхаа нэрийг AsyncTCP-master-аас AsyncTCP болгон өөрчил
3. AsyncTCP хавтсыг өөрийн Arduino IDE суулгацын сангуудын хавтас руу зөөнө үү
4. Эцэст нь Arduino IDE-ээ дахин нээнэ үү
Эсвэл та Arduino IDE дээрээ Sketch > Include руу очиж болно
Номын сан > .ZIP номын сан нэмээд... саяхан татаж авсан номын сангаа сонгоно уу.
Код
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Шаардлагатай сангуудыг суулгасны дараа Project_7_ESP32_Relay_ кодыг нээнэ үү.Web_Server.ino arduino IDE дээр.
Кодоо байршуулахаасаа өмнө ESP таны дотоод сүлжээнд холбогдохын тулд сүлжээний итгэмжлэлээ оруулахаа бүү мартаарай.Жагсаал
Шаардлагатай өөрчлөлтүүдийг хийсний дараа кодыг өөрийн ESP32. Upload кодын лавлах алхмуудад байршуулна уу.
Цуваа мониторыг 115200 дамжуулах хурдаар нээгээд ESP32 EN товчийг дарж IP хаягийг нь авна уу. Дараа нь дотоод сүлжээндээ хөтөч нээж ESP32 IP хаягийг бичнэ үү. web сервер.
Цуваа мониторыг 115200 дамжуулах хурдаар нээгээд ESP32 EN товчийг дарж IP хаягийг нь авна уу. Дараа нь дотоод сүлжээндээ хөтөч нээж ESP32 IP хаягийг бичнэ үү. web сервер.Жич: Таны хөтөч болон ESP32 нэг LAN сүлжээнд холбогдсон байх ёстой.
Та коддоо тодорхойлсон релений тоог хоёр товчлуураар дараах байдлаар авах ёстой.Одоо та ухаалаг гар утсаа ашиглан релейгээ удирдахын тулд товчлууруудыг ашиглаж болно.
Төслийн_8_Гаралтын_төлөв_синхрончлол_ Web_Сервер
Энэхүү төсөл нь ESP32 эсвэл ESP8266 гаралтыг ашиглан хэрхэн удирдахыг харуулж байна web сервер болон физик товчлуурыг нэгэн зэрэг ажиллуулна. Гаралтын төлөв нь дээр шинэчлэгдсэн web Энэ нь физик товчлуураар өөрчлөгдсөн эсэхээс үл хамааран хуудас web сервер.
Төсөл дууссанview
Төсөл хэрхэн хэрэгжиж байгааг хурдан харцгаая.ESP32 эсвэл ESP8266 нь a web гаралтын төлөвийг хянах боломжийг олгодог сервер;
- Одоогийн гаралтын төлөв нь дээр харагдана web сервер;
- ESP нь мөн ижил гаралтыг хянадаг физик товчлууртай холбогдсон;
- Хэрэв та физик товчлуурыг ашиглан гаралтын төлөвийг өөрчлөх юм бол түүний одоогийн төлөв мөн дээр шинэчлэгдэнэ web сервер.
Дүгнэж хэлэхэд, энэ төсөл нь a ашиглан ижил гаралтыг хянах боломжийг танд олгоно web сервер болон товчлуурыг нэгэн зэрэг дарна. Гаралтын төлөв өөрчлөгдөх бүрд web сервер шинэчлэгдсэн.
Шаардлагатай хэсгүүд
Хэлхээ барихад шаардлагатай хэсгүүдийн жагсаалт энд байна.
- ESP32 DEVKIT V1 самбар
- 5 мм LED
- 220 Ом эсэргүүцэл
- Дарах товчлуур
- 10 к Ом эсэргүүцэл
- Талхны самбар
- Холболтын утаснууд
БүдүүвчESP32-д зориулсан номын санг суулгаж байна
Үүнийг барихын тулд web серверийн хувьд бид ESPAsync ашигладагWebСерверийн номын сан болон AsyncTCP номын сан.(Хэрэв та энэ алхмыг аль хэдийн хийсэн бол дараагийн алхам руу алгасаж болно.)
ESPAsync суулгаж байнаWebСерверийн номын сан
ESPAsync суулгахын тулд дараагийн алхмуудыг дагана ууWebСерверийн номын сан:
- ESPAsync програмыг татаж авах бол энд дарна ууWebСерверийн номын сан. Чи байх ёстой
Татаж авсан файлын хавтас доторх .zip хавтас - .zip фолдерыг задлаад та ESPAsync авах хэрэгтэйWebСервер-мастер хавтас
- ESPAsync-ээс хавтасныхаа нэрийг өөрчилWebESPAsync руу серверийн мастерWebСервер
- ESPAsync-ийг зөөнө үүWebСерверийн хавтсыг өөрийн Arduino IDE суулгацын номын сангийн хавтас руу оруулна
Эсвэл та Arduino IDE дээрээ Sketch > Include руу очиж болно
Номын сан > .ZIP номын сан нэмээд... саяхан татаж авсан номын сангаа сонгоно уу.
ESP32-д зориулсан AsyncTCP номын санг суулгаж байна
ESPAsyncWebСерверийн номын сан нь ажиллахын тулд AsyncTCP номын санг шаарддаг. Энэ номын санг суулгахын тулд дараах алхмуудыг дагана уу:
- AsyncTCP номын санг энд дарж татаж авна уу. Та "Татаж авсан файл" хавтсандаа .zip хавтастай байх ёстой
- .zip фолдерыг задлаад AsyncTCP-мастер фолдер авах болно
- Өөрийн фолдерын нэрийг AsyncTCP-мастераас AsyncTCP болгон өөрчил
- AsyncTCP фолдерыг өөрийн Arduino IDE суулгацын номын сангийн хавтас руу зөөнө үү
- Эцэст нь Arduino IDE-ээ дахин нээнэ үү
Эсвэл та Arduino IDE дээрээ Sketch > Include руу очиж болно
Номын сан > .ZIP номын сан нэмээд... саяхан татаж авсан номын сангаа сонгоно уу.
Код
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Шаардлагатай сангуудыг суулгасны дараа кодыг нээнэ үү
Төслийн_8_Гаралтын_төлөв_синхрончлол_Web_Server.ino arduino IDE дээр.
Кодоо байршуулахаасаа өмнө ESP таны дотоод сүлжээнд холбогдохын тулд сүлжээний итгэмжлэлээ оруулахаа бүү мартаарай.
Код хэрхэн ажилладаг вэ
Товчлуурын төлөв ба гаралтын төлөв
ledState хувьсагч нь LED гаралтын төлөвийг агуулна. Анхдагч байдлаар, хэзээ web сервер эхэлж байна, энэ нь БАГА байна.
ButtonState болон lastButtonState нь товчлуур дарагдсан эсэхийг илрүүлэхэд ашиглагддаг.Товчлуур (web сервер)
Бид index_html хувьсагч дээр товчлуур үүсгэх HTML-г оруулаагүй.
Учир нь бид товчлуурын тусламжтайгаар өөрчлөх боломжтой одоогийн LED төлөвөөс хамаарч үүнийг өөрчлөх боломжтой байхыг хүсч байна.
Тиймээс бид %BUTTONPLACEHOLDER% товчлуурын орлуулагчийг үүсгэсэн бөгөөд үүнийг дараа нь код дээр товчлуур үүсгэхийн тулд HTML текстээр солих болно (энэ нь процессор() функц дээр хийгддэг).процессор()
Процессор() функц нь HTML текст дээрх ямар ч орлуулагчийг бодит утгаар орлуулдаг. Нэгдүгээрт, энэ нь HTML текстэнд ямар нэгэн зүйл байгаа эсэхийг шалгадаг
орлуулагч %BUTTONPLACEHOLDER%.Дараа нь одоогийн гаралтын төлөвийг буцаадаг theoutputState() функцийг дуудна. Бид үүнийг outputStateValue хувьсагчид хадгалдаг.
Үүний дараа товчлуурыг зөв төлөвт харуулахын тулд HTML текстийг үүсгэхийн тулд энэ утгыг ашиглана уу:
HTTP GET гаралтын төлөвийг өөрчлөх хүсэлт (JavaScript)
Та товчлуурыг дарахад thetoggleCheckbox() функц дуудагдана. Энэ функц нь өөр зүйл дээр хүсэлт гаргах болно URLs LED-ийг асаах эсвэл унтраах.LED-ийг асаахын тулд /update?state=1 дээр хүсэлт гаргадаг URL:
Үгүй бол /update?state=0 дээр хүсэлт гаргадаг URL.
HTTP GET төлөвийг шинэчлэх хүсэлт (JavaScript)
Гаралтын төлөвийг шинэчилсэн байлгахын тулд web серверийн хувьд бид /state дээр шинэ хүсэлт гаргах дараах функцийг дууддаг URL секунд тутамд.Хүсэлтийг зохицуулах
Дараа нь ESP32 эсвэл ESP8266 эдгээр хүсэлтийг хүлээн авахад юу тохиолдохыг шийдэх хэрэгтэй. URLs.
Үндэс дээр хүсэлт хүлээн авах үед /URL, бид HTML хуудас болон процессорыг илгээдэг.Дараах мөрүүд нь таныг /update?state=1 эсвэл /update?state=0 дээр хүсэлт хүлээн авсан эсэхийг шалгана. URL led төлөвийг зохих ёсоор өөрчилнө.
Хүсэлт хүлээн авах үед / муж URL, бид одоогийн гаралтын төлөвийг илгээдэг:
давталт()
Loop()-д бид товчлуурыг задалж, ledState-ийн утгаас хамааран LED-ийг асаах эсвэл унтраадаг. хувьсагч.Жагсаал
Кодоо ESP32 самбартаа байршуулна уу. Кодын лавлах алхмуудыг байршуулна уу.
Дараа нь цуврал мониторыг 115200 дамжуулах хурдаар нээнэ үү. IP хаягийг авахын тулд самбар дээрх EN/RST товчийг дарна уу.Дотоод сүлжээндээ хөтөч нээгээд ESP IP хаягаа бичнэ үү. Та нэвтрэх эрхтэй байх ёстой web доор үзүүлсэн шиг сервер.
Жич: Таны хөтөч болон ESP32 нэг LAN сүлжээнд холбогдсон байх ёстой.Та дээрх товчлуурыг сольж болно web LED-ийг асаах сервер.
Та мөн ижил LED-ийг физик товчлуураар удирдаж болно. Түүний төлөв нь үргэлж автоматаар шинэчлэгдэх болно web сервер.
Төсөл 9 ESP32 DHT11 Web Сервер
Энэ төсөлд та асинхрон ESP32 хэрхэн бүтээх талаар сурах болно web Arduino IDE ашиглан температур, чийгшлийг харуулдаг DHT11 сервер.
Урьдчилсан нөхцөл
The web серверийг бид сэргээн засварлах шаардлагагүйгээр автоматаар уншуулж шинэчлэх болно web хуудас.
Энэ төслөөр та дараах зүйлсийг сурах болно:
- DHT мэдрэгчээс температур, чийгшлийг хэрхэн унших;
- Асинхрон үүсгэх web ашиглан сервер ESPAsyncWebСерверийн номын сан;
- Мэдрэгчийн уншилтыг дахин шинэчлэх шаардлагагүйгээр автоматаар шинэчилнэ үү web хуудас.
Асинхрон Web Сервер
барихын тулд web серверийг бид ашиглах болно ESPAsyncWebСерверийн номын сан Энэ нь асинхрон үүсгэх хялбар арга юм web сервер. Асинхрон бүтээх web сервер нь хэд хэдэн давуу талтайtages номын сангийн GitHub хуудсанд дурдсанчлан, тухайлбал:
- "Нэг зэрэг олон холболттой ажиллах";
- "Та хариу илгээх үед сервер цаана нь хариу илгээх ажлыг хариуцаж байх үед та бусад холболтуудыг зохицуулахад бэлэн болно";
- "Загвартай ажиллах энгийн загвар боловсруулах хөдөлгүүр";
Шаардлагатай хэсгүүд
Энэ хичээлийг дуусгахын тулд танд дараах хэсгүүд хэрэгтэй болно.
- ESP32 хөгжүүлэх самбар
- DHT11 модуль
- Талхны самбар
- Холболтын утаснууд
БүдүүвчНомын сангуудыг суулгаж байна
Та энэ төсөлд зориулж хэд хэдэн номын сан суулгах хэрэгтэй:
- The DHT болон Adafruit нэгдсэн мэдрэгч DHT мэдрэгчээс унших жолоочийн сангууд.
- ESPAsyncWebСервер болон Async TCP асинхрон бүтээх номын сангууд web сервер.
Эдгээр сангуудыг суулгахын тулд дараах зааврыг дагана уу:
DHT мэдрэгчийн номын санг суулгаж байна
Arduino IDE ашиглан DHT мэдрэгчээс уншихын тулд та үүнийг суулгах хэрэгтэй DHT мэдрэгчийн номын сан. Номын санг суулгахын тулд дараагийн алхмуудыг дагана уу.
- DHT Sensor номын санг энд дарж татаж авна уу. Та "Татаж авсан файл" хавтсандаа .zip хавтастай байх ёстой
- .zip хавтсыг задлаад DHT-sensor-library-master хавтас авах болно
- Өөрийн фолдерын нэрийг DHT-sensor-libraries-master-аас DHT_sensor болгон өөрчил
- DHT_sensor хавтсыг Arduino IDE суулгацын номын сангийн хавтас руу зөөнө үү
- Эцэст нь Arduino IDE-ээ дахин нээнэ үү
Adafruit нэгдсэн мэдрэгч драйверийг суулгаж байна
Та мөн суулгах хэрэгтэй Adafruit нэгдсэн мэдрэгч драйверын номын сан 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 фолдерыг задлах хэрэгтэй
ESPAsync авахWebСервер-мастер хавтас - ESPAsync-ээс хавтасныхаа нэрийг өөрчилWebESPAsync руу серверийн мастерWebСервер
- ESPAsync-ийг зөөнө үүWebСерверийн хавтсыг өөрийн Arduino IDE суулгацын номын сангийн хавтас руу оруулна
ESP32-д зориулсан Async TCP номын санг суулгаж байна
The ESPAsyncWebСервер номын сан шаарддаг AsyncTCP ажиллах номын сан. Энэ номын санг суулгахын тулд дараах алхмуудыг дагана уу:
- AsyncTCP номын санг энд дарж татаж авна уу. Та "Татаж авсан файл" хавтсандаа .zip хавтастай байх ёстой
- .zip фолдерыг задлаад AsyncTCP-мастер фолдер авах болно
- Өөрийн фолдерын нэрийг AsyncTCP-мастераас AsyncTCP болгон өөрчил
- AsyncTCP фолдерыг өөрийн Arduino IDE суулгацын номын сангийн хавтас руу зөөнө үү
- Эцэст нь Arduino IDE-ээ дахин нээнэ үү
Код
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байна
Шаардлагатай сангуудыг суулгасны дараа кодыг нээнэ үү
Төсөл_9_ESP32_DHT11_Web_Server.ino arduino IDE дээр.
Кодоо байршуулахаасаа өмнө ESP таны дотоод сүлжээнд холбогдохын тулд сүлжээний итгэмжлэлээ оруулахаа бүү мартаарай.Код хэрхэн ажилладаг вэ
Дараах догол мөрөнд бид код хэрхэн ажилладагийг тайлбарлах болно. Хэрэв та илүү ихийг мэдэхийг хүсвэл үргэлжлүүлэн уншаарай эсвэл эцсийн үр дүнг харахын тулд Үзүүлэх хэсэг рүү очно уу.
Номын санг импортлох
Нэгдүгээрт, шаардлагатай номын сангуудыг импортлох. WiFi, ESPAsyncWebҮүнийг бүтээхэд сервер болон ESPAsyncTCP хэрэгтэй web сервер. Adafruit_Sensor болон DHT сангууд нь DHT11 эсвэл DHT22 мэдрэгчээс уншихад хэрэгтэй.Хувьсагчийн тодорхойлолт
DHT өгөгдлийн зүү холбогдсон GPIO-г тодорхойлно уу. Энэ тохиолдолд энэ нь GPIO 4-тэй холбогдсон байна.Дараа нь ашиглаж буй DHT мэдрэгчийн төрлөө сонгоно уу. Манай экс дээрample, бид DHT22 ашиглаж байна. Хэрэв та өөр төрлийг ашиглаж байгаа бол мэдрэгчийнхээ тайлбарыг болиулж, бусад бүх зүйлд сэтгэгдэл бичих хэрэгтэй.
Бидний өмнө нь тодорхойлсон төрөл, зүүгээр DHT объектыг үүсгэнэ үү.Async үүсгэхWeb80 порт дээрх сервер объект.
Температур ба чийгшлийн функцуудыг уншина уу
Бид хоёр функцийг үүсгэсэн: нэг нь температурыг унших Бид хоёр функц үүсгэсэн: нэг нь температурыг унших (readDHTTemperature()), нөгөө нь чийгшлийг унших (readDHTHumidity()).Мэдрэгчийн уншилтыг авах нь dht объект дээрх readTemperature() болон readHumidity() аргуудыг ашиглахтай адил хялбар Мэдрэгчийн уншилтыг авах явдал юм.
Мэдрэгч уншилтыг авч чадахгүй тохиолдолд хоёр зураас (-) буцаах нөхцөл бидэнд бас бий.
Уншилтыг мөрийн төрлөөр буцаана. Хөвөгчийг мөр болгон хөрвүүлэхийн тулд String() функцийг ашиглана уу
Анхдагч байдлаар бид температурыг Цельсийн градусаар уншиж байна. Температурыг Фаренгейтийн градусаар авахын тулд Цельсийн температурыг тайлбарлаж, Фаренгейтийн температурын тайлбарыг арилгаснаар дараах байдалтай болно.
Кодоо байршуулна уу
Одоо кодыг ESP32 дээрээ байршуулна уу. Зөв самбар болон COM портыг сонгосон эсэхээ шалгаарай. Байршуулах кодын лавлах алхмууд.
Байршуулж дууссаны дараа 115200 дамжуулах хурдаар Serial Monitor-ийг нээнэ үү. ESP32 дахин тохируулах товчийг дарна уу. ESP32 IP хаягийг цуваа хэлбэрээр хэвлэсэн байх ёстой хянах.Жагсаал
Хөтөч нээгээд ESP32 IP хаягаа бичнэ үү. Таны web сервер нь хамгийн сүүлийн үеийн мэдрэгчийн заалтуудыг харуулах ёстой.
Жич: Таны хөтөч болон ESP32 нэг LAN сүлжээнд холбогдсон байх ёстой.
Температур, чийгшлийн уншилтууд нь шинэчлэх шаардлагагүйгээр автоматаар шинэчлэгддэг болохыг анхаарна уу web хуудас.
Төслийн_10_ESP32_OLED_Дэлгэц
Энэхүү төсөл нь Arduino IDE ашиглан ESP0.96 бүхий 1306 инчийн SSD32 OLED дэлгэцийг хэрхэн ашиглахыг харуулж байна.
0.96 инчийн OLED дэлгэцийг танилцуулж байна
The 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 Library руу очно уу. Номын сангийн менежер нээгдэх ёстой.
- Хайлтын талбарт "SSD1306" гэж бичээд Adafruit-аас SSD1306 номын санг суулгана уу.
- Adafruit-аас SSD1306 номын санг суулгасны дараа хайлтын талбарт "GFX" гэж бичээд номын санг суулгана уу.
- Номын сангуудыг суулгасны дараа Arduino IDE-ээ дахин эхлүүлнэ үү.
Код
Шаардлагатай сангуудыг суулгасны дараа Project_10_ESP32_OLED_Display.ino-г arduino IDE дээр нээнэ үү. код
Бид ESP32-г Arduino IDE ашиглан програмчлах тул үргэлжлүүлэхээсээ өмнө ESP32 нэмэлтийг суулгасан эсэхээ шалгаарай: (Хэрэв та энэ алхамыг аль хэдийн хийсэн бол дараагийн алхам руу шилжиж болно.)
Arduino IDE дээр ESP32 нэмэлтийг суулгаж байнаКод хэрхэн ажилладаг вэ
Номын санг импортлох
Эхлээд та шаардлагатай номын сангуудыг импортлох хэрэгтэй. I2C-г ашиглах Wire номын сан, дэлгэцэнд бичихэд Adafruit номын сангууд: Adafruit_GFX болон Adafruit_SSD1306.OLED дэлгэцийг эхлүүлэх
Дараа нь та OLED-ийн өргөн, өндрийг тодорхойлно. Энэ жишээндample, бид 128×64 OLED дэлгэц ашиглаж байна. Хэрэв та өөр хэмжээ ашиглаж байгаа бол SCREEN_WIDTH болон SCREEN_HEIGHT хувьсагчид үүнийг өөрчилж болно.Дараа нь I2C холбооны протоколоор (&Wire) өмнө нь тодорхойлсон өргөн, өндөртэй дэлгэцийн объектыг эхлүүлнэ.
(-1) параметр нь таны OLED дэлгэцэнд RESET зүү байхгүй гэсэн үг. Хэрэв таны OLED дэлгэц RESET зүүтэй бол GPIO-д холбогдсон байх ёстой. Энэ тохиолдолд та GPIO дугаарыг параметр болгон дамжуулах хэрэгтэй.
Setup() хэсэгт дибаг хийх зорилгоор Цуврал мониторыг 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): текстийг зүүн доод булангаас баруун дээд булан руу гүйлгэж эхэлнэ.
Кодоо байршуулна уу
Одоо кодыг өөрийн ESP32. Upload кодын лавлах алхмуудад байршуулна уу.
Кодоо байршуулсны дараа OLED нь гүйлгэх текстийг харуулах болно.
Баримт бичиг / нөөц
![]() |
LAFVIN ESP32 үндсэн гарааны иж бүрдэл [pdf] Зааварчилгааны гарын авлага ESP32 үндсэн гарааны иж бүрдэл, ESP32, үндсэн гарааны хэрэгсэл, гарааны хэрэгсэл |