Bordi i Zhvillimit ESP32 Dev Kitc
Informacioni i produktit
Specifikimet
- Produkti: ESP32
- Udhëzues Programimi: ESP-IDF
- Versioni i Publikimit: v5.0.9
- Prodhuesi: Espressif Systems
- Data e publikimit: 16 maj 2025
Udhëzimet e përdorimit të produktit
1. Filloni
Para se të filloni me ESP32, njihuni me
në vijim:
1.1 Hyrje
Mësoni rreth funksioneve dhe aftësive themelore të
ESP32.
1.2 Çfarë ju nevojitet
Sigurohuni që keni pajisjet dhe softuerët e nevojshëm:
- Hardware: Kontrolloni listën e pajisjeve të nevojshme
komponentët. - Software: Instaloni softuerin e nevojshëm
komponentët.
1.3 Instalimi
Ndiqni këto hapa për të instaluar IDE-në dhe për të konfiguruar
mjedisi:
- IDE: Instaloni IDE-në e rekomanduar për
programimi i ESP32. - Instalimi manual: Konfiguroni manualisht
mjedisin nëse është e nevojshme.
1.4 Ndërtoni Projektin Tuaj të Parë
Krijoni dhe ndërtoni projektin tuaj fillestar duke përdorur ESP32.
1.5 Çinstaloni ESP-IDF
Nëse është e nevojshme, mësoni se si ta çinstaloni ESP-IDF nga programi juaj.
sistemi.
2. Referenca e API-t
Referojuni dokumentacionit të API-t për informacion të detajuar mbi
protokollet e aplikacionit, trajtimi i gabimeve dhe konfigurimi
strukturat.
Pyetjet e bëra më shpesh (FAQ)
P: Si mund t'i zgjidh problemet e zakonshme me ESP32?
A: Referojuni seksionit të zgjidhjes së problemeve në udhëzuesin e programimit
ose vizitoni prodhuesin webfaqe për burimet mbështetëse.
P: A mund ta përdor ESP-IDF me mikrokontrollues të tjerë?
A: ESP-IDF është projektuar posaçërisht për ESP32, por mund të gjeni
pajtueshmëri me mikrokontrollues të tjerë Espressif.
ESP32
Udhëzues programimi ESP-IDF
Publikimi v5.0.9 i Espressif Systems më 16 maj 2025
Tabela e përmbajtjes
Tabela e përmbajtjes
i
1 Filloni
3
1.1 Hyrje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Çfarë ju nevojitet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Pajisjet kompjuterike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Softuer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Instalimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Instalimi Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Ndërtoni Projektin Tuaj të Parë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 Çinstalimi i ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 Referenca e API-t
45
2.1 Konventat API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Trajtimi i gabimeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Strukturat e konfigurimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 API private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.4 Komponentët në ishampprojektet le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 Stabiliteti i API-t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Protokollet e Aplikimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.1 Porta ASIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 Klienti ESP HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 Kontrolli Lokal i ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 Lidhja Seriale Skllave ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 Paketa e Certifikatave ESP x509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 Serveri HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 Serveri HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 ICMP Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 Shërbimi mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 Mbed TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 Shtresa e Rrjetit IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 API-ja e Bluetooth-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 Bluetooth® i Përbashkët . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 Bluetooth® me Energji të Ulët . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 Kontrolluesi dhe HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 API-të pritëse të bazuara në NimBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 Referenca e Kodeve të Gabimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 API-të e Rrjetit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 Fije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 Shtresa e Rrjetit IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Shtresa e Aplikacionit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API për Pajisjet Periferike. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Drajver i Modalitetit Oneshot të Konvertuesit Analog në Dixhital (ADC). . . . . . . . . . . . . . . . . 977 2.6.2 Drajver i Konvertuesit Analog në Dixhital (ADC) në Modalitetin e Vazhdueshëm. . . . . . . . . . . . . . . 986 2.6.3 Drajver i Kalibrimit të Konvertuesit Analog në Dixhital (ADC). . . . . . . . . . . . . . . . . . . 993 2.6.4 Pema e Orës. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Konvertues Dixhital në Analog (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO dhe RTC GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Kohëmatës për Qëllime të Përgjithshme (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Qarku i Ndër-Integruar (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Tingulli Ndër-IC (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Kontroll LED (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Modulatori i Gjerësisë së Pulsit të Kontrollit të Motorrit (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Numëruesi i pulseve (PCNT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Transmetues-transmetues me telekomandë (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Kërkesat për tërheqje SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 Drajveri i strehuesit SDMMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 Drajveri i strehuesit SD SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Drajver i Kartës Skllav SDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Modulimi Sigma-Delta (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Drajveri kryesor i SPI-së. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 Drejtuesi i Skllavit SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Element i Sigurt). . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Sensori i prekjes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Ndërfaqe Automobilistike me Dy Tela (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Marrës/Transmetues Universal Asinkron (UART). . . . . . . . . . . . . . . . . . 1317 2.7 Konfigurimi i Projektit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Hyrje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Menuja e Konfigurimit të Projektit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Përdorimi i sdkconfig.defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Rregullat e formatimit të Kconfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Përputhshmëria e prapambetur e opsioneve të Kconfig. . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Referenca e opsioneve të konfigurimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 API i Parapërgatitjes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Komunikimi i Protokollit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Furnizim i Unifikuar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Sigurimi i Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 API-ja e ruajtjes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileMbështetja e sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691 2.9.2 Shërbime prodhimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699 2.9.3 Biblioteka e ruajtjes jo të paqëndrueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703 2.9.4 Programi i Gjeneratorit të Ndarjeve NVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725 2.9.5 Drajver SD/SDIO/MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1730 2.9.6 API i Flash SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744 2.9.7 SPIFF Filesistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 Virtual filekomponenti i sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784 2.9.9 API për Nivelimin e Veshjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.1 Formati i Imazhit të Aplikacionit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803 2.10.2 Gjurmimi i Nivelit të Aplikacionit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808 2.10.3 Thirrja e funksionit me një pirg të jashtëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1813 2.10.4 Rishikimi i Çipit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815 2.10.5 Konzola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817 2.10.6 Menaxheri i eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826 2.10.7 Kodet e Gabimeve dhe Funksionet Ndihmëse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
ii
2.10.8 ESP HTTPS OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849 2.10.9 Biblioteka e Cikli i Ngjarjeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 2.10.10 FreeRTOS (Mbiview) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1869 2.10.11 FreeRTOS (ESP-IDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871 2.10.12 FreeRTOS (Karakteristika Shtesë) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988 2.10.13 Alokimi i Memories së Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008 2.10.14 Korrigjimi i Memories së Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021 2.10.15 Kohëmatësi me Rezolucion të Lartë (Kohëmatësi ESP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032 2.10.16 API të brendshme dhe të paqëndrueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 Thirrje Ndër-Procesor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 Caktimi i ndërprerjeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2045 2.10.19 Biblioteka e regjistrimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051 2.10.20 API të ndryshme të sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058 2.10.21 Përditësime Over The Air (OTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073 2.10.22 Monitori i Performancës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2084 2.10.23 Menaxhimi i Energjisë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087 2.10.24 Mbështetje për fijet POSIX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2093 2.10.25 Gjenerimi i numrave të rastësishëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2099 2.10.27 Aftësitë e SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 Koha e Sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 API-ja e ndarjes së himem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2126 2.10.30 Programimi me bashkëprocesor ULP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129 2.10.31 Mbikëqyrës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161
3 Referenca e harduerit
2167
3.1 Krahasimi i Serive të Çipave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 Dokumente të Ngjashme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 Udhëzues API-sh
2171
4.1 Biblioteka e Gjurmimit të Nivelit të Aplikacionit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Mënyrat e funksionimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 Opsionet dhe Varësitë e Konfigurimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 Si ta përdorni këtë bibliotekë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 Rrjedha e Nisjes së Aplikacionit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 Shekulli i parëtagngarkuesi i sistemit e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 stagngarkuesi i sistemit e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 Nisja e aplikacionit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 Bluetooth® Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® me Energji të Ulët . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Filloni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Ngarkuesi i sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 Pajtueshmëria me Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 Niveli i Logaritmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 Rivendosja në cilësimet e fabrikës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 Nisja nga Firmware-i i Testimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 Kthim prapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 Mbikëqyrës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 Madhësia e Bootloader-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 Nisje e shpejtë nga Deep Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 Ngarkues i personalizuar i sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 Ndërtimi i Sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Përdorimi i Sistemit të Ndërtimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
iii
4.6.3 Sheshample Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 Listat e Projektit CMake File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 Komponentët CMakeLists Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293 4.6.6 Konfigurimi i Komponentëve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.8 Kërkesat e Komponentëve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 Pjesët Mbizotëruese të Projektit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 Komponentët Vetëm për Konfigurim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 Debugimi i CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 ExampKomponenti le CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 Cilësimet e parazgjedhura të sdkconfig të personalizuara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 Ndërtimi i Bootloader-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 Shkrimi i Komponentëve të Parë CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 Përdorimi i Projekteve CMake të Palëve të Treta me Komponentë . . . . . . . . . . . . . . . . . . . . . 2306 4.6.18 Përdorimi i bibliotekave të parapërgatitura me komponentë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 Përdorimi i ESP-IDF në projekte të personalizuara CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 API-ja e sistemit të ndërtimit CMake të ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File Globimi dhe Ndërtimet Inkrementale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 4.6.22 Ndërtimi i Meta të Dhënave të Sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.23 Ndërtimi i Brendshëm i Sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 4.6.24 Migrimi nga Sistemi ESP-IDF GNU Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315 4.7 Dump Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316 4.7.2 Konfigurimet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.3 Ruajtja e bërthamës dump në flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317 4.7.4 Printimi i bërthamës dump në UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 Funksionet ROM në gjurmët e kthimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 Dumpimi i variablave sipas kërkesës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 Ekzekutimi i espcoredump.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 Stub-et e zgjimit në gjumë të thellë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 Rregullat për Stub-et e zgjimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 Implementimi i një Stubi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 Ngarkimi i Kodit në Memorjen RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 Ngarkimi i të Dhënave në Memorjen RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 Kontroll CRC për stub-e zgjimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.9 Trajtimi i Gabimeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.2 Kodet e gabimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.3 Konvertimi i kodeve të gabimit në mesazhe gabimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2324 4.9.4 Makro ESP_ERROR_CHECK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.5 Makro ESP_ERROR_CHECK_WITHOUT_ABORT . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.6 Makro ESP_RETURN_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.7 Makro ESP_GOTO_ON_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.8 Makro ESP_RETURN_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.9 Makro ESP_GOTO_ON_FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325 4.9.10 KONTROLLO MAKROZAT Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 Modele të trajtimit të gabimeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 Përjashtime në C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.2 Hyrje . ... . . . . . . . . . . . . 2329 4.10.4 Ndërtimi i një rrjeti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 Menaxhimi i një rrjeti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 Transmetimi i të dhënave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 Ndërrimi i Kanaleve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv
4.10.8 Performanca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 Shënime të mëtejshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 Trajtimi i ngjarjeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 Ngjarjet e Wi-Fi, Ethernet dhe IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 Ngjarjet e Rrjetës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 Ngjarjet e Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 Gabime fatale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Trajneri i Panikut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Dump dhe Backtrace i regjistrit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 Stub i GDB-së. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Skadimi i kohës së mbikëqyrjes së RTC-së. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Gabime në Meditimin e Gurusë. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Gabime të tjera fatale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Enkriptimi i memorjes flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Hyrje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 Siguresa elektronike relevante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Procesi i Enkriptimit Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Konfigurimi i Enkriptimit të Flash-it. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Dështime të Mundshme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Statusi i Enkriptimit Flash ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Leximi dhe shkrimi i të dhënave në memorien flash të enkriptuar. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Përditësimi i Flash-it të Enkriptuar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Çaktivizimi i Enkriptimit Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Pikat kryesore rreth enkriptimit Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Kufizimet e Enkriptimit Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Enkriptimi i Flash-it dhe Nisja e Sigurt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Karakteristika të Avancuara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Detajet Teknike. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Abstraksioni i Pajisjeve të Pajisjeve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arkitekturë. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 Shtresa LL (Niveli i Ulët). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Shtresa e Abstraksionit të Pajisjeve). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Ndërprerje të Nivelit të Lartë. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Nivelet e ndërprerjeve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Shënime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Debugim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.1 Hyrje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378 4.16.2 Si funksionon? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 Përzgjedhja e JTAG Përshtatës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 Konfigurimi i OpenOCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 Konfigurimi i Target ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 Nisja e Debugger-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 Debuging Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 Ndërtimi i OpenOCD nga Burimet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 Këshilla dhe Çuditësi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 Dokumente të Ngjashme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.2 Nisje e Shpejtë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.3 Pjesa e Brendshme e Gjenerimit të Skriptit të Lidhësit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2424 4.18 lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.1 API-të e mbështetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 4.18.2 API-të e Soketave BSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431 4.18.3 API i Netconn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.4 Detyra FreeRTOS e lwIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.5 Mbështetje për IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435 4.18.6 modifikime të personalizuara të esp-lwip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2436
v
4.18.7 Optimizimi i Performancës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438 4.19 Llojet e Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439
4.19.1 DRAM (RAM i të Dhënave) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (RAM i Udhëzimeve) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (kod i ekzekutuar nga flash-i) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (të dhëna të ruajtura në flash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.5 Memorie RTC e ngadaltë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.6 Memorie RTC e Shpejtë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.7 Kërkesa për Aftësi DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.8 Buffer DMA në stick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20 OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442 4.20.1 Modalitetet e pirgut OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.2 Si të shkruani një aplikacion OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2443 4.20.3 Routeri kufitar OpenThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21 Tabelat e Ndarjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2444 4.21.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.2 Tabelat e integruara të ndarjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.3 Krijimi i tabelave të personalizuara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445 4.21.4 Gjenerimi i Tabelës së Ndarjes Binare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.5 Kontrollet e Madhësisë së Ndarjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448 4.21.6 Ndërrimi i tabelës së ndarjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.21.7 Mjet Ndarjeje (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 Si të Optimizoni Performancën . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.2 Udhëzues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.1 Kalibrim i pjesshëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 Kalibrim i plotë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 Pa kalibrim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 Të dhëna të inicializimit PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.5 Referencë API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.24 Nisje e Sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.1 Sfondi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472 4.24.2 Procesi i Nisjes së Sigurtview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.3 Tastet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2473 4.24.4 Madhësia e Bootloader-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.5 Si të aktivizoni nisjen e sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2474 4.24.6 Ngarkues nisjeje softuerësh i ri-ndriçueshëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.7 Gjenerimi i çelësit të nënshkrimit të nisjes së sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.8 Nënshkrimi në distancë i imazheve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475 4.24.9 Praktikat më të mira të nisjes së sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.10 Detaje teknike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2476 4.24.11 Nisje e Sigurt dhe Enkriptim Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2477 4.24.12 Verifikim i Aplikacionit të Nënshkruar pa Nisje të Sigurt të Pajisjeve Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.24.13 Karakteristika të Avancuara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25 Nisje e Sigurt V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 Sfondi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 Përparësitages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.3 Procesi i Nisjes së Sigurt V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.4 Formati i Bllokut të Nënshkrimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.5 Mbushje e Sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2480 4.25.6 Verifikimi i një Blloku Nënshkrimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.7 Verifikimi i një Imazhit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 Madhësia e ngarkuesit të nisjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.9 Përdorimi i eFuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.10 Si të aktivizoni nisjen e sigurt V2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 Kufizime pas aktivizimit të Nisjes së Sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 Gjenerimi i Çelësit të Nënshkrimit të Nisjes së Sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2482
vi
4.25.13 Nënshkrimi në distancë i imazheve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 Praktikat më të mira të nisjes së sigurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 Detaje teknike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 Nisje e Sigurt dhe Enkriptim Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.17 Verifikim i Aplikacionit të Nënshkruar pa Nisje të Sigurt të Pajisjeve Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.18 Karakteristika të Avancuara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26 Mbështetje për RAM të jashtëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 Hyrje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 Pajisjet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 Konfigurimi i RAM-it të jashtëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2486 4.26.4 Kufizime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2487 4.26.5 Dështim në inicializim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.26.6 Rishikimi i Çipave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488 4.27.2 API-ja origjinale FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.3 API-ja Pthread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.27.4 Standardi C11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.1 Ndërfaqja e përparme e IDF – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 Imazhi i Docker-it IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 Instaluesi i Windows IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 Menaxheri i Komponentëve të IDF-së . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2496 4.28.5 Rregullimi i Clang IDF-së . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2497 4.28.6 Mjete të Shkarkueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2498 4.29 Testimi i Njësive në ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.1 Raste Testimi Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2512 4.29.2 Raste testimi me shumë pajisje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 Shumë-pajisjetagRastet e Testimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Teste për objektiva të ndryshëm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Aplikacioni i Testimit të Njësisë së Ndërtimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Testet e Njësisë në Ekzekutim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Kodi i Kohëzgjatjes me Kohëmatës të Kompensuar nga Memoria e Kujtesës. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Tallje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Testimi i Njësive në Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Testet e Softuerit të Integruar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Testet e Njësisë IDF në hostin Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Drajver Wi-Fi 2520 4.31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Lista e veçorive të Wi-Fi të ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Si të shkruani një aplikacion Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Kodi i Gabimit të API-t Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Inicializimi i parametrave të API-t Wi-Fi të ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 Modeli i Programimit Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 Përshkrimi i Ngjarjes Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Skenari i Përgjithshëm i Stacionit Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Skenari i Përgjithshëm i Pikës së Qasjes Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 Skanimi i Wi-Fi-t ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Skenari i lidhjes së stacionit Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Stacioni Wi-Fi ESP32 që lidhet kur gjenden pika të shumëfishta aksesi. . . . . . . . . . . . . 2543 4.31.12 Rilidhje me Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Kohëzgjatja e sinjalizuesit Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Konfigurimi i Wi-Fi-t ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy Connect™ (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Menaxhimi i Rrjetit Pa Tel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Matja e Burimeve Radio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Tranzicion i shpejtë BSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 Modaliteti i kursimit të energjisë Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Kapaciteti i transmetimit të Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
4.31.21 Dërgimi i paketave Wi-Fi 80211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552 4.31.22 Modaliteti i nuhatjes Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.23 Antena të shumëfishta Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554 4.31.24 Informacion mbi gjendjen e kanalit Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2556 4.31.25 Informacion mbi gjendjen e kanalit Wi-Fi Konfiguro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.27 QoS Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Fragment Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.30 I regjistruar në WPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.31 Përdorimi i memorjes së përkohshme Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.32 Si të përmirësoni performancën e Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559 4.31.33 Konfigurimi i menysë Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2562 4.31.34 Zgjidhja e problemeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2565 4.32 Siguria e Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.1 Karakteristikat e Sigurisë së Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2568 4.32.2 Korniza të Menaxhimit të Mbrojtura (PMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 WiFi Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 Wi-Fi i Përmirësuar OpenTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2573 4.33.1 Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.2 Skenari i Mbështetur i Bashkëjetesës për ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.3 Mekanizmi dhe Politika e Bashkëjetesës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2574 4.33.4 Si të përdoret funksioni i bashkëjetesës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2576 4.34 Ndërtime të riprodhueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.1 Hyrje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.2 Arsyet për ndërtimet e pariprodhueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 Mundësimi i ndërtimeve të riprodhueshme në ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 Si arrihen ndërtimet e riprodhueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 Ndërtime të riprodhueshme dhe debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 Faktorët që ende ndikojnë në ndërtimet e riprodhueshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.35 Udhëzuesi i përdoruesit për modalitetin me energji të ulët . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578
5 Udhëzues për Migrim
2579
5.1 Udhëzuesi i Migrimit ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 Migrimi nga 4.4 në 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 Biblioteka dhe Korniza
2611
6.1 Kornizat e Cloud-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 AWS IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 Bërthama e Google IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 Aliyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 Tencent IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 Tencentyun IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.9 Baidu IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2 Kornizat e Shprehjeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 Korniza e Zhvillimit të Audios Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 Biblioteka DSP e Espressif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 Korniza e Zhvillimit ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 Zgjidhja ESP-IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 Protokollet ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
viii
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
Udhëzues për 7 Kontribute
2615
7.1 Si të kontribuoni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.2 Përpara se të kontribuoni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.3 Procesi i Kërkesës për Tërheqje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 Pjesa Ligjore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5 Dokumente të Ngjashme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 Udhëzuesi i Stilit të Kornizës së Zhvillimit të IoT të Espressif . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 Instaloni grepin paraprak të lidhjes për projektin ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Dokumentimi i Kodit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 Krijimi i Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 Shabllon Dokumentacioni i API-t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 Marrëveshja e Kontribuesit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 Udhëzues për Kryefaqen e të Drejtave të Autorit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 Testet ESP-IDF me Udhëzuesin Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 Versionet ESP-IDF
2645
8.1 Lëshime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.2 Me cilin version duhet të filloj? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 Skema e Versionimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 Periudhat e Mbështetjes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 Kontrollimi i Versionit Aktual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 Fluksi i punës në Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 Përditësimi i ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 Përditësimi në Versionin Stabil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 Përditësimi në një Version Para-Lëshim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 Përditësimi në Degën Kryesore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 Përditësimi në një Degë Publikimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 Burimet
2651
9.1 PlatformIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 Çfarë është PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 Instalimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 Konfigurimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 Tutoriale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 Projekti Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Hapat e mëtejshëm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 Lidhje të dobishme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
10 Të drejtat e autorit dhe licencat
2653
10.1 Të drejtat e autorit të softuerit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.1 Komponentët e Firmware-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 Dokumentacioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.2 Të drejtat e autorit të kodit burimor të ROM-it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 Licenca Xtensa libhal MIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 Licenca MIT TinyBasic Plus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
Licenca 10.5 TJpgDec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 Rreth
2657
12 Ndërrimi midis gjuhëve
2659
Indeksi
2661
Indeksi
2661
ix
x
Tabela e përmbajtjes
Ky është dokumentacioni për Espressif IoT Development Framework (esp-idf). ESP-IDF është kuadri zyrtar i zhvillimit për SoC-të e serive ESP32, ESP32-S dhe ESP32-C. Ky dokument përshkruan përdorimin e ESP-IDF me SoC-në ESP32.
Filloni
Referenca API
Udhëzuesit e API-t
Sistemet Espressif
1 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Tabela e përmbajtjes
Sistemet Espressif
2 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1
Filloni
Ky dokument synon t'ju ndihmojë të konfiguroni mjedisin e zhvillimit të softuerit për harduerin bazuar në çipin ESP32 nga Espressif. Pas kësaj, një shembull i thjeshtëampDo t'ju tregojë se si të përdorni ESP-IDF (Espressif IoT Development Framework) për konfigurimin e menusë, pastaj për ndërtimin dhe instalimin e firmware-it në një pllakë ESP32.
Shënim: Ky është dokumentacion për versionin stabil v5.0.9 të ESP-IDF. Versione të tjera të ESP-IDF janë gjithashtu të disponueshme.
1.1 Hyrje
ESP32 është një sistem në një çip që integron veçoritë e mëposhtme: · Wi-Fi (banda 2.4 GHz) · Bluetooth · Dy bërthama CPU Xtensa® 32-bit LX6 me performancë të lartë · Bashkëprocesor me energji ultra të ulët · Pajisje të shumta periferike
I mundësuar nga teknologjia 40 nm, ESP32 ofron një platformë të fuqishme dhe shumë të integruar, e cila ndihmon në përmbushjen e kërkesave të vazhdueshme për përdorim efikas të energjisë, dizajn kompakt, siguri, performancë të lartë dhe besueshmëri. Espressif ofron burime bazë hardueri dhe softueri për të ndihmuar zhvilluesit e aplikacioneve të realizojnë idetë e tyre duke përdorur harduerin e serisë ESP32. Korniza e zhvillimit të softuerit nga Espressif është menduar për zhvillimin e aplikacioneve të Internetit të Gjërave (IoT) me Wi-Fi, Bluetooth, menaxhim të energjisë dhe disa veçori të tjera të sistemit.
1.2 Çfarë ju nevojitet
1.2.1 Hardware
· Një pllakë ESP32. · Kabllo USB – USB A / mikro USB B. · Kompjuter me Windows, Linux ose macOS.
Shënim: Aktualisht, disa nga pllakat e zhvillimit përdorin lidhës USB Type C. Sigurohuni që keni kabllon e duhur për të lidhur pllakën tuaj!
Nëse keni një nga bordet zyrtare të zhvillimit ESP32 të listuara më poshtë, mund të klikoni në lidhje për të mësuar më shumë rreth harduerit.
3
Kapitulli 1. Filloni
ESP32-DevKitS(-R)
Ky udhëzues përdorimi ofron informacion mbi ESP32-DevKitS(-R), një pllakë flash e bazuar në ESP32 e prodhuar nga Espressif. ESP32-DevKitS(-R) është një kombinim i dy emrave të pllakës: ESP32-DevKitS dhe ESP32-DevKitS-R. S qëndron për sustat dhe R qëndron për WROVER.
ESP32-DevKitS
ESP32-DevKitS-R
Dokumenti përbëhet nga seksionet kryesore të mëposhtme: · Fillimi: Ofron një përmbledhjeview të udhëzimeve të konfigurimit të ESP32-DevKitS(-R) dhe harduerit/softuerit për të filluar. · Referenca e Hardware-it: Ofron informacion më të detajuar rreth harduerit ESP32-DevKitS(-R)ns. · Dokumente të Ngjashme: Jep lidhje për dokumentacionin përkatës.
Fillimi Ky seksion përshkruan se si të filloni me ESP32-DevKitS(-R). Fillon me disa seksione hyrëse rreth ESP32-DevKitS(-R), pastaj Seksioni Si të Flashoni një Pllakë ofron udhëzime se si të montoni një modul në ESP32-DevKitS(-R), ta përgatitni atë dhe të flashoni firmware-in në të.
Mbiview ESP32-DevKitS(-R) është një pllakë flash-i Espressifns e projektuar posaçërisht për ESP32. Mund të përdoret për të flash-uar një modul ESP32 pa e lidhur modulin me saldim në furnizimin me energji dhe linjat e sinjalit. Me një modul të montuar, ESP32-DevKitS(-R) mund të përdoret gjithashtu si një pllakë mini-zhvillimi si ESP32-DevKitC.
Pllakat ESP32-DevKitS dhe ESP32-DevKitS-R ndryshojnë vetëm në paraqitjen e kunjave me sustë për t'iu përshtatur moduleve të mëposhtme 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 dhe IPEX) ESP32-WROVER-B (PCB dhe IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Për informacion rreth moduleve të mësipërme, ju lutemi referojuni Moduleve të Serisë ESP32.
Përshkrimi i komponentëve
Sistemet Espressif
4 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 1: ESP32-DevKitS – pjesa e përparme
Sistemet Espressif
Fig. 2: ESP32-DevKitS-R – pjesa e përparme 5
Paraqisni komentet e dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Kunjat e Sustës së Komponentëve Kyç, Koka Femër 2.54 mm
Ura USB-në-UART LDO Lidhës/Portë Mikro-USB Butoni EN Butoni i Nisjes
Fuqia në LED
Përshkrim Klikoni modulin brenda. Kunjat do të futen në vrimat e përforcuara të modulit. Këto kolektorë femra janë të lidhur me kunjat e modulit të montuar në këtë pllakë. Për përshkrimin e kolektorëve femra, ju lutemi referojuni Blloqeve të Kopjeve. Ura USB me një çip të vetëm në UART ofron shpejtësi transferimi deri në 3 Mbps.
Rënie e ulët e tensionit 5V deri në 3.3Vtagrregullatori (LDO).
Ndërfaqe USB. Furnizim me energji për pllakën si dhe ndërfaqja e komunikimit midis një kompjuteri dhe pllakës.
Butoni i rivendosjes.
Butoni Shkarkim. Mbajtja e shtypur e butonit Boot dhe më pas shtypja e butonit EN aktivizon modalitetin e Shkarkimit të Firmware-it për shkarkimin e firmware-it përmes portit serial.
Ndizet kur USB ose furnizimi me energji është i lidhur me pllakën.
Si të instaloni një pllakë të re Para se të ndizni ESP32-DevKitS(-R)-in tuaj, sigurohuni që të jetë në gjendje të mirë pa shenja të dukshme dëmtimi.
Pajisjet e Nevojshme · Një modul ESP32 sipas zgjedhjes suaj · Kabllo USB 2.0 (Standard-A në Micro-B) · Kompjuter me Windows, Linux ose macOS
Konfigurimi i Pajisjeve Ju lutemi montoni një modul sipas zgjedhjes suaj në ESP32-DevKitS(-R) tuaj sipas hapave të mëposhtëm:
· Vendoseni modulin tuaj me kujdes në pllakën ESP32-DevKitS(-R). Sigurohuni që vrimat e përforcuara në modulin tuaj të jenë të rreshtuara me kunjat e sustës në pllakën.
· Shtypni modulin tuaj poshtë në pllakë derisa të klikojë. · Kontrolloni nëse të gjitha kunjat e sustës janë futur në vrimat e kështjellës. Nëse ka disa kunja sustësh të çrregullta,
vendosini ato në vrima të forta me piskatore.
Konfigurimi i softverit
Metoda e Preferuar Korniza e zhvillimit ESP-IDF ofron një mënyrë të preferuar për të instaluar skedarë binare në ESP32-DevKitS(-R). Ju lutemi vazhdoni te Fillimi, ku Seksioni Instalimi do t'ju ndihmojë shpejt të konfiguroni mjedisin e zhvillimit dhe më pas të instaloni një aplikacion.ampshkruani në ESP32-DevKitS(-R)-in tuaj.
Metoda Alternative Si alternativë, përdoruesit e Windows mund të instalojnë skedarë binare duke përdorur Flash Download Tool. Thjesht shkarkojeni, çkompresoni dhe ndiqni udhëzimet brenda dosjes doc.
Shënim: 1. Për të instaluar skedarin binar files, ESP32 duhet të vendoset në modalitetin e Shkarkimit të Firmware-it. Kjo mund të bëhet ose automatikisht nga mjeti i flash-it, ose duke mbajtur shtypur butonin Boot dhe duke prekur butonin EN. 2. Pas ndezjes së skedarit binar files, Mjeti i Shkarkimit të Flash-it rinis modulin tuaj ESP32 dhe nis aplikacionin e flashuar si parazgjedhje.
Përmasat e Bordit, Përmbajtja dhe Paketimi
Sistemet Espressif
6 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Fillimi Fig. 3: Dimensionet e pllakës ESP32-DevKitS – pjesa e pasme
Sistemet Espressif
Fig. 4: Dimensionet e pllakës ESP32-DevKitS-R – pjesa e pasme 7
Paraqisni komentet e dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Porosi me pakicë Nëse porosisni disaamples, çdo ESP32-DevKitS(-R) vjen në një paketim individual në qese antistatike ose në çdo paketim në varësi të shitësit me pakicë. Për porosi me pakicë, ju lutemi vizitoni https://www.espressif.com/en/contact-us/get-samples.
Porosi me shumicë Nëse porosisni me shumicë, dërrasat vijnë në kuti të mëdha kartoni. Për porosi me shumicë, ju lutemi vizitoni https://www.espressif.com/en/contact-us/sales-questions.
Referenca e harduerit
Diagrama e bllokut Një diagramë blloku më poshtë tregon komponentët e ESP32-DevKitS(-R) dhe ndërlidhjet e tyre.
Fig. 5: ESP32-DevKitS(-R) (klikoni për ta zmadhuar)
Opsionet e Furnizimit me Energji Ekzistojnë tre mënyra reciprokisht ekskluzive për të furnizuar me energji pllakën: · Porta Micro USB, furnizimi me energji i parazgjedhur · Kunjat e kokës 5V dhe GND · Kunjat e kokës 3V3 dhe GND
Këshillohet të përdorni opsionin e parë: portën mikro USB.
Sistemet Espressif
.
Sinjali i Etiketës
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 VP SENSOR_VP
L4 VN SENSOR_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
vazhdon në faqen tjetër
8 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Tabela 1 vijon nga faqja e mëparshme
.
Sinjali i Etiketës
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 GND GND
L15 13
GPIO13
L16 D2 SD_DATA2
L17 D3 SD_DATA3
L18 CMD SD_CMD
L19 5V
E jashtme 5V
R1 GND GND
R2 23
GPIO23
R3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
R6 21
GPIO21
R7 GND GND
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
Blloqet e Kokës Për imazhin e blloqeve të kokës, ju lutemi referojuni Përshkrimit të Komponentëve.
Dokumentet përkatëse
· Skemat ESP32-DevKitS(-R) (PDF) · Fleta e të Dhënave ESP32 (PDF) · Fleta e të Dhënave ESP32-WROOM-32 (PDF) · Fleta e të Dhënave ESP32-WROOM-32D & ESP32-WROOM-32U (PDF) · Fleta e të Dhënave ESP32-SOLO-1 (PDF) · Fleta e të Dhënave ESP32-WROVER (PDF) · Fleta e të Dhënave ESP32-WROVER-B (PDF) · Përzgjedhësi i Produkteve ESP
ESP32-DevKitM-1
Ky udhëzues përdorimi do t'ju ndihmojë të filloni me ESP32-DevKitM-1 dhe gjithashtu do të ofrojë informacion më të hollësishëm.
ESP32-DevKitM-1 është një pllakë zhvillimi e bazuar në ESP32-MINI-1(1U) e prodhuar nga Espressif. Shumica e kunjave I/O janë të ndara në kokat e kunjave në të dyja anët për ndërfaqe të lehtë. Përdoruesit mund të lidhin pajisjet periferike me tela lidhës ose të montojnë ESP32-DevKitM-1 në një pllakë zhvillimi.
Sistemet Espressif
9 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
ESP32-DevKitM-1 - përpara
ESP32-DevKitM-1 – izometrik
Dokumenti përbëhet nga seksionet kryesore të mëposhtme: · Fillimi: Ofron një përmbledhjeview të udhëzimeve të konfigurimit të ESP32-DevKitM-1 dhe harduerit/softuerit për të filluar. · Referenca e harduerit: Ofron informacion më të detajuar rreth harduerit ESP32-DevKitM-1ns. · Dokumente të lidhura: Jep lidhje për dokumentacionin përkatës.
Fillimi Ky seksion përshkruan se si të filloni me ESP32-DevKitM-1. Fillon me disa seksione hyrëse rreth ESP32-DevKitM-1, më pas Seksioni Fillimi i Zhvillimit të Aplikacionit ofron udhëzime se si të bëhet konfigurimi fillestar i harduerit dhe më pas si të instalohet firmware në ESP32-DevKitM-1.
Mbiview Ky është një bord zhvillimi i vogël dhe i përshtatshëm që përmban:
· Modul ESP32-MINI-1, ose ESP32-MINI-1U · Ndërfaqe programimi USB-në-serial që siguron gjithashtu furnizim me energji për pllakën · koka pin-esh · butona për rivendosje dhe aktivizim të modalitetit të Shkarkimit të Firmware-it · disa komponentë të tjerë
Përmbajtja dhe paketimi
Porosi me pakicë Nëse porosisni disaampPrandaj, çdo ESP32-DevKitM-1 vjen në një paketim individual ose në qese antistatike ose në çdo paketim në varësi të shitësit me pakicë.
Për porosi me pakicë, ju lutemi vizitoni https://www.espressif.com/en/contact-us/get-samples.
Porosi me shumicë Nëse porosisni me shumicë, dërrasat vijnë në kuti të mëdha kartoni. Për porosi me shumicë, ju lutemi vizitoni https://www.espressif.com/en/contact-us/sales-questions.
Përshkrimi i Komponentëve Figura dhe tabela e mëposhtme përshkruajnë komponentët kryesorë, ndërfaqet dhe kontrollet e pllakës ESP32-DevKitM-1. Ne e marrim pllakën me një modul ESP32-MINI-1 si një shembull.ample në seksionet e mëposhtme.
Sistemet Espressif
10 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 6: ESP32-DevKitM-1 – pjesa e përparme
Komponenti Kryesor Moduli i integruar
Butoni i Nisjes LDO 5 V deri në 3.3 V
Butoni i Rivendosjes Porta Mikro-USB
LED i ndezjes së urës USB-në-UART 3.3 V
Lidhës I/O
Përshkrimi
Moduli ESP32-MINI-1 ose moduli ESP32-MINI-1U. ESP32-MINI-1 vjen me një antenë të integruar PCB. ESP32-MINI-1U vjen me një lidhës antene të jashtëm. Të dy modulet kanë një paketë çipi flash prej 4 MB. Për detaje, ju lutemi shihni fletën e të dhënave ESP32-MINI-1 dhe ESP32-MINI-1U.
Rregullatori i energjisë konverton 5 V në 3.3 V.
Butoni "Shkarko". Mbajtja shtypur e butonit "Boot" dhe më pas shtypja e butonit "Reset" aktivizon modalitetin "Shkarko Firmware" për shkarkimin e firmware-it përmes portit serial.
Butoni i rivendosjes
Ndërfaqja USB. Furnizimi me energji elektrike për bordin, si dhe ndërfaqja e komunikimit midis një kompjuteri dhe çipit ESP32.
Çipi i vetëm urë USB-UART siguron shpejtësi transferimi deri në 3 Mbps.
Ndizet kur USB-ja është e lidhur me pllakën. Për detaje, ju lutemi shihni skemat në Dokumentet e Ngjashme. Të gjitha kunjat GPIO të disponueshme (përveç bus-it SPI për flash) janë të ndara në kokat e kunjave në pllakën. Përdoruesit mund të programojnë çipin ESP32 për të aktivizuar funksione të shumëfishta.
Filloni Zhvillimin e Aplikacionit Para se të ndizni ESP32-DevKitM-1 tuaj, ju lutemi sigurohuni që të jetë në gjendje të mirë pa shenja të dukshme dëmtimi.
Pajisjet e nevojshme · ESP32-DevKitM-1 · Kabllo USB 2.0 (Standard-A në Micro-B) · Kompjuter me Windows, Linux ose macOS
Konfigurimi i Softuerit Ju lutemi vazhdoni te Fillimi, ku Seksioni Instalimi do t'ju ndihmojë shpejt të konfiguroni mjedisin e zhvillimit dhe më pas të instaloni një aplikacion.ampshkoni në ESP32-DevKitM-1 tuaj.
Sistemet Espressif
11 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Vëmendje: Pllakat ESP32-DevKitM-1 të prodhuara para 2 dhjetorit 2021 kanë të instaluar një modul me një bërthamë. Për të verifikuar se cilin modul keni, ju lutemi kontrolloni informacionin e shënimit të modulit në PCN-2021-021. Nëse pllaka juaj ka të instaluar një modul me një bërthamë, ju lutemi aktivizoni modalitetin me një bërthamë (CONFIG_FREERTOS_UNICORE) në menuconfig para se të instaloni aplikacionet tuaja.
Diagrama e bllokut të referencës së harduerit Një diagram bllok më poshtë tregon komponentët e ESP32-DevKitM-1 dhe ndërlidhjet e tyre.
Fig. 7: ESP32-DevKitM-1
Zgjedhja e Burimit të Energjisë Ekzistojnë tre mënyra reciprokisht ekskluzive për të furnizuar me energji pllakën: · Porta Micro USB, furnizimi me energji i parazgjedhur · Kunjat e kokës 5V dhe GND · Kunjat e kokës 3V3 dhe GND
Kujdes: · Furnizimi me energji duhet të sigurohet duke përdorur vetëm një nga opsionet e mësipërme, përndryshe pllaka dhe/ose burimi i furnizimit me energji mund të dëmtohen. · Rekomandohet furnizimi me energji nëpërmjet portës mikro USB.
Përshkrimet e kunjave Tabela më poshtë jep Emrin dhe Funksionin e kunjave në të dyja anët e pllakës. Për konfigurimet e kunjave periferike, ju lutemi referojuni Fletës së të Dhënave të ESP32.
Nr.
Emri
Lloji
1
GND
P
2
3 V3
P
Funksioni Tokëzim Furnizim me energji 3.3 V
vazhdon në faqen tjetër
Sistemet Espressif
12 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Tabela 2 vijon nga faqja e mëparshme
Nr.
Emri
Lloji
Funksioni
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
Rivendosja; E lartë: aktivizo; E ulët: fiket
8
I34
I
GPIO34, ADC1_CH6, RTC_GPIO4
9
I35
I
GPIO35, ADC1_CH7, RTC_GPIO5
10
IO32
I/O
GPIO32, XTAL_32K_P (hyrje oscilatori kristalor 32.768 kHz),
ADC1_CH4, TOUCH9, RTC_GPIO9
11
IO33
I/O
GPIO33, XTAL_32K_N (dalja e oshilatorit kristal 32.768 kHz),
ADC1_CH5, TOUCH8, RTC_GPIO8
12
IO25
I/O
GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
13
IO26
I/O
GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
14
IO27
I/O
GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
15
IO14
I/O
GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,
HS2_CLK, SD_CLK, EMAC_TXD2
16
5V
P
Furnizimi me energji 5 V
17
IO12
I/O
GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,
HS2_DATA2, SD_DATA2, EMAC_TXD3
18
IO13
I/O
GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,
HS2_DATA3, SD_DATA3, EMAC_RX_ER
19
IO15
I/O
GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,
HS2_CMD, SD_CMD, EMAC_RXD3
20
IO2
I/O
GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,
HS2_DATA0, SD_DATA0
21
IO0
I/O
GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,
EMAC_TX_CLK
22
IO4
I/O
GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,
HS2_DATA1, SD_DATA1, EMAC_TX_ER
23
IO9
I/O
GPIO9, HS1_DATA2, U1RXD, SD_DATA2
24
IO10
I/O
GPIO10, HS1_DATA3, U1TXD, SD_DATA3
25
IO5
I/O
GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK
26
IO18
I/O
GPIO18, HS1_DATA7, VSPICLK
27
IO23
I/O
GPIO23, HS1_STROBE, VSPID
28
IO19
I/O
GPIO19, VSPIQ, U0CTS, EMAC_TXD0
29
IO22
I/O
GPIO22, VSPIWP, U0RTS, EMAC_TXD1
30
IO21
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
Detajet e Versionit të Hardware-it Nuk ka versione të mëparshme në dispozicion.
Dokumentet përkatëse
· Fletë të dhënash ESP32-MINI-1 dhe ESP32-MINI-1U (PDF) · Skema ESP32-DevKitM-1 (PDF) · Paraqitja e PCB-së ESP32-DevKitM-1 (PDF) · Paraqitja ESP32-DevKitM-1 (DXF) – Ju mundeni view atë me Autodesk Viewonline · Fletë të dhënash ESP32 (PDF) · Përzgjedhësi i produkteve ESP
Për dokumentacion tjetër të projektimit për pllakën, ju lutemi na kontaktoni në sales@espressif.com.
Sistemet Espressif
13 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
1.2.2 Softueri
Për të filluar përdorimin e ESP-IDF në ESP32, instaloni programin e mëposhtëm: · Toolchain për të kompiluar kodin për ESP32 · Build tools – CMake dhe Ninja për të ndërtuar një Aplikacion të plotë për ESP32 · ESP-IDF që në thelb përmban API (biblioteka programesh dhe kod burimor) për ESP32 dhe skripte për të operuar Toolchain-in
1.3 Instalimi
Për të instaluar të gjithë softuerin e nevojshëm, ne ofrojmë disa mënyra të ndryshme për ta lehtësuar këtë detyrë. Zgjidhni nga një nga opsionet e disponueshme.
1.3.1 IDE
Shënim: Ne ju rekomandojmë fuqimisht instalimin e ESP-IDF përmes IDE-së tuaj të preferuar.
· Shtojca Eclipse · Zgjerimi VSCode
1.3.2 Instalimi manual
Për procedurën manuale, ju lutemi zgjidhni sipas sistemit tuaj operativ.
Sistemet Espressif
14 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Konfigurimi standard i zinxhirit të veglave për Windows
Hyrje ESP-IDF kërkon instalimin e disa mjeteve paraprake në mënyrë që të mund të ndërtoni firmware për çipat e mbështetur. Mjetet paraprake përfshijnë Python, Git, ndër-kompilues, mjete ndërtimi CMake dhe Ninja. Për këtë "Fillim" ne do të përdorim Command Prompt, por pasi të instalohet ESP-IDF, mund të përdorni Eclipse Plugin ose një IDE tjetër grafike me mbështetje CMake. Shënim: Kufizime: – Shtegu i instalimit të ESP-IDF dhe ESP-IDF Tools nuk duhet të jetë më i gjatë se 90 karaktere. Shtigjet shumë të gjata të instalimit mund të rezultojnë në një ndërtim të dështuar. – Shtegu i instalimit të Python ose ESP-IDF nuk duhet të përmbajë hapësira të bardha ose kllapa. – Shtegu i instalimit të Python ose ESP-IDF nuk duhet të përmbajë karaktere speciale (jo ASCII) përveç nëse sistemi operativ është i konfiguruar me mbështetjen oUnicode UTF-8p. Administratori i Sistemit mund ta aktivizojë mbështetjen nëpërmjet Panelit të Kontrollit – Ndryshoni formatet e datës, orës ose numrave – Skeda Administrative – Ndryshoni vendndodhjen e sistemit – kontrolloni opsionin oBeta: Përdorni Unicode UTF-8 për mbështetjen e gjuhëve në mbarë botën p – Në rregull dhe rinisni kompjuterin.
Instaluesi i Mjeteve ESP-IDF Mënyra më e lehtë për të instaluar parakushtet e ESP-IDFns është të shkarkoni një nga Instaluesit e Mjeteve ESP-IDF.
Shkarkimi i Instaluesit të Windows
Cili është rasti i përdorimit për Instaluesin Online dhe Offline? Instaluesi Online është shumë i vogël dhe lejon instalimin e të gjitha versioneve të disponueshme të ESP-IDF. Instaluesi do të shkarkojë vetëm varësitë e nevojshme, duke përfshirë Git For Windows, gjatë procesit të instalimit. Instaluesi ruan të shkarkuarat? files në direktorinë e memorjes së përkohshme %userprofile%. espressif
Instaluesi Offline nuk kërkon lidhje rrjeti. Instaluesi përmban të gjitha varësitë e kërkuara, përfshirë Git For Windows.
Komponentët e instalimit Instaluesi vendos komponentët e mëposhtëm:
· Python i integruar · Kompilues të kryqëzuar · OpenOCD · Mjete ndërtimi CMake dhe Ninja · ESP-IDF
Instaluesi gjithashtu lejon ripërdorimin e direktorisë ekzistuese me ESP-IDF. Drejtoria e rekomanduar është %userprofile%Desktopesp-idf ku %userprofile% është drejtoria juaj kryesore.
Sistemet Espressif
15 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Hapja e Mjedisit ESP-IDF Në fund të procesit të instalimit, mund të kontrolloni opsionin Run ESP-IDF PowerShell Environment ose Run ESP-IDF Command Prompt (cmd.exe). Instaluesi do të hapë mjedisin ESP-IDF në dritaren e zgjedhur. Ekzekutoni Mjedisin ESP-IDF PowerShell:
Fig. 8: Përfundimi i Ndihmësit të Konfigurimit të Mjeteve ESP-IDF me Run ESP-IDF PowerShell Environment
Ekzekutoni Promptin e Komandës ESP-IDF (cmd.exe):
Përdorimi i Promptit të Komandave Për hapat e mbetur të Fillimit, do të përdorim Promptin e Komandave të Windows. Instaluesi i Mjeteve ESP-IDF krijon gjithashtu një shkurtore në menynë Start për të hapur Promptin e Komandave ESP-IDF. Kjo shkurtore hap Promptin e Komandave (cmd.exe) dhe ekzekuton skriptin export.bat për të konfiguruar variablat e mjedisit (PATH, IDF_PATH dhe të tjera). Brenda kësaj prompti komande, të gjitha mjetet e instaluara janë të disponueshme. Vini re se kjo shkurtore është specifike për direktorinë ESP-IDF të zgjedhur në Instaluesin e Mjeteve ESP-IDF. Nëse keni disa direktori ESP-IDF në kompjuter (për shembullample, për të punuar me versione të ndryshme të ESP-IDF), keni dy mundësi për t'i përdorur ato:
1. Krijoni një kopje të shkurtores së krijuar nga Instaluesi i Mjeteve ESP-IDF dhe ndryshoni direktorinë e punës të shkurtores së re në direktorinë ESP-IDF që dëshironi të përdorni.
2. Si alternativë, ekzekutoni cmd.exe, pastaj kaloni në direktorinë ESP-IDF që dëshironi të përdorni dhe ekzekutoni export.bat. Vini re se ndryshe nga opsioni i mëparshëm, kjo mënyrë kërkon që Python dhe Git të jenë të pranishëm në PATH. Nëse merrni gabime që lidhen me mosgjetjen e Python ose Git, përdorni opsionin e parë.
Hapat e parë në ESP-IDF Tani, meqenëse të gjitha kërkesat janë përmbushur, tema tjetër do t'ju udhëzojë se si të filloni projektin tuaj të parë.
Sistemet Espressif
16 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Fillimi Fig. 9: ESP-IDF PowerShell
Fig. 10: Përfundimi i Ndihmësit të Konfigurimit të Veglave ESP-IDF me Run ESP-IDF Command Prompt (cmd.exe)
Sistemet Espressif
17 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 11: Prompti i komandës ESP-IDF
Sistemet Espressif
18 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Ky udhëzues do t'ju ndihmojë në hapat e parë duke përdorur ESP-IDF. Ndiqni këtë udhëzues për të filluar një projekt të ri në ESP32 dhe për të ndërtuar, instaluar dhe monitoruar daljen e pajisjes. Shënim: Nëse nuk e keni instaluar ende ESP-IDF, ju lutemi shkoni te Instalimi dhe ndiqni udhëzimet për të marrë të gjithë softuerin e nevojshëm për të përdorur këtë udhëzues.
Filloni një Projekt Tani jeni gati të përgatitni aplikacionin tuaj për ESP32. Mund të filloni me projektin getstarted/hello_world nga ishampdrejtoria les në ESP-IDF.
E rëndësishme: Sistemi i ndërtimit ESP-IDF nuk mbështet hapësira në shtigjet për në ESP-IDF ose për në projekte.
Kopjoni projektin get-started/hello_world në direktorinë ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
Shënim: Ekziston një gamë e gjerë ish-shample projekte ne ishampdrejtoria les në ESP-IDF. Ju mund të kopjoni çdo projekt në të njëjtën mënyrë siç është paraqitur më sipër dhe ta ekzekutoni atë. Është gjithashtu e mundur të ndërtohet ishamples në vend pa i kopjuar më parë.
Lidhni Pajisjen Tuaj Tani lidhni kartën tuaj ESP32 me kompjuterin dhe kontrolloni se në cilën portë seriale është e dukshme pllaka. Emrat e porteve seriale fillojnë me COM në Windows. Nëse nuk jeni të sigurt se si ta kontrolloni emrin e portit serial, ju lutemi referojuni Vendosja e Lidhjes Seriale me ESP32 për detaje të plota.
Shënim: Mbajeni të dobishëm emrin e portit pasi do t'ju duhet në hapat e ardhshëm.
Konfiguro Projektin Tënd Shko te direktoria juaj hello_world, cakto ESP32 si objektiv dhe ekzekuto programin e konfigurimit të projektit menuconfig.
CD-ja e Windows-it %userprofile%esphello_world idf.py vendos objektivin esp32 idf.py menyconfig
Pas hapjes së një projekti të ri, së pari duhet të caktoni objektivin me idf.py set-target esp32. Vini re se ndërtimet dhe konfigurimet ekzistuese në projekt, nëse ka, do të pastrohen dhe inicializohen në këtë proces. Objektivi mund të ruhet në variablin e mjedisit për të anashkaluar fare këtë hap. Shihni Zgjidhni Çipin e Synimit: set-target për informacion shtesë. Nëse hapat e mëparshëm janë kryer saktë, shfaqet menyja e mëposhtme: Po e përdorni këtë meny për të konfiguruar variablat specifike të projektit, p.sh., emrin dhe fjalëkalimin e rrjetit Wi-Fi, shpejtësinë e procesorit, etj. Konfigurimi i projektit me menuconfig mund të anashkalohet për ohello_wordp, pasi kjo p.sh.ample funksionon me konfigurimin e parazgjedhur.
Kujdes: Nëse përdorni kartën ESP32-DevKitC me modulin ESP32-SOLO-1, ose kartën ESP32-DevKitM-1 me modulin ESP32-MIN1-1(1U), ju lutemi aktivizoni modalitetin me një bërthamë (CONFIG_FREERTOS_UNICORE) në menuconfig para se të instaloni ex.amples.
Sistemet Espressif
19 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 12: Konfigurimi i projektit – Dritarja kryesore
Shënim: Ngjyrat e menusë mund të jenë të ndryshme në terminalin tuaj. Mund ta ndryshoni pamjen me opsionin –style. Ju lutemi ekzekutoni idf.py menuconfig –help për më shumë informacion.
Nëse po përdorni një nga bordet e zhvillimit të mbështetura, mund ta përshpejtoni zhvillimin tuaj duke përdorur Paketën e Ndihmës për Bordin. Shihni Këshilla Shtesë për më shumë informacion.
Ndërtoni Projektin Ndërtoni projektin duke ekzekutuar:
idf.py ndërtuar
Kjo komandë do të përpilojë aplikacionin dhe të gjithë komponentët ESP-IDF, më pas do të gjenerojë ngarkuesin, tabelën e ndarjes dhe binarët e aplikacionit.
$ idf.py build Duke ekzekutuar cmake në direktorinë /path/to/hello_world/build Duke ekzekutuar “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Paralajmëro për vlerat e painicializuara. — U gjet Git: /usr/bin/git (u gjet versioni “2.17.0”) — Ndërtimi i komponentit bosh aws_iot për shkak të konfigurimit — Emrat e komponentëve: … — Shtigjet e komponentëve: …
… (më shumë linja të prodhimit të sistemit të ndërtimit)
[527/527] Duke gjeneruar hello_world.bin esptool.py v2.3.1
Ndërtimi i projektit përfundoi. Për të instaluar flash, ekzekutoni këtë komandë: ../../../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 ose ekzekutoni 'idf.py -p PORT flash'
Nëse nuk ka gabime, ndërtimi do të përfundojë duke gjeneruar firmuerin binar .bin files.
Sistemet Espressif
20 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Vendos skedarët binare që sapo keni ndërtuar (bootloader.bin, partition-table.bin dhe hello_world.bin) në kartën tuaj ESP32 duke ekzekutuar: idf.py -p PORT [-b BAUD] instalo në pajisje.
Zëvendësoni PORT me emrin e portit serial të kartës suaj ESP32. Gjithashtu mund të ndryshoni shpejtësinë e transferimit të të dhënave flasher duke zëvendësuar BAUD me shpejtësinë e transferimit që ju nevojitet. Shpejtësia e parazgjedhur e transferimit të të dhënave është 460800. Për më shumë informacion mbi argumentet idf.py, shihni idf.py.
Shënim: Opsioni flash ndërton dhe aktivizon automatikisht projektin, kështu që ekzekutimi i komandës idf.py build nuk është i nevojshëm.
Keni hasur probleme gjatë instalimit? Nëse ekzekutoni komandën e dhënë dhe shihni gabime të tilla si "Dështoi të lidhej p", mund të ketë disa arsye për këtë. Një nga arsyet mund të jenë problemet e hasura nga esptool.py, programi që thirret nga sistemi i ndërtimit për të rivendosur çipin, për të bashkëvepruar me ngarkuesin e nisjes së ROM-it dhe për të instaluar firmware-in. Një zgjidhje e thjeshtë për të provuar është rivendosja manuale e përshkruar më poshtë, dhe nëse nuk ndihmon, mund të gjeni më shumë detaje rreth problemeve të mundshme në Zgjidhjen e Problemeve.
esptool.py rivendos automatikisht ESP32 duke pohuar linjat e kontrollit DTR dhe RTS të çipit të konvertuesit USB në serial, dmth., FTDI ose CP210x (për më shumë informacion, shihni Vendosja e Lidhjes Seriale me ESP32). Linjat e kontrollit DTR dhe RTS janë nga ana tjetër të lidhura me kunjat GPIO0 dhe CHIP_PU (EN) të ESP32, duke ndryshuar kështu vëllimin.tagNivelet e DTR dhe RTS do të ngarkojnë ESP32 në modalitetin e Shkarkimit të Firmware-it. Si shembullample të themi, kontrolloni skemën për tabelën e zhvillimit ESP32 DevKitC.
Në përgjithësi, nuk duhet të keni probleme me bordet zyrtare të zhvillimit esp-idf. Megjithatë, esptool.py nuk është në gjendje të rivendosë automatikisht harduerin tuaj në rastet e mëposhtme:
· Pajisjet tuaja nuk i kanë linjat DTR dhe RTS të lidhura me GPIO0 dhe CHIP_PU · Linjat DTR dhe RTS janë konfiguruar ndryshe · Nuk ka fare linja të tilla kontrolli serial
Në varësi të llojit të pajisjeve që keni, mund të jetë gjithashtu e mundur që ta vendosni manualisht kartën ESP32 në modalitetin e Shkarkimit të Firmware-it (rivendosjen).
· Për tabelat e zhvillimit të prodhuara nga Espressif, ky informacion mund të gjendet në udhëzuesit përkatës të fillimit ose udhëzuesit e përdoruesit. Për shembullample të themi, për të rivendosur manualisht një pllakë zhvillimi ESP-IDF, mbani të shtypur butonin Boot (GPIO0) dhe shtypni butonin EN (CHIP_PU).
· Për llojet e tjera të pajisjeve, provoni të tërhiqni GPIO0 poshtë.
Funksionimi Normal Kur ndizet, do të shihni regjistrin e daljes të ngjashëm me sa vijon:
… 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 Porta seriale /dev/ttyUSB0 Duke u lidhur…….._ Çipi është ESP32D0WDQ6 (revizioni 0) Karakteristikat: WiFi, BT, Dual Core, Skema e Kodimit Asnjë Kristali është 40MHz MAC: 24:0a:c4:05:b9:14 Duke ngarkuar stub… Duke ekzekutuar stub… Stub duke ekzekutuar… Duke ndryshuar shpejtësinë e baud në 460800 Ndryshuar.
(vazhdon në faqen tjetër)
Sistemet Espressif
21 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
(vazhdon nga faqja e mëparshme) Duke konfiguruar madhësinë e memories flash… Kompresuar 3072 bajt në 103… Shkruar në 0x00008000… (100 %) Shkruar 3072 bajt (103 të kompresuar) në 0x00008000 në 0.0 sekonda (efektive 5962.8 kbit/s)… Hash i të dhënave u verifikua. Kompresuar 26096 bajt në 15408… Shkruar në 0x00001000… (100 %) Shkruar 26096 bajt (15408 të kompresuar) në 0x00001000 në 0.4 sekonda (efektive 546.7 kbit/s)… Hash i të dhënave u verifikua. Kompresuar 147104 bajt në 77364… Duke shkruar në 0x00010000… (20 %) Duke shkruar në 0x00014000… (40 %) Duke shkruar në 0x00018000… (60 %) Duke shkruar në 0x0001c000… (80 %) Duke shkruar në 0x00020000… (100 %) U shkruan 147104 bajt (77364 të kompresuar) në 0x00010000 në 1.9 sekonda (efektive 615.5 kbit/s)… Hash-i i të dhënave u verifikua.
Po largohet… Rivendosja e vështirë nëpërmjet pinit RTS… U krye
Nëse nuk ka probleme deri në fund të procesit të flash-it, pllaka do të riniset dhe do të nisë theohello_worldpapplication. Nëse dëshironi të përdorni Eclipse ose VS Code IDE në vend që të ekzekutoni idf.py, shikoni Eclipse Plugin, VSCode Extension.
Monitoroni Daljen Për të kontrolluar nëse ohello_worldpis është me të vërtetë duke u ekzekutuar, shkruani idf.py -p PORT monitor (Mos harroni të zëvendësoni PORT me emrin e portit tuaj serial).
Kjo komandë hap aplikacionin IDF Monitor:
$ idf.py -p monitor Duke ekzekutuar idf_monitor në direktorinë […]/esp/hello_world/build Duke ekzekutuar “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor në 115200 —– Dil: Ctrl+] | Menu: Ctrl+T | Ndihmë: Ctrl+T e ndjekur nga Ctrl+H –ets 8 qershor 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) etj. 8 qershor 2016 00:22:57 …
Pasi regjistrimet e nisjes dhe diagnostikimit të lëvizin lart, duhet të shihni oHello world! të shtypur nga aplikacioni.
... Përshëndetje botë! Rinisja pas 10 sekondash… Ky është një çip esp32 me 2 bërthama CPU, WiFi/BT/BLE, versioni 1 i silikonit, memorie e jashtme flash 2MB. Madhësia minimale e heap-it të lirë: 298968 bajt. Rinisja pas 9 sekondash… Rinisja pas 8 sekondash… Rinisja pas 7 sekondash…
Për të dalë nga monitori IDF përdorni shkurtoren Ctrl+].
Sistemet Espressif
22 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Nëse monitori IDF dështon menjëherë pas ngarkimit, ose, nëse në vend të mesazheve të mësipërme, shihni informacione të rastësishme të ngjashme me ato që jepen më poshtë, pllaka juaj ka të ngjarë të përdorë një kristal 26 MHz. Shumica e modeleve të pllakave të zhvillimit përdorin 40 MHz, kështu që ESP-IDF e përdor këtë frekuencë si vlerë të paracaktuar.
Nëse keni një problem të tillë, bëni si më poshtë: 1. Dilni nga monitori. 2. Kthehuni te menyja e konfigurimit. 3. Shkoni te Konfigurimi i komponentëve > Cilësimet e pajisjeve > Konfigurimi kryesor i XTAL > Frekuenca kryesore e XTAL, pastaj ndryshoni CONFIG_XTAL_FREQ_SEL në 26 MHz. 4. Pas kësaj, ndërtoni dhe instaloni përsëri aplikacionin.
Në versionin aktual të ESP-IDF, frekuencat kryesore XTAL të mbështetura nga ESP32 janë si më poshtë:
· 26 MHz · 40 MHz
Shënim: Mund të kombinoni ndërtimin, instalimin e flash-it dhe monitorimin në një hap të vetëm duke ekzekutuar: idf.py -p PORT monitor i flash-it
Shihni gjithashtu: · IDF Monitor për shkurtesa të dobishme dhe më shumë detaje mbi përdorimin e IDF monitor. · idf.py për një referencë të plotë të komandave dhe opsioneve të idf.py.
Kjo është e gjitha që ju nevojitet për të filluar me ESP32! Tani jeni gati të provoni disa shembuj të tjerë.amples, ose shkoni direkt në zhvillimin e aplikacioneve tuaja.
E rëndësishme: Disa nga ish-ampSkedarët nuk e mbështesin ESP32 sepse pajisjet e kërkuara nuk përfshihen në ESP32, kështu që nuk mund të mbështeten. Nëse ndërtoni një ishample, ju lutem kontrolloni README file për tabelën e Synimeve të Mbështetura. Nëse kjo është e pranishme duke përfshirë objektivin ESP32, ose tabela nuk ekziston fare, p.sh.ampdo të funksionojë në ESP32.
Këshilla shtesë
Probleme me lejet /dev/ttyUSB0 Me disa shpërndarje Linux, mund të merrni mesazhin e gabimit "Dështoi hapja e portit /dev/ttyUSB0" kur instaloni ESP32. Kjo mund të zgjidhet duke shtuar përdoruesin aktual në grupin e thirrjes.
Pajtueshmëria me Python ESP-IDF mbështet Python 3.7 ose më të ri. Rekomandohet të përditësoni sistemin tuaj operativ në një version të fundit që plotëson këtë kërkesë. Opsionet e tjera përfshijnë instalimin e Python nga burimet ose përdorimin e një sistemi menaxhimi versionesh Python siç është pyenv.
Filloni me Paketën e Mbështetjes së Pllakës Për të shpejtuar prototipimin në disa pllaka zhvillimi, mund të përdorni Paketat e Mbështetjes së Pllakës (BSP), të cilat e bëjnë inicializimin e një pllake të caktuar aq të lehtë sa disa thirrje funksionesh.
Sistemet Espressif
23 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Një BSP zakonisht mbështet të gjithë komponentët harduerikë të ofruar në pllakën e zhvillimit. Përveç funksioneve të përcaktimit të pinout dhe inicializimit, një BSP vjen me drajverë për komponentët e jashtëm si sensorë, ekrane, kodekë audio etj. BSP-të shpërndahen nëpërmjet IDF Component Manager, kështu që ato mund të gjenden në Regjistrin e Komponentëve IDF. Ja një shembullampnjë udhëzues se si të shtoni ESP-WROVER-KIT BSP në projektin tuaj: idf.py add-dependency esp_wrover_kit
Më shumë ishampMë pak informacion mbi përdorimin e BSP mund të gjendet në BSP ex.ampdosje les.
Dokumente të Ngjashme Për përdoruesit e përparuar që duan të personalizojnë procesin e instalimit: · Përditësimi i mjeteve ESP-IDF në Windows · Vendosja e lidhjes seriale me ESP32 · Shtojca Eclipse · Zgjerimi VSCode · Monitori IDF
Përditësimi i mjeteve ESP-IDF në Windows
Instaloni mjetet ESP-IDF duke përdorur një skript. Nga Windows Command Prompt, kaloni në direktorinë ku është instaluar ESPIDF. Pastaj ekzekutoni:
instaloj.bat
Për Powershell, kaloni në direktorinë ku është instaluar ESP-IDF. Pastaj ekzekutoni:
instalo.ps1
Kjo do të shkarkojë dhe instalojë mjetet e nevojshme për të përdorur ESP-IDF. Nëse versioni specifik i mjetit është instaluar tashmë, nuk do të ndërmerret asnjë veprim. Mjetet shkarkohen dhe instalohen në një drejtori të specifikuar gjatë procesit të Instaluesit të Mjeteve ESP-IDF. Si parazgjedhje, kjo është C:Usersusername.espressif.
Shtoni mjetet ESP-IDF në PATH duke përdorur një skript eksporti. Instaluesi i mjeteve ESP-IDF krijon një shkurtore të menusë Start për Promptin e Komandës oESP-IDF. Kjo shkurtore hap një dritare të Promptit të Komandës ku të gjitha mjetet janë tashmë.
në dispozicion. Në disa raste, mund të dëshironi të punoni me ESP-IDF në një dritare të Command Prompt e cila nuk është nisur duke përdorur atë shkurtore. Nëse është ky rasti, ndiqni udhëzimet më poshtë për të shtuar mjetet ESP-IDF në PATH. Në komandën ku duhet të përdorni ESP-IDF, kaloni në direktorinë ku është instaluar ESP-IDF, pastaj ekzekutoni export.bat:
cd %userprofile%espesp-idf export.bat
Si alternativë, në Powershell ku duhet të përdorni ESP-IDF, kaloni në direktorinë ku është instaluar ESP-IDF dhe më pas ekzekutoni export.ps1:
cd ~/esp/esp-idf eksport.ps1
Kur të bëhet kjo, mjetet do të jenë të disponueshme në këtë komandë.
Vendosni lidhje seriale me ESP32 Ky seksion ofron udhëzime se si të vendosni lidhje seriale midis ESP32 dhe PC-së.
Sistemet Espressif
24 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Lidhni ESP32 me PC-në. Lidhni pllakën ESP32 me PC-në duke përdorur kabllon USB. Nëse drajveri i pajisjes nuk instalohet automatikisht, identifikoni çipin e konvertuesit USB në serial në pllakën tuaj ESP32 (ose dongle-in e konvertuesit të jashtëm), kërkoni drajverë në internet dhe instalojini ata. Më poshtë është lista e çipave të konvertuesit USB në serial të instaluar në shumicën e pllakave ESP32 të prodhuara nga Espressif së bashku me lidhjet për drajverët:
· CP210x: Drajverët VCP të urës USB në UART CP210x · FTDI: Drajverët e portit virtual COM FTDI Ju lutemi kontrolloni udhëzuesin e përdoruesit të pllakës për çipin specifik të konvertuesit USB në serial që përdoret. Drajverët e mësipërm janë kryesisht për referencë. Në rrethana normale, drajverët duhet të paketohen me një sistem operativ dhe të instalohen automatikisht pas lidhjes së pllakës me PC-në.
Kontrolloni portin në Windows Kontrolloni listën e porteve COM të identifikuara në Windows Device Manager. Shkëputni ESP32 dhe lidheni përsëri, për të verifikuar se cili port zhduket nga lista dhe pastaj shfaqet përsëri. Figurat më poshtë tregojnë portin serial për ESP32 DevKitC dhe ESP32 WROVER KIT.
Fig. 13: Ura USB në UART e ESP32-DevKitC në Windows Device Manager
Kontrolloni portin në Linux dhe macOS Për të kontrolluar emrin e pajisjes për portin serial të kartës suaj ESP32 (ose dongle-it të konvertuesit të jashtëm), ekzekutoni këtë komandë dy herë, së pari me kartën/dongle-in të shkëputur, pastaj me të lidhur. Porta që shfaqet herën e dytë është ajo që ju nevojitet: Linux
ls /dev/tty*
macOS
Sistemet Espressif
25 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 14: Dy porta seriale USB të ESP-WROVER-KIT në Windows Device Manager
Sistemet Espressif
26 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
ls /dev/cu.* Shënim: përdoruesit e macOS: nëse nuk e shihni portin serial, atëherë kontrolloni nëse i keni instaluar drajverët USB/serialë. Shihni Seksionin Lidhja e ESP32 me PC-në për lidhje me drajverët. Për macOS High Sierra (10.13), mund t'ju duhet gjithashtu të lejoni në mënyrë të qartë ngarkimin e drajverëve. Hapni Preferencat e Sistemit -> Siguria dhe Privatësia -> Të Përgjithshme dhe kontrolloni nëse shfaqet ndonjë mesazh këtu në lidhje me Softuerin e Sistemit nga zhvilluesi lp ku emri i zhvilluesit është Silicon Labs ose FTDI.
Shtimi i përdoruesit në grupin e dialout në Linux. Përdoruesi i regjistruar aktualisht duhet të ketë të drejta leximi dhe shkrimi në portin serial nëpërmjet USB-së. Në shumicën e shpërndarjeve Linux, kjo bëhet duke shtuar përdoruesin në grupin e dialout me komandën e mëposhtme:
sudo usermod -a -G telefononi $USER
në Arch Linux kjo bëhet duke shtuar përdoruesin në grupin uucp me komandën e mëposhtme:
sudo usermod -a -G uucp $USER
Sigurohuni që të identifikoheni përsëri për të aktivizuar lejet e leximit dhe shkrimit për portën serike.
Verifikoni lidhjen seriale. Tani verifikoni që lidhja seriale është funksionale. Mund ta bëni këtë duke përdorur një program terminali serial duke kontrolluar nëse merrni ndonjë dalje në terminal pas rivendosjes së ESP32. Shpejtësia e parazgjedhur e baud-it të konsolës në ESP32 është 115200.
Windows dhe Linux Në këtë shembullampPra, ne do të përdorim PuTTY SSH Client që është i disponueshëm si për Windows ashtu edhe për Linux. Mund të përdorni programe të tjera seriale dhe të vendosni parametrat e komunikimit si më poshtë. Ekzekutoni terminalin dhe vendosni portin serial të identifikuar. Shpejtësia e baudit = 115200 (nëse është e nevojshme, ndryshojeni këtë në shpejtësinë e parazgjedhur të baudit të çipit në përdorim), bitët e të dhënave = 8, bitët e ndalimit = 1 dhe pariteti = N. Më poshtë janë shembujt.ampPamjet e ekranit të konfigurimit të portit dhe parametrave të tillë të transmetimit (të përshkruar shkurt si 115200-8-1-N) në Windows dhe Linux. Mos harroni të zgjidhni saktësisht të njëjtin port serial që keni identifikuar në hapat e mësipërm. Pastaj hapni portin serial në terminal dhe kontrolloni nëse shihni ndonjë regjistër të printuar nga ESP32. Përmbajtja e regjistrit do të varet nga aplikacioni i ngarkuar në ESP32, shihni shembullinampProdhimi i produktit.
Shënim: Mbyllni terminalin serial pasi të verifikoni që komunikimi po funksionon. Nëse e mbani hapur seancën e terminalit, porta seriale nuk do të jetë e arritshme për ngarkimin e firmware-it më vonë.
macOS Për t'ju kursyer mundimin e instalimit të një programi terminali serial, macOS ofron komandën e ekranit. · Siç u diskutua në Kontrolloni portin në Linux dhe macOS, ekzekutoni:
ls /dev/cu.* · Duhet të shihni një rezultat të ngjashëm:
/dev/cu.Porta-Hyrëse-Bluetooth /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Dalja do të ndryshojë në varësi të llojit dhe numrit të kartave të lidhura me PC-në tuaj. Pastaj zgjidhni emrin e pajisjes së kartës suaj dhe ekzekutoni (nëse është e nevojshme, ndryshoni o115200pto në shpejtësinë e parazgjedhur të baud-it të çipit në përdorim):
screen /dev/cu.device_name 115200 Zëvendëso device_name me emrin e gjetur duke ekzekutuar ls /dev/cu.*.
Sistemet Espressif
27 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 15: Vendosja e komunikimit serial në PuTTY në Windows
Sistemet Espressif
28 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Fig. 16: Vendosja e komunikimit serial në PuTTY në Linux
Sistemet Espressif
29 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
· Ajo që po kërkoni është një regjistër i shfaqur në ekran. Përmbajtja e regjistrit do të varet nga aplikacioni i ngarkuar në ESP32, shih shembullinampOutput le. Për të dalë nga seanca e ekranit shtypni Ctrl-A + .
Shënim: Mos harroni të dilni nga seanca e ekranit pasi të verifikoni që komunikimi po funksionon. Nëse nuk arrini ta bëni këtë dhe thjesht mbyllni dritaren e terminalit, porta seriale nuk do të jetë e arritshme për ngarkimin e firmware-it më vonë.
ExampProdhimi le Një ishampRegjistri tregohet më poshtë. Rivendosni tabelën nëse nuk shihni asgjë. ets 8 qershor 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) etj. 8 qershor 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage bootloader I (45) nisja: koha e kompilimit 18:48:10
…
Nëse mund të shihni rezultate të lexueshme të regjistrit, kjo do të thotë që lidhja seriale po funksionon dhe jeni gati të vazhdoni me instalimin dhe më në fund me ngarkimin e aplikacionit në ESP32.
Shënim: Për disa konfigurime të instalimeve elektrike të portave seriale, kunjat seriale RTS dhe DTR duhet të çaktivizohen në programin e terminalit përpara se ESP32 të niset dhe të prodhojë dalje seriale. Kjo varet nga vetë hardueri, shumica e bordeve të zhvillimit (duke përfshirë të gjitha bordet Espressif) nuk e kanë këtë problem. Problemi është i pranishëm nëse RTS dhe DTR janë të lidhura direkt me kunjat EN dhe GPIO0. Shihni dokumentacionin e esptool për më shumë detaje.
Nëse keni arritur këtu nga Hapi 5. Hapat e Parë në ESP-IDF gjatë instalimit të softuerit për zhvillimin e ESP32, atëherë mund të vazhdoni me Hapi 5. Hapat e Parë në ESP-IDF.
IDF Monitor IDF Monitor është kryesisht një program terminali serial i cili transmeton të dhëna seriale nga dhe për në portën seriale të pajisjes së synuar. Ai gjithashtu ofron disa veçori specifike për IDF-në. IDF Monitor mund të nisë nga një projekt IDF duke ekzekutuar idf.py monitor.
Shkurtoret e tastierës Për ndërveprim të lehtë me IDF Monitor, përdorni shkurtoret e tastierës të dhëna në tabelë.
Sistemet Espressif
30 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Shkurtorja e tastierës Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (ose A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (ose I)
· Ctrl+H (ose H)
· Ctrl+X (ose X)
Ctrl+C
Veprimi
Përshkrimi
Dil nga programi Tasti i daljes nga menyja Dërgo vetë karakterin e menysë te telekomanda
Dërgo vetë karakterin e daljes në telekomandë
Rivendos objektivin në bootloader për të ndaluar aplikacionin nëpërmjet linjës RTS
Rivendos tabelën e objektivit nëpërmjet RTS
Ndërtoni dhe azhurnoni projektin
Ndërto dhe instalo vetëm aplikacionin
Ndalo/rifillo printimin e rezultateve të regjistrit në ekran
Ndalimi/rifillimi i daljes së regjistrit u ruajt në file
Koha e ndalimit/rifillimitamps
shtypjen
Shfaq të gjitha shkurtoret e tastierës
Shtypni dhe ndiqni atë me një nga tastet e dhëna më poshtë.
Rivendos kartën e synuar në bootloader nëpërmjet linjës RTS (nëse është e lidhur), në mënyrë që pllaka të mos ekzekutojë asgjë. E dobishme kur duhet të prisni që një pajisje tjetër të ndizet. Rivendos kartën e synuar dhe rinis aplikacionin nëpërmjet linjës RTS (nëse është e lidhur).
Ndërpret idf_monitor për të ekzekutuar objektivin flash të projektit, pastaj rifillon idf_monitor. Çdo burim i ndryshuar files rikompilohen dhe pastaj ri-flashohen. Target encrypted-flash ekzekutohet nëse idf_monitor është nisur me argumentin -E. Pauzon idf_monitor për të ekzekutuar objektivin app-flash, pastaj rifillon idf_monitor. Ngjashëm me objektivin flash, por vetëm aplikacioni kryesor ndërtohet dhe ri-flashohet. Target encrypted-app-flash ekzekutohet nëse idf_monitor është nisur me argumentin -E. Hidh poshtë të gjitha të dhënat seriale hyrëse ndërsa janë të aktivizuara. Lejon të ndaloni shpejt dhe të shqyrtoni daljen e regjistrit pa e mbyllur monitorin. Krijon një file në direktorinë e projektit dhe rezultati shkruhet në të file derisa kjo të çaktivizohet me të njëjtën shkurtore tastiere (ose IDF Monitor të dalë). IDF Monitor mund të shtypë një kohëzgjatjeamp në fillim të çdo rreshti. Koha më e gjatëamp formati mund të ndryshohet nga –timesampargumenti i rreshtit të komandës -format.
Dilni nga programi
Ndërprerja e aplikacionit që funksionon
Ndërpret IDF Monitor dhe ekzekuton korrigjuesin e gabimeve të projektit GDB për të korrigjuar gabimet e aplikacionit gjatë kohës së ekzekutimit. Kjo kërkon që opsioni :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME të jetë i aktivizuar.
Çdo tast i shtypur, përveç Ctrl-] dhe Ctrl-T, do të dërgohet përmes portit serial.
Karakteristikat specifike të IDF-së
Dekodimi Automatik i Adresës Sa herë që ESP-IDF nxjerr një adresë kodi heksadecimal të formës 0x4________, IDF Monitor përdor addr2line_ për të kërkuar vendndodhjen në kodin burimor dhe për të gjetur emrin e funksionit.
Nëse një aplikacion ESP-IDF rrëzohet dhe bie në panik, prodhohet një dokument dump dhe një gjurmë prapa në regjistër, si më poshtë:
Sistemet Espressif
31 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Gabim i Meditimit Guru i tipit StoreProhibited ndodhi në bërthamën 0. Përjashtim ishte
i patrajtuar.
Regjistri i deponit:
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 SHKAK TË SHKAKTIMIT:
0x0000001d
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor shton më shumë detaje në të dhënat e grumbullimit:
Gabim i Meditimit Guru i tipit StoreProhibited ndodhi në bërthamën 0. Përjashtim ishte
i patrajtuar.
Regjistri i deponit:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: bëj_something_to_crash në /home/gus/esp/32/idf/examples/filloni/
hello_world/main/./hello_world_main.c:57
(i futur në rresht nga) inner_dont_crash në /home/gus/esp/32/idf/examples/fillo/përshëndetje_
botë/kryesore/./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 SHKAK TË SHKAKTIMIT:
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 (e futur në rresht nga) inner_dont_crash në /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: ende nuk pëson rrëzim në /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: nuk ndodh_bllokim në /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:42 0x400dbf82: app_main në /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task në /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254
Për të deshifruar secilën adresë, IDF Monitor ekzekuton komandën e mëposhtme në sfond: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Shënim: Vendosni variablin e mjedisit ESP_MONITOR_DECODE në 0 ose thirrni idf_monitor.py me një rresht komande specifike.
Sistemet Espressif
32 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
opsioni: idf_monitor.py –disable-address-decoding për të çaktivizuar dekodimin e adresës.
Rivendosja e objektivit në lidhje Si parazgjedhje, IDF Monitor do ta rivendosë objektivin kur lidhet me të. Rivendosja e çipit të objektivit kryhet duke përdorur linjat seriale DTR dhe RTS. Për të parandaluar që IDF Monitor ta rivendosë automatikisht objektivin në lidhje, thirrni IDF Monitor me opsionin –pa-rivendosje (p.sh., idf_monitor.py –pa-rivendosje).
Shënim: Opsioni –no-reset zbaton të njëjtën sjellje edhe kur lidhet IDF Monitor me një port të caktuar (p.sh., idf.py monitor –no-reset -p [PORT]).
Nisja e GDB me GDBStub GDBStub është një veçori e dobishme e debugging-ut në kohën e ekzekutimit që ekzekutohet në shënjestër dhe lidhet me hostin përmes portit serial për të marrë komanda debugging. GDBStub mbështet komanda të tilla si leximi i memories dhe variablave, shqyrtimi i kornizave të grumbullit të thirrjeve etj. Edhe pse GDBStub është më pak i gjithanshëm se JTAG debugging, nuk kërkon ndonjë pajisje të veçantë (si p.sh. një JTAG në urën USB) pasi komunikimi bëhet tërësisht nëpërmjet portit serial. Një objektiv mund të konfigurohet për të ekzekutuar GDBStub në sfond duke vendosur CONFIG_ESP_SYSTEM_PANIC në GDBStub gjatë kohës së ekzekutimit. GDBStub do të funksionojë në sfond derisa të dërgohet një mesazh Ctrl+C nëpërmjet portit serial dhe të shkaktojë që GDBStub të ndërpresë (d.m.th., të ndalojë ekzekutimin e) programit, duke lejuar kështu që GDBStub të trajtojë komandat e debugging-ut. Për më tepër, trajtuesi i panikut mund të konfigurohet për të ekzekutuar GDBStub në rast rrëzimi duke vendosur CONFIG_ESP_SYSTEM_PANIC në GDBStub në rast paniku. Kur ndodh një rrëzimi, GDBStub do të nxjerrë një model të veçantë vargu mbi portin serial për të treguar se është duke u ekzekutuar. Në të dyja rastet (d.m.th., duke dërguar mesazhin Ctrl+C ose duke marrë modelin e veçantë të vargut), IDF Monitor do të nisë automatikisht GDB në mënyrë që t'i lejojë përdoruesit të dërgojë komanda debugging. Pasi GDB të dalë, objektivi rivendoset nëpërmjet linjës seriale RTS. Nëse kjo linjë nuk është e lidhur, përdoruesit mund ta rivendosin objektivin e tyre (duke shtypur butonin e rivendosjes së bordeve).
Shënim: Në sfond, IDF Monitor ekzekuton komandën e mëposhtme për të nisur GDB:
xtensa-esp32-elf-gdb -ex “vendos baud serial BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Përshëndetje NAME chip`
Filtrimi i Daljes Monitori IDF mund të thirret si idf.py monitor –print-filter=”xyz”, ku –print-filter është parametri për filtrimin e daljes. Vlera e parazgjedhur është një varg bosh, që do të thotë se gjithçka printohet.
Kufizimet mbi atë që duhet të printohet mund të specifikohen si një seritag>: artikuj kutag> është tag varg dhe është një karakter nga bashkësia {N, E, W, I, D, V, *} që i referohet një niveli për regjistrim.
Për shembullample, PRINT_FILTER=”tag1:W" përputhet dhe printon vetëm rezultatet e shkruara me ESP_LOGW("tag1”, …) ose në një nivel më të ulët të hollësisë, p.sh. ESP_LOGE(“tag1″, …). Pa specifikuar një ose duke përdorur *, parazgjedhja është niveli Verbose.
Shënim: Përdorni regjistrimin parësor për të çaktivizuar gjatë kompilimit rezultatet që nuk ju nevojiten përmes bibliotekës së regjistrimit. Filtrimi i rezultateve me monitorin IDF është një zgjidhje dytësore që mund të jetë e dobishme për rregullimin e opsioneve të filtrimit pa e rikompiluar aplikacionin.
Aplikacioni juaj tags nuk duhet të përmbajë hapësira, yllëza * ose dy pika: për të qenë i pajtueshëm me veçorinë e filtrimit të daljes.
Nëse rreshti i fundit i rezultatit në aplikacionin tuaj nuk pasohet nga një kthim karrige, filtrimi i rezultatit mund të ngatërrohet, p.sh., monitori fillon të shtypë rreshtin dhe më vonë zbulon se rreshti nuk duhej të ishte shkruar. Ky është një problem i njohur dhe mund të shmanget duke shtuar gjithmonë një kthim karrige (sidomos kur nuk vjen asnjë rezultat menjëherë pas tij).
Sistemet Espressif
33 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
ExampMësime për rregullat e filtrimit:
· * mund të përdoret për të përputhur çdo tagsMegjithatë, vargu PRINT_FILTER=”*:I tag1:E” në lidhje me tag1 shtyp vetëm gabime, sepse rregulli për tag1 ka një përparësi më të lartë se rregulli për *.
· Rregulli i parazgjedhur (bosh) është ekuivalent me *:V sepse përputhet me çdo tag në nivelin Verbose ose më të ulët do të thotë që përputhet gjithçka.
· “*:N” shtyp jo vetëm rezultatet nga funksionet e regjistrimit, por edhe printimet e bëra nga printf, etj. Për ta shmangur këtë, përdorni *:E ose një nivel më të lartë të hollësishmërisë.
· Rregullattag1:V”, “tag1:v”, “tag1:”, “tag1:*”, dhe “tag1” janë ekuivalente. · Rregulli “tag1:P tag1:E” është ekuivalente me “tag1:E” sepse çdo ndodhje pasuese e të njëjtës tag
emri mbishkruan atë të mëparshmin. · Rregulli "tag1: I tagVetëm printime 2:W” tag1 në nivelin e hollësisë së informacionit ose më të ulët dhe tag2 në Paralajmërim
nivel fjalësh të thëna ose më i ulët. · Rregull “tag1: I tag2:P tag3:N” është në thelb ekuivalent me atë të mëparshëm sepse tag3:N specifikon
se tag3 nuk duhet të shtypet. · tag3:N në rregullin "tag1: I tag2:P tag3:N *:V” është më kuptimplotë sepse pa tag3:N
tagMund të jenë shtypur 3 mesazhe; gabimet për tag1 dhe tag2 do të printohet në nivelin e specifikuar (ose më të ulët) të hollësishmërisë dhe çdo gjë tjetër do të printohet si parazgjedhje.
Një shembull më kompleks i filtrimitampFragmenti i mëposhtëm i regjistrit u mor pa asnjë opsion filtrimi:
load:0x40078000,len:13564 entry 0x40078d4c E (31) esp_image: imazhi në 0x30000 ka bajt magjik të pavlefshëm W (31) esp_image: imazhi në 0x30000 ka modalitet SPI të pavlefshëm 255 E (39) boot: Ndarja e aplikacionit të fabrikës nuk është e bootueshme I (568) cpu_start: Pro CPU po ngrihet. I (569) heap_init: Duke u inicializuar. RAM i disponueshëm për alokim dinamik: I (603) cpu_start: Kodi i përdoruesit për fillimin e Pro CPU D (309) light_driver: [light_init, 74]:status: 1, modalitet: 2 D (318) vfs: esp_vfs_register_fd_range është i suksesshëm për diapazonin <54; 64) dhe VFS ID 1 I (328) wifi: detyra e drajverit wifi: 3ffdbf84, prio:23, stack:4096, core=0
Rezultati i kapur për opsionet e filtrimit PRINT_FILTER=”wifi esp_image:E light_driver:I” është dhënë më poshtë:
E (31) esp_image: imazhi në 0x30000 ka bajt magjik të pavlefshëm I (328) wifi: detyra e drajverit wifi: 3ffdbf84, prio:23, stack:4096, core=0
Opsionet “PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” tregojnë rezultatin e mëposhtëm:
load:0x40078000,len:13564 entry 0x40078d4c I (569) heap_init: Duke u inicializuar. RAM i disponueshëm për alokim dinamik: D (309) light_driver: [light_init, 74]:status: 1, mod: 2
Probleme të njohura me IDF Monitor
Probleme të vërejtura në Windows
· Tastet me shigjeta, si dhe disa taste të tjera, nuk funksionojnë në GDB për shkak të kufizimeve të Windows Console. · Herë pas here, kur oidf.pypex del, mund të ndalet për deri në 30 sekonda para se të rifillojë IDF Monitor. · Kur ekzekutohet ogdbpis, mund të ndalet për një kohë të shkurtër para se të fillojë të komunikojë me GDBStub.
Sistemet Espressif
34 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Fillimi i Konfigurimit Standard të Varginës së Veglave për Linux dhe macOS
Instalimi hap pas hapi Ky është një plan i detajuar për t'ju udhëhequr nëpër procesin e instalimit.
Konfigurimi i Mjedisit të Zhvillimit Këto janë hapat për konfigurimin e ESP-IDF për ESP32 tuaj. · Hapi 1. Instalimi i Parakushteve · Hapi 2. Merrni ESP-IDF · Hapi 3. Konfiguroni mjetet · Hapi 4. Konfiguroni variablat e mjedisit · Hapi 5. Hapat e parë në ESP-IDF
Hapi 1. Parakushtet e instalimit Për të përdorur ESP-IDF me ESP32, duhet të instaloni disa paketa softuerësh bazuar në Sistemin tuaj Operativ. Ky udhëzues konfigurimi do t'ju ndihmojë të instaloni gjithçka në sistemet Linux dhe macOS.
Për përdoruesit e Linux-it Për të kompajluar duke përdorur ESP-IDF, do t'ju duhet të merrni paketat e mëposhtme. Komanda që do të ekzekutohet varet nga shpërndarja e Linux-it që po përdorni:
· Ubuntu dhe 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 dhe 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 mbështetet ende, por versioni 8 i CentOS rekomandohet për një përvojë më të mirë përdoruesi. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Shënim: · Për përdorim me ESP-IDF kërkohet CMake versioni 3.16 ose më i ri. Ekzekutoni otools/idf_tools.py install cmakepto për të instaluar një version të përshtatshëm nëse versionet e sistemit tuaj operativ nuk e kanë një të tillë. · Nëse nuk e shihni shpërndarjen tuaj Linux në listën e mësipërme, atëherë ju lutemi kontrolloni dokumentacionin e tij për të gjetur se cilën komandë të përdorni për instalimin e paketës.
Për përdoruesit e macOS, ESP-IDF do të përdorë versionin e Python të instaluar si parazgjedhje në macOS. · Instaloni CMake & Ninja build: Nëse keni HomeBrew, mund të ekzekutoni: brew install cmake ninja dfu-util Nëse keni MacPorts, mund të ekzekutoni: sudo port install cmake ninja dfu-util Përndryshe, konsultohuni me faqet kryesore të CMake dhe Ninja për shkarkimet e instalimit të macOS.
Sistemet Espressif
35 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
· Rekomandohet fuqimisht të instaloni edhe ccache për ndërtime më të shpejta. Nëse keni HomeBrew, kjo mund të bëhet nëpërmjet brew install ccache ose sudo port install ccache në MacPorts.
Shënim: Nëse një gabim i tillë shfaqet gjatë ndonjë hapi: xcrun: gabim: shtegu i pavlefshëm aktiv i zhvilluesit (/Library/Developer/CommandLineTools), mungon xcrun në: /Library/Developer/CommandLineTools/usr/bin/xcrun
Pastaj do t'ju duhet të instaloni mjetet e linjës së komandës XCode për të vazhduar. Mund t'i instaloni këto duke ekzekutuar xcode-select –install.
Përdoruesit e Apple M1 Nëse përdorni platformën Apple M1 dhe shihni një gabim si ky: KUJDES: direktoria për mjetin xtensa-esp32-elf version esp-2021r2-patch3-8.4.0 është e pranishme, por mjeti nuk u gjet GABIM: mjeti xtensa-esp32-elf nuk ka versione të instaluara. Ju lutemi ekzekutoni 'install.sh' për ta instaluar atë.
ose: zsh: lloj i gabuar i CPU-së në skedarin ekzekutues: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Pastaj do t'ju duhet të instaloni Apple Rosetta 2 duke ekzekutuar /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Instalimi i Python 3 Bazuar në shënimet e lëshimit të macOS Catalina 10.15, përdorimi i Python 2.7 nuk rekomandohet dhe Python 2.7 nuk do të përfshihet si parazgjedhje në versionet e ardhshme të macOS. Kontrolloni se cilin Python keni aktualisht: python –version
Nëse rezultati është si Python 2.7.17, interpretuesi juaj i parazgjedhur është Python 2.7. Nëse po, kontrolloni gjithashtu nëse Python 3 nuk është instaluar tashmë në kompjuterin tuaj: python3 –version
Nëse komanda e mësipërme kthen një gabim, kjo do të thotë që Python 3 nuk është instaluar. Më poshtë është një mbishkrim.view hapat për të instaluar Python 3.
· Instalimi me HomeBrew mund të bëhet si më poshtë: brew install python3
· Nëse keni MacPorts, mund të ekzekutoni: sudo port install python38
Hapi 2. Merrni ESP-IDF Për të ndërtuar aplikacione për ESP32, ju nevojiten bibliotekat e softuerëve të ofruara nga Espressif në repozitorin ESP-IDF. Për të marrë ESP-IDF, shkoni te direktoria juaj e instalimit dhe klononi repozitorin me git clone, duke ndjekur udhëzimet më poshtë specifike për sistemin tuaj operativ. Hapni Terminalin dhe ekzekutoni komandat e mëposhtme:
Sistemet Espressif
36 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursive https://github.com/espressif/esp-idf.git
ESP-IDF do të shkarkohet në ~/esp/esp-idf. Konsultohuni me versionet ESP-IDF për informacion se cilin version ESP-IDF të përdorni në një situatë të caktuar.
Hapi 3. Konfiguroni mjetet Përveç ESP-IDF, duhet të instaloni edhe mjetet e përdorura nga ESP-IDF, siç janë kompiluesi, debugger-i, paketat Python etj., për projektet që mbështesin ESP32. cd ~/esp/esp-idf ./install.sh esp32
ose me Fish shell cd ~/esp/esp-idf ./install.fish esp32
Komandat e mësipërme instalojnë mjete vetëm për ESP32. Nëse keni ndërmend të zhvilloni projekte për më shumë objektiva çipi, atëherë duhet t'i listoni të gjitha dhe t'i ekzekutoni për shembull.ample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
ose me Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Për të instaluar mjete për të gjitha objektivat e mbështetura, ju lutemi ekzekutoni komandën e mëposhtme: cd ~/esp/esp-idf ./install.sh all
ose me Fish shell cd ~/esp/esp-idf ./install.fish all
Shënim: Për përdoruesit e macOS, nëse shfaqet një gabim si ky gjatë ndonjë hapi:urlgabim hapjeje [SSL: CERTIFICATE_VERIFY_FAILED] verifikimi i certifikatës dështoi: nuk mund të merret certifikata e lëshuesit lokal (_ssl.c:xxx)
Mund të ekzekutoni komandën Install Certificates.command në dosjen Python të kompjuterit tuaj për të instaluar certifikatat. Për detaje, shihni Gabim në Shkarkim gjatë Instalimit të Mjeteve ESP-IDF.
Alternativa File Shkarkimet Instaluesi i mjeteve shkarkon një numër të fileështë e bashkangjitur me GitHub Releases. Nëse qasja në GitHub është e ngadaltë, atëherë është e mundur të caktoni një ndryshore mjedisi që të preferojë serverin e shkarkimit Espressifns për shkarkimet e aseteve GitHub.
Shënim: Ky cilësim kontrollon vetëm mjetet individuale të shkarkuara nga versionet e GitHub, nuk e ndryshon URLpërdoret për të aksesuar çdo depo Git.
Për të preferuar serverin e shkarkimit Espressif gjatë instalimit të mjeteve, përdorni sekuencën e mëposhtme të komandave kur ekzekutoni install.sh:
Sistemet Espressif
37 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
cd ~/esp/esp-idf eksport IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Përshtatja e shtegut të instalimit të mjeteve Skriptet e prezantuara në këtë hap instalojnë mjetet e kompilimit të kërkuara nga ESP-IDF brenda direktorisë kryesore të përdoruesit: $HOME/.espressif në Linux. Nëse dëshironi të instaloni mjetet në një direktori tjetër, vendosni variablin e mjedisit IDF_TOOLS_PATH para se të ekzekutoni skriptet e instalimit. Sigurohuni që llogaria juaj e përdoruesit ka leje të mjaftueshme për të lexuar dhe shkruar këtë shteg. Nëse ndryshoni IDF_TOOLS_PATH, sigurohuni që të jetë vendosur në të njëjtën vlerë sa herë që ekzekutohen skripti i instalimit (install.bat, install.ps1 ose install.sh) dhe një skript Eksporti (export.bat, export.ps1 ose export.sh).
Hapi 4. Konfiguroni variablat e mjedisit. Mjetet e instaluara nuk janë shtuar ende në variablin e mjedisit PATH. Për t'i bërë mjetet të përdorshme nga rreshti i komandës, duhet të caktohen disa variabla të mjedisit. ESP-IDF ofron një skript tjetër që e bën këtë. Në terminalin ku do të përdorni ESP-IDF, ekzekutoni:
. $HOME/esp/esp-idf/export.sh
ose për peshqit (mbështetet vetëm që nga versioni 3.0.0 i peshqve):
$HOME/esp/esp-idf/export.fish
Vini re hapësirën midis pikës kryesore dhe shtegut! Nëse planifikoni ta përdorni shpesh esp-idf, mund të krijoni një pseudonim për ekzekutimin e export.sh:
1. Kopjoni dhe ngjisni komandën e mëposhtme në shellns pro tuajfile (.profile, .bashrc, .zprofile, etj.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Rifreskoni konfigurimin duke rinisur seancën e terminalit ose duke ekzekutuar kodin burimor [shtegu për te pro].file],
për shembullample, burimi ~/.bashrc. Tani mund të ekzekutoni get_idf për të konfiguruar ose rifreskuar mjedisin esp-idf në çdo seancë terminali. Teknikisht, mund të shtoni export.sh në shellns pro tuaj.file direkt; megjithatë, nuk rekomandohet. Kjo aktivizon mjedisin virtual IDF në çdo seancë terminali (duke përfshirë ato ku IDF nuk është i nevojshëm), duke prishur qëllimin e mjedisit virtual dhe me shumë mundësi duke ndikuar në softuerë të tjerë.
Hapi 5. Hapat e parë në ESP-IDF Tani, meqenëse të gjitha kërkesat janë përmbushur, tema tjetër do t'ju udhëzojë se si të filloni projektin tuaj të parë. Ky udhëzues do t'ju ndihmojë në hapat e parë duke përdorur ESP-IDF. Ndiqni këtë udhëzues për të filluar një projekt të ri në ESP32 dhe për të ndërtuar, instaluar dhe monitoruar daljen e pajisjes.
Shënim: Nëse nuk e keni instaluar ende ESP-IDF, ju lutemi shkoni te Instalimi dhe ndiqni udhëzimet për të marrë të gjithë softuerin e nevojshëm për të përdorur këtë udhëzues.
Filloni një Projekt Tani jeni gati të përgatitni aplikacionin tuaj për ESP32. Mund të filloni me projektin getstarted/hello_world nga ishampdrejtoria les në ESP-IDF.
E rëndësishme: Sistemi i ndërtimit ESP-IDF nuk mbështet hapësira në shtigjet për në ESP-IDF ose për në projekte.
Kopjoni projektin get-started/hello_world në direktorinë ~/esp:
Sistemet Espressif
38 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
Shënim: Ekziston një gamë e gjerë ish-shample projekte ne ishampdrejtoria les në ESP-IDF. Ju mund të kopjoni çdo projekt në të njëjtën mënyrë siç është paraqitur më sipër dhe ta ekzekutoni atë. Është gjithashtu e mundur të ndërtohet ishamples në vend pa i kopjuar më parë.
Lidhni Pajisjen Tuaj Tani lidhni kartën tuaj ESP32 me kompjuterin dhe kontrolloni se nën cilën portë seriale është e dukshme pllaka. Portat seriale kanë modelet e mëposhtme të emërtimit:
· Linux: duke filluar me /dev/tty · macOS: duke filluar me /dev/cu. Nëse nuk jeni të sigurt se si ta kontrolloni emrin e portës seriale, ju lutemi referojuni Vendosja e Lidhjes Seriale me ESP32 për detaje të plota.
Shënim: Mbajeni të dobishëm emrin e portit pasi do t'ju duhet në hapat e ardhshëm.
Konfiguro Projektin Tënd Shko te direktoria juaj hello_world, cakto ESP32 si objektiv dhe ekzekuto programin e konfigurimit të projektit menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Pasi të hapni një projekt të ri, së pari duhet të caktoni objektivin me idf.py set-target esp32. Vini re se ndërtimet dhe konfigurimet ekzistuese në projekt, nëse ka, do të pastrohen dhe inicializohen në këtë proces. Objektivi mund të ruhet në variablin e mjedisit për ta anashkaluar fare këtë hap. Shihni Zgjidh Çipin e Objektivit: set-target për informacion shtesë. Nëse hapat e mëparshëm janë kryer saktë, shfaqet menyja e mëposhtme:
Fig. 17: Konfigurimi i projektit – Dritarja kryesore Po e përdorni këtë meny për të konfiguruar variablat specifike të projektit, p.sh., emrin dhe fjalëkalimin e rrjetit Wi-Fi, shpejtësinë e procesorit, etj. Konfigurimi i projektit me menuconfig mund të anashkalohet për hello_worldp, pasi kjo ështëample vrapon me
Sistemet Espressif
39 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
konfigurimin e paracaktuar.
Kujdes: Nëse përdorni kartën ESP32-DevKitC me modulin ESP32-SOLO-1, ose kartën ESP32-DevKitM-1 me modulin ESP32-MIN1-1(1U), ju lutemi aktivizoni modalitetin me një bërthamë (CONFIG_FREERTOS_UNICORE) në menuconfig para se të instaloni ex.amples.
Shënim: Ngjyrat e menusë mund të jenë të ndryshme në terminalin tuaj. Mund ta ndryshoni pamjen me opsionin –style. Ju lutemi ekzekutoni idf.py menuconfig –help për më shumë informacion.
Nëse po përdorni një nga bordet e zhvillimit të mbështetura, mund ta përshpejtoni zhvillimin tuaj duke përdorur Paketën e Ndihmës për Bordin. Shihni Këshilla Shtesë për më shumë informacion.
Ndërtoni Projektin Ndërtoni projektin duke ekzekutuar:
idf.py ndërtuar
Kjo komandë do të përpilojë aplikacionin dhe të gjithë komponentët ESP-IDF, më pas do të gjenerojë ngarkuesin, tabelën e ndarjes dhe binarët e aplikacionit.
$ idf.py build Duke ekzekutuar cmake në direktorinë /path/to/hello_world/build Duke ekzekutuar “cmake -G Ninja –warn-uninitialized /path/to/hello_world”… Paralajmëro për vlerat e painicializuara. — U gjet Git: /usr/bin/git (u gjet versioni “2.17.0”) — Ndërtimi i komponentit bosh aws_iot për shkak të konfigurimit — Emrat e komponentëve: … — Shtigjet e komponentëve: …
… (më shumë linja të prodhimit të sistemit të ndërtimit)
[527/527] Duke gjeneruar hello_world.bin esptool.py v2.3.1
Ndërtimi i projektit përfundoi. Për të instaluar flash, ekzekutoni këtë komandë: ../../../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 ose ekzekutoni 'idf.py -p PORT flash'
Nëse nuk ka gabime, ndërtimi do të përfundojë duke gjeneruar firmuerin binar .bin files.
Regjistroni skedarët binare që sapo keni ndërtuar (bootloader.bin, partition-table.bin dhe hello_world.bin) në kartën tuaj ESP32 duke ekzekutuar:
flash idf.py -p PORT [-b BAUD]
Zëvendësoni PORT me emrin e portit serial të kartës suaj ESP32. Gjithashtu mund të ndryshoni shpejtësinë e transferimit të të dhënave flasher duke zëvendësuar BAUD me shpejtësinë e transferimit që ju nevojitet. Shpejtësia e parazgjedhur e transferimit të të dhënave është 460800. Për më shumë informacion mbi argumentet idf.py, shihni idf.py.
Shënim: Opsioni flash ndërton dhe aktivizon automatikisht projektin, kështu që ekzekutimi i komandës idf.py build nuk është i nevojshëm.
Sistemet Espressif
40 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Keni hasur probleme gjatë instalimit? Nëse ekzekutoni komandën e dhënë dhe shihni gabime të tilla si "Dështoi të lidhej p", mund të ketë disa arsye për këtë. Një nga arsyet mund të jenë problemet e hasura nga esptool.py, programi që thirret nga sistemi i ndërtimit për të rivendosur çipin, për të bashkëvepruar me ngarkuesin e nisjes së ROM-it dhe për të instaluar firmware-in. Një zgjidhje e thjeshtë për të provuar është rivendosja manuale e përshkruar më poshtë, dhe nëse nuk ndihmon, mund të gjeni më shumë detaje rreth problemeve të mundshme në Zgjidhjen e Problemeve.
esptool.py rivendos automatikisht ESP32 duke pohuar linjat e kontrollit DTR dhe RTS të çipit të konvertuesit USB në serial, dmth., FTDI ose CP210x (për më shumë informacion, shihni Vendosja e Lidhjes Seriale me ESP32). Linjat e kontrollit DTR dhe RTS janë nga ana tjetër të lidhura me kunjat GPIO0 dhe CHIP_PU (EN) të ESP32, duke ndryshuar kështu vëllimin.tagNivelet e DTR dhe RTS do të ngarkojnë ESP32 në modalitetin e Shkarkimit të Firmware-it. Si shembullample të themi, kontrolloni skemën për tabelën e zhvillimit ESP32 DevKitC.
Në përgjithësi, nuk duhet të keni probleme me bordet zyrtare të zhvillimit esp-idf. Megjithatë, esptool.py nuk është në gjendje të rivendosë automatikisht harduerin tuaj në rastet e mëposhtme:
· Pajisjet tuaja nuk i kanë linjat DTR dhe RTS të lidhura me GPIO0 dhe CHIP_PU · Linjat DTR dhe RTS janë konfiguruar ndryshe · Nuk ka fare linja të tilla kontrolli serial
Në varësi të llojit të pajisjeve që keni, mund të jetë gjithashtu e mundur që ta vendosni manualisht kartën ESP32 në modalitetin e Shkarkimit të Firmware-it (rivendosjen).
· Për tabelat e zhvillimit të prodhuara nga Espressif, ky informacion mund të gjendet në udhëzuesit përkatës të fillimit ose udhëzuesit e përdoruesit. Për shembullample të themi, për të rivendosur manualisht një pllakë zhvillimi ESP-IDF, mbani të shtypur butonin Boot (GPIO0) dhe shtypni butonin EN (CHIP_PU).
· Për llojet e tjera të pajisjeve, provoni të tërhiqni GPIO0 poshtë.
Funksionimi Normal Kur ndizet, do të shihni regjistrin e daljes të ngjashëm me sa vijon:
… 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 Porta seriale /dev/ttyUSB0 Duke u lidhur…….._ Çipi është ESP32D0WDQ6 (revizioni 0) Karakteristikat: WiFi, BT, Dual Core, Skema e Kodimit Asnjë Kristali është 40MHz MAC: 24:0a:c4:05:b9:14 Duke ngarkuar stub… Duke ekzekutuar stub… Stub duke ekzekutuar… Duke ndryshuar shpejtësinë e baud në 460800 Ndryshuar. Duke konfiguruar madhësinë e memories flash… Kompresuar 3072 bajt në 103… Shkruar në 0x00008000… (100 %) Shkruar 3072 bajt (103 të kompresuar) në 0x00008000 në 0.0 sekonda (efektive 5962.8 kbit/s)… Hash i të dhënave u verifikua. Kompresuar 26096 bajt në 15408… Shkruar në 0x00001000… (100 %) Shkruar 26096 bajt (15408 të kompresuar) në 0x00001000 në 0.4 sekonda (efektive 546.7 kbit/s)… Hash i të dhënave u verifikua. Kompresuar 147104 bajt në 77364… Duke shkruar në 0x00010000… (20 %) Duke shkruar në 0x00014000… (40 %) Duke shkruar në 0x00018000… (60 %) Duke shkruar në 0x0001c000… (80 %)
(vazhdon në faqen tjetër)
Sistemet Espressif
41 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
(vazhdon nga faqja e mëparshme) Shkrimi në 0x00020000… (100 %) Shkroi 147104 bajt (77364 të kompresuar) në 0x00010000 në 1.9 sekonda (efektive 615.5 kbit/s)… Hash-i i të dhënave u verifikua.
Po largohet… Rivendosja e vështirë nëpërmjet pinit RTS… U krye
Nëse nuk ka probleme deri në fund të procesit të flash-it, pllaka do të riniset dhe do të nisë theohello_worldpapplication. Nëse dëshironi të përdorni Eclipse ose VS Code IDE në vend që të ekzekutoni idf.py, shikoni Eclipse Plugin, VSCode Extension.
Monitorimi i Daljes Për të kontrolluar nëse ohello_worldpis është me të vërtetë duke u ekzekutuar, shkruani idf.py -p PORT monitor (Mos harroni të zëvendësoni PORT me emrin e portit tuaj serial). Kjo komandë hap aplikacionin IDF Monitor:
$ idf.py -p monitor Duke ekzekutuar idf_monitor në direktorinë […]/esp/hello_world/build Duke ekzekutuar “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor në 115200 —– Dil: Ctrl+] | Menu: Ctrl+T | Ndihmë: Ctrl+T e ndjekur nga Ctrl+H –ets 8 qershor 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) etj. 8 qershor 2016 00:22:57 …
Pasi regjistrimet e nisjes dhe diagnostikimit të lëvizin lart, duhet të shihni oHello world! të shtypur nga aplikacioni.
... Përshëndetje botë! Rinisja pas 10 sekondash… Ky është një çip esp32 me 2 bërthama CPU, WiFi/BT/BLE, versioni 1 i silikonit, memorie e jashtme flash 2MB. Madhësia minimale e heap-it të lirë: 298968 bajt. Rinisja pas 9 sekondash… Rinisja pas 8 sekondash… Rinisja pas 7 sekondash…
Për të dalë nga monitori IDF, përdorni shkurtoren Ctrl+]. Nëse monitori IDF dështon menjëherë pas ngarkimit, ose, nëse në vend të mesazheve të mësipërme, shihni mbeturina të rastësishme të ngjashme me ato që jepen më poshtë, pllaka juaj ka të ngjarë të përdorë një kristal 26 MHz. Shumica e modeleve të pllakave të zhvillimit përdorin 40 MHz, kështu që ESP-IDF e përdor këtë frekuencë si vlerë të paracaktuar.
Nëse keni një problem të tillë, bëni sa vijon:
1. Dilni nga monitori. 2. Kthehuni te menyja e konfigurimit. 3. Shkoni te Konfigurimi i Komponentëve > Cilësimet e Pajisjeve > Konfigurimi Kryesor i XTAL > XTAL Kryesor
frekuencën, pastaj ndryshoni CONFIG_XTAL_FREQ_SEL në 26 MHz. 4. Pas kësaj, ndërtoni dhe instaloni përsëri aplikacionin.
Sistemet Espressif
42 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Në versionin aktual të ESP-IDF, frekuencat kryesore XTAL të mbështetura nga ESP32 janë si më poshtë:
· 26 MHz · 40 MHz
Shënim: Mund të kombinoni ndërtimin, instalimin e flash-it dhe monitorimin në një hap të vetëm duke ekzekutuar: idf.py -p PORT monitor i flash-it
Shihni gjithashtu: · IDF Monitor për shkurtesa të dobishme dhe më shumë detaje mbi përdorimin e IDF monitor. · idf.py për një referencë të plotë të komandave dhe opsioneve të idf.py.
Kjo është e gjitha që ju nevojitet për të filluar me ESP32! Tani jeni gati të provoni disa shembuj të tjerë.amples, ose shkoni direkt në zhvillimin e aplikacioneve tuaja.
E rëndësishme: Disa nga ish-ampSkedarët nuk e mbështesin ESP32 sepse pajisjet e kërkuara nuk përfshihen në ESP32, kështu që nuk mund të mbështeten. Nëse ndërtoni një ishample, ju lutem kontrolloni README file për tabelën e Synimeve të Mbështetura. Nëse kjo është e pranishme duke përfshirë objektivin ESP32, ose tabela nuk ekziston fare, p.sh.ampdo të funksionojë në ESP32.
Këshilla shtesë
Probleme me lejet /dev/ttyUSB0 Me disa shpërndarje Linux, mund të merrni mesazhin e gabimit "Dështoi hapja e portit /dev/ttyUSB0" kur instaloni ESP32. Kjo mund të zgjidhet duke shtuar përdoruesin aktual në grupin e thirrjes.
Pajtueshmëria me Python ESP-IDF mbështet Python 3.7 ose më të ri. Rekomandohet të përditësoni sistemin tuaj operativ në një version të fundit që plotëson këtë kërkesë. Opsionet e tjera përfshijnë instalimin e Python nga burimet ose përdorimin e një sistemi menaxhimi versionesh Python siç është pyenv.
Filloni me Paketën e Mbështetjes së Pllakës Për të shpejtuar prototipimin në disa pllaka zhvillimi, mund të përdorni Paketat e Mbështetjes së Pllakës (BSP), të cilat e bëjnë inicializimin e një pllake të caktuar aq të lehtë sa disa thirrje funksionesh. Një BSP zakonisht mbështet të gjithë komponentët hardware të ofruar në pllakën e zhvillimit. Përveç funksioneve të përcaktimit të pinout dhe inicializimit, një BSP vjen me drajverë për komponentët e jashtëm si sensorë, ekrane, kodekë audio etj. BSP-të shpërndahen nëpërmjet IDF Component Manager, kështu që ato mund të gjenden në Regjistrin e Komponentëve IDF. Ja një shembullampnjë udhëzues se si të shtoni ESP-WROVER-KIT BSP në projektin tuaj: idf.py add-dependency esp_wrover_kit
Më shumë ishampMë pak informacion mbi përdorimin e BSP mund të gjendet në BSP ex.ampdosje les.
Këshillë: Përditësimi i ESP-IDF Rekomandohet të përditësoni ESP-IDF herë pas here, pasi versionet më të reja rregullojnë gabime dhe/ose ofrojnë veçori të reja. Ju lutemi vini re se çdo version kryesor dhe dytësor i ESP-IDF ka një periudhë mbështetjeje të lidhur, dhe kur një degë e publikimit i afrohet fundit të jetëgjatësisë (EOL), të gjithë përdoruesit inkurajohen të përditësojnë projektet e tyre në versione më të fundit të ESP-IDF. Për të mësuar më shumë rreth periudhave të mbështetjes, shihni Versionet ESP-IDF.
Sistemet Espressif
43 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 1. Filloni
Mënyra më e thjeshtë për të bërë përditësimin është të fshini dosjen ekzistuese esp-idf dhe ta klononi përsëri, sikur të kryeni instalimin fillestar të përshkruar në Hapi 2. Merrni ESP-IDF. Një zgjidhje tjetër është të përditësoni vetëm atë që ka ndryshuar. Procedura e përditësimit varet nga versioni i ESP-IDF që po përdorni. Pas përditësimit të ESP-IDF, ekzekutoni përsëri skriptin e instalimit, në rast se versioni i ri i ESP-IDF kërkon versione të ndryshme të mjeteve. Shihni udhëzimet në Hapi 3. Konfiguroni mjetet. Pasi të jenë instaluar mjetet e reja, përditësoni mjedisin duke përdorur skriptin e eksportit. Shihni udhëzimet në Hapi 4. Konfiguroni variablat e mjedisit.
Dokumente të Ngjashme · Vendosja e Lidhjes Seriale me ESP32 · Shtojca Eclipse · Zgjerimi VSCode · Monitori IDF
1.4 Ndërtoni Projektin Tuaj të Parë
Nëse e keni instaluar tashmë ESP-IDF dhe nuk përdorni IDE, mund të ndërtoni projektin tuaj të parë nga rreshti i komandës duke ndjekur komandën "Filloni një Projekt në Windows" ose "Filloni një Projekt në Linux dhe macOS".
1.5 Çinstaloni ESP-IDF
Nëse doni të hiqni ESP-IDF, ju lutemi ndiqni Uninstall ESP-IDF.
Sistemet Espressif
44 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 2
Referenca API
2.1 Konventat e API-t
Ky dokument përshkruan konventat dhe supozimet e përbashkëta për Ndërfaqet e Programimit të Aplikacioneve (API) ESP-IDF. ESP-IDF ofron disa lloje ndërfaqesh programimi:
· Funksionet, strukturat, numërimet, përkufizimet e tipeve dhe makrot e parapërpunuesit në C të deklaruara në kokën publike filetë komponentëve ESPIDF. Faqe të ndryshme në seksionin Referenca API të udhëzuesit të programimit përmbajnë përshkrime të këtyre funksioneve, strukturave dhe llojeve.
· Ndërtoni funksione të sistemit, variabla dhe opsione të paracaktuara. Këto janë të dokumentuara në udhëzuesin e ndërtimit të sistemit. · Opsionet e Kconfig mund të përdoren në kod dhe në sistemin e ndërtimit (CMakeLists.txt) files. · Mjetet pritëse dhe parametrat e tyre të linjës së komandës janë gjithashtu pjesë e ndërfaqes ESP-IDF. ESP-IDF përbëhet nga komponentë të shkruar posaçërisht për ESP-IDF, si dhe për bibliotekat e palëve të treta. Në disa raste, një mbështjellës specifik për ESP-IDF shtohet në bibliotekën e palës së tretë, duke ofruar një ndërfaqe që është ose më e thjeshtë ose më mirë e integruar me pjesën tjetër të pajisjeve ESP-IDF. Në raste të tjera, API-ja origjinale e bibliotekës së palës së tretë u paraqitet zhvilluesve të aplikacioneve. Seksionet e mëposhtme shpjegojnë disa nga aspektet e API-ve ESP-IDF dhe përdorimin e tyre.
2.1.1 Trajtimi i gabimeve
Shumica e API-ve ESP-IDF kthejnë kode gabimi të përcaktuara me llojin esp_err_t. Shihni seksionin Trajtimi i Gabimeve për më shumë informacion rreth qasjeve të trajtimit të gabimeve. Referenca e Kodit të Gabimit përmban listën e kodeve të gabimit të kthyera nga komponentët ESP-IDF.
2.1.2 Strukturat e konfigurimit
E rëndësishme: Inicializimi i saktë i strukturave të konfigurimit është një pjesë e rëndësishme në bërjen e aplikacionit të pajtueshëm me versionet e ardhshme të ESP-IDF.
Shumica e funksioneve të inicializimit ose konfigurimit në ESP-IDF marrin si argument një tregues në një strukturë konfigurimi. Për shembullampe:
45
Kapitulli 2. Referenca e API-t
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = "timeri_im"
}; esp_timer_handle_t my_timer; esp_err_t err = esp_timer_create(&my_timer_args, &my_timer);
Funksionet e inicializimit nuk e ruajnë kurrë treguesin në strukturën e konfigurimit, kështu që është e sigurt të caktohet struktura në pirg.
Aplikacioni duhet të inicializojë të gjitha fushat e strukturës. Informacioni i mëposhtëm është i pasaktë:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* E pasaktë! Fushat .arg dhe .name nuk janë inicializuar */ esp_timer_create(&my_timer_args, &my_timer);
Shumica e ish-ESP-IDFampLe-të përdorin inicializues të caktuar C99 për inicializimin e strukturës, pasi ato ofrojnë një mënyrë koncize për të vendosur një nëngrup fushash dhe për të inicializuar me zero fushat e mbetura:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Saktë, fushat .arg dhe .name janë të inicializuara me zero */
};
Gjuha C++ nuk e mbështet sintaksën e inicializuesve të caktuar deri në C++20, megjithatë kompiluesi GCC e mbështet pjesërisht atë si një zgjerim. Kur përdorni API-të ESP-IDF në kodin C++, mund të merrni në konsideratë përdorimin e modelit të mëposhtëm:
esp_timer_create_args_t my_timer_args = {}; /* Të gjitha fushat janë të inicializuara me zero */ my_timer_args.callback = &my_timer_callback;
Inicializuesit e parazgjedhur
Për disa struktura konfigurimi, ESP-IDF ofron makro për vendosjen e vlerave të paracaktuara të fushave:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG zgjerohet në një inicializues të caktuar.
Tani të gjitha fushat janë vendosur në vlerat fillestare. Çdo fushë mund të modifikohet ende: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Rekomandohet të përdorni makrot e inicializimit parazgjedhur sa herë që ato ofrohen për një strukturë të caktuar konfigurimi.
2.1.3 API-të private
Titull i caktuar filenë ESP-IDF përmbajnë API-të e destinuara për t'u përdorur vetëm në kodin burimor të ESP-IDF, dhe jo nga aplikacionet. Një kokë e tillë files shpesh përmbajnë private ose esp_private në emrin ose shtegun e tyre. Disa komponentë, të tillë si hal, përmbajnë vetëm API private. API-të private mund të hiqen ose ndryshohen në një mënyrë të papajtueshme midis versioneve të vogla ose patch-eve.
2.1.4 Komponentët në ishample projekte
ESP-IDF ishampLe-të përmbajnë një sërë projektesh që demonstrojnë përdorimin e API-ve ESP-IDF. Për të zvogëluar dyfishimin e kodit në ishampkështu, disa ndihmës të zakonshëm janë përcaktuar brenda komponentëve që përdoren nga shumë ish-amples.
Sistemet Espressif
46 Dorëzo Komentet e Dokumentit
Publikimi v5.0.9
Kapitulli 2. Referenca e API-t
Kjo përfshin komponentët e vendosur
Dokumentet / Burimet
![]() |
Bordi i Zhvillimit të Espressif Systems ESP32 Dev Kitc [pdfUdhëzuesi i përdoruesit ESP32 Dev Kitc Dev ... |
