ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP32 Dev Kitc

ព័ត៌មានអំពីផលិតផល

លក្ខណៈបច្ចេកទេស

  • ផលិតផល៖ ESP32
  • ការណែនាំអំពីកម្មវិធី៖ ESP-IDF
  • កំណែចេញផ្សាយ៖ v5.0.9
  • ក្រុមហ៊ុនផលិត៖ ប្រព័ន្ធ Espressif
  • កាលបរិច្ឆេទចេញផ្សាយ៖ ថ្ងៃទី ៣១ ខែឧសភា ឆ្នាំ ២០២៤

ការណែនាំអំពីការប្រើប្រាស់ផលិតផល

1. ចាប់ផ្តើម

មុននឹងចាប់ផ្តើមជាមួយ ESP32 អ្នកត្រូវស្គាល់ខ្លួនអ្នកជាមួយនឹង
ខាងក្រោម៖

1.1 ការណែនាំ

ស្វែងយល់អំពីមុខងារ និងសមត្ថភាពជាមូលដ្ឋានរបស់
ESP32.

1.2 អ្វីដែលអ្នកត្រូវការ

ត្រូវប្រាកដថាអ្នកមាន Hardware និង Software ចាំបាច់៖

  • ផ្នែករឹង៖ ពិនិត្យបញ្ជីនៃផ្នែករឹងដែលត្រូវការ
    សមាសធាតុ។
  • កម្មវិធី៖ ដំឡើងកម្មវិធីដែលត្រូវការ
    សមាសធាតុ។

1.3 ការដំឡើង

អនុវត្តតាមជំហានទាំងនេះដើម្បីដំឡើង IDE និងដំឡើង
បរិស្ថាន៖

  • IDE៖ ដំឡើង IDE ដែលបានណែនាំសម្រាប់
    កម្មវិធី ESP32.
  • ការដំឡើងដោយដៃ៖ កំណត់ដោយដៃ
    បរិស្ថានប្រសិនបើចាំបាច់។

1.4 បង្កើតគម្រោងដំបូងរបស់អ្នក។

បង្កើត និងបង្កើតគម្រោងដំបូងរបស់អ្នកដោយប្រើ ESP32។

1.5 លុបការដំឡើង ESP-IDF

បើចាំបាច់ រៀនពីរបៀបលុប ESP-IDF ចេញពីរបស់អ្នក។
ប្រព័ន្ធ។

2. ឯកសារយោង API

សូមមើលឯកសារ API សម្រាប់ព័ត៌មានលម្អិតនៅលើ
ពិធីការកម្មវិធី ការដោះស្រាយកំហុស និងការកំណត់រចនាសម្ព័ន្ធ
រចនាសម្ព័ន្ធ។

សំណួរដែលសួរញឹកញាប់ (FAQ)

សំណួរ៖ តើខ្ញុំអាចដោះស្រាយបញ្ហាទូទៅជាមួយ ESP32 យ៉ាងដូចម្តេច?

ចម្លើយ៖ សូមមើលផ្នែកដោះស្រាយបញ្ហានៅក្នុងការណែនាំអំពីកម្មវិធី
ឬទស្សនាក្រុមហ៊ុនផលិត webគេហទំព័រសម្រាប់ធនធានជំនួយ។

សំណួរ៖ តើខ្ញុំអាចប្រើ ESP-IDF ជាមួយ microcontroller ផ្សេងទៀតបានទេ?

A: ESP-IDF ត្រូវបានរចនាឡើងជាពិសេសសម្រាប់ ESP32 ប៉ុន្តែអ្នកអាចរកឃើញ
ភាពឆបគ្នាជាមួយ microcontroller Espressif ផ្សេងទៀត។

ESP១៧.៦
មគ្គុទ្ទេសក៍កម្មវិធី ESP-IDF
ចេញផ្សាយ v5.0.9 Espressif Systems ថ្ងៃទី 16 ខែឧសភា ឆ្នាំ 2025

តារាងមាតិកា

តារាងមាតិកា

i

1 ចាប់ផ្តើម

3

1.1 សេចក្តីផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៨៦

1.2 អ្វីដែលអ្នកត្រូវការ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៣

1.2.1 ផ្នែករឹង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៣

1.2.2 កម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៤

1.3 ការដំឡើង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៤

1.3.1 IDE ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៤

1.3.2 ការដំឡើងដោយដៃ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៤

1.4 បង្កើតគម្រោងដំបូងរបស់អ្នក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៤

1.5 លុបការដំឡើង ESP-IDF ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៤

2 ឯកសារយោង API

45

2.1 អនុសញ្ញា API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៥

2.1.1 ការដោះស្រាយកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៥

2.1.2 រចនាសម្ព័ន្ធកំណត់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៥

2.1.3 APIs ឯកជន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៦

2.1.4 សមាសធាតុក្នុងឧampគម្រោង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៦

2.1.5 ស្ថេរភាព API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៧

2.2 ពិធីការកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៨

2.2.1 ច្រក ASIO ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៨

2.2.2 ESP-Modbus ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៨

2.2.3 ESP-MQTT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៩

2.2.4 ESP-TLS ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៦៤

2.2.5 ESP HTTP Client ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៨០

2.2.6 ESP Local Control ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៩៥

2.2.7 ESP Serial Slave Link ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១០៤

កញ្ចប់វិញ្ញាបនប័ត្រ 2.2.8 ESP x509 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១២១

2.2.9 ម៉ាស៊ីនមេ HTTP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១២៣

2.2.10 ម៉ាស៊ីនមេ HTTPS ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៥០

2.2.11 ICMP Echo ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៥៤

សេវា 2.2.12 mDNS ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៥៩

2.2.13 Mbed TLS ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៥៩

2.2.14 ស្រទាប់បណ្តាញ IP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៦១

2.3 Bluetooth API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៦១

2.3.1 Bluetooth® ទូទៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៦១

2.3.2 Bluetooth® ថាមពលទាប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៧១

2.3.3 Bluetooth® Classic ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៣២៥

2.3.4 ឧបករណ៍បញ្ជា និង HCI ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៧១

2.3.5 ESP-BLE-MESH ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៤៨៥

2.3.6 APIs ម៉ាស៊ីនដែលមានមូលដ្ឋានលើ NimBLE ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៧៦៧

2.4 កំហុសយោងកូដ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៧៦៩

2.5 APIs បណ្តាញ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៧៧៦

2.5.1 វ៉ាយហ្វាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៧៧៦

2.5.2 អ៊ីសឺរណិត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៨៩៩

2.5.3 ខ្សែស្រឡាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៩៣៦

i

2.5.4 ESP-NETIF ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 ស្រទាប់បណ្តាញ IP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 ស្រទាប់កម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 Peripherals API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 កម្មវិធីបញ្ជារបៀប Oneshot អាណាឡូកទៅឌីជីថល (ADC) ។ . . . . . . . . . . . . . . . . 977 2.6.2 កម្មវិធីបញ្ជារបៀបបន្ត អាណាឡូកទៅឌីជីថល (ADC) ។ . . . . . . . . . . . . . . 986 2.6.3 កម្មវិធីបញ្ជាការក្រិតតាមខ្នាតអាណាឡូកទៅឌីជីថល (ADC) ។ . . . . . . . . . . . . . . . . . . 993 2.6.4 ដើមឈើនាឡិកា។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Digital To Analog Converter (DAC) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 កម្មវិធីកំណត់ពេលវេលាគោលបំណងទូទៅ (GPTimer) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 សៀគ្វីបញ្ចូលអន្តរកម្ម (I2C) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Inter-IC Sound (I2S) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 ការត្រួតពិនិត្យ LED (LEDC) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Motor Control Pulse Width Modulator (MCPWM) ។ . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Pulse Counter (PCNT) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 ឧបករណ៍បញ្ជូនការបញ្ជាពីចម្ងាយ (RMT) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 តម្រូវការទាញយក SD ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 កម្មវិធីបញ្ជាម៉ាស៊ីន SDMMC ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 កម្មវិធីបញ្ជាម៉ាស៊ីន SD SPI ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO Card Slave Driver ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 ម៉ូឌុល Sigma-Delta (SDM) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI Master Driver ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI Slave Driver ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (ធាតុសុវត្ថិភាព) ។ . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 ឧបករណ៍ចាប់សញ្ញាប៉ះ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 ចំណុចប្រទាក់រថយន្តពីរខ្សែ (TWAI) ។ . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 ឧបករណ៍ទទួល/បញ្ជូនអសមកាលជាសកល (UART) ។ . . . . . . . . . . . . . . . . . 1317 2.7 ការកំណត់រចនាសម្ព័ន្ធគម្រោង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 សេចក្តីផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 ម៉ឺនុយការកំណត់រចនាសម្ព័ន្ធគម្រោង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 ការប្រើប្រាស់ sdkconfig.defaults ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 ច្បាប់ធ្វើទ្រង់ទ្រាយ Kconfig ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 ភាពឆបគ្នាថយក្រោយនៃជម្រើស Kconfig ។ . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 ជម្រើសកំណត់រចនាសម្ព័ន្ធយោង . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 ការផ្តល់ API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 ពិធីសារទំនាក់ទំនង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 ការផ្តល់បង្រួបបង្រួម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 ការផ្តល់ Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 Storage API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fileការគាំទ្រប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 ឧបករណ៍ប្រើប្រាស់ផលិតកម្ម . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 បណ្ណាល័យផ្ទុកមិនងាយនឹងបង្កជាហេតុ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS Partition Generator Utility Utility ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 កម្មវិធីបញ្ជា SD/SDIO/MMC ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៧៤៤ ២.៩.៧ SPIFFS Fileប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 និម្មិត fileសមាសធាតុប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 Wear Leveling API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800 2.10 System API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 ទម្រង់រូបភាពកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 ការតាមដានកម្រិតកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 មុខងារហៅជាមួយជង់ខាងក្រៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 ការកែប្រែបន្ទះឈីប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 កុងសូល . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 កម្មវិធីគ្រប់គ្រង eFuse ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 កូដកំហុស និងមុខងារជំនួយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . ១៨៤៦
ii

2.10.8 ESP HTTPS OTA ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Event Loop Library ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (លើសview) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (មុខងារបន្ថែម) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Heap Memory Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Heap Memory Debugging ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 កម្មវិធីកំណត់ពេលវេលាគុណភាពបង្ហាញខ្ពស់ (ESP Timer) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 APIs ខាងក្នុង និងមិនមានស្ថេរភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 ការហៅទូរសព្ទអន្តរដំណើរការ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 រំខានការបែងចែក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 បណ្ណាល័យកត់ត្រា។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 Miscellaneous System APIs ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 លើការធ្វើបច្ចុប្បន្នភាពតាមអាកាស (OTA) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 ការត្រួតពិនិត្យការអនុវត្ត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 ការគ្រប់គ្រងថាមពល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX Threads Support ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 ការបង្កើតលេខចៃដន្យ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097 2.10.26 របៀបគេង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 សមត្ថភាព SoC ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 ពេលវេលាប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API ការបែងចែក himem ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ការសរសេរកម្មវិធី ULP Coprocessor ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 ក្រុមឃ្លាំមើល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៦១

3 ឯកសារយោងផ្នែករឹង

2167

3.1 ការប្រៀបធៀបស៊េរីបន្ទះឈីប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៦៧

3.1.1 ឯកសារពាក់ព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៧០

4 ការណែនាំ API

2171

4.1 បណ្ណាល័យតាមដានកម្រិតកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៧១

4.1.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៥

4.1.2 របៀបនៃប្រតិបត្តិការ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៧១

4.1.3 ជម្រើសនៃការកំណត់រចនាសម្ព័ន្ធ និងភាពអាស្រ័យ។ . . . . . . . . . . . . . . . . . . . . . . . . . ២១៧២

4.1.4 របៀបប្រើបណ្ណាល័យនេះ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៧៣

4.2 លំហូរចាប់ផ្តើមកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៨១

៤.១ សtage កម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៨២

២ វិនាទីtage កម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៨២

4.2.3 ការចាប់ផ្តើមកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៨៣

4.3 Bluetooth® Classic ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៨៤

4.3.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៥

4.4 Bluetooth® ថាមពលទាប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៨៦

4.4.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៥

4.4.2 ចាប់ផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២១៩១

4.4.3 ប្រូfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៣៣៥

4.5 កម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៤

4.5.1 ភាពឆបគ្នានៃកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៥

4.5.2 កម្រិតកំណត់ហេតុ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៥

4.5.3 កំណត់ឡើងវិញពីរោងចក្រ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៦

4.5.4 ចាប់ផ្ដើមពីកម្មវិធីបង្កប់សាកល្បង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៦

4.5.5 ថយក្រោយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៧

៤.៥.៦ អង្គការឃ្លាំមើល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៧

4.5.7 ទំហំកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៧

4.5.8 ការចាប់ផ្ដើមលឿនពីការគេងជ្រៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៧

4.5.9 កម្មវិធីចាប់ផ្ដើមប្រព័ន្ធផ្ទាល់ខ្លួន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៧

4.6 ប្រព័ន្ធសាងសង់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៨

4.6.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៥

4.6.2 ការប្រើប្រាស់ប្រព័ន្ធ Build ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២២៨៩

iii

៣.២ ឧampគម្រោងឡេ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 គម្រោង CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 សមាសភាគ CMakeLists Fileស. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 ការកំណត់រចនាសម្ព័ន្ធសមាសភាគ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.7 និយមន័យរបស់ឧបករណ៍ដំណើរការមុន . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 តម្រូវការផ្នែក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 ការបដិសេធផ្នែកនៃគម្រោង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 ការកំណត់រចនាសម្ព័ន្ធ-តែសមាសភាគ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 ការបំបាត់កំហុស CMake ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៣០០ ៤.៦.១២ ឧampពីសមាសភាគ CMakeLists ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 លំនាំដើម sdkconfig ផ្ទាល់ខ្លួន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 អាគុយម៉ង់ Flash ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 ការកសាង Bootloader ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 ការសរសេរ Pure CMake Components ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 ការប្រើប្រាស់គម្រោង CMake ភាគីទីបីដែលមានសមាសធាតុ។ . . . . . . . . . . . . . . . . . . 2306 4.6.18 ការប្រើប្រាស់បណ្ណាល័យដែលបានសាងសង់រួចជាមួយសមាសភាគ។ . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 ការប្រើប្រាស់ ESP-IDF នៅក្នុងគម្រោង CMake ផ្ទាល់ខ្លួន។ . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake Build System API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៣០៨ ៤.៦.២១ File Globbing & Incremental Builds ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Build System Metadata ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Build ប្រព័ន្ធខាងក្នុង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ការផ្ទេរពី ESP-IDF GNU Make System ។ . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Core Dump ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 ការកំណត់រចនាសម្ព័ន្ធ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 រក្សាទុក core dump ដើម្បី flash ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 បោះពុម្ពស្នូលបោះចោលទៅ UART ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 មុខងារ ROM នៅក្នុង Backtraces ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 អថេរបោះចោលតាមតម្រូវការ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 កំពុងដំណើរការ espcoredump.py ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Deep Sleep Wake Stubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 ច្បាប់សម្រាប់ Wake Stubs ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 ការអនុវត្ត Stub មួយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 កំពុងផ្ទុកកូដទៅក្នុងអង្គចងចាំ RTC ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 កំពុងផ្ទុកទិន្នន័យទៅក្នុងអង្គចងចាំ RTC ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC ពិនិត្យសម្រាប់ Wake Stubs ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៣២៣ ៤.៨.៦ ឧampឡេ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 ការដោះស្រាយកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 លេខកូដកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 ការបំប្លែងលេខកូដកំហុសទៅជាសារកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 ESP_ERROR_CHECK ម៉ាក្រូ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 ESP_ERROR_CHECK_WITHOUT_ABORT ម៉ាក្រូ។ . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 ESP_RETURN_ON_ERROR ម៉ាក្រូ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 ESP_GOTO_ON_ERROR ម៉ាក្រូ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 ESP_RETURN_ON_FALSE ម៉ាក្រូ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 ESP_GOTO_ON_FALSE ម៉ាក្រូ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 ពិនិត្យ MACROS Examples ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 លំនាំដោះស្រាយកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 ករណីលើកលែង C++ ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 ជាងview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 សេចក្តីផ្តើម . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328 4.10.3 គំនិត ESP-WIFI-MESH ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 4.10.4 ការកសាងបណ្តាញ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 ការគ្រប់គ្រងបណ្តាញ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 ការបញ្ជូនទិន្នន័យ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 ការប្តូរឆានែល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៣៤៤
iv

4.10.8 ការអនុវត្ត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 កំណត់ចំណាំបន្ថែម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 ការដោះស្រាយព្រឹត្តិការណ៍។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 ព្រឹត្តិការណ៍ Wi-Fi អ៊ីសឺរណិត និង IP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Mesh Events ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 ព្រឹត្តិការណ៍ប៊្លូធូស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 កំហុសធ្ងន់ធ្ងរ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 ជាងview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 អ្នកដោះស្រាយការភ័យស្លន់ស្លោ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 ចុះឈ្មោះ Dump និង Backtrace ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog អស់ពេល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 កំហុសក្នុងការធ្វើសមាធិរបស់គ្រូ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 កំហុសធ្ងន់ធ្ងរផ្សេងទៀត . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 ការអ៊ិនគ្រីប Flash ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 សេចក្តីផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 eFuses ពាក់ព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 ដំណើរការអ៊ិនគ្រីបពន្លឺ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 ការកំណត់រចនាសម្ព័ន្ធការអ៊ិនគ្រីបពន្លឺ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 ការបរាជ័យដែលអាចកើតមាន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 ស្ថានភាពការអ៊ិនគ្រីបពន្លឺ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 ការអាន និងសរសេរទិន្នន័យនៅក្នុង Flash ដែលបានអ៊ិនគ្រីប។ . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 ការធ្វើបច្ចុប្បន្នភាព Flash ដែលបានអ៊ិនគ្រីប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 ការបិទការអ៊ិនគ្រីប Flash ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 ចំនុចសំខាន់ៗអំពីការអ៊ិនគ្រីប Flash ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 ដែនកំណត់នៃការអ៊ិនគ្រីប Flash ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 ការអ៊ិនគ្រីប Flash និងការចាប់ផ្ដើមសុវត្ថិភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 លក្ខណៈពិសេសកម្រិតខ្ពស់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 ព័ត៌មានលម្អិតបច្ចេកទេស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 ការសង្ខេបផ្នែករឹង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 ស្ថាបត្យកម្ម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 LL (កម្រិតទាប) ស្រទាប់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Hardware Abstraction Layer) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 ការរំខានកម្រិតខ្ពស់ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 កម្រិតរំខាន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 កំណត់ចំណាំ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG ការកែកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 សេចក្តីផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 តើវាដំណើរការយ៉ាងដូចម្តេច? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 ការជ្រើសរើស JTAG អាដាប់ទ័រ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 ការដំឡើង OpenOCD ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ការកំណត់រចនាសម្ព័ន្ធ ESP32 គោលដៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 បើកដំណើរការកម្មវិធីបំបាត់កំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 ការបំបាត់កំហុស Examples ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 ការកសាង OpenOCD ពីប្រភព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 គន្លឹះ និងល្បិច។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 ឯកសារពាក់ព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 ការបង្កើត Linker Script ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 ជាងview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 ការចាប់ផ្តើមរហ័ស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Linker Script Generation Internals ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 APIs ដែលគាំទ្រ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD Sockets API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP កិច្ចការ FreeRTOS ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 ការគាំទ្រ IPv6 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 ការកែប្រែផ្ទាល់ខ្លួន esp-lwip ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៤៣៦
v

4.18.7 ការបង្កើនប្រសិទ្ធភាពការអនុវត្ត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 ប្រភេទអង្គចងចាំ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៤៣៩
4.19.1 DRAM (Data RAM) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (Instruction RAM) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (កូដត្រូវបានប្រតិបត្តិចេញពីពន្លឺ) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (ទិន្នន័យត្រូវបានរក្សាទុកក្នុងពន្លឺ) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 RTC ការចងចាំយឺត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 អង្គចងចាំលឿន RTC ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 តម្រូវការសមត្ថភាព DMA ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 DMA Buffer នៅក្នុងជង់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 របៀបនៃជង់ OpenThread ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 របៀបសរសេរកម្មវិធី OpenThread ។ . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 រ៉ោតទ័រព្រំដែន OpenThread ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 តារាងភាគថាស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 ជាងview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 តារាងភាគថាសដែលភ្ជាប់មកជាមួយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 ការបង្កើតតារាងផ្ទាល់ខ្លួន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 ការបង្កើតតារាងភាគថាសគោលពីរ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 ការត្រួតពិនិត្យទំហំភាគថាស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 ការបំភ្លឺតារាងភាគថាស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 ឧបករណ៍ភាគថាស (parttool.py) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 ការអនុវត្ត . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 របៀបបង្កើនប្រសិទ្ធភាពការងារ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 ការណែនាំ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451 4.23 ការក្រិតតាមខ្នាត RF ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 ការក្រិតតាមខ្នាត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 ការក្រិតតាមខ្នាតពេញលេញ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 គ្មានការក្រិតតាមខ្នាត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 ទិន្នន័យចាប់ផ្តើម PHY ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 ឯកសារយោង API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Secure Boot ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 ផ្ទៃខាងក្រោយ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Secure Boot Process Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 គ្រាប់ចុច . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 ទំហំកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 របៀបបើក Secure Boot ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Re-Flashable Software Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 ការបង្កើតសោការចុះហត្ថលេខាលើការចាប់ផ្តើមសុវត្ថិភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 ការចុះហត្ថលេខាពីចម្ងាយនៃរូបភាព . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Secure Boot ការអនុវត្តល្អបំផុត។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 ព័ត៌មានលម្អិតបច្ចេកទេស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Secure Boot & Flash Encryption ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 បានចុះហត្ថលេខាលើការផ្ទៀងផ្ទាត់កម្មវិធីដោយមិនមាន Hardware Secure Boot ។ . . . . . . . . . . . . . . . . . 2478 4.24.13 លក្ខណៈពិសេសកម្រិតខ្ពស់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 ផ្ទៃខាងក្រោយ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Advantages ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Secure Boot V2 Process ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 ទម្រង់ប្លុកហត្ថលេខា។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 បន្ទះសុវត្ថិភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 ការផ្ទៀងផ្ទាត់ប្លុកហត្ថលេខា។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 ការផ្ទៀងផ្ទាត់រូបភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 ទំហំកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 ការប្រើប្រាស់ eFuse ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 របៀបបើក Secure Boot V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 ការរឹតបន្តឹងបន្ទាប់ពីការចាប់ផ្ដើមសុវត្ថិភាពត្រូវបានបើក។ . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 ការបង្កើតសោសុវត្ថិភាពនៃការចុះឈ្មោះចាប់ផ្ដើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៤៨២
vi

4.25.13 ការចុះហត្ថលេខាពីចម្ងាយនៃរូបភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Secure Boot Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 ព័ត៌មានលម្អិតបច្ចេកទេស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Secure Boot & Flash Encryption ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 បានចុះហត្ថលេខាលើការផ្ទៀងផ្ទាត់កម្មវិធីដោយមិនមាន Hardware Secure Boot ។ . . . . . . . . . . . . . . . . . 2484 4.25.18 លក្ខណៈពិសេសកម្រិតខ្ពស់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 ការគាំទ្រសម្រាប់ RAM ខាងក្រៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 សេចក្តីផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 ផ្នែករឹង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 ការកំណត់រចនាសម្ព័ន្ធ RAM ខាងក្រៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 ការរឹតបន្តឹង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 បរាជ័យក្នុងការចាប់ផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 ការកែប្រែបន្ទះឈីប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27 Thread Local Storage ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 ជាងview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS Native API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 ស្តង់ដារ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28 ឧបករណ៍ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF Frontend – idf.py ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 រូបភាព IDF Docker ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 កម្មវិធីដំឡើងវីនដូ IDF ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 កម្មវិធីគ្រប់គ្រងផ្នែក IDF ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 IDF Clang Tidy ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 ឧបករណ៍ដែលអាចទាញយកបាន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 ការធ្វើតេស្តឯកតានៅក្នុង ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 ករណីធ្វើតេស្តធម្មតា . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 ករណីធ្វើតេស្តពហុឧបករណ៍។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៥១៣ ៤.២៩.៣ ពហុសtage ករណីសាកល្បង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 ការធ្វើតេស្តសម្រាប់គោលដៅផ្សេងៗគ្នា។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Building Unit Test App ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 ការធ្វើតេស្តឯកតាដែលកំពុងដំណើរការ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 កូដពេលវេលាជាមួយនឹងកម្មវិធីកំណត់ពេលវេលាទូទាត់ប្រាក់ក្នុងឃ្លាំងសម្ងាត់។ . . . . . . . . . . . . . . . . . . . . . . ២៥១៦ ៤.២៩.៨ ចំអក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 ការធ្វើតេស្តឯកតានៅលើលីនុច។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 ការធ្វើតេស្តកម្មវិធីបង្កប់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 ការធ្វើតេស្តឯកតា IDF នៅលើម៉ាស៊ីនលីនុច។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 កម្មវិធីបញ្ជា Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 បញ្ជីមុខងារ Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 របៀបសរសេរកម្មវិធី Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 Wi-Fi API កូដកំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 Wi-Fi API ប៉ារ៉ាម៉ែត្រចាប់ផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 គំរូកម្មវិធី Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ការពិពណ៌នាព្រឹត្តិការណ៍ Wi-Fi ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 សេណារីយ៉ូទូទៅនៃស្ថានីយ៍ Wi-Fi ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP សេណារីយ៉ូទូទៅ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi Scan ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 សេណារីយ៉ូ​ការ​តភ្ជាប់​ស្ថានីយ Wi-Fi ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi Station តភ្ជាប់នៅពេលដែល APs ច្រើនត្រូវបានរកឃើញ។ . . . . . . . . . . . . 2543 4.31.12 ភ្ជាប់ Wi-Fi ឡើងវិញ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi Beacon អស់ពេល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ការកំណត់រចនាសម្ព័ន្ធ Wi-Fi ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 ការគ្រប់គ្រងបណ្តាញឥតខ្សែ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 ការវាស់វែងធនធានវិទ្យុ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 ការផ្លាស់ប្តូរ BSS លឿន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 Wi-Fi របៀបសន្សំសំចៃថាមពល។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 Wi-Fi ឆ្លងកាត់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii

4.31.21 Wi-Fi 80211 កញ្ចប់ផ្ញើ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 របៀប Wi-Fi Sniffer ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 អង់តែន Wi-Fi ច្រើន . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 ព័ត៌មានរដ្ឋរបស់បណ្តាញ Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 ការកំណត់រចនាសម្ព័ន្ធព័ត៌មានរបស់ប៉ុស្តិ៍ Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 Wi-Fi QoS ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi ASDU ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 បំណែក Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS អ្នកចុះឈ្មោះ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 ការប្រើប្រាស់ Wi-Fi Buffer ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 របៀបធ្វើអោយដំណើរការ Wi-Fi ប្រសើរឡើង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi Menuconfig ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 ការដោះស្រាយបញ្ហា។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 សុវត្ថិភាព Wi-Fi ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 លក្ខណៈពិសេសសុវត្ថិភាព Wi-Fi ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Protected Management Frames (PMF) ។ . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 សហគ្រាសវ៉ាយហ្វាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-ផ្ទាល់ខ្លួន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33 RF Coexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 លើសview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 សេណារីយ៉ូការរួមរស់ដែលបានគាំទ្រសម្រាប់ ESP32 ។ . . . . . . . . . . . . . . . . . . . . . . . . ២៥៧៤ ៤.៣៣.៣ យន្តការ និងគោលនយោបាយរួម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 របៀបប្រើមុខងាររួម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 ការបង្កើតឡើងវិញ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 សេចក្តីផ្តើម។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 ហេតុផលសម្រាប់ការស្ថាបនាដែលមិនអាចបន្តពូជបាន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 ការបើកដំណើរការបង្កើតឡើងវិញនៅក្នុង ESP-IDF ។ . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 របៀបបង្កើតឡើងវិញត្រូវបានសម្រេច។ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 ការបង្កើតឡើងវិញ និងការបំបាត់កំហុស។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 កត្តាដែលនៅតែជះឥទ្ធិពលដល់ការបង្កើតឡើងវិញ។ . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 ការណែនាំអ្នកប្រើប្រាស់របៀបថាមពលទាប។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៥៧៨

5 មគ្គុទ្ទេសក៍ការធ្វើចំណាកស្រុក

2579

5.1 ESP-IDF 5.x មគ្គុទ្ទេសក៍ចំណាកស្រុក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៥៧៩

5.1.1 ការធ្វើចំណាកស្រុកពី 4.4 ទៅ 5.0 ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៥៧៩

6 បណ្ណាល័យ និងក្របខ័ណ្ឌ

2611

6.1 Cloud Frameworks ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.1 ESP RainMaker ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.2 AWS IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.3 Azure IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.4 Google IoT Core ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.5 Aliyun IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.6 Joylink IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.1.7 Tencent IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

6.1.8 Tencentyun IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

6.1.9 Baidu IoT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

6.2 ក្របខ័ណ្ឌ Espressifns ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

6.2.1 ក្របខ័ណ្ឌអភិវឌ្ឍន៍អូឌីយ៉ូ Espressif ។ . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

៦.២.២ ESP-CSI ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

6.2.3 បណ្ណាល័យ Espressif DSP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១២

6.2.4 ក្របខ័ណ្ឌអភិវឌ្ឍន៍ ESP-WIFI-MESH ។ . . . . . . . . . . . . . . . . . . . . . . . ២៦១៣

៦.២.៥ ESP-WHO ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៣

6.2.6 ESP RainMaker ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១១

6.2.7 ESP-IoT-ដំណោះស្រាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៣

6.2.8 ESP-Protocols ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៣

vii

6.2.9 ESP-BSP ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៤

7 ការណែនាំអំពីការរួមចំណែក

2615

7.1 របៀបរួមចំណែក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៥

7.2 មុនពេលចូលរួមចំណែក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៥

7.3 ទាញដំណើរការស្នើសុំ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៥

7.4 ផ្នែកច្បាប់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៦

7.5 ឯកសារពាក់ព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦១៦

7.5.1 Espressif IoT Development Framework Guide Style ។ . . . . . . . . . . . . . . . . . . . ២៦១៦

7.5.2 ដំឡើង Pre-commit Hook សម្រាប់គម្រោង ESP-IDF ។ . . . . . . . . . . . . . . . . . . . . . . ២៦២៣

7.5.3 កូដឯកសារ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦២៤

7.5.4 ការបង្កើត Examples ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦២៩

7.5.5 គំរូឯកសារ API ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៣០

7.5.6 កិច្ចព្រមព្រៀងអ្នករួមចំណែក។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៣២

7.5.7 មគ្គុទ្ទេសក៍បឋមកថារក្សាសិទ្ធិ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៣៤

7.5.8 ការធ្វើតេស្ត ESP-IDF ជាមួយ Pytest Guide ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៣៥

8 កំណែ ESP-IDF

2645

8.1 ការចេញផ្សាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៥

8.2 តើកំណែមួយណាដែលខ្ញុំគួរចាប់ផ្តើមជាមួយ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៥

8.3 គ្រោងការណ៍កំណែ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៥

8.4 រយៈពេលគាំទ្រ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៦

8.5 ពិនិត្យមើលកំណែបច្ចុប្បន្ន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៧

8.6 Git លំហូរការងារ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៨

8.7 ការធ្វើបច្ចុប្បន្នភាព ESP-IDF ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៨

8.7.1 ការធ្វើបច្ចុប្បន្នភាពទៅការចេញផ្សាយដែលមានស្ថេរភាព។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៩

8.7.2 ការធ្វើបច្ចុប្បន្នភាពទៅកំណែមុនការចេញផ្សាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៩

8.7.3 ការធ្វើបច្ចុប្បន្នភាពទៅសាខាមេ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៤៩

8.7.4 ការធ្វើបច្ចុប្បន្នភាពទៅសាខាចេញផ្សាយ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥០

9 ធនធាន

2651

9.1 PlatformIO ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥១

9.1.1 តើ PlatformIO ជាអ្វី? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥១

9.1.2 ការដំឡើង។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥១

9.1.3 ការកំណត់រចនាសម្ព័ន្ធ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥២

9.1.4 ការបង្រៀន។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥២

9.1.5 គម្រោង Examples ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ៩

9.1.6 ជំហានបន្ទាប់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥២

9.2 តំណភ្ជាប់មានប្រយោជន៍។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥២

10 រក្សាសិទ្ធិ និងអាជ្ញាប័ណ្ណ

2653

10.1 ការរក្សាសិទ្ធិកម្មវិធី។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៣

10.1.1 សមាសធាតុកម្មវិធីបង្កប់។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៣

10.1.2 ឯកសារ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៤

10.2 ROM ប្រភពកូដរក្សាសិទ្ធិ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៤

10.3 Xtensa libhal MIT License ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៥

អាជ្ញាប័ណ្ណ 10.4 TinyBasic Plus MIT ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៥

អាជ្ញាប័ណ្ណ 10.5 TJpgDec ។ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ២៦៥៥

11 អំពី

2657

12 ប្តូររវាងភាសា

2659

សន្ទស្សន៍

2661

សន្ទស្សន៍

2661

ix

x

តារាងមាតិកា
នេះគឺជាឯកសារសម្រាប់ Espressif IoT Development Framework (esp-idf)។ ESP-IDF គឺជាក្របខ័ណ្ឌអភិវឌ្ឍន៍ផ្លូវការសម្រាប់ ESP32, ESP32-S និង ESP32-C Series SoCs ។ ឯកសារនេះពិពណ៌នាអំពីការប្រើប្រាស់ ESP-IDF ជាមួយ ESP32 SoC។

ចាប់ផ្តើម

ឯកសារយោង API

ការណែនាំ API

ប្រព័ន្ធ Espressif

1 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

តារាងមាតិកា

ប្រព័ន្ធ Espressif

2 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1
ចាប់ផ្តើម
ឯកសារនេះមានគោលបំណងជួយអ្នករៀបចំបរិយាកាសអភិវឌ្ឍន៍កម្មវិធីសម្រាប់ផ្នែករឹងដោយផ្អែកលើបន្ទះឈីប ESP32 ដោយ Espressif ។ បន្ទាប់ពីនោះអតីតសាមញ្ញampឡេនឹងបង្ហាញអ្នកពីរបៀបប្រើ ESP-IDF (Espressif IoT Development Framework) សម្រាប់ការកំណត់រចនាសម្ព័ន្ធម៉ឺនុយ បន្ទាប់មកសម្រាប់បង្កើត និងបញ្ចេញកម្មវិធីបង្កប់នៅលើក្តារ ESP32។
ចំណាំ៖ នេះគឺជាឯកសារសម្រាប់កំណែស្ថេរភាព v5.0.9 នៃ ESP-IDF ។ កំណែ ESP-IDF ផ្សេងទៀតក៏មានផងដែរ។
1.1 ការណែនាំ
ESP32 គឺជាប្រព័ន្ធនៅលើបន្ទះឈីបដែលរួមបញ្ចូលនូវមុខងារដូចខាងក្រោម៖ · Wi-Fi (2.4 GHz band) · Bluetooth · Dual high performance Xtensa® 32-bit LX6 CPU cores · Ultra Low Power co-processor · គ្រឿងកុំព្យូទ័រច្រើន
ដំណើរការដោយបច្ចេកវិទ្យា 40 nm ESP32 ផ្តល់នូវវេទិការួមបញ្ចូលគ្នាយ៉ាងរឹងមាំ ដែលជួយបំពេញតម្រូវការជាបន្តបន្ទាប់សម្រាប់ការប្រើប្រាស់ថាមពលប្រកបដោយប្រសិទ្ធភាព ការរចនាបង្រួម សុវត្ថិភាព ដំណើរការខ្ពស់ និងភាពជឿជាក់។ Espressif ផ្តល់ធនធានផ្នែករឹង និងសូហ្វវែរជាមូលដ្ឋាន ដើម្បីជួយអ្នកបង្កើតកម្មវិធីឱ្យដឹងពីគំនិតរបស់ពួកគេដោយប្រើផ្នែករឹងស៊េរី ESP32 ។ ក្របខ័ណ្ឌនៃការអភិវឌ្ឍន៍កម្មវិធីដោយ Espressif ត្រូវបានបម្រុងទុកសម្រាប់ការអភិវឌ្ឍន៍កម្មវិធី Internetof-Things (IoT) ជាមួយនឹង Wi-Fi, Bluetooth, ការគ្រប់គ្រងថាមពល និងមុខងារប្រព័ន្ធជាច្រើនទៀត។
1.2 អ្វីដែលអ្នកត្រូវការ
1.2.1 ផ្នែករឹង
· បន្ទះ ESP32 ។ · ខ្សែ USB – USB A / micro USB B. · កុំព្យូទ័រដំណើរការ Windows, Linux ឬ macOS ។
ចំណាំ៖ បច្ចុប្បន្ន ក្រុមប្រឹក្សាអភិវឌ្ឍន៍មួយចំនួនកំពុងប្រើឧបករណ៍ភ្ជាប់ USB Type C។ ត្រូវប្រាកដថាអ្នកមានខ្សែត្រឹមត្រូវដើម្បីភ្ជាប់បន្ទះរបស់អ្នក!
ប្រសិនបើអ្នកមានក្រុមប្រឹក្សាអភិវឌ្ឍន៍ផ្លូវការរបស់ ESP32 ដែលបានរាយខាងក្រោម អ្នកអាចចុចលើតំណដើម្បីស្វែងយល់បន្ថែមអំពីផ្នែករឹង។
3

ជំពូកទី 1. ចាប់ផ្តើម
ESP32-DevKitS(-R)
មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់នេះផ្តល់ព័ត៌មានអំពី ESP32-DevKitS(-R) ដែលជាបន្ទះពន្លឺដែលមានមូលដ្ឋានលើ ESP32 ដែលផលិតដោយ Espressif ។ ESP32-DevKitS(-R) គឺជាការរួមបញ្ចូលគ្នានៃឈ្មោះក្តារពីរ៖ ESP32-DevKitS និង ESP32-DevKitS-R ។ S តំណាងឱ្យប្រភពទឹក ហើយ R តំណាងឱ្យ WROVER ។

ESP32-DevKitS

ESP32-DevKitS-R

ឯកសារមានផ្នែកសំខាន់ៗដូចខាងក្រោម៖ · ការចាប់ផ្តើម៖ ផ្តល់ការបញ្ចប់view នៃ ESP32-DevKitS(-R) និងការណែនាំអំពីការដំឡើង hardware/software ដើម្បីចាប់ផ្តើម។ · សេចក្តីយោងផ្នែករឹង៖ ផ្តល់ព័ត៌មានលម្អិតបន្ថែមអំពីផ្នែករឹង ESP32-DevKitS(-R)ns ។ · ឯកសារពាក់ព័ន្ធ៖ ផ្តល់តំណភ្ជាប់ទៅកាន់ឯកសារពាក់ព័ន្ធ។

ការចាប់ផ្តើម ផ្នែកនេះពិពណ៌នាអំពីរបៀបចាប់ផ្តើមជាមួយ ESP32-DevKitS(-R)។ វាចាប់ផ្តើមជាមួយនឹងផ្នែកណែនាំមួយចំនួនអំពី ESP32-DevKitS(-R) បន្ទាប់មកផ្នែក របៀបបញ្ចូលភ្លើងបន្ទះផ្តល់ការណែនាំអំពីរបៀបម៉ោនម៉ូឌុលនៅលើ ESP32-DevKitS(-R) រៀបចំវាឱ្យរួចរាល់ ហើយបញ្ចេញកម្មវិធីបង្កប់នៅលើវា។

ជាងview ESP32-DevKitS(-R) គឺជាបន្ទះបញ្ចេញពន្លឺ Espressifns ដែលត្រូវបានរចនាឡើងជាពិសេសសម្រាប់ ESP32។ វាអាចត្រូវបានប្រើដើម្បីបញ្ចេញពន្លឺម៉ូឌុល ESP32 ដោយមិនចាំបាច់ភ្ជាប់ម៉ូឌុលទៅការផ្គត់ផ្គង់ថាមពល និងខ្សែសញ្ញា។ ជាមួយនឹងម៉ូឌុលដែលបានម៉ោន ESP32-DevKitS(-R) ក៏អាចត្រូវបានប្រើជាក្រុមប្រឹក្សាអភិវឌ្ឍន៍ខ្នាតតូចដូចជា ESP32-DevKitC ផងដែរ។
បន្ទះ ESP32-DevKitS និង ESP32-DevKitS-R ខុសគ្នាតែនៅក្នុងប្លង់នៃម្ជុលនិទាឃរដូវប៉ុណ្ណោះ ដើម្បីឲ្យសមនឹងម៉ូឌុល ESP32 ខាងក្រោម។
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
សម្រាប់ព័ត៌មានអំពីម៉ូឌុលខាងលើ សូមមើលម៉ូឌុលស៊េរី ESP32 ។

ការពិពណ៌នាអំពីសមាសធាតុ

ប្រព័ន្ធ Espressif

4 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបភាពទី 1៖ ESP32-DevKitS – ផ្នែកខាងមុខ

ប្រព័ន្ធ Espressif

រូបភាពទី 2៖ ESP32-DevKitS-R – ផ្នែកខាងមុខ 5
បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

ធាតុសំខាន់ ម្ជុលនិទាឃរដូវ 2.54 មីលីម៉ែត្រ ក្បាលស្ត្រី
USB-to-UART Bridge LDO ឧបករណ៍ភ្ជាប់ Micro-USB/Micro USB Port EN Button Boot Button
ថាមពលនៅលើ LED

ការពិពណ៌នាចុចលើម៉ូឌុលចូល។ ម្ជុលនឹងសមនឹងរន្ធដែលដាក់បញ្ចូលម៉ូឌុល។ បឋមកថាស្រីទាំងនេះត្រូវបានភ្ជាប់ទៅម្ជុលនៃម៉ូឌុលដែលបានម៉ោននៅលើក្តារនេះ។ សម្រាប់ការពិពណ៌នាអំពីបឋមកថាស្រី សូមយោងទៅប្លុកក្បាល។ បន្ទះសៀគ្វីតែមួយ USB ទៅ UART ផ្តល់អត្រាផ្ទេរទិន្នន័យរហូតដល់ 3 Mbps ។
5V-to-3.3V វ៉ុលធ្លាក់ទាបtage និយតករ (LDO) ។
ចំណុចប្រទាក់ USB ។ ការផ្គត់ផ្គង់ថាមពលសម្រាប់ក្តារ ក៏ដូចជាចំណុចប្រទាក់ទំនាក់ទំនងរវាងកុំព្យូទ័រ និងក្តារ។
ប៊ូតុងកំណត់ឡើងវិញ។
ប៊ូតុងទាញយក។ សង្កត់ Boot ហើយបន្ទាប់មកចុច EN ចាប់ផ្តើមរបៀបទាញយកកម្មវិធីបង្កប់សម្រាប់ការទាញយកកម្មវិធីបង្កប់តាមរយៈច្រកសៀរៀល។
បើកនៅពេលដែល USB ឬការផ្គត់ផ្គង់ថាមពលត្រូវបានភ្ជាប់ទៅក្តារ។

របៀបបញ្ចេញបន្ទះក្តារ មុនពេលបើកថាមពល ESP32-DevKitS(-R) របស់អ្នក សូមប្រាកដថាវាស្ថិតក្នុងស្ថានភាពល្អ ដោយគ្មានសញ្ញាច្បាស់លាស់នៃការខូចខាត។
ផ្នែករឹងដែលត្រូវការ · ម៉ូឌុល ESP32 នៃជម្រើសរបស់អ្នក · ខ្សែ USB 2.0 (ស្តង់ដារ-A ដល់ Micro-B) · កុំព្យូទ័រដែលកំពុងដំណើរការ Windows, Linux ឬ macOS
ការដំឡើងផ្នែករឹង សូមភ្ជាប់ម៉ូឌុលនៃជម្រើសរបស់អ្នកទៅ ESP32-DevKitS(-R) របស់អ្នកតាមជំហានខាងក្រោម៖
· ដាក់ម៉ូឌុលរបស់អ្នកថ្នមៗនៅលើក្តារ ESP32-DevKitS(-R)។ ត្រូវប្រាកដថារន្ធដែលដាក់នៅលើម៉ូឌុលរបស់អ្នកត្រូវបានតម្រឹមជាមួយនឹងម្ជុលនិទាឃរដូវនៅលើក្តារ។
· ចុចម៉ូឌុលរបស់អ្នកចុះទៅក្នុងក្តាររហូតដល់វាចុច។ · ពិនិត្យមើលថាតើម្ជុលនិទាឃរដូវទាំងអស់ត្រូវបានបញ្ចូលទៅក្នុងរន្ធ castellated ដែរឬទេ។ ប្រសិនបើមានម្ជុលនិទាឃរដូវមិនត្រឹមត្រូវ។
ដាក់វាចូលទៅក្នុងរន្ធ castellated ជាមួយ tweezers ។
ការរៀបចំកម្មវិធី
វិធីសាស្រ្តដែលពេញចិត្ត ក្របខណ្ឌអភិវឌ្ឍន៍ ESP-IDF ផ្តល់នូវវិធីដែលពេញចិត្តក្នុងការបញ្ចោញប្រព័ន្ធគោលពីរទៅលើ ESP32-DevKitS(-R)។ សូមបន្តទៅកាន់ ចាប់ផ្តើម ដែលការដំឡើងផ្នែកនឹងជួយអ្នកក្នុងការរៀបចំបរិយាកាសអភិវឌ្ឍន៍ ហើយបន្ទាប់មកបញ្ចេញកម្មវិធី exampចូលទៅកាន់ ESP32-DevKitS(-R) របស់អ្នក។
វិធីសាស្រ្តជំនួស ជាជម្រើសមួយ អ្នកប្រើប្រាស់ Windows អាចបញ្ចេញប្រព័ន្ធគោលពីរដោយប្រើ Flash Download Tool ។ គ្រាន់តែទាញយកវា ពន្លាវា ហើយធ្វើតាមការណែនាំនៅក្នុងថតឯកសារ។
ចំណាំ៖ 1. ដើម្បី flash binary files, ESP32 គួរតែត្រូវបានកំណត់ទៅជារបៀបទាញយកកម្មវិធីបង្កប់។ នេះអាចត្រូវបានធ្វើដោយឧបករណ៍ពន្លឺដោយស្វ័យប្រវត្តិ ឬដោយសង្កត់ប៊ូតុងចាប់ផ្ដើម ហើយប៉ះប៊ូតុង EN ។ 2. បន្ទាប់ពី flashing binary files, ឧបករណ៍ទាញយក Flash ចាប់ផ្តើមម៉ូឌុល ESP32 របស់អ្នកឡើងវិញ ហើយចាប់ផ្ដើមកម្មវិធីដែលបញ្ចេញពន្លឺតាមលំនាំដើម។

វិមាត្រក្រុមប្រឹក្សាភិបាល មាតិកា និងការវេចខ្ចប់

ប្រព័ន្ធ Espressif

6 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម រូបភាពទី 3៖ វិមាត្រក្តារ ESP32-DevKitS – ត្រឡប់មកវិញ

ប្រព័ន្ធ Espressif

រូបភាពទី 4៖ វិមាត្រក្តារ ESP32-DevKitS-R - ខាងក្រោយ 7
បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ការបញ្ជាទិញលក់រាយ ប្រសិនបើអ្នកបញ្ជាទិញពីរបីសamples, ESP32-DevKitS(-R) នីមួយៗមាននៅក្នុងកញ្ចប់បុគ្គលនៅក្នុងថង់ antistatic ឬវេចខ្ចប់ណាមួយអាស្រ័យលើអ្នកលក់រាយ។ សម្រាប់ការបញ្ជាទិញលក់រាយ សូមចូលទៅកាន់ https://www.espressif.com/en/contact-us/get-samples ។
ការបញ្ជាទិញលក់ដុំ ប្រសិនបើអ្នកបញ្ជាទិញជាដុំៗ ក្តារមាននៅក្នុងប្រអប់ក្រដាសកាតុងធំ។ សម្រាប់ការបញ្ជាទិញលក់ដុំ សូមចូលទៅកាន់ https://www.espressif.com/en/contact-us/sales-questions ។
ឯកសារយោងផ្នែករឹង
ដ្យាក្រាមប្លុក ដ្យាក្រាមប្លុកខាងក្រោមបង្ហាញពីធាតុផ្សំនៃ ESP32-DevKitS(-R) និងការភ្ជាប់គ្នាទៅវិញទៅមក។

រូបភាពទី 5៖ ESP32-DevKitS(-R) (ចុចដើម្បីពង្រីក)
ជម្រើសការផ្គត់ផ្គង់ថាមពល មានវិធីផ្តាច់មុខចំនួនបីដើម្បីផ្តល់ថាមពលដល់ក្តារ៖ · រន្ធ USB ខ្នាតតូច ការផ្គត់ផ្គង់ថាមពលលំនាំដើម · 5V និង GND header pins · 3V3 និង GND header pins
វាត្រូវបានណែនាំឱ្យប្រើជម្រើសដំបូង: ច្រក micro USB ។

ប្រព័ន្ធ Espressif

.

ស្លាកសញ្ញា

L1 3V3 VDD 3V3

L2 EN CHIP_PU

L3 VP SENSOR_VP

L4 VN SENSOR_VN

L5 ៩

GPIO ១

L6 ៩

GPIO ១

L7 ៩

GPIO ១

L8 ៩

GPIO ១

បន្តនៅទំព័របន្ទាប់

8 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

តារាង 1 បានបន្តពីទំព័រមុន។

.

ស្លាកសញ្ញា

L9 ៩

GPIO ១

L10 ៩

GPIO ១

L11 ៩

GPIO ១

L12 ៩

GPIO ១

L13 ៩

GPIO ១

L14 GND GND

L15 ៩

GPIO ១

L16 D2 SD_DATA2

L17 D3 SD_DATA3

L18 CMD SD_CMD

L19 5V

ខាងក្រៅ 5V

R1 GND GND

R2 ០៣

GPIO ១

R3 ០៣

GPIO ១

R4 TX U0TXD

R5 RX U0RXD

R6 ០៣

GPIO ១

R7 GND GND

R8 ០៣

GPIO ១

R9 ០៣

GPIO ១

R10 ០៣

GPIO ១

R11 ០៣

GPIO ១

R12 ០៣

GPIO ១

R13 ០៣

GPIO ១

R14 ០៣

GPIO ១

R15 ០៣

GPIO ១

R16 ០៣

GPIO ១

R17 D1 SD_DATA1

R18 D0 SD_DATA0

R19 CLK SD_CLK

ប្លុកបឋមកថា សម្រាប់រូបភាពនៃប្លុកបឋមកថា សូមមើលការពិពណ៌នាអំពីសមាសភាគ។

ឯកសារពាក់ព័ន្ធ
· ESP32-DevKitS(-R) Schematics (PDF) · ESP32-DevKitS(PDF) · ESP32-WROOM-32 (PDF) · ESP32-WROOM-32D & ESP32-WROOM-32U សន្លឹកទិន្នន័យ (PDF) · ESP32-SOLO-1 សន្លឹកទិន្នន័យ ESP32-WROOM-1 (PDF) · សន្លឹកទិន្នន័យ 32 សន្លឹកទិន្នន័យ ESP32-WROVER-B (PDF) · កម្មវិធីជ្រើសរើសផលិតផល ESP

ESP32-DevKitM-1

ការណែនាំអ្នកប្រើប្រាស់នេះនឹងជួយអ្នកឱ្យចាប់ផ្តើមជាមួយ ESP32-DevKitM-1 ហើយនឹងផ្តល់ព័ត៌មានស៊ីជម្រៅបន្ថែមទៀតផងដែរ។
ESP32-DevKitM-1 គឺជាក្រុមប្រឹក្សាអភិវឌ្ឍន៍ដែលមានមូលដ្ឋានលើ ESP32-MINI-1(1U) ដែលផលិតដោយ Espressif ។ ម្ជុល I/O ភាគច្រើនត្រូវបានបំបែកទៅក្បាលម្ជុលទាំងសងខាង ដើម្បីងាយស្រួលប្រទាក់គ្នា។ អ្នកប្រើប្រាស់អាចភ្ជាប់គ្រឿងកុំព្យូទ័រដោយប្រើខ្សែ jumper ឬម៉ោន ESP32-DevKitM-1 នៅលើក្តារខៀន។

ប្រព័ន្ធ Espressif

9 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

ESP32-DevKitM-1 - ផ្នែកខាងមុខ

ESP32-DevKitM-1 - អ៊ីសូម៉ែត្រ

ឯកសារមានផ្នែកសំខាន់ៗដូចខាងក្រោម៖ · ការចាប់ផ្តើម៖ ផ្តល់ការបញ្ចប់view នៃ ESP32-DevKitM-1 និងការណែនាំអំពីការដំឡើង hardware/software ដើម្បីចាប់ផ្តើម។ · ឯកសារយោងផ្នែករឹង៖ ផ្តល់ព័ត៌មានលម្អិតបន្ថែមអំពីផ្នែករឹង ESP32-DevKitM-1ns ។ · ឯកសារពាក់ព័ន្ធ៖ ផ្តល់តំណភ្ជាប់ទៅកាន់ឯកសារពាក់ព័ន្ធ។

ការចាប់ផ្តើម ផ្នែកនេះពិពណ៌នាអំពីរបៀបចាប់ផ្តើមជាមួយ ESP32-DevKitM-1។ វាចាប់ផ្តើមជាមួយនឹងផ្នែកណែនាំមួយចំនួនអំពី ESP32-DevKitM-1 បន្ទាប់មកផ្នែកចាប់ផ្តើមកម្មវិធីអភិវឌ្ឍន៍ផ្តល់ការណែនាំអំពីរបៀបធ្វើការដំឡើងផ្នែករឹងដំបូងហើយបន្ទាប់មករបៀបបញ្ចេញកម្មវិធីបង្កប់ទៅ ESP32-DevKitM-1 ។

ជាងview នេះគឺជាបន្ទះអភិវឌ្ឍន៍តូច និងងាយស្រួលដែលមានលក្ខណៈពិសេស៖
· ម៉ូឌុល ESP32-MINI-1 ឬ ESP32-MINI-1U · ចំណុចប្រទាក់កម្មវិធី USB-to-serial ដែលផ្តល់នូវការផ្គត់ផ្គង់ថាមពលសម្រាប់ក្តារ · ក្បាលម្ជុល · ប៊ូតុងរុញសម្រាប់កំណត់ឡើងវិញ និងការធ្វើឱ្យសកម្មនៃរបៀបទាញយកកម្មវិធីបង្កប់ · សមាសភាគមួយចំនួនផ្សេងទៀត

មាតិកានិងការវេចខ្ចប់

ការបញ្ជាទិញលក់រាយ ប្រសិនបើអ្នកបញ្ជាទិញពីរបីសamples, ESP32-DevKitM-1 នីមួយៗមាននៅក្នុងកញ្ចប់បុគ្គលនៅក្នុងថង់ antistatic ឬវេចខ្ចប់ណាមួយអាស្រ័យលើអ្នកលក់រាយរបស់អ្នក។
សម្រាប់ការបញ្ជាទិញលក់រាយ សូមចូលទៅកាន់ https://www.espressif.com/en/contact-us/get-samples ។

ការបញ្ជាទិញលក់ដុំ ប្រសិនបើអ្នកបញ្ជាទិញជាដុំៗ ក្តារមាននៅក្នុងប្រអប់ក្រដាសកាតុងធំ។ សម្រាប់ការបញ្ជាទិញលក់ដុំ សូមចូលទៅកាន់ https://www.espressif.com/en/contact-us/sales-questions ។

ការពិពណ៌នាអំពីសមាសភាគ រូបខាងក្រោម និងតារាងខាងក្រោមពណ៌នាអំពីសមាសធាតុសំខាន់ៗ ចំណុចប្រទាក់ និងការគ្រប់គ្រងនៃបន្ទះ ESP32-DevKitM-1 ។ យើងយកក្តារដែលមានម៉ូឌុល ESP32-MINI-1 ជាអតីតample នៅក្នុងផ្នែកខាងក្រោម។

ប្រព័ន្ធ Espressif

10 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបភាពទី 6៖ ESP32-DevKitM-1 – ខាងមុខ

ម៉ូឌុល សមាសភាគសំខាន់ នៅលើយន្តហោះ
5 V ទៅ 3.3 V ប៊ូតុងចាប់ផ្ដើម LDO
ប៊ូតុងកំណត់ឡើងវិញនូវច្រក Micro-USB
USB-to-UART Bridge 3.3 V ថាមពលនៅលើ LED
ឧបករណ៍ភ្ជាប់ I/O

ការពិពណ៌នា
ម៉ូឌុល ESP32-MINI-1 ឬម៉ូឌុល ESP32-MINI-1U ។ ESP32-MINI-1 ភ្ជាប់មកជាមួយអង់តែន PCB នៅលើយន្តហោះ។ ESP32-MINI-1U ភ្ជាប់មកជាមួយឧបករណ៍ភ្ជាប់អង់តែនខាងក្រៅ។ ម៉ូឌុលទាំងពីរទាំងពីរមានពន្លឺ 4 MB នៅក្នុងកញ្ចប់បន្ទះឈីប។ សម្រាប់ព័ត៌មានលម្អិត សូមមើលតារាងទិន្នន័យ ESP32-MINI-1 & ESP32-MINI-1U។
និយតករថាមពលបំលែង 5 V ទៅ 3.3 V ។
ប៊ូតុងទាញយក។ សង្កត់ Boot ហើយបន្ទាប់មកចុចកំណត់ឡើងវិញ ចាប់ផ្តើមរបៀបទាញយកកម្មវិធីបង្កប់សម្រាប់ការទាញយកកម្មវិធីបង្កប់តាមរយៈច្រកសៀរៀល។
ប៊ូតុងកំណត់ឡើងវិញ
ចំណុចប្រទាក់ USB ។ ការផ្គត់ផ្គង់ថាមពលសម្រាប់បន្ទះ ក៏ដូចជាចំណុចប្រទាក់ទំនាក់ទំនងរវាងកុំព្យូទ័រ និងបន្ទះឈីប ESP32។
បន្ទះឈីបស្ពាន USB-UART តែមួយផ្តល់នូវអត្រាផ្ទេរទិន្នន័យរហូតដល់ 3 Mbps ។
បើកនៅពេលដែល USB ត្រូវបានភ្ជាប់ទៅក្តារ។ សម្រាប់ព័ត៌មានលម្អិត សូមមើលគ្រោងការណ៍ក្នុងឯកសារពាក់ព័ន្ធ។ ម្ជុល GPIO ទាំងអស់ដែលមាន (លើកលែងតែ SPI bus សម្រាប់ flash) ត្រូវបានបំបែកទៅក្បាលម្ជុលនៅលើក្តារ។ អ្នកប្រើប្រាស់អាចសរសេរកម្មវិធី ESP32 chip ដើម្បីបើកមុខងារច្រើន។

ចាប់ផ្តើមការអភិវឌ្ឍន៍កម្មវិធី មុនពេលបើកថាមពល ESP32-DevKitM-1 របស់អ្នក សូមប្រាកដថាវាស្ថិតក្នុងស្ថានភាពល្អ ដោយគ្មានសញ្ញាច្បាស់លាស់នៃការខូចខាត។
ផ្នែករឹងដែលត្រូវការ · ESP32-DevKitM-1 · ខ្សែ USB 2.0 (ស្តង់ដារ-A ដល់ Micro-B) · កុំព្យូទ័រដំណើរការ Windows, Linux ឬ macOS
ការដំឡើងកម្មវិធី សូមបន្តទៅ ចាប់ផ្តើម ដែលការដំឡើងផ្នែកនឹងជួយអ្នករៀបចំបរិយាកាសអភិវឌ្ឍន៍ ហើយបន្ទាប់មកបញ្ចេញកម្មវិធី exampចូលទៅកាន់ ESP32-DevKitM-1 របស់អ្នក។

ប្រព័ន្ធ Espressif

11 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ការយកចិត្តទុកដាក់៖ បន្ទះ ESP32-DevKitM-1 ដែលផលិតមុនថ្ងៃទី 2 ខែធ្នូ ឆ្នាំ 2021 មានម៉ូឌុលស្នូលតែមួយដែលបានដំឡើង។ ដើម្បីផ្ទៀងផ្ទាត់ម៉ូឌុលដែលអ្នកមាន សូមពិនិត្យមើលព័ត៌មានសម្គាល់ម៉ូឌុលនៅក្នុង PCN-2021-021 ។ ប្រសិនបើក្តាររបស់អ្នកមានម៉ូឌុលស្នូលតែមួយដែលបានដំឡើង សូមបើករបៀបស្នូលតែមួយ (CONFIG_FREERTOS_UNICORE) នៅក្នុង menuconfig មុនពេលបញ្ចេញកម្មវិធីរបស់អ្នក។
ដ្យាក្រាមប្លុកយោងផ្នែករឹង ដ្យាក្រាមប្លុកខាងក្រោមបង្ហាញពីធាតុផ្សំនៃ ESP32-DevKitM-1 និងការភ្ជាប់គ្នាទៅវិញទៅមក។

រូបភាពទី 7៖ ESP32-DevKitM-1
ការជ្រើសរើសប្រភពថាមពល មានវិធីផ្តាច់មុខចំនួនបីក្នុងការផ្តល់ថាមពលដល់ក្តារ៖ · រន្ធ USB ខ្នាតតូច ការផ្គត់ផ្គង់ថាមពលលំនាំដើម · 5V និង GND header pins · 3V3 និង GND header pins
ការព្រមាន៖ · ការផ្គត់ផ្គង់ថាមពលត្រូវតែផ្តល់ជូនដោយប្រើជម្រើសមួយ និងតែមួយគត់ខាងលើ បើមិនដូច្នេះទេ បន្ទះ និង/ឬប្រភពផ្គត់ផ្គង់ថាមពលអាចខូច។ · ការផ្គត់ផ្គង់ថាមពលដោយរន្ធ USB ខ្នាតតូចត្រូវបានណែនាំ។

ការពិពណ៌នាអំពីម្ជុល តារាងខាងក្រោមផ្តល់នូវឈ្មោះ និងមុខងាររបស់ម្ជុលនៅលើផ្នែកទាំងពីរនៃក្តារ។ សម្រាប់​ការ​កំណត់​រចនាសម្ព័ន្ធ​ម្ជុល​គ្រឿង​កុំព្យូទ័រ សូម​យោង​ទៅ​លើ​ឯកសារ​ទិន្នន័យ ESP32។

ទេ

ឈ្មោះ

ប្រភេទ

1

GND

P

2

3V3

P

មុខងារ Ground ការផ្គត់ផ្គង់ថាមពល 3.3 V

បន្តនៅទំព័របន្ទាប់

ប្រព័ន្ធ Espressif

12 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

តារាង 2 បានបន្តពីទំព័រមុន។

ទេ

ឈ្មោះ

ប្រភេទ

មុខងារ

3

I36

I

GPIO36, ADC1_CH0, RTC_GPIO0

4

I37

I

GPIO37, ADC1_CH1, RTC_GPIO1

5

I38

I

GPIO38, ADC1_CH2, RTC_GPIO2

6

I39

I

GPIO39, ADC1_CH3, RTC_GPIO3

7

RST

I

កំណត់ឡើងវិញ; ខ្ពស់៖ បើក; ទាប៖ បិទថាមពល

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32 ។

អាយ/អូ

GPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33 ។

អាយ/អូ

GPIO33, XTAL_32K_N (ទិន្នផលលំយោលគ្រីស្តាល់ 32.768 kHz),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25 ។

អាយ/អូ

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26 ។

អាយ/អូ

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27 ។

អាយ/អូ

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14 ។

អាយ/អូ

GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

ការផ្គត់ផ្គង់ថាមពល 5V

17

IO12 ។

អាយ/អូ

GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13 ។

អាយ/អូ

GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15 ។

អាយ/អូ

GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2 ។

អាយ/អូ

GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0 ។

អាយ/អូ

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4 ។

អាយ/អូ

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9 ។

អាយ/អូ

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10 ។

អាយ/អូ

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5 ។

អាយ/អូ

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18 ។

អាយ/អូ

GPIO18, HS1_DATA7, VSPICLK

27

IO23 ។

អាយ/អូ

GPIO23, HS1_STROBE, VSPID

28

IO19 ។

អាយ/អូ

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22 ។

អាយ/អូ

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21 ។

អាយ/អូ

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD១

អាយ/អូ

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

RXD0

អាយ/អូ

GPIO3, U0RXD, CLK_OUT2

ព័ត៌មានលម្អិតអំពីការកែប្រែផ្នែករឹង មិនមានកំណែមុនទេ។
ឯកសារពាក់ព័ន្ធ
· ESP32-MINI-1 & ESP32-MINI-1U Datasheet (PDF) · ESP32-DevKitM-1 Schematics (PDF) · ESP32-DevKitM-1 PCB layout (PDF) · ESP32-DevKitM-1 layout (DXF) - អ្នកអាច view វាជាមួយ Autodesk Viewer online · ESP32 Datasheet (PDF) · ESP Product Selector
សម្រាប់ឯកសាររចនាផ្សេងទៀតសម្រាប់ក្រុមប្រឹក្សាភិបាល សូមទាក់ទងមកយើងខ្ញុំតាមរយៈ sales@espressif.com ។

ប្រព័ន្ធ Espressif

13 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
៨.៣ សូហ្វវែរ
ដើម្បីចាប់ផ្តើមប្រើ ESP-IDF នៅលើ ESP32 សូមដំឡើងកម្មវិធីខាងក្រោម៖ · Toolchain ដើម្បីចងក្រងកូដសម្រាប់ ESP32 · Build tools – CMake and Ninja to build a full Application for ESP32 · ESP-IDF ដែលមាន API (software libraries and source code) សម្រាប់ ESP32 និង scripts ដើម្បីដំណើរការ Toolchain

1.3 ការដំឡើង
ដើម្បីដំឡើងកម្មវិធីដែលត្រូវការទាំងអស់ យើងផ្តល់ជូននូវវិធីផ្សេងគ្នាមួយចំនួនដើម្បីជួយសម្រួលដល់កិច្ចការនេះ។ ជ្រើសរើសពីជម្រើសមួយក្នុងចំណោមជម្រើសដែលមាន។
1.3.1 IDE

ចំណាំ៖ យើងសូមផ្តល់អនុសាសន៍យ៉ាងខ្លាំងឱ្យដំឡើង ESP-IDF តាមរយៈ IDE ដែលអ្នកចូលចិត្ត។
· Eclipse Plugin · VSCode Extension

1.3.2 ការដំឡើងដោយដៃ
សម្រាប់នីតិវិធីដោយដៃ សូមជ្រើសរើសតាមប្រព័ន្ធប្រតិបត្តិការរបស់អ្នក។

ប្រព័ន្ធ Espressif

14 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ការដំឡើងស្តង់ដារនៃ Toolchain សម្រាប់ Windows
ការណែនាំ ESP-IDF ទាមទារឧបករណ៍ចាំបាច់មួយចំនួនដែលត្រូវដំឡើង ដូច្នេះអ្នកអាចបង្កើតកម្មវិធីបង្កប់សម្រាប់បន្ទះឈីបដែលគាំទ្រ។ ឧបករណ៍ដែលត្រូវការជាមុនរួមមាន Python, Git, cross-compilers, CMake និង Ninja build tools ។ សម្រាប់ការចាប់ផ្តើមនេះ យើងនឹងប្រើ Command Prompt ប៉ុន្តែបន្ទាប់ពីដំឡើង ESP-IDF អ្នកអាចប្រើ Eclipse Plugin ឬ IDE ក្រាហ្វិកផ្សេងទៀតដោយប្រើជំនួយ CMake ជំនួសវិញ។ ចំណាំ៖ ដែនកំណត់៖ – ផ្លូវដំឡើងឧបករណ៍ ESP-IDF និង ESP-IDF មិនត្រូវវែងជាង 90 តួអក្សរទេ។ ផ្លូវដំឡើងវែងពេកអាចបណ្តាលឱ្យការស្ថាបនាបរាជ័យ។ - ផ្លូវដំឡើងរបស់ Python ឬ ESP-IDF មិនត្រូវមានចន្លោះពណ៌ស ឬវង់ក្រចកទេ។ - ផ្លូវដំឡើងរបស់ Python ឬ ESP-IDF មិនគួរមានតួអក្សរពិសេស (nonASCII) ទេ លុះត្រាតែប្រព័ន្ធប្រតិបត្តិការត្រូវបានកំណត់ជាមួយ oUnicode UTF-8psupport។ អ្នកគ្រប់គ្រងប្រព័ន្ធអាចបើកការគាំទ្រតាមរយៈផ្ទាំងបញ្ជា - ផ្លាស់ប្តូរកាលបរិច្ឆេទ ពេលវេលា ឬទម្រង់លេខ - ផ្ទាំងរដ្ឋបាល - ផ្លាស់ប្តូរមូលដ្ឋានប្រព័ន្ធ - ពិនិត្យជម្រើស oBeta៖ ប្រើយូនីកូដ UTF-8 សម្រាប់ការគាំទ្រភាសាទូទាំងពិភពលោក - យល់ព្រម ហើយចាប់ផ្ដើមកុំព្យូទ័រឡើងវិញ។
កម្មវិធីដំឡើងឧបករណ៍ ESP-IDF វិធីងាយស្រួលបំផុតក្នុងការដំឡើងតម្រូវការជាមុនរបស់ ESP-IDFns គឺត្រូវទាញយកកម្មវិធីដំឡើងឧបករណ៍ ESP-IDF មួយ។

ទាញយកកម្មវិធីដំឡើងវីនដូ
តើអ្វីជាករណីប្រើប្រាស់សម្រាប់កម្មវិធីដំឡើងតាមអ៊ីនធឺណិត និងក្រៅបណ្តាញ កម្មវិធីដំឡើងតាមអ៊ីនធឺណិតគឺតូចណាស់ ហើយអនុញ្ញាតឱ្យដំឡើងការចេញផ្សាយដែលមានទាំងអស់នៃ ESP-IDF ។ កម្មវិធីដំឡើងនឹងទាញយកតែភាពអាស្រ័យចាំបាច់រួមទាំង Git សម្រាប់ Windows កំឡុងពេលដំណើរការដំឡើង។ កម្មវិធីដំឡើងត្រូវបានទាញយក files នៅក្នុងថតឃ្លាំងសម្ងាត់ %userprofile% espressif
កម្មវិធីដំឡើងក្រៅបណ្តាញមិនតម្រូវឱ្យមានការតភ្ជាប់បណ្តាញណាមួយទេ។ កម្មវិធីដំឡើងផ្ទុកនូវភាពអាស្រ័យដែលត្រូវការទាំងអស់ រួមទាំង Git សម្រាប់ Windows ។
ធាតុផ្សំនៃការដំឡើង កម្មវិធីដំឡើងដាក់ពង្រាយសមាសភាគខាងក្រោម៖
· Embedded Python · Cross-compilers · OpenOCD · CMake and Ninja build tools · ESP-IDF
កម្មវិធីដំឡើងក៏អនុញ្ញាតឱ្យប្រើឡើងវិញនូវថតដែលមានស្រាប់ជាមួយ ESP-IDF ។ ថតដែលបានណែនាំគឺ %userprofile%Desktopesp-idf ដែល %userprofile% គឺជាថតផ្ទះរបស់អ្នក។

ប្រព័ន្ធ Espressif

15 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ការបើកដំណើរការបរិស្ថាន ESP-IDF នៅចុងបញ្ចប់នៃដំណើរការដំឡើង អ្នកអាចពិនិត្យមើលជម្រើស ដំណើរការ ESP-IDF PowerShell Environment ឬដំណើរការ ESP-IDF Command Prompt (cmd.exe) ។ កម្មវិធីដំឡើងនឹងចាប់ផ្តើមបរិស្ថាន ESP-IDF នៅក្នុងប្រអប់បញ្ចូលដែលបានជ្រើសរើស។ ដំណើរការ ESP-IDF PowerShell Environment៖

រូបភាពទី 8៖ ការបំពេញអ្នកជំនួយការដំឡើងឧបករណ៍ ESP-IDF ជាមួយនឹងដំណើរការ ESP-IDF PowerShell Environment
ដំណើរការប្រអប់បញ្ចូលពាក្យបញ្ជា ESP-IDF (cmd.exe)៖
ដោយប្រើ Command Prompt សម្រាប់ជំហានចាប់ផ្តើមដែលនៅសេសសល់ យើងនឹងប្រើ Windows Command Prompt ។ កម្មវិធីដំឡើងឧបករណ៍ ESP-IDF ក៏បង្កើតផ្លូវកាត់នៅក្នុងម៉ឺនុយចាប់ផ្តើម ដើម្បីបើកដំណើរការប្រអប់បញ្ចូលពាក្យបញ្ជា ESP-IDF ។ ផ្លូវកាត់នេះបើកដំណើរការ Command Prompt (cmd.exe) ហើយដំណើរការស្គ្រីប export.bat ដើម្បីដំឡើងអថេរបរិស្ថាន (PATH, IDF_PATH និងផ្សេងៗទៀត)។ នៅក្នុងប្រអប់បញ្ចូលពាក្យបញ្ជានេះ ឧបករណ៍ដែលបានដំឡើងទាំងអស់មាន។ ចំណាំថាផ្លូវកាត់នេះគឺជាក់លាក់ចំពោះថត ESP-IDF ដែលបានជ្រើសរើសនៅក្នុងកម្មវិធីដំឡើងឧបករណ៍ ESP-IDF ។ ប្រសិនបើអ្នកមានថត ESP-IDF ច្រើននៅលើកុំព្យូទ័រ (សម្រាប់ឧample ដើម្បីធ្វើការជាមួយកំណែផ្សេងគ្នានៃ ESP-IDF) អ្នកមានជម្រើសពីរដើម្បីប្រើពួកវា៖
1. បង្កើតច្បាប់ចម្លងនៃផ្លូវកាត់ដែលបង្កើតឡើងដោយកម្មវិធីដំឡើងឧបករណ៍ ESP-IDF ហើយផ្លាស់ប្តូរថតឯកសារផ្លូវកាត់ថ្មីទៅថត ESP-IDF ដែលអ្នកចង់ប្រើ។
2. ជាជម្រើស រត់ cmd.exe បន្ទាប់មកប្តូរទៅថត ESP-IDF ដែលអ្នកចង់ប្រើ ហើយដំណើរការ export.bat។ ចំណាំថាមិនដូចជម្រើសមុនទេ វិធីនេះតម្រូវឱ្យ Python និង Git មានវត្តមាននៅក្នុង PATH ។ ប្រសិនបើអ្នកទទួលបានកំហុសទាក់ទងនឹង Python ឬ Git មិនត្រូវបានរកឃើញ សូមប្រើជម្រើសទីមួយ។
ជំហានដំបូងនៅលើ ESP-IDF ឥឡូវនេះ ដោយសារតម្រូវការទាំងអស់ត្រូវបានបំពេញ ប្រធានបទបន្ទាប់នឹងណែនាំអ្នកអំពីរបៀបចាប់ផ្តើមគម្រោងដំបូងរបស់អ្នក។

ប្រព័ន្ធ Espressif

16 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម រូបភាពទី 9៖ ESP-IDF PowerShell

រូបភាពទី 10៖ ការបំពេញអ្នកជំនួយការដំឡើងឧបករណ៍ ESP-IDF ជាមួយការរត់ពាក្យបញ្ជា ESP-IDF (cmd.exe)

ប្រព័ន្ធ Espressif

17 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបភាពទី ១១៖ ប្រអប់បញ្ចូលពាក្យបញ្ជា ESP-IDF

ប្រព័ន្ធ Espressif

18 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ការណែនាំនេះនឹងជួយអ្នកក្នុងជំហានដំបូងដោយប្រើ ESP-IDF ។ អនុវត្តតាមការណែនាំនេះ ដើម្បីចាប់ផ្តើមគម្រោងថ្មីនៅលើ ESP32 ហើយបង្កើត បញ្ចេញពន្លឺ និងតាមដានលទ្ធផលឧបករណ៍។ ចំណាំ៖ ប្រសិនបើអ្នកមិនទាន់បានដំឡើង ESP-IDF សូមចូលទៅកាន់ការដំឡើង ហើយធ្វើតាមការណែនាំ ដើម្បីទទួលបានកម្មវិធីទាំងអស់ដែលចាំបាច់សម្រាប់ប្រើការណែនាំនេះ។

ចាប់ផ្តើមគម្រោងឥឡូវនេះ អ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីរៀបចំកម្មវិធីរបស់អ្នកសម្រាប់ ESP32។ អ្នកអាចចាប់ផ្តើមជាមួយគម្រោង getstarted/hello_world ពីអតីតamples directory ក្នុង ESP-IDF ។
សំខាន់៖ ប្រព័ន្ធសាងសង់ ESP-IDF មិនគាំទ្រចន្លោះនៅក្នុងផ្លូវទៅកាន់ ESP-IDF ឬទៅគម្រោងទេ។
ចម្លងគម្រោង get-started/hello_world ទៅកាន់ថត ~/esp៖ cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
ចំណាំ: មានជួរនៃ example គម្រោងនៅក្នុង examples directory ក្នុង ESP-IDF ។ អ្នកអាចចម្លងគម្រោងណាមួយតាមរបៀបដូចដែលបានបង្ហាញខាងលើ ហើយដំណើរការវា។ វាក៏អាចធ្វើទៅបានដើម្បីកសាង examples in-place ដោយមិនចាំបាច់ចម្លងពួកវាជាមុន។

ភ្ជាប់ឧបករណ៍របស់អ្នកឥឡូវនេះ ភ្ជាប់បន្ទះ ESP32 របស់អ្នកទៅកុំព្យូទ័រ ហើយពិនិត្យមើលថាតើច្រកសៀរៀលណាដែលអាចមើលឃើញ។ ឈ្មោះច្រកសៀរៀលចាប់ផ្តើមដោយ COM នៅក្នុង Windows ។ ប្រសិនបើអ្នកមិនប្រាកដពីរបៀបពិនិត្យមើលឈ្មោះច្រកសៀរៀល សូមយោងទៅ បង្កើតការតភ្ជាប់សៀរៀលជាមួយ ESP32 សម្រាប់ព័ត៌មានលម្អិតពេញលេញ។
ចំណាំ៖ រក្សាឈ្មោះច្រកងាយស្រួល ដូចដែលអ្នកនឹងត្រូវការវាក្នុងជំហានបន្ទាប់។

កំណត់រចនាសម្ព័ន្ធគម្រោងរបស់អ្នក រុករកទៅកាន់ថត hello_world របស់អ្នក កំណត់ ESP32 ជាគោលដៅ ហើយដំណើរការកម្មវិធីកំណត់រចនាសម្ព័ន្ធកម្មវិធី menuconfig ។
Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
បន្ទាប់​ពី​បើក​គម្រោង​ថ្មី​ដំបូង​អ្នក​គួរ​កំណត់​គោលដៅ​ជាមួយ idf.py set-target esp32។ ចំណាំថាការស្ថាបនា និងការកំណត់រចនាសម្ព័ន្ធដែលមានស្រាប់នៅក្នុងគម្រោង ប្រសិនបើមាន នឹងត្រូវបានសម្អាត និងចាប់ផ្តើមនៅក្នុងដំណើរការនេះ។ គោលដៅអាចត្រូវបានរក្សាទុកក្នុងអថេរបរិស្ថាន ដើម្បីរំលងជំហាននេះទាល់តែសោះ។ សូមមើលជ្រើសរើស Target Chip៖ set-target សម្រាប់ព័ត៌មានបន្ថែម។ ប្រសិនបើជំហានមុនត្រូវបានធ្វើបានត្រឹមត្រូវ ម៉ឺនុយខាងក្រោមនឹងលេចឡើង៖ អ្នកកំពុងប្រើម៉ឺនុយនេះដើម្បីដំឡើងអថេរជាក់លាក់របស់គម្រោង ឧ. ឈ្មោះបណ្តាញ Wi-Fi និងពាក្យសម្ងាត់ ល្បឿនដំណើរការ។ល។ ការដំឡើងគម្រោងជាមួយ menuconfig អាចត្រូវបានរំលងសម្រាប់ ohello_wordp ចាប់តាំងពីអតីតample ដំណើរការជាមួយការកំណត់លំនាំដើម។
យកចិត្តទុកដាក់៖ ប្រសិនបើអ្នកប្រើក្តារ ESP32-DevKitC ជាមួយម៉ូឌុល ESP32-SOLO-1 ឬក្តារ ESP32-DevKitM-1 ជាមួយម៉ូឌុល ESP32-MIN1-1(1U) សូមបើករបៀបស្នូលតែមួយ (CONFIG_FREERTOS_UNICORE) នៅក្នុង menuconfig មុនពេលបញ្ចេញពន្លឺ examples ។

ប្រព័ន្ធ Espressif

19 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបភាពទី 12៖ ការកំណត់រចនាសម្ព័ន្ធគម្រោង – បង្អួចផ្ទះ
ចំណាំ៖ ពណ៌នៃម៉ឺនុយអាចខុសគ្នានៅក្នុងស្ថានីយរបស់អ្នក។ អ្នកអាចផ្លាស់ប្តូររូបរាងដោយប្រើជម្រើស -style ។ សូមដំណើរការ idf.py menuconfig –help សម្រាប់ព័ត៌មានបន្ថែម។
ប្រសិនបើអ្នកកំពុងប្រើក្រុមប្រឹក្សាអភិវឌ្ឍន៍ដែលគាំទ្រមួយ អ្នកអាចបង្កើនល្បឿននៃការអភិវឌ្ឍន៍របស់អ្នកដោយប្រើកញ្ចប់ជំនួយក្រុមប្រឹក្សាភិបាល។ សូមមើលការណែនាំបន្ថែម សម្រាប់ព័ត៌មានបន្ថែម។
បង្កើតគម្រោង បង្កើតគម្រោងដោយដំណើរការ៖
idf.py ស្ថាបនា
ពាក្យបញ្ជានេះនឹងចងក្រងកម្មវិធី និងសមាសធាតុ ESP-IDF ទាំងអស់ បន្ទាប់មកវានឹងបង្កើតកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ តារាងភាគថាស និងប្រព័ន្ធគោលពីរកម្មវិធី។
$idf.py build កំពុងដំណើរការ cmake នៅក្នុងថត /path/to/hello_world/build កំពុងប្រតិបត្តិ “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… ព្រមានអំពីតម្លៃដែលមិនទាន់បានកំណត់។ — បានរកឃើញ Git៖ /usr/bin/git (បានរកឃើញកំណែ “2.17.0”) — ការកសាងសមាសភាគ aws_iot ទទេដោយសារតែការកំណត់រចនាសម្ព័ន្ធ — ឈ្មោះសមាសភាគ៖ … — ផ្លូវសមាសភាគ៖ …
… (បន្ទាត់​បន្ថែម​ទៀត​នៃ​លទ្ធផល​ប្រព័ន្ធ​បង្កើត)
[527/527] ការបង្កើត hello_world.bin esptool.py v2.3.1
គម្រោងសាងសង់រួចរាល់។ ដើម្បីបញ្ចេញពន្លឺ សូមដំណើរការពាក្យបញ្ជានេះ៖ ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world។ bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin ឬដំណើរការ 'idf.py -p PORT flash'
ប្រសិនបើគ្មានកំហុសទេ ការស្ថាបនានឹងបញ្ចប់ដោយបង្កើត firmware binary .bin files.

ប្រព័ន្ធ Espressif

20 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ពន្លឺនៅលើឧបករណ៍ បញ្ចេញពន្លឺប្រព័ន្ធគោលពីរដែលអ្នកទើបតែបង្កើត (bootloader.bin, partition-table.bin និង hello_world.bin) ទៅលើបន្ទះ ESP32 របស់អ្នកដោយដំណើរការ៖ idf.py -p PORT [-b BAUD] flash
ជំនួស PORT ជាមួយឈ្មោះច្រកសៀរៀលក្តារបន្ទះ ESP32 របស់អ្នក។ អ្នកក៏អាចផ្លាស់ប្តូរអត្រា baud flasher ដោយជំនួស BAUD ជាមួយនឹងអត្រា baud ដែលអ្នកត្រូវការ។ អត្រា baud លំនាំដើមគឺ 460800។ សម្រាប់ព័ត៌មានបន្ថែមអំពីអាគុយម៉ង់ idf.py សូមមើល idf.py ។
ចំណាំ៖ ជម្រើសដែល flash បង្កើត និងបញ្ចេញគម្រោងដោយស្វ័យប្រវត្តិ ដូច្នេះការដំណើរការ idf.py build គឺមិនចាំបាច់ទេ។

ជួបប្រទះបញ្ហាក្នុងពេលបញ្ចេញពន្លឺ? ប្រសិនបើអ្នកដំណើរការពាក្យបញ្ជាដែលបានផ្តល់ឱ្យហើយឃើញកំហុសដូចជាsoFailed to connectp វាអាចមានហេតុផលជាច្រើនសម្រាប់បញ្ហានេះ។ មូលហេតុមួយអាចជាបញ្ហាដែលជួបប្រទះដោយ esptool.py ដែលជាឧបករណ៍ប្រើប្រាស់ដែលត្រូវបានហៅដោយប្រព័ន្ធស្ថាបនាដើម្បីកំណត់បន្ទះឈីបឡើងវិញ ធ្វើអន្តរកម្មជាមួយ ROM bootloader និង flash firmware។ ដំណោះស្រាយដ៏សាមញ្ញមួយដែលត្រូវសាកល្បងគឺការកំណត់ឡើងវិញដោយដៃដែលបានពិពណ៌នាខាងក្រោម ហើយប្រសិនបើវាមិនជួយអ្នកអាចស្វែងរកព័ត៌មានលម្អិតបន្ថែមអំពីបញ្ហាដែលអាចកើតមាននៅក្នុងការដោះស្រាយបញ្ហា។
esptool.py កំណត់ ESP32 ឡើងវិញដោយស្វ័យប្រវត្តិដោយអះអាងខ្សែបញ្ជា DTR និង RTS នៃ USB ទៅជាបន្ទះឈីបបំប្លែងសៀរៀល ពោលគឺ FTDI ឬ CP210x (សម្រាប់ព័ត៌មានបន្ថែម សូមមើល បង្កើតការភ្ជាប់សៀរៀលជាមួយ ESP32)។ បន្ទាត់ត្រួតពិនិត្យ DTR និង RTS ត្រូវបានភ្ជាប់ទៅម្ជុល GPIO0 និង CHIP_PU (EN) នៃ ESP32 ដូច្នេះការផ្លាស់ប្តូរនៅក្នុងវ៉ុលtagកម្រិតនៃ DTR និង RTS នឹងចាប់ផ្ដើម ESP32 ចូលទៅក្នុងរបៀបទាញយកកម្មវិធីបង្កប់។ ក្នុងនាមជាអតីតampដូច្នេះ សូមពិនិត្យមើលគ្រោងការណ៍សម្រាប់ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP32 DevKitC ។
ជាទូទៅ អ្នកមិនគួរមានបញ្ហាជាមួយក្រុមប្រឹក្សាអភិវឌ្ឍន៍ esp-idf ផ្លូវការទេ។ ទោះយ៉ាងណាក៏ដោយ esptool.py មិនអាចកំណត់ឡើងវិញនូវផ្នែករឹងរបស់អ្នកដោយស្វ័យប្រវត្តិនៅក្នុងករណីដូចខាងក្រោមនេះទេ៖
· ផ្នែករឹងរបស់អ្នកមិនមានខ្សែ DTR និង RTS ភ្ជាប់ទៅ GPIO0 និង CHIP_PU · បន្ទាត់ DTR និង RTS ត្រូវបានកំណត់រចនាសម្ព័ន្ធខុសគ្នា · មិនមានបន្ទាត់បញ្ជាសៀរៀលបែបនេះទាល់តែសោះ
អាស្រ័យលើប្រភេទនៃផ្នែករឹងដែលអ្នកមាន វាក៏អាចដាក់បន្ទះ ESP32 របស់អ្នកទៅក្នុងរបៀបទាញយកកម្មវិធីបង្កប់ (កំណត់ឡើងវិញ) ផងដែរ។
· សម្រាប់ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ដែលផលិតដោយ Espressif ព័ត៌មាននេះអាចត្រូវបានរកឃើញនៅក្នុងមគ្គុទ្ទេសក៍ចាប់ផ្តើម ឬការណែនាំអ្នកប្រើប្រាស់រៀងៗខ្លួន។ សម្រាប់អតីតampដូច្នេះ ដើម្បីកំណត់ឡើងវិញនូវក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP-IDF ដោយដៃ សង្កត់ប៊ូតុងចាប់ផ្ដើម (GPIO0) ហើយចុចប៊ូតុង EN (CHIP_PU) ។
· សម្រាប់ប្រភេទ Hardware ផ្សេងទៀត សូមព្យាយាមទាញ GPIO0 ចុះក្រោម។

ប្រតិបត្តិការធម្មតា នៅពេលបញ្ចេញពន្លឺ អ្នកនឹងឃើញកំណត់ហេតុលទ្ធផលស្រដៀងនឹងខាងក្រោម៖
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition0-table.0xtable. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Connecting…….._ Chip គឺ ESP32D0WDQ6 (revision 0) លក្ខណៈពិសេស៖ WiFi, BT, Dual Core, Coding Scheme None MAC: 4 24:1000a:c40:05:b9:14 កំពុងបង្ហោះ stub… កំពុងដំណើរការ stub… Stub កំពុងដំណើរការ… ការផ្លាស់ប្តូរអត្រា baud ទៅ 460800 បានផ្លាស់ប្តូរ។
(បន្តនៅទំព័របន្ទាប់)

ប្រព័ន្ធ Espressif

21 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
(បន្តពីទំព័រមុន) ការកំណត់ទំហំពន្លឺ… បានបង្ហាប់ 3072 បៃទៅ 103… កំពុងសរសេរនៅ 0x00008000… (100%) សរសេរ 3072 បៃ (103 បានបង្ហាប់) នៅ 0x00008000 ក្នុងរយៈពេល 0.0 វិនាទី (មានប្រសិទ្ធិភាព 596 ប៊ីត/វិនាទី)។ បានបង្ហាប់ 26096 បៃទៅ 15408… សរសេរនៅ 0x00001000… (100%) សរសេរ 26096 បៃ (15408 បានបង្ហាប់) នៅ 0x00001000 ក្នុងរយៈពេល 0.4 វិនាទី (ប្រសិទ្ធភាព 546.7 kbit/s បានផ្ទៀងផ្ទាត់)… បានបង្ហាប់ 147104 បៃទៅ 77364… សរសេរនៅ 0x00010000… (20%) សរសេរនៅ 0x00014000… (40%) សរសេរនៅ 0x00018000… (60%) សរសេរនៅ 0x00018000%) 0x00020000… (100 %) សរសេរ 147104 បៃ (77364 បង្ហាប់) នៅ 0x00010000 ក្នុងរយៈពេល 1.9 វិនាទី (មានប្រសិទ្ធភាព 615. 5 kbit/s)… Hash of data verified.
កំពុងចាកចេញ… ការកំណត់ឡើងវិញដោយលំបាកតាមរយៈម្ជុល RTS… រួចរាល់
ប្រសិនបើគ្មានបញ្ហានៅចុងបញ្ចប់នៃដំណើរការ flash នោះ board នឹងចាប់ផ្តើមឡើងវិញ ហើយចាប់ផ្តើម theohello_worldpapplication។ ប្រសិនបើអ្នកចូលចិត្តប្រើ Eclipse ឬ VS Code IDE ជំនួសឱ្យការដំណើរការ idf.py សូមពិនិត្យមើល Eclipse Plugin, VSCode Extension ។
ត្រួតពិនិត្យលទ្ធផល ដើម្បីពិនិត្យមើលថាតើ ohello_worldpis ពិតជាកំពុងដំណើរការមែន វាយ idf.py -p PORT monitor (កុំភ្លេចជំនួស PORT ជាមួយឈ្មោះច្រកសៀរៀលរបស់អ្នក)។
ពាក្យបញ្ជានេះបើកដំណើរការកម្មវិធី IDF Monitor៖
$ idf.py -p ត្រួតពិនិត្យដំណើរការ idf_monitor នៅក្នុងថត […]/esp/hello_world/build កំពុងប្រតិបត្តិ “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor នៅលើ 115200 —– ចេញ៖ Ctrl+] | ម៉ឺនុយ៖ Ctrl+T | ជំនួយ៖ បញ្ជា (Ctrl)+T តាម​ពីក្រោយ​ដោយ Ctrl+H –ets ខែ​មិថុនា 8 2016 00:22:57
rst: 0x1 (POWERON_RESET), boot: 0x13 (SPI_FAST_FLASH_BOOT) និង ថ្ងៃទី 8 ខែមិថុនា ឆ្នាំ 2016 00:22:57 …
បន្ទាប់​ពី​ការ​ចាប់​ផ្តើ​ម​និង​ការ​កំណត់​ហេតុ​រោគ​វិនិច្ឆ័យ​រមូរ​ឡើង​អ្នក​គួរ​តែ​ឃើញ oHello world! pprinted ដោយ​កម្មវិធី​។
… សួស្តីពិភពលោក! ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 10 វិនាទី… នេះគឺជាបន្ទះឈីប esp32 ដែលមានស្នូលស៊ីភីយូ 2, WiFi/BT/BLE, ការកែប្រែស៊ីលីកុន 1, ពន្លឺខាងក្រៅ 2MB ទំហំហ៊ាឥតគិតថ្លៃអប្បបរមា៖ 298968 បៃ ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 9 វិនាទី… ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 8 វិនាទី… ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 7 វិនាទី…
ដើម្បីចេញពីម៉ូនីទ័រ IDF ប្រើផ្លូវកាត់ Ctrl+]។

ប្រព័ន្ធ Espressif

22 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ប្រសិនបើម៉ូនីទ័រ IDF បរាជ័យភ្លាមៗបន្ទាប់ពីការបង្ហោះ ឬប្រសិនបើជំនួសឱ្យសារខាងលើ អ្នកឃើញសំរាមចៃដន្យស្រដៀងនឹងអ្វីដែលត្រូវបានផ្តល់ឱ្យខាងក្រោម នោះក្តាររបស់អ្នកទំនងជាប្រើគ្រីស្តាល់ 26 MHz ។ ការរចនាបន្ទះអភិវឌ្ឍន៍ភាគច្រើនប្រើ 40 MHz ដូច្នេះ ESP-IDF ប្រើប្រេកង់នេះជាតម្លៃលំនាំដើម។

ប្រសិនបើអ្នកមានបញ្ហាបែបនេះ សូមធ្វើដូចខាងក្រោមៈ 1. ចេញពីម៉ូនីទ័រ។ 2. ត្រលប់ទៅ menuconfig ។ 3. ចូលទៅកាន់ Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency បន្ទាប់មកប្តូរ CONFIG_XTAL_FREQ_SEL ទៅ 26 MHz ។ 4. បន្ទាប់ពីនោះ បង្កើត និងបញ្ចេញកម្មវិធីម្តងទៀត។
នៅក្នុងកំណែបច្ចុប្បន្ននៃ ESP-IDF ប្រេកង់ XTAL ចម្បងដែលគាំទ្រដោយ ESP32 មានដូចខាងក្រោម៖
· 26 MHz · 40 MHz
ចំណាំ៖ អ្នកអាចបញ្ចូលគ្នានូវអគារ ពន្លឺ និងការត្រួតពិនិត្យទៅក្នុងជំហានមួយដោយដំណើរការ៖ idf.py -p PORT flash monitor
សូមមើលផងដែរ៖ · IDF Monitor សម្រាប់ផ្លូវកាត់ងាយស្រួល និងព័ត៌មានលម្អិតបន្ថែមអំពីការប្រើប្រាស់ម៉ូនីទ័រ IDF ។ · idf.py សម្រាប់ឯកសារយោងពេញលេញនៃពាក្យបញ្ជា idf.py និងជម្រើស។
នោះជាអ្វីទាំងអស់ដែលអ្នកត្រូវការដើម្បីចាប់ផ្តើមជាមួយ ESP32! ឥឡូវ​នេះ​អ្នក​ត្រៀម​ខ្លួន​ជា​ស្រេច​ដើម្បី​សាកល្បង​អតីត​ផ្សេង​ទៀត។amples ឬទៅត្រង់ដើម្បីអភិវឌ្ឍកម្មវិធីផ្ទាល់ខ្លួនរបស់អ្នក។
សំខាន់: មួយចំនួននៃអតីតamples មិនគាំទ្រ ESP32 ទេ ពីព្រោះផ្នែករឹងដែលត្រូវការមិនត្រូវបានរួមបញ្ចូលនៅក្នុង ESP32 ដូច្នេះវាមិនអាចគាំទ្របានទេ។ ប្រសិនបើសាងសង់អតីតampដូច្នេះ សូមពិនិត្យមើល README file សម្រាប់តារាងគោលដៅដែលបានគាំទ្រ។ ប្រសិនបើវាមានវត្តមានរួមទាំងគោលដៅ ESP32 ឬតារាងមិនមានទាល់តែសោះ ឧample នឹងធ្វើការលើ ESP32។
គន្លឹះបន្ថែម
បញ្ហាការអនុញ្ញាត /dev/ttyUSB0 ជាមួយនឹងការចែកចាយលីនុចមួយចំនួន អ្នកអាចទទួលបានសារកំហុសក្នុងការបើកច្រក /dev/ttyUSB0 នៅពេលបញ្ចេញ ESP32 ។ វាអាចត្រូវបានដោះស្រាយដោយបន្ថែមអ្នកប្រើប្រាស់បច្ចុប្បន្នទៅក្រុមសន្ទនា។
ភាពឆបគ្នារបស់ Python ESP-IDF គាំទ្រ Python 3.7 ឬថ្មីជាងនេះ។ វាត្រូវបានផ្ដល់អនុសាសន៍ឱ្យដំឡើងកំណែប្រព័ន្ធប្រតិបត្តិការរបស់អ្នកទៅជាកំណែថ្មីដែលបំពេញតម្រូវការនេះ។ ជម្រើសផ្សេងទៀតរួមមានការដំឡើង Python ពីប្រភព ឬការប្រើប្រាស់ប្រព័ន្ធគ្រប់គ្រងកំណែ Python ដូចជា pyenv ។
ចាប់ផ្តើមជាមួយនឹងកញ្ចប់ជំនួយក្រុមប្រឹក្សា ដើម្បីបង្កើនល្បឿននៃការបង្កើតគំរូនៅលើក្រុមប្រឹក្សាអភិវឌ្ឍន៍មួយចំនួន អ្នកអាចប្រើកញ្ចប់ជំនួយក្រុមប្រឹក្សាភិបាល (BSPs) ដែលធ្វើឱ្យការចាប់ផ្តើមនៃបន្ទះជាក់លាក់មួយមានភាពងាយស្រួលដូចការហៅមុខងារមួយចំនួន។

ប្រព័ន្ធ Espressif

23 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

ជាធម្មតា BSP គាំទ្រផ្នែករឹងទាំងអស់ដែលមាននៅលើក្រុមប្រឹក្សាភិបាលអភិវឌ្ឍន៍។ ក្រៅពីមុខងារកំណត់និយមន័យ និងការចាប់ផ្តើម BSP ដឹកជញ្ជូនជាមួយកម្មវិធីបញ្ជាសម្រាប់សមាសភាគខាងក្រៅដូចជា ឧបករណ៍ចាប់សញ្ញា ការបង្ហាញ កូឌិកអូឌីយ៉ូ។ Herens អតីតampពីវិធីបន្ថែម ESP-WROVER-KIT BSP ទៅក្នុងគម្រោងរបស់អ្នក៖ idf.py add-dependency esp_wrover_kit
ច្រើនទៀត ឧamples នៃការប្រើប្រាស់ BSP អាចរកបាននៅក្នុង BSP examples folder ។
ឯកសារពាក់ព័ន្ធសម្រាប់អ្នកប្រើប្រាស់កម្រិតខ្ពស់ដែលចង់កំណត់ដំណើរការដំឡើងតាមបំណង៖ · ការធ្វើបច្ចុប្បន្នភាពឧបករណ៍ ESP-IDF នៅលើ Windows · បង្កើតការតភ្ជាប់សៀរៀលជាមួយ ESP32 · កម្មវិធីជំនួយ Eclipse · ផ្នែកបន្ថែម VSCode · IDF Monitor
ការធ្វើបច្ចុប្បន្នភាពឧបករណ៍ ESP-IDF នៅលើ Windows
ដំឡើងឧបករណ៍ ESP-IDF ដោយប្រើស្គ្រីបពី Windows Command Prompt ប្តូរទៅថតដែល ESPIDF ត្រូវបានដំឡើង។ បន្ទាប់មករត់៖
install.bat
សម្រាប់ Powershell សូមប្តូរទៅថតដែល ESP-IDF ត្រូវបានដំឡើង។ បន្ទាប់មករត់៖
install.ps1
វានឹងទាញយក និងដំឡើងឧបករណ៍ចាំបាច់ដើម្បីប្រើ ESP-IDF ។ ប្រសិនបើកំណែជាក់លាក់របស់ឧបករណ៍ត្រូវបានដំឡើងរួចហើយ នោះនឹងមិនមានការចាត់វិធានការណាមួយឡើយ។ ឧបករណ៍ត្រូវបានទាញយក និងដំឡើងទៅក្នុងថតដែលបានបញ្ជាក់ក្នុងអំឡុងពេលដំណើរការកម្មវិធីដំឡើងឧបករណ៍ ESP-IDF ។ តាមលំនាំដើម នេះគឺជា C:Usersusername.espressif ។
បន្ថែមឧបករណ៍ ESP-IDF ទៅ PATH ដោយប្រើស្គ្រីបនាំចេញ ឧបករណ៍ដំឡើងឧបករណ៍ ESP-IDF បង្កើតផ្លូវកាត់ម៉ឺនុយចាប់ផ្តើមសម្រាប់ oESP-IDF Command Promptp ។ ផ្លូវកាត់នេះបើកបង្អួច Command Prompt ដែលឧបករណ៍ទាំងអស់មានរួចហើយ
មាន។ ក្នុងករណីខ្លះ អ្នកប្រហែលជាចង់ធ្វើការជាមួយ ESP-IDF នៅក្នុងបង្អួច Command Prompt ដែលមិនត្រូវបានចាប់ផ្តើមប្រើផ្លូវកាត់នោះទេ។ ប្រសិនបើនេះជាករណី សូមធ្វើតាមការណែនាំខាងក្រោមដើម្បីបន្ថែមឧបករណ៍ ESP-IDF ទៅ PATH ។ នៅក្នុងប្រអប់បញ្ចូលពាក្យបញ្ជាដែលអ្នកត្រូវប្រើ ESP-IDF សូមប្តូរទៅថតដែល ESP-IDF ត្រូវបានដំឡើង បន្ទាប់មកប្រតិបត្តិ export.bat៖
cd %userprofile%espesp-idf export.bat
ជាជម្រើសនៅក្នុង Powershell ដែលអ្នកត្រូវប្រើ ESP-IDF ប្តូរទៅថតដែល ESP-IDF ត្រូវបានដំឡើង បន្ទាប់មកប្រតិបត្តិ export.ps1៖
cd ~/esp/esp-idf export.ps1
នៅពេលវារួចរាល់ ឧបករណ៍នឹងមាននៅក្នុងប្រអប់បញ្ចូលពាក្យបញ្ជានេះ។
បង្កើតការតភ្ជាប់សៀរៀលជាមួយ ESP32 ផ្នែកនេះផ្តល់នូវការណែនាំអំពីរបៀបបង្កើតការតភ្ជាប់សៀរៀលរវាង ESP32 និងកុំព្យូទ័រ។

ប្រព័ន្ធ Espressif

24 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ភ្ជាប់ ESP32 ទៅកុំព្យូទ័រ ភ្ជាប់បន្ទះ ESP32 ទៅកុំព្យូទ័រដោយប្រើខ្សែ USB ។ ប្រសិនបើ​កម្មវិធី​បញ្ជា​ឧបករណ៍​មិន​ដំឡើង​ដោយ​ស្វ័យ​ប្រវត្តិ​ទេ សូម​កំណត់​អត្តសញ្ញាណ​បន្ទះ​សៀគ្វី​បំប្លែង USB ទៅជា​សៀរៀល​នៅលើ​ក្តារ ESP32 របស់អ្នក (ឬ​ឧបករណ៍​បំប្លែង​ខាងក្រៅ) ស្វែងរក​កម្មវិធីបញ្ជា​ក្នុង​អ៊ីនធឺណិត ហើយ​ដំឡើង​ពួកវា។ ខាងក្រោមនេះគឺជាបញ្ជីនៃបន្ទះសៀគ្វីបំប្លែង USB ទៅសៀរៀលដែលបានដំឡើងនៅលើបន្ទះ ESP32 ភាគច្រើនដែលផលិតដោយ Espressif រួមជាមួយនឹងតំណភ្ជាប់ទៅកាន់អ្នកបើកបរ៖
· CP210x: CP210x USB to UART Bridge VCP Drivers · FTDI: FTDI Virtual COM Port Drivers សូមពិនិត្យមើលការណែនាំអ្នកប្រើប្រាស់ក្តារសម្រាប់បន្ទះឈីបបំប្លែង USB ទៅសៀរៀលជាក់លាក់ដែលបានប្រើ។ អ្នកបើកបរខាងលើគឺសម្រាប់ជាឯកសារយោង។ នៅក្រោមកាលៈទេសៈធម្មតា អ្នកបើកបរគួរត្រូវបានរួមបញ្ចូលជាមួយប្រព័ន្ធប្រតិបត្តិការ និងដំឡើងដោយស្វ័យប្រវត្តិនៅពេលភ្ជាប់បន្ទះទៅកុំព្យូទ័រ។
ពិនិត្យច្រកនៅលើ Windows ពិនិត្យបញ្ជីច្រក COM ដែលបានកំណត់នៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍វីនដូ។ ផ្តាច់ ESP32 ហើយភ្ជាប់វាមកវិញ ដើម្បីផ្ទៀងផ្ទាត់ថាច្រកណាដែលបាត់ពីបញ្ជី ហើយបន្ទាប់មកបង្ហាញម្តងទៀត។ រូបខាងក្រោមបង្ហាញពីច្រកសៀរៀលសម្រាប់ ESP32 DevKitC និង ESP32 WROVER KIT

រូបភាពទី 13៖ ស្ពាន USB ទៅ UART នៃ ESP32-DevKitC នៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍វីនដូ

ពិនិត្យច្រកនៅលើលីនុច និង macOS ដើម្បីពិនិត្យមើលឈ្មោះឧបករណ៍សម្រាប់ច្រកសៀរៀលនៃបន្ទះ ESP32 របស់អ្នក (ឬឧបករណ៍បំលែងឧបករណ៍បំប្លែងខាងក្រៅ) ដំណើរការពាក្យបញ្ជានេះពីរដង ទីមួយដោយបិទបន្ទះ / dongle បន្ទាប់មកដោយដោត។ ច្រកដែលលេចឡើងជាលើកទីពីរគឺអ្នកត្រូវការ: លីនុច
ls /dev/tty*
macOS

ប្រព័ន្ធ Espressif

25 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបភាពទី 14៖ ច្រកសៀរៀល USB ពីរនៃ ESP-WROVER-KIT នៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍វីនដូ

ប្រព័ន្ធ Espressif

26 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

ls /dev/cu.* ចំណាំ៖ អ្នកប្រើប្រាស់ macOS៖ ប្រសិនបើអ្នកមិនឃើញច្រកសៀរៀលទេ សូមពិនិត្យមើលថាអ្នកមានកម្មវិធីបញ្ជា USB/serial ត្រូវបានដំឡើងហើយ។ សូមមើលផ្នែកតភ្ជាប់ ESP32 ទៅកាន់កុំព្យូទ័រ សម្រាប់តំណភ្ជាប់ទៅកាន់អ្នកបើកបរ។ សម្រាប់ macOS High Sierra (10.13) អ្នក​ក៏​អាច​ត្រូវ​អនុញ្ញាត​ឱ្យ​កម្មវិធី​បញ្ជា​ផ្ទុក​យ៉ាង​ច្បាស់​ដែរ។ បើកការកំណត់ប្រព័ន្ធ -> សុវត្ថិភាព និងឯកជនភាព -> ទូទៅ ហើយពិនិត្យមើលថាតើមានសារដែលបង្ហាញនៅទីនេះអំពីកម្មវិធី oSystem ពីអ្នកអភិវឌ្ឍន៍ lp ដែលឈ្មោះអ្នកអភិវឌ្ឍន៍គឺ Silicon Labs ឬ FTDI ។

ការបន្ថែមអ្នកប្រើប្រាស់ទៅកាន់ប្រអប់លេខនៅលើលីនុច អ្នកប្រើប្រាស់ដែលបានចូលបច្ចុប្បន្នគួរតែមានការអាន និងសរសេរចូលប្រើច្រកសៀរៀលតាម USB។ នៅលើការចែកចាយលីនុចភាគច្រើន វាត្រូវបានធ្វើដោយបន្ថែមអ្នកប្រើប្រាស់ទៅក្រុមហៅទូរសព្ទដោយប្រើពាក្យបញ្ជាខាងក្រោម៖
sudo usermod -a -G ហៅចេញ $USER
នៅលើ Arch Linux វាត្រូវបានធ្វើដោយបន្ថែមអ្នកប្រើប្រាស់ទៅក្រុម uucp ដោយប្រើពាក្យបញ្ជាខាងក្រោម៖
sudo usermod -a -G uucp $USER
ត្រូវប្រាកដថាអ្នកចូលម្តងទៀត ដើម្បីបើកការអនុញ្ញាតអាន និងសរសេរសម្រាប់ច្រកសៀរៀល។
ផ្ទៀងផ្ទាត់ការតភ្ជាប់សៀរៀល ឥឡូវនេះ ផ្ទៀងផ្ទាត់ថាការតភ្ជាប់សៀរៀលដំណើរការ។ អ្នកអាចធ្វើវាដោយប្រើកម្មវិធីស្ថានីយសៀរៀលដោយពិនិត្យមើលថាតើអ្នកទទួលបានលទ្ធផលណាមួយនៅលើស្ថានីយបន្ទាប់ពីកំណត់ ESP32 ឡើងវិញ។ អត្រា baud កុងសូលលំនាំដើមនៅលើ ESP32 គឺ 115200។
Windows និង Linux នៅក្នុង exampយើងនឹងប្រើ PuTTY SSH Client ដែលមានសម្រាប់ទាំង Windows និង Linux ។ អ្នកអាចប្រើកម្មវិធីសៀរៀលផ្សេងទៀត និងកំណត់ប៉ារ៉ាម៉ែត្រទំនាក់ទំនងដូចខាងក្រោម។ ដំណើរការស្ថានីយ និងកំណត់ច្រកសៀរៀលដែលបានកំណត់។ អត្រា Baud = 115200 (ប្រសិនបើចាំបាច់ សូមប្តូរវាទៅជាអត្រា baud លំនាំដើមនៃបន្ទះឈីបដែលកំពុងប្រើប្រាស់) ប៊ីតទិន្នន័យ = 8 ប៊ីតឈប់ = 1 និង parity = N. ខាងក្រោមគឺជាឧ។ampរូបថតអេក្រង់នៃការកំណត់ច្រក និងប៉ារ៉ាម៉ែត្របញ្ជូនបែបនេះ (ពិពណ៌នាយ៉ាងខ្លីថា 115200-8-1-N) នៅលើ Windows និង Linux ។ សូមចងចាំថាត្រូវជ្រើសរើសច្រកសៀរៀលដូចគ្នាដែលអ្នកបានកំណត់នៅក្នុងជំហានខាងលើ។ បន្ទាប់មកបើកច្រកសៀរៀលនៅក្នុងស្ថានីយ ហើយពិនិត្យមើល ប្រសិនបើអ្នកឃើញកំណត់ហេតុណាមួយដែលបានបោះពុម្ពដោយ ESP32។ មាតិកាកំណត់ហេតុនឹងអាស្រ័យលើកម្មវិធីដែលបានផ្ទុកទៅ ESP32 សូមមើល ឧample លទ្ធផល។
ចំណាំ៖ បិទស្ថានីយសៀរៀល បន្ទាប់ពីផ្ទៀងផ្ទាត់ថាទំនាក់ទំនងកំពុងដំណើរការ។ ប្រសិនបើអ្នករក្សាវគ្គស្ថានីយបើក ច្រកសៀរៀលនឹងមិនអាចចូលដំណើរការបានសម្រាប់ការបង្ហោះកម្មវិធីបង្កប់នៅពេលក្រោយ។

macOS ដើម្បីទុកអោយអ្នកមានបញ្ហាក្នុងការដំឡើងកម្មវិធីស្ថានីយសៀរៀល macOS ផ្តល់នូវពាក្យបញ្ជាអេក្រង់។ · ដូចដែលបានពិភាក្សានៅក្នុង Check port នៅលើ Linux និង macOS សូមដំណើរការ៖

ls /dev/cu.* · អ្នកគួរតែឃើញលទ្ធផលស្រដៀងគ្នា៖

/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART USBtoUART7

/dev/cu.SLAB_

· លទ្ធផលនឹងប្រែប្រួលអាស្រ័យលើប្រភេទ និងចំនួនបន្ទះដែលភ្ជាប់ទៅកុំព្យូទ័ររបស់អ្នក។ បន្ទាប់មកជ្រើសរើសឈ្មោះឧបករណ៍នៃបន្ទះរបស់អ្នក ហើយដំណើរការ (ប្រសិនបើចាំបាច់ ផ្លាស់ប្តូរ o115200pto អត្រា baud លំនាំដើមនៃបន្ទះឈីបដែលកំពុងប្រើ):

screen /dev/cu.device_name 115200 ជំនួស device_name ដោយឈ្មោះដែលបានរកឃើញដំណើរការ ls /dev/cu.* ។

ប្រព័ន្ធ Espressif

27 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបទី 15៖ ការកំណត់ Serial Communication នៅក្នុង PuTTY នៅលើ Windows

ប្រព័ន្ធ Espressif

28 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

រូបទី 16៖ ការកំណត់ Serial Communication នៅក្នុង PuTTY នៅលើ Linux

ប្រព័ន្ធ Espressif

29 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
· អ្វីដែលអ្នកកំពុងស្វែងរកគឺកំណត់ហេតុមួយចំនួនដែលបង្ហាញដោយអេក្រង់។ មាតិកាកំណត់ហេតុនឹងអាស្រ័យលើកម្មវិធីដែលបានផ្ទុកទៅ ESP32 សូមមើល ឧample លទ្ធផល។ ដើម្បីចេញពីសម័យអេក្រង់វាយ Ctrl-A + ។
ចំណាំ៖ កុំភ្លេចចេញពីវគ្គអេក្រង់ បន្ទាប់ពីផ្ទៀងផ្ទាត់ថាទំនាក់ទំនងកំពុងដំណើរការ។ ប្រសិនបើអ្នកបរាជ័យក្នុងការធ្វើវា ហើយគ្រាន់តែបិទបង្អួចស្ថានីយ ច្រកសៀរៀលនឹងមិនអាចចូលដំណើរការបានសម្រាប់ការបង្ហោះកម្មវិធីបង្កប់នៅពេលក្រោយ។
Example លទ្ធផល ឧample log ត្រូវបានបង្ហាញខាងក្រោម។ កំណត់បន្ទះឡើងវិញ ប្រសិនបើអ្នកមិនឃើញអ្វីទាំងអស់។ ets មិថុនា 8 2016 00:22:57
rst: 0x5 (DEEPSLEEP_RESET), boot: 0x13 (SPI_FAST_FLASH_BOOT) និង ថ្ងៃទី 8 ខែមិថុនា ឆ្នាំ 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage bootloader I (45) boot: compile time 18:48:10

ប្រសិនបើអ្នកអាចមើលឃើញលទ្ធផលកំណត់ហេតុដែលអាចអានបាន វាមានន័យថាការភ្ជាប់សៀរៀលកំពុងដំណើរការ ហើយអ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីបន្តការដំឡើង ហើយទីបំផុតការអាប់ឡូតកម្មវិធីទៅ ESP32។
ចំណាំ៖ សម្រាប់ការកំណត់រចនាសម្ព័ន្ធខ្សែភ្លើងច្រកសៀរៀលមួយចំនួន ម្ជុលសៀរៀល RTS & DTR ត្រូវតែបិទនៅក្នុងកម្មវិធីស្ថានីយ មុនពេល ESP32 នឹងចាប់ផ្ដើម និងបង្កើតលទ្ធផលសៀរៀល។ វាអាស្រ័យលើផ្នែករឹងខ្លួនវា ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ភាគច្រើន (រួមទាំងក្តារ Espressif ទាំងអស់) មិនមានបញ្ហានេះទេ។ បញ្ហាកើតឡើងប្រសិនបើ RTS & DTR ត្រូវបានភ្ជាប់ដោយផ្ទាល់ទៅម្ជុល EN & GPIO0 ។ សូមមើលឯកសារ esptool សម្រាប់ព័ត៌មានលម្អិត។
ប្រសិនបើអ្នកមកដល់ទីនេះពីជំហានទី 5។ ជំហានដំបូងនៅលើ ESP-IDF នៅពេលដំឡើង s/w សម្រាប់ការអភិវឌ្ឍន៍ ESP32 បន្ទាប់មកអ្នកអាចបន្តជាមួយជំហានទី 5 ។ ជំហានដំបូងនៅលើ ESP-IDF ។
IDF Monitor IDF Monitor គឺជាកម្មវិធីស្ថានីយសៀរៀលដែលបញ្ជូនទិន្នន័យសៀរៀលទៅ និងពីច្រកសៀរៀលរបស់ឧបករណ៍គោលដៅ។ វាក៏ផ្តល់នូវលក្ខណៈពិសេសមួយចំនួនរបស់ IDF ផងដែរ។ ម៉ូនីទ័រ IDF អាចត្រូវបានចាប់ផ្តើមពីគម្រោង IDF ដោយដំណើរការម៉ូនីទ័រ idf.py ។
ផ្លូវកាត់ក្តារចុច សម្រាប់អន្តរកម្មងាយស្រួលជាមួយ IDF Monitor សូមប្រើផ្លូវកាត់ក្តារចុចដែលបានផ្តល់ឱ្យក្នុងតារាង។

ប្រព័ន្ធ Espressif

30 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

ផ្លូវកាត់ក្តារចុច Ctrl+] Ctrl+T
· បញ្ជា (Ctrl) + T
· Ctrl+] · Ctrl+P
· បញ្ជា (Ctrl) + R
· បញ្ជា (Ctrl) + F
· បញ្ជា (Ctrl) + A (ឬ A)
· បញ្ជា (Ctrl) + អ៊ី
· បញ្ជា(Ctrl)+អិល
· បញ្ជា (Ctrl) + ខ្ញុំ (ឬខ្ញុំ)
· បញ្ជា (Ctrl) + H (ឬ H)
· បញ្ជា (Ctrl) + X (ឬ X)
បញ្ជា(Ctrl)+C

សកម្មភាព

ការពិពណ៌នា

ចេញពីកម្មវិធី Menu Escape key ផ្ញើតួអក្សរម៉ឺនុយខ្លួនឯងទៅពីចម្ងាយ
ផ្ញើតួអក្សរចេញដោយខ្លួនឯងទៅឧបករណ៍បញ្ជាពីចម្ងាយ
កំណត់គោលដៅឡើងវិញចូលទៅក្នុងកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធដើម្បីផ្អាកកម្មវិធីតាមរយៈបន្ទាត់ RTS
កំណត់បន្ទះគោលដៅឡើងវិញតាមរយៈ RTS
បង្កើតនិងបញ្ចេញគម្រោង

បង្កើត និងបញ្ចេញកម្មវិធីតែប៉ុណ្ណោះ

បញ្ឈប់/បន្តការបោះពុម្ពលទ្ធផលកំណត់ហេតុនៅលើអេក្រង់

បញ្ឈប់/បន្តលទ្ធផលកំណត់ហេតុដែលបានរក្សាទុកទៅ file

ឈប់ / បន្តពេលវេលាamps

ការបោះពុម្ព

បង្ហាញផ្លូវកាត់ក្តារចុចទាំងអស់។

ចុច​ហើយ​ធ្វើ​តាម​វា​ដោយ​គ្រាប់ចុច​មួយ​ដែល​បាន​ផ្ដល់​ឱ្យ​ខាងក្រោម។
កំណត់គោលដៅឡើងវិញចូលទៅក្នុងកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធតាមរយៈបន្ទាត់ RTS (ប្រសិនបើបានភ្ជាប់) ដូច្នេះបន្ទះមិនដំណើរការទេ។ មានប្រយោជន៍នៅពេលដែលអ្នកត្រូវការរង់ចាំឧបករណ៍ផ្សេងទៀតដើម្បីចាប់ផ្តើម។ កំណត់បន្ទះគោលដៅឡើងវិញ ហើយចាប់ផ្តើមកម្មវិធីឡើងវិញតាមរយៈបន្ទាត់ RTS (ប្រសិនបើបានភ្ជាប់)។
ផ្អាក idf_monitor ដើម្បីដំណើរការគម្រោង flash target បន្ទាប់មកបន្ត idf_monitor។ ប្រភពដែលបានផ្លាស់ប្តូរណាមួយ។ files ត្រូវបានចងក្រងឡើងវិញ ហើយបន្ទាប់មកបញ្ចេញពន្លឺឡើងវិញ។ គោលដៅដែលបានអ៊ិនគ្រីប-flash ត្រូវបានដំណើរការប្រសិនបើ idf_monitor ត្រូវបានចាប់ផ្តើមដោយអាគុយម៉ង់ -E ។ ផ្អាក idf_monitor ដើម្បីដំណើរការ app-flash target បន្ទាប់មកបន្ត idf_monitor ។ ស្រដៀងទៅនឹង Flash target ប៉ុន្តែមានតែកម្មវិធីសំខាន់ប៉ុណ្ណោះដែលត្រូវបានបង្កើតឡើង និងបញ្ចេញពន្លឺឡើងវិញ។ គោលដៅដែលបានអ៊ិនគ្រីប-app-flash ត្រូវបានដំណើរការប្រសិនបើ idf_monitor ត្រូវបានចាប់ផ្តើមដោយអាគុយម៉ង់ -E ។ បោះបង់​ទិន្នន័យ​សៀរៀល​ចូល​ទាំងអស់​ពេល​បើកដំណើរការ។ អនុញ្ញាតឱ្យផ្អាក និងពិនិត្យមើលលទ្ធផលនៃកំណត់ហេតុយ៉ាងឆាប់រហ័ស ដោយមិនចាំបាច់ចេញពីម៉ូនីទ័រ។ បង្កើត ក file នៅក្នុងថតគម្រោង ហើយលទ្ធផលត្រូវបានសរសេរទៅនោះ។ file រហូតដល់វាត្រូវបានបិទដោយប្រើផ្លូវកាត់ក្តារចុចដូចគ្នា (ឬ IDF Monitor ចាកចេញ) ។ IDF Monitor អាចបោះពុម្ពពេលវេលាamp នៅដើមបន្ទាត់នីមួយៗ។ ពេលវេលាបំផុត។amp ទម្រង់អាចត្រូវបានផ្លាស់ប្តូរដោយ -timestamp- ធ្វើទ្រង់ទ្រាយអាគុយម៉ង់បន្ទាត់ពាក្យបញ្ជា។

ចេញពីកម្មវិធី

រំខានកម្មវិធីដែលកំពុងដំណើរការ

ផ្អាក IDF Monitor ហើយដំណើរការកម្មវិធីបំបាត់កំហុសគម្រោង GDB ដើម្បីបំបាត់កំហុសកម្មវិធីនៅពេលដំណើរការ។ វាទាមទារជម្រើស :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME ដើម្បីបើកដំណើរការ។

រាល់គ្រាប់ចុចដែលបានចុច ក្រៅពី Ctrl-] និង Ctrl-T នឹងត្រូវបានផ្ញើតាមច្រកសៀរៀល។

លក្ខណៈ​ពិសេស​របស់ IDF

ការឌិកូដអាសយដ្ឋានដោយស្វ័យប្រវត្តិ នៅពេលណាដែល ESP-IDF បញ្ចេញអាសយដ្ឋានកូដគោលដប់ប្រាំមួយនៃទម្រង់ 0x4____ IDF Monitor ប្រើ addr2line_ ដើម្បីរកមើលទីតាំងនៅក្នុងកូដប្រភព និងស្វែងរកឈ្មោះមុខងារ។
ប្រសិនបើកម្មវិធី ESP-IDF គាំង និងភ័យស្លន់ស្លោ ការចុះឈ្មោះបោះចោល និងដានខាងក្រោយត្រូវបានផលិតដូចជា៖

ប្រព័ន្ធ Espressif

31 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

Guru Meditation កំហុសនៃប្រភេទ StoreProhibited បានកើតឡើងនៅលើស្នូល 0. ករណីលើកលែងគឺ

មិនបានគ្រប់គ្រង។

ចុះឈ្មោះបោះចោល៖

PC

: 0x400f360d PS

: 0x00060330 A0

៖ 0x800dbf56 A1

:

0x3ffb7e00

A2

៖ 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

ក៣១

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

ក៣១

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 លេស៖

0x0000001 ឃ

EXCVADDR៖ 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90

IDF Monitor បន្ថែមព័ត៌មានលម្អិតបន្ថែមទៅកន្លែងចាក់សំរាម៖

Guru Meditation កំហុសនៃប្រភេទ StoreProhibited បានកើតឡើងនៅលើស្នូល 0. ករណីលើកលែងគឺ

មិនបានគ្រប់គ្រង។

ចុះឈ្មោះបោះចោល៖

PC

: 0x400f360d PS

: 0x00060330 A0

៖ 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d៖ do_something_to_crash នៅ /home/gus/esp/32/idf/examples/get-started/

hello_world/main/./hello_world_main.c:57

(បញ្ចូលដោយ) inner_dont_crash នៅ /home/gus/esp/32/idf/examples/get-started/hello_

world/main/./hello_world_main.c:52

A2

៖ 0x3ffb136c A3

: 0x00000005 A4

: 0x00000000 A5

:

0x00000000

A6

: 0x00000000 A7

: 0x00000080 A8

: 0x00000000 A9

:

0x3ffb7dd0

ក៣១

: 0x00000003 A11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

ក៣១

: 0x00000047 A15

: 0x0000000f SAR

: 0x00000019 លេស៖

0x0000001 ឃ

EXCVADDR៖ 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (បញ្ចូលដោយ) inner_dont_crash នៅ /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main នៅ /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task at /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

ដើម្បីឌិកូដអាសយដ្ឋាននីមួយៗ IDF Monitor ដំណើរការពាក្យបញ្ជាខាងក្រោមនៅក្នុងផ្ទៃខាងក្រោយ៖ xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

ចំណាំ៖ កំណត់អថេរបរិស្ថាន ESP_MONITOR_DECODE ទៅ 0 ឬហៅទៅ idf_monitor.py ជាមួយបន្ទាត់ពាក្យបញ្ជាជាក់លាក់

ប្រព័ន្ធ Espressif

32 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ជម្រើស៖ idf_monitor.py –disable-address-decoding ដើម្បីបិទការឌិកូដអាសយដ្ឋាន។
កំណត់គោលដៅឡើងវិញនៅលើការតភ្ជាប់តាមលំនាំដើម IDF Monitor នឹងកំណត់គោលដៅឡើងវិញនៅពេលភ្ជាប់ទៅវា។ ការកំណត់ឡើងវិញនៃបន្ទះឈីបគោលដៅត្រូវបានអនុវត្តដោយប្រើបន្ទាត់សៀរៀល DTR និង RTS ។ ដើម្បីការពារ IDF Monitor ពីការកំណត់ឡើងវិញដោយស្វ័យប្រវត្តិលើការភ្ជាប់ សូមទូរស័ព្ទទៅ IDF Monitor ដោយប្រើជម្រើស –no-reset (ឧ. idf_monitor.py –no-reset)។
ចំណាំ៖ ជម្រើស –no-reset អនុវត្តដូចគ្នា សូម្បីតែនៅពេលភ្ជាប់ IDF Monitor ទៅច្រកជាក់លាក់មួយ (ឧទាហរណ៍ idf.py monitor –no-reset -p [PORT])។
ការបើកដំណើរការ GDB ជាមួយ GDBStub GDBStub គឺជាមុខងារបំបាត់កំហុសពេលដំណើរការដ៏មានប្រយោជន៍ដែលដំណើរការលើគោលដៅ ហើយភ្ជាប់ទៅម៉ាស៊ីននៅលើច្រកសៀរៀល ដើម្បីទទួលពាក្យបញ្ជាបំបាត់កំហុស។ GDBStub គាំទ្រពាក្យបញ្ជាដូចជាការអានអង្គចងចាំ និងអថេរ ពិនិត្យមើលស៊ុមជង់ការហៅ។TAG ការកែកំហុស វាមិនតម្រូវឱ្យមានផ្នែករឹងពិសេសណាមួយ (ដូចជា JTAG ទៅស្ពាន USB) ដូចដែលការទំនាក់ទំនងត្រូវបានធ្វើទាំងស្រុងនៅលើច្រកសៀរៀល។ គោលដៅអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីដំណើរការ GDBStub ក្នុងផ្ទៃខាងក្រោយដោយកំណត់ CONFIG_ESP_SYSTEM_PANIC ទៅ GDBStub នៅលើពេលដំណើរការ។ GDBStub នឹងដំណើរការក្នុងផ្ទៃខាងក្រោយរហូតដល់សារ Ctrl+C ត្រូវបានផ្ញើនៅលើច្រកសៀរៀល ហើយបណ្តាលឱ្យ GDBStub ខូច (ឧទាហរណ៍ បញ្ឈប់ការប្រតិបត្តិ) កម្មវិធី ដូច្នេះអនុញ្ញាតឱ្យ GDBStub ដោះស្រាយពាក្យបញ្ជាបំបាត់កំហុស។ លើសពីនេះ ឧបករណ៍ដោះស្រាយការភ័យស្លន់ស្លោអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីដំណើរការ GDBStub នៅពេលគាំងដោយកំណត់ CONFIG_ESP_SYSTEM_PANIC ទៅ GDBStub ដោយភ័យស្លន់ស្លោ។ នៅពេលដែលគាំងកើតឡើង GDBStub នឹងបញ្ចេញលំនាំខ្សែពិសេសនៅលើច្រកសៀរៀល ដើម្បីបង្ហាញថាវាកំពុងដំណើរការ។ ក្នុងករណីទាំងពីរ (ឧទាហរណ៍ ការផ្ញើសារ Ctrl+C ឬទទួលលំនាំខ្សែអក្សរពិសេស) IDF Monitor នឹងបើកដំណើរការ GDB ដោយស្វ័យប្រវត្តិ ដើម្បីអនុញ្ញាតឱ្យអ្នកប្រើផ្ញើពាក្យបញ្ជាបំបាត់កំហុស។ បន្ទាប់ពី GDB ចាកចេញ គោលដៅត្រូវបានកំណត់ឡើងវិញតាមរយៈបន្ទាត់សៀរៀល RTS ។ ប្រសិនបើខ្សែនេះមិនត្រូវបានភ្ជាប់ទេ អ្នកប្រើប្រាស់អាចកំណត់គោលដៅរបស់ពួកគេឡើងវិញ (ដោយចុចប៊ូតុងកំណត់ឡើងវិញ)។
ចំណាំ៖ នៅក្នុងផ្ទៃខាងក្រោយ IDF Monitor ដំណើរការពាក្យបញ្ជាខាងក្រោមដើម្បីបើកដំណើរការ GDB៖
xtensa-esp32-elf-gdb -ex "កំណត់ស៊េរី baud BAUD" -ex "target remote PORT" -ex interrupt build/PROJECT.elf :idf_target:`Hello NAME chip`

តម្រងទិន្នផល ម៉ូនីទ័រ IDF អាចត្រូវបានហៅជាម៉ូនីទ័រ idf.py –print-filter=”xyz” ដែល –print-filter គឺជាប៉ារ៉ាម៉ែត្រសម្រាប់តម្រងលទ្ធផល។ តម្លៃលំនាំដើមគឺជាខ្សែអក្សរទទេ ដែលមានន័យថាអ្វីៗទាំងអស់ត្រូវបានបោះពុម្ព។
ការរឹតបន្តឹងលើអ្វីដែលត្រូវបោះពុម្ពអាចត្រូវបានបញ្ជាក់ជាស៊េរីtag>: ធាតុនៅកន្លែងណាtag> គឺ tag ខ្សែអក្សរនិង គឺជាតួអក្សរពីសំណុំ {N, E, W, I, D, V, *} សំដៅទៅលើកម្រិតសម្រាប់ការកត់ត្រា។
សម្រាប់អតីតample, PRINT_FILTER=”tag1:W” ត្រូវគ្នានិងបោះពុម្ពតែលទ្ធផលដែលសរសេរដោយ ESP_LOGW(“tag1”, …) ឬនៅកម្រិតពាក្យសំដីទាប ពោលគឺ ESP_LOGE(“tag1″, …) មិនបញ្ជាក់ ក ឬប្រើ * លំនាំដើមទៅកម្រិត Verbose ។
ចំណាំ៖ ប្រើការកត់ត្រាបឋមដើម្បីបិទការចងក្រងលទ្ធផលដែលអ្នកមិនត្រូវការតាមរយៈបណ្ណាល័យកត់ត្រា។ ការច្រោះលទ្ធផលជាមួយម៉ូនីទ័រ IDF គឺជាដំណោះស្រាយបន្ទាប់បន្សំដែលអាចមានប្រយោជន៍សម្រាប់ការកែតម្រូវជម្រើសតម្រងដោយមិនចងក្រងកម្មវិធីឡើងវិញ។
កម្មវិធីរបស់អ្នក។ tags មិន​ត្រូវ​មាន​ដកឃ្លា សញ្ញា​ផ្កាយ * ឬ​សញ្ញា​សម្គាល់៖ ដើម្បី​ឱ្យ​ត្រូវ​គ្នា​ជាមួយ​នឹង​មុខងារ​ច្រោះ​លទ្ធផល។
ប្រសិនបើបន្ទាត់ចុងក្រោយនៃលទ្ធផលនៅក្នុងកម្មវិធីរបស់អ្នកមិនត្រូវបានតាមដានដោយការបញ្ជូនត្រឡប់មកវិញទេ ការច្រោះលទ្ធផលអាចនឹងមានការភ័ន្តច្រឡំ ពោលគឺ ម៉ូនីទ័រចាប់ផ្តើមបោះពុម្ពបន្ទាត់ ហើយក្រោយមករកឃើញថាបន្ទាត់មិនគួរត្រូវបានសរសេរ។ នេះគឺជាបញ្ហាដែលគេស្គាល់ ហើយអាចជៀសវាងបានដោយតែងតែបន្ថែមការបញ្ជូនត្រលប់មកវិញ (ជាពិសេសនៅពេលដែលមិនមានលទ្ធផលភ្លាមៗបន្ទាប់ពីនោះ)។

ប្រព័ន្ធ Espressif

33 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
Examples នៃច្បាប់តម្រង៖
· * អាចត្រូវបានប្រើដើម្បីផ្គូផ្គងណាមួយ។ tags. ទោះយ៉ាងណាក៏ដោយ ខ្សែអក្សរ PRINT_FILTER=”*:I tag1: E” ទាក់ទងនឹង tag1 កំហុសបោះពុម្ពតែប៉ុណ្ណោះ ពីព្រោះច្បាប់សម្រាប់ tag1 មានអាទិភាពខ្ពស់ជាងច្បាប់សម្រាប់ * .
· ច្បាប់លំនាំដើម (ទទេ) គឺស្មើនឹង *:V ព្រោះត្រូវគ្នានឹងរាល់ tag នៅកម្រិត Verbose ឬទាបជាងមានន័យថាត្រូវគ្នានឹងអ្វីៗទាំងអស់។
· “*:N” រារាំងមិនត្រឹមតែលទ្ធផលពីមុខងារកត់ត្រាប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងបោះពុម្ពដែលធ្វើឡើងដោយ printf ជាដើម។ ដើម្បីជៀសវាងបញ្ហានេះ សូមប្រើ *:E ឬកម្រិតពាក្យសំដីខ្ពស់ជាង។
· ច្បាប់ "tag1:V", "tag1:v", "tag១៖”,“tag1:*” និង “tag1” គឺសមមូល។ · ច្បាប់ “tag១៖ វ tag1: E” ស្មើនឹង “tag1: E” ដោយសារតែការកើតឡើងនៃលទ្ធផលដូចគ្នា។ tag
ឈ្មោះសរសេរជាន់ពីលើមុន។ · ច្បាប់ "tag1: I tag2: W” បោះពុម្ពតែប៉ុណ្ណោះ tag1 នៅកម្រិត Info verbosity ឬទាបជាង និង tag2 នៅការព្រមាន
កម្រិតនៃពាក្យសំដីឬទាបជាង។ · ច្បាប់ "tag1: I tag១៖ វ tag3: N” គឺសំខាន់ស្មើនឹងលេខមុន ពីព្រោះ tag3: N បញ្ជាក់
នោះ។ tag3 មិនគួរត្រូវបានបោះពុម្ពទេ។ · tag3: N នៅក្នុងច្បាប់ "tag1: I tag១៖ វ tag3: N *:V” មានន័យជាងព្រោះគ្មាន tag៣៖ ន
tag3 សារអាចត្រូវបានបោះពុម្ព; កំហុសសម្រាប់ tag1 និង tag2 នឹងត្រូវបានបោះពុម្ពនៅកម្រិត verbosity ដែលបានបញ្ជាក់ (ឬទាបជាង) ហើយអ្វីៗផ្សេងទៀតនឹងត្រូវបានបោះពុម្ពតាមលំនាំដើម។
តម្រងដ៏ស្មុគស្មាញបន្ថែម ឧample កំណាត់កំណត់ហេតុខាងក្រោមត្រូវបានទទួលដោយគ្មានជម្រើសតម្រងណាមួយឡើយ៖
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: image at 0x30000 has invalid magic byte W (31) esp_image: image at 0x30000 has invalid SPI mode 255 Ebootable part: noty Factory (39) (568) cpu_start៖ គាំទ្រ cpu ឡើង។ ខ្ញុំ (569) heap_init៖ ការចាប់ផ្តើម។ RAM មានសម្រាប់ការបែងចែកថាមវន្ត៖ I (603) cpu_start: Pro cpu start user code D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range ជោគជ័យសម្រាប់ជួរ <54; 64) និង VFS ID 1 I (328) wifi: wifi driver task task: 3ffdbf84, prio:23, stack:4096, core=0
លទ្ធផលដែលបានចាប់យកសម្រាប់ជម្រើសតម្រង PRINT_FILTER=”wifi esp_image:E light_driver:I” ត្រូវបានផ្តល់ឱ្យខាងក្រោម៖
E (31) esp_image៖ រូបភាពនៅ 0x30000 មាន magic byte I (328) wifi មិនត្រឹមត្រូវ៖ ភារកិច្ចកម្មវិធីបញ្ជា wifi៖ 3ffdbf84, prio:23, stack:4096, core=0
ជម្រើស “PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” បង្ហាញលទ្ធផលដូចខាងក្រោម៖
ផ្ទុក៖ 0x40078000, len: 13564 ធាតុ 0x40078d4c I (569) heap_init៖ ការចាប់ផ្តើម។ RAM មានសម្រាប់ការបែងចែកថាមវន្ត៖ D (309) light_driver: [light_init, 74]: ស្ថានភាព៖ 1, របៀប៖ 2
បញ្ហាដែលគេស្គាល់ជាមួយ IDF Monitor
បញ្ហាដែលបានសង្កេតនៅលើវីនដូ
· គ្រាប់ចុចព្រួញ ក៏ដូចជាគ្រាប់ចុចផ្សេងទៀតមួយចំនួនមិនដំណើរការនៅក្នុង GDB ដោយសារតែការកំណត់ Windows Console ។ · ម្តងម្កាល នៅពេលដែល oidf.pypexits វាអាចជាប់គាំងរហូតដល់ 30 វិនាទី មុនពេល IDF Monitor បន្ត។ · នៅពេលដែល ogdbpis ដំណើរការ វាអាចនឹងជាប់គាំងក្នុងរយៈពេលខ្លីមួយ មុនពេលវាចាប់ផ្តើមទំនាក់ទំនងជាមួយ GDBStub ។

ប្រព័ន្ធ Espressif

34 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើមការដំឡើង Standard Toolchain សម្រាប់ Linux និង macOS

ការដំឡើងជាជំហាន ៗ នេះគឺជាផែនទីបង្ហាញផ្លូវលម្អិតដើម្បីនាំអ្នកឆ្លងកាត់ដំណើរការដំឡើង។
ការដំឡើងបរិស្ថានអភិវឌ្ឍន៍ ទាំងនេះគឺជាជំហានសម្រាប់ការដំឡើង ESP-IDF សម្រាប់ ESP32 របស់អ្នក។ · ជំហានទី 1. ដំឡើងតម្រូវការជាមុន · ជំហានទី 2. ទទួលបាន ESP-IDF · ជំហានទី 3. ដំឡើងឧបករណ៍ · ជំហានទី 4. ដំឡើងអថេរបរិស្ថាន · ជំហានទី 5. ជំហានដំបូងនៅលើ ESP-IDF
ជំហានទី 1. ដំឡើងតម្រូវការជាមុន ដើម្បីប្រើ ESP-IDF ជាមួយ ESP32 អ្នកត្រូវដំឡើងកញ្ចប់កម្មវិធីមួយចំនួនដោយផ្អែកលើប្រព័ន្ធប្រតិបត្តិការរបស់អ្នក។ ការណែនាំអំពីការដំឡើងនេះនឹងជួយអ្នកក្នុងការទទួលបានអ្វីគ្រប់យ៉ាងដែលបានដំឡើងនៅលើប្រព័ន្ធ Linux និង macOS ។
សម្រាប់អ្នកប្រើប្រាស់លីនុច ដើម្បីចងក្រងដោយប្រើ ESP-IDF អ្នកនឹងត្រូវទទួលបានកញ្ចប់ដូចខាងក្រោម។ ពាក្យបញ្ជាដែលត្រូវដំណើរការអាស្រ័យលើការចែកចាយលីនុចដែលអ្នកកំពុងប្រើ៖
· Ubuntu និង Debian៖ sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 & 8៖ sudo yum -y អាប់ដេត && sudo yum ដំឡើង git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 នៅតែត្រូវបានគាំទ្រ ប៉ុន្តែ CentOS កំណែ 8 ត្រូវបានណែនាំសម្រាប់បទពិសោធន៍អ្នកប្រើប្រាស់កាន់តែប្រសើរ។ · Arch: sudo pacman -S -needed gcc git បង្កើត flex bison gperf python cmake ninja ccache dfu-util libusb
ចំណាំ៖ · CMake កំណែ 3.16 ឬថ្មីជាងនេះគឺត្រូវបានទាមទារសម្រាប់ប្រើជាមួយ ESP-IDF ។ ដំណើរការ otools/idf_tools.py ដំឡើង cmakepto ដំឡើងកំណែសមរម្យ ប្រសិនបើកំណែ OS របស់អ្នកមិនមានមួយ។ · ប្រសិនបើអ្នកមិនឃើញការចែកចាយលីនុចរបស់អ្នកនៅក្នុងបញ្ជីខាងលើទេ សូមពិនិត្យមើលឯកសាររបស់វា ដើម្បីរកមើលពាក្យបញ្ជាណាដែលត្រូវប្រើសម្រាប់ការដំឡើងកញ្ចប់។
សម្រាប់អ្នកប្រើប្រាស់ macOS ESP-IDF នឹងប្រើកំណែរបស់ Python ដែលបានដំឡើងតាមលំនាំដើមនៅលើ macOS។ · ដំឡើង CMake & Ninja build៖ ប្រសិនបើអ្នកមាន HomeBrew អ្នកអាចដំណើរការ៖ brew install cmake ninja dfu-util ប្រសិនបើអ្នកមាន MacPorts អ្នកអាចដំណើរការ៖ sudo port install cmake ninja dfu-util បើមិនដូច្នេះទេ សូមពិគ្រោះជាមួយ CMake និង Ninja home pages សម្រាប់ការទាញយកការដំឡើង macOS ។

ប្រព័ន្ធ Espressif

35 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
· វាត្រូវបានផ្ដល់អនុសាសន៍យ៉ាងខ្លាំងឱ្យដំឡើង ccache ផងដែរសម្រាប់ការកសាងលឿនជាងមុន។ ប្រសិនបើអ្នកមាន HomeBrew នេះអាចត្រូវបានធ្វើតាមរយៈ brew install ccache ឬ sudo port install ccache នៅលើ MacPorts ។
ចំណាំ៖ ប្រសិនបើកំហុសដូចនេះត្រូវបានបង្ហាញក្នុងដំណាក់កាលណាមួយ៖ xcrun៖ កំហុស៖ ផ្លូវអ្នកអភិវឌ្ឍន៍សកម្មមិនត្រឹមត្រូវ (/Library/Developer/CommandLineTools) បាត់ xcrun នៅ៖ /Library/Developer/CommandLineTools/usr/bin/xcrun
បន្ទាប់មកអ្នកនឹងត្រូវដំឡើងឧបករណ៍បន្ទាត់ពាក្យបញ្ជា XCode ដើម្បីបន្ត។ អ្នកអាចដំឡើងវាដោយដំណើរការ xcode-select –install ។
អ្នកប្រើប្រាស់ Apple M1 ប្រសិនបើអ្នកប្រើវេទិកា Apple M1 ហើយឃើញកំហុសដូចនេះ៖ ការព្រមាន៖ ថតសម្រាប់ឧបករណ៍ xtensa-esp32-elf កំណែ esp-2021r2-patch3-8.4.0 មានវត្តមាន ប៉ុន្តែឧបករណ៍មិនត្រូវបានរកឃើញកំហុស៖ ឧបករណ៍ xtensa-esp32-elf មិនមានកំណែដែលបានដំឡើងទេ។ សូមដំណើរការ 'install.sh' ដើម្បីដំឡើងវា។
ឬ៖ zsh៖ ប្រភេទស៊ីភីយូមិនល្អក្នុងការប្រតិបត្តិ៖ ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
បន្ទាប់មកអ្នកនឹងត្រូវដំឡើង Apple Rosetta 2 ដោយដំណើរការ /usr/sbin/softwareupdate –install-rosetta –agree-to-license
ការដំឡើង Python 3 ដោយផ្អែកលើកំណត់ចំណាំចេញផ្សាយរបស់ macOS Catalina 10.15 ការប្រើប្រាស់ Python 2.7 មិនត្រូវបានណែនាំទេ ហើយ Python 2.7 នឹងមិនត្រូវបានរួមបញ្ចូលតាមលំនាំដើមនៅក្នុងកំណែអនាគតរបស់ macOS ទេ។ ពិនិត្យមើលអ្វីដែល Python ដែលអ្នកមាននាពេលបច្ចុប្បន្ននេះ៖ python –version
ប្រសិនបើលទ្ធផលគឺដូច Python 2.7.17 អ្នកបកប្រែលំនាំដើមរបស់អ្នកគឺ Python 2.7 ។ បើដូច្នេះ សូមពិនិត្យមើលផងដែរថាតើ Python 3 មិនត្រូវបានដំឡើងរួចហើយនៅលើកុំព្យូទ័ររបស់អ្នកទេ៖ python3 –version
ប្រសិនបើពាក្យបញ្ជាខាងលើត្រឡប់កំហុស វាមានន័យថា Python 3 មិនត្រូវបានដំឡើងទេ។ ខាងក្រោមគឺចប់ហើយ។view ជំហាននៃការដំឡើង Python 3.
· ការដំឡើងជាមួយ HomeBrew អាចធ្វើបានដូចខាងក្រោម៖ brew install python3
· ប្រសិនបើអ្នកមាន MacPorts អ្នកអាចដំណើរការ៖ sudo port install python38
ជំហានទី 2. ទទួលបាន ESP-IDF ដើម្បីបង្កើតកម្មវិធីសម្រាប់ ESP32 អ្នកត្រូវការបណ្ណាល័យកម្មវិធីដែលផ្តល់ដោយ Espressif នៅក្នុងឃ្លាំង ESP-IDF ។ ដើម្បីទទួលបាន ESP-IDF សូមចូលទៅកាន់ថតដំឡើងរបស់អ្នក ហើយក្លូនឃ្លាំងដោយប្រើ git clone ដោយធ្វើតាមការណែនាំខាងក្រោមជាក់លាក់ចំពោះប្រព័ន្ធប្រតិបត្តិការរបស់អ្នក។ បើក Terminal ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម៖

ប្រព័ន្ធ Espressif

36 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –recursive https://github.com/espressif/esp-idf.git
ESP-IDF នឹងត្រូវបានទាញយកទៅក្នុង ~/esp/esp-idf ។ ពិគ្រោះជាមួយកំណែ ESP-IDF សម្រាប់ព័ត៌មានអំពីកំណែ ESP-IDF ដែលត្រូវប្រើក្នុងស្ថានភាពដែលបានផ្តល់ឱ្យ។
ជំហានទី 3. ដំឡើងឧបករណ៍ ក្រៅពី ESP-IDF អ្នកក៏ត្រូវដំឡើងឧបករណ៍ដែលប្រើដោយ ESP-IDF ដូចជាកម្មវិធីចងក្រង បំបាត់កំហុស កញ្ចប់ Python ជាដើម សម្រាប់គម្រោងដែលគាំទ្រ ESP32។ ស៊ីឌី ~/esp/esp-idf ./install.sh esp32
ឬជាមួយស៊ីឌីសែលត្រី ~/esp/esp-idf ./install.fish esp32
ពាក្យបញ្ជាខាងលើដំឡើងឧបករណ៍សម្រាប់ ESP32 ប៉ុណ្ណោះ។ ប្រសិនបើអ្នកមានបំណងអភិវឌ្ឍគម្រោងសម្រាប់គោលដៅបន្ទះឈីបបន្ថែមទៀត នោះអ្នកគួរតែរាយបញ្ជីពួកវាទាំងអស់ ហើយដំណើរការសម្រាប់អតីតample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
ឬជាមួយស៊ីឌីសែលត្រី ~/esp/esp-idf ./install.fish esp32,esp32s2
ដើម្បីដំឡើងឧបករណ៍សម្រាប់គោលដៅដែលបានគាំទ្រទាំងអស់ សូមដំណើរការពាក្យបញ្ជាខាងក្រោម៖ cd ~/esp/esp-idf ./install.sh all
ឬជាមួយស៊ីឌីសែលត្រី ~/esp/esp-idf ./install.fish ទាំងអស់។
ចំណាំ៖ សម្រាប់អ្នកប្រើប្រាស់ macOS ប្រសិនបើមានកំហុសដូចនេះត្រូវបានបង្ហាញក្នុងជំហានណាមួយ៖urlបើកកំហុស [SSL: CERTIFICATE_VERIFY_FAILED] ផ្ទៀងផ្ទាត់វិញ្ញាបនបត្របានបរាជ័យ៖ មិនអាចទទួលបានវិញ្ញាបនបត្រអ្នកចេញក្នុងស្រុក (_ssl.c:xxx)
អ្នកអាចដំណើរការដំឡើង Certificate.command នៅក្នុងថត Python នៃកុំព្យូទ័ររបស់អ្នក ដើម្បីដំឡើងវិញ្ញាបនបត្រ។ សម្រាប់ព័ត៌មានលម្អិត សូមមើលកំហុសទាញយកខណៈពេលដំឡើងឧបករណ៍ ESP-IDF ។

ជម្មើសជំនួស File ទាញយក កម្មវិធីដំឡើងឧបករណ៍ទាញយកចំនួននៃ files បានភ្ជាប់ទៅ GitHub Releases ។ ប្រសិនបើការចូលប្រើ GitHub មានភាពយឺតយ៉ាវ នោះវាអាចធ្វើទៅបានដើម្បីកំណត់អថេរបរិស្ថានដើម្បីចូលចិត្តម៉ាស៊ីនមេទាញយក Espressifns សម្រាប់ការទាញយកទ្រព្យសកម្ម GitHub ។

ចំណាំ៖ ការកំណត់នេះគ្រប់គ្រងតែឧបករណ៍នីមួយៗដែលបានទាញយកពីការចេញផ្សាយ GitHub ប៉ុណ្ណោះ វាមិនផ្លាស់ប្តូរទេ។ URLs ប្រើដើម្បីចូលប្រើឃ្លាំង Git ណាមួយ។

ដើម្បីចូលចិត្តម៉ាស៊ីនមេទាញយក Espressif នៅពេលដំឡើងឧបករណ៍ សូមប្រើលំដាប់នៃពាក្យបញ្ជាខាងក្រោមនៅពេលដំណើរការ install.sh៖

ប្រព័ន្ធ Espressif

37 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

cd ~/esp/esp-idf នាំចេញ IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
ការកំណត់ផ្លូវដំឡើងឧបករណ៍តាមបំណង ស្គ្រីបដែលបានណែនាំក្នុងជំហាននេះ ដំឡើងឧបករណ៍ចងក្រងដែលត្រូវការដោយ ESP-IDF នៅខាងក្នុងថតផ្ទះអ្នកប្រើប្រាស់៖ $HOME/.espressif នៅលើលីនុច។ ប្រសិនបើអ្នកចង់ដំឡើងឧបករណ៍ទៅក្នុងថតផ្សេង កំណត់អថេរបរិស្ថាន IDF_TOOLS_PATH មុនពេលដំណើរការស្គ្រីបដំឡើង។ ត្រូវប្រាកដថាគណនីអ្នកប្រើប្រាស់របស់អ្នកមានសិទ្ធិគ្រប់គ្រាន់ក្នុងការអាន និងសរសេរផ្លូវនេះ។ ប្រសិនបើផ្លាស់ប្តូរ IDF_TOOLS_PATH ត្រូវប្រាកដថាវាត្រូវបានកំណត់ទៅតម្លៃដូចគ្នារាល់ពេលដែលដំឡើងស្គ្រីប (ដំឡើង។ bat, install.ps1 ឬ install.sh) និងស្គ្រីបនាំចេញ (export.bat, export.ps1 ឬ export.sh) ត្រូវបានប្រតិបត្តិ។
ជំហានទី 4. ដំឡើងអថេរបរិស្ថាន ឧបករណ៍ដែលបានដំឡើងមិនទាន់ត្រូវបានបន្ថែមទៅអថេរបរិស្ថាន PATH ទេ។ ដើម្បីធ្វើឱ្យឧបករណ៍អាចប្រើប្រាស់បានពីបន្ទាត់ពាក្យបញ្ជា ត្រូវតែកំណត់អថេរបរិស្ថានមួយចំនួន។ ESP-IDF ផ្តល់ស្គ្រីបមួយទៀតដែលធ្វើនោះ។ នៅក្នុងស្ថានីយដែលអ្នកនឹងប្រើ ESP-IDF សូមដំណើរការ៖
. $HOME/esp/esp-idf/export.sh
ឬសម្រាប់ត្រី (គាំទ្រតែតាំងពីកំណែត្រី 3.0.0):
. $HOME/esp/esp-idf/export.fish
ចំណាំចន្លោះរវាងចំនុចនាំមុខ និងផ្លូវ! ប្រសិនបើអ្នកមានគម្រោងប្រើ esp-idf ញឹកញាប់ អ្នកអាចបង្កើតឈ្មោះក្លែងក្លាយសម្រាប់ប្រតិបត្តិ export.sh៖
1. ចម្លង និងបិទភ្ជាប់ពាក្យបញ្ជាខាងក្រោមទៅកាន់ shellns pro របស់អ្នក។file (.profile, .bashrc, .zprofileល។ )
ឈ្មោះក្លែងក្លាយ get_idf='។ $HOME/esp/esp-idf/export.sh' 2. ធ្វើឱ្យការកំណត់រចនាសម្ព័ន្ធឡើងវិញដោយចាប់ផ្តើមវគ្គស្ថានីយឡើងវិញ ឬដោយដំណើរការប្រភព [ផ្លូវទៅកាន់អ្នកជំនាញfile],
សម្រាប់អតីតample, ប្រភព ~/.bashrc. ឥឡូវនេះ អ្នកអាចដំណើរការ get_idf ដើម្បីដំឡើង ឬធ្វើឱ្យបរិស្ថាន esp-idf ឡើងវិញនៅក្នុងវគ្គស្ថានីយណាមួយ។ តាមបច្ចេកទេស អ្នកអាចបន្ថែម export.sh ទៅ shellns pro របស់អ្នក។file ដោយផ្ទាល់; ទោះយ៉ាងណាក៏ដោយ វាមិនត្រូវបានណែនាំទេ។ ការធ្វើដូច្នេះធ្វើឱ្យបរិយាកាសនិម្មិត IDF សកម្មនៅគ្រប់វគ្គស្ថានីយ (រួមទាំងកន្លែងដែល IDF មិនត្រូវការ) ដោយកម្ចាត់គោលបំណងនៃបរិស្ថាននិម្មិត ហើយទំនងជាប៉ះពាល់ដល់កម្មវិធីផ្សេងទៀត។
ជំហានទី 5. ជំហានដំបូងនៅលើ ESP-IDF ឥឡូវនេះ ដោយសារតម្រូវការទាំងអស់ត្រូវបានបំពេញ ប្រធានបទបន្ទាប់នឹងណែនាំអ្នកអំពីរបៀបចាប់ផ្តើមគម្រោងដំបូងរបស់អ្នក។ ការណែនាំនេះនឹងជួយអ្នកក្នុងជំហានដំបូងដោយប្រើ ESP-IDF ។ អនុវត្តតាមការណែនាំនេះ ដើម្បីចាប់ផ្តើមគម្រោងថ្មីនៅលើ ESP32 ហើយបង្កើត បញ្ចេញពន្លឺ និងតាមដានលទ្ធផលឧបករណ៍។
ចំណាំ៖ ប្រសិនបើអ្នកមិនទាន់បានដំឡើង ESP-IDF សូមចូលទៅកាន់ការដំឡើង ហើយធ្វើតាមការណែនាំ ដើម្បីទទួលបានកម្មវិធីទាំងអស់ដែលចាំបាច់សម្រាប់ប្រើការណែនាំនេះ។

ចាប់ផ្តើមគម្រោងឥឡូវនេះ អ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីរៀបចំកម្មវិធីរបស់អ្នកសម្រាប់ ESP32។ អ្នកអាចចាប់ផ្តើមជាមួយគម្រោង getstarted/hello_world ពីអតីតamples directory ក្នុង ESP-IDF ។

សំខាន់៖ ប្រព័ន្ធសាងសង់ ESP-IDF មិនគាំទ្រចន្លោះនៅក្នុងផ្លូវទៅកាន់ ESP-IDF ឬទៅគម្រោងទេ។

ចម្លងគម្រោង get-started/hello_world ទៅថត ~/esp៖

ប្រព័ន្ធ Espressif

38 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world ។
ចំណាំ: មានជួរនៃ example គម្រោងនៅក្នុង examples directory ក្នុង ESP-IDF ។ អ្នកអាចចម្លងគម្រោងណាមួយតាមរបៀបដូចដែលបានបង្ហាញខាងលើ ហើយដំណើរការវា។ វាក៏អាចធ្វើទៅបានដើម្បីកសាង examples in-place ដោយមិនចាំបាច់ចម្លងពួកវាជាមុន។
ភ្ជាប់ឧបករណ៍របស់អ្នកឥឡូវនេះ ភ្ជាប់បន្ទះ ESP32 របស់អ្នកទៅកុំព្យូទ័រ ហើយពិនិត្យមើលថាតើច្រកសៀរៀលណាដែលអាចមើលឃើញ។ ច្រកសៀរៀលមានលំនាំដាក់ឈ្មោះដូចខាងក្រោម៖
· លីនុច៖ ចាប់ផ្តើមជាមួយ /dev/tty · macOS៖ ចាប់ផ្តើមជាមួយ /dev/cu. ប្រសិនបើអ្នកមិនប្រាកដពីរបៀបពិនិត្យមើលឈ្មោះច្រកសៀរៀល សូមយោងទៅ បង្កើតការតភ្ជាប់សៀរៀលជាមួយ ESP32 សម្រាប់ព័ត៌មានលម្អិតពេញលេញ។
ចំណាំ៖ រក្សាឈ្មោះច្រកងាយស្រួល ដូចដែលអ្នកនឹងត្រូវការវាក្នុងជំហានបន្ទាប់។
កំណត់រចនាសម្ព័ន្ធគម្រោងរបស់អ្នក រុករកទៅកាន់ថត hello_world របស់អ្នក កំណត់ ESP32 ជាគោលដៅ ហើយដំណើរការកម្មវិធីកំណត់រចនាសម្ព័ន្ធកម្មវិធី menuconfig ។ cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
បន្ទាប់​ពី​បើក​គម្រោង​ថ្មី​ដំបូង​អ្នក​គួរ​កំណត់​គោលដៅ​ជាមួយ idf.py set-target esp32។ ចំណាំថាការស្ថាបនា និងការកំណត់រចនាសម្ព័ន្ធដែលមានស្រាប់នៅក្នុងគម្រោង ប្រសិនបើមាន នឹងត្រូវបានសម្អាត និងចាប់ផ្តើមនៅក្នុងដំណើរការនេះ។ គោលដៅអាចត្រូវបានរក្សាទុកក្នុងអថេរបរិស្ថាន ដើម្បីរំលងជំហាននេះទាល់តែសោះ។ សូមមើលជ្រើសរើស Target Chip៖ set-target សម្រាប់ព័ត៌មានបន្ថែម។ ប្រសិនបើជំហានមុនត្រូវបានធ្វើបានត្រឹមត្រូវ ម៉ឺនុយខាងក្រោមនឹងលេចឡើង៖

រូបភាពទី 17៖ ការកំណត់រចនាសម្ព័ន្ធគម្រោង – បង្អួចផ្ទះ អ្នកកំពុងប្រើម៉ឺនុយនេះដើម្បីដំឡើងអថេរជាក់លាក់របស់គម្រោង ឧទាហរណ៍ ឈ្មោះបណ្តាញ Wi-Fi និងពាក្យសម្ងាត់ ល្បឿនដំណើរការ។ល។ ការដំឡើងគម្រោងជាមួយ menuconfig អាចត្រូវបានរំលង forohello_worldp ចាប់តាំងពីអតីតampលេរត់ជាមួយ

ប្រព័ន្ធ Espressif

39 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
ការកំណត់រចនាសម្ព័ន្ធលំនាំដើម។
យកចិត្តទុកដាក់៖ ប្រសិនបើអ្នកប្រើក្តារ ESP32-DevKitC ជាមួយម៉ូឌុល ESP32-SOLO-1 ឬក្តារ ESP32-DevKitM-1 ជាមួយម៉ូឌុល ESP32-MIN1-1(1U) សូមបើករបៀបស្នូលតែមួយ (CONFIG_FREERTOS_UNICORE) នៅក្នុង menuconfig មុនពេលបញ្ចេញពន្លឺ examples ។
ចំណាំ៖ ពណ៌នៃម៉ឺនុយអាចខុសគ្នានៅក្នុងស្ថានីយរបស់អ្នក។ អ្នកអាចផ្លាស់ប្តូររូបរាងដោយប្រើជម្រើស -style ។ សូមដំណើរការ idf.py menuconfig –help សម្រាប់ព័ត៌មានបន្ថែម។
ប្រសិនបើអ្នកកំពុងប្រើក្រុមប្រឹក្សាអភិវឌ្ឍន៍ដែលគាំទ្រមួយ អ្នកអាចបង្កើនល្បឿននៃការអភិវឌ្ឍន៍របស់អ្នកដោយប្រើកញ្ចប់ជំនួយក្រុមប្រឹក្សាភិបាល។ សូមមើលការណែនាំបន្ថែម សម្រាប់ព័ត៌មានបន្ថែម។
បង្កើតគម្រោង បង្កើតគម្រោងដោយដំណើរការ៖
idf.py ស្ថាបនា
ពាក្យបញ្ជានេះនឹងចងក្រងកម្មវិធី និងសមាសធាតុ ESP-IDF ទាំងអស់ បន្ទាប់មកវានឹងបង្កើតកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ តារាងភាគថាស និងប្រព័ន្ធគោលពីរកម្មវិធី។
$idf.py build កំពុងដំណើរការ cmake នៅក្នុងថត /path/to/hello_world/build កំពុងប្រតិបត្តិ “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… ព្រមានអំពីតម្លៃដែលមិនទាន់បានកំណត់។ — បានរកឃើញ Git៖ /usr/bin/git (បានរកឃើញកំណែ “2.17.0”) — ការកសាងសមាសភាគ aws_iot ទទេដោយសារតែការកំណត់រចនាសម្ព័ន្ធ — ឈ្មោះសមាសភាគ៖ … — ផ្លូវសមាសភាគ៖ …
… (បន្ទាត់​បន្ថែម​ទៀត​នៃ​លទ្ធផល​ប្រព័ន្ធ​បង្កើត)
[527/527] ការបង្កើត hello_world.bin esptool.py v2.3.1
គម្រោងសាងសង់រួចរាល់។ ដើម្បីបញ្ចេញពន្លឺ សូមដំណើរការពាក្យបញ្ជានេះ៖ ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world។ bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin ឬដំណើរការ 'idf.py -p PORT flash'
ប្រសិនបើគ្មានកំហុសទេ ការស្ថាបនានឹងបញ្ចប់ដោយបង្កើត firmware binary .bin files.
បញ្ចេញពន្លឺនៅលើឧបករណ៍ បញ្ចេញពន្លឺប្រព័ន្ធគោលពីរដែលអ្នកទើបតែបង្កើត (bootloader.bin, partition-table.bin និង hello_world.bin) លើបន្ទះ ESP32 របស់អ្នកដោយដំណើរការ៖
idf.py -p PORT [-b BAUD] ពន្លឺ
ជំនួស PORT ជាមួយឈ្មោះច្រកសៀរៀលក្តារបន្ទះ ESP32 របស់អ្នក។ អ្នកក៏អាចផ្លាស់ប្តូរអត្រា baud flasher ដោយជំនួស BAUD ជាមួយនឹងអត្រា baud ដែលអ្នកត្រូវការ។ អត្រា baud លំនាំដើមគឺ 460800។ សម្រាប់ព័ត៌មានបន្ថែមអំពីអាគុយម៉ង់ idf.py សូមមើល idf.py ។
ចំណាំ៖ ជម្រើសដែល flash បង្កើត និងបញ្ចេញគម្រោងដោយស្វ័យប្រវត្តិ ដូច្នេះការដំណើរការ idf.py build គឺមិនចាំបាច់ទេ។

ប្រព័ន្ធ Espressif

40 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

ជួបប្រទះបញ្ហាក្នុងពេលបញ្ចេញពន្លឺ? ប្រសិនបើអ្នកដំណើរការពាក្យបញ្ជាដែលបានផ្តល់ឱ្យហើយឃើញកំហុសដូចជាsoFailed to connectp វាអាចមានហេតុផលជាច្រើនសម្រាប់បញ្ហានេះ។ មូលហេតុមួយអាចជាបញ្ហាដែលជួបប្រទះដោយ esptool.py ដែលជាឧបករណ៍ប្រើប្រាស់ដែលត្រូវបានហៅដោយប្រព័ន្ធស្ថាបនាដើម្បីកំណត់បន្ទះឈីបឡើងវិញ ធ្វើអន្តរកម្មជាមួយ ROM bootloader និង flash firmware។ ដំណោះស្រាយដ៏សាមញ្ញមួយដែលត្រូវសាកល្បងគឺការកំណត់ឡើងវិញដោយដៃដែលបានពិពណ៌នាខាងក្រោម ហើយប្រសិនបើវាមិនជួយអ្នកអាចស្វែងរកព័ត៌មានលម្អិតបន្ថែមអំពីបញ្ហាដែលអាចកើតមាននៅក្នុងការដោះស្រាយបញ្ហា។
esptool.py កំណត់ ESP32 ឡើងវិញដោយស្វ័យប្រវត្តិដោយអះអាងខ្សែបញ្ជា DTR និង RTS នៃ USB ទៅជាបន្ទះឈីបបំប្លែងសៀរៀល ពោលគឺ FTDI ឬ CP210x (សម្រាប់ព័ត៌មានបន្ថែម សូមមើល បង្កើតការភ្ជាប់សៀរៀលជាមួយ ESP32)។ បន្ទាត់ត្រួតពិនិត្យ DTR និង RTS ត្រូវបានភ្ជាប់ទៅម្ជុល GPIO0 និង CHIP_PU (EN) នៃ ESP32 ដូច្នេះការផ្លាស់ប្តូរនៅក្នុងវ៉ុលtagកម្រិតនៃ DTR និង RTS នឹងចាប់ផ្ដើម ESP32 ចូលទៅក្នុងរបៀបទាញយកកម្មវិធីបង្កប់។ ក្នុងនាមជាអតីតampដូច្នេះ សូមពិនិត្យមើលគ្រោងការណ៍សម្រាប់ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP32 DevKitC ។
ជាទូទៅ អ្នកមិនគួរមានបញ្ហាជាមួយក្រុមប្រឹក្សាអភិវឌ្ឍន៍ esp-idf ផ្លូវការទេ។ ទោះយ៉ាងណាក៏ដោយ esptool.py មិនអាចកំណត់ឡើងវិញនូវផ្នែករឹងរបស់អ្នកដោយស្វ័យប្រវត្តិនៅក្នុងករណីដូចខាងក្រោមនេះទេ៖
· ផ្នែករឹងរបស់អ្នកមិនមានខ្សែ DTR និង RTS ភ្ជាប់ទៅ GPIO0 និង CHIP_PU · បន្ទាត់ DTR និង RTS ត្រូវបានកំណត់រចនាសម្ព័ន្ធខុសគ្នា · មិនមានបន្ទាត់បញ្ជាសៀរៀលបែបនេះទាល់តែសោះ
អាស្រ័យលើប្រភេទនៃផ្នែករឹងដែលអ្នកមាន វាក៏អាចដាក់បន្ទះ ESP32 របស់អ្នកទៅក្នុងរបៀបទាញយកកម្មវិធីបង្កប់ (កំណត់ឡើងវិញ) ផងដែរ។
· សម្រាប់ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ដែលផលិតដោយ Espressif ព័ត៌មាននេះអាចត្រូវបានរកឃើញនៅក្នុងមគ្គុទ្ទេសក៍ចាប់ផ្តើម ឬការណែនាំអ្នកប្រើប្រាស់រៀងៗខ្លួន។ សម្រាប់អតីតampដូច្នេះ ដើម្បីកំណត់ឡើងវិញនូវក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ESP-IDF ដោយដៃ សង្កត់ប៊ូតុងចាប់ផ្ដើម (GPIO0) ហើយចុចប៊ូតុង EN (CHIP_PU) ។
· សម្រាប់ប្រភេទ Hardware ផ្សេងទៀត សូមព្យាយាមទាញ GPIO0 ចុះក្រោម។

ប្រតិបត្តិការធម្មតា នៅពេលបញ្ចេញពន្លឺ អ្នកនឹងឃើញកំណត់ហេតុលទ្ធផលស្រដៀងនឹងខាងក្រោម៖
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition0-table.0xtable. bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Serial port /dev/ttyUSB0 Connecting…….._ Chip គឺ ESP32D0WDQ6 (revision 0) លក្ខណៈពិសេស៖ WiFi, BT, Dual Core, Coding Scheme None MAC: 4 24:0a:c4:05:b9:14 កំពុងបង្ហោះ stub… កំពុងដំណើរការ stub… Stub កំពុងដំណើរការ… ការផ្លាស់ប្តូរអត្រា baud ទៅ 460800 បានផ្លាស់ប្តូរ។ កំពុងកំណត់ទំហំ flash… បានបង្ហាប់ 3072 bytes ទៅ 103… សរសេរនៅ 0x00008000… (100%) សរសេរ 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (មានប្រសិទ្ធិភាព 5962.8 kbit/s verified…) បានបង្ហាប់ 26096 បៃទៅ 15408… សរសេរនៅ 0x00001000… (100%) សរសេរ 26096 បៃ (15408 បានបង្ហាប់) នៅ 0x00001000 ក្នុងរយៈពេល 0.4 វិនាទី (ប្រសិទ្ធភាព 546.7 kbit/s បានផ្ទៀងផ្ទាត់)… បានបង្ហាប់ 147104 បៃទៅ 77364… សរសេរនៅ 0x00010000… (20%) សរសេរនៅ 0x00014000… (40%) សរសេរនៅ 0x00018000… (60%) សរសេរនៅ 0x00018000… (60%)
(បន្តនៅទំព័របន្ទាប់)

ប្រព័ន្ធ Espressif

41 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម

កំពុងចាកចេញ… ការកំណត់ឡើងវិញដោយលំបាកតាមរយៈម្ជុល RTS… រួចរាល់
ប្រសិនបើគ្មានបញ្ហានៅចុងបញ្ចប់នៃដំណើរការ flash នោះ board នឹងចាប់ផ្តើមឡើងវិញ ហើយចាប់ផ្តើម theohello_worldpapplication។ ប្រសិនបើអ្នកចូលចិត្តប្រើ Eclipse ឬ VS Code IDE ជំនួសឱ្យការដំណើរការ idf.py សូមពិនិត្យមើល Eclipse Plugin, VSCode Extension ។
ត្រួតពិនិត្យលទ្ធផល ដើម្បីពិនិត្យមើលថាតើ ohello_worldpis ពិតជាកំពុងដំណើរការមែន វាយ idf.py -p PORT monitor (កុំភ្លេចជំនួស PORT ជាមួយឈ្មោះច្រកសៀរៀលរបស់អ្នក)។ ពាក្យបញ្ជានេះបើកដំណើរការកម្មវិធី IDF Monitor៖
$ idf.py -p ត្រួតពិនិត្យដំណើរការ idf_monitor នៅក្នុងថត […]/esp/hello_world/build កំពុងប្រតិបត្តិ “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor នៅលើ 115200 —– ចេញ៖ Ctrl+] | ម៉ឺនុយ៖ Ctrl+T | ជំនួយ៖ បញ្ជា (Ctrl)+T តាម​ពីក្រោយ​ដោយ Ctrl+H –ets ខែ​មិថុនា 8 2016 00:22:57
rst: 0x1 (POWERON_RESET), boot: 0x13 (SPI_FAST_FLASH_BOOT) និង ថ្ងៃទី 8 ខែមិថុនា ឆ្នាំ 2016 00:22:57 …
បន្ទាប់​ពី​ការ​ចាប់​ផ្តើ​ម​និង​ការ​កំណត់​ហេតុ​រោគ​វិនិច្ឆ័យ​រមូរ​ឡើង​អ្នក​គួរ​តែ​ឃើញ oHello world! pprinted ដោយ​កម្មវិធី​។
… សួស្តីពិភពលោក! ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 10 វិនាទី… នេះគឺជាបន្ទះឈីប esp32 ដែលមានស្នូលស៊ីភីយូ 2, WiFi/BT/BLE, ការកែប្រែស៊ីលីកុន 1, ពន្លឺខាងក្រៅ 2MB ទំហំហ៊ាឥតគិតថ្លៃអប្បបរមា៖ 298968 បៃ ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 9 វិនាទី… ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 8 វិនាទី… ចាប់ផ្តើមឡើងវិញក្នុងរយៈពេល 7 វិនាទី…
ដើម្បីចេញពីម៉ូនីទ័រ IDF ប្រើផ្លូវកាត់ Ctrl+]។ ប្រសិនបើម៉ូនីទ័រ IDF បរាជ័យភ្លាមៗបន្ទាប់ពីការបង្ហោះ ឬប្រសិនបើជំនួសឱ្យសារខាងលើ អ្នកឃើញសំរាមចៃដន្យស្រដៀងនឹងអ្វីដែលត្រូវបានផ្តល់ឱ្យខាងក្រោម នោះក្តាររបស់អ្នកទំនងជាប្រើគ្រីស្តាល់ 26 MHz ។ ការរចនាបន្ទះអភិវឌ្ឍន៍ភាគច្រើនប្រើ 40 MHz ដូច្នេះ ESP-IDF ប្រើប្រេកង់នេះជាតម្លៃលំនាំដើម។

ប្រសិនបើអ្នកមានបញ្ហាបែបនេះ សូមធ្វើដូចខាងក្រោម៖
1. ចេញពីម៉ូនីទ័រ។ 2. ត្រលប់ទៅ menuconfig ។ 3. ចូលទៅកាន់ Component config > Hardware Settings > Main XTAL Config > Main XTAL
ប្រេកង់ បន្ទាប់មកប្តូរ CONFIG_XTAL_FREQ_SEL ទៅ 26 MHz ។ 4. បន្ទាប់ពីនោះ បង្កើត និងបញ្ចេញកម្មវិធីម្តងទៀត។

ប្រព័ន្ធ Espressif

42 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
នៅក្នុងកំណែបច្ចុប្បន្ននៃ ESP-IDF ប្រេកង់ XTAL ចម្បងដែលគាំទ្រដោយ ESP32 មានដូចខាងក្រោម៖
· 26 MHz · 40 MHz
ចំណាំ៖ អ្នកអាចបញ្ចូលគ្នានូវអគារ ពន្លឺ និងការត្រួតពិនិត្យទៅក្នុងជំហានមួយដោយដំណើរការ៖ idf.py -p PORT flash monitor
សូមមើលផងដែរ៖ · IDF Monitor សម្រាប់ផ្លូវកាត់ងាយស្រួល និងព័ត៌មានលម្អិតបន្ថែមអំពីការប្រើប្រាស់ម៉ូនីទ័រ IDF ។ · idf.py សម្រាប់ឯកសារយោងពេញលេញនៃពាក្យបញ្ជា idf.py និងជម្រើស។
នោះជាអ្វីទាំងអស់ដែលអ្នកត្រូវការដើម្បីចាប់ផ្តើមជាមួយ ESP32! ឥឡូវ​នេះ​អ្នក​ត្រៀម​ខ្លួន​ជា​ស្រេច​ដើម្បី​សាកល្បង​អតីត​ផ្សេង​ទៀត។amples ឬទៅត្រង់ដើម្បីអភិវឌ្ឍកម្មវិធីផ្ទាល់ខ្លួនរបស់អ្នក។
សំខាន់: មួយចំនួននៃអតីតamples មិនគាំទ្រ ESP32 ទេ ពីព្រោះផ្នែករឹងដែលត្រូវការមិនត្រូវបានរួមបញ្ចូលនៅក្នុង ESP32 ដូច្នេះវាមិនអាចគាំទ្របានទេ។ ប្រសិនបើសាងសង់អតីតampដូច្នេះ សូមពិនិត្យមើល README file សម្រាប់តារាងគោលដៅដែលបានគាំទ្រ។ ប្រសិនបើវាមានវត្តមានរួមទាំងគោលដៅ ESP32 ឬតារាងមិនមានទាល់តែសោះ ឧample នឹងធ្វើការលើ ESP32។
គន្លឹះបន្ថែម
បញ្ហាការអនុញ្ញាត /dev/ttyUSB0 ជាមួយនឹងការចែកចាយលីនុចមួយចំនួន អ្នកអាចទទួលបានសារកំហុសក្នុងការបើកច្រក /dev/ttyUSB0 នៅពេលបញ្ចេញ ESP32 ។ វាអាចត្រូវបានដោះស្រាយដោយបន្ថែមអ្នកប្រើប្រាស់បច្ចុប្បន្នទៅក្រុមសន្ទនា។
ភាពឆបគ្នារបស់ Python ESP-IDF គាំទ្រ Python 3.7 ឬថ្មីជាងនេះ។ វាត្រូវបានផ្ដល់អនុសាសន៍ឱ្យដំឡើងកំណែប្រព័ន្ធប្រតិបត្តិការរបស់អ្នកទៅជាកំណែថ្មីដែលបំពេញតម្រូវការនេះ។ ជម្រើសផ្សេងទៀតរួមមានការដំឡើង Python ពីប្រភព ឬការប្រើប្រាស់ប្រព័ន្ធគ្រប់គ្រងកំណែ Python ដូចជា pyenv ។
ចាប់ផ្តើមជាមួយនឹងកញ្ចប់ជំនួយក្រុមប្រឹក្សា ដើម្បីបង្កើនល្បឿននៃការបង្កើតគំរូនៅលើក្រុមប្រឹក្សាអភិវឌ្ឍន៍មួយចំនួន អ្នកអាចប្រើកញ្ចប់ជំនួយក្រុមប្រឹក្សាភិបាល (BSPs) ដែលធ្វើឱ្យការចាប់ផ្តើមនៃបន្ទះជាក់លាក់មួយមានភាពងាយស្រួលដូចការហៅមុខងារមួយចំនួន។ ជាធម្មតា BSP គាំទ្រផ្នែករឹងទាំងអស់ដែលមាននៅលើក្រុមប្រឹក្សាភិបាលអភិវឌ្ឍន៍។ ក្រៅពីមុខងារកំណត់និយមន័យ និងការចាប់ផ្តើម BSP ដឹកជញ្ជូនជាមួយកម្មវិធីបញ្ជាសម្រាប់សមាសភាគខាងក្រៅដូចជា ឧបករណ៍ចាប់សញ្ញា ការបង្ហាញ កូឌិកអូឌីយ៉ូ។ Herens អតីតampពីវិធីបន្ថែម ESP-WROVER-KIT BSP ទៅក្នុងគម្រោងរបស់អ្នក៖ idf.py add-dependency esp_wrover_kit
ច្រើនទៀត ឧamples នៃការប្រើប្រាស់ BSP អាចរកបាននៅក្នុង BSP examples folder ។
គន្លឹះ៖ ការធ្វើបច្ចុប្បន្នភាព ESP-IDF វាត្រូវបានណែនាំឱ្យធ្វើបច្ចុប្បន្នភាព ESP-IDF ពីពេលមួយទៅពេលមួយ ដោយសារកំណែថ្មីជាងជួសជុលកំហុស និង/ឬផ្តល់មុខងារថ្មីៗ។ សូមចំណាំថា ESP-IDF នីមួយៗ កំណែចេញផ្សាយធំ និងអនីតិជនមានរយៈពេលគាំទ្រដែលពាក់ព័ន្ធ ហើយនៅពេលដែលសាខាចេញផ្សាយមួយជិតដល់ទីបញ្ចប់នៃជីវិត (EOL) អ្នកប្រើប្រាស់ទាំងអស់ត្រូវបានលើកទឹកចិត្តឱ្យធ្វើឱ្យប្រសើរឡើងនូវគម្រោងរបស់ពួកគេទៅការចេញផ្សាយ ESP-IDF ថ្មីៗបន្ថែមទៀត ដើម្បីស្វែងយល់បន្ថែមអំពីរយៈពេលគាំទ្រ សូមមើលកំណែ ESP-IDF ។

ប្រព័ន្ធ Espressif

43 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 1. ចាប់ផ្តើម
វិធីសាមញ្ញបំផុតដើម្បីធ្វើបច្ចុប្បន្នភាពគឺត្រូវលុបថតឯកសារ esp-idf ដែលមានស្រាប់ ហើយក្លូនវាម្តងទៀត ដូចជាការអនុវត្តការដំឡើងដំបូងដែលបានពិពណ៌នាក្នុងជំហានទី 2។ ទទួលបាន ESP-IDF ។ ដំណោះស្រាយមួយទៀតគឺធ្វើបច្ចុប្បន្នភាពតែអ្វីដែលបានផ្លាស់ប្តូរ។ ដំណើរការអាប់ដេតអាស្រ័យលើកំណែ ESP-IDF ដែលអ្នកកំពុងប្រើ។ បន្ទាប់ពីអាប់ដេត ESP-IDF សូមដំណើរការដំឡើងស្គ្រីបម្តងទៀត ក្នុងករណីដែលកំណែ ESP-IDF ថ្មីទាមទារកំណែឧបករណ៍ផ្សេងៗ។ សូមមើលការណែនាំនៅជំហានទី 3. ដំឡើងឧបករណ៍។ នៅពេលដែលឧបករណ៍ថ្មីត្រូវបានដំឡើង ធ្វើបច្ចុប្បន្នភាពបរិស្ថានដោយប្រើស្គ្រីបនាំចេញ។ សូមមើលការណែនាំនៅជំហានទី 4. រៀបចំអថេរបរិស្ថាន។
ឯកសារពាក់ព័ន្ធ · បង្កើតការតភ្ជាប់សៀរៀលជាមួយ ESP32 · Eclipse Plugin · VSCode Extension · IDF Monitor
1.4 បង្កើតគម្រោងដំបូងរបស់អ្នក។
ប្រសិនបើអ្នកបានដំឡើង ESP-IDF រួចហើយ ហើយមិនប្រើ IDE អ្នកអាចបង្កើតគម្រោងដំបូងរបស់អ្នកពីបន្ទាត់ពាក្យបញ្ជាដែលធ្វើតាម Start a Project នៅលើ Windows ឬ Start a Project នៅលើ Linux និង macOS។
1.5 លុបការដំឡើង ESP-IDF
ប្រសិនបើអ្នកចង់លុប ESP-IDF សូមធ្វើតាម Uninstall ESP-IDF ។

ប្រព័ន្ធ Espressif

44 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 2
ឯកសារយោង API
2.1 អនុសញ្ញា API
ឯកសារនេះពិពណ៌នាអំពីអនុសញ្ញា និងការសន្មត់ទូទៅចំពោះចំណុចប្រទាក់កម្មវិធីកម្មវិធី ESP-IDF (APIs)។ ESP-IDF ផ្តល់នូវចំណុចប្រទាក់សរសេរកម្មវិធីជាច្រើនប្រភេទ៖
· មុខងារ C, រចនាសម្ព័ន្ធ, enums, និយមន័យប្រភេទ និងម៉ាក្រូ preprocessor ដែលបានប្រកាសនៅក្នុងបឋមកថាសាធារណៈ files នៃសមាសធាតុ ESPIDF ។ ទំព័រផ្សេងៗនៅក្នុងផ្នែកយោង API នៃការណែនាំកម្មវិធីមានការពិពណ៌នាអំពីមុខងារ រចនាសម្ព័ន្ធ និងប្រភេទទាំងនេះ។
· បង្កើតមុខងារប្រព័ន្ធ អថេរ និងជម្រើសដែលបានកំណត់ជាមុន។ ទាំងនេះត្រូវបានចងក្រងជាឯកសារនៅក្នុងការណែនាំអំពីប្រព័ន្ធសាងសង់។ · ជម្រើស Kconfig អាច​ត្រូវ​បាន​ប្រើ​ជា​កូដ និង​ក្នុង​ប្រព័ន្ធ​បង្កើត (CMakeLists.txt) fileស. · ឧបករណ៍ម៉ាស៊ីន និងប៉ារ៉ាម៉ែត្របន្ទាត់ពាក្យបញ្ជារបស់ពួកគេក៏ជាផ្នែកនៃចំណុចប្រទាក់ ESP-IDF ផងដែរ។ ESP-IDF មានសមាសធាតុដែលសរសេរជាពិសេសសម្រាប់ ESP-IDF ក៏ដូចជាបណ្ណាល័យភាគីទីបី។ ក្នុងករណីខ្លះ កញ្ចប់រុំជាក់លាក់ ESP-IDF ត្រូវបានបន្ថែមទៅបណ្ណាល័យភាគីទីបី ដោយផ្តល់នូវចំណុចប្រទាក់ដែលងាយស្រួលជាង ឬរួមបញ្ចូលគ្នាជាមួយឧបករណ៍ ESP-IDF ដែលនៅសល់។ ក្នុងករណីផ្សេងទៀត API ដើមនៃបណ្ណាល័យភាគីទីបីត្រូវបានបង្ហាញដល់អ្នកអភិវឌ្ឍន៍កម្មវិធី។ ផ្នែកខាងក្រោមពន្យល់ពីទិដ្ឋភាពមួយចំនួននៃ ESP-IDF APIs និងការប្រើប្រាស់របស់វា។
2.1.1 ការដោះស្រាយកំហុស
ESP-IDF APIs ភាគច្រើនត្រឡប់លេខកូដកំហុសដែលបានកំណត់ជាមួយប្រភេទ esp_err_t ។ សូមមើលផ្នែក Error Handling សម្រាប់ព័ត៌មានបន្ថែមអំពីវិធីសាស្រ្តដោះស្រាយកំហុស។ Error Code Reference មានបញ្ជីកូដកំហុសដែលបញ្ជូនមកវិញដោយសមាសធាតុ ESP-IDF។
2.1.2 រចនាសម្ព័ន្ធកំណត់
សំខាន់៖ ការចាប់ផ្តើមត្រឹមត្រូវនៃរចនាសម្ព័ន្ធកំណត់គឺជាផ្នែកសំខាន់ក្នុងការធ្វើឱ្យកម្មវិធីត្រូវគ្នាជាមួយកំណែអនាគតនៃ ESP-IDF ។
មុខងារចាប់ផ្តើម ឬការកំណត់រចនាសម្ព័ន្ធភាគច្រើននៅក្នុង ESP-IDF យកជាអាគុយម៉ង់ ចង្អុលទៅរចនាសម្ព័ន្ធកំណត់។ សម្រាប់អតីតampលេ៖
45

ជំពូកទី 2. ឯកសារយោង API

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = “my_timer”
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
មុខងារចាប់ផ្តើមមិនដែលរក្សាទុកទ្រនិចទៅនឹងរចនាសម្ព័ន្ធកំណត់ទេ ដូច្នេះវាមានសុវត្ថិភាពក្នុងការបែងចែករចនាសម្ព័ន្ធនៅលើជង់។
កម្មវិធីត្រូវតែចាប់ផ្តើមវាលទាំងអស់នៃរចនាសម្ព័ន្ធ។ ខាងក្រោមនេះមិនត្រឹមត្រូវទេ៖
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* មិនត្រឹមត្រូវ! Fields .arg និង .name មិន​ត្រូវ​បាន​ចាប់​ផ្ដើម */ esp_timer_create(&my_timer_args, &my_timer);
ESP-IDF ភាគច្រើន ឧamples ប្រើកម្មវិធីចាប់ផ្តើមដែលបានកំណត់ C99 សម្រាប់ការចាប់ផ្តើមរចនាសម្ព័ន្ធ ចាប់តាំងពីពួកគេផ្តល់នូវវិធីសង្ខេបនៃការកំណត់សំណុំរងនៃវាល និងសូន្យការចាប់ផ្តើមវាលដែលនៅសល់៖
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* ត្រឹមត្រូវ, វាល .arg និង .name គឺសូន្យ - ចាប់ផ្ដើម */
};
ភាសា C ++ មិនគាំទ្រវាក្យសម្ព័ន្ធកម្មវិធីចាប់ផ្តើមដែលបានកំណត់រហូតដល់ C ++ 20 ទោះជាយ៉ាងណាក៏ដោយ GCC compiler គាំទ្រវាដោយផ្នែកជាផ្នែកបន្ថែម។ នៅពេលប្រើ ESP-IDF APIs ក្នុងកូដ C++ អ្នកអាចពិចារណាប្រើលំនាំខាងក្រោម៖
esp_timer_create_args_t my_timer_args = {}; /* វាលទាំងអស់ត្រូវបានចាប់ផ្តើមសូន្យ */ my_timer_args.callback = &my_timer_callback;

កម្មវិធីចាប់ផ្តើមលំនាំដើម
សម្រាប់រចនាសម្ព័ន្ធកំណត់រចនាសម្ព័ន្ធមួយចំនួន ESP-IDF ផ្តល់ម៉ាក្រូសម្រាប់កំណត់តម្លៃលំនាំដើមនៃវាល៖
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG ពង្រីកទៅកម្មវិធីចាប់ផ្តើមដែលបានកំណត់។
ឥឡូវនេះវាលទាំងអស់ត្រូវបានកំណត់ទៅតម្លៃលំនាំដើម។ វាលណាមួយនៅតែអាចកែប្រែបាន៖ */ config.server_port = 8081; ម៉ាស៊ីនមេ httpd_handle_t; esp_err_t err = httpd_start(&server, &config);
វាត្រូវបានណែនាំឱ្យប្រើម៉ាក្រូកម្មវិធីចាប់ផ្ដើមលំនាំដើមនៅពេលណាដែលពួកវាត្រូវបានផ្តល់ជូនសម្រាប់រចនាសម្ព័ន្ធកំណត់រចនាសម្ព័ន្ធជាក់លាក់មួយ។

2.1.3 APIs ឯកជន
បឋមកថាជាក់លាក់ files ក្នុង ESP-IDF មាន APIs ដែលមានបំណងប្រើតែក្នុងកូដប្រភព ESP-IDF ប៉ុណ្ណោះ ហើយមិនមែនដោយកម្មវិធីនោះទេ។ ក្បាលបែបនេះ files ជាញឹកញាប់មានឯកជន ឬ esp_private នៅក្នុងឈ្មោះ ឬផ្លូវរបស់ពួកគេ។ សមាសធាតុមួយចំនួនដូចជា hal មានតែ API ឯកជនប៉ុណ្ណោះ។ APIs ឯកជនអាចត្រូវបានដកចេញ ឬផ្លាស់ប្តូរតាមរបៀបដែលមិនឆបគ្នារវាងការចេញផ្សាយតិចតួច ឬបំណះ។

2.1.4 សមាសធាតុក្នុងឧampគម្រោង
ESP-IDF ឧamples មានគម្រោងជាច្រើនដែលបង្ហាញពីការប្រើប្រាស់ ESP-IDF APIs។ ដើម្បីកាត់បន្ថយការចម្លងកូដនៅក្នុង examples, ជំនួយទូទៅមួយចំនួនត្រូវបានកំណត់នៅខាងក្នុងសមាសធាតុដែលត្រូវបានប្រើដោយអតីតច្រើន។amples ។

ប្រព័ន្ធ Espressif

46 បញ្ជូនមតិកែលម្អឯកសារ

ការចេញផ្សាយ v5.0.9

ជំពូកទី 2. ឯកសារយោង API
នេះរួមបញ្ចូលទាំងសមាសធាតុដែលមានទីតាំងនៅ

ឯកសារ/ធនធាន

Espressif Systems ESP32 Dev Kitc ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ [pdf] ការណែនាំអ្នកប្រើប្រាស់
ESP32 Dev Kitc Development Board, ESP32, ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ Dev Kitc, ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ Kitc, ក្រុមប្រឹក្សាអភិវឌ្ឍន៍, ក្រុមប្រឹក្សាភិបាល

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *