ESP32-C3 Aventurë me valë
ESP32-C3 Aventurë me valë
Një Udhëzues Gjithëpërfshirës për IoT
Espressif Systems 12 qershor 2023
Specifikimet
- Produkt: ESP32-C3 Wireless Adventure
- Prodhuesi: Espressif Systems
- Data: 12 qershor 2023
Udhëzimet e përdorimit të produktit
Përgatitja
Përpara se të përdorni ESP32-C3 Wireless Adventure, sigurohuni që jeni
të njohur me konceptet dhe arkitekturën e IoT. Kjo do të ndihmojë
ju e kuptoni se si pajisja përshtatet në ekosistemin më të madh të IoT
dhe aplikimet e tij të mundshme në shtëpitë inteligjente.
Prezantimi dhe praktika e projekteve IoT
Në këtë seksion, do të mësoni rreth projekteve tipike të IoT,
duke përfshirë modulet bazë për pajisjet e zakonshme IoT, modulet bazë
të aplikacioneve të klientëve dhe platformave të zakonshme të cloud IoT. Kjo do
ju ofrojnë një bazë për të kuptuar dhe krijuar tuajin
projektet e veta IoT.
Praktika: Projekti Smart Light
Në këtë projekt praktik, do të mësoni se si të krijoni një smart
dritë duke përdorur ESP32-C3 Wireless Adventure. Struktura e projektit,
funksionet, përgatitja e harduerit dhe procesi i zhvillimit do të jenë
shpjeguar në detaje.
Struktura e projektit
Projekti përbëhet nga disa komponentë, duke përfshirë
ESP32-C3 Aventurë me valë, LED, sensorë dhe një re
backend.
Funksionet e Projektit
Projekti i dritës inteligjente ju lejon të kontrolloni ndriçimin dhe
ngjyra e LED-ve nga distanca përmes një aplikacioni celular ose web
ndërfaqe.
Përgatitja e harduerit
Për t'u përgatitur për projektin, do t'ju duhet të mbledhni
komponentët e nevojshëm harduerikë, të tillë si ESP32-C3 Wireless
Pllakë aventure, LED, rezistorë dhe një furnizim me energji elektrike.
Procesi i zhvillimit
Procesi i zhvillimit përfshin vendosjen e zhvillimit
mjedisi, duke shkruar kodin për të kontrolluar LED-të, duke u lidhur me
backend cloud, dhe testimi i funksionalitetit të smart
dritë.
Hyrje në ESP RainMaker
ESP RainMaker është një kornizë e fuqishme për zhvillimin e IoT
pajisje. Në këtë seksion, do të mësoni se çfarë është ESP RainMaker dhe
si mund të zbatohet në projektet tuaja.
Çfarë është ESP RainMaker?
ESP RainMaker është një platformë e bazuar në cloud që ofron një grup të
mjete dhe shërbime për ndërtimin dhe menaxhimin e pajisjeve IoT.
Zbatimi i ESP RainMaker
Ky seksion shpjegon komponentët e ndryshëm të përfshirë në
zbatimin e ESP RainMaker, duke përfshirë shërbimin e pretendimit,
Agjenti RainMaker, fundi i cloud dhe Klienti RainMaker.
Praktika: Pikat kryesore për zhvillim me ESP RainMaker
Në këtë seksion praktik, do të mësoni rreth pikave kryesore për të
merrni parasysh kur zhvilloni me ESP RainMaker. Kjo përfshin pajisjen
pretendimi, sinkronizimi i të dhënave dhe menaxhimi i përdoruesit.
Karakteristikat e ESP RainMaker
ESP RainMaker ofron veçori të ndryshme për menaxhimin e përdoruesit, fundi
përdoruesit dhe administratorët. Këto karakteristika lejojnë pajisjen e lehtë
konfigurimin, telekomandën dhe monitorimin.
Ngritja e Mjedisit Zhvillimor
Ky seksion ofron një mbiview i ESP-IDF (Espressif IoT
Korniza e Zhvillimit), e cila është korniza zyrtare e zhvillimit
për pajisjet e bazuara në ESP32. Ai shpjegon versionet e ndryshme të
ESP-IDF dhe si të konfiguroni mjedisin e zhvillimit.
Zhvillimi i Hardware dhe Driver
Dizajni i harduerit të produkteve Smart Light bazuar në ESP32-C3
Ky seksion fokusohet në hartimin e harduerit të dritës inteligjente
produkte të bazuara në ESP32-C3 Wireless Adventure. Ajo mbulon
veçoritë dhe përbërja e produkteve të lehta të zgjuara, si dhe
dizajni i harduerit të sistemit bazë ESP32-C3.
Karakteristikat dhe përbërja e produkteve Smart Light
Ky nënseksion shpjegon veçoritë dhe komponentët që bëjnë
ngritni produkte me dritë inteligjente. Ai diskuton funksionalitete të ndryshme
dhe konsideratat e projektimit për krijimin e dritave inteligjente.
Dizajni i harduerit të Sistemit Bërthamë ESP32-C3
Dizajni i harduerit të sistemit bazë ESP32-C3 përfshin energjinë
furnizimi, sekuenca e ndezjes, rivendosja e sistemit, blici SPI, burimi i orës,
dhe konsideratat e RF dhe antenës. Ky nënseksion ofron
informacion të detajuar për këto aspekte.
FAQ
Pyetje: Çfarë është ESP RainMaker?
Përgjigje: ESP RainMaker është një platformë e bazuar në cloud që ofron mjete
dhe shërbime për ndërtimin dhe menaxhimin e pajisjeve IoT. Ajo thjeshton
procesi i zhvillimit dhe lejon konfigurimin e lehtë të pajisjes, në distancë
kontrollin dhe monitorimin.
Pyetje: Si mund të konfiguroj mjedisin e zhvillimit
ESP32-C3?
Përgjigje: Për të konfiguruar mjedisin e zhvillimit për ESP32-C3, ju duhet
për të instaluar ESP-IDF (Espressif IoT Development Framework) dhe
konfiguroni atë sipas udhëzimeve të dhëna. ESP-IDF është
kornizën zyrtare të zhvillimit për pajisjet e bazuara në ESP32.
Pyetje: Cilat janë veçoritë e ESP RainMaker?
Përgjigje: ESP RainMaker ofron veçori të ndryshme, duke përfshirë përdoruesin
menaxhimin, veçoritë e përdoruesit fundor dhe veçoritë e administratorit. Menaxhimi i përdoruesit
lejon pretendimin e lehtë të pajisjes dhe sinkronizimin e të dhënave. Përdoruesi përfundimtar
veçoritë mundësojnë kontrollin në distancë të pajisjeve nëpërmjet një aplikacioni celular ose
web ndërfaqe. Veçoritë e administratorit ofrojnë mjete për monitorimin e pajisjes
dhe menaxhimi.
ESP32-C3 Aventurë me valë
Një Udhëzues Gjithëpërfshirës për IoT
Espressif Systems 12 qershor 2023
Përmbajtja
I Përgatitja
1
1 Hyrje në IoT
3
1.1 Arkitektura e IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Aplikimi IoT në shtëpitë inteligjente. . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Prezantimi dhe praktika e projekteve IoT
9
2.1 Hyrje në projektet tipike IoT. . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Modulet bazë për pajisjet e zakonshme IoT. . . . . . . . . . . . . . . . . 9
2.1.2 Modulet Bazë të Aplikimeve të Klientit. . . . . . . . . . . . . . . . . . . 10
2.1.3 Hyrje në platformat e zakonshme të resë kompjuterike të IoT. . . . . . . . . . . . . . 11
2.2 Praktika: Projekti Smart Light . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Struktura e projektit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Funksionet e projektit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Përgatitja e harduerit. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Procesi i zhvillimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Hyrje në ESP RainMaker
19
3.1 Çfarë është ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Zbatimi i ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Shërbimi i Kërkesës. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 RainMaker Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Mbështetja e resë kompjuterike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Klienti RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Praktika: Pikat kryesore për zhvillim me ESP RainMaker. . . . . . . . . . . . 25
3.4 Karakteristikat e ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Menaxhimi i përdoruesit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Veçoritë e përdoruesit fundor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Veçoritë e administratorit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Krijimi i Mjedisit Zhvillimor
31
4.1 ESP-IDF Mbiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Versionet ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 Rrjedha e punës Git ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Zgjedhja e një versioni të përshtatshëm. . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Mbiview i Drejtorisë SDK të ESP-IDF . . . . . . . . . . . . . . . . . . . . 34 4.2 Vendosja e Mjedisit Zhvillimor ESP-IDF . . . . . . . . . . . . . . . . . 38 4.2.1 Vendosja e Mjedisit të Zhvillimit ESP-IDF në Linux. . . . . . . . 38 4.2.2 Konfigurimi i Mjedisit të Zhvillimit ESP-IDF në Windows. . . . . . 40 4.2.3 Konfigurimi i Mjedisit të Zhvillimit ESP-IDF në Mac. . . . . . . . . 45 4.2.4 Instalimi i kodit VS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Hyrje në mjediset e zhvillimit të palëve të treta. . . . . . . . 46 4.3 Sistemi i Kompilimit ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Konceptet themelore të sistemit të kompilimit. . . . . . . . . . . . . . . . . . 47 4.3.2 Projekt File Struktura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Rregullat e paracaktuara të ndërtimit të sistemit të përpilimit. . . . . . . . . . . . . 50 4.3.4 Hyrje në skriptin e përpilimit. . . . . . . . . . . . . . . . . . 51 4.3.5 Hyrje në Komandat e Përbashkëta. . . . . . . . . . . . . . . . . . . 52 4.4 Praktika: Përpilimi i Shample Programi “Blink” . . . . . . . . . . . . . . . . . . 53 4.4.1 P.shample Analiza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Përpilimi i programit Blink. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Ndezja e programit Blink. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Analiza e regjistrit të portave serike të programit Blink. . . . . . . . . . . . . . 60 4.5 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Zhvillimi i Hardware dhe Driver
65
5 Dizajni i harduerit të produkteve Smart Light bazuar në ESP32-C3
67
5.1 Karakteristikat dhe Përbërja e Produkteve Smart Light. . . . . . . . . . . . . . . 67
5.2 Dizajni i harduerit të sistemit bazë ESP32-C3. . . . . . . . . . . . . . . . . . . 70
5.2.1 Furnizimi me energji elektrike. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Sekuenca e ndezjes dhe rivendosja e sistemit . . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Burimi i orës . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF dhe antena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Kunjat e rripave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 Kontrolluesi GPIO dhe PWM. . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Praktika: Ndërtimi i një sistemi të zgjuar të dritës me ESP32-C3. . . . . . . . . . . . . 80
5.3.1 Përzgjedhja e moduleve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 Konfigurimi i GPIO-ve të sinjaleve PWM. . . . . . . . . . . . . . . . . . . . 82
5.3.3 Shkarkimi i firmuerit dhe ndërfaqja e korrigjimit. . . . . . . . . . . . 82
5.3.4 Udhëzime për Projektimin RF . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Udhëzimet për projektimin e furnizimit me energji elektrike. . . . . . . . . . . . . . . . . . . 86 5.4 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Zhvillimi i Drejtuesit
87
6.1 Procesi i zhvillimit të drejtuesit. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 Aplikacionet periferike . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Bazat e drejtuesit LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Hapësirat me ngjyra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 Drejtues LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 Zbehja e LED-ve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 Hyrje në PWM. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 Zhvillimi i drejtuesit të errësimit të LED-ve. . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Magazinimi jo i paqëndrueshëm (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 Kontrolluesi LED PWM (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 Programimi PWM LED. . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Praktika: Shtimi i drejtuesve në projektin Smart Light. . . . . . . . . . . . . . . . . 103
6.5.1 Drejtuesi i butonit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 Drejtues i zbehjes LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III Komunikimi dhe kontrolli pa tela
109
7 Konfigurimi dhe lidhja Wi-Fi
111
7.1 Bazat e Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Hyrje në Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 Evoluimi i IEEE 802.11. . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Konceptet Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Lidhja Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Bazat e Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Hyrje në Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Konceptet Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Lidhja Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Konfigurimi i rrjetit Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Udhëzuesi i konfigurimit të rrjetit Wi-Fi . . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Metoda të tjera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Programimi Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Komponentët Wi-Fi në ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Ushtrimi: Lidhja Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Ushtrimi: Smart Wi-Fi Connection . . . . . . . . . . . . . . . . . . . . . 145
7.5 Praktika: Konfigurimi i Wi-Fi në Projektin Smart Light. . . . . . . . . . . . . . . 156 7.5.1 Lidhja Wi-Fi në projektin Smart Light. . . . . . . . . . . . . . . . . 156 7.5.2 Konfigurimi i zgjuar Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Kontrolli Lokal
159
8.1 Hyrje në Kontrollin Lokal. . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Zbatimi i Kontrollit Lokal. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 Advantages e Kontrollit Lokal. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Zbulimi i pajisjeve të kontrolluara përmes telefonave inteligjentë. . . . . . . . . . 161
8.1.4 Komunikimi i të dhënave ndërmjet telefonave inteligjentë dhe pajisjeve. . . . . . . . 162
8.2 Metodat e zakonshme të zbulimit lokal. . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Transmetimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Krahasimi midis Transmetimit dhe Multicast. . . . . . . . . . . . . . 176
8.2.4 Protokolli i Aplikimit Multicast mDNS për Zbulimin Lokal. . . . . . . . 176
8.3 Protokollet e Përbashkëta të Komunikimit për të Dhënat Lokale. . . . . . . . . . . . . . . 179
8.3.1 Protokolli i Kontrollit të Transmisionit (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 Protokolli i Transferimit të HyperText (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Përdoruesi Datagram Protocol (UDP) . . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Protokolli i Aplikimit të kufizuar (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Protokolli Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Përmbledhje e Protokolleve të Komunikimit të të Dhënave. . . . . . . . . . . . . . . 203
8.4 Garancia e sigurisë së të dhënave. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Hyrje në Sigurinë e Shtresave të Transportit (TLS). . . . . . . . . . . . . 207
8.4.2 Hyrje në Datagram Transport Layer Security (DTLS) . . . . . . . 213
8.5 Praktika: Kontrolli Lokal në Projektin Smart Light. . . . . . . . . . . . . . . . . . 217
8.5.1 Krijimi i një serveri të kontrollit lokal të bazuar në Wi-Fi. . . . . . . . . . . . . . . 217
8.5.2 Verifikimi i funksionalitetit të kontrollit lokal duke përdorur skriptet. . . . . . . . . . . 221
8.5.3 Krijimi i një serveri të kontrollit lokal të bazuar në Bluetooth. . . . . . . . . . . . 222
8.6 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Kontrolli në renë kompjuterike
225
9.1 Hyrje në telekomandë. . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Protokollet e komunikimit të të dhënave në renë kompjuterike . . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT Hyrje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Parimet MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 Formati i mesazhit MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Krahasimi i Protokollit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Vendosja e ndërmjetësit MQTT në Linux dhe Windows. . . . . . . . . . . . 233 9.2.6 Vendosja e klientit MQTT bazuar në ESP-IDF. . . . . . . . . . . . . . . . 235 9.3 Sigurimi i sigurisë së të dhënave MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Kuptimi dhe funksioni i certifikatave . . . . . . . . . . . . . . . . . . . 237 9.3.2 Gjenerimi i certifikatave në nivel lokal. . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Konfigurimi i ndërmjetësit MQTT. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Konfigurimi i klientit MQTT . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Praktikoni: Telekomandimi përmes ESP RainMaker. . . . . . . . . . . . . . . . 243 9.4.1 Bazat ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Protokolli i Komunikimit të Nyjeve dhe Cloud Backend. . . . . . . . . . . 244 9.4.3 Komunikimi ndërmjet klientit dhe Cloud Backend. . . . . . . . . . . 249 9.4.4 Rolet e përdoruesve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Shërbimet Bazë . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Dritë inteligjente P.shample . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 Aplikacioni RainMaker dhe integrimet e palëve të treta. . . . . . . . . . . . . . . 262 9.5 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Zhvillimi i aplikacionit për smartphone
269
10.1 Hyrje në zhvillimin e aplikacioneve për telefona inteligjentë. . . . . . . . . . . . . . . . . . 269
10.1.1 Mbiview i zhvillimit të aplikacioneve për smartphone. . . . . . . . . . . . . . . 270
10.1.2 Struktura e Projektit Android. . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 Struktura e Projektit iOS. . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Cikli i jetës së një aktiviteti Android. . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 Cikli i jetës së iOS ViewKontrollues . . . . . . . . . . . . . . . . . . . . . . 273
10.2 Krijimi i një projekti të ri aplikacioni për smartphone. . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Përgatitja për zhvillimin e Android. . . . . . . . . . . . . . . . . . . 275
10.2.2 Krijimi i një projekti të ri Android. . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 Shtimi i varësive për MyRainmaker. . . . . . . . . . . . . . . . . 276
10.2.4 Kërkesa për leje në Android. . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 Përgatitja për zhvillimin e iOS. . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Krijimi i një projekti të ri iOS. . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 Shtimi i varësive për MyRainmaker. . . . . . . . . . . . . . . . . 279
10.2.8 Kërkesë për leje në iOS. . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Analiza e Kërkesave Funksionale të Aplikacionit. . . . . . . . . . . . . . . . . . 281
10.3.1 Analiza e Kërkesave Funksionale të Projektit. . . . . . . . . . . . 282
10.3.2 Analiza e Kërkesave të Menaxhimit të Përdoruesit. . . . . . . . . . . . . . . 282 10.3.3 Analiza e kërkesave për sigurimin dhe lidhjen e pajisjes. . . . . . . 283 10.3.4 Analiza e kërkesave për telekomandë. . . . . . . . . . . . . . . . 283 10.3.5 Analiza e Kërkesave të Planifikimit . . . . . . . . . . . . . . . . . . . 284 10.3.6 Analiza e Kërkesave të Qendrës së Përdoruesit. . . . . . . . . . . . . . . . . . 285 10.4 Zhvillimi i Menaxhimit të Përdoruesve . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Hyrje në API-të e RainMaker. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Inicimi i komunikimit nëpërmjet telefonit inteligjent. . . . . . . . . . . . . . . . 286 10.4.3 Regjistrimi i llogarisë . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Hyrja në llogari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Zhvillimi i Sigurimit të Pajisjeve. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Pajisjet e skanimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Lidhja e pajisjeve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Gjenerimi i çelësave sekretë. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Marrja e ID-së së Nyjes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Pajisjet e furnizimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Zhvillimi i kontrollit të pajisjes . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Lidhja e pajisjeve me llogaritë në renë kompjuterike. . . . . . . . . . . . . . . . . . . . 303 10.6.2 Marrja e një liste të pajisjeve . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Marrja e statusit të pajisjes . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Ndryshimi i statusit të pajisjes . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Zhvillimi i Qendrës së Planifikimit dhe Përdoruesit. . . . . . . . . . . . . . . . . . . 313 10.7.1 Zbatimi i funksionit të planifikimit . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Implementimi i Qendrës së Përdoruesit . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Më shumë API të resë kompjuterike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Përmirësimi i firmuerit dhe menaxhimi i versionit
321
11.1 Përmirësimi i firmuerit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Mbiview i Tabelave Ndarëse. . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Procesi i nisjes së firmuerit. . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Mbiview të Mekanizmit OTA . . . . . . . . . . . . . . . . . . . . . 326
11.2 Menaxhimi i versionit të firmuerit. . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Shënimi i firmuerit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Rikthim dhe kundër kthimit . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Praktika: Në ajër (OTA) P.shample . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Përmirësoni firmuerin përmes një hosti lokal. . . . . . . . . . . . . . . . . 332
11.3.2 Përmirësoni firmuerin përmes ESP RainMaker. . . . . . . . . . . . . . . 335
11.4 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Optimizimi dhe prodhimi masiv
343
12 Menaxhimi i energjisë dhe optimizimi me energji të ulët
345
12.1 ESP32-C3 Menaxhimi i energjisë . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Shkallëzimi dinamik i frekuencës . . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Konfigurimi i Menaxhimit të Energjisë. . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 Modaliteti me fuqi të ulët . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Modemi i gjumit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Modaliteti i gjumit të lehtë. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Modaliteti i gjumit të thellë. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Konsumi aktual në mënyra të ndryshme të energjisë. . . . . . . . . . . . . 358
12.3 Menaxhimi i energjisë dhe korrigjimi me fuqi të ulët. . . . . . . . . . . . . . . . . 359
12.3.1 Korrigjimi i regjistrave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 Korrigjimi i GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Praktika: Menaxhimi i energjisë në projektin Smart Light. . . . . . . . . . . . . . . 363
12.4.1 Konfigurimi i veçorisë së menaxhimit të energjisë . . . . . . . . . . . . . . . . . 364
12.4.2 Përdorimi i kyçeve të menaxhimit të energjisë. . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Verifikimi i konsumit të energjisë. . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Karakteristikat e përmirësuara të sigurisë së pajisjes
369
13.1 Mbiview i Sigurisë së të Dhënave të Pajisjeve IoT. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Pse të sigurojmë të dhënat e pajisjes IoT? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 Kërkesat themelore për sigurinë e të dhënave të pajisjes IoT. . . . . . . . . . . . 371
13.2 Mbrojtja e integritetit të të dhënave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Hyrje në metodën e verifikimit të integritetit. . . . . . . . . . . . . . 372
13.2.2 Verifikimi i integritetit të të dhënave të firmuerit. . . . . . . . . . . . . . . . . . 373
13.2.3 Sheshample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Mbrojtja e konfidencialitetit të të dhënave. . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Hyrje në Enkriptimin e të Dhënave. . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Hyrje në skemën e enkriptimit Flash. . . . . . . . . . . . . . . . . 376
13.3.3 Ruajtja e çelësit të enkriptimit në Flash . . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Mënyra e punës së enkriptimit me Flash. . . . . . . . . . . . . . . . . . . . 380
13.3.5 Procesi i enkriptimit me Flash . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 Hyrje në NVS Encryption . . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 Sheshamples of Flash Encryption dhe NVS Encryption. . . . . . . . . . . 384
13.4 Mbrojtja e legjitimitetit të të dhënave. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Hyrje në Nënshkrimin Dixhital. . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Mbiview e Secure Boot Skeme . . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Hyrje në Softuerin Secure Boot . . . . . . . . . . . . . . . . . . . 388 13.4.4 Hyrje në nisjen e sigurt të harduerit. . . . . . . . . . . . . . . . . . 390 13.4.5 P.shamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Praktika: Karakteristikat e sigurisë në prodhimin masiv. . . . . . . . . . . . . . . . . . 396 13.5.1 Kriptimi me Flash dhe nisja e sigurt. . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Aktivizimi i enkriptimit të Flash dhe nisjes së sigurt me mjetet e Flash-it të grupit. . 397 13.5.3 Aktivizimi i enkriptimit të Flash dhe nisjes së sigurt në projektin Smart Light. . . 398 13.6 Përmbledhje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Djegia dhe testimi i firmuerit për prodhim masiv
399
14.1 Djegia e firmuerit në prodhimin masiv. . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Përcaktimi i ndarjeve të të dhënave . . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Djegia e firmuerit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Testimi i prodhimit masiv. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Praktika: Të dhënat e prodhimit masiv në projektin Smart Light. . . . . . . . . . . . . 404
14.4 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 Vështrime të ESP: Platforma e monitorimit në distancë
405
15.1 Hyrje në ESP Insights. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 Fillimi me ESP Insights. . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 Fillimi me ESP Insights në projektin esp-inights. . . . . . 409
15.2.2 Vrapimi P.shample në projektin esp-inights. . . . . . . . . . . . . . . 411
15.2.3 Raportimi i Informacionit Koredump . . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Përshtatja e regjistrave të interesit. . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Raportimi i arsyes së rindezjes . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Raportimi i matjeve të personalizuara. . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Praktika: Përdorimi i ESP Insights në Projektin Smart Light. . . . . . . . . . . . . . . 416
15.4 Përmbledhje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Hyrje
ESP32-C3 është një mikrokontrollues SoC me një bërthamë Wi-Fi dhe Bluetooth 5 (LE), i bazuar në arkitekturën RISC-V me burim të hapur. Ai arrin balancën e duhur të fuqisë, aftësive I/O dhe sigurisë, duke ofruar kështu zgjidhjen optimale me kosto efektive për pajisjet e lidhura. Për të shfaqur aplikacione të ndryshme të familjes ESP32-C3, ky libër nga Espressif do t'ju çojë në një udhëtim interesant nëpër AIoT, duke filluar nga bazat e zhvillimit të projektit IoT dhe konfigurimit të mjedisit deri te ish praktik.amples. Katër kapitujt e parë flasin për IoT, ESP RainMaker dhe ESP-IDF. Kapitulli 5 dhe 6 i shkurtër mbi dizajnin e harduerit dhe zhvillimin e drejtuesve. Ndërsa përparoni, do të zbuloni se si ta konfiguroni projektin tuaj nëpërmjet rrjeteve Wi-Fi dhe aplikacioneve celulare. Më në fund, do të mësoni të optimizoni projektin tuaj dhe ta vendosni atë në prodhim masiv.
Nëse jeni një inxhinier në fusha të ngjashme, një arkitekt softuerësh, një mësues, një student ose kushdo që ka interes në IoT, ky libër është për ju.
Ju mund të shkarkoni kodin p.shampështë përdorur në këtë libër nga faqja e Espressif në GitHub. Për informacionet më të fundit mbi zhvillimin e IoT, ju lutemi ndiqni llogarinë tonë zyrtare.
Parathënie
Një botë informuese
Duke hipur në valën e internetit, Interneti i Gjërave (IoT) bëri debutimin e tij madhështor për t'u bërë një lloj i ri i infrastrukturës në ekonominë dixhitale. Për ta sjellë teknologjinë më afër publikut, Espressif Systems punon për vizionin që zhvilluesit nga të gjitha sferat e jetës mund të përdorin IoT për të zgjidhur disa nga problemet më urgjente të kohës sonë. Një botë e "Rrjetit inteligjent të të gjitha gjërave" është ajo që presim nga e ardhmja.
Dizajnimi i çipave tanë përbën një komponent kritik të atij vizioni. Ajo do të jetë një maratonë, që kërkon përparime të vazhdueshme kundër kufijve teknologjikë. Nga "Game Changer" ESP8266 te seria ESP32 që integron lidhjen Wi-Fi dhe Bluetoothr (LE), e ndjekur nga ESP32-S3 e pajisur me përshpejtimin e AI, Espressif nuk ndalet kurrë së kërkuari dhe zhvillimi i produkteve për zgjidhjet AIoT. Me softuerin tonë me burim të hapur, të tilla si Korniza e Zhvillimit të IoT ESP-IDF, Mesh Development Framework ESP-MDF dhe Platforma e Lidhjes së Pajisjeve ESP RainMaker, ne kemi krijuar një kornizë të pavarur për ndërtimin e aplikacioneve AIoT.
Që nga korriku 2022, dërgesat kumulative të çipave të IoT të Espressif kanë tejkaluar 800 milionë, duke udhëhequr në tregun e MCU Wi-Fi dhe duke fuqizuar një numër të madh pajisjesh të lidhura në mbarë botën. Kërkimi për përsosmëri e bën çdo produkt Espressif një sukses të madh për nivelin e tij të lartë të integrimit dhe efikasitetin e kostos. Lëshimi i ESP32-C3 shënon një moment historik të rëndësishëm të teknologjisë së vetë-zhvilluar të Espressif. Është një MCU me një bërthamë, 32-bit, me bazë RISC-V me 400 KB SRAM, i cili mund të funksionojë në 160 MHz. Ka integruar Wi-Fi 2.4 GHz dhe Bluetooth 5 (LE) me një mbështetje me rreze të gjatë. Ai arrin një ekuilibër të mirë të fuqisë, aftësive I/O dhe sigurisë, duke ofruar kështu zgjidhjen optimale me kosto efektive për pajisjet e lidhura. Bazuar në ESP32-C3 kaq të fuqishëm, ky libër synon të ndihmojë lexuesit të kuptojnë njohuritë e lidhura me IoT me ilustrim të detajuar dhe shembull praktik.amples.
Pse e shkruam këtë libër?
Espressif Systems është më shumë se një kompani gjysmëpërçuese. Është gjithashtu një kompani e platformës IoT, e cila gjithmonë përpiqet për përparime dhe risi në fushën e teknologjisë. Në të njëjtën kohë, Espressif ka burim të hapur dhe ka ndarë sistemin operativ dhe kornizën e softuerit të vetë-zhvilluar me komunitetin, duke formuar një ekosistem unik. Inxhinierët, prodhuesit dhe entuziastët e teknologjisë zhvillojnë në mënyrë aktive aplikacione të reja softuerike të bazuara në produktet e Espressif, komunikojnë lirshëm dhe ndajnë përvojën e tyre. Ju mund të shihni idetë magjepsëse të zhvilluesve në platforma të ndryshme gjatë gjithë kohës, si YouTube dhe GitHub. Popullariteti i produkteve të Espressif ka nxitur një numër në rritje autorësh të cilët kanë prodhuar mbi 100 libra të bazuar në chipset Espressif, në më shumë se dhjetë gjuhë, duke përfshirë anglisht, kinezisht, gjermanisht, frëngjisht dhe japonisht.
Është mbështetja dhe besimi i partnerëve të komunitetit që inkurajon inovacionin e vazhdueshëm të Espressif. “Ne përpiqemi t'i bëjmë çipat, sistemet operative, kornizat, zgjidhjet, Cloud-in, praktikat e biznesit, mjetet, dokumentacionin, shkrimet, idetë, etj., gjithnjë e më të rëndësishme për përgjigjet që u nevojiten njerëzve në problemet më urgjente të jetës bashkëkohore. Kjo është ambicia më e lartë dhe busull morale e Espressif.” tha Z. Teo Swee Ann, Themelues dhe CEO i Espressif.
Espressif vlerëson leximin dhe idetë. Ndërsa përmirësimi i vazhdueshëm i teknologjisë IoT shtron kërkesa më të larta për inxhinierët, si mund të ndihmojmë më shumë njerëz që të zotërojnë shpejt çipat e IoT, sistemet operative, kornizat e softuerit, skemat e aplikacioneve dhe produktet e shërbimit cloud? Siç thotë shprehja, është më mirë t'i mësosh një njeriu të peshkojë sesa t'i japësh peshk. Në një sesion idesh, na ra në mendje se mund të shkruanim një libër për të renditur sistematikisht njohuritë kryesore të zhvillimit të IoT. Ne e arritëm atë, mblodhëm shpejt një grup inxhinierësh të lartë dhe kombinuam përvojën e ekipit teknik në programimin e integruar, harduerin dhe zhvillimin e softuerit IoT, të gjitha duke kontribuar në botimin e këtij libri. Në procesin e shkrimit, ne u përpoqëm të jemi objektivë dhe të drejtë, të zhveshur nga fshikëza dhe të përdorim shprehje koncize për të treguar kompleksitetin dhe sharmin e Internetit të Gjërave. Ne përmbledhëm me kujdes pyetjet e zakonshme, iu referuam reagimeve dhe sugjerimeve të komunitetit, në mënyrë që t'u përgjigjemi qartë pyetjeve të hasura në procesin e zhvillimit dhe të ofrojmë udhëzime praktike të zhvillimit të IoT për teknikët dhe vendimmarrësit përkatës.
Struktura e librit
Ky libër merr një perspektivë të përqendruar te inxhinieri dhe shpjegon njohuritë e nevojshme për zhvillimin e projektit IoT hap pas hapi. Ai përbëhet nga katër pjesë, si më poshtë:
· Përgatitja (Kapitulli 1): Kjo pjesë prezanton arkitekturën e IoT, kornizën tipike të projektit IoT, platformën cloud ESP RainMakerr dhe mjedisin e zhvillimit ESP-IDF, në mënyrë që të vendoset një bazë solide për zhvillimin e projektit IoT.
· Zhvillimi i harduerit dhe drejtuesit (Kapitulli 5): Bazuar në chipset ESP6-C32, kjo pjesë shtjellon sistemin minimal të harduerit dhe zhvillimin e drejtuesit dhe zbaton kontrollin e zbehjes, klasifikimit të ngjyrave dhe komunikimit me valë.
· Komunikimi dhe kontrolli me valë (Kapitulli 7): Kjo pjesë shpjegon skemën inteligjente të konfigurimit të Wi-Fi bazuar në çipin ESP11-C32, protokollet e kontrollit lokal dhe cloud, dhe kontrollin lokal dhe në distancë të pajisjeve. Ai gjithashtu ofron skema për zhvillimin e aplikacioneve për smartphone, përmirësimin e firmuerit dhe menaxhimin e versioneve.
· Optimizimi dhe prodhimi masiv (Kapitulli 12-15): Kjo pjesë është menduar për aplikacione të avancuara IoT, duke u fokusuar në optimizimin e produkteve në menaxhimin e energjisë, optimizimin me fuqi të ulët dhe sigurinë e zgjeruar. Ai gjithashtu prezanton djegien dhe testimin e firmuerit në prodhimin masiv, dhe si të diagnostikoni statusin e funksionimit dhe regjistrat e firmuerit të pajisjes përmes platformës së monitorimit në distancë ESP Insights.
Rreth kodit burimor
Lexuesit mund të drejtojnë ishample programet në këtë libër, ose duke futur kodin me dorë ose duke përdorur kodin burimor që shoqëron librin. Ne theksojmë kombinimin e teorisë dhe praktikës, dhe kështu vendosim një seksion Praktik të bazuar në projektin Smart Light në pothuajse çdo kapitull. Të gjitha kodet janë me burim të hapur. Lexuesit janë të mirëpritur të shkarkojnë kodin burimor dhe ta diskutojnë atë në seksionet që lidhen me këtë libër në GitHub dhe forumin tonë zyrtar esp32.com. Kodi me burim të hapur i këtij libri i nënshtrohet kushteve të Licencës Apache 2.0.
Shënim i autorit
Ky libër është prodhuar zyrtarisht nga Espressif Systems dhe është shkruar nga inxhinierë të lartë të kompanisë. Ai është i përshtatshëm për menaxherët dhe personelin e R&D në industritë e lidhura me IoT, mësuesit dhe studentët e diplomave përkatëse, dhe entuziastët në fushën e Internetit të Gjërave. Shpresojmë që ky libër të mund të shërbejë si një manual pune, referencë dhe një libër pranë shtratit, për të qenë si një mësues dhe mik i mirë.
Gjatë përpilimit të këtij libri, ne iu referuam disa rezultateve relevante kërkimore të ekspertëve, studiuesve dhe teknikëve brenda dhe jashtë vendit dhe bëmë të pamundurën për t'i cituar ato sipas normave akademike. Megjithatë, është e pashmangshme që të ketë disa lëshime, prandaj këtu dëshirojmë të shprehim respektin dhe mirënjohjen tonë të thellë për të gjithë autorët përkatës. Përveç kësaj, ne kemi cituar informacione nga interneti, kështu që dëshirojmë të falënderojmë autorët dhe botuesit origjinalë dhe të kërkojmë ndjesë që nuk mund të tregojmë burimin e çdo informacioni.
Për të prodhuar një libër me cilësi të lartë, ne kemi organizuar raunde diskutimesh të brendshme dhe kemi mësuar nga sugjerimet dhe komentet e lexuesve provues dhe redaktorëve të botuesve. Këtu, dëshirojmë t'ju falënderojmë përsëri për ndihmën tuaj që të gjithë kontribuan në këtë punë të suksesshme.
E fundit, por më e rëndësishmja, faleminderit të gjithëve në Espressif që kanë punuar kaq shumë për lindjen dhe popullarizimin e produkteve tona.
Zhvillimi i projekteve IoT përfshin një gamë të gjerë njohurish. I kufizuar në gjatësinë e librit, si dhe në nivelin dhe përvojën e autorit, lëshimet janë të pashmangshme. Prandaj, ne kërkojmë që ekspertët dhe lexuesit të kritikojnë dhe korrigjojnë gabimet tona. Nëse keni ndonjë sugjerim për këtë libër, ju lutemi na kontaktoni në book@espressif.com. Ne mezi presim komentet tuaja.
Si ta përdorni këtë libër?
Kodi i projekteve në këtë libër ka qenë me burim të hapur. Mund ta shkarkoni nga depoja jonë e GitHub dhe të ndani mendimet dhe pyetjet tuaja në forumin tonë zyrtar. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Gjatë gjithë librit, do të ketë pjesë të theksuara siç tregohet më poshtë.
Kodi burimor Në këtë libër, ne theksojmë kombinimin e teorisë dhe praktikës, dhe kështu vendosim një seksion Praktikë rreth projektit Smart Light në pothuajse çdo kapitull. Hapat përkatës dhe faqja e burimit do të shënohen midis dy rreshtave që fillojnë me tag Kodi burimor.
SHËNIM/KËSHILLA Këtu mund të gjeni disa informacione kritike dhe kujtime për korrigjimin e suksesshëm të programit tuaj. Ato do të shënohen midis dy vijave të trasha që fillojnë me tag SHËNIM ose KËSHILLA.
Shumica e komandave në këtë libër ekzekutohen nën Linux, të nxitura nga karakteri "$". Nëse komanda kërkon privilegje të superpërdoruesit për t'u ekzekutuar, prompti do të zëvendësohet me "#". Prompti i komandës në sistemet Mac është "%", siç përdoret në seksionin 4.2.3 Instalimi i ESP-IDF në Mac.
Teksti i trupit në këtë libër do të shtypet në Kartë, ndërsa kodi p.shamples, komponentët, funksionet, variablat, kodi file emrat, drejtoritë e kodeve dhe vargjet do të jenë në Courier New.
Komandat ose tekstet që duhet të futen nga përdoruesi dhe komandat që mund të futen duke shtypur tastin "Enter" do të printohen me shkronja të zeza Courier New. Regjistrat dhe blloqet e kodeve do të paraqiten në kutitë blu të lehta.
Exampe:
Së dyti, përdorni esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py për të gjeneruar binarin e ndarjes NVS file në hostin e zhvillimit me komandën e mëposhtme:
$ python $IDF PATH/komponentët/nvs flash/nvs gjenerator i ndarjes/nvs ndarje gen.py –masë hyrëse prod.csv –masë dalëse prod.bin –madhësia NVS MADHËSIA E PARTICIONIT
Kapitulli 1
Hyrje
te
IoT
Në fund të shekullit të 20-të, me rritjen e rrjeteve kompjuterike dhe teknologjive të komunikimit, Interneti u integrua me shpejtësi në jetën e njerëzve. Teksa teknologjia e internetit vazhdon të rritet, lindi ideja e Internetit të Gjërave (IoT). Fjalë për fjalë, IoT do të thotë një internet ku gjërat janë të lidhura. Ndërsa interneti origjinal thyen kufijtë e hapësirës dhe kohës dhe ngushton distancën midis "personit dhe personit", IoT i bën "gjërat" një pjesëmarrës të rëndësishëm, duke i afruar "njerëzit" dhe "gjërat" së bashku. Në të ardhmen e parashikueshme, IoT do të bëhet forca lëvizëse e industrisë së informacionit.
Pra, çfarë është Interneti i Gjërave?
Është e vështirë të përcaktosh saktë Internetin e Gjërave, pasi kuptimi dhe shtrirja e tij po evoluojnë vazhdimisht. Në vitin 1995, Bill Gates solli për herë të parë idenë e IoT në librin e tij Rruga përpara. E thënë thjesht, IoT u mundëson objekteve të shkëmbejnë informacione me njëri-tjetrin përmes internetit. Qëllimi i tij përfundimtar është të krijojë një "Internet të gjithçkaje". Ky është një interpretim i hershëm i IoT, si dhe një fantazi e teknologjisë së ardhshme. Tridhjetë vjet më vonë, me zhvillimin e shpejtë të ekonomisë dhe teknologjisë, fantazia po bëhet realitet. Nga pajisjet inteligjente, shtëpitë inteligjente, qytetet inteligjente, Interneti i automjeteve dhe pajisjet e veshura, te "metaverse" e mbështetur nga teknologjitë IoT, koncepte të reja po shfaqen vazhdimisht. Në këtë kapitull, ne do të fillojmë me një shpjegim të arkitekturës së Internetit të Gjërave dhe më pas do të prezantojmë aplikacionin më të zakonshëm të IoT, shtëpinë inteligjente, në mënyrë që t'ju ndihmojmë të kuptoni qartë IoT.
1.1 Arkitektura e IoT
Interneti i Gjërave përfshin teknologji të shumta të cilat kanë nevoja dhe forma të ndryshme aplikimi në industri të ndryshme. Për të renditur strukturën, teknologjitë kryesore dhe karakteristikat e aplikimit të IoT, është e nevojshme të krijohet një arkitekturë e unifikuar dhe një sistem teknik standard. Në këtë libër, arkitektura e IoT thjesht ndahet në katër shtresa: shtresa e perceptimit dhe kontrollit, shtresa e rrjetit, shtresa e platformës dhe shtresa e aplikimit.
Shtresa e Perceptimit dhe Kontrollit Si elementi më themelor i arkitekturës IoT, shtresa e perceptimit dhe kontrollit është thelbi për të realizuar ndjeshmërinë gjithëpërfshirëse të IoT. Funksioni i tij kryesor është mbledhja, identifikimi dhe kontrolli i informacionit. Ai përbëhet nga një sërë pajisjesh me aftësi perceptimi,
3
identifikimin, kontrollin dhe ekzekutimin dhe është përgjegjës për marrjen dhe analizimin e të dhënave të tilla si vetitë e materialit, tendencat e sjelljes dhe statusi i pajisjes. Në këtë mënyrë, IoT mund të njohë botën reale fizike. Përveç kësaj, shtresa është gjithashtu në gjendje të kontrollojë statusin e pajisjes.
Pajisjet më të zakonshme të kësaj shtrese janë sensorë të ndryshëm, të cilët luajnë një rol të rëndësishëm në mbledhjen dhe identifikimin e informacionit. Sensorët janë si organet shqisore të njeriut, të tilla si sensorë fotosensitive të barabarta me vizionin, sensorët akustikë me dëgjimin, sensorët e gazit ndaj nuhatjes dhe sensorët e ndjeshëm ndaj presionit dhe temperaturës ndaj prekjes. Me të gjitha këto "organet shqisore", objektet bëhen "të gjalla" dhe të afta për perceptimin, njohjen dhe manipulimin inteligjent të botës fizike.
Shtresa e rrjetit Funksioni kryesor i shtresës së rrjetit është të transmetojë informacion, duke përfshirë të dhënat e marra nga shtresa e perceptimit dhe kontrollit në objektivin e specifikuar, si dhe komandat e lëshuara nga shtresa e aplikacionit përsëri në shtresën e perceptimit dhe kontrollit. Ai shërben si një urë e rëndësishme komunikimi që lidh shtresa të ndryshme të një sistemi IoT. Për të vendosur një model bazë të Internetit të Gjërave, ai përfshin dy hapa për të integruar objektet në një rrjet: akses në internet dhe transmetim përmes Internetit.
Qasja në internet në internet mundëson ndërlidhjen ndërmjet personit dhe personit, por nuk arrin të përfshijë gjërat në familjen e madhe. Përpara ardhjes së IoT, shumica e gjërave nuk ishin "të aftë për rrjet". Falë zhvillimit të vazhdueshëm të teknologjisë, IoT arrin të lidhë gjërat me internetin, duke realizuar kështu ndërlidhjen mes “njerëzve dhe gjërave”, dhe “gjërave dhe gjërave”. Ekzistojnë dy mënyra të zakonshme për të zbatuar lidhjen në internet: aksesi në rrjet me tel dhe aksesi në rrjet pa tel.
Metodat e aksesit të rrjetit me tel përfshijnë Ethernet, komunikimin serial (p.sh., RS-232, RS-485) dhe USB, ndërsa aksesi në rrjetin pa tel varet nga komunikimi me valë, i cili mund të ndahet më tej në komunikim pa tel me rreze të shkurtër dhe komunikim pa tel me rreze të gjatë.
Komunikimi pa tel me rreze të shkurtër përfshin ZigBee, Bluetoothr, Wi-Fi, Komunikimin në Fushë të Afërt (NFC) dhe Identifikimin e Frekuencave të Radios (RFID). Komunikimi me valë me rreze të gjatë përfshin Komunikimin e Përmirësuar të Llojit të Makinerisë (eMTC), LoRa, Narrow Band Internet of Things (NB-IoT), 2G, 3G, 4G, 5G, etj.
Transmetimi përmes Internetit Metoda të ndryshme të aksesit në internet çojnë në lidhjen përkatëse të transmetimit fizik të të dhënave. Gjëja tjetër është të vendosni se cilin protokoll komunikimi të përdorni për të transmetuar të dhënat. Krahasuar me terminalet e internetit, shumica e terminaleve IoT aktualisht kanë më pak
4 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
burimet e disponueshme, si performanca e përpunimit, kapaciteti i ruajtjes, shpejtësia e rrjetit, etj., ndaj është e nevojshme të zgjidhni një protokoll komunikimi që zë më pak burime në aplikacionet IoT. Ekzistojnë dy protokolle komunikimi që përdoren gjerësisht sot: Transporti i telemetrisë në radhë të mesazheve (MQTT) dhe Protokolli i Aplikimit të kufizuar (CoAP).
Shtresa e platformës Shtresa e platformës kryesisht i referohet platformave cloud të IoT. Kur të gjitha terminalet IoT janë të lidhura në rrjet, të dhënat e tyre duhet të grumbullohen në një platformë cloud IoT për t'u llogaritur dhe ruajtur. Shtresa e platformës mbështet kryesisht aplikacionet IoT në lehtësimin e aksesit dhe menaxhimit të pajisjeve masive. Ai lidh terminalet IoT me platformën cloud, mbledh të dhënat e terminalit dhe lëshon komanda për terminalet, në mënyrë që të zbatojë telekomandën. Si një shërbim i ndërmjetëm për caktimin e pajisjeve për aplikacionet e industrisë, shtresa e platformës luan një rol lidhës në të gjithë arkitekturën IoT, duke mbartur logjikën abstrakte të biznesit dhe modelin e standardizuar të të dhënave bazë, të cilat jo vetëm që mund të realizojnë akses të shpejtë të pajisjeve, por gjithashtu ofrojnë aftësi të fuqishme modulare për të përmbushur nevoja të ndryshme në skenarët e aplikimit të industrisë. Shtresa e platformës përfshin kryesisht module funksionale si aksesi në pajisje, menaxhimi i pajisjes, menaxhimi i sigurisë, komunikimi i mesazheve, monitorimi i funksionimit dhe mirëmbajtja dhe aplikacionet e të dhënave.
· Akses në pajisje, duke realizuar lidhjen dhe komunikimin ndërmjet terminaleve dhe platformave cloud IoT.
· Menaxhimi i pajisjes, duke përfshirë funksione të tilla si krijimi i pajisjes, mirëmbajtja e pajisjes, konvertimi i të dhënave, sinkronizimi i të dhënave dhe shpërndarja e pajisjes.
· Menaxhimi i sigurisë, duke siguruar sigurinë e transmetimit të të dhënave IoT nga këndvështrimi i vërtetimit të sigurisë dhe sigurisë së komunikimit.
· Komunikimi i mesazheve, duke përfshirë tre drejtime transmetimi, domethënë, terminali dërgon të dhëna në platformën cloud IoT, platforma cloud i IoT dërgon të dhëna në anën e serverit ose platforma të tjera cloud të IoT dhe ana e serverit kontrollon nga distanca pajisjet IoT.
· Monitorimi i O&M, që përfshin monitorimin dhe diagnostikimin, përmirësimin e firmuerit, korrigjimin në internet, shërbimet e regjistrave, etj.
· Aplikimet e të dhënave, që përfshijnë ruajtjen, analizën dhe aplikimin e të dhënave.
Shtresa e aplikacionit Shtresa e aplikacionit përdor të dhënat nga shtresa e platformës për të menaxhuar aplikacionin, duke i filtruar dhe përpunuar ato me mjete të tilla si bazat e të dhënave dhe softuerët e analizës. Të dhënat që rezultojnë mund të përdoren për aplikacione të botës reale të IoT si kujdesi shëndetësor inteligjent, bujqësia e zgjuar, shtëpitë inteligjente dhe qytetet inteligjente.
Sigurisht, arkitektura e IoT mund të ndahet në më shumë shtresa, por pavarësisht nga sa shtresa përbëhet, parimi themelor mbetet në thelb i njëjtë. Të mësuarit
Kapitulli 1. Hyrje në IoT 5
rreth arkitekturës së IoT ndihmon në thellimin e të kuptuarit tonë të teknologjive të IoT dhe ndërtimin e projekteve plotësisht funksionale të IoT.
1.2 Aplikimi IoT në shtëpitë inteligjente
IoT ka depërtuar në të gjitha sferat e jetës dhe aplikacioni më i afërt i IoT për ne është shtëpia inteligjente. Shumë pajisje tradicionale tani janë të pajisura me një ose më shumë pajisje IoT dhe shumë shtëpi të reja të ndërtuara janë projektuar me teknologji IoT që në fillim. Figura 1.1 tregon disa pajisje të zakonshme shtëpiake inteligjente.
Figura 1.1. Pajisjet e zakonshme të shtëpisë inteligjente Zhvillimi i shtëpisë inteligjente mund të ndahet thjesht në produkte inteligjentetage, ndërlidhja e skenës stage dhe inteligjente stage, siç tregohet në figurën 1.2.
Figura 1.2. Zhvillimi stage i shtëpisë inteligjente 6 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Shekulli i parëtage ka të bëjë me produkte inteligjente. Ndryshe nga shtëpitë tradicionale, në shtëpitë inteligjente, pajisjet IoT marrin sinjale me sensorë dhe lidhen në rrjet përmes teknologjive të komunikimit me valë si Wi-Fi, Bluetooth LE dhe ZigBee. Përdoruesit mund të kontrollojnë produktet inteligjente në mënyra të ndryshme, të tilla si aplikacionet e smartfonëve, asistentët e zërit, kontrolli i zgjuar i altoparlantëve, etj.tage fokusohet në ndërlidhjen e skenës. Në këtë stage, zhvilluesit nuk po mendojnë më të kontrollojnë një produkt të vetëm inteligjent, por të ndërlidhin dy ose më shumë produkte inteligjente, të automatizojnë në një masë të caktuar dhe në fund të formojnë një modalitet të personalizuar të skenës. Për shembullampKështu, kur përdoruesi shtyp ndonjë buton të modalitetit të skenës, dritat, perdet dhe kondicionerët do të përshtaten automatikisht me paravendosjet. Natyrisht, ekziston parakushti që logjika e lidhjes të vendoset lehtësisht, duke përfshirë kushtet e aktivizimit dhe veprimet e ekzekutimit. Imagjinoni që mënyra e ngrohjes së ajrit të kondicionuar aktivizohet kur temperatura e brendshme bie nën 10°C; që në orën 7 të mëngjesit të luhet muzika për të zgjuar përdoruesin, të hapen perdet inteligjente dhe të fillojë tenxherja e orizit ose ajo e bukës nga një prizë smart; Ndërsa përdoruesi ngrihet dhe përfundon larjen, mëngjesi tashmë është shërbyer, në mënyrë që të mos ketë vonesa për të shkuar në punë. Sa e përshtatshme është bërë jeta jonë! Shekulli i tretëtage shkon në inteligjencë stage. Ndërsa aksesohen më shumë pajisje shtëpiake inteligjente, aq do të bëhen edhe llojet e të dhënave të krijuara. Me ndihmën e kompjuterit cloud, të dhënave të mëdha dhe inteligjencës artificiale, është sikur një "tru më i zgjuar" të jetë mbjellë në shtëpitë inteligjente, të cilat nuk kërkojnë më komanda të shpeshta nga përdoruesi. Ata mbledhin të dhëna nga ndërveprimet e mëparshme dhe mësojnë modelet dhe preferencat e sjelljes së përdoruesit, në mënyrë që të automatizojnë aktivitetet, duke përfshirë dhënien e rekomandimeve për vendimmarrje. Aktualisht, shumica e shtëpive inteligjente janë në vendngjarje të ndërlidhjes stage. Ndërsa shkalla e depërtimit dhe inteligjenca e produkteve inteligjente rritet, barrierat midis protokolleve të komunikimit po hiqen. Në të ardhmen, shtëpitë inteligjente do të bëhen vërtet “të zgjuara”, njësoj si sistemi i AI Jarvis në Iron Man, i cili jo vetëm që mund të ndihmojë përdoruesin të kontrollojë pajisje të ndryshme, të trajtojë punët e përditshme, por gjithashtu të ketë super fuqi llogaritëse dhe aftësi të të menduarit. Në s inteligjentetage, qeniet njerëzore do të marrin shërbime më të mira si në sasi ashtu edhe në cilësi.
Kapitulli 1. Hyrje në IoT 7
8 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Kapitulli Hyrje dhe Praktika e 2 Projekteve IoT
Në kapitullin 1, ne prezantuam arkitekturën e IoT, dhe rolet dhe ndërlidhjet e shtresës së perceptimit dhe kontrollit, shtresës së rrjetit, shtresës së platformës dhe shtresës së aplikimit, si dhe zhvillimin e shtëpisë së zgjuar. Megjithatë, ashtu si kur mësojmë të pikturojmë, njohja e njohurive teorike nuk është aspak e mjaftueshme. Ne duhet të "pis duart tona" për të vënë në praktikë projektet e IoT në mënyrë që të zotërojmë vërtet teknologjinë. Përveç kësaj, kur një projekt kalon në prodhimin masiv stage, është e nevojshme të merren parasysh më shumë faktorë si lidhja e rrjetit, konfigurimi, ndërveprimi i platformës cloud IoT, menaxhimi dhe përditësimet e firmuerit, menaxhimi i prodhimit masiv dhe konfigurimi i sigurisë. Pra, çfarë duhet t'i kushtojmë vëmendje kur zhvillojmë një projekt të plotë IoT? Në kapitullin 1, përmendëm se shtëpia inteligjente është një nga skenarët më të zakonshëm të aplikimit të IoT dhe dritat inteligjente janë një nga pajisjet më themelore dhe praktike, e cila mund të përdoret në shtëpi, hotele, palestra, spitale etj. Prandaj, në në këtë libër, ne do të marrim ndërtimin e një projekti me dritë inteligjente si pikënisje, do të shpjegojmë përbërësit dhe veçoritë e tij dhe do të ofrojmë udhëzime për zhvillimin e projektit. Shpresojmë që të mund të nxirrni përfundime nga ky rast për të krijuar më shumë aplikacione IoT.
2.1 Hyrje në projektet tipike IoT
Për sa i përket zhvillimit, modulet themelore funksionale të projekteve të IoT mund të klasifikohen në zhvillimin e softuerit dhe harduerit të pajisjeve IoT, zhvillimin e aplikacioneve të klientit dhe zhvillimin e platformës cloud të IoT. Është e rëndësishme të sqarohen modulet themelore funksionale, të cilat do të përshkruhen më tej në këtë seksion.
2.1.1 Modulet bazë për pajisjet e zakonshme IoT
Zhvillimi i softuerit dhe harduerit të pajisjeve IoT përfshin modulet bazë të mëposhtme: Mbledhja e të dhënave
Si shtresa e poshtme e arkitekturës IoT, pajisjet IoT të shtresës së perceptimit dhe kontrollit lidhin sensorët dhe pajisjet përmes çipave dhe pajisjeve periferike të tyre për të arritur mbledhjen e të dhënave dhe kontrollin e funksionimit.
9
Lidhja e llogarisë dhe konfigurimi fillestar Për shumicën e pajisjeve IoT, lidhja e llogarisë dhe konfigurimi fillestar përfundojnë në një proces operacional, p.sh.ample, duke lidhur pajisjet me përdoruesit duke konfiguruar rrjetin Wi-Fi.
Ndërveprimi me platformat cloud të IoT Për të monitoruar dhe kontrolluar pajisjet IoT, është gjithashtu e nevojshme lidhja e tyre me platformat cloud të IoT, në mënyrë që të jepen komanda dhe të raportojnë statusin përmes ndërveprimit mes njëri-tjetrit.
Kontrolli i pajisjes Kur lidhen me platformat cloud të IoT, pajisjet mund të komunikojnë me cloud dhe të regjistrohen, lidhen ose kontrollohen. Përdoruesit mund të kërkojnë statusin e produktit dhe të kryejnë operacione të tjera në aplikacionin e smartfonëve përmes platformave cloud të IoT ose protokolleve lokale të komunikimit.
Pajisjet IoT për përmirësimin e firmuerit mund të arrijnë gjithashtu përmirësimin e firmuerit bazuar në nevojat e prodhuesve. Me marrjen e komandave të dërguara nga cloud, do të realizohet përmirësimi i firmuerit dhe menaxhimi i versionit. Me këtë veçori të përmirësimit të firmuerit, mund të përmirësoni vazhdimisht funksionet e pajisjeve IoT, të rregulloni defektet dhe të përmirësoni përvojën e përdoruesit.
2.1.2 Modulet Bazë të Aplikimeve të Klientit
Aplikacionet e klientëve (p.sh., aplikacionet e smartfonëve) përfshijnë kryesisht modulet bazë të mëposhtme:
Sistemi i llogarisë dhe autorizimi Ai mbështet autorizimin e llogarisë dhe pajisjes.
Kontrolli i pajisjes Aplikacionet e telefonave inteligjentë zakonisht janë të pajisur me funksione kontrolli. Përdoruesit mund të lidhen lehtësisht me pajisjet IoT dhe t'i menaxhojnë ato në çdo kohë, kudo nëpërmjet aplikacioneve të smartfonëve. Në një shtëpi inteligjente të botës reale, pajisjet kontrollohen kryesisht përmes aplikacioneve të smartfonëve, gjë që jo vetëm mundëson menaxhimin inteligjent të pajisjeve, por kursen edhe koston e fuqisë punëtore. Prandaj, kontrolli i pajisjes është i domosdoshëm për aplikacionet e klientit, si kontrolli i atributeve të funksionit të pajisjes, kontrolli i skenës, planifikimi, telekomanda, lidhja e pajisjes, etj. Përdoruesit inteligjentë të shtëpisë mund të personalizojnë gjithashtu skenat sipas nevojave personale, kontrollin e ndriçimit, pajisjet shtëpiake, hyrjen , etj., për ta bërë jetën në shtëpi më të rehatshme dhe komode. Ata mund të caktojnë kohën e ajrit të kondicionuar, ta fikin atë nga distanca, të ndezin automatikisht dritën e korridorit pasi dera të jetë e hapur ose të kalojnë në modalitetin "teatër" me një buton të vetëm.
Aplikacionet e klientit të njoftimeve përditësojnë statusin në kohë reale të pajisjeve IoT dhe dërgojnë sinjalizime kur pajisjet shkojnë jonormale.
10 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Shërbimi i klientit pas shitjes Aplikacionet e smartfonëve mund të ofrojnë shërbime pas shitjes për produktet, për të zgjidhur problemet që lidhen me dështimet e pajisjeve IoT dhe operacionet teknike në kohën e duhur.
Funksionet e veçuara Për të plotësuar nevojat e përdoruesve të ndryshëm, mund të shtohen funksione të tjera, të tilla si Shake, NFC, GPS, etj. GPS mund të ndihmojë në vendosjen e saktësisë së operacioneve të skenës sipas vendndodhjes dhe distancës, ndërsa funksioni Shake lejon përdoruesit të vendosin komandat që do të ekzekutohen për pajisje ose skenë specifike duke tundur.
2.1.3 Hyrje në Platformat e Përbashkëta të Reve IoT
Platforma cloud IoT është një platformë gjithëpërfshirëse e cila integron funksione të tilla si menaxhimi i pajisjes, komunikimi i sigurisë së të dhënave dhe menaxhimi i njoftimeve. Sipas grupit të tyre të synuar dhe aksesit, platformat cloud të IoT mund të ndahen në platforma cloud publike të IoT (në tekstin e mëtejmë "reja publike") dhe platforma private cloud të IoT (në tekstin e mëtejmë "reja private").
Reja publike zakonisht tregon platforma cloud të përbashkëta IoT për ndërmarrje ose individë, të operuara dhe të mirëmbajtura nga ofruesit e platformave dhe të ndara përmes internetit. Mund të jetë falas ose me kosto të ulët dhe ofron shërbime në të gjithë rrjetin publik të hapur, si Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, etj. Si një platformë mbështetëse, cloud publik mund të integrojë ofruesit e shërbimeve në rrjedhën e sipërme dhe përdoruesit përfundimtarë të rrjedhës së poshtme për të krijuar një zinxhir të ri vlerash dhe ekosistem.
Reja private është ndërtuar vetëm për përdorim nga ndërmarrjet, duke garantuar kështu kontrollin më të mirë mbi të dhënat, sigurinë dhe cilësinë e shërbimit. Shërbimet dhe infrastruktura e tij mirëmbahen veçmas nga ndërmarrjet, dhe hardueri dhe softueri mbështetës janë gjithashtu të dedikuar për përdorues të veçantë. Ndërmarrjet mund të personalizojnë shërbimet cloud për të përmbushur nevojat e biznesit të tyre. Aktualisht, disa prodhues të shtëpive inteligjente kanë tashmë platforma private cloud të IoT dhe kanë zhvilluar aplikacione për shtëpi inteligjente bazuar në to.
Reja publike dhe reja private kanë advan-in e tyretages, të cilat do të shpjegohen më vonë.
Për të arritur lidhjen e komunikimit, është e nevojshme të përfundoni të paktën zhvillimin e integruar në anën e pajisjes, së bashku me serverët e biznesit, platformat cloud të IoT dhe aplikacionet e smartfonëve. Përballë një projekti kaq të madh, cloud publik normalisht ofron komplete zhvillimi softuerësh për aplikacionet e pajisjes dhe smartphone për të përshpejtuar procesin. Reja publike dhe private ofrojnë shërbime duke përfshirë aksesin në pajisje, menaxhimin e pajisjes, hijen e pajisjes dhe funksionimin dhe mirëmbajtjen.
Qasja në pajisje Platformat cloud të IoT duhet të ofrojnë jo vetëm ndërfaqe për aksesin e pajisjes duke përdorur protokolle
Kapitulli 2. Prezantimi dhe praktika e projekteve IoT 11
të tilla si MQTT, CoAP, HTTPS dhe WebSocket, por edhe funksioni i vërtetimit të sigurisë së pajisjes për të bllokuar pajisjet e falsifikuara dhe të paligjshme, duke reduktuar në mënyrë efektive rrezikun për t'u komprometuar. Një vërtetim i tillë zakonisht mbështet mekanizma të ndryshëm, kështu që kur pajisjet prodhohen në masë, është e nevojshme të paracaktoni certifikatën e pajisjes sipas mekanizmit të zgjedhur të vërtetimit dhe ta digjni atë në pajisje.
Menaxhimi i pajisjes Funksioni i menaxhimit të pajisjes i ofruar nga platformat cloud IoT jo vetëm që mund t'i ndihmojë prodhuesit të monitorojnë statusin e aktivizimit dhe statusin në linjë të pajisjeve të tyre në kohë reale, por gjithashtu lejon opsione të tilla si shtimi/heqja e pajisjeve, marrja, shtimi / fshirja e grupeve, përmirësimi i firmuerit , dhe menaxhimin e versionit.
Platformat cloud të hijes së pajisjes IoT mund të krijojnë një version virtual të qëndrueshëm (hija e pajisjes) për secilën pajisje dhe statusi i hijes së pajisjes mund të sinkronizohet dhe merret nga aplikacioni i smartphone ose pajisje të tjera përmes protokolleve të transmetimit të internetit. Hija e pajisjes ruan statusin më të fundit të raportuar dhe statusin e pritshëm të secilës pajisje, dhe edhe nëse pajisja është jashtë linje, ajo përsëri mund ta marrë statusin duke telefonuar API-të. Hija e pajisjes ofron API-të gjithmonë të ndezura, gjë që e bën më të lehtë ndërtimin e aplikacioneve për smartphone që ndërveprojnë me pajisjet.
Funksionimi dhe mirëmbajtja Funksioni O&M përfshin tre aspekte: · Demonstrimin e informacionit statistikor për pajisjet dhe njoftimet IoT. · Menaxhimi i regjistrave lejon marrjen e informacionit rreth sjelljes së pajisjes, rrjedhës së mesazheve lart/poshtë dhe përmbajtjes së mesazhit. · Korrigjimi i pajisjes mbështet shpërndarjen e komandave, përditësimin e konfigurimit dhe kontrollin e ndërveprimit midis platformave të resë kompjuterike IoT dhe mesazheve të pajisjes.
2.2 Praktika: Projekti Smart Light
Pas hyrjes teorike në secilin kapitull, do të gjeni një seksion praktik në lidhje me projektin Smart Light për t'ju ndihmuar të merrni përvojë praktike. Projekti bazohet në çipin ESP32-C3 të Espressif dhe platformën ESP RainMaker IoT Cloud, dhe mbulon harduerin e modulit pa tel në produktet e dritës inteligjente, softuerin e integruar për pajisjet inteligjente bazuar në ESP32C3, aplikacionet e smartfonëve dhe ndërveprimin ESP RainMaker.
Kodi burimor Për të mësuar dhe zhvilluar përvojë më të mirë, projekti në këtë libër ka qenë me burim të hapur. Mund ta shkarkoni kodin burim nga depoja jonë e GitHub në https://github. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
2.2.1 Struktura e projektit
Projekti Smart Light përbëhet nga tre pjesë: i. Pajisjet inteligjente të dritës të bazuara në ESP32-C3, përgjegjëse për ndërveprimin me platformat cloud të IoT dhe kontrollin e ndërprerësit, ndriçimit dhe temperaturës së ngjyrave të LED lamp rruaza. ii. Aplikacionet e telefonave inteligjentë (përfshirë aplikacionet e tabletëve që funksionojnë në Android dhe iOS), përgjegjëse për konfigurimin e rrjetit të produkteve të dritës inteligjente, si dhe kërkimin dhe kontrollin e statusit të tyre.
iii. Një platformë cloud IoT e bazuar në ESP RainMaker. Për thjeshtim, ne e konsiderojmë platformën cloud të IoT dhe serverin e biznesit në tërësi në këtë libër. Detajet rreth ESP RainMaker do të jepen në Kapitullin 3.
Korrespondenca midis strukturës së projektit Smart Light dhe arkitekturës së IoT është paraqitur në Figurën 2.1.
Figura 2.1. Struktura e projektit të dritës inteligjente
2.2.2 Funksionet e projektit
Të ndara sipas strukturës, funksionet e secilës pjesë janë si më poshtë. Pajisjet inteligjente të dritës
· Konfigurimi dhe lidhja e rrjetit. · Kontrolli LED PWM, si çelësi, ndriçimi, temperatura e ngjyrave, etj. · Automatizimi ose kontrolli i skenës, p.sh., ndërprerësi i kohës. · Kriptimi dhe nisja e sigurt e Flash-it. · Përmirësimi i firmuerit dhe menaxhimi i versionit.
Kapitulli 2. Prezantimi dhe praktika e projekteve IoT 13
Aplikacionet e telefonave inteligjentë · Konfigurimi i rrjetit dhe lidhja e pajisjes. · Kontrolli inteligjent i produktit të dritës, si çelësi, ndriçimi, temperatura e ngjyrave, etj. · Automatizimi ose cilësimet e skenës, p.sh., ndërprerësi i kohës. · Kontroll lokal/telekomandë. · Regjistrimi i përdoruesit, login, etj.
Platforma cloud ESP RainMaker IoT · Mundësimi i aksesit të pajisjes IoT. · Sigurimi i API-ve të funksionimit të pajisjes të aksesueshme për aplikacionet e smartfonëve. · Përmirësimi i firmuerit dhe menaxhimi i versionit.
2.2.3 Përgatitja e harduerit
Nëse jeni të interesuar të zbatoni projektin në praktikë, do t'ju duhet gjithashtu hardueri i mëposhtëm: dritat inteligjente, telefonat inteligjentë, ruterat Wi-Fi dhe një kompjuter që plotëson kërkesat e instalimit të mjedisit të zhvillimit. Dritat inteligjente
Dritat inteligjente janë një lloj i ri llambash, forma e të cilave është e njëjtë me llambën inkandeshente të përgjithshme. Një dritë inteligjente përbëhet nga furnizimi me energji elektrike i rregulluar me ulje të kondensatorit, modul wireless (me ESP32-C3 të integruar), kontrollues LED dhe matricë LED RGB. Kur lidhet me energjinë, vol. 15 V DCtagDalja pas uljes së kondensatorit, korrigjimit dhe rregullimit të diodës siguron energji për kontrolluesin LED dhe matricën LED. Kontrolluesi LED mund të dërgojë automatikisht nivele të larta dhe të ulëta në intervale të caktuara, duke ndërruar matricën LED RGB midis të mbyllura (dritat e ndezura) dhe të hapura (dritat e fikur), në mënyrë që të mund të lëshojë ngjyrë blu, të verdhë, jeshile, vjollcë, blu, të kuqe dhe drite e bardhe. Moduli me valë është përgjegjës për lidhjen me ruterin Wi-Fi, marrjen dhe raportimin e statusit të dritave inteligjente dhe dërgimin e komandave për të kontrolluar LED.
Figura 2.2. Një dritë inteligjente e simuluar
Në zhvillimin e hershëm stage, mund të simuloni një dritë inteligjente duke përdorur tabelën ESP32-C3DevKitM-1 të lidhur me RGB LED lamp rruaza (shih Figurën 2.2). Por ju duhet
14 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
vini re se kjo nuk është mënyra e vetme për të montuar një dritë inteligjente. Dizajni i harduerit të projektit në këtë libër përmban vetëm një modul me valë (me ESP32-C3 të integruar), por jo një dizajn të plotë hardueri inteligjent të dritës. Përveç kësaj, Espressif prodhon gjithashtu një tabelë zhvillimi audio të bazuar në ESP32-C3 ESP32C3-Lyra për kontrollin e dritave me audio. Pllaka ka ndërfaqe për mikrofonat dhe altoparlantët dhe mund të kontrollojë shiritat LED. Mund të përdoret për zhvillimin e transmetuesve audio me kosto ultra të ulët dhe me performancë të lartë dhe shirita të dritës me ritëm. Figura 2.3 tregon një tabelë ESP32-C3Lyra të lidhur me një rrip prej 40 dritash LED.
Figura 2.3. ESP32-C3-Lyra e lidhur me një rrip prej 40 dritash LED
Telefonat inteligjentë (Android/iOS) Projekti Smart Light përfshin zhvillimin e një aplikacioni smartphone për konfigurimin dhe kontrollin e produkteve të dritës inteligjente.
Ruterat Wi-Fi Ruterët Wi-Fi konvertojnë sinjalet e rrjetit me tel dhe sinjalet e rrjetit celular në sinjale të rrjetit pa tel, për kompjuterët, telefonat inteligjentë, tabletët dhe pajisjet e tjera me valë për t'u lidhur me rrjetin. Për shembullampLe, brezi i gjerë në shtëpi duhet vetëm të lidhet me një ruter Wi-Fi për të arritur rrjetëzimin me valë të pajisjeve Wi-Fi. Standardi kryesor i protokollit i mbështetur nga ruterat Wi-Fi është IEEE 802.11n, me një mesatare TxRate prej 300 Mbps, ose 600 Mbps në maksimum. Ato janë të pajtueshme me IEEE 802.11b dhe IEEE 802.11g. Çipi ESP32-C3 nga Espressif mbështet IEEE 802.11b/g/n, kështu që ju mund të zgjidhni një ruter Wi-Fi me një brez (2.4 GHz) ose me dy brez (2.4 GHz dhe 5 GHz).
Një mjedis zhvillimi kompjuterik (Linux/macOS/Windows) do të prezantohet në Kapitullin 4. Kapitulli 2. Hyrje dhe Praktika e Projekteve IoT 15
2.2.4 Procesi i zhvillimit
Figura 2.4. Hapat e zhvillimit të projektit Smart Light
Dizajni i harduerit Dizajni i harduerit të pajisjeve IoT është thelbësor për një projekt IoT. Një projekt i plotë i dritës inteligjente synohet të prodhojë alamp duke punuar nën furnizimin me energji elektrike. Prodhues të ndryshëm prodhojnë lamps të stileve dhe llojeve të ndryshme të drejtuesve, por modulet e tyre me valë janë zakonisht të të njëjtit funksion. Për të thjeshtuar procesin e zhvillimit të projektit Smart Ligh, ky libër mbulon vetëm hartimin e harduerit dhe zhvillimin e softuerit të moduleve me valë.
Konfigurimi i platformës cloud të IoT Për të përdorur platformat cloud të IoT, duhet të konfiguroni projekte në pjesën e pasme, të tilla si krijimi i produkteve, krijimi i pajisjeve, vendosja e vetive të pajisjes, etj.
Zhvillimi i softuerit të integruar për pajisjet IoT Zbatoni funksionet e pritshme me ESP-IDF, SDK-në e pajisjes së Espressif, duke përfshirë lidhjen me platformat cloud të IoT, zhvillimin e drejtuesve LED dhe përmirësimin e firmuerit.
Zhvillimi i aplikacioneve për telefonat inteligjentë Zhvilloni aplikacione për telefonat inteligjentë për sistemet Android dhe iOS për të realizuar regjistrimin dhe identifikimin e përdoruesve, kontrollin e pajisjes dhe funksione të tjera.
Optimizimi i pajisjes IoT Pasi të përfundojë zhvillimi bazë i funksioneve të pajisjes IoT, mund t'i drejtoheni detyrave të optimizimit, siç është optimizimi i energjisë.
Testimi i prodhimit masiv Kryeni teste të prodhimit masiv sipas standardeve përkatëse, të tilla si testi i funksionit të pajisjeve, testi i plakjes, testi RF, etj.
Pavarësisht hapave të listuar më sipër, një projekt Smart Light nuk i nënshtrohet domosdoshmërisht një procedure të tillë pasi detyra të ndryshme mund të kryhen në të njëjtën kohë. Për shembullampLe, programet e integruara dhe aplikacionet e smartfonëve mund të zhvillohen paralelisht. Disa hapa gjithashtu mund të kenë nevojë të përsëriten, të tilla si optimizimi i pajisjes IoT dhe testimi i prodhimit masiv.
16 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
2.3 Përmbledhje
Në këtë kapitull, ne fillimisht shpjeguam mbi komponentët bazë dhe modulet funksionale të një projekti IoT, më pas prezantuam rastin Smart Light për praktikë, duke iu referuar strukturës, funksioneve, përgatitjes së harduerit dhe procesit të zhvillimit. Lexuesit mund të nxjerrin përfundime nga praktika dhe të bëhen të sigurt për të kryer projekte IoT me gabime minimale në të ardhmen.
Kapitulli 2. Prezantimi dhe praktika e projekteve IoT 17
18 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Kapitulli 3
Hyrje
te
ESP
RainMaker
Interneti i Gjërave (IoT) ofron mundësi të pafundme për të ndryshuar mënyrën se si jetojnë njerëzit, megjithatë zhvillimi i inxhinierisë IoT është plot sfida. Me retë publike, prodhuesit e terminaleve mund të zbatojnë funksionalitetin e produktit përmes zgjidhjeve të mëposhtme:
Bazuar në platformat cloud të ofruesve të zgjidhjeve Në këtë mënyrë, prodhuesit e terminaleve duhet vetëm të dizajnojnë harduerin e produktit, më pas të lidhin harduerin me cloud duke përdorur modulin e komunikimit të ofruar dhe të konfigurojnë funksionet e produktit duke ndjekur udhëzimet. Kjo është një qasje efikase pasi eliminon nevojën për zhvillim dhe funksionim dhe mirëmbajtje (O&M) nga ana e serverit dhe nga ana e aplikacionit. Ai i lejon prodhuesit e terminaleve të përqendrohen në hartimin e harduerit pa pasur nevojë të marrin në konsideratë zbatimin e cloud. Megjithatë, zgjidhje të tilla (p.sh. firmware i pajisjes dhe aplikacioni) në përgjithësi nuk janë me burim të hapur, kështu që funksionet e produktit do të kufizohen nga platforma cloud e ofruesit, e cila nuk mund të personalizohet. Ndërkohë, të dhënat e përdoruesit dhe të pajisjes i përkasin edhe platformës cloud.
Bazuar në produktet cloud Në këtë zgjidhje, pas përfundimit të dizajnit të harduerit, prodhuesit e terminaleve jo vetëm që duhet të zbatojnë funksionet e cloud duke përdorur një ose më shumë produkte cloud të ofruara nga cloud publik, por gjithashtu duhet të lidhin harduerin me cloud. Për shembullample, për t'u lidhur me Amazon Web Shërbimet (AWS), prodhuesit e terminaleve duhet të përdorin produkte AWS si Amazon API Gateway, AWS IoT Core dhe AWS Lambda për të mundësuar aksesin e pajisjes, telekomandën, ruajtjen e të dhënave, menaxhimin e përdoruesit dhe funksione të tjera bazë. Ai jo vetëm që kërkon nga prodhuesit e terminaleve që në mënyrë fleksibël të përdorin dhe konfigurojnë produktet cloud me kuptim të thellë dhe përvojë të pasur, por gjithashtu kërkon që ata të marrin parasysh koston e ndërtimit dhe mirëmbajtjes për pajisjet fillestare dhe të mëvonshme.tages Kjo paraqet sfida të mëdha për energjinë dhe burimet e kompanisë.
Krahasuar me retë publike, retë private zakonisht ndërtohen për projekte dhe produkte specifike. Zhvilluesve privatë të cloud u jepet niveli më i lartë i lirisë në hartimin e protokollit dhe zbatimin e logjikës së biznesit. Prodhuesit e terminaleve mund të bëjnë produkte dhe të dizajnojnë skema sipas dëshirës dhe të integrojnë dhe fuqizojnë lehtësisht të dhënat e përdoruesit. Kombinimi i sigurisë së lartë, shkallëzueshmërisë dhe besueshmërisë së resë publike me advanintagpër renë private, Espressif lançoi ESP
19
RainMaker, një zgjidhje e integruar thellësisht e re private e bazuar në cloud të Amazon. Përdoruesit mund të vendosin ESP RainMaker dhe të ndërtojnë re private thjesht me një llogari AWS.
3.1 Çfarë është ESP RainMaker?
ESP RainMaker është një platformë e plotë AIoT e ndërtuar me produkte të shumta AWS të pjekura. Ai ofron shërbime të ndryshme të nevojshme për prodhimin masiv, si aksesi në renë kompjuterike të pajisjes, përmirësimi i pajisjes, menaxhimi i backend-it, identifikimi i palëve të treta, integrimi i zërit dhe menaxhimi i përdoruesit. Duke përdorur Depon e Aplikimeve pa Server (SAR) të ofruar nga AWS, prodhuesit e terminaleve mund të vendosin shpejt ESP RainMaker në llogaritë e tyre AWS, i cili është efikas për kohën dhe i lehtë për t'u përdorur. I menaxhuar dhe mirëmbajtur nga Espressif, SAR i përdorur nga ESP RainMaker ndihmon zhvilluesit të reduktojnë kostot e mirëmbajtjes së cloud dhe të përshpejtojnë zhvillimin e produkteve AIoT, duke ndërtuar kështu zgjidhje të sigurta, të qëndrueshme dhe të personalizueshme AIoT. Figura 3.1 tregon arkitekturën e ESP RainMaker.
Figura 3.1. Arkitektura e ESP RainMaker
Serveri publik ESP RainMaker nga Espressif është falas për të gjithë entuziastët, krijuesit dhe edukatorët ESP për vlerësimin e zgjidhjeve. Zhvilluesit mund të identifikohen me llogaritë e Apple, Google ose GitHub dhe të ndërtojnë shpejt prototipet e tyre të aplikacionit IoT. Serveri publik integron Alexa dhe Google Home dhe ofron shërbime të kontrollit të zërit, të cilat mbështeten nga Alexa Skill dhe Google Actions. Funksioni i tij i njohjes semantike mundësohet gjithashtu nga palë të treta. Pajisjet RainMaker IoT u përgjigjen vetëm veprimeve specifike. Për një listë shteruese të komandave zanore të mbështetura, ju lutemi kontrolloni platformat e palëve të treta. Për më tepër, Espressif ofron një aplikacion publik RainMaker për përdoruesit që të kontrollojnë produktet përmes telefonave inteligjentë. 20 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
3.2 Zbatimi i ESP RainMaker
Siç tregohet në Figurën 3.2, ESP RainMaker përbëhet nga katër pjesë: · Shërbimi i pretendimit, i cili mundëson pajisjet RainMaker të marrin në mënyrë dinamike certifikatat. · RainMaker Cloud (i njohur gjithashtu si backend i cloud), duke ofruar shërbime të tilla si filtrimi i mesazheve, menaxhimi i përdoruesit, ruajtja e të dhënave dhe integrimet e palëve të treta. · RainMaker Agent, duke mundësuar që pajisjet RainMaker të lidhen me RainMaker Cloud. · Klienti RainMaker (Aplikacioni RainMaker ose skriptet CLI), për sigurimin, krijimin e përdoruesve, shoqërimin dhe kontrollin e pajisjes, etj.
Figura 3.2. Struktura e ESP RainMaker
ESP RainMaker ofron një grup të plotë mjetesh për zhvillimin e produktit dhe prodhimin masiv, duke përfshirë: RainMaker SDK
RainMaker SDK bazohet në ESP-IDF dhe ofron kodin burimor të agjentit nga ana e pajisjes dhe API-të përkatëse C për zhvillimin e firmuerit. Zhvilluesit duhet vetëm të shkruajnë logjikën e aplikacionit dhe t'ia lënë pjesën tjetër kornizës RainMaker. Për më shumë informacion rreth API-ve C, ju lutemi vizitoni https://bookc3.espressif.com/rm/c-api-reference. Aplikacioni RainMaker Versioni publik i aplikacionit RainMaker i lejon zhvilluesit të përfundojnë sigurimin e pajisjes dhe të kontrollojnë dhe të kërkojnë statusin e pajisjeve (p.sh. produktet e ndriçimit inteligjent). Është i disponueshëm si në dyqanet e aplikacioneve iOS ashtu edhe në Android. Për më shumë detaje, ju lutemi referojuni Kapitullit 10. API-të REST API-të e REST ndihmojnë përdoruesit të ndërtojnë aplikacionet e tyre të ngjashme me aplikacionin RainMaker. Për më shumë informacion, ju lutemi vizitoni https://swaggerapis.rainmaker.espressif.com/.
Kapitulli 3. Hyrje në ESP RainMaker 21
Python API-të Një CLI i bazuar në Python, i cili vjen me RainMaker SDK, ofrohet për të zbatuar të gjitha funksionet e ngjashme me veçoritë e smartfonëve. Për më shumë informacion rreth Python API, ju lutemi vizitoni https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, me nivel më të lartë aksesi, ofrohet për vendosjen private të ESP RainMaker për të gjeneruar certifikata të pajisjes në masë.
3.2.1 Shërbimi i pretendimit
I gjithë komunikimi ndërmjet pajisjeve RainMaker dhe backend-it cloud kryhet nëpërmjet MQTT+TLS. Në kontekstin e ESP RainMaker, "Pretendimi" është procesi në të cilin pajisjet marrin certifikata nga Shërbimi i Pretendimit për t'u lidhur me prapavijën e resë kompjuterike. Vini re se Shërbimi i Pretendimit është i zbatueshëm vetëm për shërbimin publik RainMaker, ndërsa për vendosjen private, certifikatat e pajisjes duhet të gjenerohen në masë përmes Admin CLI. ESP RainMaker mbështet tre lloje të Shërbimit të Pretendimit: Vetë Pretendimi
Vetë pajisja merr certifikatat përmes një çelësi sekret të para-programuar në eFuse pas lidhjes me internetin. Pretendimi i drejtuar nga hosti Certifikatat merren nga hosti i zhvillimit me llogarinë RainMaker. Pretendimi i asistuar Certifikatat merren nëpërmjet aplikacioneve në smartphone gjatë provizionimit.
3.2.2 Agjenti RainMaker
Figura 3.3. Struktura e RainMaker SDK Funksioni kryesor i Agjentit RainMaker është të sigurojë lidhje dhe të ndihmojë shtresën e aplikacionit për të përpunuar të dhënat e resë së lidhjes/lidhjes së sipërme. Është ndërtuar përmes aventurës me valë RainMaker SDK 22 ESP32-C3: Një udhëzues gjithëpërfshirës për IoT
dhe u zhvillua bazuar në kornizën e provuar ESP-IDF, duke përdorur komponentë ESP-IDF si RTOS, NVS dhe MQTT. Figura 3.3 tregon strukturën e RainMaker SDK.
RainMaker SDK përfshin dy veçori kryesore.
Lidhja
i. Bashkëpunimi me Shërbimin e pretendimeve për të marrë certifikatat e pajisjes.
ii. Lidhja me prapavijën e resë kompjuterike duke përdorur protokollin e sigurt MQTT për të siguruar lidhje në distancë dhe për të zbatuar telekomandën, raportimin e mesazheve, menaxhimin e përdoruesit, menaxhimin e pajisjes, etj. Ai përdor komponentin MQTT në ESP-IDF si parazgjedhje dhe siguron një shtresë abstraksioni për t'u ndërlidhur me të tjerët rafte protokolli.
iii. Sigurimi i komponentit të ofrimit të Wi-Fi për lidhjen dhe sigurimin e Wi-Fi, komponentin esp https ota për përmirësimet OTA dhe komponentin esp lokal ctrl për zbulimin dhe lidhjen lokale të pajisjes. Të gjitha këto objektiva mund të arrihen përmes konfigurimit të thjeshtë.
Përpunimi i të dhënave
i. Ruajtja e certifikatave të pajisjes të lëshuara nga Claiming Service dhe e të dhënave të nevojshme gjatë ekzekutimit të RainMaker, si parazgjedhje duke përdorur ndërfaqen e ofruar nga komponenti flash nvs dhe sigurimin e API-ve për zhvilluesit për përdorim të drejtpërdrejtë.
ii. Përdorimi i mekanizmit të kthimit të thirrjes për të përpunuar të dhënat e lidhjes/downlink të cloud dhe zhbllokimin automatik të të dhënave në shtresën e aplikacionit për përpunim të lehtë nga zhvilluesit. Për shembullampKështu, RainMaker SDK ofron ndërfaqe të pasura për vendosjen e të dhënave TSL (Thing Specification Language), të cilat kërkohen për të përcaktuar modelet TSL për të përshkruar pajisjet IoT dhe për të zbatuar funksione të tilla si koha, numërimi mbrapsht dhe kontrolli zanor. Për veçoritë bazë ndërvepruese si koha, RainMaker SDK ofron një zgjidhje pa zhvillim, e cila thjesht mund të aktivizohet kur nevojitet. Më pas, RainMaker Agent do t'i përpunojë drejtpërdrejt të dhënat, do t'i dërgojë ato në renë kompjuterike përmes temës shoqëruese MQTT dhe do të ushqejë ndryshimet e të dhënave në prapavijën e resë kompjuterike përmes mekanizmit të kthimit të thirrjes.
3.2.3 Mbështetja e resë kompjuterike
Mbështetja e cloud është ndërtuar në AWS Serverless Computing dhe arrihet përmes AWS Cognito (sistemi i menaxhimit të identitetit), Amazon API Gateway, AWS Lambda (shërbimi informatikë pa server), Amazon DynamoDB (baza e të dhënave NoSQL), AWS IoT Core (bërthama e aksesit IoT që ofron akses MQTT dhe filtrimi i rregullave), Shërbimi i thjeshtë i postës elektronike Amazon (shërbimi i thjeshtë i postës SES), Amazon CloudFront (rrjeti i dërgimit të shpejtë), Shërbimi i radhës së thjeshtë të Amazon (radha e mesazheve SQS) dhe Amazon S3 (shërbimi i ruajtjes së kovës). Ai synon të optimizojë shkallëzueshmërinë dhe sigurinë. Me ESP RainMaker, zhvilluesit mund të menaxhojnë pajisjet pa pasur nevojë të shkruajnë kodin në cloud. Mesazhet e raportuara nga pajisjet transmetohen në mënyrë transparente
Kapitulli 3. Hyrje në ESP RainMaker 23
klientët e aplikacioneve ose shërbime të tjera të palëve të treta. Tabela 3.1 tregon produktet dhe funksionet e resë kompjuterike AWS të përdorura në prapavijën e resë kompjuterike, me më shumë produkte dhe veçori në zhvillim.
Tabela 3.1. Produktet dhe funksionet e cloud AWS të përdorura nga prapavija e resë kompjuterike
Produkti AWS Cloud i përdorur nga RainMaker
Funksioni
AWS Cognito
Menaxhimi i kredencialeve të përdoruesve dhe mbështetja e hyrjeve të palëve të treta
AWS Lambda
Zbatimi i logjikës kryesore të biznesit të backend-it të cloud
Amazon Timestream Ruajtja e të dhënave të serive kohore
Amazon DynamoDB Ruajtja e informacionit privat të klientëve
AWS IoT Core
Mbështet komunikimin MQTT
Amazon SES
Ofrimi i shërbimeve të dërgimit të emailit
Amazon CloudFront Përshpejtimi i menaxhimit të backend webaksesi i faqes
Amazon SQS
Përcjellja e mesazheve nga AWS IoT Core
3.2.4 Klienti RainMaker
Klientët e RainMaker, të tillë si App dhe CLI, komunikojnë me backendin e resë kompjuterike përmes API-ve REST. Informacion dhe udhëzime të hollësishme rreth API-ve REST mund të gjenden në dokumentacionin Swagger të siguruar nga Espressif. Klienti i aplikacionit celular të RainMaker është i disponueshëm për sistemet iOS dhe Android. Ai lejon sigurimin, kontrollin dhe ndarjen e pajisjes, si dhe krijimin dhe aktivizimin e detyrave të numërimit mbrapsht dhe lidhjen me platformat e palëve të treta. Mund të ngarkojë automatikisht UI dhe ikonat sipas konfigurimit të raportuar nga pajisjet dhe të shfaqë plotësisht pajisjen TSL.
Për shembullample, nëse një dritë inteligjente është ndërtuar në RainMaker SDK exampKështu, ikona dhe UI e dritës së llambës do të ngarkohen automatikisht kur të përfundojë sigurimi. Përdoruesit mund të ndryshojnë ngjyrën dhe shkëlqimin e dritës përmes ndërfaqes dhe të arrijnë kontrollin e palëve të treta duke lidhur Alexa Smart Home Skill ose Google Smart Home Actions me llogaritë e tyre ESP RainMaker. Figura 3.4 tregon ikonën dhe UI examppak nga drita e llambës përkatësisht në Alexa, Google Home dhe ESP RainMaker App.
24 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
(a) P.shample – Alexa
(b) P.shample – Google Home
(c) P.shample – ESP RainMaker
Figura 3.4. ShembampIkonat dhe ndërfaqja e përdoruesit të dritës së llambës në Alexa, Google Home dhe aplikacionin ESP RainMaker
3.3 Praktika: Pikat kryesore për zhvillim me ESP RainMaker
Pasi të përfundojë shtresa e drejtuesit të pajisjes, zhvilluesit mund të fillojnë të krijojnë modele TSL dhe të përpunojnë të dhënat e lidhjes së poshtme duke përdorur API-të e ofruara nga RainMaker SDK dhe të aktivizojnë shërbimet bazë të ESP RainMaker bazuar në përkufizimin dhe kërkesat e produktit.
Kapitulli 3. Hyrje në ESP RainMaker 25
Seksioni 9.4 i këtij libri do të shpjegojë zbatimin e dritës inteligjente LED në RainMaker. Gjatë korrigjimit, zhvilluesit mund të përdorin mjetet CLI në RainMaker SDK për të komunikuar me dritën inteligjente (ose të telefonojnë API-të REST nga Swagger).
Kapitulli 10 do të shtjellojë përdorimin e API-ve REST në zhvillimin e aplikacioneve për smartphone. Përmirësimet OTA të dritave inteligjente LED do të trajtohen në kapitullin 11. Nëse zhvilluesit kanë aktivizuar monitorimin në distancë të ESP Insights, pjesa e pasme e menaxhimit të ESP RainMaker do të shfaqë të dhënat e ESP Insights. Detajet do të paraqiten në Kapitullin 15.
ESP RainMaker mbështet vendosjen private, e cila ndryshon nga serveri publik RainMaker në mënyrat e mëposhtme:
Shërbimi i pretendimit Për të gjeneruar certifikata në vendosje private, kërkohet të përdoret RainMaker Admin CLI në vend të pretendimit. Me serverin publik, zhvilluesve duhet t'u jepen të drejta administratori për të zbatuar përmirësimin e firmuerit, por është i padëshirueshëm në vendosjet komerciale. Prandaj, as shërbimi i veçantë i vërtetimit nuk mund të ofrohet për vetë-pretendim, as të drejtat e administratorit për pretendimet e drejtuara nga hosti ose të asistuar.
Aplikacionet e telefonit Në vendosjet private, aplikacionet duhet të konfigurohen dhe përpilohen veçmas për të siguruar që sistemet e llogarisë nuk janë të ndërveprueshme.
Identifikimi i palëve të treta dhe integrimi zanor Zhvilluesit duhet të konfigurohen veçmas nëpërmjet llogarive të Zhvilluesit të Google dhe Apple për të mundësuar hyrjet e palëve të treta, si dhe integrimin Alexa Skill dhe Google Voice Assistant.
KËSHILLA Për detaje rreth vendosjes së cloud, ju lutemi vizitoni https://customer.rainmaker.espressif. com. Për sa i përket firmuerit, migrimi nga serveri publik në serverin privat kërkon vetëm zëvendësimin e certifikatave të pajisjes, gjë që përmirëson shumë efikasitetin e migrimit dhe zvogëlon koston e migrimit dhe korrigjimin sekondar.
3.4 Karakteristikat e ESP RainMaker
Karakteristikat e ESP RainMaker synohen kryesisht në tre aspekte - menaxhimi i përdoruesit, përdoruesit përfundimtarë dhe administratorët. Të gjitha veçoritë mbështeten si në serverë publikë ashtu edhe në privatë, përveç nëse përcaktohet ndryshe.
3.4.1 Menaxhimi i përdoruesit
Karakteristikat e menaxhimit të përdoruesve i lejojnë përdoruesit fundorë të regjistrohen, të identifikohen, të ndryshojnë fjalëkalimet, të marrin fjalëkalime, etj.
26 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Regjistrohuni dhe identifikohuni Metodat e regjistrimit dhe identifikimit të mbështetura nga RainMaker përfshijnë: · ID-në e emailit + Fjalëkalimin · Numrin e telefonit + Fjalëkalimin · Llogarinë Google · Llogarinë Apple · Llogarinë GitHub (vetëm serverin publik) · Llogarinë Amazon (vetëm serverin privat)
SHËNIM Regjistrohu duke përdorur Google/Amazon ndan adresën e emailit të përdoruesit me RainMaker. Regjistrohu duke përdorur Apple ndan një adresë false që Apple cakton për përdoruesin posaçërisht për shërbimin RainMaker. Një llogari RainMaker do të krijohet automatikisht për përdoruesit që identifikohen me një llogari Google, Apple ose Amazon për herë të parë.
Ndrysho fjalëkalimin Vlen vetëm për hyrjet në bazë të ID-së/Numrit të Telefonit. Të gjitha seancat e tjera aktive do të dalin jashtë pas ndryshimit të fjalëkalimit. Sipas sjelljes AWS Cognito, seancat e daljes nga llogaria mund të qëndrojnë aktive deri në 1 orë.
Merr fjalëkalimin Vlefshëm vetëm për hyrjet në bazë të ID-së/Numrit të Telefonit.
3.4.2 Veçoritë e përdoruesit fundor
Veçoritë e hapura për përdoruesit fundorë përfshijnë kontrollin dhe monitorimin lokal dhe në distancë, planifikimin, grupimin e pajisjeve, ndarjen e pajisjeve, njoftimet shtytëse dhe integrimet e palëve të treta.
Kontrolli në distancë dhe monitorimi · Konfigurimi i pyetjes, vlerat e parametrave dhe statusi i lidhjes për një ose të gjitha pajisjet. · Vendosni parametra për pajisje të vetme ose të shumta.
Kontrolli dhe monitorimi lokal Telefoni celular dhe pajisja duhet të lidhen në të njëjtin rrjet për kontrollin lokal.
Planifikimi · Përdoruesit paracaktojnë veprime të caktuara në një kohë të caktuar. · Nuk kërkohet lidhje interneti për pajisjen gjatë ekzekutimit të orarit. · Një herë ose përsëriteni (duke specifikuar ditët) për pajisje të vetme ose të shumta.
Grupimi i pajisjeve Mbështet grupimin abstrakt me shumë nivele Të dhënat e grupit mund të përdoren për të krijuar një strukturë të dhomës së shtëpisë.
Kapitulli 3. Hyrje në ESP RainMaker 27
Ndarja e pajisjes Një ose më shumë pajisje mund të ndahen me një ose më shumë përdorues.
Njoftimet Push Përdoruesit fundorë do të marrin njoftime shtytëse për ngjarje të tilla si · Pajisje(at) e re e shtuar/hequr · Pajisja e lidhur me renë kompjuterike · Pajisja është shkëputur nga cloud · Kërkesat për ndarjen e pajisjes janë krijuar/pranuar/refuzuar · Mesazhe alarmi të raportuara nga pajisjet
Integrimet e palëve të treta Alexa dhe Google Voice Assistant mbështeten për të kontrolluar pajisjet RainMaker, duke përfshirë dritat, çelsat, prizat, tifozët dhe sensorët e temperaturës.
3.4.3 Veçoritë e administratorit
Veçoritë e administratorit i lejojnë administratorët të zbatojnë regjistrimin e pajisjes, grupimin e pajisjes dhe përmirësimet OTA dhe të view statistikat dhe të dhënat e ESP Insights.
Regjistrimi i pajisjes Gjeneroni certifikata të pajisjes dhe regjistrohuni me Admin CLI (vetëm serveri privat).
Grupimi i pajisjeve Krijoni grupe abstrakte ose të strukturuara bazuar në informacionin e pajisjes (vetëm serveri privat).
Përmirësimet Over-the-Air (OTA) Ngarkoni firmware bazuar në versionin dhe modelin, në një ose më shumë pajisje ose në një grup Monitoroni, anuloni ose arkivoni punët OTA.
View statistikat ViewStatistikat e mundshme përfshijnë: · Regjistrimet e pajisjes (certifikatat e regjistruara nga administratori) · Aktivizimet e pajisjes (pajisja e lidhur për herë të parë) · Llogaritë e përdoruesve · Lidhja e pajisjes me përdoruesit
View Të dhënat e ESP Insights ViewTë dhënat e mundshme të ESP Insights përfshijnë: · Gabimet, paralajmërimet dhe regjistrat e personalizuar · Raportet dhe analizat e përplasjeve · Arsyet e rindezjes · Metrikat si përdorimi i kujtesës, RSSI, etj. · Metrikat dhe variablat e personalizuara
28 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
3.5 Përmbledhje
Në këtë kapitull, ne prezantuam disa ndryshime kryesore midis vendosjes publike të RainMaker dhe vendosjes private. Zgjidhja private ESP RainMaker e lançuar nga Espressif është shumë e besueshme dhe e zgjerueshme. Të gjithë çipat e serisë ESP32 janë lidhur dhe përshtatur me AWS, gjë që ul ndjeshëm koston. Zhvilluesit mund të përqendrohen në verifikimin e prototipit pa pasur nevojë të mësojnë rreth produkteve cloud AWS. Ne shpjeguam gjithashtu zbatimin dhe veçoritë e ESP RainMaker, dhe disa pika kyçe për zhvillimin duke përdorur platformën.
Skanoni për të shkarkuar ESP RainMaker për Android Skanoni për të shkarkuar ESP RainMaker për iOS
Kapitulli 3. Hyrje në ESP RainMaker 29
30 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Kapitulli Vendosja 4 Mjedisi i Zhvillimit
Ky kapitull fokusohet në ESP-IDF, kuadri zyrtar i zhvillimit të softuerit për ESP32-C3. Ne do të shpjegojmë se si të konfigurojmë mjedisin në sisteme të ndryshme operative dhe do të prezantojmë strukturën e projektit dhe sistemin e ndërtimit të ESP-IDF, si dhe përdorimin e mjeteve përkatëse të zhvillimit. Më pas do të paraqesim procesin e përpilimit dhe ekzekutimit të një ishample projekt, duke ofruar një shpjegim të detajuar të regjistrit të prodhimit në çdo stage.
4.1 ESP-IDF Mbiview
ESP-IDF (Espressif IoT Development Framework) është një kornizë e zhvillimit të IoT me një ndalesë të ofruar nga Espressif Technology. Ai përdor C/C++ si gjuhën kryesore të zhvillimit dhe mbështet ndërthurjen nën sistemet operative të zakonshme si Linux, Mac dhe Windows. IshampProgramet e përfshira në këtë libër janë zhvilluar duke përdorur ESP-IDF, i cili ofron veçoritë e mëposhtme: · Drejtues të nivelit të sistemit SoC. ESP-IDF përfshin drejtuesit për ESP32, ESP32-S2, ESP32-C3,
dhe patate të skuqura të tjera. Këta drejtues përfshijnë bibliotekën periferike të nivelit të ulët (LL), bibliotekën e shtresës së abstraksionit të harduerit (HAL), mbështetjen RTOS dhe softuerin e drejtuesit të shtresës së sipërme, etj. · Komponentët thelbësorë. ESP-IDF përfshin komponentët themelorë të nevojshëm për zhvillimin e IoT. Kjo përfshin grupe të shumta të protokolleve të rrjetit si HTTP dhe MQTT, një kornizë të menaxhimit të energjisë me modulim dinamik të frekuencës dhe veçori si Kriptimi i Flash dhe Nisja e Sigurt, etj. · Mjetet e zhvillimit dhe prodhimit. ESP-IDF ofron mjete të përdorura zakonisht për ndërtimin, ndezjen dhe korrigjimin e gabimeve gjatë zhvillimit dhe prodhimit masiv (shih Figurën 4.1), të tilla si sistemi i ndërtimit të bazuar në CMake, zinxhiri i mjeteve të ndërthurjes bazuar në GCC dhe JTAG mjet korrigjimi i bazuar në OpenOCD, etj. Vlen të përmendet se kodi ESP-IDF i përmbahet kryesisht licencës Apache 2.0 me burim të hapur. Përdoruesit mund të zhvillojnë softuer personal ose komercial pa kufizime duke respektuar kushtet e licencës me burim të hapur. Për më tepër, përdoruesve u jepen licenca të përhershme për patentë pa pagesë, pa detyrimin për të hapur kodin burimor të çdo modifikimi të bërë.
31
Figura 4.1.
Ndërtimi, ndezja dhe korrigjimi-
mjete ging për zhvillim dhe prodhim masiv
4.1.1 Versionet ESP-IDF
Kodi ESP-IDF është pritur në GitHub si një projekt me burim të hapur. Aktualisht, ekzistojnë tre versione kryesore: v3, v4 dhe v5. Çdo version kryesor zakonisht përmban përmbysje të ndryshme, të tilla si v4.2, v4.3, e kështu me radhë. Espressif Systems siguron një mbështetje 30-mujore për rregullimet e gabimeve dhe arnimet e sigurisë për çdo nën-version të lëshuar. Prandaj, rishikimet e subversioneve lëshohen gjithashtu rregullisht, si v4.3.1, v4.2.2, etj. Tabela 4.1 tregon statusin e mbështetjes së versioneve të ndryshme ESP-IDF për çipat Espressif, duke treguar nëse ato janë në paraview stage (duke ofruar mbështetje për paraview versione, të cilave mund t'u mungojnë disa veçori ose dokumentacion) ose janë të mbështetur zyrtarisht.
Tabela 4.1. Statusi i mbështetjes së versioneve të ndryshme ESP-IDF për çipat Espressif
Seria ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 i mbështetur
v4.2 i mbështetur i mbështetur
v4.3 i mbështetur i mbështetur i mbështetur
v4.4 i mbështetur i mbështetur i mbështetur i i mbështetur
paraview
v5.0 i mbështetur, i mbështetur, i mbështetur, i mbështetur, i mbështetur paraview
32 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Përsëritja e versioneve kryesore shpesh përfshin rregullime në strukturën e kornizës dhe përditësime të sistemit të përpilimit. Për shembullampLe, ndryshimi kryesor nga v3.* në v4.* ishte migrimi gradual i sistemit të ndërtimit nga Make në CMake. Nga ana tjetër, përsëritja e versioneve të vogla zakonisht përfshin shtimin e veçorive të reja ose mbështetje për çipa të rinj.
Është e rëndësishme të dalloni dhe të kuptoni marrëdhënien midis versioneve të qëndrueshme dhe degëve të GitHub. Versionet e etiketuara si v*.* ose v*.*.* përfaqësojnë versione të qëndrueshme që kanë kaluar testimin e plotë të brendshëm nga Espressif. Pasi të rregullohet, kodi, zinxhiri i mjeteve dhe dokumentet e lëshimit për të njëjtin version mbeten të pandryshuara. Megjithatë, degët e GitHub (p.sh., dega e lëshimit/v4.3) i nënshtrohen detyrimeve të shpeshta të kodit, shpesh në baza ditore. Prandaj, dy copa kodi nën të njëjtën degë mund të ndryshojnë, gjë që kërkon që zhvilluesit të përditësojnë menjëherë kodin e tyre në përputhje me rrethanat.
4.1.2 Rrjedha e punës Git ESP-IDF
Espressif ndjek një rrjedhë pune specifike Git për ESP-IDF, të përshkruar si më poshtë:
· Janë bërë ndryshime të reja në degën master, e cila shërben si dega kryesore e zhvillimit. Versioni ESP-IDF në degën kryesore ka gjithmonë një -dev tag për të treguar se është aktualisht në zhvillim, si p.sh. v4.3-dev. Ndryshimet në degën master fillimisht do të riviewed dhe testuar në depon e brendshme të Espressif, dhe më pas shtyhet në GitHub pasi të ketë përfunduar testimi i automatizuar.
· Pasi një version i ri të ketë përfunduar zhvillimin e veçorive në degën kryesore dhe të përmbushë kriteret për të hyrë në testimin beta, ai kalon në një degë të re, si p.sh. versioni/ v4.3. Përveç kësaj, kjo degë e re është tagged si një version para-publikues, si v4.3-beta1. Zhvilluesit mund t'i referohen platformës GitHub për të hyrë në listën e plotë të degëve dhe tags për ESP-IDF. Është e rëndësishme të theksohet se versioni beta (versioni i para-lëshimit) mund të ketë ende një numër të konsiderueshëm çështjesh të njohura. Ndërsa versioni beta i nënshtrohet testimit të vazhdueshëm, rregullimet e gabimeve shtohen si në këtë version ashtu edhe në degën kryesore njëkohësisht. Ndërkohë, dega master mund të ketë filluar tashmë zhvillimin e veçorive të reja për versionin e ardhshëm. Kur testimi është pothuajse i përfunduar, një etiketë kandidate për lëshim (rc) i shtohet degës, që tregon se është një kandidat i mundshëm për lëshimin zyrtar, si p.sh. v4.3-rc1. Në këtë stage, dega mbetet një version para publikimit.
· Nëse nuk zbulohen apo raportohen gabime të mëdha, versioni i para-publikimit përfundimisht merr një etiketë versioni kryesor (p.sh., v5.0) ose një etiketë versioni të vogël (p.sh., v4.3) dhe bëhet një version zyrtar i lëshimit, i cili dokumentohet në faqen e shënimeve të lëshimit. Më pas, çdo gabim i identifikuar në këtë version rregullohet në degën e lëshimit. Pas përfundimit të testimit manual, degës i caktohet një etiketë e versionit të rregullimit të gabimeve (p.sh., v4.3.2), e cila pasqyrohet gjithashtu në faqen e shënimeve të lëshimit.
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 33
4.1.3 Zgjedhja e një versioni të përshtatshëm
Meqenëse ESP-IDF filloi zyrtarisht të mbështesë ESP32-C3 nga versioni v4.3, dhe v4.4 nuk është lëshuar ende zyrtarisht në kohën e shkrimit të këtij libri, versioni i përdorur në këtë libër është v4.3.2, i cili është një version i rishikuar i v4.3. Megjithatë, është e rëndësishme të theksohet se deri në kohën kur lexoni këtë libër, versionet v4.4 ose më të reja mund të jenë tashmë të disponueshme. Kur zgjidhni një version, ne rekomandojmë sa më poshtë:
· Për zhvilluesit e nivelit fillestar, këshillohet të zgjidhni versionin e qëndrueshëm v4.3 ose versionin e tij të rishikuar, i cili përputhet me ishampversioni i përdorur në këtë libër.
· Për qëllime të prodhimit masiv, rekomandohet përdorimi i versionit më të fundit të qëndrueshëm për të përfituar nga mbështetja teknike më e përditësuar.
· Nëse keni ndërmend të eksperimentoni me çipa të rinj ose të eksploroni veçori të reja të produktit, ju lutemi përdorni degën kryesore. Versioni i fundit përmban të gjitha veçoritë më të fundit, por mbani në mend se mund të ketë gabime të njohura ose të panjohura.
· Nëse versioni i qëndrueshëm që po përdoret nuk përfshin veçoritë e reja të dëshiruara dhe dëshironi të minimizoni rreziqet që lidhen me degën kryesore, merrni parasysh përdorimin e degës përkatëse të lëshimit, siç është dega e lëshimit/v4.4. Depoja e GitHub e Espressif fillimisht do të krijojë degën e lëshimit/v4.4 dhe më pas do të lëshojë versionin e qëndrueshëm v4.4 bazuar në një pamje specifike historike të kësaj dege, pasi të ketë përfunduar të gjithë zhvillimin dhe testimin e veçorive.
4.1.4 Mbiview të Drejtorisë SDK të ESP-IDF
ESP-IDF SDK përbëhet nga dy drejtori kryesore: esp-idf dhe .espressif. I pari përmban kodin burimor të depove ESP-IDF files dhe skriptet e kompilimit, ndërsa ky i fundit ruan kryesisht zinxhirë mjetesh përpilimi dhe softuer të tjerë. Njohja me këto dy drejtori do t'i ndihmojë zhvilluesit të përdorin më mirë burimet e disponueshme dhe të përshpejtojnë procesin e zhvillimit. Struktura e drejtorive të ESP-IDF përshkruhet më poshtë:
(1) Drejtoria e kodit të depove ESP-IDF (/esp/esp-idf), siç tregohet në figurën 4.2.
a. Komponentët e drejtorisë së komponentëve
Kjo direktori kryesore integron shumë komponentë thelbësorë të softuerit të ESP-IDF. Asnjë kod projekti nuk mund të përpilohet pa u mbështetur në komponentët brenda kësaj drejtorie. Ai përfshin mbështetjen e shoferit për çipa të ndryshëm Espressif. Nga ndërfaqet e bibliotekës LL dhe të bibliotekës HAL për pajisjet periferike deri te Driver dhe Virtual i nivelit të lartë File Mbështetja e shtresës së sistemit (VFS), zhvilluesit mund të zgjedhin komponentët e duhur në nivele të ndryshme për nevojat e tyre të zhvillimit. ESP-IDF gjithashtu mbështet shumë grupe standarde të protokolleve të rrjetit si TCP/IP, HTTP, MQTT, WebSocket, etj. Zhvilluesit mund të përdorin ndërfaqe të njohura si Socket për të ndërtuar aplikacione rrjeti. Komponentët ofrojnë të kuptuarit e
34 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Figura 4.2. Drejtoria e kodit të depove ESP-IDF
funksionalitet sive dhe mund të integrohet lehtësisht në aplikacione, duke i lejuar zhvilluesit të fokusohen vetëm në logjikën e biznesit. Disa komponentë të zakonshëm përfshijnë: · drejtues: Ky komponent përmban programe drejtuese periferike për Espressif të ndryshëm
Seritë e çipave, si GPIO, I2C, SPI, UART, LEDC (PWM), etj. Programet e drejtuesve periferikë në këtë komponent ofrojnë ndërfaqe abstrakte të pavarura nga çipi. Çdo pajisje periferike ka një kokë të përbashkët file (të tilla si gpio.h), duke eliminuar nevojën për t'u marrë me pyetje të ndryshme mbështetëse specifike për çipin. · esp_wifi: Wi-Fi, si një pajisje periferike e veçantë, trajtohet si një komponent i veçantë. Ai përfshin API të shumta si inicializimi i mënyrave të ndryshme të drejtuesit Wi-Fi, konfigurimi i parametrave dhe përpunimi i ngjarjeve. Disa funksione të këtij komponenti ofrohen në formën e bibliotekave të lidhjeve statike. ESP-IDF ofron gjithashtu dokumentacion gjithëpërfshirës të shoferit për lehtësinë e përdorimit.
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 35
· freertos: Ky komponent përmban kodin e plotë FreeRTOS. Përveç ofrimit të mbështetjes gjithëpërfshirëse për këtë sistem operativ, Espressif ka shtrirë mbështetjen e tij edhe për çipat me dy bërthama. Për çipat me dy bërthama si ESP32 dhe ESP32-S3, përdoruesit mund të krijojnë detyra në bërthama specifike.
b. Dokumentet e drejtorisë së dokumenteve
Kjo direktori përmban dokumente zhvillimi të lidhura me ESP-IDF, duke përfshirë Udhëzuesin Fillimi, Manuali i Referencës API, Udhëzuesi i Zhvillimit, etj.
SHËNIM Pasi të jetë përpiluar nga mjete të automatizuara, përmbajtja e kësaj drejtorie vendoset në https://docs.espressif.com/projects/esp-idf. Sigurohuni që të kaloni objektivin e dokumentit në ESP32-C3 dhe zgjidhni versionin e specifikuar ESP-IDF.
c. Mjetet e veglave të skriptit
Kjo direktori përmban mjete të përpilimit të përdorur zakonisht si idf.py, dhe mjetin e terminalit të monitorit idf_monitor.py, etj. Cmake nëndirektoria përmban gjithashtu skriptin bazë files të sistemit të përpilimit, duke shërbyer si bazë për zbatimin e rregullave të përpilimit ESP-IDF. Kur shtohen variablat e mjedisit, përmbajtja brenda drejtorisë së veglave shtohet në variablin e mjedisit të sistemit, duke lejuar që idf.py të ekzekutohet drejtpërdrejt nën shtegun e projektit.
d. p.shample direktorium programi p.shamples
Kjo direktori përfshin një koleksion të gjerë të ESP-IDF exampprograme që demonstrojnë përdorimin e API-ve të komponentëve. Ishamples organizohen në nëndrejtori të ndryshme bazuar në kategoritë e tyre:
· Fillimi: Ky nëndrejtori përfshin nivelin e hyrjes p.shampsi "përshëndetje botë" dhe "pulsi" për të ndihmuar përdoruesit të kuptojnë bazat.
· Bluetooth: Mund të gjeni të lidhur me Bluetooth p.shampkëtu, duke përfshirë Bluetooth LE Mesh, Bluetooth LE HID, BluFi dhe më shumë.
· Wi-Fi: Ky nëndrejtori fokusohet në Wi-Fi examples, duke përfshirë programet bazë si Wi-Fi SoftAP, Wi-Fi Station, espnow, si dhe protokollin e pronarit të komunikimit examples nga Espressif. Ai gjithashtu përfshin shtresa të shumëfishta aplikimi, p.shampbazohen në Wi-Fi, të tilla si Iperf, Sniffer dhe Smart Config.
· Pajisjet periferike: Ky nën-drejtori e gjerë ndahet më tej në nënfoldera të shumtë bazuar në emrat periferikë. Kryesisht përmban drejtues periferik p.shamples për patate të skuqura Espressif, me çdo ishample duke shfaqur disa nën-ishamples. Për shembull, nën-drejtoria gpio përfshin dy p.shampLes: tastiera matricë GPIO dhe GPIO. Është e rëndësishme të theksohet se jo të gjithë ishampLejet në këtë direktori janë të zbatueshme për ESP32-C3.
36 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Për shembullample, ishampLejet në usb/host janë të zbatueshme vetëm për pajisjet periferike me harduer USB Host (si p.sh. ESP32-S3), dhe ESP32-C3 nuk e ka këtë pajisje periferike. Sistemi i përpilimit zakonisht ofron kërkesa kur vendos objektivin. README file e secilit ishample liston çipat e mbështetur. · Protokollet: Ky nëndrejtori përmban p.shamples për protokolle të ndryshme komunikimi, duke përfshirë MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, që mbulojnë një gamë të gjerë të protokolleve të komunikimit p.sh.ampmë pak të nevojshme për zhvillimin e IoT. · provizionimi: Këtu do të gjeni sigurimin p.shamples për metoda të ndryshme, të tilla si sigurimi Wi-Fi dhe sigurimi Bluetooth LE. · Sistemi: Ky nëndrejtori përfshin korrigjimin e sistemit p.shamples (p.sh. gjurmimi i stivës, gjurmimi i kohës së funksionimit, monitorimi i detyrave), menaxhimi i energjisë p.shamples (p.sh., mënyra të ndryshme gjumi, bashkëpërpunues), dhe p.shampAto lidhen me komponentët e zakonshëm të sistemit si terminali i konsolës, cikli i ngjarjeve dhe kohëmatësi i sistemit. · ruajtja: Brenda kësaj nëndrejtorie, do të zbuloni p.shampnga të gjitha file sistemet dhe mekanizmat e ruajtjes të mbështetur nga ESP-IDF (si leximi dhe shkrimi i Flash, kartës SD dhe mediave të tjera ruajtëse), si dhe ishampmagazinimet jo të paqëndrueshme (NVS), FatFS, SPIFFS dhe të tjera file operacionet e sistemit. · Siguria: Kjo nën-drejtori përmban p.shamples që lidhen me enkriptimin flash. (2) Drejtoria e zinxhirit të mjeteve të përpilimit ESP-IDF (/.espressif), siç tregohet në figurën 4.3.
Figura 4.3. Drejtoria e zinxhirit të mjeteve të përpilimit ESP-IDF
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 37
a. Drejtoria e shpërndarjes së softuerit dist
Zinxhiri i mjeteve ESP-IDF dhe softuerët e tjerë shpërndahen në formën e paketave të kompresuara. Gjatë procesit të instalimit, mjeti i instalimit së pari shkarkon paketën e ngjeshur në drejtorinë dist, dhe më pas e nxjerr atë në drejtorinë e specifikuar. Pasi të përfundojë instalimi, përmbajtja në këtë direktori mund të hiqet në mënyrë të sigurt.
b. Drejtoria e mjedisit virtual Python python env
Versione të ndryshme të ESP-IDF mbështeten në versione specifike të paketave Python. Instalimi i këtyre paketave drejtpërdrejt në të njëjtin host mund të çojë në konflikte midis versioneve të paketës. Për të adresuar këtë, ESP-IDF përdor mjediset virtuale Python për të izoluar versione të ndryshme të paketave. Me këtë mekanizëm, zhvilluesit mund të instalojnë versione të shumta të ESP-IDF në të njëjtin host dhe të kalojnë lehtësisht ndërmjet tyre duke importuar variabla të ndryshëm mjedisi.
c. Mjetet e drejtorisë së zinxhirit të mjeteve të përpilimit të ESP-IDF
Kjo direktori përmban kryesisht mjete ndër-përpilimi të kërkuara për të përpiluar projektet ESP-IDF, të tilla si mjetet CMake, mjetet e ndërtimit të Ninja dhe zinxhirin e veglave gcc që gjeneron programin përfundimtar të ekzekutueshëm. Për më tepër, kjo direktori strehon bibliotekën standarde të gjuhës C/C++ së bashku me kokën përkatëse files. Nëse një program i referohet një titulli të sistemit file si #përfshi , zinxhiri i veglave të përpilimit do të gjejë stdio.h file brenda këtij direktori.
4.2 Vendosja e Mjedisit Zhvillimor ESP-IDF
Mjedisi i zhvillimit ESP-IDF mbështet sistemet operative të zakonshme si Windows, Linux dhe macOS. Ky seksion do të prezantojë se si të konfiguroni mjedisin e zhvillimit në secilin sistem. Rekomandohet zhvillimi i ESP32-C3 në sistemin Linux, i cili do të prezantohet në detaje këtu. Shumë udhëzime janë të zbatueshme nëpër platforma për shkak të ngjashmërisë së mjeteve të zhvillimit. Prandaj, këshillohet që të lexoni me kujdes përmbajtjen e këtij seksioni.
SHËNIM Mund t'i referoheni dokumenteve online të disponueshme në https://bookc3.espressif.com/esp32c3, të cilat ofrojnë komandat e përmendura në këtë seksion.
4.2.1 Vendosja e Mjedisit të Zhvillimit ESP-IDF në Linux
Veglat e zhvillimit dhe korrigjimit të GNU të kërkuara për mjedisin e zhvillimit ESP-IDF janë vendas në sistemin Linux. Për më tepër, terminali i linjës së komandës në Linux është i fuqishëm dhe miqësor për përdoruesit, duke e bërë atë një zgjedhje ideale për zhvillimin e ESP32-C3. Ti mundesh
38 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
zgjidhni shpërndarjen tuaj të preferuar Linux, por ne ju rekomandojmë të përdorni Ubuntu ose sisteme të tjera të bazuara në Debian. Ky seksion ofron udhëzime për konfigurimin e mjedisit të zhvillimit ESP-IDF në Ubuntu 20.04.
1. Instaloni paketat e kërkuara
Hapni një terminal të ri dhe ekzekutoni komandën e mëposhtme për të instaluar të gjitha paketat e nevojshme. Komanda do të kapërcejë automatikisht paketat që janë instaluar tashmë.
$ sudo apt-get instalo git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-ndërto ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
KËSHILLA Duhet të përdorni llogarinë e administratorit dhe fjalëkalimin për komandën e mësipërme. Si parazgjedhje, asnjë informacion nuk do të shfaqet kur futni fjalëkalimin. Thjesht shtypni butonin "Enter" për të vazhduar procedurën.
Git është një mjet kyç i menaxhimit të kodit në ESP-IDF. Pas konfigurimit të suksesshëm të mjedisit të zhvillimit, mund të përdorni komandën git log për view të gjitha ndryshimet e kodit të bëra që nga krijimi i ESP-IDF. Për më tepër, Git përdoret gjithashtu në ESP-IDF për të konfirmuar informacionin e versionit, i cili është i nevojshëm për instalimin e zinxhirit të saktë të mjeteve që korrespondon me versione specifike. Së bashku me Git, mjete të tjera të rëndësishme të sistemit përfshijnë Python. ESP-IDF përfshin skripte të shumta automatizimi të shkruara në Python. Mjete të tilla si CMake, Ninja-build dhe Ccache përdoren gjerësisht në projektet C/C++ dhe shërbejnë si mjetet e paracaktuara për përpilimin dhe ndërtimin e kodit në ESP-IDF. libusb-1.0-0 dhe dfu-util janë drejtuesit kryesorë të përdorur për komunikimin serial USB dhe djegien e firmuerit. Pasi të instalohen paketat e softuerit, mund të përdorni apt show komanda për të marrë përshkrime të hollësishme të secilës paketë. Për shembullample, përdorni apt show git për të printuar informacionin e përshkrimit për mjetin Git.
Pyetje: Çfarë duhet të bëni nëse versioni Python nuk mbështetet? Përgjigje: ESP-IDF v4.3 kërkon një version Python që nuk është më i ulët se v3.6. Për versionet më të vjetra të Ubuntu, ju lutemi shkarkoni dhe instaloni manualisht një version më të lartë të Python dhe vendosni Python3 si mjedisin e parazgjedhur të Python. Ju mund të gjeni udhëzime të hollësishme duke kërkuar për fjalën kyçe update-alternatives python.
2. Shkarkoni kodin e depove ESP-IDF
Hapni një terminal dhe krijoni një dosje me emrin esp në direktorinë tuaj kryesore duke përdorur komandën mkdir. Nëse dëshironi, mund të zgjidhni një emër tjetër për dosjen. Përdorni komandën cd për të hyrë në dosje.
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 39
$ mkdir -p /esp $ cd /esp
Përdorni komandën git klon për të shkarkuar kodin e depove ESP-IDF, siç tregohet më poshtë:
$ klon git -b v4.3.2 – rekursiv https://github.com/espressif/esp-idf.git
Në komandën e mësipërme, parametri -b v4.3.2 specifikon versionin për shkarkim (në këtë rast, versioni 4.3.2). Parametri -rekurziv siguron që të gjitha nën-depot e ESP-IDF të shkarkohen në mënyrë rekursive. Informacioni rreth nën-depove mund të gjendet në .gitmodules file.
3. Instaloni zinxhirin e mjeteve të zhvillimit ESP-IDF
Espressif ofron një skript të automatizuar install.sh për të shkarkuar dhe instaluar zinxhirin e veglave. Ky skript kontrollon versionin aktual të ESP-IDF dhe mjedisin e sistemit operativ, dhe më pas shkarkon dhe instalon versionin e duhur të paketave të veglave Python dhe zinxhirët e mjeteve të përpilimit. Rruga e paracaktuar e instalimit për zinxhirin e veglave është /.espressif. E tëra çfarë ju duhet të bëni është të lundroni në drejtorinë esp-idf dhe të ekzekutoni install.sh.
$ cd /esp/esp-idf $ ./install.sh
Nëse e instaloni me sukses zinxhirin e veglave, terminali do të shfaqë:
Gjithçka u krye!
Në këtë pikë, ju keni vendosur me sukses mjedisin e zhvillimit ESP-IDF.
4.2.2 Konfigurimi i Mjedisit të Zhvillimit ESP-IDF në Windows
1. Shkarkoni instaluesin e mjeteve ESP-IDF
KËSHILLA Rekomandohet të konfiguroni mjedisin e zhvillimit ESP-IDF në Windows 10 ose më lart. Mund ta shkarkoni instaluesin nga https://dl.espressif.com/dl/esp-idf/. Instaluesi është gjithashtu një softuer me burim të hapur dhe kodi burimor i tij mund të jetë viewbotuar në https: //github.com/espressif/idf-installer.
· Instalues online i mjeteve ESP-IDF
Ky instalues është relativisht i vogël, rreth 4 MB në madhësi dhe paketa dhe kode të tjera do të shkarkohen gjatë procesit të instalimit. Advanitage i instaluesit në internet është se jo vetëm që paketat e softuerit dhe kodi mund të shkarkohen sipas kërkesës gjatë procesit të instalimit, por gjithashtu lejon instalimin e të gjitha versioneve të disponueshme të ESP-IDF dhe degës më të fundit të kodit GitHub (si p.sh. dega kryesore) . Disavantazhitage është se kërkon një lidhje rrjeti gjatë procesit të instalimit, gjë që mund të shkaktojë dështim të instalimit për shkak të problemeve të rrjetit.
40 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
· Instaluesi i veglave ESP-IDF jashtë linje Ky instalues është më i madh, rreth 1 GB në madhësi dhe përmban të gjitha paketat e softuerit dhe kodin e kërkuar për konfigurimin e mjedisit. Advani kryesortage i instaluesit jashtë linje është se mund të përdoret në kompjuterë pa akses në internet dhe në përgjithësi ka një shkallë më të lartë suksesi instalimi. Duhet të kihet parasysh se instaluesi jashtë linje mund të instalojë vetëm versione të qëndrueshme të ESP-IDF të identifikuara nga v*.* ose v*.*.*.
2. Ekzekutoni instaluesin e mjeteve ESP-IDF Pasi të keni shkarkuar një version të përshtatshëm të instaluesit (merrni ESP-IDF Tools Offline 4.3.2 për shembullample këtu), klikoni dy herë në exe file për të nisur ndërfaqen e instalimit ESP-IDF. Më poshtë tregon se si të instaloni versionin stabil ESP-IDF v4.3.2 duke përdorur instaluesin jashtë linje.
(1) Në ndërfaqen "Zgjidh gjuhën e instalimit" të paraqitur në Figurën 4.4, zgjidhni gjuhën që do të përdoret nga lista rënëse.
Figura 4.4. Ndërfaqja "Zgjidh gjuhën e instalimit" (2) Pasi të zgjidhni gjuhën, klikoni "OK" për të shfaqur ndërfaqen "Marrëveshja e licencës"
(shih Figurën 4.5). Pasi të keni lexuar me kujdes marrëveshjen e licencës së instalimit, zgjidhni "Unë e pranoj marrëveshjen" dhe klikoni "Next".
Figura 4.5. Ndërfaqja e “Marrëveshjes së Licencës” Kapitulli 4. Vendosja e Mjedisit Zhvillimor 41
(3) Review konfigurimin e sistemit në ndërfaqen "Kontrolli i sistemit para instalimit" (shih Figurën 4.6). Kontrolloni versionin e Windows dhe informacionin e softuerit antivirus të instaluar. Klikoni "Next" nëse të gjithë artikujt e konfigurimit janë normalë. Përndryshe, mund të klikoni "Regjistri i plotë" për zgjidhjet e bazuara në artikujt kryesorë.
Figura 4.6. KËSHILLA për ndërfaqen "Kontrolli i sistemit përpara instalimit".
Ju mund të paraqisni regjistrat në https://github.com/espressif/idf-installer/issues për ndihmë. (4) Zgjidhni direktorinë e instalimit ESP-IDF. Këtu, zgjidhni D:/.espressif, siç tregohet në
Figura 4.7 dhe klikoni "Next". Ju lutemi vini re se .espressif këtu është një direktori e fshehur. Pas përfundimit të instalimit, mundeni view përmbajtjen specifike të kësaj drejtorie duke hapur file menaxher dhe shfaqja e artikujve të fshehur.
Figura 4.7. Zgjidhni direktorinë e instalimit ESP-IDF 42 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
(5) Kontrolloni komponentët që duhet të instalohen, siç tregohet në figurën 4.8. Rekomandohet të përdorni opsionin e paracaktuar, domethënë instalimin e plotë dhe më pas klikoni "Next".
Figura 4.8. Zgjidhni komponentët për t'u instaluar (6) Konfirmoni komponentët që do të instalohen dhe klikoni "Instalo" për të nisur in-
procesi i stallimit, siç tregohet në figurën 4.9. Procesi i instalimit mund të zgjasë dhjetëra minuta dhe shiriti i progresit të procesit të instalimit tregohet në Figurën 4.10. Ju lutem prisni me durim.
Figura 4.9. Përgatitja për instalim (7) Pas përfundimit të instalimit, rekomandohet të kontrolloni "Regjistro ESP-IDF
Mjetet e ekzekutueshme si përjashtime të Windows Defender…” për të parandaluar fshirjen e softuerit antivirus files. Shtimi i artikujve të përjashtimit gjithashtu mund të kapërcejë skanimet e shpeshta me anë të antivirusit
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 43
Figura 4.10. Softueri i shiritit të përparimit të instalimit, duke përmirësuar ndjeshëm efikasitetin e përpilimit të kodit të sistemit Windows. Klikoni "Finish" për të përfunduar instalimin e mjedisit të zhvillimit, siç tregohet në figurën 4.11. Mund të zgjidhni të kontrolloni "Run ESP-IDF PowerShell mjedis" ose "Run ESP-IDF command prompt". Ekzekutoni dritaren e përpilimit direkt pas instalimit për të siguruar që mjedisi i zhvillimit të funksionojë normalisht.
Figura 4.11. Instalimi përfundoi (8) Hapni mjedisin e instaluar të zhvillimit në listën e programeve (ose ESP-IDF 4.3
Terminali CMD ose ESP-IDF 4.3 PowerShell, siç tregohet në figurën 4.12), dhe ndryshorja e mjedisit ESP-IDF do të shtohen automatikisht kur funksionon në terminal. Pas kësaj, ju mund të përdorni komandën idf.py për operacione. ESP-IDF 4.3 CMD e hapur është paraqitur në Figurën 4.13. 44 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Figura 4.12. Mjedisi i zhvillimit të instaluar
Figura 4.13. ESP-IDF 4.3 CMD
4.2.3 Konfigurimi i Mjedisit të Zhvillimit ESP-IDF në Mac
Procesi i instalimit të mjedisit të zhvillimit ESP-IDF në një sistem Mac është i njëjtë me atë në një sistem Linux. Komandat për shkarkimin e kodit të depove dhe instalimin e zinxhirit të veglave janë saktësisht të njëjta. Vetëm komandat për instalimin e paketave të varësisë janë paksa të ndryshme. 1. Instaloni paketat e varësisë Hapni një terminal dhe instaloni pip, mjetin e menaxhimit të paketave Python, duke ekzekutuar komandën e mëposhtme:
% sudo pip i thjeshtë për instalim
Instaloni Homebrew, një mjet për menaxhimin e paketave për macOS, duke ekzekutuar komandën e mëposhtme:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Instaloni paketat e nevojshme të varësisë duke ekzekutuar komandën e mëposhtme:
% brew python3 instaloni cmake ninja ccache dfu-util
2. Shkarkoni kodin e depove ESP-IDF Ndiqni udhëzimet e dhëna në seksionin 4.2.1 për të shkarkuar kodin e depozitës ESP-IDF. Hapat janë të njëjtë si për shkarkimin në një sistem Linux.
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 45
3. Instaloni zinxhirin e mjeteve të zhvillimit ESP-IDF
Ndiqni udhëzimet e dhëna në seksionin 4.2.1 për të instaluar zinxhirin e veglave të zhvillimit ESP-IDF. Hapat janë të njëjtë si për instalimin në një sistem Linux.
4.2.4 Instalimi i kodit VS
Si parazgjedhje, ESP-IDF SDK nuk përfshin një mjet për modifikimin e kodit (megjithëse instaluesi më i fundit ESP-IDF për Windows ofron opsionin për të instaluar ESP-IDF Eclipse). Ju mund të përdorni çdo mjet për modifikimin e tekstit sipas zgjedhjes suaj për të redaktuar kodin dhe më pas për ta përpiluar atë duke përdorur komandat e terminalit.
Një mjet i njohur për redaktimin e kodit është VS Code (Visual Studio Code), i cili është një redaktues kodesh falas dhe i pasur me një ndërfaqe miqësore për përdoruesit. Ofron te ndryshme plugins që ofrojnë funksione të tilla si navigimi i kodit, theksimi i sintaksës, kontrolli i versionit Git dhe integrimi i terminalit. Për më tepër, Espressif ka zhvilluar një shtojcë të dedikuar të quajtur Espressif IDF për VS Code, e cila thjeshton konfigurimin dhe korrigjimin e projektit.
Ju mund të përdorni komandën e kodit në terminal për të hapur shpejt dosjen aktuale në VS Code. Përndryshe, mund të përdorni shkurtoren Ctrl+ për të hapur konsolën e parazgjedhur të terminalit të sistemit brenda Kodit VS.
KËSHILLA Rekomandohet përdorimi i VS Code për zhvillimin e kodit ESP32-C3. Shkarkoni dhe instaloni versionin më të fundit të VS Code në https://code.visualstudio.com/.
4.2.5 Hyrje në mjediset e zhvillimit të palëve të treta
Përveç mjedisit zyrtar të zhvillimit ESP-IDF, i cili kryesisht përdor gjuhën C, ESP32-C3 mbështet gjithashtu gjuhë të tjera programimi të zakonshme dhe një gamë të gjerë mjedisesh zhvillimi të palëve të treta. Disa opsione të dukshme përfshijnë:
Arduino: një platformë me burim të hapur si për harduerin ashtu edhe për softuerin, që mbështet mikrokontrollues të ndryshëm, duke përfshirë ESP32-C3.
Ai përdor gjuhën C++ dhe ofron një API të thjeshtuar dhe të standardizuar, të quajtur zakonisht si gjuha Arduino. Arduino përdoret gjerësisht në zhvillimin e prototipeve dhe kontekstet arsimore. Ai siguron një paketë softuerike të zgjeruar dhe një IDE që lejon përpilimin dhe ndezjen e lehtë.
MicroPython: një përkthyes i gjuhës Python 3 i krijuar për të ekzekutuar në platformat e mikrokontrolluesve të integruar.
Me një gjuhë të thjeshtë skripti, ai mund të aksesojë drejtpërdrejt burimet periferike të ESP32-C3 (të tilla si UART, SPI dhe I2C) dhe funksionet e komunikimit (të tilla si Wi-Fi dhe Bluetooth LE).
46 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
Kjo thjeshton ndërveprimin e harduerit. MicroPython, i kombinuar me bibliotekën e gjerë të operacioneve matematikore të Python, mundëson zbatimin e algoritmeve komplekse në ESP32-C3, duke lehtësuar zhvillimin e aplikacioneve të lidhura me AI. Si gjuhë shkrimi, nuk ka nevojë për përpilim të përsëritur; mund të bëhen modifikime dhe skriptet mund të ekzekutohen drejtpërdrejt.
NodeMCU: një përkthyes i gjuhës LUA i zhvilluar për çipat e serisë ESP.
Ai mbështet pothuajse të gjitha funksionet periferike të çipave ESP dhe është më i lehtë se MicroPython. Ngjashëm me MicroPython, NodeMCU përdor një gjuhë skripti, duke eliminuar nevojën për përpilim të përsëritur.
Për më tepër, ESP32-C3 gjithashtu mbështet sistemet operative NuttX dhe Zephyr. NuttX është një sistem operativ në kohë reale që ofron ndërfaqe të pajtueshme me POSIX, duke rritur transportueshmërinë e aplikacionit. Zephyr është një sistem i vogël operativ në kohë reale i krijuar posaçërisht për aplikacionet IoT. Ai përfshin biblioteka të shumta softuerësh të kërkuar në zhvillimin e IoT, duke evoluar gradualisht në një ekosistem gjithëpërfshirës softuerësh.
Ky libër nuk ofron udhëzime të hollësishme instalimi për mjediset e sipërpërmendura të zhvillimit. Ju mund të instaloni një mjedis zhvillimi bazuar në kërkesat tuaja duke ndjekur dokumentacionin dhe udhëzimet përkatëse.
4.3 Sistemi i përpilimit ESP-IDF
4.3.1 Konceptet bazë të sistemit të përpilimit
Një projekt ESP-IDF është një koleksion i një programi kryesor me një funksion hyrje dhe komponentë të shumtë funksionalë të pavarur. Për shembullample, një projekt që kontrollon çelsat LED kryesisht përbëhet nga një program kryesor i hyrjes dhe një komponent drejtues që kontrollon GPIO. Nëse dëshironi të realizoni telekomandën LED, duhet gjithashtu të shtoni Wi-Fi, stack protokolli TCP/IP, etj.
Sistemi i kompilimit mund të përpilojë, lidhë dhe gjenerojë të ekzekutueshme files (.bin) për kodin përmes një grupi rregullash ndërtimi. Sistemi i përpilimit të versioneve ESP-IDF v4.0 dhe më lart bazohet në CMake si parazgjedhje dhe skripti i përpilimit CMakeLists.txt mund të përdoret për të kontrolluar sjelljen e përpilimit të kodit. Përveç mbështetjes së sintaksës bazë të CMake, sistemi i përpilimit ESP-IDF përcakton gjithashtu një grup rregullash të paracaktuara të përpilimit dhe funksionet CMake, dhe ju mund të shkruani skriptin e përpilimit me deklarata të thjeshta.
4.3.2 Projekti File Struktura
Një projekt është një dosje që përmban një program kryesor të hyrjes, komponentë të përcaktuar nga përdoruesi dhe fileKërkohet për të ndërtuar aplikacione të ekzekutueshme, të tilla si skriptet e kompilimit, konfigurimi
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 47
files, tabelat e ndarjeve, etj. Projektet mund të kopjohen dhe kalohen, dhe të njëjtat ekzekutuese file mund të kompilohet dhe gjenerohet në makina me të njëjtin version të mjedisit të zhvillimit ESP-IDF. Një projekt tipik ESP-IDF file struktura është paraqitur në figurën 4.14.
Figura 4.14. Projekt tipik ESP-IDF file struktura Meqenëse ESP-IDF mbështet çipa të shumtë IoT nga Espressif, duke përfshirë seritë ESP32, ESP32-S, seritë ESP32-C, seritë ESP32-H, etj., duhet të përcaktohet një objektiv përpara se të përpilohet kodi. Objektivi është edhe pajisja harduerike që drejton programin e aplikacionit dhe objektivi i ndërtimit të sistemit të përpilimit. Në varësi të nevojave tuaja, ju mund të specifikoni një ose më shumë objektiva për projektin tuaj. Për shembullampLe, përmes komandës idf.py set-target esp32c3, mund ta vendosni objektivin e përpilimit në ESP32-C3, gjatë së cilës do të ngarkohen parametrat e paracaktuar dhe shtegu i zinxhirit të mjetit të përpilimit për ESP32C3. Pas kompilimit, një program i ekzekutueshëm mund të gjenerohet për ESP32C3. Ju gjithashtu mund të ekzekutoni përsëri komandën set-target për të vendosur një objektiv tjetër dhe sistemi i përpilimit automatikisht do të pastrohet dhe rikonfigurohet. Komponentët
Komponentët në ESP-IDF janë njësi kodi modulare dhe të pavarura të menaxhuara brenda sistemit të përpilimit. Ato janë të organizuara si dosje, me emrin e dosjes që përfaqëson emrin e komponentit si parazgjedhje. Secili komponent ka skriptin e tij të përpilimit që 48 ESP32-C3 Wireless Adventure: Një Udhëzues Gjithëpërfshirës për IoT
specifikon parametrat dhe varësitë e tij të përpilimit. Gjatë procesit të përpilimit, komponentët përpilohen në biblioteka statike të veçanta (.a files) dhe përfundimisht të kombinuara me komponentë të tjerë për të formuar programin e aplikimit.
ESP-IDF ofron funksione thelbësore, të tilla si sistemi operativ, drejtuesit periferikë dhe grupi i protokollit të rrjetit, në formën e komponentëve. Këta komponentë ruhen në direktorinë e komponentëve të vendosur brenda direktorisë rrënjësore ESP-IDF. Zhvilluesit nuk kanë nevojë t'i kopjojnë këta komponentë në drejtorinë e komponentëve të myProject. Në vend të kësaj, ata duhet vetëm të specifikojnë marrëdhëniet e varësisë së këtyre komponentëve në CMakeLists.txt të projektit file duke përdorur direktivat REQUIRES ose PRIV_REQUIRES. Sistemi i përpilimit automatikisht do të gjejë dhe përpilojë komponentët e kërkuar.
Prandaj, drejtoria e komponentëve nën myProject nuk është e nevojshme. Përdoret vetëm për të përfshirë disa komponentë të personalizuar të projektit, të cilët mund të jenë biblioteka të palëve të treta ose kod i përcaktuar nga përdoruesi. Për më tepër, komponentët mund të merren nga çdo drejtori përveç ESP-IDF ose projektit aktual, si p.sh. nga një projekt me burim të hapur i ruajtur në një drejtori tjetër. Në këtë rast, ju duhet vetëm të shtoni shtegun e komponentit duke vendosur variablin EXTRA_COMPONENT_DIRS në CMakeLists.txt nën direktoriumin rrënjë. Kjo direktori do të anashkalojë çdo komponent ESP-IDF me të njëjtin emër, duke siguruar që komponenti i saktë të përdoret.
Programi kryesor i hyrjes Drejtoria kryesore brenda projektit ndjek të njëjtën gjë file struktura si komponentë të tjerë (p.sh. komponenti 1). Megjithatë, ai ka një rëndësi të veçantë pasi është një komponent i detyrueshëm që duhet të ekzistojë në çdo projekt. Drejtoria kryesore përmban kodin burimor të projektit dhe pikën hyrëse të programit të përdoruesit, që zakonisht quhet app_main. Si parazgjedhje, ekzekutimi i programit të përdoruesit fillon nga kjo pikë hyrëse. Komponenti kryesor gjithashtu ndryshon në atë që varet automatikisht nga të gjithë komponentët brenda shtegut të kërkimit. Prandaj, nuk ka nevojë të tregohen në mënyrë eksplicite varësitë duke përdorur direktivat REQUIRES ose PRIV_REQUIRES në CMakeLists.txt file.
Konfigurimi file Drejtoria kryesore e projektit përmban një konfigurim file i quajtur sdkconfig, i cili përmban parametrat e konfigurimit për të gjithë komponentët brenda projektit. sdkconfig file gjenerohet automatikisht nga sistemi i kompilimit dhe mund të modifikohet dhe rigjenerohet nga komanda idf.py menuconfig. Opsionet e konfigurimit të menusë e kanë origjinën kryesisht nga Kconfig.projbuild i projektit dhe Kconfig i komponentëve. Zhvilluesit e komponentëve në përgjithësi shtojnë artikuj konfigurimi në Kconfig për ta bërë komponentin fleksibël dhe të konfigurueshëm.
Ndërtimi i drejtorisë Si parazgjedhje, drejtoria e ndërtimit brenda projektit ruan ndërmjetësimin files dhe fi-
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 49
programe nal të ekzekutueshme të krijuara nga komanda e ndërtimit idf.py. Në përgjithësi, nuk është e nevojshme të qaseni drejtpërdrejt në përmbajtjen e drejtorisë së ndërtimit. ESP-IDF ofron komanda të paracaktuara për të bashkëvepruar me drejtorinë, si p.sh. përdorimi i komandës flash idf.py për të lokalizuar automatikisht binarin e përpiluar file dhe ndezeni atë në adresën e specifikuar të flashit, ose duke përdorur komandën idf.py fullclean për të pastruar të gjithë drejtorinë e ndërtimit.
Tabela e ndarjeve (partitions.csv) Çdo projekt kërkon një tabelë ndarjeje për të ndarë hapësirën e flashit dhe për të specifikuar madhësinë dhe adresën fillestare të programit të ekzekutueshëm dhe hapësirën e të dhënave të përdoruesit. Command idf.py flash ose programi i përmirësimit OTA do të ndezë firmuerin në adresën përkatëse sipas kësaj tabele. ESP-IDF ofron disa tabela të paracaktuara të ndarjeve në komponentët/partition_table, të tilla si partitions_singleapp.csv dhe partitions_two_ ota.csv, të cilat mund të zgjidhen në menuconfig.
Nëse tabela e parazgjedhur e ndarjeve të sistemit nuk mund të plotësojë kërkesat e projektit, një ndarje e personalizuar.csv mund të shtohet në drejtorinë e projektit dhe të zgjidhet në menuconfig.
4.3.3 Rregullat e paracaktuara të ndërtimit të sistemit të përpilimit
Rregullat për mbivendosjen e komponentëve me të njëjtin emër Gjatë procesit të kërkimit të komponentëve, sistemi i kompilimit ndjek një renditje specifike. Fillimisht kërkon komponentë të brendshëm të ESP-IDF, më pas kërkon komponentë të projektit të përdoruesit dhe në fund kërkon komponentë në EXTRA_COMPONENT_DIRS. Në rastet kur drejtoritë e shumta përmbajnë komponentë me të njëjtin emër, komponenti i gjetur në direktorinë e fundit do të anashkalojë çdo komponent të mëparshëm me të njëjtin emër. Ky rregull lejon personalizimin e komponentëve ESP-IDF brenda projektit të përdoruesit, duke mbajtur të paprekur kodin origjinal ESP-IDF.
Rregullat për përfshirjen e komponentëve të zakonshëm si parazgjedhje Siç u përmend në seksionin 4.3.2, komponentët duhet të specifikojnë në mënyrë eksplicite varësitë e tyre nga komponentët e tjerë në CMakeLists.txt. Megjithatë, komponentët e zakonshëm si freertos përfshihen automatikisht në sistemin e ndërtimit si parazgjedhje, edhe nëse marrëdhëniet e tyre të varësisë nuk janë të përcaktuara në mënyrë eksplicite në skriptin e përpilimit. Komponentët e zakonshëm të ESP-IDF përfshijnë freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv dhe cxx. Përdorimi i këtyre komponentëve të zakonshëm shmang punën e përsëritur kur shkruani CMakeLists.txt dhe e bën atë më konciz.
Rregullat për mbivendosjen e artikujve të konfigurimit Zhvilluesit mund të shtojnë parametra të paracaktuar të konfigurimit duke shtuar një konfigurim të paracaktuar file i quajtur sdkconfig.defaults të projektit. Për shembullample, duke shtuar CONFIG_LOG_
50 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
DEFAULT_LEVEL_NONE = y mund të konfigurojë ndërfaqen UART që të mos printojë të dhëna regjistri si parazgjedhje. Për më tepër, nëse parametra specifikë duhet të vendosen për një objektiv të caktuar, një konfigurim file me emrin sdkconfig.defaults.TARGET_NAME mund të shtohet, ku TARGET_NAME mund të jetë esp32s2, esp32c3, e kështu me radhë. Këto konfigurime files janë importuar në sdkconfig gjatë përpilimit, me konfigurimin e përgjithshëm të paracaktuar file sdkconfig.defaults po importohen së pari, e ndjekur nga konfigurimi specifik për objektivin file, të tilla si sdkconfig.defaults.esp32c3. Në rastet kur ka artikuj konfigurimi me të njëjtin emër, konfigurimi i fundit file do të kapërcejë të parën.
4.3.4 Hyrje në Skriptin e Përpilimit
Kur zhvilloni një projekt duke përdorur ESP-IDF, zhvilluesit jo vetëm që duhet të shkruajnë kodin burimor, por gjithashtu duhet të shkruajnë CMakeLists.txt për projektin dhe komponentët. CMakeLists.txt është një tekst file, i njohur gjithashtu si një skrip përpilimi, i cili përcakton një seri objektesh përpilimi, artikuj të konfigurimit të përpilimit dhe komanda për të udhëhequr procesin e përpilimit të kodit burimor. Sistemi i përpilimit të ESP-IDF v4.3.2 bazohet në CMake. Përveç mbështetjes së funksioneve dhe komandave amtare CMake, ai përcakton gjithashtu një seri funksionesh të personalizuara, duke e bërë shumë më të lehtë shkrimin e skripteve të përpilimit.
Skriptet e përpilimit në ESP-IDF përfshijnë kryesisht skriptin e përpilimit të projektit dhe skriptet e përpilimit të komponentëve. CMakeLists.txt në direktoriumin rrënjë të projektit quhet skript i përpilimit të projektit, i cili drejton procesin e përpilimit të të gjithë projektit. Një skrip themelor i përpilimit të projektit zakonisht përfshin tre rreshtat e mëposhtëm:
1. cmake_minimum_required(VERSIONI 3.5) 2. përfshijnë($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. projekt (myProject)
Midis tyre, cmake_minimum_required (VERSIONI 3.5) duhet të vendoset në rreshtin e parë, i cili përdoret për të treguar numrin minimal të versionit CMake të kërkuar nga projekti. Versionet më të reja të CMake në përgjithësi janë të pajtueshme me versionet e vjetra, kështu që rregulloni numrin e versionit në përputhje me rrethanat kur përdorni komanda më të reja CMake për të siguruar përputhshmëri.
përfshijnë ($ENV {IDF_PATH}/tools/cmake/project.cmake) importon artikuj të konfigurimit të paracaktuar dhe komanda të sistemit të përpilimit ESP-IDF, duke përfshirë rregullat e paracaktuara të ndërtimit të sistemit të përpilimit të përshkruar në seksionin 4.3.3. projekti (myProject) krijon vetë projektin dhe specifikon emrin e tij. Ky emër do të përdoret si binar përfundimtar i daljes file emri, p.sh., myProject.elf dhe myProject.bin.
Një projekt mund të ketë komponentë të shumtë, duke përfshirë komponentin kryesor. Drejtoria e nivelit të lartë të çdo komponenti përmban një CMakeLists.txt file, i cili quhet skript i kompilimit të komponentëve. Skriptet e kompilimit të komponentëve përdoren kryesisht për të specifikuar varësitë e komponentëve, parametrat e konfigurimit, kodin burimor files, dhe kreu i përfshirë files për
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 51
përpilimi. Me funksionin e personalizuar të ESP-IDF idf_component_register, kodi minimal i kërkuar për një skript përpilimi të komponentëve është si më poshtë:
1. idf_component_register(SRCS "src1.c"
2.
INCLUDE_DIRS "përfshi"
3.
KËRKON komponentin 1)
Parametri SRCS ofron një listë të burimeve files në komponent, të ndara me hapësira nëse ka shumë files. Parametri INCLUDE_DIRS ofron një listë të titullit publik file drejtoritë për komponentin, të cilat do të shtohen në rrugën e kërkimit të përfshirjes për komponentë të tjerë që varen nga komponenti aktual. Parametri REQUIRES identifikon varësitë e komponentit publik për komponentin aktual. Është e nevojshme që komponentët të deklarojnë në mënyrë eksplicite nga cilat komponentë varen, si p.sh. komponenti2 në varësi të komponentit1. Megjithatë, për komponentin kryesor, i cili varet nga të gjithë komponentët si parazgjedhje, parametri REQUIRES mund të hiqet.
Përveç kësaj, komandat amtare CMake mund të përdoren gjithashtu në skriptin e përpilimit. Për shembullample, përdorni komandën set për të vendosur variabla, të tilla si set(VARIABLE “VALUE”).
4.3.5 Hyrje në Komandat e Përbashkëta
ESP-IDF përdor CMake (mjet konfigurimi i projektit), Ninja (mjet për ndërtimin e projektit) dhe esptool (vegël flash) në procesin e përpilimit të kodit. Çdo mjet luan një rol të ndryshëm në procesin e përpilimit, ndërtimit dhe ndezjes, dhe gjithashtu mbështet komanda të ndryshme funksionimi. Për të lehtësuar funksionimin e përdoruesit, ESP-IDF shton një idf.py të unifikuar të pjesës së përparme që lejon që komandat e mësipërme të thirren shpejt.
Përpara se të përdorni idf.py, sigurohuni që:
· Variabli i mjedisit IDF_PATH i ESP-IDF është shtuar në terminalin aktual. · Drejtoria e ekzekutimit të komandës është direktoria rrënjësore e projektit, e cila përfshin
skripti i përpilimit të projektit CMakeLists.txt.
Komandat e zakonshme të idf.py janë si më poshtë:
· idf.py –help: shfaqja e një liste komandash dhe udhëzimet e përdorimit të tyre. · idf.py vendosur-objektiv : vendosja e kompilimit taidf.py fullcleanrget, e tillë
si zëvendësues me esp32c3. · idf.py menuconfig: nisja e menuconfig, një konfigurim grafik terminal
mjet, i cili mund të zgjedhë ose modifikojë opsionet e konfigurimit dhe rezultatet e konfigurimit ruhen në sdkconfig file. · Ndërtimi i idf.py: fillimi i përpilimit të kodit. E ndërmjetme files dhe programi përfundimtar i ekzekutueshëm i gjeneruar nga kompilimi do të ruhet në drejtorinë e ndërtimit të projektit si parazgjedhje. Procesi i përpilimit është në rritje, që do të thotë se nëse vetëm një burim file është modifikuar, vetëm e modifikuar file do të përpilohet herën tjetër.
52 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
· idf.py pastër: pastrimi i ndërmjetëm files të krijuara nga përpilimi i projektit. I gjithë projekti do të detyrohet të përpilohet në përpilimin e ardhshëm. Vini re se konfigurimi CMake dhe modifikimet e konfigurimit të bëra nga menuconfig nuk do të fshihen gjatë pastrimit.
· idf.py fullclean: fshirja e të gjithë drejtorisë së ndërtimit, duke përfshirë të gjitha daljet e konfigurimit CMake files. Kur ndërtoni projektin përsëri, CMake do ta konfigurojë projektin nga e para. Ju lutemi vini re se kjo komandë do t'i fshijë të gjitha në mënyrë rekursive files në direktorinë e ndërtimit, prandaj përdorni me kujdes dhe konfigurimin e projektit file nuk do të fshihet.
· idf.py flash: ndezje binar i programit të ekzekutueshëm file gjeneruar nga ndërtimi në objektivin ESP32-C3. Opsionet -f dhe -b përdoren për të vendosur përkatësisht emrin e pajisjes së portës serike dhe shpejtësinë e zhurmës për ndezje. Nëse këto dy opsione nuk janë të specifikuara, porta serike do të zbulohet automatikisht dhe do të përdoret shpejtësia e paracaktuar e baud-it.
· Monitori idf.py: shfaqja e daljes së portës serike të objektivit ESP32-C3. Opsioni -p mund të përdoret për të specifikuar emrin e pajisjes së portës serike nga ana e hostit. Gjatë printimit të portit serik, shtypni kombinimin e tastit Ctrl+] për të dalë nga monitori.
Komandat e mësipërme gjithashtu mund të kombinohen sipas nevojës. Për shembullampLe, komanda idf.py build flash monitor do të kryejë përpilimin e kodit, ndezjen dhe hapjen e monitorit të portit serik me radhë.
Mund të vizitoni https://bookc3.espressif.com/build-system për të ditur më shumë rreth sistemit të përpilimit ESP-IDF.
4.4 Praktika: Përpilimi i ShampProgrami "Blink"
4.4.1 Sheshample Analiza
Ky seksion do të marrë programin Blink si një shembullample për të analizuar file Struktura dhe rregullat e kodimit të një projekti real në detaje. Programi Blink zbaton efektin e ndezjes LED dhe projekti ndodhet në drejtorinë p.shamples/get-started/link, i cili përmban një burim file, konfigurim files, dhe disa skripta përpilimi.
Projekti i dritës inteligjente i prezantuar në këtë libër bazohet në këtë ishample program. Funksionet do të shtohen gradualisht në kapitujt e mëvonshëm për ta përfunduar përfundimisht.
Kodi burimor Për të demonstruar të gjithë procesin e zhvillimit, programi Blink është kopjuar në esp32c3-iot-projects/device firmware/1 blink.
Struktura e drejtorisë së projektit blink files është paraqitur në figurën 4.15.
Projekti blink përmban vetëm një direktori kryesore, e cila është një komponent i veçantë që
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 53
Figura 4.15. File struktura e drejtorisë së projektit blink
duhet të përfshihet siç përshkruhet në seksionin 4.3.2. Drejtoria kryesore përdoret kryesisht për të ruajtur zbatimin e funksionit app_main(), i cili është pika hyrëse në programin e përdoruesit. Projekti blink nuk përfshin direktorinë e komponentëve, sepse ky ishampduhet të përdorë vetëm komponentët që vijnë me ESP-IDF dhe nuk kërkon komponentë shtesë. CMakeLists.txt i përfshirë në projektin blink përdoret për të udhëhequr procesin e përpilimit, ndërsa Kconfig.projbuild përdoret për të shtuar artikujt e konfigurimit për këtë ishample program në menuconfig. Të tjera të panevojshme files nuk do të ndikojë në përpilimin e kodit, kështu që ato nuk do të diskutohen këtu. Një hyrje e detajuar në projektin blink files është si më poshtë.
1. /*blink.c përfshin kokën e mëposhtme files*/
2. #përfshi
//Titulli i bibliotekës standarde C file
3. #include "freertos/freeRTOS.h" //Titulli kryesor FreeRTOS file
4. #include "freertos/task.h"
//Titulli i detyrës FreeRTOS file
5. #include "sdkconfig.h"
//Titulli i konfigurimit file gjeneruar nga kconfig
6. #include "driver/gpio.h"
//Titulli i drejtuesit të GPIO file
Burimi file blink.c përmban një seri kokash fileqë korrespondon me deklarimin e funksionit
tions. ESP-IDF në përgjithësi ndjek rendin e përfshirjes së kokës standarde të bibliotekës files, FreeR-
TOS header files, kreu i drejtuesit files, titulli i komponentit tjetër files, dhe kokën e projektit files.
Rendi në cilin titull files janë përfshirë mund të ndikojnë në rezultatin përfundimtar të përpilimit, kështu që përpiquni ta bëni
ndiqni rregullat e paracaktuara. Duhet të theksohet se sdkconfig.h gjenerohet automatikisht
nga kconfig dhe mund të konfigurohet vetëm përmes komandës idf.py menuconfig.
Modifikimi i drejtpërdrejtë i këtij titulli file do të mbishkruhet.
1. /*Ju mund të zgjidhni GPIO që korrespondon me LED në menuconfig idf.py dhe rezultati i modifikimit të menuconfig është se vlera e CONFIG_BLINK
_GPIO do të ndryshohet. Ju gjithashtu mund të modifikoni drejtpërdrejt përkufizimin makro
këtu dhe ndryshoni CONFIG_BLINK_GPIO në një vlerë fikse.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. e pavlefshme app_main (i pavlefshme)
4. {
5.
/*Konfiguro IO si funksionin e paracaktuar të GPIO, aktivizo modalitetin e tërheqjes dhe
6.
çaktivizoni mënyrat e hyrjes dhe daljes*/
7.
gpio_reset_pin (BLINK_GPIO);
54 ESP32-C3 Aventurë me valë: Një udhëzues gjithëpërfshirës për IoT
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Cakto GPIO në modalitetin e daljes*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); ndërsa (1) {
/*Print log*/ printf(“Fikja e LEDn”); /*Fike LED (niveli i ulët i daljes)*/ gpio_set_level(BLINK_GPIO, 0); /*Vonesë (1000 ms)*/ vTaskDelay (1000 / portTICK_PERIOD_MS); printf ("Ndezja e LEDn"); /*Ndiz LED (niveli i lartë i daljes)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay (1000 / portTICK_PERIOD_MS); }
Funksioni app_main() në Blink exampprogrami le shërben si pikë hyrëse për programet e përdoruesve. Është një funksion i thjeshtë pa parametra dhe pa vlerë kthimi. Ky funksion thirret pasi sistemi të ketë përfunduar inicializimin, i cili përfshin detyra të tilla si inicializimi i portës serike të regjistrit, konfigurimi i bërthamës së vetme/dyfishtë dhe konfigurimi i vëzhguesit.
Funksioni app_main() funksionon në kontekstin e një detyre të quajtur main. Madhësia e stivës dhe përparësia e kësaj detyre mund të rregullohen në menuconfig Componentconfig Common ESP.
Për detyra të thjeshta si ndezja e një LED, i gjithë kodi i nevojshëm mund të zbatohet drejtpërdrejt në funksionin app_main(). Kjo zakonisht përfshin inicializimin e GPIO-s që korrespondon me LED-in dhe përdorimin e një qarku while(1) për të ndezur dhe fikur LED. Përndryshe, mund të përdorni FreeRTOS API për të krijuar një detyrë të re që trajton ndezjen e LED. Pasi të krijohet me sukses detyra e re, mund të dilni nga funksioni app_main().
Përmbajtja e main/CMakeLists.txt file, e cila drejton procesin e përpilimit për komponentin kryesor, është si më poshtë:
1. idf_component_register(SRCS "blink.c" INCLUDE_DIRS "." )
Midis tyre, main/CMakeLists.txt thërret vetëm një funksion të sistemit të përpilimit, që është idf_component_register. Ngjashëm me CMakeLists.txt për shumicën e komponentëve të tjerë, blink.c shtohet në SRCS dhe burimi files të shtuara në SRCS do të përpilohen. Në të njëjtën kohë, “.”, e cila përfaqëson shtegun ku ndodhet CMakeLists.txt, duhet të shtohet në INCLUDE_DIRS si drejtoritë e kërkimit për kokën files. Përmbajtja e CMakeLists.txt është si më poshtë:
1. #Specify v3.5 si versioni më i vjetër CMake i mbështetur nga projekti aktual 2. #Versionet më të ulëta se v3.5 duhet të përmirësohen përpara se të vazhdojë përpilimi 3. cmake_minimum_required(VERSION 3.5) 4. #Përfshi konfigurimin e paracaktuar CMake të ESP -Sistemi i përpilimit të IDF
Kapitulli 4. Ngritja e Mjedisit Zhvillimor 55
5. përfshini($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Krijoni një projekt me emrin "blink" 7. projekt (Projekti im)
Midis tyre, CMakeLists.txt në direktorinë rrënjë përfshin kryesisht $ENV{IDF_ PATH}/tools/cmake/project.cmake, që është konfigurimi kryesor i CMake file siguruar nga ESP-IDF. Përdoret për të kon
Dokumentet / Burimet
![]() |
Sistemet Espressif ESP32-C3 Wireless Adventure [pdfUdhëzuesi i përdoruesit ESP32-C3 Aventurë me valë, ESP32-C3, Aventurë me valë, Aventurë |