ESP32 Dev Kitc-ის განვითარების დაფა
პროდუქტის ინფორმაცია
სპეციფიკაციები
- პროდუქტი: ESP32
- პროგრამირების სახელმძღვანელო: ESP-IDF
- გამოშვების ვერსია: v5.0.9
- მწარმოებელი: Espressif Systems
- გამოშვების თარიღი: 16 წლის 2025 მაისი
პროდუქტის გამოყენების ინსტრუქცია
1. დაიწყეთ
ESP32-ის გამოყენებამდე გაეცანით...
შემდეგი:
1.1 შესავალი
გაეცანით მის ძირითად ფუნქციებსა და შესაძლებლობებს
ESP32.
1.2 რაც გჭირდებათ
დარწმუნდით, რომ გაქვთ საჭირო აპარატურა და პროგრამული უზრუნველყოფა:
- აპარატურა: შეამოწმეთ საჭირო აპარატურის სია
კომპონენტები. - პროგრამული უზრუნველყოფა: დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა
კომპონენტები.
1.3 მონტაჟი
IDE-ს ინსტალაციისა და კონფიგურაციისთვის მიჰყევით ამ ნაბიჯებს:
გარემო:
- IDE: დააინსტალირეთ რეკომენდებული IDE
ESP32-ის პროგრამირება. - ხელით ინსტალაცია: ხელით დააყენეთ
გარემო, საჭიროების შემთხვევაში.
1.4 შექმენით თქვენი პირველი პროექტი
შექმენით და ააწყვეთ თქვენი საწყისი პროექტი ESP32-ის გამოყენებით.
1.5 ESP-IDF-ის დეინსტალაცია
საჭიროების შემთხვევაში, შეიტყვეთ, თუ როგორ წაშალოთ ESP-IDF თქვენი კომპიუტერიდან.
სისტემა.
2. API-ს მითითება
დეტალური ინფორმაციისთვის იხილეთ API დოკუმენტაცია
აპლიკაციის პროტოკოლები, შეცდომების დამუშავება და კონფიგურაცია
სტრუქტურები.
ხშირად დასმული კითხვები (FAQ)
კითხვა: როგორ შემიძლია ESP32-თან დაკავშირებული გავრცელებული პრობლემების მოგვარება?
A: იხილეთ პროგრამირების სახელმძღვანელოში პრობლემების მოგვარების განყოფილება
ან ეწვიეთ მწარმოებელს webსაიტი მხარდაჭერის რესურსებისთვის.
კითხვა: შემიძლია ESP-IDF-ის სხვა მიკროკონტროლერებთან ერთად გამოყენება?
A: ESP-IDF სპეციალურად შექმნილია ESP32-ისთვის, მაგრამ შეიძლება აღმოაჩინოთ
თავსებადობა სხვა Espressif მიკროკონტროლერებთან.
ESP32
ESP-IDF პროგრამირების გზამკვლევი
გამოშვება v5.0.9 Espressif Systems 2025 წლის 16 მაისს
სარჩევი
სარჩევი
i
1 დაიწყეთ
3
1.1 შესავალი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 რა გჭირდებათ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 აპარატურა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 პროგრამული უზრუნველყოფა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 ინსტალაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 ხელით ინსტალაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 შექმენით თქვენი პირველი პროექტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 ESP-IDF-ის დეინსტალაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 API მითითება
45
2.1 API კონვენციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 შეცდომების დამუშავება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 კონფიგურაციის სტრუქტურები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 კერძო API-ები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 კომპონენტები ექსშიampლე პროექტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 API სტაბილურობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 აპლიკაციის პროტოკოლები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 ASIO პორტი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 ESP HTTP კლიენტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 ESP-ის ლოკალური კონტროლი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 ESP სერიული მონა-ბმული . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 ESP x509 სერტიფიკატების პაკეტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 HTTP სერვერი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 HTTPS სერვერი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 mDNS სერვისი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 IP ქსელის დონე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 Bluetooth API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® Common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® დაბალი ენერგიის მოხმარება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® კლასიკური . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 კონტროლერი და ჰიდროქლორიდი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 NimBLE-ზე დაფუძნებული მასპინძელი API-ები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 შეცდომის კოდების მითითება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 ქსელური API-ები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 ეთერნეტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 თემა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 IP ქსელის დონე. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 აპლიკაციის დონე. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 პერიფერიული მოწყობილობების API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 ანალოგურ-ციფრული გადამყვანის (ADC) ერთჯერადი რეჟიმის დრაივერი. . . . . . . . . . . . . . . . . 977 2.6.2 ანალოგურ-ციფრული გადამყვანის (ADC) უწყვეტი რეჟიმის დრაივერი. . . . . . . . . . . . . . . 986 2.6.3 ანალოგურ-ციფრული გადამყვანის (ADC) კალიბრაციის დრაივერი. . . . . . . . . . . . . . . . . . . 993 2.6.4 საათის ხე. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 ციფრულიდან ანალოგურ გადამყვანი (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO და RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 ზოგადი დანიშნულების ტაიმერი (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 ინტეგრირებული წრედი (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 ინტერ-ინტერკონტრასტული ხმის სისტემა (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 LED კონტროლი (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 ძრავის მართვის პულსის სიგანის მოდულატორი (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 პულსის მრიცხველი (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 ბარათის დამხმარე დრაივერი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 სიგმა-დელტა მოდულაცია (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI მთავარი დრაივერი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 SPI მონა-დრაივერი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 შენახვის API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fileსისტემის მხარდაჭერა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 წარმოების პროგრამა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 არასტაბილური შენახვის ბიბლიოთეკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 NVS დანაყოფების გენერატორის უტილიტა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 SD/SDIO/MMC დრაივერი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 SPI Flash API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 სპიფსი Fileსისტემა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 ვირტუალური fileსისტემის კომპონენტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 ცვეთის გასწორების 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 შეცდომის კოდები და დამხმარე ფუნქციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 მოვლენების ციკლის ბიბლიოთეკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Overview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (დამატებითი ფუნქციები) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 გროვის მეხსიერების განაწილება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 გროვის მეხსიერების გამართვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 მაღალი გარჩევადობის ტაიმერი (ESP ტაიმერი) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 შიდა და არასტაბილური API-ები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 პროცესორებს შორის გამოძახება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 შეწყვეტის განაწილება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 ჟურნალირების ბიბლიოთეკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 სხვადასხვა სისტემის API-ები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 უსადენო განახლებები (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 შესრულების მონიტორი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 ენერგიის მართვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 POSIX ნაკადების მხარდაჭერა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 შემთხვევითი რიცხვების გენერირება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 SoC შესაძლებლობები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 სისტემის დრო . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 ჰიმემების განაწილების API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 ULP თანაპროცესორული პროგრამირება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 მეთვალყურეები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 აპარატურის მითითება
2167
3.1 ჩიპების სერიების შედარება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 დაკავშირებული დოკუმენტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 API სახელმძღვანელო
2171
4.1 აპლიკაციის დონის ტრასირების ბიბლიოთეკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 დასრულდაview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 მუშაობის რეჟიმები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 კონფიგურაციის პარამეტრები და დამოკიდებულებები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 როგორ გამოვიყენოთ ეს ბიბლიოთეკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 აპლიკაციის გაშვების ნაკადი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 პირველი სtagელექტრონული ჩამტვირთველი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 წამი სtagელექტრონული ჩამტვირთველი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 აპლიკაციის გაშვება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® კლასიკური . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 დასრულდაview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® დაბალი ენერგომოხმარება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 დასრულდაview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 დაწყება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 პროfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 ჩამტვირთავი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Bootloader-ის თავსებადობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 ჟურნალის დონე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 ქარხნული პარამეტრების აღდგენა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 ჩატვირთვა სატესტო პროგრამული უზრუნველყოფიდან . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 უკან დაბრუნება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 მეთვალყურე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 ჩატვირთვის სისტემის ზომა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 სწრაფი ჩატვირთვა ღრმა ძილის რეჟიმიდან . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 მორგებული ჩამტვირთავი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 სისტემის აწყობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 დასრულდაview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 აწყობის სისტემის გამოყენება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 ყოფილიampპროექტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 პროექტის CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 კომპონენტი CMakeLists Fileს . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 კომპონენტის კონფიგურაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 კომპონენტების მოთხოვნები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 პროექტის ძირითადი ნაწილები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 მხოლოდ კონფიგურაციის კომპონენტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 CMake-ის გამართვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 ყოფილიample კომპონენტი CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 sdkconfig-ის ნაგულისხმევი პარამეტრები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 ფლეშ არგუმენტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Bootloader-ის აწყობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 სუფთა CMake კომპონენტების ჩაწერა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 მესამე მხარის CMake პროექტების გამოყენება კომპონენტებთან ერთად . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 წინასწარ აგებული ბიბლიოთეკების გამოყენება კომპონენტებთან ერთად . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 ESP-IDF-ის გამოყენება CMake-ის მორგებულ პროექტებში . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 ESP-IDF CMake-ის შექმნის სისტემის API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File გლობირება და ინკრემენტული აწყობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 სისტემის მეტამონაცემების აგება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 სისტემის შიდა ნაწილების აგება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 ESP-IDF GNU Make სისტემიდან მიგრაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 ბირთვის დემპინგი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 მეტიview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 კონფიგურაციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 ბირთვის დამატების შენახვა ფლეშ მეხსიერებაში . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 ბირთვის დამპინგის UART-ზე ბეჭდვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 ROM ფუნქციები უკუტრანსლაციაში . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 ცვლადების დამპინგი მოთხოვნისამებრ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py-ის გაშვება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 ღრმა ძილის გაღვიძების სტაბები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 გაღვიძების სტაბების წესები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 სტუბის იმპლემენტაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 კოდის RTC მეხსიერებაში ჩატვირთვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 მონაცემების RTC მეხსიერებაში ჩატვირთვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 CRC-ის შემოწმება გაღვიძების სტაბებზე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 ყოფილი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 მაკროების შემოწმება Exampლეს . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 შეცდომების დამუშავების შაბლონები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 არხის გადართვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 შესრულება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 დამატებითი შენიშვნები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 მოვლენების დამუშავება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Wi-Fi, Ethernet და IP მოვლენები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 ბადისებრი მოვლენები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Bluetooth მოვლენები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 ფატალური შეცდომები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 მეტიview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 პანიკის მართვის მოწყობილობა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 რეგისტრის დემპინგი და უკუკვლევა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB სტუბი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 RTC Watchdog-ის ტაიმ-აუტი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 გურუს მედიტაციის შეცდომები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 სხვა ფატალური შეცდომები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 ფლეშ დაშიფვრა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 შესავალი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 შესაბამისი eFuse-ები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 ფლეშ დაშიფვრის პროცესი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 ფლეშ დაშიფვრის კონფიგურაცია. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 შესაძლო ჩავარდნები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 ფლეშ დაშიფვრის სტატუსი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 მონაცემების წაკითხვა და ჩაწერა დაშიფრულ ფლეშ მეხსიერებაში. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 დაშიფრული ფლეშ მეხსიერების განახლება. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 ფლეშ დაშიფვრის გამორთვა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 ფლეშ დაშიფვრის შესახებ ძირითადი პუნქტები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 ფლეშ დაშიფვრის შეზღუდვები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 ფლეშ დაშიფვრა და უსაფრთხო ჩატვირთვა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 (აპარატურის აბსტრაქციის ფენა). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 მაღალი დონის შეფერხებები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 შეფერხების დონეები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 შენიშვნები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG გამართვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 შესავალი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 როგორ მუშაობს? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J-ის შერჩევაTAG ადაპტერი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 OpenOCD-ის დაყენება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ESP32 Target-ის კონფიგურაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 დებაგერის გაშვება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 დებაგერის გაშვება Exampლეს . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 OpenOCD-ის შექმნა წყაროებიდან . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 რჩევები და უცნაურობები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 დაკავშირებული დოკუმენტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 მეტიview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 სწრაფი დაწყება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 ლინკერის სკრიპტის გენერირების შიდა ფუნქციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 მხარდაჭერილი API-ები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 BSD სოკეტების API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 Netconn API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 lwIP FreeRTOS დავალება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 IPv6 მხარდაჭერა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 esp-lwip-ის მორგებული მოდიფიკაციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 შესრულების ოპტიმიზაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 მეხსიერების ტიპები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (მონაცემთა ოპერატიული მეხსიერება) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (ინსტრუქციის ოპერატიული მეხსიერება) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 ბუფერი დასტაში . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 გიდები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 უსაფრთხო ჩატვირთვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 ფონი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 უსაფრთხო ჩატვირთვის პროცესის დასრულებაview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 კლავიშები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 ჩატვირთვის სისტემის ზომა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 უსაფრთხო ჩატვირთვის ჩართვა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 ხელახლა განახლებადი პროგრამული ჩატვირთვის ჩამტვირთველი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 უსაფრთხო ჩატვირთვის ხელმოწერის გასაღების გენერირება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 გამოსახულებების დისტანციური ხელმოწერა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 უსაფრთხო ჩატვირთვის საუკეთესო პრაქტიკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 ტექნიკური დეტალები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 უსაფრთხო ჩატვირთვა და ფლეშ დაშიფვრა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 ხელმოწერილი აპლიკაციის ვერიფიკაცია აპარატურული უსაფრთხო ჩატვირთვის გარეშე . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.24.13 გაფართოებული ფუნქციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 უსაფრთხო ჩატვირთვა V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 წინარე ისტორია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 დამატებითიtagეს . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 უსაფრთხო ჩატვირთვის V2 პროცესი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 უსაფრთხო ჩატვირთვის ჩართვა, ვერსია 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 შეზღუდვები უსაფრთხო ჩატვირთვის ჩართვის შემდეგ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 უსაფრთხო ჩატვირთვის ხელმოწერის გასაღების გენერირება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 გამოსახულების დისტანციური ხელმოწერა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 უსაფრთხო ჩატვირთვის საუკეთესო პრაქტიკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 ტექნიკური დეტალები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 უსაფრთხო ჩატვირთვა და ფლეშ დაშიფვრა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 ხელმოწერილი აპლიკაციის ვერიფიკაცია აპარატურული უსაფრთხო ჩატვირთვის გარეშე . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.18 გაფართოებული ფუნქციები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 გარე ოპერატიული მეხსიერების მხარდაჭერა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 შესავალი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 აპარატურა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 გარე ოპერატიული მეხსიერების კონფიგურაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 შეზღუდვები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 ინიციალიზაციის შეუძლებლობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 ჩიპის ვერსიები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 მეტიview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 FreeRTOS მშობლიური API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 Pthread API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 C11 სტანდარტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 IDF ფრონტენდი – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 IDF დოკერის იმიჯი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 IDF Windows-ის ინსტალერი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 მრავალმოწყობილობაზე დაფუძნებული ტესტის შემთხვევები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 მრავალმოწყობილობაზე დაფუძნებულიtagელექტრონული სატესტო შემთხვევები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 სხვადასხვა სამიზნეების ტესტები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 შენობის ერთეულის სატესტო აპლიკაცია. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 ერთეულის ტესტების გაშვება. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 ქეშით კომპენსირებული ტაიმერით დროის კოდი. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 მაკეტები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 ერთეულის ტესტირება Linux-ზე. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 ჩაშენებული პროგრამული უზრუნველყოფის ტესტები. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 IDF ერთეულის ტესტები Linux ჰოსტზე. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 ESP32 Wi-Fi მოვლენის აღწერა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 Wi-Fi სადგურის ზოგადი სცენარი. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi წვდომის წერტილის ზოგადი სცენარი. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 Wi-Fi სკანირება. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 Wi-Fi სადგურის დაკავშირების სცენარი. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 Wi-Fi სადგურის დაკავშირება მრავალი წვდომის წერტილის პოვნისას. . . . . . . . . . . . . 2543 4.31.12 Wi-Fi-ს ხელახლა დაკავშირება. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Wi-Fi Beacon-ის დროის ამოწურვა. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 Wi-Fi კონფიგურაცია. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (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 სნიფერის რეჟიმი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Wi-Fi ფრაგმენტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 WPS დარეგისტრირებული . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Wi-Fi ბუფერის გამოყენება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 როგორ გავაუმჯობესოთ Wi-Fi-ს მუშაობა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Wi-Fi მენიუს კონფიგურაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 პრობლემების მოგვარება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Wi-Fi უსაფრთხოება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 ESP32 Wi-Fi უსაფრთხოების მახასიათებლები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 დაცული მართვის ჩარჩოები (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi საწარმო . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-პერსონალური . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 მეტიview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 ESP32-ისთვის მხარდაჭერილი თანაარსებობის სცენარი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 თანაარსებობის მექანიზმი და პოლიტიკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
5 მიგრაციის სახელმძღვანელო
2579
5.1 ESP-IDF 5.x მიგრაციის სახელმძღვანელო . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 მიგრაცია 4.4-დან 5.0-მდე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 ბიბლიოთეკა და ჩარჩო
2611
6.1 ღრუბლოვანი ჩარჩოები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS ნივთების ინტერნეტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Google IoT Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611 წ
6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent-ის ნივთების ინტერნეტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun-ის ნივთების ინტერნეტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu-ს ნივთების ინტერნეტი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 ესპრესორული ჩარჩოები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Espressif აუდიოს შემუშავების ჩარჩო . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Espressif DSP ბიბლიოთეკა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 ESP-WIFI-MESH შემუშავების ჩარჩო . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 ESP-IoT-გადაწყვეტა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 ESP-პროტოკოლები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
7 წვლილის სახელმძღვანელო
2615
7.1 როგორ შევიტანოთ წვლილი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 წვლილის შეტანამდე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 გაშვების მოთხოვნის პროცესი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 იურიდიული ნაწილი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 დაკავშირებული დოკუმენტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Espressif IoT-ის შემუშავების ჩარჩოს სტილის სახელმძღვანელო . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 ESP-IDF პროექტისთვის წინასწარი დადასტურების Hook-ის ინსტალაცია . . . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 კოდის დოკუმენტირება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 ყოფილის შექმნაampლეს . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629 წ
7.5.5 API დოკუმენტაციის შაბლონი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 კონტრიბუტორის შეთანხმება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 საავტორო უფლებების სათაურის სახელმძღვანელო . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 ESP-IDF ტესტები Pytest სახელმძღვანელოთი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 ESP-IDF ვერსიები
2645
8.1 რელიზები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 რომელი ვერსიით უნდა დავიწყო? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 ვერსიონირების სქემა . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 მხარდაჭერის პერიოდები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 მიმდინარე ვერსიის შემოწმება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Git-ის სამუშაო პროცესი . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 ESP-IDF-ის განახლება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 სტაბილურ ვერსიაზე განახლება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 განახლება წინასწარ გამოშვებულ ვერსიაზე . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 მთავარი ფილიალის განახლება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 გამოშვების ტოტის განახლება . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 რესურსები
2651
9.1 პლატფორმაIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 რა არის PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 ინსტალაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 კონფიგურაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 სახელმძღვანელოები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 პროექტის ექსampლეს . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 შემდეგი ნაბიჯები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 სასარგებლო ბმულები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 საავტორო უფლებები და ლიცენზიები
2653
10.1 პროგრამული უზრუნველყოფის საავტორო უფლებები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 პროგრამული უზრუნველყოფის კომპონენტები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 დოკუმენტაცია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 ROM-ის საწყისი კოდის საავტორო უფლებები . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Xtensa libhal MIT ლიცენზია. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 TinyBasic Plus MIT ლიცენზია. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 TJpgDec ლიცენზია . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 შესახებ
2657
12 ენებს შორის გადართვა
2659
ინდექსი
2661
ინდექსი
2661
ix
x
სარჩევი
ეს არის Espressif IoT Development Framework-ის (esp-idf) დოკუმენტაცია. ESP-IDF არის ESP32, ESP32-S და ESP32-C სერიის SoC-ების ოფიციალური შემუშავების ფრეიმვორკი. ეს დოკუმენტი აღწერს ESP-IDF-ის გამოყენებას ESP32 SoC-თან ერთად.
დაიწყეთ
API მითითება
API სახელმძღვანელოები
ესპრესივის სისტემები
1 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
სარჩევი
ესპრესივის სისტემები
2 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1
დაიწყეთ
ეს დოკუმენტი განკუთვნილია იმისთვის, რომ დაგეხმაროთ Espressif-ის ESP32 ჩიპზე დაფუძნებული აპარატურისთვის პროგრამული უზრუნველყოფის შემუშავების გარემოს დაყენებაში. ამის შემდეგ, მარტივი მაგალითიampეს სტატია გაჩვენებთ, თუ როგორ გამოიყენოთ ESP-IDF (Espressif IoT Development Framework) მენიუს კონფიგურაციისთვის, შემდეგ კი firmware-ის ESP32 დაფაზე ასაშენებლად და ჩასატვირთად.
შენიშვნა: ეს არის ESP-IDF-ის სტაბილური ვერსიის v5.0.9 დოკუმენტაცია. ასევე ხელმისაწვდომია ESP-IDF-ის სხვა ვერსიები.
1.1 შესავალი
ESP32 არის ჩიპზე დაფუძნებული სისტემა, რომელიც აერთიანებს შემდეგ ფუნქციებს: · Wi-Fi (2.4 GHz დიაპაზონი) · Bluetooth · ორმაგი მაღალი ხარისხის Xtensa® 32-ბიტიანი LX6 CPU ბირთვი · ულტრა დაბალი სიმძლავრის კოპროცესორი · მრავალი პერიფერიული მოწყობილობა
40 ნმ ტექნოლოგიით აღჭურვილი ESP32 წარმოადგენს ძლიერ, მაღალ ინტეგრირებულ პლატფორმას, რომელიც ხელს უწყობს ენერგიის ეფექტური გამოყენების, კომპაქტური დიზაინის, უსაფრთხოების, მაღალი შესრულებისა და საიმედოობის მუდმივი მოთხოვნების დაკმაყოფილებას. Espressif უზრუნველყოფს ძირითად აპარატურულ და პროგრამულ რესურსებს, რათა დაეხმაროს აპლიკაციების შემქმნელებს ESP32 სერიის აპარატურის გამოყენებით თავიანთი იდეების რეალიზებაში. Espressif-ის პროგრამული უზრუნველყოფის შემუშავების ჩარჩო განკუთვნილია ნივთების ინტერნეტის (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)-ის შესახებ, რომელიც Espressif-ის მიერ წარმოებულია ESP32-DevKitS(-R). ESP32-DevKitS(-R) წარმოადგენს ორი დაფის სახელის კომბინაციას: ESP32-DevKitS და ESP32-DevKitS-R. S ნიშნავს ზამბარებს, ხოლო R ნიშნავს WROVER-ს.
ESP32-DevKitS
ESP32-DevKitS-R
დოკუმენტი შედგება შემდეგი ძირითადი სექციებისგან: · დაწყება: იძლევა ზოგად ინფორმაციასview ESP32-DevKitS(-R)-ის და აპარატურის/პროგრამული უზრუნველყოფის დაყენების ინსტრუქციები დასაწყებად. · აპარატურის მითითება: გთავაზობთ უფრო დეტალურ ინფორმაციას 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 სერიის მოდულები.
კომპონენტების აღწერა
ესპრესივის სისტემები
4 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
სურ. 1: ESP32-DevKitS – წინა მხარე
ესპრესივის სისტემები
სურ. 2: ESP32-DevKitS-R – წინა 5
დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ძირითადი კომპონენტის ზამბარის ქინძისთავები 2.54 მმ მდედრობითი კოლექტორები
USB-to-UART ხიდი LDO მიკრო-USB კონექტორი/მიკრო USB პორტი EN ღილაკი ჩატვირთვის ღილაკი
LED- ზე ჩართვა
აღწერა მოდული დააწკაპუნეთ. პინები მოდულის კასტელიან ნახვრეტებში მოთავსდება. ეს მდედრობითი ჰედერები დაკავშირებულია ამ დაფაზე დამონტაჟებული მოდულის პინებთან. მდედრობითი ჰედერების აღწერილობისთვის იხილეთ ჰედერის ბლოკები. ერთჩიპიანი USB-დან UART-მდე ხიდი უზრუნველყოფს 3 Mbps-მდე გადაცემის სიჩქარეს.
5V-დან 3.3V-მდე დაბალი ძაბვის ვარდნაtagელექტრონული რეგულატორი (LDO).
USB ინტერფეისი. დაფის კვების წყარო, ასევე კომპიუტერსა და დაფას შორის საკომუნიკაციო ინტერფეისი.
გადატვირთვის ღილაკი.
ჩამოტვირთვის ღილაკი. Boot-ზე დაჭერის და შემდეგ EN-ზე დაჭერის შემდეგ, სერიული პორტის მეშვეობით firmware-ის ჩამოტვირთვის რეჟიმი გააქტიურდება.
ირთვება, როდესაც USB ან კვების წყარო დაფას უკავშირდება.
როგორ გავააქტიუროთ დაფა ESP32-DevKitS(-R)-ის ჩართვამდე დარწმუნდით, რომ ის კარგ მდგომარეობაშია და დაზიანების აშკარა ნიშნები არ აქვს.
საჭირო აპარატურა · თქვენი არჩევანის ESP32 მოდული · USB 2.0 კაბელი (Standard-A-დან Micro-B-მდე) · კომპიუტერი Windows, Linux ან macOS-ზე
აპარატურის დაყენება გთხოვთ, თქვენს ESP32-DevKitS(-R)-ზე დაამონტაჟოთ თქვენთვის სასურველი მოდული შემდეგი ნაბიჯების შესაბამისად:
· ფრთხილად მოათავსეთ თქვენი მოდული ESP32-DevKitS(-R) დაფაზე. დარწმუნდით, რომ მოდულის კასტელური ხვრელები დაფაზე არსებულ ზამბარიან ქინძისთავებთან არის გასწორებული.
· მოდული დაფაზე დაჭერით დაწკაპუნებამდე. · შეამოწმეთ, ყველა ზამბარიანი ქინძისთავი ჩასმულია თუ არა კასეტირებულ ნახვრეტებში. თუ ზამბარიანი ქინძისთავები არასწორად არის განლაგებული,
პინცეტით მოათავსეთ ისინი კასტელიან ხვრელებში.
პროგრამული უზრუნველყოფის დაყენება
სასურველი მეთოდი ESP-IDF შემუშავების ჩარჩო გთავაზობთ ბინარული ფაილების ESP32-DevKitS(-R)-ზე ფლეშირების სასურველ გზას. გთხოვთ, გადახვიდეთ „დაწყება“-ზე, სადაც „ინსტალაციის“ განყოფილება სწრაფად დაგეხმარებათ შემუშავების გარემოს დაყენებაში და შემდეგ აპლიკაციის მაგალითში ფლეშირებაში.ampგადადით თქვენს ESP32-DevKitS(-R)-ზე.
ალტერნატიული მეთოდი ალტერნატივის სახით, Windows-ის მომხმარებლებს შეუძლიათ ბინარული ფაილების ფლეშ-ფაილების შენახვა Flash Download Tool-ის გამოყენებით. უბრალოდ ჩამოტვირთეთ ის, გახსენით არქივიდან და მიჰყევით doc საქაღალდეში მოცემულ ინსტრუქციებს.
შენიშვნა: 1. ორობითი ფაილების ფლეშ-ფაილისთვის files, ESP32 უნდა იყოს დაყენებული Firmware Download რეჟიმში. ეს შეიძლება გაკეთდეს ავტომატურად flash ინსტრუმენტით ან Boot ღილაკზე დაჭერით და EN ღილაკზე დაჭერით. 2. ბინარული ფაილის ფლეშირების შემდეგ files-ის შემთხვევაში, Flash Download Tool სტანდარტულად გადატვირთავს თქვენს ESP32 მოდულს და ჩატვირთავს ფლეშირებულ აპლიკაციას.
დაფის ზომები, შემადგენლობა და შეფუთვა
ესპრესივის სისტემები
6 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება სურ. 3: ESP32-DevKitS დაფის ზომები – უკანა მხარე
ესპრესივის სისტემები
სურ. 4: ESP32-DevKitS-R დაფის ზომები – უკანა მხარე 7
დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
საცალო შეკვეთები თუ რამდენიმეს შეუკვეთავთampმაგალითად, თითოეული ESP32-DevKitS(-R) მოთავსებულია ინდივიდუალურ შეფუთვაში ანტისტატიკური პარკით ან ნებისმიერ შეფუთვაში, რაც დამოკიდებულია საცალო ვაჭრობის კომპანიაზე. საცალო შეკვეთებისთვის, გთხოვთ, ეწვიოთ 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 ჰედერის პინები · 3V3 და GND ჰედერის პინები
რეკომენდებულია პირველი ვარიანტის გამოყენება: მიკრო USB პორტი.
ესპრესივის სისტემები
.
ეტიკეტის სიგნალი
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP SENSOR_VP
L4 VN სენსორი_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
გრძელდება შემდეგ გვერდზე
8 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ცხრილი 1 გრძელდება წინა გვერდიდან
.
ეტიკეტის სიგნალი
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 დაჭიმვა დაჭიმვა
L15 13
GPIO13
L16 D2 SD_DATA2
L17 D3 SD_DATA3
L18 CMD SD_CMD
L19 5V
გარე 5 ვ
R1 დაჭიმვა დაჭიმვა
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 დაჭიმვა დაჭიმვა
R8 19
GPIO19
R9 18
GPIO18
R10 5
GPIO5
R11 17
GPIO17
R12 16
GPIO16
R13 4
GPIO4
R14 0
GPIO0
R15 2
GPIO2
R16 15
GPIO15
R17 D1 SD_DATA1
R18 D0 SD_DATA0
R19 CLK SD_CLK
სათაურის ბლოკები სათაურის ბლოკების სურათისთვის იხილეთ კომპონენტების აღწერა.
დაკავშირებული დოკუმენტები
· ESP32-DevKitS(-R) სქემები (PDF) · ESP32 მონაცემთა ცხრილი (PDF) · ESP32-WROOM-32 მონაცემთა ცხრილი (PDF) · ESP32-WROOM-32D და ESP32-WROOM-32U მონაცემთა ცხრილი (PDF) · ESP32-SOLO-1 მონაცემთა ცხრილი (PDF) · ESP32-WROVER მონაცემთა ცხრილი (PDF) · ESP32-WROVER-B მონაცემთა ცხრილი (PDF) · ESP პროდუქტის სელექტორი
ESP32-DevKitM-1
ეს მომხმარებლის სახელმძღვანელო დაგეხმარებათ ESP32-DevKitM-1-ის გამოყენებაში და ასევე მოგაწვდით უფრო დეტალურ ინფორმაციას.
ESP32-DevKitM-1 არის ESP32-MINI-1(1U)-ზე დაფუძნებული დეველოპერული დაფა, რომელიც წარმოებულია Espressif-ის მიერ. შემავალი/გამომავალი პინების უმეტესობა ორივე მხარეს გაყოფილია პინების ჰედერებად მარტივი ინტერფეისისთვის. მომხმარებლებს შეუძლიათ პერიფერიული მოწყობილობების შეერთება ჯამპერებით ან ESP32-DevKitM-1 დაამონტაჟონ პუდბორდზე.
ესპრესივის სისტემები
9 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ESP32-DevKitM-1 – წინა
ESP32-DevKitM-1 – იზომეტრიული
დოკუმენტი შემდეგი ძირითადი სექციებისგან შედგება: · დაწყება: იძლევა ზოგად ინფორმაციასview ESP32-DevKitM-1-ის და აპარატურის/პროგრამული უზრუნველყოფის დაყენების ინსტრუქციების დასაწყებად. · აპარატურის მითითება: გთავაზობთ უფრო დეტალურ ინფორმაციას ESP32-DevKitM-1ns აპარატურის შესახებ. · დაკავშირებული დოკუმენტები: იძლევა ბმულებს დაკავშირებულ დოკუმენტაციაზე.
დაწყება ეს განყოფილება აღწერს, თუ როგორ დაიწყოთ ESP32-DevKitM-1-თან მუშაობა. იგი იწყება ESP32-DevKitM-1-ის შესახებ რამდენიმე შესავალი ნაწილით, შემდეგ განყოფილება „აპლიკაციის შემუშავების დაწყება“ იძლევა ინსტრუქციებს, თუ როგორ უნდა განახორციელოთ საწყისი აპარატურის დაყენება და შემდეგ როგორ დააინსტალიროთ firmware ESP32-DevKitM-1-ზე.
დასრულდაview ეს არის პატარა და მოსახერხებელი განვითარების დაფა, რომელსაც აქვს:
· ESP32-MINI-1, ან ESP32-MINI-1U მოდული · USB-სერიული პროგრამირების ინტერფეისი, რომელიც ასევე უზრუნველყოფს დაფის კვებას · პინების ჰედერები · ღილაკები გადატვირთვისა და Firmware Download რეჟიმის გასააქტიურებლად · რამდენიმე სხვა კომპონენტი
შინაარსი და შეფუთვა
საცალო შეკვეთები თუ რამდენიმეს შეუკვეთავთampმაგალითად, თითოეული ESP32-DevKitM-1 მოთავსებულია ინდივიდუალურ შეფუთვაში ანტისტატიკური პარკით ან ნებისმიერ შეფუთვაში, თქვენი საცალო მოვაჭრის მიხედვით.
საცალო შეკვეთებისთვის, გთხოვთ, ეწვიოთ https://www.espressif.com/en/contact-us/get-samples.
საბითუმო შეკვეთები თუ დიდი რაოდენობით შეუკვეთავთ, დაფები დიდ მუყაოს ყუთებში იყიდება. საბითუმო შეკვეთებისთვის, გთხოვთ, ეწვიოთ https://www.espressif.com/en/contact-us/sales-questions.
კომპონენტების აღწერა ქვემოთ მოცემულ ფიგურასა და ცხრილში აღწერილია ESP32-DevKitM-1 დაფის ძირითადი კომპონენტები, ინტერფეისები და მართვის საშუალებები. მაგალითად, ჩვენ ვიღებთ დაფას ESP32-MINI-1 მოდულით.ampშემდეგ განყოფილებებში.
ესპრესივის სისტემები
10 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
სურ. 6: ESP32-DevKitM-1 – წინა მხარე
ძირითადი კომპონენტი: ჩაშენებული მოდული
5 ვოლტიდან 3.3 ვოლტამდე LDO ჩატვირთვის ღილაკი
გადატვირთვის ღილაკი
USB-დან UART ხიდთან შეერთებისას 3.3 ვოლტიანი ჩართვის LED ინდიკატორი
I/O კონექტორი
აღწერა
ESP32-MINI-1 მოდული ან ESP32-MINI-1U მოდული. ESP32-MINI-1 მოყვება ჩაშენებული PCB ანტენა. ESP32-MINI-1U მოყვება გარე ანტენის კონექტორი. ორივე მოდულს აქვს 4 მბ ფლეშ მეხსიერება ჩიპში. დამატებითი ინფორმაციისთვის იხილეთ ESP32-MINI-1 და ESP32-MINI-1U მონაცემთა ცხრილი.
დენის რეგულატორი გარდაქმნის 5 ვ-ს 3.3 ვ-მდე.
ჩამოტვირთვის ღილაკი. Boot-ზე დაჭერის და შემდეგ Reset-ზე დაჭერის შემთხვევაში, სერიული პორტის მეშვეობით ჩატვირთული იქნება Firmware-ის ჩამოტვირთვის რეჟიმი.
გადატვირთვის ღილაკი
USB ინტერფეისი. ელექტრომომარაგება დაფისთვის, ასევე კომპიუტერისა და ESP32 ჩიპის საკომუნიკაციო ინტერფეისი.
ერთი USB-UART ხიდის ჩიპი უზრუნველყოფს გადაცემის სიჩქარეს 3 Mbps-მდე.
ირთვება, როდესაც USB დაფასთან არის დაკავშირებული. დამატებითი ინფორმაციისთვის იხილეთ სქემები დაკავშირებულ დოკუმენტებში. ყველა ხელმისაწვდომი GPIO პინი (გარდა ფლეშ მეხსიერებისთვის განკუთვნილი SPI ავტობუსისა) დაყოფილია დაფაზე პინების ჰედერებად. მომხმარებლებს შეუძლიათ ESP32 ჩიპის დაპროგრამება მრავალი ფუნქციის ჩასართავად.
აპლიკაციის შემუშავების დაწყება თქვენი ESP32-DevKitM-1-ის ჩართვამდე, დარწმუნდით, რომ ის კარგ მდგომარეობაშია და დაზიანების აშკარა ნიშნები არ აქვს.
საჭირო აპარატურა · ESP32-DevKitM-1 · USB 2.0 კაბელი (Standard-A-დან Micro-B-მდე) · კომპიუტერი Windows, Linux ან macOS-ზე
პროგრამული უზრუნველყოფის დაყენება გთხოვთ, გადახვიდეთ დაწყებაზე, სადაც განყოფილება „ინსტალაცია“ სწრაფად დაგეხმარებათ განვითარების გარემოს დაყენებაში და შემდეგ აპლიკაციის მაგალითში ფლეშ ვერსიის დაყენებაში.ampგადადით თქვენს ESP32-DevKitM-1-ზე.
ესპრესივის სისტემები
11 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ყურადღება: 2021 წლის 2 დეკემბრამდე წარმოებულ ESP32-DevKitM-1 დაფებს დაყენებული აქვთ ერთბირთვიანი მოდული. იმის გადასამოწმებლად, თუ რომელი მოდული გაქვთ, გთხოვთ, შეამოწმოთ მოდულის მონიშვნის ინფორმაცია PCN-2021-021-ში. თუ თქვენს დაფას დაყენებული აქვს ერთბირთვიანი მოდული, გთხოვთ, აპლიკაციების ინსტალაციამდე მენიუს კონფიგურაციაში ჩართოთ ერთბირთვიანი რეჟიმი (CONFIG_FREERTOS_UNICORE).
აპარატურის საცნობარო ბლოკ-დიაგრამა ქვემოთ მოცემულ ბლოკ-დიაგრამაზე ნაჩვენებია ESP32-DevKitM-1-ის კომპონენტები და მათი ურთიერთკავშირი.
სურ. 7: ESP32-DevKitM-1
კვების წყაროს არჩევა დაფის კვების მიწოდების სამი ურთიერთგამომრიცხავი გზა არსებობს: · მიკრო USB პორტი, სტანდარტული კვების წყარო · 5V და GND ჰედერის პინები · 3V3 და GND ჰედერის პინები
გაფრთხილება: · კვების წყარო უნდა იყოს უზრუნველყოფილი ზემოთ ჩამოთვლილი ვარიანტებიდან მხოლოდ ერთის გამოყენებით, წინააღმდეგ შემთხვევაში შეიძლება დაზიანდეს დაფა და/ან კვების წყარო. · კვების წყარო რეკომენდებულია მიკრო USB პორტის საშუალებით.
პინების აღწერილობები ქვემოთ მოცემულ ცხრილში მოცემულია დაფის ორივე მხარეს არსებული პინების სახელწოდება და ფუნქცია. პერიფერიული პინების კონფიგურაციებისთვის, გთხოვთ, იხილოთ ESP32 მონაცემთა ფურცელი.
არა.
სახელი
ტიპი
1
GND
P
2
3V3
P
ფუნქცია: დამიწება: 3.3 ვ კვების წყარო
გრძელდება შემდეგ გვერდზე
ესპრესივის სისტემები
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
IX32
I/O
GPIO32, XTAL_32K_P (32.768 kHz კრისტალური ოსცილატორის შესასვლელი),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IX33
I/O
GPIO33, XTAL_32K_N (32.768 kHz კრისტალური ოსცილატორის გამომავალი),
ADC1_CH5, TOUCH8, RTC_GPIO8
12
IX25
I/O
GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
13
IX26
I/O
GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
14
IX27
I/O
GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
15
IX14
I/O
GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,
HS2_CLK, SD_CLK, EMAC_TXD2
16
5V
P
5 ვ დენის წყარო
17
IX12
I/O
GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,
HS2_DATA2, SD_DATA2, EMAC_TXD3
18
IX13
I/O
GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,
HS2_DATA3, SD_DATA3, EMAC_RX_ER
19
IX15
I/O
GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,
HS2_CMD, SD_CMD, EMAC_RXD3
20
IX2
I/O
GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,
HS2_DATA0, SD_DATA0
21
IX0
I/O
GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,
EMAC_TX_CLK
22
IX4
I/O
GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,
HS2_DATA1, SD_DATA1, EMAC_TX_ER
23
IX9
I/O
GPIO9, HS1_DATA2, U1RXD, SD_DATA2
24
IX10
I/O
GPIO10, HS1_DATA3, U1TXD, SD_DATA3
25
IX5
I/O
GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK
26
IX18
I/O
GPIO18, HS1_DATA7, VSPICLK
27
IX23
I/O
GPIO23, HS1_STROBE, VSPID
28
IX19
I/O
GPIO19, VSPIQ, U0CTS, EMAC_TXD0
29
IX22
I/O
GPIO22, VSPIWP, U0RTS, EMAC_TXD1
30
IX21
I/O
GPIO21, VSPIHD, EMAC_TX_EN
31
TXD0
I/O
GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
32
RXD0
I/O
GPIO3, U0RXD, CLK_OUT2
აპარატურის ვერსიის დეტალები წინა ვერსიები ხელმისაწვდომი არ არის.
დაკავშირებული დოკუმენტები
· ESP32-MINI-1 და ESP32-MINI-1U მონაცემთა ცხრილი (PDF) · ESP32-DevKitM-1 სქემები (PDF) · ESP32-DevKitM-1 PCB განლაგება (PDF) · ESP32-DevKitM-1 განლაგება (DXF) – თქვენ შეგიძლიათ view ეს Autodesk-თან ერთად Viewონლაინ · ESP32 მონაცემთა ცხრილი (PDF) · ESP პროდუქტის შემრჩევი
დაფის სხვა დიზაინის დოკუმენტაციისთვის, გთხოვთ, დაგვიკავშირდეთ შემდეგ მისამართზე: sales@espressif.com.
ესპრესივის სისტემები
13 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
პროგრამული უზრუნველყოფა
ESP-IDF-ის ESP32-ზე გამოყენების დასაწყებად დააინსტალირეთ შემდეგი პროგრამული უზრუნველყოფა: · Toolchain ESP32-ის კოდის კომპილაციისთვის · Build tools – CMake და Ninja ESP32-ის სრული აპლიკაციის შესაქმნელად · ESP-IDF, რომელიც არსებითად შეიცავს API-ს (პროგრამული უზრუნველყოფის ბიბლიოთეკები და საწყისი კოდი) ESP32-ისთვის და სკრიპტებს Toolchain-ის მუშაობისთვის.
1.3 მონტაჟი
ყველა საჭირო პროგრამული უზრუნველყოფის ინსტალაციისთვის, ჩვენ გთავაზობთ რამდენიმე განსხვავებულ გზას ამ ამოცანის გასაადვილებლად. აირჩიეთ ერთ-ერთი ხელმისაწვდომი ვარიანტი.
1.3.1 IDE
შენიშვნა: ჩვენ გირჩევთ, რომ ESP-IDF დააინსტალიროთ თქვენი საყვარელი IDE-ს მეშვეობით.
· Eclipse მოდული · VSCode გაფართოება
1.3.2 ხელით ინსტალაცია
ხელით შესრულებისთვის, გთხოვთ, აირჩიოთ თქვენი ოპერაციული სისტემის მიხედვით.
ესპრესივის სისტემები
14 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
Toolchain-ის სტანდარტული დაყენება Windows-ისთვის
შესავალი ESP-IDF-ისთვის საჭიროა რამდენიმე წინაპირობადი ინსტრუმენტის ინსტალაცია, რათა შეძლოთ მხარდაჭერილი ჩიპებისთვის პროგრამული უზრუნველყოფის შექმნა. წინაპირობად ინსტრუმენტებს შორისაა Python, Git, ჯვარედინი კომპილატორები, CMake და Ninja-ს შექმნის ინსტრუმენტები. ამ „დასაწყისისთვის“ ჩვენ გამოვიყენებთ ბრძანების ხაზს, მაგრამ ESP-IDF-ის ინსტალაციის შემდეგ შეგიძლიათ გამოიყენოთ Eclipse Plugin ან სხვა გრაფიკული IDE CMake მხარდაჭერით. შენიშვნა: შეზღუდვები: – ESP-IDF-ის და ESP-IDF ინსტრუმენტების ინსტალაციის გზა არ უნდა აღემატებოდეს 90 სიმბოლოს. ძალიან გრძელმა ინსტალაციის გზებმა შეიძლება გამოიწვიოს ინსტალაციის წარუმატებლობა. – Python-ის ან ESP-IDF-ის ინსტალაციის გზა არ უნდა შეიცავდეს თეთრ სივრცეებს ან ფრჩხილებს. – Python-ის ან ESP-IDF-ის ინსტალაციის გზა არ უნდა შეიცავდეს სპეციალურ სიმბოლოებს (არა ASCII), თუ ოპერაციული სისტემა არ არის კონფიგურირებული oUnicode UTF-8p მხარდაჭერით. სისტემის ადმინისტრატორს შეუძლია მხარდაჭერის ჩართვა საკონტროლო პანელის მეშვეობით – თარიღის, დროის ან რიცხვის ფორმატების შეცვლა – ადმინისტრაციული ჩანართი – სისტემის ლოკალის შეცვლა – მონიშნეთ ოფცია oBeta: გამოიყენეთ Unicode UTF-8 მსოფლიო ენების მხარდაჭერისთვის – კარგი და გადატვირთეთ კომპიუტერი.
ESP-IDF ინსტრუმენტების ინსტალერი ESP-IDFns-ის წინაპირობების ინსტალაციის უმარტივესი გზაა ESP-IDF ინსტრუმენტების ინსტალატორებიდან ერთ-ერთის ჩამოტვირთვა.
Windows-ის ინსტალერის ჩამოტვირთვა
ონლაინ და ოფლაინ ინსტალატორის გამოყენების შემთხვევა? ონლაინ ინსტალატორი ძალიან პატარაა და საშუალებას იძლევა ESP-IDF-ის ყველა არსებული ვერსიის ინსტალაციის. ინსტალაციის პროცესში ინსტალერი ჩამოტვირთავს მხოლოდ საჭირო დამოკიდებულებებს, მათ შორის Git For Windows-ს. ინსტალერი ინახავს ჩამოტვირთულ ფაილებს. files ქეშის დირექტორიაში %userprofile%. ესპრესო
ოფლაინ ინსტალატორი არ საჭიროებს ქსელურ კავშირს. ინსტალატორი შეიცავს ყველა საჭირო დამოკიდებულებას, მათ შორის Git For Windows-ს.
ინსტალაციის კომპონენტები ინსტალერი ათავსებს შემდეგ კომპონენტებს:
· ჩაშენებული Python · კროს-კომპილატორები · OpenOCD · CMake-ის და Ninja-ს შექმნის ინსტრუმენტები · ESP-IDF
ინსტალერი ასევე იძლევა არსებული დირექტორიის ESP-IDF-ით ხელახლა გამოყენების საშუალებას. რეკომენდებული დირექტორიაა %userpro.file%Desktopesp-idf სადაც %userprofile% თქვენი საწყისი დირექტორიაა.
ესპრესივის სისტემები
15 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ESP-IDF გარემოს გაშვება ინსტალაციის პროცესის ბოლოს შეგიძლიათ შეამოწმოთ ESP-IDF PowerShell გარემოს გაშვება ან ESP-IDF Command Prompt-ის გაშვება (cmd.exe). ინსტალერი გაუშვებს ESP-IDF გარემოს არჩეულ სტრიქონში. გაუშვით ESP-IDF PowerShell გარემო:
სურ. 8: ESP-IDF Tools Setup Wizard-ის დასრულება ESP-IDF PowerShell Environment-ის გაშვებით
გაუშვით ESP-IDF ბრძანების ხაზი (cmd.exe):
ბრძანების ხაზის გამოყენება დარჩენილი დაწყების ნაბიჯებისთვის ჩვენ გამოვიყენებთ Windows-ის ბრძანების ხაზს. ESP-IDF Tools Installer ასევე ქმნის მალსახმობს Start მენიუში ESP-IDF ბრძანების ხაზის გასაშვებად. ეს მალსახმობი ხსნის ბრძანების ხაზს (cmd.exe) და ამუშავებს export.bat სკრიპტს გარემოს ცვლადების (PATH, IDF_PATH და სხვა) დასაყენებლად. ამ ბრძანების ხაზში ხელმისაწვდომია ყველა დაინსტალირებული ინსტრუმენტი. გაითვალისწინეთ, რომ ეს მალსახმობი სპეციფიკურია ESP-IDF Tools Installer-ში არჩეულ ESP-IDF დირექტორიისთვის. თუ კომპიუტერზე გაქვთ ESP-IDF-ის მრავალი დირექტორია (მაგ.ampმაგალითად, ESP-IDF-ის სხვადასხვა ვერსიასთან სამუშაოდ), მათი გამოყენების ორი ვარიანტი გაქვთ:
1. შექმენით ESP-IDF Tools Installer-ის მიერ შექმნილი მალსახმობის ასლი და შეცვალეთ ახალი მალსახმობის სამუშაო დირექტორია იმ ESP-IDF დირექტორიით, რომლის გამოყენებაც გსურთ.
2. ალტერნატიულად, გაუშვით cmd.exe, შემდეგ გადადით სასურველ ESP-IDF დირექტორიაში და გაუშვით export.bat. გაითვალისწინეთ, რომ წინა ვარიანტისგან განსხვავებით, ამ გზით საჭიროა Python-ის და Git-ის ყოფნა PATH-ში. თუ Python-ის ან Git-ის ვერ პოულობასთან დაკავშირებულ შეცდომებს მიიღებთ, გამოიყენეთ პირველი ვარიანტი.
ESP-IDF-ის პირველი ნაბიჯები ახლა, რადგან ყველა მოთხოვნა დაკმაყოფილებულია, შემდეგი თემა დაგეხმარებათ, თუ როგორ დაიწყოთ თქვენი პირველი პროექტი.
ესპრესივის სისტემები
16 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება სურ. 9: ESP-IDF PowerShell
სურ. 10: ESP-IDF Tools Setup Wizard-ის დასრულება ESP-IDF Command Prompt-ის გაშვებით (cmd.exe)
ესპრესივის სისტემები
17 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
სურ. 11: ESP-IDF ბრძანების ხაზი
ესპრესივის სისტემები
18 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ეს სახელმძღვანელო დაგეხმარებათ ESP-IDF-ის გამოყენების პირველ ნაბიჯებში. მიჰყევით ამ სახელმძღვანელოს ESP32-ზე ახალი პროექტის დასაწყებად და მოწყობილობის გამომავალი მონაცემების ასაწყობად, ფლეშ-ინსტალაციისთვის და მონიტორინგისთვის. შენიშვნა: თუ ჯერ არ დაგიინსტალირებიათ ESP-IDF, გთხოვთ, გადახვიდეთ ინსტალაციის განყოფილებაში და მიჰყვეთ ინსტრუქციას, რათა მიიღოთ ამ სახელმძღვანელოს გამოსაყენებლად საჭირო ყველა პროგრამული უზრუნველყოფა.
პროექტის დაწყება ახლა თქვენ მზად ხართ მოამზადოთ თქვენი განაცხადი ESP32-ისთვის. შეგიძლიათ დაიწყოთ getstarted/hello_world პროექტით ყოფილიდან.amples დირექტორია ESP-IDF-ში.
მნიშვნელოვანია: ESP-IDF-ის აწყობის სისტემა არ უჭერს მხარს სივრცეებს არც ESP-IDF-ის და არც პროექტებისკენ მიმავალ ბილიკებში.
დააკოპირეთ პროექტი get-started/hello_world ~/esp დირექტორიაში: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
შენიშვნა: არსებობს ყოფილის ფართო სპექტრიampლე პროექტები ყოფილიamples დირექტორია ESP-IDF-ში. თქვენ შეგიძლიათ დააკოპიროთ ნებისმიერი პროექტი ისე, როგორც ზემოთ იყო წარმოდგენილი და გაუშვათ იგი. ასევე შესაძლებელია აშენდეს ყოფილიampფაილები ადგილზეა მათი წინასწარი კოპირების გარეშე.
დააკავშირეთ თქვენი მოწყობილობა ახლა შეაერთეთ თქვენი ESP32 დაფა კომპიუტერთან და შეამოწმეთ, რომელი სერიული პორტის ქვეშ ჩანს ის. სერიული პორტების სახელები Windows-ში იწყება COM-ით. თუ არ ხართ დარწმუნებული, თუ როგორ შეამოწმოთ სერიული პორტის სახელი, სრული დეტალებისთვის იხილეთ ESP32-თან სერიული კავშირის დამყარების სტატია.
შენიშვნა: შეინახეთ პორტის სახელი, რადგან ეს დაგჭირდებათ შემდეგ ნაბიჯებში.
თქვენი პროექტის კონფიგურაცია გადადით თქვენს hello_world დირექტორიაში, დააყენეთ ESP32 სამიზნედ და გაუშვით პროექტის კონფიგურაციის უტილიტა menuconfig.
Windows-ის CD %userprofile%esphello_world idf.py set-target esp32 idf.py მენიუკონფიგურაცია
ახალი პროექტის გახსნის შემდეგ, ჯერ სამიზნე უნდა დააყენოთ idf.py set-target esp32-ით. გაითვალისწინეთ, რომ პროექტში არსებული ბილდები და კონფიგურაციები, თუ ისინი არსებობს, ამ პროცესში გაიწმინდება და ინიციალიზებული იქნება. სამიზნე შეიძლება შენახული იყოს გარემოს ცვლადში, რათა საერთოდ გამოტოვოთ ეს ნაბიჯი. დამატებითი ინფორმაციისთვის იხილეთ სამიზნე ჩიპის არჩევა: set-target. თუ წინა ნაბიჯები სწორად შესრულდა, გამოჩნდება შემდეგი მენიუ: თქვენ იყენებთ ამ მენიუს პროექტის სპეციფიკური ცვლადების დასაყენებლად, მაგ., Wi-Fi ქსელის სახელი და პაროლი, პროცესორის სიჩქარე და ა.შ. პროექტის menuconfig-ით დაყენება შეიძლება გამოტოვდეს ohello_wordp-ისთვის, რადგან ეს არისample მუშაობს ნაგულისხმევი კონფიგურაციით.
ყურადღება: თუ იყენებთ ESP32-DevKitC დაფას ESP32-SOLO-1 მოდულით, ან ESP32-DevKitM-1 დაფას ESP32-MIN1-1(1U) მოდულით, გთხოვთ, ჩართოთ ერთბირთვიანი რეჟიმი (CONFIG_FREERTOS_UNICORE) მენიუს კონფიგურაციაში, ex-ის ფლეშირებამდე.amples.
ესპრესივის სისტემები
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 ორობითი .bin-ის გენერირებით files.
ესპრესივის სისტემები
20 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
მოწყობილობაზე ფლეშ-ფაილის ჩატვირთვა ახლახან აწყობილი ბინარული ფაილების (bootloader.bin, partition-table.bin და hello_world.bin) თქვენს ESP32 დაფაზე შემდეგი ბრძანების შესრულებით: idf.py -p PORT [-b BAUD] ფლეშ-ფაილის ჩატვირთვა
შეცვალეთ PORT თქვენი ESP32 დაფის სერიული პორტის სახელით. ასევე შეგიძლიათ შეცვალოთ flasher baud rate BAUD-ის საჭირო baud rate-ით ჩანაცვლებით. ნაგულისხმევი baud rate არის 460800. idf.py არგუმენტების შესახებ დამატებითი ინფორმაციისთვის იხილეთ idf.py.
შენიშვნა: ფლეშ ოფცია ავტომატურად აწყობს და ანახლებს პროექტს, ამიტომ idf.py build-ის გაშვება საჭირო არ არის.
ფლეშირების დროს პრობლემები შეგექმნათ? თუ მოცემული ბრძანების შესრულებისას ხედავთ შეცდომებს, როგორიცაა „შეუძლებელი დაკავშირება“ (Failed to connectp), ამის რამდენიმე მიზეზი შეიძლება იყოს. ერთ-ერთი მიზეზი შეიძლება იყოს esptool.py-ის მიერ წარმოქმნილი პრობლემები, რომელიც არის პროგრამა, რომელსაც იძახებს აწყობის სისტემა ჩიპის გადასატვირთად, ROM ჩამტვირთავთან ურთიერთქმედებისთვის და ფლეშ ფირმვერისთვის. ერთ-ერთი მარტივი გამოსავალია ხელით გადატვირთვა, რომელიც აღწერილია ქვემოთ და თუ ეს არ დაგეხმარებათ, შესაძლო პრობლემების შესახებ დამატებითი ინფორმაციის მოძიება შეგიძლიათ „გაუმჯობესების“ განყოფილებაში.
esptool.py ავტომატურად აღადგენს ESP32-ს USB-დან სერიულ გადამყვან ჩიპზე DTR და RTS კონტროლის ხაზების დადასტურებით, ანუ FTDI ან CP210x (დამატებითი ინფორმაციისთვის იხილეთ სერიული კავშირის დამყარება ESP32-თან). DTR და RTS კონტროლის ხაზები თავის მხრივ დაკავშირებულია ESP32-ის GPIO0 და CHIP_PU (EN) ქინძისთავებთან, რითაც იცვლება მოცულობა.tagDTR და RTS-ის დონეები ESP32-ს ჩატვირთავს Firmware Download რეჟიმში.ampმაგალითად, შეამოწმეთ ESP32 DevKitC დეველოპერის დაფის სქემა.
ზოგადად, ოფიციალურ esp-idf დეველოპერულ დაფებთან დაკავშირებით პრობლემები არ უნდა შეგექმნათ. თუმცა, esptool.py-ს არ შეუძლია თქვენი აპარატურის ავტომატურად გადატვირთვა შემდეგ შემთხვევებში:
· თქვენს აპარატურას არ აქვს DTR და RTS ხაზები, რომლებიც დაკავშირებულია GPIO0-სა და CHIP_PU-სთან · DTR და RTS ხაზები სხვადასხვაგვარად არის კონფიგურირებული · ასეთი სერიული მართვის ხაზები საერთოდ არ არსებობს
თქვენი აპარატურის ტიპის მიხედვით, შესაძლოა, თქვენი ESP32 დაფის ხელით გადაყვანა Firmware Download რეჟიმში (გადატვირთვა)ც იყოს შესაძლებელი.
· Espressif-ის მიერ წარმოებული დეველოპერული დაფებისთვის, ეს ინფორმაცია შეგიძლიათ იხილოთ შესაბამის საწყის სახელმძღვანელოებში ან მომხმარებლის სახელმძღვანელოებში. მაგ.ampმაგალითად, ESP-IDF დეველოპერის დაფის ხელით გადასაყენებლად, დააჭირეთ ჩატვირთვის ღილაკს (GPIO0) და შემდეგ EN ღილაკს (CHIP_PU).
· სხვა ტიპის აპარატურისთვის, სცადეთ 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 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev სერიული პორტი /dev/ttyUSB0 დაკავშირება…….._ ჩიპი არის ESP32D0WDQ6 (ვერსია 0) მახასიათებლები: WiFi, BT, ორმაგი ბირთვი, კოდირების სქემა არცერთი კრისტალი არის 40MHz MAC: 24:0a:c4:05:b9:14 stub-ის ატვირთვა… stub-ის გაშვება… stub-ის გაშვება… ბაუდის სიჩქარის შეცვლა 460800-მდე შეიცვალა.
(გაგრძელება შემდეგ გვერდზე)
ესპრესივის სისტემები
21 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
(გაგრძელება წინა გვერდიდან) ფლეშ მეხსიერების ზომის კონფიგურაცია… შეკუმშული 3072 ბაიტი 103-მდე… ჩაწერა 0x00008000-ზე… (100%) 3072 ბაიტი (შეკუმშული 103) ჩაიწერა 0x00008000-ზე 0.0 წამში (ეფექტური 5962.8 კბიტ/წმ)… მონაცემთა ჰეში დადასტურებულია. შეკუმშული 26096 ბაიტი 15408-მდე… ჩაწერა 0x00001000-ზე… (100%) 26096 ბაიტი (შეკუმშული 15408) ჩაიწერა 0x00001000-ზე 0.4 წამში (ეფექტური 546.7 კბიტ/წმ)… მონაცემთა ჰეში დადასტურებულია. შეკუმშული 147104 ბაიტი 77364-მდე… ჩაწერა 0x00010000-ზე… (20 %) ჩაწერა 0x00014000-ზე… (40 %) ჩაწერა 0x00018000-ზე… (60 %) ჩაწერა 0x0001c000-ზე… (80 %) ჩაწერა 0x00020000-ზე… (100 %) ჩაწერა 147104 ბაიტი (77364 შეკუმშული) 0x00010000-ზე 1.9 წამში (ეფექტური 615.5 კბიტ/წმ)… მონაცემთა ჰეში დადასტურებულია.
გასვლა… რთული გადატვირთვა RTS პინის საშუალებით… დასრულებულია
თუ ფლეშ პროცესის დასრულებისთვის პრობლემები არ იქნება, დაფა გადაიტვირთება და ჩაირთვება theohello_worldpapplication. თუ გსურთ idf.py-ის გაშვების ნაცვლად Eclipse-ის ან VS Code IDE-ს გამოყენება, გაეცანით Eclipse Plugin, VSCode Extension-ს.
გამომავალი მონაცემების მონიტორინგი იმის შესამოწმებლად, მუშაობს თუ არა ohello_worldpis, აკრიფეთ idf.py -p PORT monitor (არ დაგავიწყდეთ PORT-ის თქვენი სერიული პორტის სახელით ჩანაცვლება).
ეს ბრძანება იწყებს IDF Monitor აპლიკაციას:
$ idf.py -p monitor 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 2016 წლის 8 ივნისი 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) და 2016 წლის 8 ივნისი, 00:22:57 …
გაშვებისა და დიაგნოსტიკური ჟურნალების ზემოთ გადახვევის შემდეგ, თქვენ უნდა ნახოთ oHello world!, რომელიც აპლიკაციამ დაბეჭდა.
... გამარჯობა სამყარო! გადატვირთვა 10 წამში... ეს არის esp32 ჩიპი 2 CPU ბირთვით, WiFi/BT/BLE, სილიკონის ვერსია 1, 2 მბ გარე ფლეშ მეხსიერება. მინიმალური თავისუფალი გროვის ზომა: 298968 ბაიტი. გადატვირთვა 9 წამში... გადატვირთვა 8 წამში... გადატვირთვა 7 წამში...
IDF მონიტორის გასასვლელად გამოიყენეთ მალსახმობი Ctrl+].
ესპრესივის სისტემები
22 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
თუ IDF მონიტორი ატვირთვის შემდეგ მალევე გაფუჭდება, ან თუ ზემოთ მოცემული შეტყობინებების ნაცვლად ქვემოთ მოცემულის მსგავს შემთხვევით ნაგავს ხედავთ, თქვენი დაფა, სავარაუდოდ, 26 MHz კრისტალს იყენებს. დეველოპერული დაფების უმეტესობა 40 MHz-ს იყენებს, ამიტომ ESP-IDF ამ სიხშირეს ნაგულისხმევ მნიშვნელობად იყენებს.
თუ ასეთი პრობლემა გაქვთ, გააკეთეთ შემდეგი: 1. გამოდით მონიტორიდან. 2. დაბრუნდით მენიუს კონფიგურაციაში. 3. გადადით კომპონენტის კონფიგურაცია > აპარატურის პარამეტრები > მთავარი XTAL კონფიგურაცია > მთავარი XTAL სიხშირე, შემდეგ შეცვალეთ CONFIG_XTAL_FREQ_SEL 26 MHz-ზე. 4. ამის შემდეგ, ხელახლა შექმენით და დააინსტალირეთ აპლიკაცია.
ESP-IDF-ის მიმდინარე ვერსიაში, ESP32-ის მიერ მხარდაჭერილი ძირითადი XTAL სიხშირეებია:
· 26 MHz · 40 MHz
შენიშვნა: შეგიძლიათ ერთ ეტაპზე გააერთიანოთ აწყობა, ფლეშირება და მონიტორინგი შემდეგი ბრძანების შესრულებით: idf.py -p PORT ფლეშ მონიტორი
აგრეთვე იხილეთ: · IDF Monitor მოსახერხებელი მალსახმობებისთვის და IDF მონიტორის გამოყენების შესახებ დამატებითი დეტალებისთვის. · idf.py idf.py ბრძანებების და პარამეტრების სრული ინფორმაციისთვის.
ეს ყველაფერია, რაც გჭირდებათ ESP32-ის დასაწყებად! ახლა თქვენ მზად ხართ სცადოთ სხვა ექსტრემალური ვარიანტები.amples, ან პირდაპირ გადადით თქვენი საკუთარი აპლიკაციების შემუშავებაზე.
მნიშვნელოვანია: ზოგიერთი ყოფილიampფაილები არ უჭერენ მხარს ESP32-ს, რადგან საჭირო აპარატურა არ შედის ESP32-ში, ამიტომ მისი მხარდაჭერა შეუძლებელია. თუ აწყობთ ყოფილსampგთხოვთ, შეამოწმოთ README ფაილი file მხარდაჭერილი სამიზნეების ცხრილისთვის. თუ ეს არსებობს ESP32 სამიზნის ჩათვლით, ან ცხრილი საერთოდ არ არსებობს, მაგ.ampის ESP32-ზე იმუშავებს.
დამატებითი რჩევები
ნებართვების პრობლემები /dev/ttyUSB0 Linux-ის ზოგიერთ დისტრიბუციაში, ESP32-ის ფლეშირებისას შეიძლება მიიღოთ შეცდომის შეტყობინება "ვერ მოხერხდა პორტის /dev/ttyUSB0 გახსნა". ამ პრობლემის მოგვარება შესაძლებელია მიმდინარე მომხმარებლის dialout ჯგუფში დამატებით.
Python-ის თავსებადობა ESP-IDF მხარს უჭერს Python 3.7 ან უფრო ახალ ვერსიას. რეკომენდებულია თქვენი ოპერაციული სისტემის განახლება უახლეს ვერსიამდე, რომელიც აკმაყოფილებს ამ მოთხოვნას. სხვა ვარიანტები მოიცავს Python-ის ინსტალაციას წყაროებიდან ან Python-ის ვერსიის მართვის სისტემის გამოყენებას, როგორიცაა pyenv.
დაიწყეთ დაფის მხარდაჭერის პაკეტით. ზოგიერთ დეველოპერულ დაფაზე პროტოტიპების შექმნის დასაჩქარებლად, შეგიძლიათ გამოიყენოთ დაფის მხარდაჭერის პაკეტები (BSP), რაც კონკრეტული დაფის ინიციალიზაციას რამდენიმე ფუნქციის გამოძახებით მარტივს ხდის.
ესპრესივის სისტემები
23 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
BSP, როგორც წესი, მხარს უჭერს განვითარების დაფაზე მოწოდებულ ყველა აპარატურულ კომპონენტს. პინოუტის განსაზღვრისა და ინიციალიზაციის ფუნქციების გარდა, BSP-ს მოყვება დრაივერები გარე კომპონენტებისთვის, როგორიცაა სენსორები, დისპლეები, აუდიო კოდეკები და ა.შ. BSP-ები ნაწილდება IDF Component Manager-ის მეშვეობით, ამიტომ მათი პოვნა შესაძლებელია IDF Component Registry-ში. აქ არის ყოფილიampროგორ დავამატოთ ESP-WROVER-KIT BSP თქვენს პროექტში: idf.py add-dependency esp_wrover_kit
მეტი ყოფილიampBSP-ის გამოყენების შესახებ ნაკლები ინფორმაცია შეგიძლიათ იხილოთ BSP-ში.amples საქაღალდე.
დაკავშირებული დოკუმენტები მოწინავე მომხმარებლებისთვის, რომელთაც სურთ ინსტალაციის პროცესის პერსონალიზება: · ESP-IDF ინსტრუმენტების განახლება Windows-ზე · სერიული კავშირის დამყარება ESP32-ით · Eclipse მოდული · VSCode გაფართოება · IDF მონიტორი
ESP-IDF ინსტრუმენტების განახლება Windows-ზე
დააინსტალირეთ ESP-IDF ინსტრუმენტები სკრიპტის გამოყენებით Windows-ის ბრძანების ხაზიდან გადადით იმ დირექტორიაში, სადაც ESPIDF არის დაინსტალირებული. შემდეგ გაუშვით:
დააინსტალირეთ.bat
Powershell-ისთვის, გადადით დირექტორიაში, სადაც დაინსტალირებულია ESP-IDF. შემდეგ გაუშვით:
install.ps1
ეს ჩამოტვირთავს და დააინსტალირებს ESP-IDF-ის გამოსაყენებლად საჭირო ინსტრუმენტებს. თუ ინსტრუმენტის კონკრეტული ვერსია უკვე დაინსტალირებულია, არანაირი ქმედება არ განხორციელდება. ინსტრუმენტები ჩამოიტვირთება და დაინსტალირდება ESP-IDF ინსტრუმენტების ინსტალერის პროცესში მითითებულ დირექტორიაში. ნაგულისხმევად, ეს არის C:Usersusername.espressif.
დაამატეთ ESP-IDF ინსტრუმენტები PATH-ში ექსპორტის სკრიპტის გამოყენებით. ESP-IDF ინსტრუმენტების ინსტალერი ქმნის დაწყების მენიუს მალსახმობს oESP-IDF ბრძანების სტრიქონისთვის. ეს მალსახმობი ხსნის ბრძანების სტრიქონის ფანჯარას, სადაც ყველა ინსტრუმენტი უკვე არის.
ხელმისაწვდომია. ზოგიერთ შემთხვევაში, შეიძლება დაგჭირდეთ ESP-IDF-თან მუშაობა ბრძანების სტრიქონის ფანჯარაში, რომელიც არ იყო გაშვებული ამ მალსახმობის გამოყენებით. თუ ასეა, მიჰყევით ქვემოთ მოცემულ ინსტრუქციებს PATH-ში ESP-IDF ინსტრუმენტების დასამატებლად. ბრძანების სტრიქონში, სადაც 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-სა და კომპიუტერს შორის.
ესპრესივის სისტემები
24 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ESP32-ის კომპიუტერთან დაკავშირება USB კაბელის გამოყენებით შეაერთეთ ESP32 დაფა კომპიუტერთან. თუ მოწყობილობის დრაივერი ავტომატურად არ დაინსტალირდება, იპოვეთ USB-სერიული გადამყვანი ჩიპი თქვენს ESP32 დაფაზე (ან გარე გადამყვანი დონგლზე), მოძებნეთ დრაივერები ინტერნეტში და დააინსტალირეთ ისინი. ქვემოთ მოცემულია Espressif-ის მიერ წარმოებული ESP32 დაფების უმეტესობაზე დამონტაჟებული USB-სერიული გადამყვანი ჩიპების სია დრაივერების ბმულებთან ერთად:
· CP210x: CP210x USB-დან UART ხიდზე გადამყვანი VCP დრაივერები · FTDI: FTDI ვირტუალური COM პორტის დრაივერები გთხოვთ, იხილოთ დაფის მომხმარებლის სახელმძღვანელო გამოყენებული USB-დან სერიულ გადამყვან ჩიპზე. ზემოთ მოცემული დრაივერები ძირითადად საცნობაროა. ნორმალურ პირობებში, დრაივერები უნდა იყოს ოპერაციულ სისტემასთან ერთად და ავტომატურად დაინსტალირებული დაფის კომპიუტერთან შეერთებისას.
შეამოწმეთ პორტი Windows-ზე. შეამოწმეთ იდენტიფიცირებული COM პორტების სია Windows Device Manager-ში. გათიშეთ ESP32 და ხელახლა შეაერთეთ, რათა დაადასტუროთ, რომელი პორტი ქრება სიიდან და შემდეგ ისევ ჩნდება. ქვემოთ მოცემულ ფიგურებში ნაჩვენებია ESP32 DevKitC-ისა და ESP32 WROVER KIT-ის სერიული პორტი.
სურ. 13: ESP32-DevKitC-ის USB-დან UART-მდე ხიდი Windows Device Manager-ში
პორტის შემოწმება Linux-სა და macOS-ზე თქვენი ESP32 დაფის (ან გარე გადამყვანი დონგლის) სერიული პორტის მოწყობილობის სახელის შესამოწმებლად, შეასრულეთ ეს ბრძანება ორჯერ, ჯერ დაფა/დონგლი გამორთული, შემდეგ კი შეერთებული. პორტი, რომელიც მეორედ გამოჩნდება, არის ის, რაც გჭირდებათ: Linux
ls /dev/tty*
macOS
ესპრესივის სისტემები
25 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
სურ. 14: ESP-WROVER-KIT-ის ორი USB სერიული პორტი Windows Device Manager-ში
ესპრესივის სისტემები
26 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ls /dev/cu.* შენიშვნა: macOS მომხმარებლები: თუ სერიულ პორტს ვერ ხედავთ, შეამოწმეთ, რომ USB/სერიული დრაივერები დაინსტალირებული გაქვთ. დრაივერებთან ბმულებისთვის იხილეთ განყოფილება „ESP32-ის კომპიუტერთან დაკავშირება“. macOS High Sierra-ს (10.13) შემთხვევაში, შესაძლოა, დრაივერებისთვის ჩატვირთვის ნებართვაც მოგიწიოთ. გახსენით „სისტემის პარამეტრები“ -> „უსაფრთხოება და კონფიდენციალურობა“ -> „ზოგადი“ და შეამოწმეთ, ხომ არ არის აქ ნაჩვენები შეტყობინება oSystem Software-ის შესახებ დეველოპერის lp-დან, სადაც დეველოპერის სახელია Silicon Labs ან FTDI.
Linux-ზე მომხმარებლის დამატება დიალაუტ ჯგუფში ამჟამად შესულ მომხმარებელს უნდა ჰქონდეს USB-ის საშუალებით სერიულ პორტზე წაკითხვისა და ჩაწერის წვდომა. Linux-ის დისტრიბუციების უმეტესობაზე ეს ხდება მომხმარებლის დიალაუტ ჯგუფში შემდეგი ბრძანების გამოყენებით დამატებით:
sudo usermod -a -G აკრიფეთ $USER
Arch Linux-ზე ეს კეთდება მომხმარებლის uucp ჯგუფში დამატებით შემდეგი ბრძანებით:
sudo usermod -a -G uucp $USER
დარწმუნდით, რომ ხელახლა შედით სისტემაში, რათა ჩართოთ სერიული პორტის წაკითხვისა და ჩაწერის ნებართვები.
სერიული კავშირის შემოწმება ახლა დარწმუნდით, რომ სერიული კავშირი ფუნქციონირებს. ამის გაკეთება შეგიძლიათ სერიული ტერმინალის პროგრამის გამოყენებით, ESP32-ის გადატვირთვის შემდეგ ტერმინალზე რაიმე გამომავალი სიგნალის შემოწმებით. ESP32-ზე ნაგულისხმევი კონსოლის ბაუდის სიჩქარეა 115200.
Windows და Linux ამ მაგალითშიampჩვენ გამოვიყენებთ PuTTY SSH კლიენტს, რომელიც ხელმისაწვდომია როგორც Windows-ისთვის, ასევე Linux-ისთვის. შეგიძლიათ გამოიყენოთ სხვა სერიული პროგრამები და დააყენოთ კომუნიკაციის პარამეტრები, როგორც ქვემოთაა მოცემული. გაუშვით ტერმინალი და დააყენეთ იდენტიფიცირებული სერიული პორტი. გადაცემის სიჩქარე = 115200 (საჭიროების შემთხვევაში, შეცვალეთ ეს გამოყენებული ჩიპის ნაგულისხმევ სიჩქარეზე), მონაცემთა ბიტები = 8, გაჩერების ბიტები = 1 და პარიტეტი = N. ქვემოთ მოცემულია მაგალითებიampWindows-სა და Linux-ზე პორტისა და ასეთი გადაცემის პარამეტრების დაყენების ეკრანის ანაბეჭდები (მოკლედ აღწერილია როგორც 115200-8-1-N). გახსოვდეთ, რომ ზუსტად იგივე სერიული პორტი უნდა აირჩიოთ, რომელიც ზემოთ მოცემულ ნაბიჯებში მიუთითეთ. შემდეგ გახსენით სერიული პორტი ტერმინალში და შეამოწმეთ, ხედავთ თუ არა ESP32-ის მიერ დაბეჭდილ რაიმე ჟურნალს. ჟურნალის შინაარსი დამოკიდებული იქნება ESP32-ზე ჩატვირთულ აპლიკაციაზე, იხილეთ მაგ.ampგამომავალი.
შენიშვნა: კომუნიკაციის მუშაობის დადასტურების შემდეგ დახურეთ სერიული ტერმინალი. თუ ტერმინალის სესიას გახსნილად დატოვებთ, სერიული პორტი მოგვიანებით პროგრამული უზრუნველყოფის ატვირთვისთვის მიუწვდომელი გახდება.
macOS სერიული ტერმინალის პროგრამის ინსტალაციის უსიამოვნებისგან თავის დასაღწევად, macOS გთავაზობთ ეკრანის ბრძანებას. · როგორც განხილულია Linux-სა და macOS-ზე პორტის შემოწმების განყოფილებაში, გაუშვით:
ls /dev/cu.* · თქვენ უნდა ნახოთ მსგავსი შედეგი:
/dev/cu.Bluetooth-შემავალი-პორტი /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· გამომავალი სიგნალი განსხვავდება თქვენს კომპიუტერთან დაკავშირებული დაფების ტიპისა და რაოდენობის მიხედვით. შემდეგ აირჩიეთ თქვენი დაფის მოწყობილობის სახელი და გაუშვით (საჭიროების შემთხვევაში, შეცვალეთ o115200pto გამოყენებული ჩიპის ნაგულისხმევ ბაუდის სიჩქარეზე):
screen /dev/cu.device_name 115200 შეცვალეთ device_name ls /dev/cu.* ბრძანების გაშვებისას ნაპოვნი სახელით.
ესპრესივის სისტემები
27 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
სურ. 15: სერიული კომუნიკაციის დაყენება PuTTY-ში Windows-ზე
ესპრესივის სისტემები
28 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
სურ. 16: სერიული კომუნიკაციის დაყენება PuTTY-ში Linux-ზე
ესპრესივის სისტემები
29 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
· თქვენ ეძებთ ეკრანზე გამოტანილ ჟურნალს. ჟურნალის შინაარსი დამოკიდებული იქნება ESP32-ზე ჩატვირთულ აპლიკაციაზე, იხილეთ მაგ.ample გამომავალი. ეკრანის სესიიდან გასასვლელად აკრიფეთ Ctrl-A + .
შენიშვნა: კომუნიკაციის მუშაობის დადასტურების შემდეგ, არ დაგავიწყდეთ ეკრანის სესიიდან გამოსვლა. თუ ამას ვერ შეძლებთ და უბრალოდ დახურავთ ტერმინალის ფანჯარას, სერიული პორტი მოგვიანებით firmware-ის ატვირთვისთვის მიუწვდომელი გახდება.
Example გამომავალი An exampჟურნალი ქვემოთ არის ნაჩვენები. თუ ვერაფერს ხედავთ, გადატვირთეთ დაფა. ets 8 ივნისი 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) და 2016 წლის 8 ივნისი, 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) ჩატვირთვა: კომპილაციის დრო 18:48:10
…
თუ ხედავთ წასაკითხ ჟურნალის გამომავალ ინფორმაციას, ეს ნიშნავს, რომ სერიული კავშირი მუშაობს და თქვენ მზად ხართ ინსტალაციის გასაგრძელებლად და ბოლოს აპლიკაციის ESP32-ზე ატვირთვისთვის.
შენიშვნა: სერიული პორტის ზოგიერთი გაყვანილობის კონფიგურაციისთვის, სერიული RTS და DTR პინები უნდა გამოირთოს ტერმინალის პროგრამაში, სანამ ESP32 ჩაიტვირთება და სერიული გამომავალი გამოჩნდება. ეს დამოკიდებულია თავად აპარატურაზე, განვითარების დაფების უმეტესობას (მათ შორის ყველა Espressif დაფას) ეს პრობლემა არ აქვს. პრობლემა არსებობს, თუ RTS და DTR პირდაპირ არის დაკავშირებული EN და GPIO0 პინებთან. დამატებითი ინფორმაციისთვის იხილეთ esptool-ის დოკუმენტაცია.
თუ ESP32 შემუშავებისთვის პროგრამული უზრუნველყოფის ინსტალაციისას აქ მოხვდით მე-5 ნაბიჯიდან - ESP-IDF-ის პირველი ნაბიჯები, მაშინ შეგიძლიათ გააგრძელოთ მე-5 ნაბიჯით - ESP-IDF-ის პირველი ნაბიჯები.
IDF Monitor IDF Monitor ძირითადად სერიული ტერმინალის პროგრამაა, რომელიც სერიულ მონაცემებს გადასცემს სამიზნე მოწყობილობის სერიულ პორტს და მისგან. ის ასევე გთავაზობთ IDF-ისთვის დამახასიათებელ ზოგიერთ ფუნქციას. IDF Monitor-ის გაშვება შესაძლებელია IDF პროექტიდან idf.py monitor-ის გაშვებით.
კლავიატურის მალსახმობები IDF მონიტორთან მარტივი ურთიერთქმედებისთვის გამოიყენეთ ცხრილში მოცემული კლავიატურის მალსახმობები.
ესპრესივის სისტემები
30 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
კლავიატურის მალსახმობი Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (ან A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (ან I)
· Ctrl+H (ან H)
· Ctrl+X (ან X)
Ctrl+C
მოქმედება
აღწერა
პროგრამიდან გასვლა მენიუს Escape ღილაკი მენიუს სიმბოლოს დისტანციური მართვის პულტზე გაგზავნა
გაგზავნეთ გასასვლელი სიმბოლო თავად დისტანციურ მაუწყებელზე
RTS ხაზის მეშვეობით აპლიკაციის დასაპაუზებლად, სამიზნე გადააყენეთ bootloader-ში
სამიზნე დაფის გადატვირთვა RTS-ის საშუალებით
პროექტის შექმნა და ფლეშ-ვერსიის განთავსება
მხოლოდ აპლიკაციის შექმნა და ფლეშ-ინსტალაცია
ჟურნალის გამომავალი ბეჭდვის შეჩერება/განახლება ეკრანზე
ჟურნალის შეჩერების/განახლების გამომავალი შენახულია file
გაჩერების/გაგრძელების დროamps
ბეჭდვა
კლავიატურის ყველა მალსახმობის ჩვენება
დააჭირეთ და მიჰყევით ქვემოთ მოცემული ერთ-ერთი ღილაკის გამოყენებით.
სამიზნე მოწყობილობას RTS ხაზის მეშვეობით (თუ დაკავშირებულია) bootloader-ში აბრუნებს, ისე, რომ დაფა არაფერს გაუშვას. სასარგებლოა, როდესაც სხვა მოწყობილობის ჩატვირთვის მოლოდინი გჭირდებათ. სამიზნე დაფას აბრუნებს და აპლიკაციას RTS ხაზის მეშვეობით (თუ დაკავშირებულია).
პროექტის ფლეშ სამიზნეს გასაშვებად idf_monitor-ს აჩერებს, შემდეგ კი idf_monitor-ს განაახლებს. ნებისმიერი შეცვლილი წყარო fileხელახლა კომპილირდება და შემდეგ ხელახლა ფლეშირდება. Target encrypted-flash მუშაობს, თუ idf_monitor დაიწყო -E არგუმენტით. აჩერებს idf_monitor-ს app-flash სამიზნის გასაშვებად, შემდეგ კი განაახლებს idf_monitor-ს. ფლეშ სამიზნის მსგავსად, მაგრამ მხოლოდ მთავარი აპლიკაცია იქმნება და ხელახლა ფლეშირდება. Target encrypted-app-flash მუშაობს, თუ idf_monitor დაიწყო -E არგუმენტით. გააქტიურებისას უარყოფს ყველა შემომავალ სერიულ მონაცემს. საშუალებას იძლევა სწრაფად შეაჩეროთ და შეამოწმოთ ჟურნალის გამომავალი მონიტორის გამორთვის გარეშე. ქმნის file პროექტის დირექტორიაში და გამომავალი იწერება იქ file სანამ ეს არ გამოირთვება იმავე კლავიატურის მალსახმობით (ან IDF Monitor არ გამოირთვება). IDF Monitor-ს შეუძლია დროის აღრიცხვის დაბეჭდვაamp თითოეული ხაზის დასაწყისში. დროის ყველაზე მაღალი მაჩვენებელიamp ფორმატის შეცვლა შესაძლებელია –times-ის მიხედვითamp-format ბრძანების ხაზის არგუმენტი.
გადით პროგრამიდან
გაშვებული აპლიკაციის შეწყვეტა
აპლიკაციის გაშვების დროს გამართვისთვის IDF მონიტორის დაპაუზება და GDB პროექტის დებაგერის გაშვება. ამისათვის საჭიროა :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME ოფციის ჩართვა.
Ctrl-] და Ctrl-T-ს გარდა, დაჭერილი ნებისმიერი ღილაკი გაიგზავნება სერიული პორტის მეშვეობით.
IDF-ის სპეციფიკური მახასიათებლები
მისამართის ავტომატური დეკოდირება როდესაც ESP-IDF გამოაქვს 0x4________ ფორმის თექვსმეტობითი კოდის მისამართს, IDF Monitor იყენებს addr2line_-ს საწყის კოდში მდებარეობის მოსაძებნად და ფუნქციის სახელის მოსაძებნად.
თუ ESP-IDF აპლიკაცია ითიშება და პანიკაში ჩავარდება, წარმოიქმნება რეგისტრის დემპინგი და უკუკავშირი, როგორიცაა შემდეგი:
ესპრესივის სისტემები
31 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
გურუს მედიტაციის შეცდომა 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
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 გამონაკლისს წარმოადგენს:
0x0000001d
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor-ი დამატებით დეტალებს ამატებს ნაგავს:
გურუს მედიტაციის შეცდომა StoreProhibited ტიპისა 0 ბირთვზე მოხდა. გამონაკლისი იყო
დაუმუშავებელი.
რეგისტრაციის დემპინგი:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: გააკეთეთ რამე_გაფუჭებისთვის /home/gus/esp/32/idf/ex-ზეamples/დაიწყე/
hello_world/main/./hello_world_main.c:57
(ჩასმულია) inner_dont_crash-ის მიერ /home/gus/esp/32/idf/ex-შიamples/დაიწყე/გამარჯობა_
world/main/./hello_world_main.c:52
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 გამონაკლისს წარმოადგენს:
0x0000001d
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/ex-შიamples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash /home/gus/esp/32/idf/ex-ზეamples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: არ ხდება ავარია /home/gus/esp/32/idf/ex-ზეamples/get-started/hello_world/main/./hello_world_main.c:42 0x400dbf82: app_main /home/gus/esp/32/idf/ex-შიamples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task /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 კონკრეტული ბრძანების ხაზით.
ესპრესივის სისტემები
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 მხარს უჭერს ისეთ ბრძანებებს, როგორიცაა მეხსიერების და ცვლადების წაკითხვა, ზარის დასტის ჩარჩოების შემოწმება და ა.შ. მიუხედავად იმისა, რომ GDBStub ნაკლებად მრავალმხრივია, ვიდრე J.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 სერიული ხაზის მეშვეობით. თუ ეს ხაზი არ არის დაკავშირებული, მომხმარებლებს შეუძლიათ თავიანთი სამიზნე ხაზის გადატვირთვა (boardns Reset ღილაკზე დაჭერით).
შენიშვნა: ფონზე, IDF Monitor ასრულებს შემდეგ ბრძანებას GDB-ის გასაშვებად:
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`გამარჯობა NAME ჩიპო`
გამომავალი ფილტრაცია IDF მონიტორის გამოძახება შესაძლებელია როგორც idf.py monitor –print-filter=”xyz”, სადაც –print-filter არის გამომავალი ფილტრაციის პარამეტრი. ნაგულისხმევი მნიშვნელობა არის ცარიელი სტრიქონი, რაც ნიშნავს, რომ ყველაფერი იბეჭდება.
დასაბეჭდი ინფორმაციის შეზღუდვა შეიძლება განისაზღვროს სერიის სახითtag>: ნივთები, სადაცtag> არის tag სტრიქონი და არის სიმბოლო {N, E, W, I, D, V, *} სიმრავლიდან, რომელიც მიუთითებს ჟურნალირების დონეზე.
მაგampლე, PRINT_FILTER=”tag1:W" ემთხვევა და ბეჭდავს მხოლოდ ESP_LOGW("-ით ჩაწერილ გამოსავალს")tag1”, …) ან უფრო დაბალი სიზუსტის დონეზე, მაგ. ESP_LOGE(“tag1″, …). არ არის მითითებული ან *-ის გამოყენებით ნაგულისხმევად დაყენებულია Verbose დონე.
შენიშვნა: პირველადი ჟურნალირება გამოიყენეთ, რათა კომპილაციის დროს გამორთოთ არასაჭირო გამომავალი მონაცემები ჟურნალირების ბიბლიოთეკის მეშვეობით. IDF მონიტორით გამომავალი მონაცემების ფილტრაცია მეორადი გადაწყვეტაა, რომელიც შეიძლება სასარგებლო იყოს ფილტრაციის პარამეტრების რეგულირებისთვის აპლიკაციის ხელახალი კომპილაციის გარეშე.
თქვენი აპლიკაცია tags არ უნდა შეიცავდეს ინტერვალებს, ვარსკვლავი *-ს ან ორწერტილებს : რათა თავსებადი იყოს გამომავალი ფილტრაციის ფუნქციასთან.
თუ თქვენს აპლიკაციაში გამომავალი მონაცემების ბოლო სტრიქონს არ მოჰყვება გადატანის სიმბოლო, გამომავალი მონაცემების ფილტრაცია შეიძლება დაიბნეს, ანუ მონიტორი დაიწყებს ხაზის ბეჭდვას და მოგვიანებით აღმოაჩენს, რომ ხაზი არ უნდა დაეწერათ. ეს ცნობილი პრობლემაა და მისი თავიდან აცილება შესაძლებელია გადატანის სიმბოლოს დამატებით (განსაკუთრებით მაშინ, როდესაც ამის შემდეგ მაშინვე არ მოჰყვება გამომავალი).
ესპრესივის სისტემები
33 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
Exampფილტრაციის წესების სია:
· * შეიძლება გამოყენებულ იქნას ნებისმიერის შესატყვისად tagsთუმცა, სტრიქონი PRINT_FILTER=”*:I tag1:E“-სთან დაკავშირებით tag1 მხოლოდ შეცდომებს ბეჭდავს, რადგან წესი tag1-ს *-ის წესთან შედარებით უფრო მაღალი პრიორიტეტი აქვს.
· ნაგულისხმევი (ცარიელი) წესი *:V-ის ეკვივალენტურია, რადგან ყველა tag Verbose დონეზე ან უფრო დაბალ დონეზე ყველაფრის შესაბამისობას ნიშნავს.
· „*:N“ თრგუნავს არა მხოლოდ ჟურნალირების ფუნქციებიდან მიღებულ მონაცემებს, არამედ printf-ის და ა.შ. მიერ შესრულებულ ბეჭდვებსაც. ამის თავიდან ასაცილებლად გამოიყენეთ *:E ან უფრო მაღალი დონის სიზუსტე.
· წესებიtag1:V”, “tag1:v”, „tag1:”, “tag1:*“, და „tag1” ეკვივალენტურია. · წესი „tag1:W tag1:E” ეკვივალენტურია „tag1:E“, რადგან იგივეს ნებისმიერი შემდგომი შემთხვევა tag
სახელი წინას ცვლის. · წესი „tag1: მე tagმხოლოდ 2:W” ბეჭდავს tag1 ინფორმაციის სიზუსტის დონეზე ან უფრო დაბალ დონეზე და tag2 გაფრთხილებაზე
სიტყვასიტყვიერების დონე ან უფრო დაბალი. · წესი „tag1: მე tag2:W tag3:N” არსებითად წინას ეკვივალენტურია, რადგან tag3:N განსაზღვრავს
რომ tag3 არ უნდა დაიბეჭდოს. · tag3:N წესში „tag1: მე tag2:W tag3:N *:V” უფრო მნიშვნელოვანია, რადგან მის გარეშე tag3:N
tagშესაძლოა 3 შეტყობინება დაბეჭდილიყო; შეცდომები tag1 და tag2 დაიბეჭდება მითითებულ (ან უფრო დაბალ) დეტალურ დონეზე და ყველაფერი დანარჩენი დაიბეჭდება ნაგულისხმევად.
უფრო რთული ფილტრაციის მაგალითიampშემდეგი ჟურნალის ფრაგმენტი მიღებული იქნა ფილტრაციის პარამეტრების გარეშე:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: 0x30000-ზე გამოსახულებას აქვს არასწორი მაგიური ბაიტი W (31) esp_image: 0x30000-ზე გამოსახულებას აქვს არასწორი SPI რეჟიმი 255 E (39) ჩატვირთვა: ქარხნული აპლიკაციის დანაყოფი არ არის ჩატვირთვადი I (568) cpu_start: Pro პროცესორი იტვირთება. I (569) heap_init: ინიციალიზაცია. ოპერატიული მეხსიერება ხელმისაწვდომია დინამიური განაწილებისთვის: I (603) cpu_start: Pro პროცესორის გაშვების მომხმარებლის კოდი 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 დრაივერის დავალება: 3ffdbf84, prio:23, stack:4096, core=0
ფილტრაციის პარამეტრებისთვის PRINT_FILTER=”wifi esp_image:E light_driver:I” მიღებული შედეგი მოცემულია ქვემოთ:
E (31) esp_image: 0x30000-ზე გამოსახულებას აქვს არასწორი მაგიური ბაიტი 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” ოფციები შემდეგ შედეგს აჩვენებს:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: ინიციალიზაცია. ოპერატიული მეხსიერება ხელმისაწვდომია დინამიური განაწილებისთვის: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
IDF მონიტორის ცნობილი პრობლემები
Windows-ზე დაფიქსირებული პრობლემები
· ისრის ღილაკები, ისევე როგორც ზოგიერთი სხვა ღილაკი, არ მუშაობს GDB-ში Windows-ის კონსოლის შეზღუდვების გამო. · ზოგჯერ, როდესაც oidf.pype გაითიშება, ის შეიძლება გაჩერდეს 30 წამამდე, სანამ IDF მონიტორი განაახლებს მუშაობას. · როდესაც ogdbpis გაშვებულია, ის შეიძლება გაჩერდეს მცირე ხნით, სანამ GDBStub-თან კომუნიკაციას დაიწყებს.
ესპრესივის სისტემები
34 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. Linux-ისა და macOS-ისთვის სტანდარტული ინსტრუმენტების ჯაჭვის დაყენება
ინსტალაციის ეტაპობრივი ინსტრუქცია ეს არის დეტალური ინსტრუქცია ინსტალაციის პროცესში.
შემუშავების გარემოს დაყენება ეს არის თქვენი ESP32-ისთვის ESP-IDF-ის დაყენების ნაბიჯები. · ნაბიჯი 1. წინაპირობების ინსტალაცია · ნაბიჯი 2. ESP-IDF-ის მიღება · ნაბიჯი 3. ინსტრუმენტების დაყენება · ნაბიჯი 4. გარემოს ცვლადების დაყენება · ნაბიჯი 5. ESP-IDF-ზე პირველი ნაბიჯები
ნაბიჯი 1. ინსტალაციის წინაპირობები ESP-IDF-ის ESP32-თან გამოსაყენებლად, თქვენ უნდა დააინსტალიროთ თქვენი ოპერაციული სისტემის მიხედვით რამდენიმე პროგრამული პაკეტი. ეს დაყენების სახელმძღვანელო დაგეხმარებათ Linux-სა და macOS-ზე დაფუძნებულ სისტემებზე ყველაფრის ინსტალაციაში.
Linux-ის მომხმარებლებისთვის ESP-IDF-ის გამოყენებით კომპილაციისთვის დაგჭირდებათ შემდეგი პაკეტები. შესასრულებელი ბრძანება დამოკიდებულია Linux-ის რომელ დისტრიბუციას იყენებთ:
· 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 update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 კვლავ მხარდაჭერილია, მაგრამ უკეთესი მომხმარებლის გამოცდილებისთვის რეკომენდებულია CentOS ვერსია 8. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
შენიშვნა: · ESP-IDF-თან გამოსაყენებლად საჭიროა CMake ვერსია 3.16 ან უფრო ახალი. თუ თქვენს ოპერაციული სისტემის ვერსიებს არ აქვთ შესაბამისი ვერსია, გაუშვით otools/idf_tools.py install cmakepto. · თუ ზემოთ მოცემულ სიაში თქვენს Linux დისტრიბუციას ვერ ხედავთ, გთხოვთ, გაეცნოთ მის დოკუმენტაციას, რათა გაარკვიოთ, რომელი ბრძანება გამოიყენოთ პაკეტის ინსტალაციისთვის.
macOS-ის მომხმარებლებისთვის ESP-IDF გამოიყენებს Python-ის ვერსიას, რომელიც macOS-ზე ნაგულისხმევად არის დაინსტალირებული. · CMake & Ninja ბილდის ინსტალაცია: თუ გაქვთ HomeBrew, შეგიძლიათ გაუშვათ: brew install cmake ninja dfu-util თუ გაქვთ MacPorts, შეგიძლიათ გაუშვათ: sudo port install cmake ninja dfu-util წინააღმდეგ შემთხვევაში, macOS-ის ინსტალაციის ჩამოსატვირთად იხილეთ CMake და Ninja-ს მთავარი გვერდები.
ესპრესივის სისტემები
35 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
· უფრო სწრაფი აწყობისთვის ასევე რეკომენდებულია ccache-ის ინსტალაცია. თუ თქვენ გაქვთ HomeBrew, ამის გაკეთება შესაძლებელია brew install ccache-ის ან sudo port install ccache-ის მეშვეობით MacPort-ებზე.
შენიშვნა: თუ რომელიმე ნაბიჯის დროს მსგავსი შეცდომა გამოჩნდება: 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: შესრულებად ფაილში არასწორი CPU ტიპია: ~/.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-ის გამოყენებით, ქვემოთ მოცემული ინსტრუქციების შესაბამისად, რომლებიც სპეციფიკურია თქვენი ოპერაციული სისტემისთვის. გახსენით ტერმინალი და გაუშვით შემდეგი ბრძანებები:
ესპრესივის სისტემები
36 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –რეკურსიული https://github.com/espressif/esp-idf.git
ESP-IDF ჩამოიტვირთება ~/esp/esp-idf-ში. იხილეთ ESP-IDF ვერსიები ინფორმაციისთვის, თუ რომელი ESP-IDF ვერსია გამოიყენოთ მოცემულ სიტუაციაში.
ნაბიჯი 3. ინსტრუმენტების დაყენება ESP-IDF-ის გარდა, თქვენ ასევე უნდა დააინსტალიროთ ESP-IDF-ის მიერ გამოყენებული ინსტრუმენტები, როგორიცაა კომპილატორი, დებაგერი, Python-ის პაკეტები და ა.შ., ESP32-ის მხარდამჭერი პროექტებისთვის. cd ~/esp/esp-idf ./install.sh esp32
ან Fish shell cd ~/esp/esp-idf ./install.fish esp32-ით
ზემოთ მოცემული ბრძანებები მხოლოდ ESP32-ისთვის ინსტრუმენტებს აყენებს. თუ აპირებთ პროექტების შემუშავებას მეტი ჩიპის სამიზნეებისთვის, მაშინ უნდა ჩამოთვალოთ ყველა მათგანი და გაუშვათ.ample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
ან Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2-ის გამოყენებით
ყველა მხარდაჭერილი სამიზნე მოწყობილობისთვის ხელსაწყოების დასაინსტალირებლად, გთხოვთ, გაუშვათ შემდეგი ბრძანება: cd ~/esp/esp-idf ./install.sh all
ან Fish shell cd ~/esp/esp-idf ./install.fish all-ის გამოყენებით
შენიშვნა: macOS-ის მომხმარებლებისთვის, თუ რომელიმე ნაბიჯის დროს მსგავსი შეცდომა გამოჩნდება:urlგახსნის შეცდომა [SSL: CERTIFICATE_VERIFY_FAILED] სერტიფიკატის დადასტურება ვერ მოხერხდა: ადგილობრივი გამცემის სერტიფიკატის მიღება შეუძლებელია (_ssl.c:xxx)
სერტიფიკატების დასაყენებლად შეგიძლიათ გაუშვათ Install Certificates.command თქვენი კომპიუტერის Python საქაღალდეში. დამატებითი ინფორმაციისთვის იხილეთ ESP-IDF ინსტრუმენტების ინსტალაციისას ჩამოტვირთვის შეცდომა.
ალტერნატივა File ჩამოტვირთვები ინსტრუმენტების ინსტალერი ჩამოტვირთავს რამდენიმე files მიმაგრებულია GitHub Releases-ზე. თუ GitHub-ზე წვდომა ნელია, მაშინ შესაძლებელია გარემოს ცვლადის დაყენება, რათა GitHub აქტივების ჩამოტვირთვისთვის Espressifns ჩამოტვირთვის სერვერი უპირატესობას ანიჭებდეს.
შენიშვნა: ეს პარამეტრი აკონტროლებს მხოლოდ GitHub-ის ვერსიებიდან გადმოწერილ ინდივიდუალურ ინსტრუმენტებს და არ ცვლის URLs გამოიყენება ნებისმიერ Git საცავზე წვდომისთვის.
ინსტრუმენტების ინსტალაციისას Espressif ჩამოტვირთვის სერვერის უპირატესობის მინიჭებისთვის, install.sh-ის გაშვებისას გამოიყენეთ ბრძანებების შემდეგი თანმიმდევრობა:
ესპრესივის სისტემები
37 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
cd ~/esp/esp-idf ექსპორტი IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
ინსტრუმენტების ინსტალაციის გზის მორგება ამ ეტაპზე წარმოდგენილი სკრიპტები აინსტალირებს ESP-IDF-ისთვის საჭირო კომპილაციის ინსტრუმენტებს მომხმარებლის საშინაო დირექტორიაში: $HOME/.espressif Linux-ზე. თუ გსურთ ინსტრუმენტების ინსტალაცია სხვა დირექტორიაში, ინსტალაციის სკრიპტების გაშვებამდე დააყენეთ გარემოს ცვლადი IDF_TOOLS_PATH. დარწმუნდით, რომ თქვენს მომხმარებლის ანგარიშს აქვს საკმარისი ნებართვები ამ გზის წასაკითხად და ჩასაწერად. IDF_TOOLS_PATH-ის შეცვლის შემთხვევაში, დარწმუნდით, რომ ის დაყენებულია ერთი და იგივე მნიშვნელობაზე ყოველ ჯერზე, როდესაც შესრულდება ინსტალაციის სკრიპტი (install.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და ა.შ.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. განაახლეთ კონფიგურაცია ტერმინალის სესიის გადატვირთვით ან source [path to pro] ბრძანების გაშვებით.file],
მაგისთვისample, source ~/.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 დირექტორია ESP-IDF-ში.
მნიშვნელოვანია: ESP-IDF-ის აწყობის სისტემა არ უჭერს მხარს სივრცეებს არც ESP-IDF-ის და არც პროექტებისკენ მიმავალ ბილიკებში.
დააკოპირეთ პროექტი get-started/hello_world ~/esp დირექტორიაში:
ესპრესივის სისტემები
38 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world.
შენიშვნა: არსებობს ყოფილის ფართო სპექტრიampლე პროექტები ყოფილიamples დირექტორია ESP-IDF-ში. თქვენ შეგიძლიათ დააკოპიროთ ნებისმიერი პროექტი ისე, როგორც ზემოთ იყო წარმოდგენილი და გაუშვათ იგი. ასევე შესაძლებელია აშენდეს ყოფილიampფაილები ადგილზეა მათი წინასწარი კოპირების გარეშე.
შეაერთეთ თქვენი მოწყობილობა ახლა შეაერთეთ თქვენი ESP32 დაფა კომპიუტერთან და შეამოწმეთ, რომელი სერიული პორტის ქვეშ ჩანს დაფა. სერიულ პორტებს აქვთ შემდეგი სახელწოდების ნიმუშები:
· Linux: იწყება /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 ბრძანებით. გაითვალისწინეთ, რომ პროექტში არსებული ბილდები და კონფიგურაციები, თუ ისინი არსებობს, ამ პროცესში გაიწმინდება და ინიციალიზებული იქნება. სამიზნე შეიძლება შენახული იყოს გარემოს ცვლადში, რათა საერთოდ გამოტოვოთ ეს ნაბიჯი. დამატებითი ინფორმაციისთვის იხილეთ სამიზნე ჩიპის არჩევა: set-target. თუ წინა ნაბიჯები სწორად შესრულდა, გამოჩნდება შემდეგი მენიუ:
სურ. 17: პროექტის კონფიგურაცია – მთავარი ფანჯარა თქვენ იყენებთ ამ მენიუს პროექტის სპეციფიკური ცვლადების დასაყენებლად, მაგ., Wi-Fi ქსელის სახელი და პაროლი, პროცესორის სიჩქარე და ა.შ. პროექტის menuconfig-ით დაყენება შეიძლება გამოტოვდეს hello_worldp-სთვის, რადგან ეს არისampლე გარბის
ესპრესივის სისტემები
39 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ნაგულისხმევი კონფიგურაცია.
ყურადღება: თუ იყენებთ ESP32-DevKitC დაფას ESP32-SOLO-1 მოდულით, ან ESP32-DevKitM-1 დაფას ESP32-MIN1-1(1U) მოდულით, გთხოვთ, ჩართოთ ერთბირთვიანი რეჟიმი (CONFIG_FREERTOS_UNICORE) მენიუს კონფიგურაციაში, ex-ის ფლეშირებამდე.amples.
შენიშვნა: თქვენს ტერმინალში მენიუს ფერები შეიძლება განსხვავებული იყოს. თქვენ შეგიძლიათ შეცვალოთ მისი გარეგნობა –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 ორობითი .bin-ის გენერირებით files.
მოწყობილობაზე ჩატვირთეთ ახლახან აწყობილი ბინარული ფაილები (bootloader.bin, partition-table.bin და hello_world.bin) თქვენს ESP32 დაფაზე შემდეგი ბრძანების შესრულებით:
idf.py -p PORT [-b BAUD] ციმციმებს
შეცვალეთ PORT თქვენი ESP32 დაფის სერიული პორტის სახელით. ასევე შეგიძლიათ შეცვალოთ flasher baud rate BAUD-ის საჭირო baud rate-ით ჩანაცვლებით. ნაგულისხმევი baud rate არის 460800. idf.py არგუმენტების შესახებ დამატებითი ინფორმაციისთვის იხილეთ idf.py.
შენიშვნა: ფლეშ ოფცია ავტომატურად აწყობს და ანახლებს პროექტს, ამიტომ idf.py build-ის გაშვება საჭირო არ არის.
ესპრესივის სისტემები
40 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ფლეშირების დროს პრობლემები შეგექმნათ? თუ მოცემული ბრძანების შესრულებისას ხედავთ შეცდომებს, როგორიცაა „შეუძლებელი დაკავშირება“ (Failed to connectp), ამის რამდენიმე მიზეზი შეიძლება იყოს. ერთ-ერთი მიზეზი შეიძლება იყოს esptool.py-ის მიერ წარმოქმნილი პრობლემები, რომელიც არის პროგრამა, რომელსაც იძახებს აწყობის სისტემა ჩიპის გადასატვირთად, ROM ჩამტვირთავთან ურთიერთქმედებისთვის და ფლეშ ფირმვერისთვის. ერთ-ერთი მარტივი გამოსავალია ხელით გადატვირთვა, რომელიც აღწერილია ქვემოთ და თუ ეს არ დაგეხმარებათ, შესაძლო პრობლემების შესახებ დამატებითი ინფორმაციის მოძიება შეგიძლიათ „გაუმჯობესების“ განყოფილებაში.
esptool.py ავტომატურად აღადგენს ESP32-ს USB-დან სერიულ გადამყვან ჩიპზე DTR და RTS კონტროლის ხაზების დადასტურებით, ანუ FTDI ან CP210x (დამატებითი ინფორმაციისთვის იხილეთ სერიული კავშირის დამყარება ESP32-თან). DTR და RTS კონტროლის ხაზები თავის მხრივ დაკავშირებულია ESP32-ის GPIO0 და CHIP_PU (EN) ქინძისთავებთან, რითაც იცვლება მოცულობა.tagDTR და RTS-ის დონეები ESP32-ს ჩატვირთავს Firmware Download რეჟიმში.ampმაგალითად, შეამოწმეთ ESP32 DevKitC დეველოპერის დაფის სქემა.
ზოგადად, ოფიციალურ esp-idf დეველოპერულ დაფებთან დაკავშირებით პრობლემები არ უნდა შეგექმნათ. თუმცა, esptool.py-ს არ შეუძლია თქვენი აპარატურის ავტომატურად გადატვირთვა შემდეგ შემთხვევებში:
· თქვენს აპარატურას არ აქვს DTR და RTS ხაზები, რომლებიც დაკავშირებულია GPIO0-სა და CHIP_PU-სთან · DTR და RTS ხაზები სხვადასხვაგვარად არის კონფიგურირებული · ასეთი სერიული მართვის ხაზები საერთოდ არ არსებობს
თქვენი აპარატურის ტიპის მიხედვით, შესაძლოა, თქვენი ESP32 დაფის ხელით გადაყვანა Firmware Download რეჟიმში (გადატვირთვა)ც იყოს შესაძლებელი.
· Espressif-ის მიერ წარმოებული დეველოპერული დაფებისთვის, ეს ინფორმაცია შეგიძლიათ იხილოთ შესაბამის საწყის სახელმძღვანელოებში ან მომხმარებლის სახელმძღვანელოებში. მაგ.ampმაგალითად, ESP-IDF დეველოპერის დაფის ხელით გადასაყენებლად, დააჭირეთ ჩატვირთვის ღილაკს (GPIO0) და შემდეგ EN ღილაკს (CHIP_PU).
· სხვა ტიპის აპარატურისთვის, სცადეთ 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 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev სერიული პორტი /dev/ttyUSB0 დაკავშირება…….._ ჩიპი არის ESP32D0WDQ6 (ვერსია 0) მახასიათებლები: WiFi, BT, ორმაგი ბირთვი, კოდირების სქემა არცერთი კრისტალი არის 40MHz MAC: 24:0a:c4:05:b9:14 stub-ის ატვირთვა… stub-ის გაშვება… stub-ის გაშვება… ბაუდის სიჩქარის შეცვლა 460800-მდე შეიცვალა. ფლეშ მეხსიერების ზომის კონფიგურაცია… შეკუმშული 3072 ბაიტი 103-მდე… ჩაწერა 0x00008000-ზე… (100%) 3072 ბაიტი (შეკუმშული 103) ჩაიწერა 0x00008000-ზე 0.0 წამში (ეფექტური 5962.8 კბიტ/წმ)… მონაცემთა ჰეში დადასტურებულია. შეკუმშული 26096 ბაიტი 15408-მდე… ჩაწერა 0x00001000-ზე… (100%) 26096 ბაიტი (შეკუმშული 15408) ჩაიწერა 0x00001000-ზე 0.4 წამში (ეფექტური 546.7 კბიტ/წმ)… მონაცემთა ჰეში დადასტურებულია. შეკუმშული 147104 ბაიტი 77364-მდე… ჩაწერა 0x00010000-ზე… (20 %) ჩაწერა 0x00014000-ზე… (40 %) ჩაწერა 0x00018000-ზე… (60 %) ჩაწერა 0x0001c000-ზე… (80 %)
(გაგრძელება შემდეგ გვერდზე)
ესპრესივის სისტემები
41 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
(გაგრძელება წინა გვერდიდან) ჩაწერა 0x00020000-ზე… (100%) 147104 ბაიტი (77364 შეკუმშული) ჩაიწერა 0x00010000-ზე 1.9 წამში (ეფექტური 615.5 კბიტ/წმ)… მონაცემთა ჰეში დადასტურებულია.
გასვლა… რთული გადატვირთვა RTS პინის საშუალებით… დასრულებულია
თუ ფლეშ პროცესის დასრულებისთვის პრობლემები არ იქნება, დაფა გადაიტვირთება და ჩაირთვება theohello_worldpapplication. თუ გსურთ idf.py-ის გაშვების ნაცვლად Eclipse-ის ან VS Code IDE-ს გამოყენება, გაეცანით Eclipse Plugin, VSCode Extension-ს.
გამომავალი მონაცემების მონიტორინგი იმის შესამოწმებლად, მუშაობს თუ არა ohello_worldpis, აკრიფეთ idf.py -p PORT monitor (არ დაგავიწყდეთ PORT-ის თქვენი სერიული პორტის სახელით ჩანაცვლება). ეს ბრძანება გაუშვებს IDF Monitor აპლიკაციას:
$ idf.py -p monitor 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 2016 წლის 8 ივნისი 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) და 2016 წლის 8 ივნისი, 00:22:57 …
გაშვებისა და დიაგნოსტიკური ჟურნალების ზემოთ გადახვევის შემდეგ, თქვენ უნდა ნახოთ oHello world!, რომელიც აპლიკაციამ დაბეჭდა.
... გამარჯობა სამყარო! გადატვირთვა 10 წამში... ეს არის esp32 ჩიპი 2 CPU ბირთვით, WiFi/BT/BLE, სილიკონის ვერსია 1, 2 მბ გარე ფლეშ მეხსიერება. მინიმალური თავისუფალი გროვის ზომა: 298968 ბაიტი. გადატვირთვა 9 წამში... გადატვირთვა 8 წამში... გადატვირთვა 7 წამში...
IDF მონიტორიდან გასასვლელად გამოიყენეთ Ctrl+ მალსახმობი. თუ IDF მონიტორი ატვირთვის შემდეგ მალევე ვერ ახერხებს მუშაობას, ან თუ ზემოთ მოცემული შეტყობინებების ნაცვლად ქვემოთ მოცემულის მსგავს შემთხვევით ნაგავს ხედავთ, თქვენი დაფა, სავარაუდოდ, 26 MHz კრისტალს იყენებს. დეველოპერული დაფების უმეტესობა 40 MHz-ს იყენებს, ამიტომ ESP-IDF ამ სიხშირეს ნაგულისხმევ მნიშვნელობად იყენებს.
თუ ასეთი პრობლემა გაქვთ, გააკეთეთ შემდეგი:
1. გამოდით მონიტორიდან. 2. დაბრუნდით მენიუს კონფიგურაციაში. 3. გადადით კომპონენტის კონფიგურაცია > აპარატურის პარამეტრები > მთავარი XTAL კონფიგურაცია > მთავარი XTAL
სიხშირე, შემდეგ შეცვალეთ CONFIG_XTAL_FREQ_SEL 26 MHz-ზე. 4. ამის შემდეგ, ხელახლა შექმენით და დააინსტალირეთ აპლიკაცია.
ესპრესივის სისტემები
42 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
ESP-IDF-ის მიმდინარე ვერსიაში, ESP32-ის მიერ მხარდაჭერილი ძირითადი XTAL სიხშირეებია:
· 26 MHz · 40 MHz
შენიშვნა: შეგიძლიათ ერთ ეტაპზე გააერთიანოთ აწყობა, ფლეშირება და მონიტორინგი შემდეგი ბრძანების შესრულებით: idf.py -p PORT ფლეშ მონიტორი
აგრეთვე იხილეთ: · IDF Monitor მოსახერხებელი მალსახმობებისთვის და IDF მონიტორის გამოყენების შესახებ დამატებითი დეტალებისთვის. · idf.py idf.py ბრძანებების და პარამეტრების სრული ინფორმაციისთვის.
ეს ყველაფერია, რაც გჭირდებათ ESP32-ის დასაწყებად! ახლა თქვენ მზად ხართ სცადოთ სხვა ექსტრემალური ვარიანტები.amples, ან პირდაპირ გადადით თქვენი საკუთარი აპლიკაციების შემუშავებაზე.
მნიშვნელოვანია: ზოგიერთი ყოფილიampფაილები არ უჭერენ მხარს ESP32-ს, რადგან საჭირო აპარატურა არ შედის ESP32-ში, ამიტომ მისი მხარდაჭერა შეუძლებელია. თუ აწყობთ ყოფილსampგთხოვთ, შეამოწმოთ README ფაილი file მხარდაჭერილი სამიზნეების ცხრილისთვის. თუ ეს არსებობს ESP32 სამიზნის ჩათვლით, ან ცხრილი საერთოდ არ არსებობს, მაგ.ampის ESP32-ზე იმუშავებს.
დამატებითი რჩევები
ნებართვების პრობლემები /dev/ttyUSB0 Linux-ის ზოგიერთ დისტრიბუციაში, ESP32-ის ფლეშირებისას შეიძლება მიიღოთ შეცდომის შეტყობინება "ვერ მოხერხდა პორტის /dev/ttyUSB0 გახსნა". ამ პრობლემის მოგვარება შესაძლებელია მიმდინარე მომხმარებლის dialout ჯგუფში დამატებით.
Python-ის თავსებადობა ESP-IDF მხარს უჭერს Python 3.7 ან უფრო ახალ ვერსიას. რეკომენდებულია თქვენი ოპერაციული სისტემის განახლება უახლეს ვერსიამდე, რომელიც აკმაყოფილებს ამ მოთხოვნას. სხვა ვარიანტები მოიცავს Python-ის ინსტალაციას წყაროებიდან ან Python-ის ვერსიის მართვის სისტემის გამოყენებას, როგორიცაა pyenv.
დაიწყეთ დაფის მხარდაჭერის პაკეტით. ზოგიერთ დეველოპერულ დაფაზე პროტოტიპების შექმნის დასაჩქარებლად, შეგიძლიათ გამოიყენოთ დაფის მხარდაჭერის პაკეტები (BSP), რაც კონკრეტული დაფის ინიციალიზაციას რამდენიმე ფუნქციის გამოძახებით მარტივს ხდის. BSP, როგორც წესი, მხარს უჭერს დეველოპერულ დაფაზე მოწოდებულ ყველა აპარატურულ კომპონენტს. პინოუტის განსაზღვრისა და ინიციალიზაციის ფუნქციების გარდა, BSP მოყვება დრაივერები გარე კომპონენტებისთვის, როგორიცაა სენსორები, დისპლეები, აუდიო კოდეკები და ა.შ. BSP-ები ნაწილდება IDF Component Manager-ის მეშვეობით, ამიტომ მათი პოვნა შესაძლებელია IDF კომპონენტების რეესტრში. აქ არის ყოფილიampროგორ დავამატოთ ESP-WROVER-KIT BSP თქვენს პროექტში: idf.py add-dependency esp_wrover_kit
მეტი ყოფილიampBSP-ის გამოყენების შესახებ ნაკლები ინფორმაცია შეგიძლიათ იხილოთ BSP-ში.amples საქაღალდე.
რჩევა: ESP-IDF-ის განახლება რეკომენდებულია ESP-IDF-ის დროდადრო განახლება, რადგან ახალი ვერსიები ასწორებს შეცდომებს და/ან ახალ ფუნქციებს გვთავაზობს. გთხოვთ გაითვალისწინოთ, რომ ESP-IDF-ის თითოეულ ძირითად და მცირე გამოშვებას აქვს მხარდაჭერის შესაბამისი პერიოდი და როდესაც ერთი გამოშვების განშტოება უახლოვდება სიცოცხლის ხანგრძლივობის დასასრულს (EOL), ყველა მომხმარებელს ვურჩევთ, განაახლონ თავიანთი პროექტები ESP-IDF-ის უფრო ახალ გამოშვებებზე. მხარდაჭერის პერიოდების შესახებ დამატებითი ინფორმაციისთვის იხილეთ ESP-IDF ვერსიები.
ესპრესივის სისტემები
43 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 1. დაწყება
განახლების უმარტივესი გზაა არსებული esp-idf საქაღალდის წაშლა და მისი ხელახლა კლონირება, თითქოს მე-2 ნაბიჯში აღწერილი საწყისი ინსტალაციის შესრულებას ახორციელებთ. მიიღეთ ESP-IDF. კიდევ ერთი გამოსავალია მხოლოდ შეცვლილი ინფორმაციის განახლება. განახლების პროცედურა დამოკიდებულია თქვენს მიერ გამოყენებულ ESP-IDF-ის ვერსიაზე. ESP-IDF-ის განახლების შემდეგ, ხელახლა შეასრულეთ ინსტალაციის სკრიპტი, იმ შემთხვევაში, თუ ESP-IDF-ის ახალი ვერსია მოითხოვს ინსტრუმენტების სხვადასხვა ვერსიებს. იხილეთ ინსტრუქციები მე-3 ნაბიჯში. დააყენეთ ინსტრუმენტები. ახალი ინსტრუმენტების ინსტალაციის შემდეგ, განაახლეთ გარემო ექსპორტის სკრიპტის გამოყენებით. იხილეთ ინსტრუქციები მე-4 ნაბიჯში. დააყენეთ გარემოს ცვლადები.
დაკავშირებული დოკუმენტები · სერიული კავშირის დამყარება ESP32-თან · Eclipse მოდული · VSCode გაფართოება · IDF მონიტორი
1.4 შექმენით თქვენი პირველი პროექტი
თუ უკვე დაინსტალირებული გაქვთ ESP-IDF და არ იყენებთ IDE-ს, შეგიძლიათ შექმნათ თქვენი პირველი პროექტი ბრძანების ხაზიდან, რომელიც მოჰყვება ბრძანების „პროექტის დაწყება Windows-ზე“ ან „პროექტის დაწყება Linux-სა და macOS-ზე“ ბრძანებებს.
1.5 ESP-IDF-ის დეინსტალაცია
თუ გსურთ ESP-IDF-ის წაშლა, გთხოვთ, მიჰყვეთ ESP-IDF-ის წაშლის ინსტრუქციას.
ესპრესივის სისტემები
44 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 2
API მითითება
2.1 API კონვენციები
ეს დოკუმენტი აღწერს ESP-IDF აპლიკაციის პროგრამირების ინტერფეისებისთვის (API) საერთო კონვენციებსა და დაშვებებს. ESP-IDF გთავაზობთ პროგრამირების ინტერფეისების რამდენიმე სახეობას:
· C ფუნქციები, სტრუქტურები, ჩამოთვლები, ტიპის განმარტებები და წინასწარი პროცესორის მაკროები, რომლებიც გამოცხადებულია საჯარო სათაურში fileESPIDF კომპონენტების s. პროგრამირების სახელმძღვანელოს API Reference განყოფილების სხვადასხვა გვერდი შეიცავს ამ ფუნქციების, სტრუქტურებისა და ტიპების აღწერილობას.
· სისტემის ფუნქციების, წინასწარ განსაზღვრული ცვლადების და პარამეტრების აწყობა. ეს დოკუმენტირებულია სისტემის აწყობის სახელმძღვანელოში. · Kconfig პარამეტრების გამოყენება შესაძლებელია კოდში და აწყობის სისტემაში (CMakeLists.txt) fileს. · ჰოსტის ინსტრუმენტები და მათი ბრძანების ხაზის პარამეტრები ასევე ESP-IDF ინტერფეისის ნაწილია. ESP-IDF შედგება კომპონენტებისგან, რომლებიც სპეციალურად ESP-IDF-ისთვის, ასევე მესამე მხარის ბიბლიოთეკებისთვისაა დაწერილი. ზოგიერთ შემთხვევაში, მესამე მხარის ბიბლიოთეკას ემატება ESP-IDF-ისთვის სპეციფიკური შეფუთვა, რაც უზრუნველყოფს ინტერფეისს, რომელიც უფრო მარტივია ან უკეთ არის ინტეგრირებული ESP-IDF-ის დანარჩენ ინსტრუმენტებთან. სხვა შემთხვევებში, მესამე მხარის ბიბლიოთეკის ორიგინალი API წარმოდგენილია აპლიკაციის შემქმნელებისთვის. შემდეგი სექციები განმარტავს ESP-IDF API-ების ზოგიერთ ასპექტს და მათ გამოყენებას.
2.1.1 შეცდომის დამუშავება
ESP-IDF API-ების უმეტესობა აბრუნებს esp_err_t ტიპის შეცდომის კოდებს. შეცდომების დამუშავების მიდგომების შესახებ დამატებითი ინფორმაციისთვის იხილეთ შეცდომების დამუშავების განყოფილება. შეცდომის კოდის მითითება შეიცავს 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 = "ჩემი_ტაიმერი"}, {}}
}; 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; /* არასწორია! .arg და .name ველები არ არის ინიციალიზებული */ esp_timer_create(&my_timer_args, &my_timer);
ESP-IDF-ის ყოფილი უმეტესობაampსტრუქტურის ინიციალიზაციისთვის იყენებენ C99-ით დანიშნულ ინიციალიზატორებს, რადგან ისინი უზრუნველყოფენ ველების ქვესიმრავლის დაყენების ლაკონურ გზას და დარჩენილი ველების ნულოვანი ინიციალიზაციის საშუალებას:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* სწორია, .arg და .name ველები ნულით ინიციალიზებულია */
};
C++ ენა არ უჭერს მხარს დანიშნულ ინიციალიზატორების სინტაქსს C++20-მდე, თუმცა GCC კომპილატორი ნაწილობრივ უჭერს მხარს მას, როგორც გაფართოებას. C++ კოდში ESP-IDF API-ების გამოყენებისას, შეგიძლიათ განიხილოთ შემდეგი შაბლონის გამოყენება:
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 server; esp_err_t err = httpd_start(&server, &config);
რეკომენდებულია ნაგულისხმევი ინიციალიზაციის მაკროების გამოყენება, როდესაც ისინი გათვალისწინებულია კონკრეტული კონფიგურაციის სტრუქტურისთვის.
2.1.3 კერძო API-ები
გარკვეული სათაური fileESP-IDF-ში არსებული s შეიცავს API-ებს, რომლებიც განკუთვნილია მხოლოდ ESP-IDF-ის საწყის კოდში გამოსაყენებლად და არა აპლიკაციების მიერ. ასეთი სათაური fileხშირად, სახელში ან გზაში შეიცავენ private ან esp_private ტერმინებს. გარკვეული კომპონენტები, როგორიცაა hal, მხოლოდ private API-ებს შეიცავს. კერძო API-ები შეიძლება წაიშალოს ან შეიცვალოს შეუთავსებელი გზით მცირე ან პატჩ რელიზებს შორის.
2.1.4 კომპონენტები ექსშიampპროექტები
ESP-IDF exampფაილები შეიცავს სხვადასხვა პროექტს, რომლებიც აჩვენებენ ESP-IDF API-ების გამოყენებას. კოდის დუბლირების შესამცირებლად ექსშიampამრიგად, კომპონენტებში განსაზღვრულია რამდენიმე გავრცელებული დამხმარე, რომლებსაც მრავალი ყოფილი იყენებს.amples.
ესპრესივის სისტემები
46 დოკუმენტის გამოხმაურების გაგზავნა
გამოშვება v5.0.9
თავი 2. API-ს მითითება
ეს მოიცავს კომპონენტებს, რომლებიც მდებარეობს
დოკუმენტები / რესურსები
![]() |
Espressif Systems ESP32 Dev Kitc-ის განვითარების დაფა [pdf] მომხმარებლის სახელმძღვანელო ESP32 Dev Kitc-ის განვითარების დაფა, ESP32, Dev Kitc-ის განვითარების დაფა, Kitc-ის განვითარების დაფა, განვითარების საბჭო, დაფა |
