ការចាប់ផ្តើមមូលដ្ឋាន ESP32
កញ្ចប់
បញ្ជីវេចខ្ចប់
សេចក្តីផ្តើម ESP32
ថ្មីចំពោះ ESP32? ចាប់ផ្តើមនៅទីនេះ! ESP32 គឺជាស៊េរីនៃប្រព័ន្ធតម្លៃទាប និងថាមពលទាបនៅលើ microcontrollers បន្ទះឈីប (SoC) ដែលបង្កើតឡើងដោយ Espressif ដែលរួមមាន Wi-Fi និង Bluetooth wireless សមត្ថភាព និងដំណើរការ dual-core ។ ប្រសិនបើអ្នកស្គាល់ ESP8266 នោះ ESP32 គឺជាអ្នកស្នងតំណែងរបស់វា ដែលផ្ទុកដោយមុខងារថ្មីៗជាច្រើន។លក្ខណៈពិសេសរបស់ ESP32
ប្រសិនបើអ្នកចង់ទទួលបានបច្ចេកទេស និងជាក់លាក់ជាងនេះបន្តិច អ្នកអាចមើលលក្ខណៈលម្អិតខាងក្រោមនៃ ESP32 (ប្រភព៖ http://esp32.net/) - សម្រាប់ព័ត៌មានលម្អិត ពិនិត្យសន្លឹកទិន្នន័យ):
- ការតភ្ជាប់ឥតខ្សែ WiFi៖ អត្រាទិន្នន័យ 150.0 Mbps ជាមួយ HT40
- ប៊្លូធូស៖ BLE (Bluetooth Low Energy) និង Bluetooth Classic
- ឧបករណ៍ដំណើរការ៖ Tensilica Xtensa Dual-Core 32-bit LX6 microprocessor ដំណើរការនៅ 160 ឬ 240 MHz
- អង្គចងចាំ៖
- ROM: 448 KB (សម្រាប់ការចាប់ផ្ដើម និងមុខងារស្នូល)
- SRAM៖ 520 KB (សម្រាប់ទិន្នន័យ និងការណែនាំ)
- RTC fas SRAM: 8 KB (សម្រាប់ការផ្ទុកទិន្នន័យ និងស៊ីភីយូចម្បងអំឡុងពេល RTC Boot ពីរបៀបគេងជ្រៅ)
- RTC SRAM យឺត៖ 8KB (សម្រាប់ការចូលដំណើរការរបស់ co-processor កំឡុងពេលដំណេកជ្រៅ) eFuse: 1 Kbit (ក្នុងនោះ 256 bits ត្រូវបានប្រើសម្រាប់ប្រព័ន្ធ (MAC address និង chip configuration) និង 768 bits ដែលនៅសល់ត្រូវបានបម្រុងទុកសម្រាប់កម្មវិធីអតិថិជន រួមទាំង Flash-Encryption និង Chip-ID)
ពន្លឺដែលបានបង្កប់៖ flash បានតភ្ជាប់ខាងក្នុងតាមរយៈ IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 និង SD_DATA_1 នៅលើ ESP32-D2WD និង ESP32-PICO-D4។
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, និង ESP32-S0WD chips)
- 2 MiB (បន្ទះឈីប ESP32-D2WD)
- 4 MiB (ម៉ូឌុល ESP32-PICO-D4 SiP)
ថាមពលទាប៖ ធានាថាអ្នកនៅតែអាចប្រើការបំប្លែង ADC ឧទាហរណ៍ample, ក្នុងអំឡុងពេលគេងជ្រៅ។
ការបញ្ចូល/ទិន្នផលគ្រឿងកុំព្យូទ័រ៖
- ចំណុចប្រទាក់គ្រឿងកុំព្យូទ័រជាមួយ DMA ដែលរួមបញ្ចូលការប៉ះ capacitive
- ADCs (កម្មវិធីបម្លែងអាណាឡូកទៅឌីជីថល)
- DACs (Digital-to-Analog Converter)
- I²C (សៀគ្វីបញ្ចូលអន្តរកម្ម)
- UART (អ្នកទទួល/បញ្ជូនអសមកាលជាសកល)
- SPI (Serial Peripheral Interface)
- 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 (ស្នូលពីរ) |
វ៉ាយហ្វាយ | 2.4 GHz រហូតដល់ 150 Mbits/s |
ប៊្លូធូស | BLE (Bluetooth Low Energy) និង Bluetooth ចាស់ |
ស្ថាបត្យកម្ម | 32 ប៊ីត |
ប្រេកង់នាឡិកា | រហូតដល់ 240 MHz |
RAM | 512 គីឡូបៃ |
ម្ជុល | 30 (អាស្រ័យលើគំរូ) |
គ្រឿងកុំព្យូទ័រ | Capacitive touch, ADC (analog to digital converter), DAC (digital to analog converter), 12C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface), 12S (Integrated Inter-IC សំឡេង), RMII (ចំណុចប្រទាក់ប្រព័ន្ធផ្សព្វផ្សាយដែលបានកាត់បន្ថយ - ឯករាជ្យ), PWM (ម៉ូឌុលទទឹងជីពចរ) និងច្រើនទៀត។ |
ប៊ូតុងដែលភ្ជាប់មកជាមួយ | RESET និង BOOT ប៊ូតុង |
អំពូល LED ដែលភ្ជាប់មកជាមួយ | LED ពណ៌ខៀវភ្ជាប់មកជាមួយ GPIO2; ភ្លើង LED ពណ៌ក្រហមដែលភ្ជាប់មកជាមួយដែលបង្ហាញថាបន្ទះកំពុងត្រូវបានថាមពល |
យូអេសប៊ីទៅ UART ស្ពាន |
CP2102 |
វាភ្ជាប់មកជាមួយចំណុចប្រទាក់ microUSB ដែលអ្នកអាចប្រើដើម្បីភ្ជាប់បន្ទះទៅនឹងកុំព្យូទ័ររបស់អ្នកដើម្បីបង្ហោះកូដ ឬប្រើប្រាស់ថាមពល។
វាប្រើបន្ទះឈីប CP2102 (USB ទៅ UART) ដើម្បីទំនាក់ទំនងជាមួយកុំព្យូទ័ររបស់អ្នកតាមរយៈច្រក COM ដោយប្រើចំណុចប្រទាក់សៀរៀល។ បន្ទះឈីបដ៏ពេញនិយមមួយទៀតគឺ CH340 ។ ពិនិត្យមើលអ្វីដែលជាឧបករណ៍បំប្លែងបន្ទះឈីប USB ទៅ UART នៅលើក្តាររបស់អ្នក ពីព្រោះអ្នកនឹងត្រូវដំឡើងកម្មវិធីបញ្ជាដែលត្រូវការដើម្បីឱ្យកុំព្យូទ័ររបស់អ្នកអាចទាក់ទងជាមួយក្តារ (ព័ត៌មានបន្ថែមអំពីវានៅពេលក្រោយនៅក្នុងការណែនាំនេះ)។
បន្ទះនេះក៏ភ្ជាប់មកជាមួយប៊ូតុង RESET (អាចត្រូវបានដាក់ស្លាកថា EN) ដើម្បីចាប់ផ្តើមក្តារឡើងវិញ និងប៊ូតុង BOOT ដើម្បីដាក់ក្តារនៅក្នុងរបៀបពន្លឺ (អាចទទួលបានកូដ)។ ចំណាំថាក្តារខ្លះប្រហែលជាមិនមានប៊ូតុង BOOT ទេ។
វាក៏ភ្ជាប់មកជាមួយអំពូល LED ពណ៌ខៀវដែលភ្ជាប់មកជាមួយខាងក្នុងជាមួយ GPIO 2។ LED នេះមានប្រយោជន៍សម្រាប់ការកែកំហុស ដើម្បីផ្តល់នូវលទ្ធផលជាក់ស្តែងដែលមើលឃើញមួយចំនួន។ វាក៏មាន LED ពណ៌ក្រហមដែលបំភ្លឺនៅពេលអ្នកផ្តល់ថាមពលដល់ក្តារ។ESP32 Pinout
គ្រឿងកុំព្យូទ័រ ESP32 រួមមាន:
- 18 ឆានែលកម្មវិធីបម្លែងអាណាឡូកទៅឌីជីថល (ADC)
- 3 ចំណុចប្រទាក់ SPI
- 3 ចំណុចប្រទាក់ UART
- 2 ចំណុចប្រទាក់ I2C
- 16 ប៉ុស្តិ៍ទិន្នផល PWM
- 2 ឧបករណ៍បំប្លែងឌីជីថលទៅអាណាឡូក (DAC)
- 2 ចំណុចប្រទាក់ I2S
- GPIOs ចាប់សញ្ញាសមត្ថភាព 10
លក្ខណៈពិសេស ADC (អាណាឡូកទៅឌីជីថល) និង DAC (ឌីជីថលទៅកម្មវិធីបម្លែងអាណាឡូក) ត្រូវបានកំណត់ទៅម្ជុលឋិតិវន្តជាក់លាក់។ ទោះយ៉ាងណាក៏ដោយ អ្នកអាចសម្រេចចិត្តថាតើម្ជុលណាជា UART, I2C, SPI, PWM ជាដើម។ នេះអាចទៅរួចដោយសារតែលក្ខណៈពិសេសរបស់បន្ទះឈីប ESP32 ។
ទោះបីជាអ្នកអាចកំណត់លក្ខណៈសម្បត្តិ pins នៅលើកម្មវិធីក៏ដោយ វាមាន pins ដែលត្រូវបានកំណត់តាមលំនាំដើមដូចដែលបានបង្ហាញក្នុងរូបខាងក្រោមលើសពីនេះទៀត មានម្ជុលដែលមានលក្ខណៈពិសេសជាក់លាក់ ដែលធ្វើឲ្យពួកវាសមស្រប ឬមិនសម្រាប់គម្រោងជាក់លាក់មួយ។ តារាងខាងក្រោមបង្ហាញពីម្ជុលណាដែលល្អបំផុតដើម្បីប្រើជាធាតុបញ្ចូល ទិន្នផល និងមួយណាដែលអ្នកត្រូវប្រុងប្រយ័ត្ន។
ម្ជុលដែលបន្លិចជាពណ៌បៃតងគឺយល់ព្រមក្នុងការប្រើប្រាស់។ របស់ដែលបន្លិចជាពណ៌លឿងគឺអាចប្រើបាន ប៉ុន្តែអ្នកត្រូវយកចិត្តទុកដាក់ ព្រោះវាអាចមានអាកប្បកិរិយាដែលមិននឹកស្មានដល់ជាចម្បងនៅពេលចាប់ផ្ដើម។ ម្ជុលដែលបន្លិចជាពណ៌ក្រហម មិនត្រូវបានណែនាំឱ្យប្រើជាធាតុបញ្ចូល ឬលទ្ធផលនោះទេ។
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 GPIOs និងមុខងាររបស់វា។
បញ្ចូលតែម្ជុលប៉ុណ្ណោះ។
GPIOs 34 ទៅ 39 គឺជា GPIs - បញ្ចូលតែម្ជុលប៉ុណ្ណោះ។ ម្ជុលទាំងនេះមិនមានប្រដាប់ទប់ទាញឡើងលើ ឬទាញចុះក្រោមទេ។ ពួកវាមិនអាចប្រើជាលទ្ធផលបានទេ ដូច្នេះសូមប្រើម្ជុលទាំងនេះគ្រាន់តែជាធាតុបញ្ចូលប៉ុណ្ណោះ៖
- GPIO ១០
- GPIO ១០
- GPIO ១០
- GPIO ១០
SPI flash រួមបញ្ចូលនៅលើ ESP-WROOM-32
GPIO 6 ទៅ GPIO 11 ត្រូវបានលាតត្រដាងនៅក្នុងក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP32 មួយចំនួន។ ទោះជាយ៉ាងណាក៏ដោយ ម្ជុលទាំងនេះត្រូវបានភ្ជាប់ជាមួយ SPI flash ដែលរួមបញ្ចូលគ្នានៅលើបន្ទះឈីប ESP-WROOM-32 ហើយមិនត្រូវបានណែនាំសម្រាប់ការប្រើប្រាស់ផ្សេងទៀតទេ។ ដូច្នេះ កុំប្រើម្ជុលទាំងនេះក្នុងគម្រោងរបស់អ្នក៖
- 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 capacitive touch sensors ខាងក្នុង។ ទាំងនេះអាចដឹងពីការប្រែប្រួលនៃអ្វីៗដែលផ្ទុកបន្ទុកអគ្គីសនី ដូចជាស្បែកមនុស្សជាដើម។ ដូច្នេះពួកគេអាចរកឃើញការប្រែប្រួលដែលបង្កឡើងនៅពេលប៉ះ GPIOs ដោយប្រើម្រាមដៃ។ ម្ជុលទាំងនេះអាចត្រូវបានរួមបញ្ចូលយ៉ាងងាយស្រួលទៅក្នុងបន្ទះ capacitive និងជំនួសប៊ូតុងមេកានិច។ ម្ជុលប៉ះ capacitive ក៏អាចត្រូវបានប្រើដើម្បីដាស់ ESP32 ពីការគេងជ្រៅផងដែរ។ ឧបករណ៍ចាប់សញ្ញាប៉ះខាងក្នុងទាំងនោះត្រូវបានភ្ជាប់ទៅ GPIOs ទាំងនេះ៖
- 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)
អាណាឡូកទៅកម្មវិធីបំលែងឌីជីថល (អេឌីស៊ី)
ESP32 មាន 18 x 12 bits ADC input channels (ខណៈពេលដែល ESP8266 មានតែ 1x 10 bits ADC)។ ទាំងនេះគឺជា GPIOs ដែលអាចត្រូវបានប្រើជា 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.1V ឬរវាង 3.2 និង 3.3V បានទេ។ អ្នកត្រូវចងចាំវានៅពេលប្រើម្ជុល ADC ។ អ្នកនឹងទទួលបានអាកប្បកិរិយាស្រដៀងនឹងការបង្ហាញក្នុងរូបខាងក្រោម។កម្មវិធីបម្លែងឌីជីថលទៅជាអាណាឡូក (DAC)
មានឆានែល DAC 2 x 8 ប៊ីតនៅលើ ESP32 ដើម្បីបំប្លែងសញ្ញាឌីជីថលទៅជា analog voltage លទ្ធផលសញ្ញា។ ទាំងនេះគឺជាបណ្តាញ DAC៖
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
មានការគាំទ្រ RTC GPIO នៅលើ ESP32 ។ GPIOs ដែលបញ្ជូនទៅកាន់ប្រព័ន្ធរងថាមពលទាប RTC អាចត្រូវបានប្រើនៅពេលដែល ESP32 ស្ថិតនៅក្នុងការគេងជ្រៅ។ RTC GPIOs ទាំងនេះអាចត្រូវបានប្រើដើម្បីដាស់ ESP32 ពីការគេងជ្រៅនៅពេលដែលកម្រិតទាបបំផុត។
Power (ULP) co-processor កំពុងដំណើរការ។ GPIOs ខាងក្រោមអាចត្រូវបានប្រើជាប្រភពភ្ញាក់ពីខាងក្រៅ។
- 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 (GPIOs 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 ១០ | GPIO ១០ | GPIO ១០ | GPIO ១០ |
HSPI | GPIO ១០ | GPIO ១០ | GPIO ១០ | GPIO ១០ |
ការរំខាន
GPIO ទាំងអស់អាចត្រូវបានកំណត់រចនាសម្ព័ន្ធជាការរំខាន។
ម្ជុលដេរប៉ាក់
បន្ទះឈីប ESP32 មានខ្សែភ្ជាប់ដូចខាងក្រោមៈ
- GPIO 0 (ត្រូវតែទាបដើម្បីចូលរបៀបចាប់ផ្ដើម)
- GPIO 2 (ត្រូវតែអណ្តែត ឬទាបអំឡុងពេលចាប់ផ្ដើម)
- GPIO ១០
- GPIO 5 (ត្រូវតែខ្ពស់អំឡុងពេលចាប់ផ្ដើម)
- GPIO 12 (ត្រូវតែទាបកំឡុងពេលចាប់ផ្ដើម)
- GPIO 15 (ត្រូវតែខ្ពស់អំឡុងពេលចាប់ផ្ដើម)
ទាំងនេះត្រូវបានប្រើដើម្បីដាក់ ESP32 ចូលទៅក្នុងកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ ឬរបៀបបញ្ចេញពន្លឺ។ នៅលើបន្ទះអភិវឌ្ឍន៍ភាគច្រើនដែលមានភ្ជាប់មកជាមួយ USB/Serial អ្នកមិនចាំបាច់ព្រួយបារម្ភអំពីស្ថានភាពនៃម្ជុលទាំងនេះទេ។ បន្ទះដាក់ម្ជុលក្នុងស្ថានភាពត្រឹមត្រូវសម្រាប់ការបើកពន្លឺ ឬរបៀបចាប់ផ្ដើម។ ព័ត៌មានបន្ថែមអំពីការជ្រើសរើសរបៀបចាប់ផ្ដើម ESP32 អាចរកបាននៅទីនេះ។
ទោះជាយ៉ាងណាក៏ដោយ ប្រសិនបើអ្នកមានឧបករណ៍ភ្ជាប់ជាមួយម្ជុលទាំងនោះ អ្នកប្រហែលជាមានបញ្ហាក្នុងការព្យាយាមបង្ហោះកូដថ្មី បញ្ចេញ ESP32 ជាមួយនឹងកម្មវិធីបង្កប់ថ្មី ឬកំណត់បន្ទះឡើងវិញ។ ប្រសិនបើអ្នកមានគ្រឿងកុំព្យូទ័រមួយចំនួនដែលភ្ជាប់ជាមួយនឹងខ្សែរភ្ជាប់ ហើយអ្នកកំពុងមានបញ្ហាក្នុងការបង្ហោះកូដ ឬបញ្ចេញពន្លឺ ESP32 វាប្រហែលជាដោយសារតែគ្រឿងកុំព្យូទ័រទាំងនោះរារាំង ESP32 ពីការចូលទៅក្នុងរបៀបត្រឹមត្រូវ។ អានឯកសារជ្រើសរើសរបៀបចាប់ផ្ដើម ដើម្បីណែនាំអ្នកក្នុងទិសដៅត្រឹមត្រូវ។ បន្ទាប់ពីការកំណត់ឡើងវិញ ពន្លឺ ឬចាប់ផ្ដើម ម្ជុលទាំងនោះដំណើរការដូចការរំពឹងទុក។
កំណត់ HIGH នៅ Boot
GPIOs មួយចំនួនផ្លាស់ប្តូរស្ថានភាពរបស់ពួកគេទៅជា HIGH ឬបញ្ចេញសញ្ញា PWM នៅពេលចាប់ផ្ដើម ឬកំណត់ឡើងវិញ។
នេះមានន័យថាប្រសិនបើអ្នកមានលទ្ធផលភ្ជាប់ទៅ GPIOs ទាំងនេះ អ្នកអាចទទួលបានលទ្ធផលដែលមិនរំពឹងទុកនៅពេលដែល ESP32 កំណត់ឡើងវិញ ឬចាប់ផ្ដើម។
- GPIO ១០
- GPIO ១០
- GPIO ១០
- GPIO 6 ទៅ GPIO 11 (បានភ្ជាប់ទៅអង្គចងចាំពន្លឺ SPI រួមបញ្ចូលគ្នា ESP32 – មិនត្រូវបានណែនាំអោយប្រើទេ)។
- GPIO ១០
- GPIO ១០
បើក (EN)
បើក (EN) គឺជាម្ជុលបើករបស់និយតករ 3.3V ។ វាត្រូវបានទាញឡើង ដូច្នេះភ្ជាប់ទៅដីដើម្បីបិទនិយតករ 3.3V ។ នេះមានន័យថាអ្នកអាចប្រើម្ជុលនេះភ្ជាប់ទៅនឹងប៊ូតុងរុញដើម្បីចាប់ផ្តើម ESP32 របស់អ្នកឡើងវិញ ឧទាហរណ៍ampលេ
GPIO គូរបច្ចុប្បន្ន
ចរន្តអតិបរិមាដែលត្រូវបានទាញក្នុងមួយ GPIO គឺ 40mA យោងតាមផ្នែក "លក្ខខណ្ឌប្រតិបត្តិការដែលបានណែនាំ" នៅក្នុងឯកសារទិន្នន័យ ESP32 ។
ឧបករណ៍ចាប់សញ្ញាបែបផែន Hall ភ្ជាប់មកជាមួយ ESP32
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 នាពេលអនាគត យើងសូមណែនាំឱ្យដំឡើងកំណែចាស់ 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
បន្ទាប់មកចុចប៊ូតុង "យល់ព្រម"៖ចំណាំ៖ ប្រសិនបើអ្នកមានក្តារ 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
បើកកម្មវិធីគ្រប់គ្រងក្តារ។ ចូលទៅកាន់ Tools > Board > Boards Manager...ស្វែងរក ESP32 and press install button for the “ESP32 by Espressif Systems“:
នោះហើយជាវា។ វាគួរតែត្រូវបានដំឡើងបន្ទាប់ពីពីរបីវិនាទី។
បង្ហោះកូដសាកល្បង
ដោតបន្ទះ ESP32 ទៅកុំព្យូទ័ររបស់អ្នក។ ជាមួយនឹងការបើក Arduino IDE របស់អ្នក សូមអនុវត្តតាមជំហានទាំងនេះ៖
- ជ្រើសរើសក្រុមប្រឹក្សាភិបាលរបស់អ្នកនៅក្នុង ឧបករណ៍> ម៉ឺនុយក្តារ (ក្នុងករណីរបស់ខ្ញុំ វាជាម៉ូឌុល ESP32 DEV)
- ជ្រើសរើសច្រក (ប្រសិនបើអ្នកមិនឃើញច្រក COM នៅក្នុង Arduino IDE របស់អ្នកទេ អ្នកត្រូវដំឡើង CP210x USB to UART Bridge VCP Drivers):
- បើក ex ខាងក្រោមampឡេក្រោម File > ឧamples > វ៉ាយហ្វាយ
(ESP32) > WiFi Scan - គំនូរព្រាងថ្មីបើកនៅក្នុង Arduino IDE របស់អ្នក៖
- ចុចប៊ូតុងផ្ទុកឡើងនៅក្នុង Arduino IDE ។ រង់ចាំពីរបីវិនាទី ខណៈពេលដែលលេខកូដចងក្រង និងផ្ទុកឡើងទៅកាន់ក្តាររបស់អ្នក។
- ប្រសិនបើអ្វីៗដំណើរការដូចការរំពឹងទុក អ្នកគួរតែឃើញ "ការបង្ហោះរួចរាល់"។ សារ។
- បើក Arduino IDE Serial Monitor ក្នុងអត្រា baud នៃ 115200៖
- ចុចប៊ូតុងបើកដំណើរការ ESP32 នៅលើយន្តហោះ ហើយអ្នកគួរតែឃើញបណ្តាញដែលនៅជិត ESP32 របស់អ្នក៖
ការដោះស្រាយបញ្ហា
ប្រសិនបើអ្នកព្យាយាមបង្ហោះរូបព្រាងថ្មីទៅ ESP32 របស់អ្នក ហើយអ្នកទទួលបានសារកំហុសនេះ “កំហុសធ្ងន់ធ្ងរបានកើតឡើង៖ បរាជ័យក្នុងការតភ្ជាប់ទៅ ESP32៖ អស់ពេល… តភ្ជាប់…”។ វាមានន័យថា ESP32 របស់អ្នកមិនស្ថិតនៅក្នុងរបៀប flashing/uploading។
ដោយមានឈ្មោះក្រុមប្រឹក្សាភិបាលត្រឹមត្រូវ និង COM por ដែលបានជ្រើសរើស សូមអនុវត្តតាមជំហានទាំងនេះ៖
សង្កត់ប៊ូតុង "BOOT" នៅក្នុងបន្ទះ ESP32 របស់អ្នក។
- ចុចប៊ូតុង "អាប់ឡូត" នៅក្នុង 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, រដ្ឋ);
GPIOs ទាំងអស់អាចត្រូវបានប្រើជាលទ្ធផល លើកលែងតែ GPIOs 6 ដល់ 11 (បានភ្ជាប់ទៅ SPI flash ដែលរួមបញ្ចូល) និង GPIOs 34, 35, 36 និង 39 (បញ្ចូលតែ GPIOs ប៉ុណ្ណោះ);
ស្វែងយល់បន្ថែមអំពី ESP32 GPIOs: ESP32 GPIO Reference Guide
ESP32 អានការបញ្ចូលឌីជីថល
ដំបូងកំណត់ GPIO ដែលអ្នកចង់អានជា INPUT ដោយប្រើមុខងារ pinMode() ដូចខាងក្រោម៖
pinMode(GPIO, បញ្ចូល);
ដើម្បីអានការបញ្ចូលឌីជីថល ដូចជាប៊ូតុងមួយ អ្នកប្រើមុខងារ digitalRead() ដែលទទួលយកជាអាគុយម៉ង់ GPIO (លេខ int) ដែលអ្នកកំពុងយោង។
digitalRead (GPIO);
ESP32 GPIOs ទាំងអស់អាចត្រូវបានប្រើជាធាតុបញ្ចូល លើកលែងតែ GPIOs 6 ដល់ 11 (បានភ្ជាប់ទៅ SPI flash ដែលរួមបញ្ចូល)។
ស្វែងយល់បន្ថែមអំពី ESP32 GPIOs: ESP32 GPIO Reference Guide
គម្រោង Example
ដើម្បីបង្ហាញអ្នកពីរបៀបប្រើធាតុបញ្ចូលឌីជីថល និងលទ្ធផលឌីជីថល យើងនឹងបង្កើតគម្រោងដ៏សាមញ្ញមួយ។ample ជាមួយនឹងប៊ូតុងរុញ និង LED ។ យើងនឹងអានស្ថានភាពនៃប៊ូតុងរុញ ហើយបំភ្លឺ LED តាមការបង្ហាញក្នុងរូបខាងក្រោម។
ផ្នែកដែលត្រូវការ
នេះគឺជាបញ្ជីនៃផ្នែកដែលអ្នកត្រូវការដើម្បីបង្កើតសៀគ្វី៖
- ESP32 DEVKIT V1
- LED 5 ម។
- ឧបករណ៍ទប់ទល់ 220 Ohm
- ចុចប៊ូតុង
- ឧបករណ៍ទប់ទល់ 10k Ohm
- ក្តារនំប៉័ង
- ខ្សែភ្លើងលោត
ដ្យាក្រាមគ្រោងការណ៍
មុនពេលដំណើរការអ្នកត្រូវប្រមូលផ្តុំសៀគ្វីជាមួយ 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;
នៅក្នុងការដំឡើង () អ្នកចាប់ផ្តើមប៊ូតុងជា INPUT ហើយ LED ជា OUTPUT ។
សម្រាប់នោះ អ្នកប្រើមុខងារ pinMode() ដែលទទួលយក pin ដែលអ្នកកំពុងសំដៅលើ ហើយរបៀប៖ បញ្ចូល ឬ OUTPUT ។
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
នៅក្នុង loop() គឺជាកន្លែងដែលអ្នកអានស្ថានភាពប៊ូតុង ហើយកំណត់ LED តាមនោះ។
នៅក្នុងបន្ទាត់បន្ទាប់ អ្នកអានស្ថានភាពប៊ូតុង ហើយរក្សាទុកវានៅក្នុងអថេរ buttonState ។
ដូចដែលយើងបានឃើញពីមុន អ្នកប្រើមុខងារ digitalRead()។
buttonState = digitalRead(buttonPin);
ប្រសិនបើសេចក្តីថ្លែងការណ៍ខាងក្រោម ពិនិត្យមើលថាតើស្ថានភាពប៊ូតុងគឺខ្ពស់ឬអត់។ ប្រសិនបើវាគឺ វានឹងបើក LED ដោយប្រើមុខងារ digitalWrite() ដែលទទួលយកជាអាគុយម៉ង់ ledPin និងរដ្ឋ HIGH ។
ប្រសិនបើ (buttonState == ខ្ពស់)ប្រសិនបើស្ថានភាពប៊ូតុងមិនខ្ពស់ អ្នកបិទ LED ។ គ្រាន់តែកំណត់ LOW ជាអាគុយម៉ង់ទីពីរក្នុងមុខងារ digitalWrite()។
ការបង្ហោះកូដ
មុននឹងចុចប៊ូតុងផ្ទុកឡើង សូមចូលទៅកាន់ ឧបករណ៍ > Board ហើយជ្រើសរើសក្ដារ៖ DOIT ESP32 DEVKIT V1 board។
ចូលទៅកាន់ ឧបករណ៍ > ច្រក ហើយជ្រើសរើសច្រក COM ដែល ESP32 ត្រូវបានភ្ជាប់។ បន្ទាប់មក ចុចប៊ូតុងអាប់ឡូត ហើយរង់ចាំសារ "ការបង្ហោះរួចរាល់"។ចំណាំ៖ ប្រសិនបើអ្នកឃើញចំណុចជាច្រើន (តភ្ជាប់… __…__) នៅលើបង្អួចបំបាត់កំហុស ហើយសារ “បរាជ័យក្នុងការតភ្ជាប់ទៅ ESP32៖ អស់ពេលរង់ចាំសម្រាប់បឋមកថាកញ្ចប់ព័ត៌មាន” នោះមានន័យថាអ្នកត្រូវចុចប៊ូតុង BOOT នៅលើក្តារ ESP32 បន្ទាប់ពីចំនុច។
ចាប់ផ្តើមលេចឡើង។ ការដោះស្រាយបញ្ហា
បាតុកម្ម
បន្ទាប់ពីផ្ទុកឡើងកូដ សូមសាកល្បងសៀគ្វីរបស់អ្នក។ LED របស់អ្នកគួរតែភ្លឺនៅពេលអ្នកចុចប៊ូតុង៖ហើយបិទនៅពេលអ្នកបញ្ចេញវា៖
គម្រោង 2 ESP32 បញ្ចូលអាណាឡូក
គម្រោងនេះបង្ហាញពីរបៀបអានការបញ្ចូលអាណាឡូកជាមួយ ESP32 ដោយប្រើ Arduino IDE ។
ការអានអាណាឡូកមានប្រយោជន៍ក្នុងការអានតម្លៃពីឧបករណ៍ទប់ទល់អថេរដូចជា potentiometers ឬឧបករណ៍ចាប់សញ្ញាអាណាឡូក។
ការបញ្ចូលអាណាឡូក (ADC)
ការអានតម្លៃអាណាឡូកជាមួយ ESP32 មានន័យថាអ្នកអាចវាស់វ៉ុលខុសៗគ្នាtage កម្រិតរវាង 0 V និង 3.3 V ។
វ៉ុលtage បានវាស់វែងបន្ទាប់មកត្រូវបានកំណត់ទៅតម្លៃរវាង 0 និង 4095 ដែល 0 V ត្រូវគ្នានឹង 0 និង 3.3 V ត្រូវគ្នានឹង 4095 ។ វ៉ុលណាមួយtage រវាង 0 V និង 3.3 V នឹងត្រូវបានផ្តល់តម្លៃដែលត្រូវគ្នានៅចន្លោះ។ADC គឺមិនមែនលីនេអ៊ែរ
តាមឧត្ដមគតិអ្នកនឹងរំពឹងថានឹងមានឥរិយាបទលីនេអ៊ែរនៅពេលប្រើម្ជុល ESP32 ADC ។
ទោះយ៉ាងណាក៏ដោយវាមិនកើតឡើងទេ។ អ្វីដែលអ្នកនឹងទទួលបានគឺអាកប្បកិរិយាដូចបានបង្ហាញក្នុងតារាងខាងក្រោម៖ឥរិយាបថនេះមានន័យថា ESP32 របស់អ្នកមិនអាចបែងចែក 3.3 V ពី 3.2 V បានទេ។
អ្នកនឹងទទួលបានតម្លៃដូចគ្នាសម្រាប់វ៉ុលទាំងពីរtages: 4095 ។
ដូចគ្នានេះដែរកើតឡើងសម្រាប់វ៉ុលទាបបំផុត។tagតម្លៃ e៖ សម្រាប់ 0 V និង 0.1 V អ្នកនឹងទទួលបានតម្លៃដូចគ្នា៖ 0. អ្នកត្រូវចងចាំចំណុចនេះនៅពេលប្រើម្ជុល ESP32 ADC ។
មុខងារ analogRead()
ការអានការបញ្ចូលអាណាឡូកជាមួយ ESP32 ដោយប្រើ Arduino IDE គឺសាមញ្ញដូចជាការប្រើប្រាស់មុខងារ analogRead() ដែរ។ វាទទួលយកជាអាគុយម៉ង់ GPIO ដែលអ្នកចង់អាន៖
analogRead (GPIO);
មានតែ 15 ប៉ុណ្ណោះដែលមាននៅក្នុង DEVKIT V1board (កំណែដែលមាន 30 GPIOs) ។
ចាប់យកបន្ទះក្តារ ESP32 របស់អ្នក ហើយកំណត់ទីតាំងម្ជុល ADC ។ ទាំងនេះត្រូវបានរំលេចដោយស៊ុមពណ៌ក្រហមក្នុងរូបខាងក្រោម។ម្ជុលបញ្ចូលអាណាឡូកទាំងនេះមានគុណភាពបង្ហាញ 12 ប៊ីត។ នេះមានន័យថា នៅពេលអ្នកអានការបញ្ចូលអាណាឡូក ជួររបស់វាអាចប្រែប្រួលពី 0 ដល់ 4095។
ចំណាំ៖ ម្ជុល ADC2 មិនអាចប្រើបានទេ នៅពេលដែល Wi-Fi ត្រូវបានប្រើប្រាស់។ ដូច្នេះ ប្រសិនបើអ្នកកំពុងប្រើ Wi-Fi ហើយអ្នកមានបញ្ហាក្នុងការទទួលបានតម្លៃពី ADC2 GPIO អ្នកអាចពិចារណាប្រើ ADC1 GPIO ជំនួសវិញ ដែលគួរតែដោះស្រាយបញ្ហារបស់អ្នក។
ដើម្បីមើលពីរបៀបដែលអ្វីៗភ្ជាប់ជាមួយគ្នា យើងនឹងបង្កើតអតីតសាមញ្ញampដើម្បីអានតម្លៃអាណាឡូកពី potentiometer ។
ផ្នែកដែលត្រូវការ
សម្រាប់អតីតនេះ។ampដូច្នេះ អ្នកត្រូវការផ្នែកខាងក្រោម៖
- ក្រុមប្រឹក្សាភិបាល ESP32 DEVKIT V1
- Potentiometer
- ក្តារនំប៉័ង
- ខ្សែភ្លើងលោត
គ្រោងការណ៍
ភ្ជាប់ឧបករណ៍វាស់ថាមពលទៅ ESP32 របស់អ្នក។ ម្ជុលកណ្តាល potentiometer គួរតែត្រូវបានភ្ជាប់ទៅ GPIO 4 ។ អ្នកអាចប្រើដ្យាក្រាមគ្រោងការណ៍ខាងក្រោមជាឯកសារយោង។កូដ
យើងនឹងសរសេរកម្មវិធី ESP32 ដោយប្រើ Arduino IDE ដូច្នេះត្រូវប្រាកដថាអ្នកបានដំឡើងកម្មវិធីបន្ថែម ESP32 មុនពេលបន្ត៖ (ប្រសិនបើអ្នកបានធ្វើជំហាននេះរួចហើយ អ្នកអាចរំលងទៅជំហានបន្ទាប់។ )
ការដំឡើងកម្មវិធីបន្ថែម ESP32 នៅក្នុង Arduino IDE
បើកកូដ Project_2_ESP32_Inputs_Outputs.ino ក្នុង arduino IDEកូដនេះគ្រាន់តែអានតម្លៃពី potentiometer ហើយបោះពុម្ពតម្លៃទាំងនោះនៅក្នុង Serial Monitor ។
នៅក្នុងកូដ អ្នកចាប់ផ្តើមដោយកំណត់ GPIO ដែល potentiometer ត្រូវបានភ្ជាប់។ នៅក្នុងនេះ អតីតample, GPIO ៤.នៅក្នុងការដំឡើង() ចាប់ផ្តើមទំនាក់ទំនងសៀរៀលក្នុងអត្រា baud នៃ 115200។
នៅក្នុង loop() ប្រើមុខងារ analogRead() ដើម្បីអាន analog input ពី potPin ។
ជាចុងក្រោយ បោះពុម្ពតម្លៃដែលបានអានពី potentiometer នៅក្នុងម៉ូនីទ័រសៀរៀល។
ផ្ទុកឡើងលេខកូដដែលបានផ្តល់ទៅ ESP32 របស់អ្នក។ ត្រូវប្រាកដថាអ្នកមានក្តារត្រឹមត្រូវ និងច្រក COM ដែលបានជ្រើសរើសនៅក្នុងម៉ឺនុយឧបករណ៍។
ការធ្វើតេស្ត Example
បន្ទាប់ពីបង្ហោះកូដហើយចុចប៊ូតុងកំណត់ឡើងវិញ ESP32 សូមបើក Serial Monitor ក្នុងអត្រា baud 115200។ បង្វិល potentiometer ហើយឃើញតម្លៃផ្លាស់ប្តូរ។តម្លៃអតិបរមាដែលអ្នកនឹងទទួលបានគឺ 4095 ហើយតម្លៃអប្បបរមាគឺ 0។
រុំឡើង
នៅក្នុងអត្ថបទនេះ អ្នកបានរៀនពីរបៀបអានការបញ្ចូលអាណាឡូកដោយប្រើ ESP32 ជាមួយ Arduino IDE។ សរុបមក៖
- បន្ទះ ESP32 DEVKIT V1 DOIT (កំណែដែលមាន 30 pin) មាន 15 pins ADC ដែលអ្នកអាចប្រើដើម្បីអានការបញ្ចូលអាណាឡូក។
- ម្ជុលទាំងនេះមានគុណភាពបង្ហាញ 12 ប៊ីត ដែលមានន័យថាអ្នកអាចទទួលបានតម្លៃពី 0 ដល់ 4095 ។
- ដើម្បីអានតម្លៃនៅក្នុង Arduino IDE អ្នកគ្រាន់តែប្រើមុខងារ analogRead() ។
- ម្ជុល ESP32 ADC មិនមានឥរិយាបថលីនេអ៊ែរទេ។ អ្នកប្រហែលជាមិនអាចបែងចែករវាង 0 និង 0.1V ឬរវាង 3.2 និង 3.3V បានទេ។ អ្នកត្រូវចងចាំវានៅពេលប្រើម្ជុល ADC ។
គម្រោងទី 3 ESP32 PWM (ទិន្នផលអាណាឡូក)
នៅក្នុងការបង្រៀននេះ យើងនឹងបង្ហាញអ្នកពីរបៀបបង្កើតសញ្ញា PWM ជាមួយ ESP32 ដោយប្រើ Arduino IDE។ ក្នុងនាមជាអតីតampយើងនឹងបង្កើតសៀគ្វីសាមញ្ញមួយដែលបន្ថយ LED ដោយប្រើឧបករណ៍បញ្ជា LED PWM នៃ ESP32 ។ឧបករណ៍បញ្ជា LED PWM ESP32
ESP32 មានឧបករណ៍បញ្ជា LED PWM ដែលមានបណ្តាញឯករាជ្យចំនួន 16 ដែលអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីបង្កើតសញ្ញា PWM ជាមួយនឹងលក្ខណៈសម្បត្តិផ្សេងគ្នា។
នេះជាជំហានដែលអ្នកត្រូវធ្វើដើម្បីបន្ថយ LED ជាមួយ PWM ដោយប្រើ Arduino IDE៖
- ដំបូងអ្នកត្រូវជ្រើសរើសឆានែល PWM ។ មាន 16 ឆានែលពី 0 ទៅ 15 ។
- បន្ទាប់មកអ្នកត្រូវកំណត់ប្រេកង់សញ្ញា PWM ។ សម្រាប់ LED ប្រេកង់ 5000 Hz គឺល្អក្នុងការប្រើប្រាស់។
- អ្នកក៏ត្រូវកំណត់ការដោះស្រាយវដ្តកាតព្វកិច្ចរបស់សញ្ញាផងដែរ៖ អ្នកមានដំណោះស្រាយពី 1 ដល់ 16 ប៊ីត។ យើងនឹងប្រើគុណភាពបង្ហាញ 8 ប៊ីត ដែលមានន័យថាអ្នកអាចគ្រប់គ្រងពន្លឺ LED ដោយប្រើតម្លៃពី 0 ដល់ 255។
- បន្ទាប់មកអ្នកត្រូវបញ្ជាក់ថាតើ GPIO ឬ GPIOs ណាដែលសញ្ញានឹងបង្ហាញ។ សម្រាប់នោះអ្នកនឹងប្រើមុខងារដូចខាងក្រោមៈ
ledcAttachPin (GPIO, ឆានែល)
មុខងារនេះទទួលយកអាគុយម៉ង់ពីរ។ ទីមួយគឺ GPIO ដែលនឹងបញ្ចេញសញ្ញា ហើយទីពីរគឺជាឆានែលដែលនឹងបង្កើតសញ្ញា។ - ជាចុងក្រោយ ដើម្បីគ្រប់គ្រងពន្លឺ LED ដោយប្រើ PWM អ្នកអាចប្រើមុខងារខាងក្រោម៖
ledcWrite(ឆានែល, វដ្តកាតព្វកិច្ច)
មុខងារនេះទទួលយកជាអាគុយម៉ង់ឆានែលដែលកំពុងបង្កើតសញ្ញា PWM និងវដ្តកាតព្វកិច្ច។
ផ្នែកដែលត្រូវការ
ដើម្បីធ្វើតាមការបង្រៀននេះ អ្នកត្រូវការផ្នែកទាំងនេះ៖
- ក្រុមប្រឹក្សាភិបាល ESP32 DEVKIT V1
- អំពូល LED 5 ម។
- ឧបករណ៍ទប់ទល់ 220 Ohm
- ក្តារនំប៉័ង
- ខ្សែភ្លើងលោត
គ្រោងការណ៍
ភ្ជាប់ LED ទៅកាន់ ESP32 របស់អ្នក ដូចនៅក្នុងដ្យាក្រាមគ្រោងការណ៍ខាងក្រោម។ LED គួរតែត្រូវបានភ្ជាប់ទៅ GPIO 4.ចំណាំ៖ អ្នកអាចប្រើម្ជុលណាមួយដែលអ្នកចង់បាន ដរាបណាវាអាចដើរតួជាទិន្នផល។ ម្ជុលទាំងអស់ដែលអាចដើរតួជាទិន្នផលអាចត្រូវបានប្រើជាម្ជុល PWM ។ សម្រាប់ព័ត៌មានបន្ថែមអំពី ESP32 GPIOs សូមអាន៖ ESP32 Pinout Reference៖ តើម្ជុល GPIO មួយណាដែលអ្នកគួរប្រើ?
កូដ
យើងនឹងសរសេរកម្មវិធី ESP32 ដោយប្រើ Arduino IDE ដូច្នេះត្រូវប្រាកដថាអ្នកបានដំឡើងកម្មវិធីបន្ថែម ESP32 មុនពេលបន្ត៖ (ប្រសិនបើអ្នកបានធ្វើជំហាននេះរួចហើយ អ្នកអាចរំលងទៅជំហានបន្ទាប់។ )
ការដំឡើងកម្មវិធីបន្ថែម ESP32 នៅក្នុង Arduino IDE
បើកលេខកូដ Project_3_ESP32_PWM.ino ក្នុង arduino IDEអ្នកចាប់ផ្តើមដោយកំណត់ម្ជុលដែល LED ត្រូវបានភ្ជាប់។ ក្នុងករណីនេះ LED ត្រូវបានភ្ជាប់ទៅ GPIO 4 ។
បន្ទាប់មកអ្នកកំណត់លក្ខណៈសម្បត្តិសញ្ញា PWM ។ អ្នកកំណត់ប្រេកង់ 5000 Hz ជ្រើសរើសឆានែល 0 ដើម្បីបង្កើតសញ្ញា ហើយកំណត់គុណភាពបង្ហាញ 8 ប៊ីត។ អ្នកអាចជ្រើសរើសលក្ខណៈសម្បត្តិផ្សេងទៀត ដែលខុសពីទាំងនេះ ដើម្បីបង្កើតសញ្ញា PWM ផ្សេងៗគ្នា។
នៅក្នុង setup() អ្នកត្រូវកំណត់រចនាសម្ព័ន្ធ LED PWM ជាមួយនឹងលក្ខណៈសម្បត្តិដែលអ្នកបានកំណត់ពីមុន ដោយប្រើមុខងារ ledcSetup() ដែលទទួលយកជាអាគុយម៉ង់ ledChannel ប្រេកង់ និងដំណោះស្រាយដូចខាងក្រោម៖
បន្ទាប់មកអ្នកត្រូវជ្រើសរើស GPIO ដែលអ្នកនឹងទទួលបានសញ្ញាពី។ សម្រាប់នោះប្រើមុខងារ ledcAttachPin() ដែលទទួលយកជាអាគុយម៉ង់ GPIO ដែលអ្នកចង់ទទួលបានសញ្ញា និងឆានែលដែលកំពុងបង្កើតសញ្ញា។ នៅក្នុងនេះ អតីតample យើងនឹងទទួលបានសញ្ញានៅក្នុង ledPin GPIO ដែលត្រូវគ្នានឹង GPIO 4. ឆានែលដែលបង្កើតសញ្ញាគឺ ledChannel ដែលត្រូវនឹង channel 0 ។
នៅក្នុងរង្វិលជុំ អ្នកនឹងផ្លាស់ប្តូរវដ្តកាតព្វកិច្ចរវាង 0 និង 255 ដើម្បីបង្កើនពន្លឺ LED ។
ហើយបន្ទាប់មករវាង 255 និង 0 ដើម្បីបន្ថយពន្លឺ។
ដើម្បីកំណត់ពន្លឺរបស់ LED អ្នកគ្រាន់តែត្រូវប្រើមុខងារ ledcWrite() ដែលទទួលយកជាអាគុយម៉ង់នៃឆានែលដែលកំពុងបង្កើតសញ្ញា និងវដ្តកាតព្វកិច្ច។
ដូចដែលយើងកំពុងប្រើគុណភាពបង្ហាញ 8 ប៊ីត វដ្តកាតព្វកិច្ចនឹងត្រូវបានគ្រប់គ្រងដោយប្រើតម្លៃពី 0 ដល់ 255។ ចំណាំថានៅក្នុងមុខងារ ledcWrite() យើងប្រើឆានែលដែលបង្កើតសញ្ញា មិនមែន GPIO ទេ។
ការធ្វើតេស្ត Example
ផ្ទុកឡើងកូដទៅ ESP32 របស់អ្នក។ ត្រូវប្រាកដថាអ្នកមានក្តារត្រឹមត្រូវ និងច្រក COM ដែលបានជ្រើសរើស។ សូមក្រឡេកមើលសៀគ្វីរបស់អ្នក។ អ្នកគួរតែមាន LED dimmer ដែលបង្កើននិងបន្ថយពន្លឺ។
គម្រោងទី 4 ឧបករណ៍ចាប់សញ្ញាចលនា ESP32 PIR
គម្រោងនេះបង្ហាញពីរបៀបចាប់ចលនាជាមួយ ESP32 ដោយប្រើឧបករណ៍ចាប់សញ្ញាចលនា PIR។ ឧបករណ៍ចាប់សញ្ញានឹងបន្លឺសំឡេងរោទិ៍នៅពេលរកឃើញចលនា ហើយបញ្ឈប់ការជូនដំណឹងនៅពេលដែលគ្មានចលនាត្រូវបានរកឃើញសម្រាប់រយៈពេលកំណត់ជាមុន (ដូចជា 4 វិនាទី)
របៀបដែលឧបករណ៍ចាប់សញ្ញាចលនា HC-SR501 ដំណើរការ
.គោលការណ៍ការងាររបស់ឧបករណ៍ចាប់សញ្ញា HC-SR501 គឺផ្អែកលើការផ្លាស់ប្តូរវិទ្យុសកម្មអ៊ីនហ្វ្រារ៉េដលើវត្ថុដែលកំពុងផ្លាស់ទី។ ដើម្បីត្រូវបានរកឃើញដោយឧបករណ៍ចាប់សញ្ញា HC-SR501 វត្ថុត្រូវតែបំពេញតាមតម្រូវការពីរ៖
- វត្ថុកំពុងបញ្ចេញតាមអ៊ីនហ្វ្រារ៉េដ។
- វត្ថុកំពុងផ្លាស់ទី ឬញ័រ
ដូច្នេះ៖
ប្រសិនបើវត្ថុមួយកំពុងបញ្ចេញកាំរស្មីអ៊ីនហ្វ្រារ៉េដ ប៉ុន្តែមិនមានចលនា (ឧ. មនុស្សម្នាក់ឈរស្ងៀមដោយមិនផ្លាស់ទី) វាមិនត្រូវបានរកឃើញដោយឧបករណ៍ចាប់សញ្ញានោះទេ។
ប្រសិនបើវត្ថុមួយកំពុងផ្លាស់ទី ប៉ុន្តែគ្មានការបំភាយកាំរស្មីអ៊ីនហ្វ្រារ៉េដ (ឧទាហរណ៍ មនុស្សយន្ត ឬយានជំនិះ) វាមិនត្រូវបានរកឃើញដោយឧបករណ៍ចាប់សញ្ញានោះទេ។
ការណែនាំកម្មវិធីកំណត់ម៉ោង
នៅក្នុងនេះ អតីតampយើងក៏នឹងណែនាំកម្មវិធីកំណត់ម៉ោងផងដែរ។ យើងចង់ឱ្យ LED បន្តសម្រាប់ចំនួនវិនាទីដែលបានកំណត់ទុកជាមុនបន្ទាប់ពីចលនាត្រូវបានរកឃើញ។ ជំនួសឱ្យការប្រើមុខងារ delay() ដែលរារាំងកូដរបស់អ្នក ហើយមិនអនុញ្ញាតឱ្យអ្នកធ្វើអ្វីផ្សេងទៀតសម្រាប់ចំនួនវិនាទីដែលបានកំណត់នោះ យើងគួរតែប្រើកម្មវិធីកំណត់ម៉ោង។មុខងារពន្យាពេល ()
អ្នកគួរតែស្គាល់មុខងារ delay() ដូចដែលវាត្រូវបានគេប្រើយ៉ាងទូលំទូលាយ។ មុខងារនេះគឺសាមញ្ញណាស់ក្នុងការប្រើប្រាស់។ វាទទួលយកលេខ int តែមួយជាអាគុយម៉ង់។
លេខនេះតំណាងឱ្យពេលវេលាគិតជាមិល្លីវិនាទី ដែលកម្មវិធីត្រូវរង់ចាំរហូតដល់បន្តទៅជួរបន្ទាប់នៃកូដ។នៅពេលអ្នកពន្យារពេល (1000) កម្មវិធីរបស់អ្នកឈប់នៅលើបន្ទាត់នោះរយៈពេល 1 វិនាទី។
delay() គឺជាមុខងារទប់ស្កាត់។ មុខងារទប់ស្កាត់រារាំងកម្មវិធីមិនឱ្យធ្វើអ្វីផ្សេងទៀតរហូតដល់កិច្ចការពិសេសនោះត្រូវបានបញ្ចប់។ ប្រសិនបើអ្នកត្រូវការកិច្ចការច្រើនដើម្បីកើតឡើងក្នុងពេលតែមួយ អ្នកមិនអាចប្រើ delay() បានទេ។
សម្រាប់គម្រោងភាគច្រើន អ្នកគួរជៀសវាងការប្រើការពន្យារពេល ហើយប្រើកម្មវិធីកំណត់ម៉ោងជំនួសវិញ។
មុខងារ millis()
ដោយប្រើមុខងារមួយហៅថា millis() អ្នកអាចត្រឡប់ចំនួនមីលីវិនាទីដែលបានកន្លងផុតចាប់តាំងពីកម្មវិធីចាប់ផ្តើមដំបូង។ហេតុអ្វីបានជាមុខងារនោះមានប្រយោជន៍? ដោយសារតែការប្រើគណិតវិទ្យាមួយចំនួន អ្នកអាចផ្ទៀងផ្ទាត់ថាតើពេលវេលាបានកន្លងផុតទៅយ៉ាងងាយដោយមិនបាច់បិទកូដរបស់អ្នក។
ផ្នែកដែលត្រូវការ
ដើម្បីធ្វើតាមការបង្រៀននេះ អ្នកត្រូវការផ្នែកខាងក្រោម
- ក្រុមប្រឹក្សាភិបាល ESP32 DEVKIT V1
- ឧបករណ៍ចាប់សញ្ញាចលនា PIR (HC-SR501)
- Buzzer សកម្ម
- ខ្សែភ្លើងលោត
- ក្តារនំប៉័ង
គ្រោងការណ៍ចំណាំ៖ វ៉ុលការងារtage នៃ HC-SR501 គឺ 5V ។ ប្រើម្ជុល Vin ដើម្បីថាមពលវា។
កូដ
មុនពេលបន្តការបង្រៀននេះ អ្នកគួរតែដំឡើងកម្មវិធីបន្ថែម ESP32 នៅក្នុង Arduino IDE របស់អ្នក។ សូមអនុវត្តតាមការបង្រៀនមួយខាងក្រោមដើម្បីដំឡើង ESP32 នៅលើ Arduino IDE ប្រសិនបើអ្នកមិនទាន់បានអនុវត្ត។ (ប្រសិនបើអ្នកបានធ្វើជំហាននេះរួចហើយ អ្នកអាចរំលងទៅជំហានបន្ទាប់។ )
ការដំឡើងកម្មវិធីបន្ថែម ESP32 នៅក្នុង Arduino IDE
បើកលេខកូដ Project_4_ESP32_PIR_Motion_Sensor.ino ក្នុង arduino IDE ។
បាតុកម្ម
ផ្ទុកឡើងកូដទៅកាន់ក្តារ ESP32 របស់អ្នក។ ត្រូវប្រាកដថាអ្នកមានក្តារត្រឹមត្រូវ និងច្រក COM ដែលបានជ្រើសរើស។ ផ្ទុកឡើងនូវជំហានយោងកូដ។
បើក Serial Monitor ក្នុងអត្រា baud នៃ 115200។ផ្លាស់ទីដៃរបស់អ្នកនៅពីមុខឧបករណ៍ចាប់សញ្ញា PIR ។ buzzer គួរតែបើក ហើយសារត្រូវបានបោះពុម្ពនៅក្នុង Serial Monitor ដោយនិយាយថា "Motion detected! Buzzer alarm"។
បន្ទាប់ពី 4 វិនាទី buzzer គួរតែបិទ។
គម្រោងទី 5 ESP32 Switch Web ម៉ាស៊ីនមេ
នៅក្នុងគម្រោងនេះ អ្នកនឹងបង្កើតឯកត្តជន web ម៉ាស៊ីនមេដែលមាន ESP32 ដែលគ្រប់គ្រងលទ្ធផល (LED ពីរ) ដោយប្រើបរិយាកាសសរសេរកម្មវិធី Arduino IDE ។ នេះ។ web ម៉ាស៊ីនមេគឺឆ្លើយតបតាមទូរស័ព្ទ ហើយអាចចូលប្រើជាមួយឧបករណ៍ណាមួយដែលជាកម្មវិធីរុករកលើបណ្តាញមូលដ្ឋាន។ យើងនឹងបង្ហាញអ្នកពីរបៀបបង្កើត web ម៉ាស៊ីនមេ និងរបៀបដែលកូដដំណើរការជាជំហានៗ។
គម្រោងបញ្ចប់view
មុននឹងទៅគម្រោងដោយផ្ទាល់ វាជារឿងសំខាន់ដែលត្រូវគូសបញ្ជាក់អំពីអ្វីដែលរបស់យើង។ web ម៉ាស៊ីនមេនឹងធ្វើ ដូច្នេះវាកាន់តែងាយស្រួលក្នុងការធ្វើតាមជំហាននៅពេលក្រោយ។
- នេះ។ web ម៉ាស៊ីនមេដែលអ្នកនឹងបង្កើតការគ្រប់គ្រង LEDs ពីរដែលភ្ជាប់ទៅ ESP32 GPIO 26 និង GPIO 27;
- អ្នកអាចចូលប្រើ ESP32 web server ដោយវាយបញ្ចូលអាសយដ្ឋាន IP ESP32 នៅលើកម្មវិធីរុករកតាមអ៊ីនធឺណិតក្នុងបណ្តាញមូលដ្ឋាន។
- ដោយចុចប៊ូតុងនៅលើរបស់អ្នក។ web ម៉ាស៊ីនមេ អ្នកអាចផ្លាស់ប្តូរស្ថានភាពនៃ LED នីមួយៗភ្លាមៗ។
ផ្នែកដែលត្រូវការ
សម្រាប់មេរៀននេះ អ្នកនឹងត្រូវការផ្នែកខាងក្រោម៖
- ក្រុមប្រឹក្សាភិបាល ESP32 DEVKIT V1
- អំពូល LED 2x5 ម។
- 2x 200 Ohm resistor
- ក្តារនំប៉័ង
- ខ្សែភ្លើងលោត
គ្រោងការណ៍
ចាប់ផ្តើមដោយការបង្កើតសៀគ្វី។ ភ្ជាប់ LEDs ពីរទៅ ESP32 ដូចដែលបានបង្ហាញនៅក្នុងដ្យាក្រាមគ្រោងការណ៍ខាងក្រោម - LED មួយបានភ្ជាប់ទៅ GPIO 26 និងមួយទៀតទៅ GPIO 27 ។
ចំណាំ៖ យើងកំពុងប្រើបន្ទះ ESP32 DEVKIT DOIT ដែលមាន 36 pins។ មុនពេលដំឡើងសៀគ្វី សូមប្រាកដថាអ្នកពិនិត្យមើល pinout សម្រាប់បន្ទះដែលអ្នកកំពុងប្រើ។កូដ
នៅទីនេះយើងផ្តល់លេខកូដដែលបង្កើត ESP32 web ម៉ាស៊ីនមេ។ បើកលេខកូដ Project_5_ESP32_Switch _Web_Server.ino នៅក្នុង arduino IDE ប៉ុន្តែកុំបង្ហោះវានៅឡើយ។ អ្នកត្រូវធ្វើការកែប្រែខ្លះដើម្បីឱ្យវាដំណើរការសម្រាប់អ្នក។
យើងនឹងសរសេរកម្មវិធី ESP32 ដោយប្រើ Arduino IDE ដូច្នេះត្រូវប្រាកដថាអ្នកបានដំឡើងកម្មវិធីបន្ថែម ESP32 មុនពេលបន្ត៖ (ប្រសិនបើអ្នកបានធ្វើជំហាននេះរួចហើយ អ្នកអាចរំលងទៅជំហានបន្ទាប់។ )
ការដំឡើងកម្មវិធីបន្ថែម ESP32 នៅក្នុង Arduino IDE
ការកំណត់អត្តសញ្ញាណបណ្តាញរបស់អ្នក។
អ្នកត្រូវកែប្រែបន្ទាត់ខាងក្រោមជាមួយនឹងព័ត៌មានអត្តសញ្ញាណបណ្តាញរបស់អ្នក៖ SSID និងពាក្យសម្ងាត់។ លេខកូដត្រូវបានផ្តល់មតិយ៉ាងល្អអំពីកន្លែងដែលអ្នកគួរធ្វើការផ្លាស់ប្តូរ។ការបង្ហោះកូដ
ឥឡូវនេះអ្នកអាចផ្ទុកឡើងកូដនិង web ម៉ាស៊ីនមេនឹងដំណើរការភ្លាមៗ។
អនុវត្តតាមជំហានបន្ទាប់ដើម្បីបង្ហោះកូដទៅកាន់ ESP32៖
- ដោតបន្ទះ ESP32 របស់អ្នកនៅក្នុងកុំព្យូទ័ររបស់អ្នក។
- នៅក្នុង Arduino IDE ជ្រើសរើសក្តាររបស់អ្នកនៅក្នុង ឧបករណ៍ > ក្តារ (ក្នុងករណីរបស់យើង យើងកំពុងប្រើក្តារ ESP32 DEVKIT DOIT);
- ជ្រើសរើសច្រក COM នៅក្នុង ឧបករណ៍> ច្រក។
- ចុចប៊ូតុងផ្ទុកឡើងនៅក្នុង Arduino IDE ហើយរង់ចាំពីរបីវិនាទីខណៈពេលដែលលេខកូដចងក្រងនិងផ្ទុកឡើងទៅកាន់ក្តាររបស់អ្នក។
- រង់ចាំសារ "ការបង្ហោះរួចរាល់"។
ស្វែងរកអាសយដ្ឋាន IP របស់ ESP
បន្ទាប់ពីបង្ហោះកូដរួច សូមបើក Serial Monitor ក្នុងអត្រា baud 115200។ចុចប៊ូតុង ESP32 EN (កំណត់ឡើងវិញ) ។ ESP32 ភ្ជាប់ទៅ Wi-Fi ហើយបញ្ចេញអាសយដ្ឋាន ESP IP នៅលើ Serial Monitor។ ចម្លងអាសយដ្ឋាន IP នោះ ពីព្រោះអ្នកត្រូវការវាដើម្បីចូលប្រើ ESP32 web ម៉ាស៊ីនមេ។
ការចូលប្រើ Web ម៉ាស៊ីនមេ
ដើម្បីចូលប្រើ web server បើក browser របស់អ្នក បិទភ្ជាប់អាសយដ្ឋាន IP ESP32 ហើយអ្នកនឹងឃើញទំព័រខាងក្រោម។
ចំណាំ៖ កម្មវិធីរុករកតាមអ៊ីនធឺណិត និង ESP32 របស់អ្នកគួរតែត្រូវបានភ្ជាប់ទៅបណ្តាញមូលដ្ឋានដូចគ្នា។ប្រសិនបើអ្នកក្រឡេកមើល Serial Monitor អ្នកអាចមើលឃើញថាមានអ្វីកើតឡើងនៅផ្ទៃខាងក្រោយ។ ESP ទទួលសំណើ HTTP ពីអតិថិជនថ្មី (ក្នុងករណីនេះ កម្មវិធីរុករករបស់អ្នក)។
អ្នកក៏អាចមើលព័ត៌មានផ្សេងទៀតអំពីសំណើ HTTP ផងដែរ។
បាតុកម្ម
ឥឡូវនេះអ្នកអាចសាកល្បងថាតើរបស់អ្នក។ web ម៉ាស៊ីនមេកំពុងដំណើរការត្រឹមត្រូវ។ ចុចប៊ូតុងដើម្បីគ្រប់គ្រង LEDs ។ក្នុងពេលជាមួយគ្នានេះ អ្នកអាចមើល Serial Monitor ដើម្បីមើលថាតើមានអ្វីកើតឡើងនៅផ្ទៃខាងក្រោយ។ សម្រាប់អតីតampនៅពេលអ្នកចុចប៊ូតុងដើម្បីបើក GPIO 26 បើក ESP32 ទទួលសំណើនៅលើ /26/on URL.
នៅពេលដែល ESP32 ទទួលបានសំណើនោះ វាប្រែ LED ដែលភ្ជាប់ទៅ GPIO 26 ON ហើយធ្វើបច្ចុប្បន្នភាពស្ថានភាពរបស់វានៅលើ web ទំព័រ។
ប៊ូតុងសម្រាប់ GPIO 27 ដំណើរការតាមរបៀបស្រដៀងគ្នា។ សាកល្បងថាវាដំណើរការបានត្រឹមត្រូវ។
របៀបដែលកូដដំណើរការ
នៅក្នុងផ្នែកនេះនឹងពិនិត្យមើលកាន់តែដិតដល់នូវកូដដើម្បីមើលពីរបៀបដែលវាដំណើរការ។
រឿងដំបូងដែលអ្នកត្រូវធ្វើគឺបញ្ចូលបណ្ណាល័យវ៉ាយហ្វាយ។ដូចដែលបានរៀបរាប់ពីមុន អ្នកត្រូវបញ្ចូល ssid និងពាក្យសម្ងាត់របស់អ្នកនៅក្នុងបន្ទាត់ខាងក្រោមនៅខាងក្នុងសម្រង់ទ្វេ។
បន្ទាប់មកអ្នកកំណត់របស់អ្នក។ web server ទៅច្រក 80 ។
បន្ទាត់ខាងក្រោមបង្កើតអថេរដើម្បីរក្សាទុកបឋមកថានៃសំណើ HTTP៖
បន្ទាប់មក អ្នកបង្កើតអថេរជំនួយ ដើម្បីរក្សាទុកស្ថានភាពបច្ចុប្បន្ននៃលទ្ធផលរបស់អ្នក។ ប្រសិនបើអ្នកចង់បន្ថែមលទ្ធផលបន្ថែមទៀត និងរក្សាទុកស្ថានភាពរបស់វា អ្នកត្រូវបង្កើតអថេរបន្ថែមទៀត។
អ្នកក៏ត្រូវកំណត់ GPIO ទៅនឹងលទ្ធផលនីមួយៗរបស់អ្នក។ នៅទីនេះយើងកំពុងប្រើ GPIO 26 និង GPIO 27។ អ្នកអាចប្រើ GPIO ដែលសមស្របណាមួយផ្សេងទៀត។
រៀបចំ()
ឥឡូវនេះយើងចូលទៅក្នុងការដំឡើង () ។ ដំបូង យើងចាប់ផ្តើមទំនាក់ទំនងសៀរៀលក្នុងអត្រា baud នៃ 115200 សម្រាប់គោលបំណងបំបាត់កំហុស។អ្នកក៏កំណត់ GPIO របស់អ្នកជា OUTPUTs ហើយកំណត់វាទៅទាប។
បន្ទាត់ខាងក្រោមចាប់ផ្តើមការភ្ជាប់ Wi-Fi ជាមួយ WiFi.begin(ssid, password) រង់ចាំការតភ្ជាប់ជោគជ័យ ហើយបោះពុម្ពអាសយដ្ឋាន ESP IP នៅក្នុង Serial Monitor។
រង្វិលជុំ()
នៅក្នុង loop() យើងសរសេរកម្មវិធីអ្វីដែលកើតឡើងនៅពេលដែលអតិថិជនថ្មីបង្កើតការភ្ជាប់ជាមួយ web ម៉ាស៊ីនមេ។
ESP32 តែងតែស្តាប់អតិថិជនដែលចូលមកជាមួយបន្ទាត់ខាងក្រោម៖នៅពេលសំណើត្រូវបានទទួលពីអតិថិជន យើងនឹងរក្សាទុកទិន្នន័យចូល។ while loop ដែលបន្តបន្ទាប់នឹងដំណើរការដរាបណាអតិថិជននៅភ្ជាប់។ យើងមិនណែនាំឱ្យផ្លាស់ប្តូរផ្នែកខាងក្រោមនៃកូដទេ លុះត្រាតែអ្នកដឹងច្បាស់ពីអ្វីដែលអ្នកកំពុងធ្វើ។
ផ្នែកបន្ទាប់នៃសេចក្តីថ្លែងការណ៍ if និង else ពិនិត្យមើលថាតើប៊ូតុងមួយណាត្រូវបានចុចនៅក្នុងរបស់អ្នក។ web ទំព័រ និងគ្រប់គ្រងលទ្ធផលទៅតាមនោះ។ ដូចដែលយើងបានឃើញពីមុន យើងធ្វើសំណើលើភាពខុសគ្នា URLs អាស្រ័យលើប៊ូតុងដែលបានចុច។
សម្រាប់អតីតampដូច្នេះ ប្រសិនបើអ្នកបានចុចប៊ូតុង GPIO 26 ON នោះ ESP32 ទទួលបានសំណើនៅលើ /26/ON URL (យើងអាចឃើញថាព័ត៌មាននោះនៅលើបឋមកថា HTTP នៅលើ Serial Monitor)។ ដូច្នេះយើងអាចពិនិត្យមើលថាតើបឋមកថាមានកន្សោម GET /26/on ដែរឬទេ។ ប្រសិនបើវាមាន យើងប្តូរអថេរ output26state ទៅ ON ហើយ ESP32 បើក LED។
វាដំណើរការដូចគ្នាសម្រាប់ប៊ូតុងផ្សេងទៀត។ ដូច្នេះ ប្រសិនបើអ្នកចង់បន្ថែមលទ្ធផលបន្ថែមទៀត អ្នកគួរតែកែប្រែផ្នែកនៃកូដនេះ ដើម្បីបញ្ចូលពួកវា។
ការបង្ហាញ HTML web ទំព័រ
រឿងបន្ទាប់ដែលអ្នកត្រូវធ្វើគឺការបង្កើត web ទំព័រ។ ESP32 នឹងត្រូវបានផ្ញើការឆ្លើយតបទៅកាន់កម្មវិធីរុករករបស់អ្នកជាមួយនឹងកូដ HTML មួយចំនួនដើម្បីបង្កើត web ទំព័រ។
នេះ។ web ទំព័រត្រូវបានផ្ញើទៅម៉ាស៊ីនភ្ញៀវដោយប្រើ Expressing client.println() នេះ។ អ្នកគួរតែបញ្ចូលអ្វីដែលអ្នកចង់ផ្ញើទៅអតិថិជនជាអាគុយម៉ង់។
រឿងដំបូងដែលយើងគួរផ្ញើគឺតែងតែជាបន្ទាត់ខាងក្រោម ដែលបង្ហាញថាយើងកំពុងផ្ញើ HTML ។បន្ទាប់មកបន្ទាត់ខាងក្រោមបង្កើត web ទំព័រឆ្លើយតបនៅក្នុងណាមួយ។ web កម្មវិធីរុករក។
ហើយខាងក្រោមនេះត្រូវបានប្រើដើម្បីការពារការស្នើសុំនៅលើ favicon ។ - អ្នកមិនចាំបាច់ព្រួយបារម្ភអំពីខ្សែនេះទេ។
រចនាប័ទ្ម Web ទំព័រ
បន្ទាប់មកយើងមានអត្ថបទ CSS មួយចំនួនដើម្បីកំណត់រចនាប័ទ្មប៊ូតុង និង web រូបរាងទំព័រ។
យើងជ្រើសរើសពុម្ពអក្សរ Helvetica កំណត់មាតិកាដែលត្រូវបង្ហាញជាប្លុក និងតម្រឹមនៅកណ្តាល។យើងកំណត់រចនាប័ទ្មប៊ូតុងរបស់យើងជាមួយនឹងពណ៌ #4CAF50, ដោយគ្មានស៊ុម, អត្ថបទជាពណ៌ស, និងជាមួយ padding នេះ: 16px 40px ។ យើងក៏កំណត់ការតុបតែងអត្ថបទទៅជាគ្មាន កំណត់ទំហំពុម្ពអក្សរ រឹម និងទស្សន៍ទ្រនិចទៅទ្រនិច។
យើងក៏កំណត់រចនាប័ទ្មសម្រាប់ប៊ូតុងទីពីរ ជាមួយនឹងលក្ខណៈសម្បត្តិទាំងអស់នៃប៊ូតុងដែលយើងបានកំណត់ពីមុន ប៉ុន្តែមានពណ៌ផ្សេង។ នេះនឹងជារចនាប័ទ្មសម្រាប់ប៊ូតុងបិទ។
ការកំណត់ Web ទំព័រចំណងជើងទីមួយ
នៅជួរបន្ទាប់អ្នកអាចកំណត់ក្បាលទីមួយរបស់អ្នក។ web ទំព័រ។ នៅទីនេះយើងមាន "ESP32 Web ម៉ាស៊ីនមេ” ប៉ុន្តែអ្នកអាចផ្លាស់ប្តូរអត្ថបទនេះទៅអ្វីដែលអ្នកចូលចិត្ត។ការបង្ហាញប៊ូតុង និងស្ថានភាពដែលត្រូវគ្នា។
បន្ទាប់មក អ្នកសរសេរកថាខណ្ឌដើម្បីបង្ហាញស្ថានភាពបច្ចុប្បន្ន GPIO 26។ ដូចដែលអ្នកអាចឃើញយើងប្រើអថេរ output26State ដូច្នេះរដ្ឋធ្វើបច្ចុប្បន្នភាពភ្លាមៗនៅពេលដែលអថេរនេះផ្លាស់ប្តូរ។បន្ទាប់មក យើងបង្ហាញប៊ូតុងបើក ឬបិទ អាស្រ័យលើស្ថានភាពបច្ចុប្បន្នរបស់ GPIO។ ប្រសិនបើស្ថានភាពបច្ចុប្បន្នរបស់ GPIO ត្រូវបានបិទ យើងបង្ហាញប៊ូតុង ON ប្រសិនបើមិនមានទេ យើងបង្ហាញប៊ូតុងបិទ។
យើងប្រើនីតិវិធីដូចគ្នាសម្រាប់ GPIO 27 ។
ការបិទការតភ្ជាប់
ជាចុងក្រោយ នៅពេលដែលការឆ្លើយតបបានបញ្ចប់ យើងសម្អាតអថេរបឋមកថា ហើយបញ្ឈប់ការតភ្ជាប់ជាមួយម៉ាស៊ីនភ្ញៀវជាមួយ client.stop()។
រុំឡើង
នៅក្នុងមេរៀននេះ យើងបានបង្ហាញអ្នកពីរបៀបបង្កើត a web ម៉ាស៊ីនមេជាមួយ ESP32 ។ យើងបានបង្ហាញអ្នកនូវអតីតមនុស្សសាមញ្ញample ដែលគ្រប់គ្រង LEDs ពីរ ប៉ុន្តែគំនិតគឺដើម្បីជំនួស LEDs ទាំងនោះជាមួយនឹងការបញ្ជូនត ឬទិន្នផលផ្សេងទៀតដែលអ្នកចង់គ្រប់គ្រង។
គម្រោង 6 RGB LED Web ម៉ាស៊ីនមេ
នៅក្នុងគម្រោងនេះ យើងនឹងបង្ហាញអ្នកពីរបៀបបញ្ជា RGB LED ពីចម្ងាយជាមួយនឹងបន្ទះ ESP32 ដោយប្រើ a web ម៉ាស៊ីនមេជាមួយឧបករណ៍ជ្រើសរើសពណ៌។
គម្រោងបញ្ចប់view
មុននឹងចាប់ផ្តើម សូមមើលពីរបៀបដែលគម្រោងនេះដំណើរការ៖
- ESP32 web ម៉ាស៊ីនមេបង្ហាញឧបករណ៍ជ្រើសរើសពណ៌។
- នៅពេលអ្នកជ្រើសរើសពណ៌ កម្មវិធីរុករកតាមអ៊ីនធឺណិតរបស់អ្នកធ្វើការស្នើសុំនៅលើ a URL ដែលមានប៉ារ៉ាម៉ែត្រ R, G និង B នៃពណ៌ដែលបានជ្រើសរើស។
- ESP32 របស់អ្នកទទួលបានសំណើ និងបំបែកតម្លៃសម្រាប់ប៉ារ៉ាម៉ែត្រពណ៌នីមួយៗ។
- បន្ទាប់មកវាបញ្ជូនសញ្ញា PWM ជាមួយនឹងតម្លៃដែលត្រូវគ្នាទៅ GPIOs ដែលកំពុងគ្រប់គ្រង RGB LED ។
តើអំពូល LED RGB ដំណើរការយ៉ាងដូចម្តេច?
នៅក្នុង cathode RGB LED ធម្មតា LEDs ទាំងបីចែករំលែកការតភ្ជាប់អវិជ្ជមាន (cathode)។ ទាំងអស់ដែលបានរួមបញ្ចូលនៅក្នុងឧបករណ៍គឺ common-cathode RGB ។តើធ្វើដូចម្តេចដើម្បីបង្កើតពណ៌ផ្សេងគ្នា?
ជាមួយនឹង RGB LED អ្នកអាចបង្កើតពន្លឺពណ៌ក្រហម បៃតង និងខៀវ ហើយដោយកំណត់រចនាសម្ព័ន្ធអាំងតង់ស៊ីតេនៃ LED នីមួយៗ អ្នកអាចបង្កើតពណ៌ផ្សេងទៀតបានផងដែរ។
សម្រាប់អតីតampឡេ ដើម្បីផលិតពន្លឺពណ៌ខៀវសុទ្ធ អ្នកត្រូវកំណត់ LED ពណ៌ខៀវទៅអាំងតង់ស៊ីតេខ្ពស់បំផុត ហើយ LEDs ពណ៌បៃតង និងក្រហមទៅអាំងតង់ស៊ីតេទាបបំផុត។ សម្រាប់ពន្លឺពណ៌ស អ្នកនឹងកំណត់ LEDs ទាំងបីទៅអាំងតង់ស៊ីតេខ្ពស់បំផុត។
ការលាយពណ៌
ដើម្បីផលិតពណ៌ផ្សេងទៀត អ្នកអាចផ្សំពណ៌ទាំងបីក្នុងអាំងតង់ស៊ីតេខុសៗគ្នា។ ដើម្បីកែតម្រូវអាំងតង់ស៊ីតេនៃ LED នីមួយៗអ្នកអាចប្រើសញ្ញា PWM ។
ដោយសារ LEDs នៅជិតគ្នាខ្លាំង ភ្នែករបស់យើងឃើញលទ្ធផលនៃការរួមបញ្ចូលគ្នានៃពណ៌ ជាជាងពណ៌ទាំងបីរៀងៗខ្លួន។
ដើម្បីមានគំនិតអំពីរបៀបផ្សំពណ៌ សូមមើលតារាងខាងក្រោម។
នេះគឺជាតារាងលាយពណ៌សាមញ្ញបំផុត ប៉ុន្តែផ្តល់ឱ្យអ្នកនូវគំនិតពីរបៀបដែលវាដំណើរការ និងរបៀបបង្កើតពណ៌ផ្សេងគ្នា។ផ្នែកដែលត្រូវការ
សម្រាប់គម្រោងនេះ អ្នកត្រូវការផ្នែកដូចខាងក្រោមៈ
- ក្រុមប្រឹក្សាភិបាល ESP32 DEVKIT V1
- RGB LED
- ឧបករណ៍ទប់ទល់ 3x220 ohm
- ខ្សែភ្លើងលោត
- ក្តារនំប៉័ង
គ្រោងការណ៍កូដ
យើងនឹងសរសេរកម្មវិធី ESP32 ដោយប្រើ Arduino IDE ដូច្នេះត្រូវប្រាកដថាអ្នកបានដំឡើងកម្មវិធីបន្ថែម ESP32 មុនពេលបន្ត៖ (ប្រសិនបើអ្នកបានធ្វើជំហាននេះរួចហើយ អ្នកអាចរំលងទៅជំហានបន្ទាប់។ )
- ការដំឡើងកម្មវិធីបន្ថែម ESP32 នៅក្នុង Arduino IDE
បន្ទាប់ពីដំឡើងសៀគ្វីបើកលេខកូដ
គម្រោង_6_RGB_LED_Web_Server.ino ក្នុង arduino IDE ។
មុននឹងបង្ហោះកូដ សូមកុំភ្លេចបញ្ចូលអត្តសញ្ញាណបណ្តាញរបស់អ្នក ដើម្បីឱ្យ ESP អាចភ្ជាប់ទៅបណ្តាញមូលដ្ឋានរបស់អ្នក។របៀបដែលលេខកូដដំណើរការ
គំនូរព្រាង ESP32 ប្រើបណ្ណាល័យ WiFi.h ។បន្ទាត់ខាងក្រោមកំណត់អថេរខ្សែអក្សរដើម្បីរក្សាប៉ារ៉ាម៉ែត្រ R, G និង B ពីសំណើ។
អថេរបួនបន្ទាប់ត្រូវបានប្រើដើម្បីឌិកូដសំណើ HTTP នៅពេលក្រោយ។
បង្កើតអថេរចំនួនបីសម្រាប់ GPIOs ដែលនឹងគ្រប់គ្រងប៉ារ៉ាម៉ែត្រឆ្នូត R, G និង B ។ ក្នុងករណីនេះយើងកំពុងប្រើ GPIO 13, GPIO 12 និង GPIO 14 ។
GPIOs ទាំងនេះត្រូវបញ្ចេញសញ្ញា PWM ដូច្នេះយើងត្រូវកំណត់រចនាសម្ព័ន្ធ PWM ជាមុនសិន។ កំណត់ប្រេកង់សញ្ញា PWM ទៅ 5000 Hz ។ បន្ទាប់មកភ្ជាប់ឆានែល PWM សម្រាប់ពណ៌នីមួយៗ
ហើយចុងក្រោយកំណត់ដំណោះស្រាយនៃឆានែល PWM ទៅ 8 ប៊ីត
នៅក្នុងការដំឡើង () កំណត់លក្ខណៈសម្បត្តិ PWM ទៅឆានែល PWM
ភ្ជាប់បណ្តាញ PWM ទៅ GPIOs ដែលត្រូវគ្នា។
ផ្នែកកូដខាងក្រោមបង្ហាញឧបករណ៍រើសពណ៌នៅក្នុងរបស់អ្នក។ web ទំព័រ និងធ្វើការស្នើសុំដោយផ្អែកលើពណ៌ដែលអ្នកបានជ្រើសរើស។
នៅពេលអ្នកជ្រើសរើសពណ៌ អ្នកទទួលបានសំណើដែលមានទម្រង់ដូចខាងក្រោម។
ដូច្នេះ យើងត្រូវបំបែកខ្សែនេះដើម្បីទទួលបានប៉ារ៉ាម៉ែត្រ R, G និង B ។ ប៉ារ៉ាម៉ែត្រត្រូវបានរក្សាទុកក្នុងអថេរ redString, greenString, និង blueString ហើយអាចមានតម្លៃចន្លោះពី 0 និង 255។ដើម្បីគ្រប់គ្រងបន្ទះជាមួយ ESP32 សូមប្រើមុខងារ ledcWrite() ដើម្បីបង្កើតសញ្ញា PWM ជាមួយនឹងតម្លៃដែលបានឌិកូដពី HTTP សំណើ។
ចំណាំ៖ ស្វែងយល់បន្ថែមអំពី PWM ជាមួយ ESP32: គម្រោងទី 3 ESP32 PWM (ទិន្នផលអាណាឡូក)
ដើម្បីគ្រប់គ្រងបន្ទះជាមួយ ESP8266 យើងគ្រាន់តែត្រូវប្រើ
មុខងារ analogWrite() ដើម្បីបង្កើតសញ្ញា PWM ជាមួយនឹងតម្លៃដែលបានឌិកូដពីសំណើ HTPP ។
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
ដោយសារយើងទទួលបានតម្លៃនៅក្នុងអថេរខ្សែអក្សរ យើងត្រូវបំប្លែងពួកវាទៅជាចំនួនគត់ដោយប្រើវិធី toInt()។
បាតុកម្ម
បន្ទាប់ពីបញ្ចូលព័ត៌មានសម្ងាត់បណ្តាញរបស់អ្នករួចហើយ សូមជ្រើសរើសបន្ទះត្រឹមត្រូវ និងច្រក COM ហើយបង្ហោះកូដទៅកាន់ ESP32.Upload code reference step របស់អ្នក។
បន្ទាប់ពីផ្ទុកឡើង សូមបើក Serial Monitor ក្នុងអត្រា baud 115200 ហើយចុចប៊ូតុង ESP Enable/Reset។ អ្នកគួរតែទទួលបានអាសយដ្ឋាន IP របស់ក្រុមប្រឹក្សាភិបាល។បើកកម្មវិធីរុករករបស់អ្នក ហើយបញ្ចូលអាសយដ្ឋាន IP ESP ។ ឥឡូវនេះ សូមប្រើឧបករណ៍ជ្រើសរើសពណ៌ ដើម្បីជ្រើសរើសពណ៌សម្រាប់ LED RGB ។
បន្ទាប់មកអ្នកត្រូវចុចប៊ូតុង "ផ្លាស់ប្តូរពណ៌" ដើម្បីឱ្យពណ៌មានប្រសិទ្ធភាព។ដើម្បីបិទ RGB LED សូមជ្រើសរើសពណ៌ខ្មៅ។
ពណ៌ខ្លាំងបំផុត (នៅផ្នែកខាងលើនៃជម្រើសពណ៌) គឺជាពណ៌ដែលនឹងផ្តល់លទ្ធផលកាន់តែប្រសើរ។
គម្រោង 7 ESP32 Relay Web ម៉ាស៊ីនមេ
ការប្រើប្រាស់ឧបករណ៍បញ្ជូនតជាមួយ ESP32 គឺជាវិធីដ៏ល្អមួយក្នុងការគ្រប់គ្រងឧបករណ៍ប្រើប្រាស់ក្នុងផ្ទះ AC ពីចម្ងាយ។ ការបង្រៀននេះពន្យល់ពីរបៀបគ្រប់គ្រងម៉ូឌុលបញ្ជូនតជាមួយ ESP32 ។
យើងនឹងពិនិត្យមើលពីរបៀបដែលម៉ូឌុលបញ្ជូនតដំណើរការ របៀបភ្ជាប់ការបញ្ជូនតទៅ ESP32 និងបង្កើត web server ដើម្បីគ្រប់គ្រងការបញ្ជូនតពីចម្ងាយ។
ការណែនាំអំពីការបញ្ជូនត
ឧបករណ៍បញ្ជូនត គឺជាកុងតាក់ដែលដំណើរការដោយអគ្គិសនី ហើយដូចកុងតាក់ផ្សេងទៀតដែរ វាអាចបើក ឬបិទ អនុញ្ញាតឱ្យចរន្តឆ្លងកាត់ ឬអត់។ វាអាចត្រូវបានគ្រប់គ្រងដោយវ៉ុលទាបtages ដូចជា 3.3V ដែលផ្តល់ដោយ ESP32 GPIOs និងអនុញ្ញាតឱ្យយើងគ្រប់គ្រងវ៉ុលខ្ពស់tagដូចជា 12V, 24V ឬ mains voltage (230V នៅអឺរ៉ុប និង 120V នៅអាមេរិក)។នៅផ្នែកខាងឆ្វេងមានពីរសំណុំនៃរន្ធបីដើម្បីភ្ជាប់វ៉ុលខ្ពស់។tages និងម្ជុលនៅខាងស្តាំ (វ៉ុលទាបtage) ភ្ជាប់ទៅ ESP32 GPIOs ។
វ៉ុលមេសtagអ៊ីការតភ្ជាប់ម៉ូឌុលបញ្ជូនតដែលបង្ហាញក្នុងរូបថតមុនមានឧបករណ៍ភ្ជាប់ពីរ ដែលនីមួយៗមានរន្ធចំនួនបី៖ ធម្មតា (COM) ធម្មតាបិទ (NC) និងធម្មតាបើក (NO) ។
- COM៖ ភ្ជាប់ចរន្តដែលអ្នកចង់គ្រប់គ្រង (main voltagង) ។
- NC (ធម្មតាបិទ): ការកំណត់រចនាសម្ព័ន្ធបិទជាធម្មតាត្រូវបានប្រើនៅពេលដែលអ្នកចង់ឱ្យការបញ្ជូនតត្រូវបានបិទតាមលំនាំដើម។ NC គឺ COM pins ត្រូវបានតភ្ជាប់ មានន័យថា ចរន្តកំពុងហូរ លុះត្រាតែអ្នកបញ្ជូនសញ្ញាពី ESP32 ទៅកាន់ម៉ូឌុលបញ្ជូនបន្ត ដើម្បីបើកសៀគ្វី និងបញ្ឈប់លំហូរបច្ចុប្បន្ន។
- NO (Normalally Open): ការកំណត់រចនាសម្ព័ន្ធបើកចំហធម្មតាដំណើរការតាមរបៀបផ្សេងទៀត៖ មិនមានការតភ្ជាប់រវាងម្ជុល NO និង COM ដូច្នេះសៀគ្វីត្រូវបានខូច លុះត្រាតែអ្នកផ្ញើសញ្ញាពី ESP32 ដើម្បីបិទសៀគ្វី។
ម្ជុលបញ្ជាវ៉ុលទាបtagខាងអ៊ីមានសំណុំម្ជុលបួន និងសំណុំម្ជុលបី។ ឈុតទីមួយមាន VCC និង GND ដើម្បីផ្តល់ថាមពលដល់ម៉ូឌុល ហើយបញ្ចូល 1 (IN1) និង input 2 (IN2) ដើម្បីគ្រប់គ្រងការបញ្ជូនបន្តខាងក្រោម និងផ្នែកខាងលើរៀងៗខ្លួន។
ប្រសិនបើម៉ូឌុលបញ្ជូនតរបស់អ្នកមានឆានែលតែមួយ នោះអ្នកនឹងមានម្ជុល IN តែមួយប៉ុណ្ណោះ។ ប្រសិនបើអ្នកមានប៉ុស្តិ៍ចំនួនបួន អ្នកនឹងមាន IN pins បួន ហើយដូច្នេះនៅលើ។
សញ្ញាដែលអ្នកផ្ញើទៅម្ជុល IN កំណត់ថាតើការបញ្ជូនតសកម្មឬអត់។ ការបញ្ជូនតត្រូវបានកេះនៅពេលដែលការបញ្ចូលទៅខាងក្រោមប្រហែល 2V ។ នេះមានន័យថាអ្នកនឹងមានសេណារីយ៉ូដូចខាងក្រោមៈ
- ការកំណត់រចនាសម្ព័ន្ធបិទជាធម្មតា (NC)៖
- សញ្ញាខ្ពស់ - ចរន្តកំពុងហូរ
- សញ្ញាទាប - ចរន្តមិនហូរទេ។
- ជាធម្មតាបើកការកំណត់រចនាសម្ព័ន្ធ (NO):
- សញ្ញាខ្ពស់ - ចរន្តមិនហូរទេ។
- សញ្ញាទាប - ចរន្តនៅក្នុងលំហូរ
អ្នកគួរតែប្រើការកំណត់រចនាសម្ព័ន្ធបិទជាធម្មតា នៅពេលដែលចរន្តគួរតែហូរភាគច្រើន ហើយអ្នកគ្រាន់តែចង់បញ្ឈប់វាម្តងម្កាល។
ប្រើការកំណត់រចនាសម្ព័ន្ធបើកធម្មតា នៅពេលអ្នកចង់ឱ្យចរន្តហូរម្តងម្កាល (សម្រាប់ឧample, បើក alamp ម្តងម្កាល)។
ការជ្រើសរើសការផ្គត់ផ្គង់ថាមពលសំណុំម្ជុលទីពីរមានម្ជុល GND, VCC និង JD-VCC ។
ម្ជុល JD-VCC ផ្តល់ថាមពលដល់មេដែកអេឡិចត្រុងនៃការបញ្ជូនត។ ចំណាំថាម៉ូឌុលមានមួក jumper ភ្ជាប់ម្ជុល VCC និង JD-VCC; ដែលបង្ហាញនៅទីនេះមានពណ៌លឿង ប៉ុន្តែរបស់អ្នកប្រហែលជាពណ៌ផ្សេង។
ជាមួយនឹងការបើក jumper cap ម្ជុល VCC និង JD-VCC ត្រូវបានភ្ជាប់។ នោះមានន័យថា អេឡិចត្រូម៉ាញ៉េទិចបញ្ជូនតត្រូវបានផ្តល់ថាមពលដោយផ្ទាល់ពីម្ជុលថាមពល ESP32 ដូច្នេះម៉ូឌុលបញ្ជូនត និងសៀគ្វី ESP32 មិនដាច់ឆ្ងាយពីគ្នាទៅវិញទៅមកទេ។
បើគ្មានមួក jumper ទេ អ្នកត្រូវផ្តល់ប្រភពថាមពលឯករាជ្យ ដើម្បីផ្តល់ថាមពលដល់អេឡិចត្រូម៉ាញ៉េទិចរបស់ relay តាមរយៈម្ជុល JD-VCC ។ ការកំណត់រចនាសម្ព័ន្ធនោះផ្តាច់ការបញ្ជូនតចេញពី ESP32 ជាមួយនឹងឧបករណ៍ភ្ជាប់មកជាមួយ optocoupler របស់ម៉ូឌុល ដែលការពារការខូចខាតដល់ ESP32 ក្នុងករណីមានចរន្តអគ្គិសនី។
គ្រោងការណ៍ការព្រមាន៖ ការប្រើប្រាស់វ៉ុលខ្ពស់tage ការផ្គត់ផ្គង់ថាមពលអាចបណ្តាលឱ្យមានរបួសធ្ងន់ធ្ងរ។
ដូច្នេះ LEDs 5mm ត្រូវបានប្រើជំនួសឱ្យវ៉ុលផ្គត់ផ្គង់ខ្ពស់។tage អំពូលនៅក្នុងការពិសោធន៍។ ប្រសិនបើអ្នកមិនស៊ាំជាមួយ mains voltagខ្ញុំសុំនរណាម្នាក់ដើម្បីជួយអ្នក។ ខណៈពេលដែលកំពុងសរសេរកម្មវិធី ESP ឬខ្សែភ្លើងសៀគ្វីរបស់អ្នក ត្រូវប្រាកដថាអ្វីៗទាំងអស់ត្រូវបានផ្តាច់ចេញពី mains voltage.ការដំឡើងបណ្ណាល័យសម្រាប់ ESP32
ដើម្បីសាងសង់នេះ។ web ម៉ាស៊ីនមេ យើងប្រើ ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ និងបណ្ណាល័យ AsyncTCP ។
ការដំឡើង ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ
អនុវត្តតាមជំហានបន្ទាប់ដើម្បីដំឡើង ESPAsyncWebម៉ាស៊ីនមេ បណ្ណាល័យ៖
- ចុចទីនេះដើម្បីទាញយក ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ។ អ្នកគួរតែមាន
ថតឯកសារ .zip នៅក្នុងថតឯកសារទាញយករបស់អ្នក។ - ពន្លាថតឯកសារ .zip ហើយអ្នកគួរតែទទួលបាន ESPAsyncWebថតម៉ាស៊ីនមេ
- ប្តូរឈ្មោះថតរបស់អ្នកពី ESPAsyncWebServer-master ទៅ ESPAsyncWebម៉ាស៊ីនមេ
- ផ្លាស់ទី ESPAsyncWebថតម៉ាស៊ីនមេទៅកាន់ថតឯកសារបណ្ណាល័យដំឡើង 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.Upload code reference step របស់អ្នក។
បើក Serial Monitor ក្នុងអត្រា baud នៃ 115200 ហើយចុចប៊ូតុង ESP32 EN ដើម្បីទទួលបានអាសយដ្ឋាន IP របស់វា។ បន្ទាប់មក សូមបើកកម្មវិធីរុករកតាមអ៊ីនធឺណិតក្នុងបណ្តាញមូលដ្ឋានរបស់អ្នក ហើយវាយបញ្ចូលអាសយដ្ឋាន IP របស់ ESP32 ដើម្បីទទួលបានការចូលទៅកាន់ web ម៉ាស៊ីនមេ។
បើក Serial Monitor ក្នុងអត្រា baud នៃ 115200 ហើយចុចប៊ូតុង ESP32 EN ដើម្បីទទួលបានអាសយដ្ឋាន IP របស់វា។ បន្ទាប់មក សូមបើកកម្មវិធីរុករកតាមអ៊ីនធឺណិតក្នុងបណ្តាញមូលដ្ឋានរបស់អ្នក ហើយវាយបញ្ចូលអាសយដ្ឋាន IP របស់ ESP32 ដើម្បីទទួលបានការចូលទៅកាន់ web ម៉ាស៊ីនមេ។ចំណាំ៖ កម្មវិធីរុករកតាមអ៊ីនធឺណិត និង ESP32 របស់អ្នកគួរតែត្រូវបានភ្ជាប់ទៅបណ្តាញមូលដ្ឋានដូចគ្នា។
អ្នកគួរតែទទួលបានអ្វីមួយដូចខាងក្រោមជាមួយនឹងប៊ូតុងពីរដូចជាចំនួននៃការបញ្ជូនតដែលអ្នកបានកំណត់នៅក្នុងកូដរបស់អ្នក។ឥឡូវនេះ អ្នកអាចប្រើប៊ូតុងដើម្បីគ្រប់គ្រងការបញ្ជូនតរបស់អ្នកដោយប្រើស្មាតហ្វូនរបស់អ្នក។
Project_8_Output_State_Synchronization_ Web_ម៉ាស៊ីនមេ
គម្រោងនេះបង្ហាញពីរបៀបគ្រប់គ្រងលទ្ធផល ESP32 ឬ ESP8266 ដោយប្រើ a web ម៉ាស៊ីនមេ និងប៊ូតុងរូបវ័ន្តក្នុងពេលដំណាលគ្នា។ ស្ថានភាពទិន្នផលត្រូវបានធ្វើបច្ចុប្បន្នភាពនៅលើ web ទំព័រថាតើវាត្រូវបានផ្លាស់ប្តូរតាមរយៈប៊ូតុងរូបវ័ន្តឬ web ម៉ាស៊ីនមេ។
គម្រោងបញ្ចប់view
សូមក្រឡេកមើលពីរបៀបដែលគម្រោងដំណើរការ។ESP32 ឬ ESP8266 ជាម្ចាស់ផ្ទះ a web ម៉ាស៊ីនមេដែលអនុញ្ញាតឱ្យអ្នកគ្រប់គ្រងស្ថានភាពនៃលទ្ធផល;
- ស្ថានភាពទិន្នផលបច្ចុប្បន្នត្រូវបានបង្ហាញនៅលើ web ម៉ាស៊ីនមេ;
- ESP ក៏ត្រូវបានភ្ជាប់ទៅប៊ូតុងរុញដែលគ្រប់គ្រងទិន្នផលដូចគ្នា;
- ប្រសិនបើអ្នកផ្លាស់ប្តូរស្ថានភាពទិន្នផលដោយប្រើប៊ូតុងរូបវ័ន្ត ស្ថានភាពបច្ចុប្បន្នរបស់វាក៏ត្រូវបានអាប់ដេតនៅលើប៊ូតុង web ម៉ាស៊ីនមេ។
សរុបមក គម្រោងនេះអនុញ្ញាតឱ្យអ្នកត្រួតពិនិត្យទិន្នផលដូចគ្នាដោយប្រើ a web ម៉ាស៊ីនមេ និងប៊ូតុងរុញក្នុងពេលដំណាលគ្នា។ នៅពេលណាដែលស្ថានភាពទិន្នផលផ្លាស់ប្តូរ web ម៉ាស៊ីនមេត្រូវបានធ្វើបច្ចុប្បន្នភាព។
ផ្នែកដែលត្រូវការ
នេះគឺជាបញ្ជីនៃផ្នែកដែលអ្នកត្រូវការដើម្បីបង្កើតសៀគ្វី៖
- ក្រុមប្រឹក្សាភិបាល ESP32 DEVKIT V1
- LED 5 ម។
- ឧបករណ៍ទប់ទល់ 220 Ohm
- ចុចប៊ូតុង
- ឧបករណ៍ទប់ទល់ 10k Ohm
- ក្តារនំប៉័ង
- ខ្សែភ្លើងលោត
គ្រោងការណ៍ការដំឡើងបណ្ណាល័យសម្រាប់ ESP32
ដើម្បីសាងសង់នេះ។ web ម៉ាស៊ីនមេ យើងប្រើ ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ និងបណ្ណាល័យ AsyncTCP ។(ប្រសិនបើអ្នកបានធ្វើជំហាននេះរួចហើយ អ្នកអាចរំលងទៅជំហានបន្ទាប់។)
ការដំឡើង ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ
អនុវត្តតាមជំហានបន្ទាប់ដើម្បីដំឡើង ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ៖
- ចុចទីនេះដើម្បីទាញយក ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ។ អ្នកគួរតែមាន
ថតឯកសារ .zip នៅក្នុងថតឯកសារទាញយករបស់អ្នក។ - ពន្លាថតឯកសារ .zip ហើយអ្នកគួរតែទទួលបាន ESPAsyncWebថតម៉ាស៊ីនមេ
- ប្តូរឈ្មោះថតរបស់អ្នកពី ESPAsyncWebServer-master ទៅ ESPAsyncWebម៉ាស៊ីនមេ
- ផ្លាស់ទី ESPAsyncWebថតម៉ាស៊ីនមេទៅកាន់ថតឯកសារបណ្ណាល័យដំឡើង 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())។ខួរក្បាល ()
មុខងារ processor() ជំនួសកន្លែងដាក់ណាមួយនៅលើអត្ថបទ 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 server យើងហៅមុខងារខាងក្រោមដែលធ្វើសំណើថ្មីនៅលើ /state URL រាល់វិនាទី។ដោះស្រាយសំណើ
បន្ទាប់មក យើងត្រូវដោះស្រាយនូវអ្វីដែលកើតឡើងនៅពេលដែល ESP32 ឬ ESP8266 ទទួលបានសំណើរទាំងនោះ។ URLs.
នៅពេលដែលសំណើត្រូវបានទទួលនៅលើ root /URLយើងផ្ញើទំព័រ HTML ក៏ដូចជាខួរក្បាល។បន្ទាត់ខាងក្រោមពិនិត្យមើលថាតើអ្នកបានទទួលសំណើនៅលើ /update?state=1 ឬ /update?state=0 URL និងផ្លាស់ប្តូរ ledState ទៅតាមនោះ។
នៅពេលដែលសំណើត្រូវបានទទួលនៅលើ / រដ្ឋ URLយើងផ្ញើស្ថានភាពទិន្នផលបច្ចុប្បន្ន៖
រង្វិលជុំ()
នៅក្នុងរង្វិលជុំ () យើងបញ្ចេញប៊ូតុងរុញហើយបើកឬបិទ LED អាស្រ័យលើតម្លៃនៃ ledState អថេរ។បាតុកម្ម
ផ្ទុកឡើងកូដទៅកាន់ក្រុមប្រឹក្សាភិបាល ESP32 របស់អ្នក។ ផ្ទុកឡើងនូវជំហានយោងកូដ។
បន្ទាប់មក បើក Serial Monitor ក្នុងអត្រា baud 115200។ ចុចប៊ូតុង EN/RST នៅលើយន្តហោះ ដើម្បីទទួលបានអាសយដ្ឋាន IP។បើកកម្មវិធីរុករកតាមអ៊ីនធឺណិតនៅលើបណ្តាញមូលដ្ឋានរបស់អ្នក ហើយវាយអាសយដ្ឋាន IP របស់ ESP ។ អ្នកគួរតែមានសិទ្ធិចូលប្រើ web server ដូចបង្ហាញខាងក្រោម។
ចំណាំ៖ កម្មវិធីរុករកតាមអ៊ីនធឺណិត និង ESP32 របស់អ្នកគួរតែត្រូវបានភ្ជាប់ទៅបណ្តាញមូលដ្ឋានដូចគ្នា។អ្នកអាចបិទបើកប៊ូតុងនៅលើ web ម៉ាស៊ីនមេដើម្បីបើក LED ។
អ្នកក៏អាចគ្រប់គ្រង LED ដូចគ្នាដោយប្រើប៊ូតុងរុញរាងកាយ។ ស្ថានភាពរបស់វានឹងតែងតែត្រូវបានធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិនៅលើ web ម៉ាស៊ីនមេ។
គម្រោងទី 9 ESP32 DHT11 Web ម៉ាស៊ីនមេ
នៅក្នុងគម្រោងនេះ អ្នកនឹងរៀនពីរបៀបបង្កើត ESP32 អសមកាល web ម៉ាស៊ីនមេជាមួយ DHT11 ដែលបង្ហាញសីតុណ្ហភាព និងសំណើមដោយប្រើ Arduino IDE ។
តម្រូវការជាមុន
នេះ។ web ម៉ាស៊ីនមេ យើងនឹងបង្កើតការអាប់ដេតការអានដោយស្វ័យប្រវត្តិ ដោយមិនចាំបាច់ធ្វើបច្ចុប្បន្នភាព web ទំព័រ។
ជាមួយនឹងគម្រោងនេះ អ្នកនឹងរៀន៖
- របៀបអានសីតុណ្ហភាព និងសំណើមពីឧបករណ៍ចាប់សញ្ញា DHT;
- បង្កើតអសមកាល web ម៉ាស៊ីនមេដោយប្រើ ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ;
- ធ្វើបច្ចុប្បន្នភាពការអានរបស់ឧបករណ៍ចាប់សញ្ញាដោយស្វ័យប្រវត្តិដោយមិនចាំបាច់ធ្វើបច្ចុប្បន្នភាព web ទំព័រ។
អសមកាល Web ម៉ាស៊ីនមេ
ដើម្បីសាងសង់ web ម៉ាស៊ីនមេដែលយើងនឹងប្រើ ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ ដែលផ្តល់នូវវិធីងាយស្រួលក្នុងការបង្កើតអសមកាល web ម៉ាស៊ីនមេ។ ការកសាងអសមកាល web server មាន advan ជាច្រើន។tages ដូចដែលបានរៀបរាប់ក្នុងបណ្ណាល័យទំព័រ GitHub ដូចជា៖
- "គ្រប់គ្រងការតភ្ជាប់ច្រើនជាងមួយក្នុងពេលតែមួយ";
- "នៅពេលអ្នកផ្ញើការឆ្លើយតប អ្នកត្រៀមខ្លួនភ្លាមៗដើម្បីដោះស្រាយការភ្ជាប់ផ្សេងទៀត ខណៈពេលដែលម៉ាស៊ីនមេកំពុងយកចិត្តទុកដាក់ក្នុងការផ្ញើការឆ្លើយតបនៅក្នុងផ្ទៃខាងក្រោយ";
- "ម៉ាស៊ីនដំណើរការគំរូសាមញ្ញដើម្បីគ្រប់គ្រងគំរូ";
ផ្នែកដែលត្រូវការ
ដើម្បីបញ្ចប់ការបង្រៀននេះ អ្នកត្រូវការផ្នែកខាងក្រោម៖
- ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP32
- ម៉ូឌុល DHT11
- ក្តារនំប៉័ង
- ខ្សែភ្លើងលោត
គ្រោងការណ៍ការដំឡើងបណ្ណាល័យ
អ្នកត្រូវដំឡើងបណ្ណាល័យពីរបីសម្រាប់គម្រោងនេះ៖
- នេះ។ DHT និង ឧបករណ៍ចាប់សញ្ញាបង្រួបបង្រួម Adafruit បណ្ណាល័យកម្មវិធីបញ្ជាដើម្បីអានពីឧបករណ៍ចាប់សញ្ញា DHT ។
- ESPAsyncWebម៉ាស៊ីនមេ និង ធ្វើសមកាលកម្ម TCP បណ្ណាល័យ ដើម្បីបង្កើតអសមកាល web ម៉ាស៊ីនមេ។
សូមអនុវត្តតាមការណែនាំបន្ទាប់ ដើម្បីដំឡើងបណ្ណាល័យទាំងនោះ៖
ការដំឡើងបណ្ណាល័យឧបករណ៍ចាប់សញ្ញា DHT
ដើម្បីអានពីឧបករណ៍ចាប់សញ្ញា DHT ដោយប្រើ Arduino IDE អ្នកត្រូវដំឡើង បណ្ណាល័យឧបករណ៍ចាប់សញ្ញា 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 ដើម្បីធ្វើការជាមួយឧបករណ៍ចាប់សញ្ញា DHT ។ អនុវត្តតាមជំហានបន្ទាប់ដើម្បីដំឡើងបណ្ណាល័យ។
- ចុចទីនេះដើម្បីទាញយកបណ្ណាល័យ Adafruit Unified Sensor ។ អ្នកគួរតែមានថតឯកសារ .zip នៅក្នុងថតឯកសារទាញយករបស់អ្នក។
- ពន្លាថតឯកសារ .zip ហើយអ្នកគួរតែទទួលបានថតឯកសារ Adafruit_sensor-master
- ប្តូរឈ្មោះថតរបស់អ្នកពី Adafruit_sensor-master ទៅ Adafruit_sensor
- ផ្លាស់ទីថត Adafruit_sensor ទៅថតឯកសារដំឡើង Arduino IDE របស់អ្នក។
- ជាចុងក្រោយ បើក Arduino IDE របស់អ្នកឡើងវិញ
ការដំឡើង ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ
អនុវត្តតាមជំហានបន្ទាប់ដើម្បីដំឡើង ESPAsyncWebម៉ាស៊ីនមេ បណ្ណាល័យ៖
- ចុចទីនេះដើម្បីទាញយក ESPAsyncWebបណ្ណាល័យម៉ាស៊ីនមេ។ អ្នកគួរតែមាន
ថតឯកសារ .zip នៅក្នុងថតឯកសារទាញយករបស់អ្នក។ - ពន្លាថតឯកសារ .zip ហើយអ្នកគួរតែ
ទទួលបាន ESPAsyncWebថតម៉ាស៊ីនមេ - ប្តូរឈ្មោះថតរបស់អ្នកពី ESPAsyncWebServer-master ទៅ ESPAsyncWebម៉ាស៊ីនមេ
- ផ្លាស់ទី ESPAsyncWebថតម៉ាស៊ីនមេទៅកាន់ថតឯកសារបណ្ណាល័យដំឡើង 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
បន្ទាប់ពីដំឡើងបណ្ណាល័យដែលត្រូវការ បើកកូដ
គម្រោង_9_ESP32_DHT11_Web_Server.ino ក្នុង arduino IDE ។
មុននឹងបង្ហោះកូដ សូមកុំភ្លេចបញ្ចូលអត្តសញ្ញាណបណ្តាញរបស់អ្នក ដើម្បីឱ្យ ESP អាចភ្ជាប់ទៅបណ្តាញមូលដ្ឋានរបស់អ្នក។របៀបដែលកូដដំណើរការ
នៅក្នុងកថាខណ្ឌខាងក្រោម យើងនឹងពន្យល់ពីរបៀបដែលកូដដំណើរការ។ បន្តអានប្រសិនបើអ្នកចង់ស្វែងយល់បន្ថែម ឬចូលទៅកាន់ផ្នែកបាតុកម្ម ដើម្បីមើលលទ្ធផលចុងក្រោយ។
ការនាំចូលបណ្ណាល័យ
ដំបូងនាំចូលបណ្ណាល័យដែលត្រូវការ។ វ៉ាយហ្វាយ ESPAsyncWebម៉ាស៊ីនមេ និង ESPAsyncTCP ត្រូវការជាចាំបាច់ដើម្បីបង្កើត web ម៉ាស៊ីនមេ។ Adafruit_Sensor និងបណ្ណាល័យ DHT ត្រូវការដើម្បីអានពីឧបករណ៍ចាប់សញ្ញា DHT11 ឬ DHT22។និយមន័យអថេរ
កំណត់ GPIO ដែលម្ជុលទិន្នន័យ DHT ត្រូវបានភ្ជាប់។ ក្នុងករណីនេះវាត្រូវបានភ្ជាប់ទៅ GPIO 4 ។បន្ទាប់មក ជ្រើសរើសប្រភេទឧបករណ៍ចាប់សញ្ញា DHT ដែលអ្នកកំពុងប្រើ។ នៅក្នុងអតីតរបស់យើង។ampដូច្នេះ យើងកំពុងប្រើ DHT22។ ប្រសិនបើអ្នកកំពុងប្រើប្រភេទផ្សេងទៀត អ្នកគ្រាន់តែត្រូវការបញ្ចេញមតិលើឧបករណ៍ចាប់សញ្ញារបស់អ្នក ហើយបញ្ចេញមតិផ្សេងទៀតទាំងអស់។
បញ្ចូលវត្ថុ DHT ភ្លាមៗជាមួយនឹងប្រភេទ និងម្ជុលដែលយើងបានកំណត់ពីមុន។បង្កើត AsyncWebវត្ថុម៉ាស៊ីនមេនៅលើច្រក 80 ។
អានមុខងារសីតុណ្ហភាព និងសំណើម
យើងបានបង្កើតមុខងារពីរ៖ មួយសម្រាប់អានសីតុណ្ហភាព យើងបានបង្កើតមុខងារពីរ៖ មួយសម្រាប់អានសីតុណ្ហភាព (readDHTTemperature()) និងមួយទៀតសម្រាប់អានសំណើម (readDHTHumidity())។ការទទួលការអានរបស់ឧបករណ៍ចាប់សញ្ញាគឺសាមញ្ញដូចជាការប្រើ Getting sensor readings គឺសាមញ្ញដូចជាការប្រើ readTemperature() និង readHumidity() method នៅលើ dht object។
យើងក៏មានលក្ខខណ្ឌមួយដែលត្រឡប់សញ្ញាពីរ (–) ក្នុងករណីដែលឧបករណ៍ចាប់សញ្ញាបរាជ័យក្នុងការទទួលការអាន។
ការអានត្រូវបានត្រឡប់ជាប្រភេទខ្សែអក្សរ។ ដើម្បីបំប្លែងអណ្តែតទៅខ្សែអក្សរ សូមប្រើមុខងារ String()
តាមលំនាំដើម យើងកំពុងអានសីតុណ្ហភាពជាអង្សាសេ។ ដើម្បីទទួលបានសីតុណ្ហភាពជាអង្សាហ្វារិនហៃ សូមបញ្ចេញមតិអំពីសីតុណ្ហភាពជាអង្សាសេ ហើយមិនបញ្ចេញមតិអំពីសីតុណ្ហភាពជាហ្វារិនហៃ ដូច្នេះអ្នកមានដូចខាងក្រោម៖
បង្ហោះកូដ
ឥឡូវនេះ សូមផ្ទុកឡើងកូដទៅកាន់ ESP32 របស់អ្នក។ ត្រូវប្រាកដថាអ្នកមានក្តារត្រឹមត្រូវ និងច្រក COM ដែលបានជ្រើសរើស។ ផ្ទុកឡើងនូវជំហានយោងកូដ។
បន្ទាប់ពីផ្ទុកឡើង សូមបើក Serial Monitor ក្នុងអត្រា baud 115200។ ចុចប៊ូតុង Reset ESP32។ អាសយដ្ឋាន IP ESP32 គួរតែត្រូវបានបោះពុម្ពនៅក្នុងសៀរៀល ម៉ូនីទ័រ។បាតុកម្ម
បើកកម្មវិធីរុករកហើយវាយអាសយដ្ឋាន IP ESP32 ។ របស់អ្នក។ web ម៉ាស៊ីនមេគួរតែបង្ហាញការអានឧបករណ៍ចាប់សញ្ញាចុងក្រោយបំផុត។
ចំណាំ៖ កម្មវិធីរុករកតាមអ៊ីនធឺណិត និង ESP32 របស់អ្នកគួរតែត្រូវបានភ្ជាប់ទៅបណ្តាញមូលដ្ឋានដូចគ្នា។
ចំណាំថាការអានសីតុណ្ហភាព និងសំណើមត្រូវបានធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិដោយមិនចាំបាច់ធ្វើបច្ចុប្បន្នភាព web ទំព័រ។
Project_10_ESP32_OLED_Display
គម្រោងនេះបង្ហាញពីរបៀបប្រើប្រាស់អេក្រង់ 0.96 អ៊ីង SSD1306 OLED ជាមួយ ESP32 ដោយប្រើ Arduino IDE ។
បង្ហាញអេក្រង់ OLED ទំហំ 0.96 អ៊ីញ
នេះ។ អេក្រង់ OLED ដែលយើងនឹងប្រើនៅក្នុងការបង្រៀននេះគឺម៉ូដែល SSD1306៖ មួយពណ៌ អេក្រង់ 0.96 អ៊ីង ជាមួយនឹង 128 × 64 ភីកសែល ដូចបង្ហាញក្នុងរូបខាងក្រោម។អេក្រង់ OLED មិនតម្រូវឱ្យមានអំពូល Backlight ដែលនាំឱ្យមានភាពផ្ទុយគ្នាល្អនៅក្នុងបរិយាកាសងងឹត។ លើសពីនេះ ភីកសែលរបស់វាប្រើប្រាស់ថាមពលតែនៅពេលដែលវាបើក ដូច្នេះអេក្រង់ OLED ប្រើប្រាស់ថាមពលតិចជាងបើប្រៀបធៀបទៅនឹងអេក្រង់ផ្សេងទៀត។
ដោយសារអេក្រង់ OLED ប្រើពិធីការទំនាក់ទំនង I2C ខ្សែភ្លើងគឺសាមញ្ញណាស់។ អ្នកអាចប្រើតារាងខាងក្រោមជាឯកសារយោង។
ម្ជុល OLED | ESP១៧.៦ |
វីន | 3.3V |
GND | GND |
SCL | GPIO ១០ |
អេសឌីអេ | GPIO ១០ |
គ្រោងការណ៍ការដំឡើង SSD1306 OLED Library - ESP32
មានបណ្ណាល័យជាច្រើនដែលអាចគ្រប់គ្រងអេក្រង់ OLED ជាមួយ ESP32។
នៅក្នុងការបង្រៀននេះ យើងនឹងប្រើបណ្ណាល័យ Adafruit ពីរ៖ បណ្ណាល័យ Adafruit_SSD1306 និង បណ្ណាល័យ Adafruit_GFX.
អនុវត្តតាមជំហានបន្ទាប់ដើម្បីដំឡើងបណ្ណាល័យទាំងនោះ។
- បើក Arduino IDE របស់អ្នក ហើយចូលទៅកាន់ Sketch > Include Library > Manage Libraries។ កម្មវិធីគ្រប់គ្រងបណ្ណាល័យគួរតែបើក។
- វាយ "SSD1306" នៅក្នុងប្រអប់ស្វែងរក ហើយដំឡើងបណ្ណាល័យ SSD1306 ពី Adafruit ។
- បន្ទាប់ពីដំឡើងបណ្ណាល័យ SSD1306 ពី Adafruit វាយ "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ដូច្នេះ យើងកំពុងប្រើអេក្រង់ OLED 128×64។ ប្រសិនបើអ្នកកំពុងប្រើទំហំផ្សេងទៀត អ្នកអាចផ្លាស់ប្តូរវានៅក្នុងអថេរ SCREEN_WIDTH និង SCREEN_HEIGHT។បន្ទាប់មក ចាប់ផ្តើមវត្ថុបង្ហាញជាមួយនឹងទទឹង និងកម្ពស់ដែលបានកំណត់ពីមុនជាមួយនឹងពិធីការទំនាក់ទំនង I2C (&Wire)។
ប៉ារ៉ាម៉ែត្រ (-1) មានន័យថាអេក្រង់ OLED របស់អ្នកមិនមានម្ជុល RESET ទេ។ ប្រសិនបើអេក្រង់ OLED របស់អ្នកមានម្ជុល RESET វាគួរតែភ្ជាប់ទៅ GPIO ។ ក្នុងករណីនោះ អ្នកគួរតែហុចលេខ GPIO ជាប៉ារ៉ាម៉ែត្រ។
នៅក្នុងការដំឡើង () ចាប់ផ្តើម Serial Monitor នៅ baud raute នៃ 115200 សម្រាប់គោលបំណងបំបាត់កំហុស។ចាប់ផ្តើមអេក្រង់ OLED ជាមួយនឹងវិធីសាស្រ្ត start() ដូចខាងក្រោម៖
អត្ថបទខ្លីៗនេះក៏បោះពុម្ពសារនៅលើ Serial Monitor ក្នុងករណីដែលយើងមិនអាចភ្ជាប់ទៅអេក្រង់។
ក្នុងករណីដែលអ្នកកំពុងប្រើអេក្រង់ 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 [pdf] សៀវភៅណែនាំ ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |