ESP32-C3 bezvadu piedzīvojums
ESP32-C3 bezvadu piedzīvojums
Visaptveroša IoT rokasgrāmata
Espressif Systems 12. gada 2023. jūnijs
Specifikācijas
- Produkts: ESP32-C3 Wireless Adventure
- Ražotājs: Espressif Systems
- Datums: 12. gada 2023. jūnijs
Produkta lietošanas instrukcijas
Sagatavošana
Pirms ESP32-C3 Wireless Adventure lietošanas pārliecinieties, vai esat
pārzina IoT jēdzienus un arhitektūru. Tas palīdzēs
jūs saprotat, kā ierīce iekļaujas plašākā IoT ekosistēmā
un tā potenciālie pielietojumi viedajās mājās.
IoT projektu ievads un prakse
Šajā sadaļā jūs uzzināsit par tipiskiem IoT projektiem,
tostarp pamata moduļi parastajām IoT ierīcēm, pamata moduļi
klientu lietojumprogrammas un izplatītas IoT mākoņa platformas. Šis būs
sniegt jums pamatu izpratnei un jūsu izveidei
savus IoT projektus.
Prakse: Smart Light Project
Šajā prakses projektā jūs uzzināsiet, kā izveidot viedo
gaismas, izmantojot ESP32-C3 Wireless Adventure. Projekta struktūra,
funkcijas, aparatūras sagatavošana un izstrādes process
sīki izskaidrots.
Projekta struktūra
Projekts sastāv no vairākām sastāvdaļām, tostarp
ESP32-C3 Wireless Adventure, gaismas diodes, sensori un mākonis
aizmugure.
Projekta funkcijas
Viedais gaismas projekts ļauj kontrolēt spilgtumu un
gaismas diožu krāsu attālināti, izmantojot mobilo lietotni vai web
saskarne.
Aparatūras sagatavošana
Lai sagatavotos projektam, jums būs jāsavāc
nepieciešamos aparatūras komponentus, piemēram, ESP32-C3 Wireless
Piedzīvojumu dēlis, gaismas diodes, rezistori un barošanas avots.
Izstrādes process
Izstrādes process ietver izstrādes iestatīšanu
vide, rakstot kodu, lai vadītu gaismas diodes, izveidotu savienojumu ar
mākoņa aizmugursistēma un viedā funkcionalitātes pārbaude
gaisma.
Ievads ESP RainMaker
ESP RainMaker ir spēcīgs ietvars IoT izstrādei
ierīces. Šajā sadaļā jūs uzzināsit, kas ir ESP RainMaker un
kā to var īstenot savos projektos.
Kas ir ESP RainMaker?
ESP RainMaker ir uz mākoņiem balstīta platforma, kas nodrošina kopumu
rīki un pakalpojumi IoT ierīču veidošanai un pārvaldībai.
ESP RainMaker ieviešana
Šajā sadaļā ir izskaidroti dažādie komponenti
ieviešot ESP RainMaker, tostarp prasību pieprasīšanas pakalpojumu,
RainMaker aģents, mākoņa aizmugursistēma un RainMaker klients.
Prakse: galvenie punkti izstrādei ar ESP RainMaker
Šajā prakses sadaļā jūs uzzināsit par galvenajiem punktiem
ņemiet vērā, izstrādājot ar ESP RainMaker. Tas ietver ierīci
pretenziju iesniegšana, datu sinhronizācija un lietotāju pārvaldība.
ESP RainMaker funkcijas
ESP RainMaker piedāvā dažādas funkcijas lietotāju pārvaldībai, beigas
lietotājiem un administratoriem. Šīs funkcijas ļauj ērti izmantot ierīci
iestatīšana, tālvadības pults un uzraudzība.
Attīstības vides iestatīšana
Šajā sadaļā ir sniegts pārskatsview ESP-IDF (Espressif IoT
attīstības ietvars), kas ir oficiālā attīstības sistēma
ierīcēm, kuru pamatā ir ESP32. Tas izskaidro dažādas versijas
ESP-IDF un izstrādes vides iestatīšana.
Aparatūras un draiveru izstrāde
Smart Light produktu aparatūras dizains, pamatojoties uz ESP32-C3
Šajā sadaļā galvenā uzmanība ir pievērsta viedās gaismas aparatūras dizainam
produkti, kuru pamatā ir ESP32-C3 Wireless Adventure. Tas aptver
viedo gaismas produktu īpašības un sastāvs, kā arī
ESP32-C3 pamatsistēmas aparatūras dizains.
Smart Light produktu īpašības un sastāvs
Šajā apakšnodaļā ir izskaidrotas funkcijas un komponenti, kas tiek izgatavoti
viedie gaismas produkti. Tajā aplūkotas dažādas funkcijas
un dizaina apsvērumi viedo apgaismojuma izveidei.
ESP32-C3 pamatsistēmas aparatūras dizains
ESP32-C3 pamatsistēmas aparatūras dizains ietver barošanu
barošana, ieslēgšanas secība, sistēmas atiestatīšana, SPI zibspuldze, pulksteņa avots,
un RF un antenas apsvērumi. Šī apakšnodaļa paredz
detalizētu informāciju par šiem aspektiem.
FAQ
J: Kas ir ESP RainMaker?
A: ESP RainMaker ir mākoņa platforma, kas nodrošina rīkus
un pakalpojumi IoT ierīču izveidei un pārvaldībai. Tas vienkāršo
izstrādes procesu un ļauj ērti iestatīt ierīci, izmantojot tālvadības pulti
kontrole un uzraudzība.
J: Kā es varu iestatīt izstrādes vidi
ESP32-C3?
A: Lai iestatītu ESP32-C3 izstrādes vidi, jums ir nepieciešams
instalēt ESP-IDF (Espressif IoT Development Framework) un
konfigurējiet to saskaņā ar sniegtajām instrukcijām. ESP-IDF ir
oficiālā izstrādes sistēma ierīcēm, kuru pamatā ir ESP32.
J: Kādas ir ESP RainMaker funkcijas?
A: ESP RainMaker piedāvā dažādas funkcijas, tostarp lietotāju
pārvaldība, galalietotāja līdzekļi un administratora līdzekļi. Lietotāju pārvaldība
ļauj viegli pieprasīt ierīces pretenzijas un sinhronizēt datus. Galalietotājs
funkcijas ļauj attālināti vadīt ierīces, izmantojot mobilo lietotni vai
web saskarne. Administratora funkcijas nodrošina rīkus ierīces uzraudzībai
un vadība.
ESP32-C3 bezvadu piedzīvojums
Visaptveroša IoT rokasgrāmata
Espressif Systems 12. gada 2023. jūnijs
Saturs
I Sagatavošana
1
1 Ievads IoT
3
1.1. IoT arhitektūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. IoT lietojumprogramma viedās mājās . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 IoT projektu ievads un prakse
9
2.1 Ievads tipiskos IoT projektos . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1. Pamata moduļi parastajām IoT ierīcēm . . . . . . . . . . . . . . . . . 9
2.1.2. Klientu lietojumprogrammu pamata moduļi . . . . . . . . . . . . . . . . . . . 10
2.1.3. Ievads parastajās IoT mākoņu platformās . . . . . . . . . . . . . . 11
2.2. Prakse: viedās gaismas projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1. Projekta struktūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2. Projekta funkcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3. Aparatūras sagatavošana . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4. Izstrādes process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Ievads ESP RainMaker
19
3.1 Kas ir ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2. ESP RainMaker ieviešana . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1. Pieprasīšanas pakalpojums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 RainMaker aģents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3. Mākoņa aizmugursistēma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 RainMaker klients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3. Prakse: galvenie punkti izstrādei ar ESP RainMaker . . . . . . . . . . . . 25
3.4 ESP RainMaker funkcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Lietotāju pārvaldība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2. Galalietotāja līdzekļi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Administrēšanas līdzekļi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Attīstības vides iestatīšana
31
4.1 ESP-IDF Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 ESP-IDF versijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2. ESP-IDF Git darbplūsma . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3. Piemērotas versijas izvēle . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4. Vairākview no ESP-IDF SDK direktorija . . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF izstrādes vides iestatīšana . . . . . . . . . . . . . . . . . 38 4.2.1 ESP-IDF izstrādes vides iestatīšana operētājsistēmā Linux . . . . . . . . 38 4.2.2 ESP-IDF izstrādes vides iestatīšana operētājsistēmā Windows . . . . . . 40 4.2.3 ESP-IDF izstrādes vides iestatīšana operētājsistēmā Mac . . . . . . . . . 45 4.2.4 VS koda instalēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5. Ievads trešo pušu izstrādes vidēs . . . . . . . . 46 4.3 ESP-IDF kompilācijas sistēma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1. Kompilācijas sistēmas pamatjēdzieni . . . . . . . . . . . . . . . . . . 47 4.3.2 Projekts File Struktūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3. Kompilācijas sistēmas noklusējuma izveides noteikumi . . . . . . . . . . . . . 50 4.3.4 Ievads kompilācijas skriptā . . . . . . . . . . . . . . . . . . 51 4.3.5 Ievads parastajās komandās . . . . . . . . . . . . . . . . . . . 52 4.4. Prakse: sastādīšana PiemampProgramma “Mirkšķināšana” . . . . . . . . . . . . . . . . . . 53 4.4.1. Piemample Analīze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Mirkšķināšanas programmas kompilēšana . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Mirkšķināšanas programmas mirgošana . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Mirkšķināšanas programmas seriālā porta žurnāla analīze . . . . . . . . . . . . . . 60 4.5 Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Aparatūras un draiveru izstrāde
65
5 Smart Light produktu aparatūras dizains, pamatojoties uz ESP32-C3
67
5.1. Smart Light produktu īpašības un sastāvs . . . . . . . . . . . . . . . 67
5.2 ESP32-C3 pamatsistēmas aparatūras dizains . . . . . . . . . . . . . . . . . . . 70
5.2.1 Barošanas avots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2. Ieslēgšanas secība un sistēmas atiestatīšana . . . . . . . . . . . . . . . . . . 74
5.2.3 SPI zibatmiņa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Pulksteņa avots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF un antena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Siksnas tapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO un PWM kontrolieris . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3. Prakse: viedās gaismas sistēmas izveide ar ESP32-C3 . . . . . . . . . . . . . 80
5.3.1 Moduļu atlase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2. PWM signālu GPIO konfigurēšana . . . . . . . . . . . . . . . . . . . . 82
5.3.3. Programmaparatūras lejupielāde un atkļūdošanas interfeiss . . . . . . . . . . . . 82
5.3.4. Vadlīnijas RF projektēšanai . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5. Vadlīnijas barošanas avota projektēšanai . . . . . . . . . . . . . . . . . . . 86 5.4 Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Vadītāja izstrāde
87
6.1 Draivera izstrādes process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 perifērijas lietojumprogrammas . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 LED draivera pamati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1. Krāsu telpas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 LED draiveris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 LED aptumšošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 Ievads PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 LED aptumšošanas draivera izstrāde . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1. Negaistošā krātuve (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM kontrolieris (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM programmēšana . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5. Prakse: draiveru pievienošana viedās gaismas projektam . . . . . . . . . . . . . . . . . 103
6.5.1 Pogas draiveris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2. LED aptumšošanas draiveris . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III Bezvadu sakari un kontrole
109
7 Wi-Fi konfigurācija un savienojums
111
7.1 Wi-Fi pamati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Ievads par Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2. IEEE 802.11 attīstība. . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Wi-Fi koncepcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Wi-Fi savienojums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Bluetooth pamati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Ievads Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Bluetooth koncepcijas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Bluetooth savienojums . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Wi-Fi tīkla konfigurācija . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Wi-Fi tīkla konfigurācijas rokasgrāmata . . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5. Citas metodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Wi-Fi programmēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Wi-Fi komponenti ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2. Vingrinājums: Wi-Fi savienojums . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3. Vingrinājums: viedais Wi-Fi savienojums . . . . . . . . . . . . . . . . . . . . . 145
7.5. Prakse: Wi-Fi konfigurēšana programmā Smart Light Project . . . . . . . . . . . . . . . 156 7.5.1 Wi-Fi savienojums programmā Smart Light Project . . . . . . . . . . . . . . . . . 156 7.5.2 Viedā Wi-Fi konfigurācija . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Vietējā vadība
159
8.1 Ievads vietējā kontrolē . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1. Vietējās kontroles izmantošana . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 Advantagvietējās kontroles es . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3. Vadāmo ierīču atklāšana, izmantojot viedtālruņus. . . . . . . . . . 161
8.1.4 Datu sakari starp viedtālruņiem un ierīcēm . . . . . . . . 162
8.2. Kopējās lokālās noteikšanas metodes . . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1. Apraide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2. Multiraide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3. Apraides un multiraides salīdzinājums . . . . . . . . . . . . . . 176
8.2.4 Multiraides lietojumprogrammu protokols mDNS vietējai atklāšanai . . . . . . . . 176
8.3. Kopējie sakaru protokoli vietējiem datiem . . . . . . . . . . . . . . . 179
8.3.1. Pārraides kontroles protokols (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 Hiperteksta pārsūtīšanas protokols (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3. Lietotājs Datagram protokols (UDP) . . . . . . . . . . . . . . . . . . . . . . 189
8.3.4. Ierobežotās lietojumprogrammas protokols (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Bluetooth protokols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6. Datu komunikācijas protokolu kopsavilkums . . . . . . . . . . . . . . . 203
8.4. Datu drošības garantija. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1. Ievads par transporta slāņa drošību (TLS) . . . . . . . . . . . . . 207
8.4.2 Ievads Datagram Transport Layer Security (DTLS) . . . . . . . 213
8.5. Prakse: vietējā vadība viedās gaismas projektā . . . . . . . . . . . . . . . . . . 217
8.5.1 Uz Wi-Fi balstīta vietējā vadības servera izveide . . . . . . . . . . . . . . . 217
8.5.2. Vietējās vadības funkcionalitātes pārbaude, izmantojot skriptus. . . . . . . . . . . 221
8.5.3 Uz Bluetooth balstīta vietējā vadības servera izveide . . . . . . . . . . . . 222
8.6. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Mākoņu vadība
225
9.1 Ievads tālvadības pultī . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2. Mākoņdatu sakaru protokoli . . . . . . . . . . . . . . . . . . . . . . 226
9.2.1. MQTT ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2. MQTT principi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3. MQTT ziņojuma formāts . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4. Protokolu salīdzinājums . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 MQTT Broker iestatīšana operētājsistēmās Linux un Windows . . . . . . . . . . . . 233 9.2.6 MQTT klienta iestatīšana, pamatojoties uz ESP-IDF . . . . . . . . . . . . . . . . 235 9.3. MQTT datu drošības nodrošināšana . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1. Sertifikātu nozīme un funkcijas . . . . . . . . . . . . . . . . . . . 237 9.3.2. Sertifikātu lokāla ģenerēšana . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 MQTT Broker konfigurēšana . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT klienta konfigurēšana . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4. Prakse: tālvadības pults, izmantojot ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker pamati . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Mezglu un mākoņa aizmugursistēmas sakaru protokols . . . . . . . . . . . 244 9.4.3. Saziņa starp klientu un mākoņa aizmugursistēmu . . . . . . . . . . . 249 9.4.4 Lietotāju lomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Pamatpakalpojumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Piemample . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 Lietotne RainMaker un trešo pušu integrācija . . . . . . . . . . . . . . . 262 9.5 Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Viedtālruņu lietotņu izstrāde
269
10.1. Ievads viedtālruņu lietotņu izstrādē . . . . . . . . . . . . . . . . . . 269
10.1.1 Beigāsview viedtālruņu lietotņu izstrāde. . . . . . . . . . . . . . . 270
10.1.2 Android projekta struktūra . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 iOS projekta struktūra . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Android darbības dzīves cikls . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 iOS dzīves cikls ViewKontrolieris . . . . . . . . . . . . . . . . . . . . . . 273
10.2 Jauna viedtālruņa lietotnes projekta izveide . . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Sagatavošanās Android izstrādei . . . . . . . . . . . . . . . . . . . 275
10.2.2 Jauna Android projekta izveide . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3. MyRainmaker atkarību pievienošana . . . . . . . . . . . . . . . . . 276
10.2.4 Atļaujas pieprasījums operētājsistēmā Android . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 Sagatavošanās iOS izstrādei . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Jauna iOS projekta izveide . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7. MyRainmaker atkarību pievienošana . . . . . . . . . . . . . . . . . 279
10.2.8 Atļaujas pieprasījums operētājsistēmā iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3. Lietotnes funkcionālo prasību analīze . . . . . . . . . . . . . . . . . . 281
10.3.1. Projekta funkcionālo prasību analīze . . . . . . . . . . . . 282
10.3.2. Lietotāju pārvaldības prasību analīze . . . . . . . . . . . . . . . 282 10.3.3. Ierīču nodrošināšanas un saistošo prasību analīze . . . . . . . 283 10.3.4. Tālvadības prasību analīze . . . . . . . . . . . . . . . . 283 10.3.5. Plānošanas prasību analīze . . . . . . . . . . . . . . . . . . . 284 10.3.6. Lietotāju centra prasību analīze . . . . . . . . . . . . . . . . . . 285 10.4. Lietotāju pārvaldības attīstība . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Ievads RainMaker API . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Saziņas uzsākšana, izmantojot viedtālruni . . . . . . . . . . . . . . . . 286 10.4.3 Konta reģistrācija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Pieteikšanās kontā . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5. Ierīču nodrošināšanas izstrāde . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Ierīču skenēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Ierīču pievienošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Slepeno atslēgu ģenerēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Mezgla ID iegūšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5. Nodrošināšanas ierīces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6. Ierīču vadības izstrāde . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1. Ierīču saistīšana ar mākoņa kontiem . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Ierīču saraksta iegūšana . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Ierīces statusa iegūšana . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Ierīces statusa maiņa . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7. Plānošanas un lietotāju centra izstrāde . . . . . . . . . . . . . . . . . . . 313 10.7.1. Plānošanas funkcijas ieviešana . . . . . . . . . . . . . . . . . . . . 313 10.7.2. Lietotāju centra ieviešana . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Vairāk mākoņa API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Programmaparatūras jaunināšana un versiju pārvaldība
321
11.1. Programmaparatūras jaunināšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Beigāsview nodalījumu tabulas . . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2. Programmaparatūras sāknēšanas process . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Beigāsview no OTA mehānisma. . . . . . . . . . . . . . . . . . . . . 326
11.2. Programmaparatūras versiju pārvaldība . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Programmaparatūras marķēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2. Atcelšana un atgriešanas novēršana . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3. Prakse: ēterā (OTA) Piemample . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1. Programmaparatūras jaunināšana, izmantojot vietējo resursdatoru. . . . . . . . . . . . . . . . . 332
11.3.2. Jauniniet programmaparatūru, izmantojot ESP RainMaker. . . . . . . . . . . . . . . 335
11.4. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Optimizācija un masveida ražošana
343
12 Enerģijas pārvaldība un mazjaudas optimizācija
345
12.1 ESP32-C3 barošanas pārvaldība . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Dinamiskā frekvences mērogošana . . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Enerģijas pārvaldības konfigurācija . . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 mazjaudas režīms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Modema miega režīms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Viegls miega režīms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3. Dziļa miega režīms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Pašreizējais patēriņš dažādos enerģijas režīmos . . . . . . . . . . . . . 358
12.3. Enerģijas pārvaldība un mazjaudas atkļūdošana . . . . . . . . . . . . . . . . . 359
12.3.1 Žurnāla atkļūdošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO atkļūdošana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4. Prakse: jaudas pārvaldība viedās gaismas projektā . . . . . . . . . . . . . . . 363
12.4.1 Enerģijas pārvaldības funkcijas konfigurēšana . . . . . . . . . . . . . . . . . 364
12.4.2 Enerģijas pārvaldības bloķēšanas izmantošana . . . . . . . . . . . . . . . . . . . . . . 365
12.4.3. Enerģijas patēriņa pārbaude . . . . . . . . . . . . . . . . . . . . . . . 366
12.5. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Uzlaboti ierīces drošības līdzekļi
369
13.1 Beigāsview no IoT ierīču datu drošības . . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1. Kāpēc nodrošināt IoT ierīču datus? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2. IoT ierīču datu drošības pamatprasības . . . . . . . . . . . . 371
13.2. Datu integritātes aizsardzība . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1. Ievads integritātes verifikācijas metodē . . . . . . . . . . . . . . 372
13.2.2. Programmaparatūras datu integritātes pārbaude . . . . . . . . . . . . . . . . . . 373
13.2.3 Piemample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3. Datu konfidencialitātes aizsardzība . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1. Ievads datu šifrēšanā . . . . . . . . . . . . . . . . . . . . . . 374
13.3.2. Ievads Flash šifrēšanas shēmā . . . . . . . . . . . . . . . . . 376
13.3.3 Flash šifrēšanas atslēgas glabāšana . . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4. Flash šifrēšanas darba režīms . . . . . . . . . . . . . . . . . . . . 380
13.3.5 Flash šifrēšanas process . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6. Ievads NVS šifrēšanā . . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 PiemampFlash šifrēšanas un NVS šifrēšanas iespējas. . . . . . . . . . . 384
13.4. Datu likumības aizsardzība . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Ievads digitālajā parakstā . . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Beigāsview no Drošas sāknēšanas shēmas. . . . . . . . . . . . . . . . . . . . . 388
13.4.3. Ievads par programmatūras drošo sāknēšanu . . . . . . . . . . . . . . . . . . . 388 13.4.4 Ievads par aparatūras drošo sāknēšanu . . . . . . . . . . . . . . . . . . 390 13.4.5 Piemamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5. Prakse: drošības līdzekļi masveida ražošanā . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash šifrēšana un drošā sāknēšana . . . . . . . . . . . . . . . . . . . . . 396 13.5.2. Flash šifrēšanas un drošas sāknēšanas iespējošana, izmantojot pakešu Flash rīkus . . 397 13.5.3 Flash šifrēšanas un drošās sāknēšanas iespējošana programmā Smart Light Project . . . 398 13.6 Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Programmaparatūras ierakstīšana un testēšana masveida ražošanai
399
14.1. Programmaparatūras sadedzināšana masveida ražošanā . . . . . . . . . . . . . . . . . . . . . . 399
14.1.1. Datu nodalījumu definēšana . . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2. Programmaparatūras ierakstīšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2. Masveida ražošanas testēšana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3. Prakse: Masveida ražošanas dati viedās gaismas projektā . . . . . . . . . . . . . 404
14.4. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP ieskati: attālās uzraudzības platforma
405
15.1. Ievads ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2. Darba sākšana ar ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1. Darba sākšana ar ESP Insights projektā esp-insights . . . . . . 409
15.2.2. Darbojas Piemampesp-insights projektā . . . . . . . . . . . . . . . 411
15.2.3. Pamatinformācijas ziņošana . . . . . . . . . . . . . . . . . . . . . 411
15.2.4. Interešu žurnālu pielāgošana . . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5. Ziņošana par atsāknēšanas iemeslu . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6. Pielāgotas metrikas pārskati . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3. Prakse: ESP ieskatu izmantošana viedās gaismas projektā . . . . . . . . . . . . . . . 416
15.4. Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Ievads
ESP32-C3 ir viena kodola Wi-Fi un Bluetooth 5 (LE) mikrokontrolleris SoC, kura pamatā ir atvērtā koda RISC-V arhitektūra. Tas nodrošina pareizo jaudas, I/O iespēju un drošības līdzsvaru, tādējādi piedāvājot optimālu izmaksu ziņā efektīvu risinājumu pievienotajām ierīcēm. Lai parādītu dažādus ESP32-C3 saimes lietojumus, šī Espressif grāmata aizvedīs jūs interesantā ceļojumā pa AIoT, sākot no IoT projektu izstrādes un vides iestatīšanas pamatiem līdz praktiskiem ex.amples. Pirmajās četrās nodaļās ir runāts par IoT, ESP RainMaker un ESP-IDF. 5. un 6. nodaļa īsumā par aparatūras dizainu un draiveru izstrādi. Turpinot darbu, jūs atklāsit, kā konfigurēt savu projektu, izmantojot Wi-Fi tīklus un mobilās lietotnes. Visbeidzot, jūs iemācīsities optimizēt savu projektu un ieviest to masveida ražošanā.
Ja esat inženieris saistītās jomās, programmatūras arhitekts, skolotājs, students vai ikviens, kam ir interese par IoT, šī grāmata ir paredzēta jums.
Jūs varat lejupielādēt kodu example izmantots šajā grāmatā no Espressif vietnes GitHub. Lai iegūtu jaunāko informāciju par IoT attīstību, lūdzu, sekojiet mūsu oficiālajam kontam.
Priekšvārds
Informatīvā pasaule
Uzvarot interneta vilni, lietu internets (IoT) piedzīvoja grandiozu debiju, lai kļūtu par jauna veida infrastruktūru digitālajā ekonomikā. Lai tehnoloģiju tuvinātu sabiedrībai, Espressif Systems strādā pie vīzijas, ka izstrādātāji no visām dzīves jomām var izmantot IoT, lai atrisinātu dažas no mūsdienu aktuālākajām problēmām. “Visu lietu inteliģentā tīkla” pasaule ir tas, ko mēs sagaidām no nākotnes.
Mūsu pašu mikroshēmu izstrāde ir šīs vīzijas būtiska sastāvdaļa. Tam ir jābūt maratonam, kas prasa pastāvīgus sasniegumus pret tehnoloģiskām robežām. Sākot ar “Game Changer” ESP8266 un beidzot ar ESP32 sēriju, kurā ir integrēts Wi-Fi un Bluetoothr (LE) savienojums, kam seko ESP32-S3, kas aprīkots ar AI paātrinājumu, Espressif nebeidz pētīt un izstrādāt produktus AIoT risinājumiem. Izmantojot mūsu atvērtā pirmkoda programmatūru, piemēram, IoT izstrādes sistēmu ESP-IDF, Mesh Development Framework ESP-MDF un Device Connectivity Platform ESP RainMaker, mēs esam izveidojuši neatkarīgu sistēmu AIoT lietojumprogrammu veidošanai.
No 2022. gada jūlija uzņēmuma Espressif IoT mikroshēmojumu kumulatīvie sūtījumi ir pārsnieguši 800 miljonus, kas ir vadošais Wi-Fi MCU tirgū un nodrošina lielu skaitu savienoto ierīču visā pasaulē. Tiekšanās pēc izcilības padara katru Espressif produktu par lielu hitu tā augstā integrācijas līmeņa un izmaksu efektivitātes dēļ. ESP32-C3 izlaišana iezīmē nozīmīgu pavērsienu Espressif paša izstrādātajā tehnoloģijā. Tas ir viena kodola, 32 bitu, RISC-V bāzes MCU ar 400 KB SRAM, kas var darboties ar 160 MHz. Tajā ir integrēts 2.4 GHz Wi-Fi un Bluetooth 5 (LE) ar liela attāluma atbalstu. Tas nodrošina precīzu jaudas, I/O iespēju un drošības līdzsvaru, tādējādi piedāvājot optimālu izmaksu ziņā efektīvu risinājumu pievienotajām ierīcēm. Pamatojoties uz tik jaudīgu ESP32-C3, šī grāmata ir paredzēta, lai palīdzētu lasītājiem izprast ar IoT saistītas zināšanas ar detalizētu ilustrāciju un praktisku ex.amples.
Kāpēc mēs rakstījām šo grāmatu?
Espressif Systems ir vairāk nekā pusvadītāju uzņēmums. Tas ir arī IoT platformas uzņēmums, kas vienmēr tiecas pēc sasniegumiem un inovācijām tehnoloģiju jomā. Tajā pašā laikā Espressif ir ieguvis atvērtā koda avotu un koplietojis savu paša izstrādāto operētājsistēmu un programmatūras ietvaru, veidojot unikālu ekosistēmu. Inženieri, veidotāji un tehnoloģiju entuziasti aktīvi izstrādā jaunas programmatūras lietojumprogrammas, kuru pamatā ir Espressif produkti, brīvi sazinās un dalās pieredzē. Jūs vienmēr varat redzēt izstrādātāju aizraujošās idejas dažādās platformās, piemēram, YouTube un GitHub. Espressif produktu popularitāte ir veicinājusi arvien lielāku autoru skaitu, kuri ir sagatavojuši vairāk nekā 100 grāmatas, kuru pamatā ir Espressif mikroshēmojumi vairāk nekā desmit valodās, tostarp angļu, ķīniešu, vācu, franču un japāņu valodā.
Tas ir kopienas partneru atbalsts un uzticēšanās, kas veicina Espressif pastāvīgu inovāciju. “Mēs cenšamies padarīt mūsu mikroshēmas, operētājsistēmas, ietvarus, risinājumus, mākoņdatošanu, biznesa praksi, rīkus, dokumentāciju, rakstus, idejas u.c. arvien atbilstošākus atbildēm, kas cilvēkiem nepieciešamas mūsdienu dzīves aktuālākajās problēmās. Tas ir Espressif augstākās ambīcijas un morālais kompass. teica Teo Svī Anna, Espressif dibinātājs un izpilddirektors.
Espressif vērtē lasīšanu un idejas. Tā kā nepārtraukta IoT tehnoloģiju jaunināšana izvirza augstākas prasības inženieriem, kā mēs varam palīdzēt lielākam skaitam cilvēku ātri apgūt IoT mikroshēmas, operētājsistēmas, programmatūras ietvarus, lietojumprogrammu shēmas un mākoņpakalpojumu produktus? Kā saka, labāk iemācīt cilvēkam makšķerēt, nekā dot viņam zivis. Prāta vētras sesijā mums ienāca prātā, ka mēs varētu uzrakstīt grāmatu, lai sistemātiski sakārtotu galvenās zināšanas par IoT attīstību. Mēs to izdarījām, ātri sapulcējām vecāko inženieru grupu un apvienojām tehniskās komandas pieredzi iegultās programmēšanas, IoT aparatūras un programmatūras izstrādē, un tas viss veicināja šīs grāmatas izdošanu. Rakstīšanas procesā mēs centāmies būt objektīvi un godīgi, atslābuši kokonu un izmantojām kodolīgus izteicienus, lai pastāstītu par lietu interneta sarežģītību un šarmu. Mēs rūpīgi apkopojām biežāk uzdotos jautājumus, atsaucāmies uz kopienas atsauksmēm un ieteikumiem, lai skaidri atbildētu uz izstrādes procesā uzdotajiem jautājumiem un sniegtu praktiskas IoT attīstības vadlīnijas attiecīgajiem tehniķiem un lēmumu pieņēmējiem.
Grāmatas struktūra
Šajā grāmatā ir ņemta uz inženieri vērsta perspektīva un soli pa solim izskaidrotas nepieciešamās zināšanas IoT projektu izstrādei. Tas sastāv no četrām daļām:
· Sagatavošana (1. nodaļa): šī daļa iepazīstina ar IoT arhitektūru, tipisku IoT projektu ietvaru, ESP RainMakerr mākoņa platformu un izstrādes vidi ESP-IDF, lai liktu stabilu pamatu IoT projektu attīstībai.
· Aparatūras un draiveru izstrāde (5. nodaļa): Pamatojoties uz ESP6-C32 mikroshēmojumu, šajā daļā ir aprakstīta minimālā aparatūras sistēmas un draivera izstrāde, kā arī tiek ieviesta aptumšošanas, krāsu klasifikācijas un bezvadu sakaru vadība.
· Bezvadu sakari un vadība (7. nodaļa): šajā daļā ir izskaidrota viedā Wi-Fi konfigurācijas shēma, kuras pamatā ir ESP11-C32 mikroshēma, vietējie un mākoņa vadības protokoli, kā arī ierīču lokālā un tālvadība. Tas nodrošina arī shēmas viedtālruņu lietotņu izstrādei, programmaparatūras jaunināšanai un versiju pārvaldībai.
· Optimizācija un masveida ražošana (12.–15. nodaļa): šī daļa ir paredzēta uzlabotām IoT lietojumprogrammām, koncentrējoties uz produktu optimizāciju enerģijas pārvaldībā, mazjaudas optimizāciju un uzlabotu drošību. Tas arī iepazīstina ar programmaparatūras ierakstīšanu un testēšanu masveida ražošanā, kā arī to, kā diagnosticēt ierīces programmaparatūras darbības statusu un žurnālus, izmantojot attālās uzraudzības platformu ESP Insights.
Par avota kodu
Lasītāji var palaist bijušoample programmas šajā grāmatā, ievadot kodu manuāli vai izmantojot avota kodu, kas pievienots grāmatai. Mēs uzsveram teorijas un prakses apvienojumu, un tādējādi gandrīz katrā nodaļā izveidojam prakses sadaļu, kuras pamatā ir Smart Light projekts. Visi kodi ir atvērtā koda avots. Lasītāji ir laipni aicināti lejupielādēt avota kodu un apspriest to sadaļās, kas saistītas ar šo grāmatu vietnē GitHub un mūsu oficiālajā forumā esp32.com. Uz šīs grāmatas atvērtā pirmkoda kodu attiecas Apache licences 2.0 noteikumi.
Autora piezīme
Šo grāmatu oficiāli ražo Espressif Systems, un to ir uzrakstījuši uzņēmuma vecākie inženieri. Tas ir piemērots vadītājiem un pētniecības un attīstības personālam ar IoT saistītās nozarēs, saistītu specializāciju skolotājiem un studentiem, kā arī lietiskā interneta entuziastiem. Mēs ceram, ka šī grāmata var kalpot kā darba rokasgrāmata, atsauce un naktsgrāmata, lai būtu kā labs pasniedzējs un draugs.
Sastādot šo grāmatu, mēs atsaucāmies uz dažiem būtiskiem ekspertu, zinātnieku un tehniķu pētījumu rezultātiem gan mājās, gan ārvalstīs, un mēs darījām visu iespējamo, lai tos citētu saskaņā ar akadēmiskajām normām. Tomēr neizbēgami ir daži izlaidumi, tāpēc šeit vēlamies izteikt dziļu cieņu un pateicību visiem attiecīgajiem autoriem. Turklāt esam citējuši informāciju no interneta, tāpēc vēlamies pateikties oriģinālajiem autoriem un izdevējiem un atvainojamies, ka nevaram norādīt katras informācijas avotu.
Lai izdotu kvalitatīvu grāmatu, esam organizējuši iekšējo diskusiju kārtas un mācījušies no izmēģinājuma lasītāju un izdevēju redaktoru ieteikumiem un atsauksmēm. Šeit mēs vēlamies vēlreiz pateikties par jūsu palīdzību, kas veicināja šo veiksmīgo darbu.
Pēdējais, bet vissvarīgākais, paldies visiem Espressif, kas ir tik smagi strādājuši, lai radītu un popularizētu mūsu produktus.
IoT projektu izstrāde ietver plašu zināšanu loku. Ierobežojoties ar grāmatas garumu, kā arī autora līmeni un pieredzi, izlaidumi ir neizbēgami. Tāpēc lūdzam ekspertus un lasītājus kritizēt un izlabot mūsu kļūdas. Ja jums ir kādi ieteikumi par šo grāmatu, lūdzu, sazinieties ar mums, rakstot uz e-pastu book@espressif.com. Mēs ceram uz jūsu atsauksmēm.
Kā lietot šo grāmatu?
Šajā grāmatā iekļauto projektu kods ir atvērts. Varat to lejupielādēt no mūsu GitHub krātuves un dalīties ar savām domām un jautājumiem mūsu oficiālajā forumā. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forums: https://www.esp32.com/bookc3 Visā grāmatā būs izceltas daļas, kā parādīts tālāk.
Avota kods Šajā grāmatā mēs uzsveram teorijas un prakses apvienojumu, un tādējādi gandrīz katrā nodaļā ir izveidota prakses sadaļa par projektu Smart Light. Atbilstošās darbības un avota lapa tiks atzīmēta starp divām rindām, kas sākas ar tag Avota kods.
PIEZĪME/PADOMI Šeit jūs varat atrast svarīgu informāciju un atgādinājumus par veiksmīgu programmas atkļūdošanu. Tie tiks atzīmēti starp divām biezām līnijām, kas sākas ar tag PIEZĪME vai PADOMI.
Lielākā daļa komandu šajā grāmatā tiek izpildītas operētājsistēmā Linux, un to pamudina rakstzīme “$”. Ja komandas izpildei ir nepieciešamas superlietotāja privilēģijas, uzvedne tiks aizstāta ar “#”. Komandu uzvedne Mac sistēmās ir “%”, kā izmantots sadaļā 4.2.3. ESP-IDF instalēšana operētājsistēmā Mac.
Šīs grāmatas pamatteksts tiks iespiests hartā, savukārt kods examples, komponenti, funkcijas, mainīgie, kods file vārdi, kodu direktoriji un virknes būs Courier New.
Komandas vai teksti, kas jāievada lietotājam, un komandas, kuras var ievadīt, nospiežot taustiņu “Enter”, tiks drukātas treknrakstā Courier New. Žurnāli un kodu bloki tiks attēloti gaiši zilās kastēs.
Example:
Otrkārt, izmantojiet esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py, lai ģenerētu NVS bināro nodalījumu. file izstrādes resursdatorā ar šādu komandu:
$ python $IDF PATH/components/nvs flash/nvs partition generator/nvs partition gen.py – input mass prod.csv –output mass prod.bin –size NVS PARTITION SIZE
1. nodaļa
Ievads
uz
IoT
20. gadsimta beigās, pieaugot datortīkliem un komunikāciju tehnoloģijām, internets strauji integrējās cilvēku dzīvē. Interneta tehnoloģijām turpinot attīstīties, radās ideja par lietu internetu (IoT). Burtiski IoT nozīmē internetu, kurā lietas ir savienotas. Kamēr sākotnējais internets pārkāpj telpas un laika robežas un sašaurina attālumu starp “personu un personu”, IoT padara “lietas” par svarīgu dalībnieku, tuvinot “cilvēkus” un “lietas”. Paredzams, ka tuvākajā nākotnē IoT kļūs par informācijas nozares dzinējspēku.
Tātad, kas ir lietu internets?
Ir grūti precīzi definēt lietu internetu, jo tā nozīme un darbības joma pastāvīgi attīstās. 1995. gadā Bils Geitss savā grāmatā The Road Ahead pirmo reizi izvirzīja ideju par IoT. Vienkārši sakot, IoT ļauj objektiem apmainīties ar informāciju savā starpā, izmantojot internetu. Tās galvenais mērķis ir izveidot "visu internetu". Šī ir agrīna IoT interpretācija, kā arī nākotnes tehnoloģiju fantāzija. Trīsdesmit gadus vēlāk, strauji attīstoties ekonomikai un tehnoloģijām, fantāzijas kļūst par realitāti. No viedierīcēm, viedajām mājām, viedajām pilsētām, transportlīdzekļu interneta un valkājamām ierīcēm līdz “metaversam”, ko atbalsta IoT tehnoloģijas, pastāvīgi parādās jaunas koncepcijas. Šajā nodaļā mēs sāksim ar lietiskā interneta arhitektūras skaidrojumu un pēc tam iepazīstināsim ar visizplatītāko IoT lietojumprogrammu — viedo māju, lai palīdzētu jums iegūt skaidru izpratni par IoT.
1.1. IoT arhitektūra
Lietu internets ietver vairākas tehnoloģijas, kurām ir dažādas lietojuma vajadzības un formas dažādās nozarēs. Lai sakārtotu IoT struktūru, galvenās tehnoloģijas un lietojumu raksturlielumus, ir jāizveido vienota arhitektūra un standarta tehniskā sistēma. Šajā grāmatā IoT arhitektūra ir vienkārši sadalīta četros slāņos: uztveres un kontroles slānis, tīkla slānis, platformas slānis un lietojumprogrammu slānis.
Uztveres un kontroles slānis Tā kā IoT arhitektūras visvienkāršākais elements, uztveres un kontroles slānis ir IoT visaptverošas uztveres pamatā. Tās galvenā funkcija ir vākt, identificēt un kontrolēt informāciju. Tas sastāv no dažādām ierīcēm ar uztveres spēju,
3
identificēšanu, kontroli un izpildi, un ir atbildīgs par tādu datu izgūšanu un analīzi, kā materiālu īpašības, uzvedības tendences un ierīces statuss. Tādā veidā IoT atpazīst reālo fizisko pasauli. Turklāt slānis spēj kontrolēt arī ierīces statusu.
Visizplatītākās šī slāņa ierīces ir dažādi sensori, kuriem ir svarīga loma informācijas vākšanā un identificēšanā. Sensori ir kā cilvēka maņu orgāni, piemēram, gaismjutīgi sensori, kas ir līdzvērtīgi redzei, akustiskie sensori dzirdei, gāzes sensori ožai un spiediena un temperatūras sensori pieskārienam. Ar visiem šiem "maņu orgāniem" objekti kļūst "dzīvi" un spēj saprātīgi uztvert, atpazīt un manipulēt ar fizisko pasauli.
Tīkla slānis Tīkla slāņa galvenā funkcija ir pārsūtīt informāciju, tostarp datus, kas iegūti no uztveres un kontroles slāņa, uz noteiktu mērķi, kā arī komandas, kas izdotas no lietojumprogrammas slāņa atpakaļ uz uztveres un kontroles slāni. Tas kalpo kā svarīgs saziņas tilts, kas savieno dažādus IoT sistēmas slāņus. Lai izveidotu lietu interneta pamatmodeli, objektu integrēšanai tīklā ir jāveic divi soļi: piekļuve internetam un pārraide caur internetu.
Piekļuve internetam Internets nodrošina savstarpēju savienojumu starp cilvēku un cilvēku, bet nespēj iekļaut lietas lielajā ģimenē. Pirms IoT parādīšanās vairums lietu nebija "tīklam spējīgas". Pateicoties nepārtrauktai tehnoloģiju attīstībai, IoT izdodas savienot lietas ar internetu, tādējādi realizējot savstarpējo saistību starp “cilvēkiem un lietām” un “lietām un lietām”. Ir divi izplatīti interneta savienojuma izveides veidi: piekļuve vadu tīklam un piekļuve bezvadu tīklam.
Vadu tīkla piekļuves metodes ietver Ethernet, seriālo komunikāciju (piem., RS-232, RS-485) un USB, savukārt bezvadu tīkla piekļuve ir atkarīga no bezvadu sakaru, ko var vēl iedalīt maza darbības attāluma bezvadu sakaros un liela attāluma bezvadu sakaros.
Maza darbības attāluma bezvadu sakari ietver ZigBee, Bluetoothr, Wi-Fi, tuva darbības lauka sakarus (NFC) un radiofrekvences identifikāciju (RFID). Liela attāluma bezvadu sakari ietver uzlaboto mašīnu tipa saziņu (eMTC), LoRa, šaurjoslas lietu internetu (NB-IoT), 2G, 3G, 4G, 5G utt.
Pārraide caur internetu Dažādas interneta piekļuves metodes noved pie atbilstošas fiziskās datu pārraides saites. Nākamā lieta ir izlemt, kuru sakaru protokolu izmantot datu pārsūtīšanai. Salīdzinot ar interneta termināļiem, lielākajā daļā IoT termināļu pašlaik ir mazāk
4 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
pieejamie resursi, piemēram, apstrādes veiktspēja, krātuves jauda, tīkla ātrums utt., tāpēc ir nepieciešams izvēlēties sakaru protokolu, kas IoT lietojumprogrammās aizņem mazāk resursu. Mūsdienās plaši tiek izmantoti divi sakaru protokoli: ziņojumu rindas telemetrijas transports (MQTT) un ierobežotās lietojumprogrammas protokols (CoAP).
Platformas slānis Platformas slānis galvenokārt attiecas uz IoT mākoņu platformām. Kad visi IoT termināļi ir savienoti tīklā, to dati ir jāapkopo IoT mākoņa platformā, lai tos aprēķinātu un uzglabātu. Platformas slānis galvenokārt atbalsta IoT lietojumprogrammas, lai atvieglotu piekļuvi masveida ierīcēm un to pārvaldību. Tas savieno IoT termināļus ar mākoņa platformu, apkopo termināļa datus un izdod termināļiem komandas, lai ieviestu tālvadību. Kā starpposma pakalpojums aprīkojuma piešķiršanai nozares lietojumprogrammām, platformas slānim ir savienojoša loma visā IoT arhitektūrā, izmantojot abstraktu biznesa loģiku un standartizētu pamatdatu modeli, kas var ne tikai nodrošināt ātru piekļuvi ierīcēm, bet arī nodrošināt jaudīgas modulāras iespējas. lai apmierinātu dažādas vajadzības nozares pielietojuma scenārijos. Platformas slānis galvenokārt ietver funkcionālus moduļus, piemēram, piekļuvi ierīcei, ierīču pārvaldību, drošības pārvaldību, ziņojumu saziņu, darbības un apkopes uzraudzību un datu lietojumprogrammas.
· Ierīču piekļuve, realizējot savienojumu un komunikāciju starp termināļiem un IoT mākoņa platformām.
· Ierīču pārvaldība, tostarp tādas funkcijas kā ierīces izveide, ierīces uzturēšana, datu konvertēšana, datu sinhronizācija un ierīču izplatīšana.
· Drošības pārvaldība, nodrošinot IoT datu pārraides drošību no drošības autentifikācijas un sakaru drošības perspektīvas.
· Ziņojumu komunikācija, ietverot trīs pārraides virzienus, tas ir, terminālis sūta datus uz IoT mākoņa platformu, IoT mākoņa platforma sūta datus uz servera pusi vai citām IoT mākoņu platformām, bet servera puse attālināti kontrolē IoT ierīces.
· O&M uzraudzība, kas ietver uzraudzību un diagnostiku, programmaparatūras jaunināšanu, tiešsaistes atkļūdošanu, žurnālu pakalpojumus utt.
· Datu lietojumprogrammas, kas ietver datu uzglabāšanu, analīzi un lietošanu.
Lietojumprogrammas slānis Lietojumprogrammas slānis izmanto platformas slāņa datus, lai pārvaldītu lietojumprogrammu, filtrētu un apstrādātu tos ar tādiem rīkiem kā datu bāzes un analīzes programmatūra. Iegūtos datus var izmantot reālās pasaules IoT lietojumprogrammām, piemēram, viedajai veselības aprūpei, viedajai lauksaimniecībai, viedajām mājām un viedajām pilsētām.
Protams, IoT arhitektūru var iedalīt vairākos slāņos, taču neatkarīgi no tā, cik slāņu tā sastāv, pamatā esošais princips paliek nemainīgs. Mācīšanās
1. nodaļa. Ievads IoT 5
par IoT arhitektūru palīdz padziļināt mūsu izpratni par IoT tehnoloģijām un izveidot pilnībā funkcionējošus IoT projektus.
1.2. IoT lietojumprogramma viedās mājās
IoT ir iekļuvis visās dzīves jomās, un mums visciešāk saistītā IoT lietojumprogramma ir viedā māja. Daudzas tradicionālās ierīces tagad ir aprīkotas ar vienu vai vairākām IoT ierīcēm, un daudzas jaunuzceltas mājas jau no paša sākuma ir projektētas ar IoT tehnoloģijām. 1.1. attēlā parādītas dažas izplatītākās viedās mājas ierīces.
1.1.attēls. Izplatītākās viedās mājas ierīces Viedās mājas izstrādi var vienkārši iedalīt viedo produktu stage, ainas savstarpējais savienojums stage un inteliģentas stage, kā parādīts 1.2. attēlā.
1.2.attēls. Attīstība stage of smart home 6 ESP32-C3 Wireless Adventure: visaptverošs ceļvedis par IoT
Pirmā stage ir par viedajiem produktiem. Atšķirībā no tradicionālajām mājām viedās mājās IoT ierīces saņem signālus ar sensoriem un ir savienotas tīklā, izmantojot bezvadu sakaru tehnoloģijas, piemēram, Wi-Fi, Bluetooth LE un ZigBee. Lietotāji var vadīt viedos produktus dažādos veidos, piemēram, viedtālruņu lietotnes, balss palīgus, viedo skaļruņu vadību utt.tage koncentrējas uz ainu savstarpējo savienojumu. Šajā stage, izstrādātāji vairs neapsver iespēju kontrolēt vienu viedo produktu, bet gan savienot divus vai vairākus viedos produktus, automatizēt zināmā mērā un visbeidzot izveidot pielāgotu ainas režīmu. Piemēram,ampJa lietotājs nospiež jebkuru sižeta režīma pogu, gaismas, aizkari un gaisa kondicionieri tiks automātiski pielāgoti iepriekš iestatītajiem iestatījumiem. Protams, ir priekšnoteikums, ka saistīšanas loģika ir viegli iestatīta, ieskaitot sprūda nosacījumus un izpildes darbības. Iedomājieties, ka gaisa kondicionēšanas apkures režīms tiek aktivizēts, kad iekštelpu temperatūra nokrītas zem 10°C; ka pulksten 7 no rīta tiek atskaņota mūzika lietotāja pamodināšanai, tiek atvērti viedie aizkari un caur viedligzdu tiek iedarbināta rīsu plīts vai maizes tosteris; kad lietotājs pieceļas un beidz mazgāties, brokastis jau ir pasniegtas, lai nebūtu jākavē došanās uz darbu. Cik ērta ir kļuvusi mūsu dzīve! Trešais stage iet uz izlūkošanu stage. Piekļūstot vairāk viedo mājas ierīču, pieaugs arī ģenerēto datu veidi. Ar mākoņdatošanas, lielo datu un mākslīgā intelekta palīdzību tā ir it kā viedās mājās iestādītas “gudrākas smadzenes”, kas vairs neprasa biežas komandas no lietotāja. Viņi apkopo datus no iepriekšējām mijiedarbībām un apgūst lietotāja uzvedības modeļus un preferences, lai automatizētu darbības, tostarp sniegtu ieteikumus lēmumu pieņemšanai. Pašlaik lielākā daļa viedo māju atrodas starpsavienojuma vietātage. Palielinoties viedo produktu izplatības ātrumam un intelektam, tiek novērsti šķēršļi starp sakaru protokoliem. Nākotnē viedās mājas noteikti kļūs patiešām “gudras”, tāpat kā AI sistēma Jarvis in Iron Man, kas var ne tikai palīdzēt lietotājam kontrolēt dažādas ierīces, tikt galā ar ikdienas lietām, bet arī ar izcilu skaitļošanas jaudu un domāšanas spēju. Inteliģentajos stage, cilvēki saņems labākus pakalpojumus gan kvantitātes, gan kvalitātes ziņā.
1. nodaļa. Ievads IoT 7
8 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Nodaļa 2 IoT projektu ievads un prakse
1. nodaļā mēs iepazīstinājām ar IoT arhitektūru un uztveres un vadības slāņa, tīkla slāņa, platformas slāņa un lietojumprogrammu slāņa lomām un savstarpējām attiecībām, kā arī viedās mājas attīstību. Taču, tāpat kā mācoties gleznot, ar teorētiskajām zināšanām ir par maz. Mums ir “jāsamēro rokas”, lai īstenotu IoT projektus, lai patiesi apgūtu tehnoloģiju. Turklāt, kad projekts pāriet uz masveida ražošanu stage, ir jāņem vērā vairāk faktoru, piemēram, tīkla savienojums, konfigurācija, IoT mākoņa platformas mijiedarbība, programmaparatūras pārvaldība un atjauninājumi, masveida ražošanas pārvaldība un drošības konfigurācija. Tātad, kam mums jāpievērš uzmanība, izstrādājot pilnīgu IoT projektu? 1. nodaļā minējām, ka viedā māja ir viens no visizplatītākajiem IoT lietojumu scenārijiem, un viedās gaismas ir viena no visvienkāršākajām un praktiskākajām ierīcēm, ko var izmantot mājās, viesnīcās, sporta zālēs, slimnīcās utt. Šajā grāmatā mēs kā sākumpunktu izmantosim viedās gaismas projekta uzbūvi, izskaidrosim tā sastāvdaļas un funkcijas un sniegsim norādījumus par projekta izstrādi. Mēs ceram, ka no šī gadījuma varat izdarīt secinājumus, lai izveidotu vairāk IoT lietojumprogrammu.
2.1. Ievads par tipiskiem IoT projektiem
Izstrādes ziņā IoT projektu pamata funkcionālos moduļus var klasificēt IoT ierīču programmatūras un aparatūras izstrādē, klientu lietojumprogrammu izstrādē un IoT mākoņa platformas izstrādē. Ir svarīgi precizēt pamata funkcionālos moduļus, kas tiks sīkāk aprakstīti šajā sadaļā.
2.1.1. Pamata moduļi parastajām IoT ierīcēm
IoT ierīču programmatūras un aparatūras izstrāde ietver šādus pamata moduļus: Datu vākšana
Kā IoT arhitektūras apakšējais slānis, uztveres un vadības slāņa IoT ierīces savieno sensorus un ierīces, izmantojot to mikroshēmas un perifērijas ierīces, lai nodrošinātu datu apkopošanu un darbības kontroli.
9
Konta saistīšana un sākotnējā konfigurācija Lielākajai daļai IoT ierīču konta saistīšana un sākotnējā konfigurēšana tiek pabeigta vienā darbības procesā, piemēram,ample, savienojot ierīces ar lietotājiem, konfigurējot Wi-Fi tīklu.
Mijiedarbība ar IoT mākoņa platformām Lai uzraudzītu un vadītu IoT ierīces, tās ir arī jāsavieno ar IoT mākoņa platformām, lai, savstarpēji mijiedarbojoties, dotu komandas un ziņotu par statusu.
Ierīces vadība Savienojot ar IoT mākoņa platformām, ierīces var sazināties ar mākoni un tikt reģistrētas, piesaistītas vai kontrolētas. Lietotāji var pieprasīt produkta statusu un veikt citas darbības viedtālruņa lietotnē, izmantojot IoT mākoņa platformas vai vietējos sakaru protokolus.
Programmaparatūras jaunināšanas IoT ierīces var arī veikt programmaparatūras jaunināšanu, pamatojoties uz ražotāju vajadzībām. Saņemot mākoņa nosūtītās komandas, tiks realizēta programmaparatūras jaunināšana un versiju pārvaldība. Izmantojot šo programmaparatūras jaunināšanas līdzekli, varat nepārtraukti uzlabot IoT ierīču funkcijas, novērst defektus un uzlabot lietotāja pieredzi.
2.1.2. Klientu lietojumprogrammu pamata moduļi
Klientu lietojumprogrammas (piemēram, viedtālruņu lietotnes) galvenokārt ietver šādus pamata moduļus:
Kontu sistēma un autorizācija Tā atbalsta kontu un ierīču autorizāciju.
Ierīces vadība Viedtālruņu lietotnes parasti ir aprīkotas ar vadības funkcijām. Lietotāji var viegli izveidot savienojumu ar IoT ierīcēm un pārvaldīt tās jebkurā laikā un vietā, izmantojot viedtālruņa lietotnes. Reālās pasaules viedajā mājā ierīces pārsvarā tiek kontrolētas, izmantojot viedtālruņu lietotnes, kas ne tikai nodrošina viedu ierīču pārvaldību, bet arī ietaupa darbaspēka izmaksas. Tāpēc ierīces vadība ir obligāta klientu lietojumprogrammām, piemēram, ierīces funkciju atribūtu kontrolei, ainas kontrolei, plānošanai, tālvadības pultij, ierīču savienošanai utt. Viedās mājas lietotāji var arī pielāgot ainas atbilstoši personīgajām vajadzībām, kontrolējot apgaismojumu, sadzīves tehniku, ieeju. utt., lai padarītu mājas dzīvi ērtāku un ērtāku. Viņi var iestatīt gaisa kondicionēšanas laiku, izslēgt to attālināti, automātiski ieslēgt gaiteņa apgaismojumu, tiklīdz durvis tiek atslēgtas, vai pārslēgties uz “teātra” režīmu ar vienu pogu.
Paziņojumu klientu lietojumprogrammas atjaunina IoT ierīču reāllaika statusu un nosūta brīdinājumus, ja ierīces darbojas nepareizi.
10 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Pēcpārdošanas klientu apkalpošana Viedtālruņu lietotnes var nodrošināt produktu pēcpārdošanas pakalpojumus, lai savlaicīgi atrisinātu problēmas, kas saistītas ar IoT ierīču kļūmēm un tehniskajām darbībām.
Piedāvātās funkcijas Lai apmierinātu dažādu lietotāju vajadzības, var tikt pievienotas citas funkcijas, piemēram, kratīšana, NFC, GPS utt. GPS var palīdzēt iestatīt ainas darbību precizitāti atbilstoši atrašanās vietai un attālumam, savukārt funkcija Shake ļauj lietotājiem iestatīt komandas, kas jāizpilda konkrētai ierīcei vai ainai, kratot.
2.1.3. Ievads par izplatītākajām IoT mākoņu platformām
IoT mākoņa platforma ir visaptveroša platforma, kurā ir integrētas tādas funkcijas kā ierīču pārvaldība, datu drošības komunikācija un paziņojumu pārvaldība. Pēc mērķa grupas un pieejamības IoT mākoņu platformas var iedalīt publiskajās IoT mākoņu platformās (turpmāk tekstā “publiskais mākonis”) un privātajās IoT mākoņu platformās (turpmāk – privātais mākonis).
Publiskais mākonis parasti norāda uz uzņēmumiem vai privātpersonām paredzētām koplietojamām IoT mākoņu platformām, kuras pārvalda un uztur platformu nodrošinātāji un kuras tiek koplietotas, izmantojot internetu. Tas var būt bezmaksas vai lēts, un sniedz pakalpojumus visā atklātā publiskajā tīklā, piemēram, Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT utt. Publiskais mākonis kā atbalsta platforma var integrēt augšējos pakalpojumu sniedzējus un pakārtotajiem galalietotājiem, lai izveidotu jaunu vērtību ķēdi un ekosistēmu.
Privātais mākonis ir paredzēts tikai uzņēmuma lietošanai, tādējādi garantējot vislabāko kontroli pār datiem, drošību un pakalpojumu kvalitāti. Tā pakalpojumus un infrastruktūru atsevišķi uztur uzņēmumi, un arī atbalsta aparatūra un programmatūra ir paredzēta konkrētiem lietotājiem. Uzņēmumi var pielāgot mākoņpakalpojumus sava biznesa vajadzībām. Šobrīd daži viedo māju ražotāji jau ir ieguvuši privātas IoT mākoņu platformas un uz to bāzes izstrādājuši viedās mājas lietojumprogrammas.
Publiskajam mākonim un privātajam mākonim ir sava priekšrocībatages, kas tiks paskaidrots vēlāk.
Lai panāktu sakaru savienojamību, ir jāpabeidz vismaz iegultā izstrāde ierīces pusē, kā arī biznesa serveri, IoT mākoņa platformas un viedtālruņu lietotnes. Saskaroties ar tik milzīgu projektu, publiskais mākonis parasti nodrošina programmatūras izstrādes komplektus ierīces un viedtālruņu lietotnēm, lai paātrinātu procesu. Gan publiskais, gan privātais mākonis nodrošina pakalpojumus, tostarp piekļuvi ierīcei, ierīču pārvaldību, ierīces ēnu, kā arī darbību un apkopi.
Ierīču piekļuves IoT mākoņa platformām ir jānodrošina ne tikai saskarnes ierīču piekļuvei, izmantojot protokolus
2. nodaļa. IoT projektu ievads un prakse 11
piemēram, MQTT, CoAP, HTTPS un WebSocket, bet arī ierīces drošības autentifikācijas funkcija, lai bloķētu viltotas un nelegālas ierīces, efektīvi samazinot risku tikt apdraudētam. Šāda autentifikācija parasti atbalsta dažādus mehānismus, tāpēc, kad ierīces tiek ražotas sērijveidā, ir nepieciešams iepriekš piešķirt ierīces sertifikātu atbilstoši izvēlētajam autentifikācijas mehānismam un ierakstīt to ierīcēs.
Ierīču pārvaldība Ierīču pārvaldības funkcija, ko nodrošina IoT mākoņa platformas, var ne tikai palīdzēt ražotājiem reāllaikā pārraudzīt savu ierīču aktivizācijas statusu un tiešsaistes statusu, bet arī ļauj veikt tādas iespējas kā ierīču pievienošana/noņemšana, izgūšana, grupu pievienošana/dzēšana, programmaparatūras jaunināšana. un versiju pārvaldība.
Ierīču ēnas IoT mākoņa platformas var izveidot pastāvīgu virtuālo versiju (ierīces ēnu) katrai ierīcei, un ierīces ēnas statusu var sinhronizēt un iegūt viedtālruņa lietotnē vai citās ierīcēs, izmantojot interneta pārraides protokolus. Ierīces ēnojums saglabā katras ierīces jaunāko ziņoto statusu un paredzamo statusu, un pat tad, ja ierīce ir bezsaistē, tā joprojām var iegūt statusu, izsaucot API. Ierīces ēna nodrošina vienmēr ieslēgtas API, kas atvieglo viedtālruņu lietotņu izveidi, kas mijiedarbojas ar ierīcēm.
Darbība un apkope O&M funkcija ietver trīs aspektus: · Statistiskās informācijas par IoT ierīcēm un paziņojumiem demonstrēšana. · Žurnāla pārvaldība ļauj izgūt informāciju par ierīces darbību, ziņojumu plūsmu uz augšu/uz leju un ziņojumu saturu. · Ierīces atkļūdošana atbalsta komandu piegādi, konfigurācijas atjaunināšanu un mijiedarbības pārbaudi starp IoT mākoņa platformām un ierīces ziņojumiem.
2.2. Prakse: viedās gaismas projekts
Pēc teorētiskā ievada katrā nodaļā jūs atradīsiet prakses sadaļu, kas saistīta ar Smart Light projektu, lai palīdzētu jums iegūt praktisku pieredzi. Projekts ir balstīts uz Espressif ESP32-C3 mikroshēmu un ESP RainMaker IoT mākoņa platformu, un tas aptver bezvadu moduļu aparatūru viedās gaismas produktos, iegulto programmatūru viedierīcēm, kuru pamatā ir ESP32C3, viedtālruņu lietotnes un ESP RainMaker mijiedarbību.
Avota kods Lai labāk mācītos un attīstītu pieredzi, šajā grāmatā minētajam projektam ir atvērts avots. Varat lejupielādēt avota kodu no mūsu GitHub krātuves vietnē https://github. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
2.2.1. Projekta struktūra
Smart Light projekts sastāv no trim daļām: i. Viedās gaismas ierīces, kuru pamatā ir ESP32-C3, kas ir atbildīgas par mijiedarbību ar IoT mākoņu platformām un LED l slēdža, spilgtuma un krāsu temperatūras kontroli.amp krelles. ii. Viedtālruņu lietotnes (tostarp planšetdatoru lietotnes, kas darbojas operētājsistēmās Android un iOS), kas ir atbildīgas par viedā apgaismojuma produktu tīkla konfigurāciju, kā arī to statusa vaicāšanu un kontroli.
iii. IoT mākoņa platforma, kuras pamatā ir ESP RainMaker. Vienkāršošanas labad šajā grāmatā mēs aplūkojam IoT mākoņa platformu un biznesa serveri kopumā. Sīkāka informācija par ESP RainMaker tiks sniegta 3. nodaļā.
Atbilstība starp Smart Light projekta struktūru un IoT arhitektūru ir parādīta 2.1. attēlā.
2.1.attēls. Viedās gaismas projekta struktūra
2.2.2. Projekta funkcijas
Sadalīts pēc struktūras, katras daļas funkcijas ir šādas. Viedās gaismas ierīces
· Tīkla konfigurācija un savienojums. · LED PWM vadība, piemēram, slēdzis, spilgtums, krāsu temperatūra utt. · Automatizācija vai ainas vadība, piemēram, laika slēdzis. · Flash šifrēšana un droša sāknēšana. · Programmaparatūras jaunināšana un versiju pārvaldība.
2. nodaļa. IoT projektu ievads un prakse 13
Viedtālruņu lietotnes · Tīkla konfigurācija un ierīces saistīšana. · Viedā gaismas produkta vadība, piemēram, slēdzis, spilgtums, krāsu temperatūra utt. · Automatizācija vai ainas iestatījumi, piemēram, laika slēdzis. · Vietējā/tālvadības pults. · Lietotāja reģistrācija, pieteikšanās utt.
ESP RainMaker IoT mākoņa platforma · IoT ierīces piekļuves iespējošana. · Viedtālruņu lietotnēm pieejamu ierīču darbības API nodrošināšana. · Programmaparatūras jaunināšana un versiju pārvaldība.
2.2.3. Aparatūras sagatavošana
Ja ir interese par projekta ieviešanu praksē, jums būs nepieciešama arī šāda aparatūra: viedās gaismas, viedtālruņi, Wi-Fi maršrutētāji un dators, kas atbilst izstrādes vides uzstādīšanas prasībām. Viedās gaismas
Viedās gaismas ir jauna veida spuldzes, kuru forma ir tāda pati kā parastajai kvēlspuldzei. Viedā gaisma sastāv no kondensatora pazeminātas barošanas avota, bezvadu moduļa (ar iebūvētu ESP32-C3), LED kontroliera un RGB LED matricas. Pievienojot strāvai, 15 V DC voltagIzvade pēc kondensatora samazināšanas, diodes taisnošanas un regulēšanas nodrošina enerģiju LED kontrollerim un LED matricai. LED kontrolleris var automātiski nosūtīt augstu un zemu līmeni noteiktos intervālos, pārslēdzot RGB LED matricu starp aizvērtu (gaismas ieslēgts) un atvērtu (gaismas izslēgts), lai tas varētu izstarot ciānu, dzeltenu, zaļu, violetu, zilu, sarkanu un balta gaisma. Bezvadu modulis ir atbildīgs par savienojuma izveidi ar Wi-Fi maršrutētāju, viedo gaismu statusa saņemšanu un ziņošanu par to, kā arī komandu nosūtīšanu, lai vadītu LED.
2.2.attēls. Simulēta vieda gaisma
Agrīnā attīstībā stage, jūs varat simulēt viedo gaismu, izmantojot ESP32-C3DevKitM-1 plati, kas savienota ar RGB LED lamp krelles (skat. 2.2. attēlu). Bet jums vajadzētu
14 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
ņemiet vērā, ka tas nav vienīgais veids, kā salikt viedo gaismu. Projekta aparatūras dizains šajā grāmatā satur tikai bezvadu moduli (ar iebūvētu ESP32-C3), bet ne pilnīgu viedās gaismas aparatūras dizainu. Turklāt Espressif ražo arī uz ESP32-C3 balstītu audio izstrādes plati ESP32C3-Lyra, lai kontrolētu gaismas ar audio. Plāksnei ir saskarnes mikrofoniem un skaļruņiem, un tā var vadīt LED lentes. To var izmantot īpaši zemu izmaksu, augstas veiktspējas audio raidītāju un ritma gaismas joslu izstrādei. 2.3. attēlā parādīta ESP32-C3Lyra plate, kas savienota ar 40 LED lampiņu joslu.
2.3.attēls. ESP32-C3-Lyra savienots ar 40 LED gaismas sloksni
Viedtālruņi (Android/iOS) Smart Light projekts ietver viedtālruņa lietotnes izstrādi viedās gaismas produktu iestatīšanai un vadīšanai.
Wi-Fi maršrutētāji Wi-Fi maršrutētāji pārveido vadu tīkla signālus un mobilā tīkla signālus bezvadu tīkla signālos, lai datori, viedtālruņi, planšetdatori un citas bezvadu ierīces varētu izveidot savienojumu ar tīklu. Piemēram,ampLai nodrošinātu Wi-Fi ierīču bezvadu tīklu, mājas platjoslas savienojums ir jāpievieno tikai Wi-Fi maršrutētājam. Galvenais protokola standarts, ko atbalsta Wi-Fi maršrutētāji, ir IEEE 802.11n ar vidējo TxRate 300 Mb/s vai maksimāli 600 Mb/s. Tie ir atpakaļ saderīgi ar IEEE 802.11b un IEEE 802.11g. Espressif ESP32-C3 mikroshēma atbalsta IEEE 802.11b/g/n, tāpēc varat izvēlēties vienas joslas (2.4 GHz) vai divu joslu (2.4 GHz un 5 GHz) Wi-Fi maršrutētāju.
Datora (Linux/macOS/Windows) izstrādes vide tiks iepazīstināta 4. nodaļā. 2. nodaļa. IoT projektu ievads un prakse 15
2.2.4. Izstrādes process
2.4.attēls. Smart Light projekta izstrādes soļi
Aparatūras dizains IoT ierīču aparatūras projektēšana ir būtiska IoT projektam. Pilnīgs viedās gaismas projekts ir paredzēts, lai ražotu alamp strādā zem elektrotīkla. Dažādi ražotāji ražo lamps dažādu stilu un draiveru tipiem, taču to bezvadu moduļiem parasti ir viena un tā pati funkcija. Lai vienkāršotu Smart Ligh projekta izstrādes procesu, šī grāmata aptver tikai bezvadu moduļu aparatūras dizainu un programmatūras izstrādi.
IoT mākoņa platformas konfigurācija Lai izmantotu IoT mākoņa platformas, aizmugursistēmā ir jākonfigurē projekti, piemēram, produktu izveide, ierīču izveide, ierīces rekvizītu iestatīšana utt.
Iegultās programmatūras izstrāde IoT ierīcēm Ieviesiet paredzētās funkcijas, izmantojot ESP-IDF, Espressif ierīces puses SDK, tostarp savienojumu ar IoT mākoņa platformām, LED draiveru izstrādi un programmaparatūras jaunināšanu.
Viedtālruņu lietotņu izstrāde Izstrādājiet viedtālruņu lietotnes Android un iOS sistēmām, lai realizētu lietotāju reģistrāciju un pieteikšanos, ierīces vadību un citas funkcijas.
IoT ierīču optimizācija Kad IoT ierīces funkciju pamata izstrāde ir pabeigta, varat pievērsties optimizācijas uzdevumiem, piemēram, jaudas optimizācijai.
Masveida ražošanas testēšana Veiciet masveida ražošanas testus saskaņā ar saistītajiem standartiem, piemēram, aprīkojuma darbības pārbaudi, novecošanas testu, RF testu utt.
Neskatoties uz iepriekš uzskaitītajām darbībām, viedās gaismas projekts ne vienmēr ir pakļauts šādai procedūrai, jo vienlaikus var veikt arī dažādus uzdevumus. Piemēram,ample, paralēli var izstrādāt iegulto programmatūru un viedtālruņu lietotnes. Dažas darbības var būt arī jāatkārto, piemēram, IoT ierīču optimizācija un masveida ražošanas testēšana.
16 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
2.3. Kopsavilkums
Šajā nodaļā mēs vispirms izskaidrojām IoT projekta pamatkomponentus un funkcionālos moduļus, pēc tam praksē ieviesām Smart Light gadījumu, atsaucoties uz tā struktūru, funkcijām, aparatūras sagatavošanu un izstrādes procesu. Lasītāji var izdarīt secinājumus no prakses un kļūt pārliecināti, ka nākotnē IoT projektus veiks ar minimālu kļūdu skaitu.
2. nodaļa. IoT projektu ievads un prakse 17
18 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
3. nodaļa
Ievads
uz
ESP
RainMaker
Lietu internets (IoT) piedāvā bezgalīgas iespējas mainīt cilvēku dzīvesveidu, tomēr IoT inženierijas attīstība ir izaicinājumu pilna. Izmantojot publiskos mākoņus, termināļu ražotāji var ieviest produktu funkcionalitāti, izmantojot šādus risinājumus:
Pamatojoties uz risinājumu sniedzēju mākoņu platformām. Tādā veidā termināļu ražotājiem atliek tikai izstrādāt produkta aparatūru, pēc tam savienot aparatūru ar mākoni, izmantojot nodrošināto sakaru moduli, un konfigurēt produkta funkcijas, ievērojot norādījumus. Šī ir efektīva pieeja, jo tā novērš nepieciešamību pēc servera puses un lietojumprogrammu puses izstrādes un darbības un uzturēšanas (O&M). Tas ļauj termināļu ražotājiem koncentrēties uz aparatūras dizainu, neapsverot mākoņa ieviešanu. Tomēr šādi risinājumi (piemēram, ierīces programmaparatūra un lietotne) parasti nav atvērtā pirmkoda, tāpēc produkta funkcijas ierobežos pakalpojumu sniedzēja mākoņa platforma, kuru nevar pielāgot. Tikmēr mākoņa platformai pieder arī lietotāja un ierīces dati.
Pamatojoties uz mākoņa produktiem Šajā risinājumā pēc aparatūras dizaina pabeigšanas termināļu ražotājiem ne tikai jāievieš mākoņa funkcijas, izmantojot vienu vai vairākus mākoņa produktus, ko nodrošina publiskais mākonis, bet arī jāsaista aparatūra ar mākoni. Piemēram,ample, lai izveidotu savienojumu ar Amazon Web Pakalpojumiem (AWS), termināļu ražotājiem ir jāizmanto AWS produkti, piemēram, Amazon API Gateway, AWS IoT Core un AWS Lambda, lai iespējotu ierīces piekļuvi, tālvadību, datu glabāšanu, lietotāju pārvaldību un citas pamatfunkcijas. Tas ne tikai liek termināļu ražotājiem elastīgi izmantot un konfigurēt mākoņa produktus ar padziļinātu izpratni un bagātīgu pieredzi, bet arī liek tiem ņemt vērā sākotnējās un vēlākās darbības būvniecības un uzturēšanas izmaksas.tages Tas rada lielus izaicinājumus uzņēmuma enerģijai un resursiem.
Salīdzinot ar publiskajiem mākoņiem, privātie mākoņi parasti tiek veidoti konkrētiem projektiem un produktiem. Privātajiem mākoņu izstrādātājiem tiek dota augstākā līmeņa brīvība protokolu izstrādē un biznesa loģikas ieviešanā. Termināļu ražotāji pēc vēlēšanās var izveidot produktus un dizaina shēmas, kā arī viegli integrēt un nodrošināt lietotāju datus. Apvienojot publiskā mākoņa augsto drošību, mērogojamību un uzticamību ar advantagEspressif uzsāka ESP
19
RainMaker, dziļi integrēts privātā mākoņa risinājums, kura pamatā ir Amazon mākonis. Lietotāji var izvietot ESP RainMaker un izveidot privātu mākoni, vienkārši izmantojot AWS kontu.
3.1 Kas ir ESP RainMaker?
ESP RainMaker ir pilnīga AIoT platforma, kas veidota ar vairākiem nobriedušiem AWS produktiem. Tas nodrošina dažādus pakalpojumus, kas nepieciešami masveida ražošanai, piemēram, ierīču mākoņa piekļuve, ierīces jaunināšana, aizmugursistēmas pārvaldība, trešās puses pieteikšanās, balss integrācija un lietotāju pārvaldība. Izmantojot AWS nodrošināto bezserveru lietojumprogrammu krātuvi (SAR), termināļu ražotāji savos AWS kontos var ātri izvietot ESP RainMaker, kas ir laika ziņā ekonomisks un viegli lietojams. Espressif pārvaldītais un uzturētais SAR, ko izmanto ESP RainMaker, palīdz izstrādātājiem samazināt mākoņa uzturēšanas izmaksas un paātrināt AIoT produktu izstrādi, tādējādi veidojot drošus, stabilus un pielāgojamus AIoT risinājumus. 3.1. attēlā parādīta ESP RainMaker arhitektūra.
3.1.attēls. ESP RainMaker arhitektūra
Espressif publiskais ESP RainMaker serveris ir pieejams bez maksas visiem ESP entuziastiem, veidotājiem un pedagogiem risinājumu novērtēšanai. Izstrādātāji var pieteikties, izmantojot Apple, Google vai GitHub kontus, un ātri izveidot savus IoT lietojumprogrammu prototipus. Publiskais serveris integrē Alexa un Google Home, kā arī nodrošina balss vadības pakalpojumus, kurus atbalsta Alexa Skill un Google Actions. Tās semantiskās atpazīšanas funkciju nodrošina arī trešās puses. RainMaker IoT ierīces reaģē tikai uz noteiktām darbībām. Lai iegūtu pilnīgu atbalstīto balss komandu sarakstu, lūdzu, skatiet trešo pušu platformas. Turklāt Espressif piedāvā publisku RainMaker lietotni, lai lietotāji varētu kontrolēt produktus, izmantojot viedtālruņus. 20 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
3.2. ESP RainMaker ieviešana
Kā parādīts 3.2. attēlā, ESP RainMaker sastāv no četrām daļām: · Pieprasīšanas pakalpojums, kas ļauj RainMaker ierīcēm dinamiski iegūt sertifikātus. · RainMaker Cloud (pazīstams arī kā mākoņa aizmugursistēma), kas nodrošina tādus pakalpojumus kā ziņojumu filtrēšana, lietotāju pārvaldība, datu glabāšana un trešo pušu integrācija. · RainMaker aģents, kas ļauj RainMaker ierīcēm izveidot savienojumu ar RainMaker Cloud. · RainMaker Client (RainMaker App vai CLI skripti) nodrošināšanai, lietotāju izveidei, ierīču saistīšanai un kontrolei utt.
3.2.attēls. ESP RainMaker struktūra
ESP RainMaker nodrošina pilnu rīku komplektu produktu izstrādei un masveida ražošanai, tostarp: RainMaker SDK
RainMaker SDK pamatā ir ESP-IDF un nodrošina ierīces puses aģenta pirmkodu un saistītos C API programmaparatūras izstrādei. Izstrādātājiem ir tikai jāraksta lietojumprogrammas loģika, bet pārējais jāatstāj RainMaker ietvara ziņā. Lai iegūtu papildinformāciju par C API, lūdzu, apmeklējiet vietni https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Publiskā RainMaker App versija ļauj izstrādātājiem pabeigt ierīces nodrošināšanu, kā arī kontrolēt un pieprasīt ierīču statusu (piemēram, viedā apgaismojuma produkti). Tas ir pieejams gan iOS, gan Android lietotņu veikalos. Lai iegūtu sīkāku informāciju, lūdzu, skatiet 10. nodaļu. REST API REST API palīdz lietotājiem izveidot savas lietojumprogrammas, kas ir līdzīgas RainMaker lietotnei. Lai iegūtu papildinformāciju, lūdzu, apmeklējiet vietni https://swaggerapis.rainmaker.espressif.com/.
3. nodaļa. Ievads ESP RainMaker 21
Python API Uz Python balstīta CLI, kas tiek piegādāta kopā ar RainMaker SDK, tiek nodrošināta, lai ieviestu visas funkcijas, kas līdzīgas viedtālruņa funkcijām. Lai iegūtu papildinformāciju par Python API, lūdzu, apmeklējiet vietni https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI ar augstāku piekļuves līmeni tiek nodrošināta ESP RainMaker privātai izvietošanai, lai ģenerētu ierīču sertifikātus lielapjomā.
3.2.1. Pieprasīšanas pakalpojums
Visa saziņa starp RainMaker ierīcēm un mākoņa aizmuguri tiek veikta, izmantojot MQTT+TLS. ESP RainMaker kontekstā “Pretenzija” ir process, kurā ierīces iegūst sertifikātus no pieprasīšanas pakalpojuma, lai izveidotu savienojumu ar mākoņa aizmugursistēmu. Ņemiet vērā, ka pieprasīšanas pakalpojums ir piemērojams tikai publiskajam RainMaker pakalpojumam, savukārt privātai izvietošanai ierīču sertifikāti ir jāģenerē lielapjomā, izmantojot administratora CLI. ESP RainMaker atbalsta trīs veidu pretenziju pakalpojumu: Pašprasību
Pati ierīce iegūst sertifikātus, izmantojot slepeno atslēgu, kas iepriekš ieprogrammēta eFuse pēc savienojuma ar internetu. Uzņēmēja vadīta pretenzija Sertifikāti tiek iegūti no izstrādes saimniekdatora, izmantojot RainMaker kontu. Palīdzības pieprasīšana Sertifikāti tiek iegūti, izmantojot viedtālruņa lietojumprogrammas nodrošināšanas laikā.
3.2.2. RainMaker aģents
3.3.attēls. RainMaker SDK struktūra RainMaker aģenta galvenā funkcija ir nodrošināt savienojamību un palīdzēt lietojumprogrammas slānim apstrādāt augšupsaites/lejupsaites mākoņa datus. Tas ir izveidots, izmantojot RainMaker SDK 22 ESP32-C3 Wireless Adventure: visaptverošs ceļvedis IoT
un izstrādāts, pamatojoties uz pārbaudīto ESP-IDF ietvaru, izmantojot ESP-IDF komponentus, piemēram, RTOS, NVS un MQTT. 3.3. attēlā parādīta RainMaker SDK struktūra.
RainMaker SDK ietver divas galvenās funkcijas.
Savienojums
i. Sadarbība ar Claiming Service, lai iegūtu ierīces sertifikātus.
ii. Savienojuma izveide ar mākoņa aizmugursistēmu, izmantojot drošu MQTT protokolu, lai nodrošinātu attālo savienojumu un ieviestu tālvadību, ziņojumu ziņošanu, lietotāju pārvaldību, ierīču pārvaldību utt. Tas pēc noklusējuma izmanto MQTT komponentu ESP-IDF un nodrošina abstrakcijas slāni saskarnei ar citām ierīcēm. protokolu skursteņi.
iii. Nodrošina Wi-Fi nodrošināšanas komponentu Wi-Fi savienojumam un nodrošināšanai, īpaši https ota komponentu OTA jauninājumiem un īpaši vietējo ctrl komponentu vietējās ierīces atrašanai un savienošanai. Visus šos mērķus var sasniegt, izmantojot vienkāršu konfigurāciju.
Datu apstrāde
i. Claiming Service izsniegto ierīču sertifikātu un RainMaker palaišanas laikā nepieciešamo datu glabāšana, pēc noklusējuma izmantojot nvs flash komponenta nodrošināto interfeisu, un API nodrošināšana izstrādātājiem tiešai lietošanai.
ii. Atzvanīšanas mehānisma izmantošana augšupsaites/lejupsaites mākoņdatu apstrādei un datu automātiska atbloķēšana lietojumprogrammas slānim, lai izstrādātāji tos varētu viegli apstrādāt. Piemēram,ampRainMaker SDK nodrošina bagātīgas saskarnes TSL (Thing Specification Language) datu izveidošanai, kas nepieciešami, lai definētu TSL modeļus, lai aprakstītu IoT ierīces un ieviestu tādas funkcijas kā laika noteikšana, atpakaļskaitīšana un balss vadība. Interaktīvām pamata funkcijām, piemēram, laika noteikšanai, RainMaker SDK nodrošina risinājumu bez izstrādes, ko vajadzības gadījumā var vienkārši iespējot. Pēc tam RainMaker aģents tieši apstrādās datus, nosūtīs tos uz mākoni, izmantojot saistīto MQTT tēmu, un atgriezīs datu izmaiņas mākoņa aizmugursistēmā, izmantojot atzvanīšanas mehānismu.
3.2.3. Mākoņa aizmugursistēma
Mākoņa aizmugure ir veidota uz AWS bez servera skaitļošanas, un to nodrošina AWS Cognito (identitātes pārvaldības sistēma), Amazon API Gateway, AWS Lambda (bez servera skaitļošanas pakalpojums), Amazon DynamoDB (NoSQL datubāze), AWS IoT Core (IoT piekļuves kodols, kas nodrošina MQTT piekļuvi). un noteikumu filtrēšana), Amazon Simple Email Service (SES vienkāršais pasta pakalpojums), Amazon CloudFront (ātrās piegādes tīkls), Amazon Simple Queue Service (SQS ziņojumu rindas) un Amazon S3 (smailu krātuves pakalpojums). Tā mērķis ir optimizēt mērogojamību un drošību. Izmantojot ESP RainMaker, izstrādātāji var pārvaldīt ierīces, nerakstot kodu mākonī. Ziņojumi, par kuriem ziņo ierīces, tiek pārskatāmi pārsūtīti uz
3. nodaļa. Ievads ESP RainMaker 23
lietojumprogrammu klientiem vai citiem trešo pušu pakalpojumiem. 3.1. tabulā ir parādīti mākoņa aizmugursistēmā izmantotie AWS mākoņa produkti un funkcijas, kā arī citi produkti un līdzekļi tiek izstrādāti.
3.1. tabula. AWS mākoņa produkti un funkcijas, ko izmanto mākoņa aizmugursistēma
AWS mākoņa produkts, ko izmanto RainMaker
Funkcija
AWS Cognito
Lietotāju akreditācijas datu pārvaldība un trešo pušu pieteikšanās atbalstīšana
AWS Lambda
Mākoņa aizmugursistēmas biznesa pamatloģikas ieviešana
Amazon Timestream Laika rindu datu glabāšana
Amazon DynamoDB Klientu privātās informācijas glabāšana
AWS IoT kodols
MQTT komunikācijas atbalsts
Amazon SES
E-pasta sūtīšanas pakalpojumu nodrošināšana
Amazon CloudFront Aizmugursistēmas pārvaldības paātrināšana webpiekļuve vietnei
Amazon SQS
Ziņojumu pārsūtīšana no AWS IoT Core
3.2.4. RainMaker klients
RainMaker klienti, piemēram, App un CLI, sazinās ar mākoņa aizmugursistēmu, izmantojot REST API. Detalizētu informāciju un norādījumus par REST API var atrast Swagger dokumentācijā, ko nodrošina Espressif. RainMaker mobilo aplikāciju klients ir pieejams gan iOS, gan Android sistēmām. Tas ļauj nodrošināt, kontrolēt un koplietot ierīci, kā arī izveidot un iespējot atpakaļskaitīšanas uzdevumus un izveidot savienojumu ar trešo pušu platformām. Tas var automātiski ielādēt lietotāja interfeisu un ikonas atbilstoši ierīču ziņotajai konfigurācijai un pilnībā parādīt ierīces TSL.
Piemēram,ample, ja viedais apgaismojums ir izveidots uz RainMaker SDK nodrošinātā examples, spuldzes gaismas ikona un lietotāja interfeiss tiks ielādēti automātiski, kad nodrošinājums būs pabeigts. Lietotāji var mainīt gaismas krāsu un spilgtumu, izmantojot interfeisu, un sasniegt trešās puses kontroli, saistot Alexa Smart Home Skill vai Google Smart Home Actions saviem ESP RainMaker kontiem. Attēlā 3.4 ir parādīta ikona un lietotāja interfeiss, piemampspuldzes apgaismojumu attiecīgi Alexa, Google Home un ESP RainMaker App.
24 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
a) Piemample – Aleksa
(b) Piemample – Google sākumlapa
(c) Piemample – ESP RainMaker
3.4. attēls. Piemampikonas un spuldzes apgaismojuma lietotāja interfeiss Alexa, Google Home un ESP RainMaker lietotnē
3.3. Prakse: galvenie punkti izstrādei ar ESP RainMaker
Kad ierīces draivera slānis ir pabeigts, izstrādātāji var sākt veidot TSL modeļus un apstrādāt lejupsaites datus, izmantojot RainMaker SDK nodrošinātās API, un iespējot ESP RainMaker pamatpakalpojumus, pamatojoties uz produkta definīciju un prasībām.
3. nodaļa. Ievads ESP RainMaker 25
Šīs grāmatas 9.4. sadaļa izskaidros LED viedā apgaismojuma ieviešanu programmā RainMaker. Atkļūdošanas laikā izstrādātāji var izmantot CLI rīkus RainMaker SDK, lai sazinātos ar viedo apgaismojumu (vai izsauktu REST API no Swagger).
10. nodaļā tiks apskatīta REST API izmantošana viedtālruņu lietojumprogrammu izstrādē. LED viedo gaismu OTA jauninājumi tiks apskatīti 11. nodaļā. Ja izstrādātāji ir iespējojuši ESP Insights attālo uzraudzību, ESP RainMaker pārvaldības aizmugursistēma parādīs ESP Insights datus. Sīkāka informācija tiks sniegta 15. nodaļā.
ESP RainMaker atbalsta privāto izvietošanu, kas atšķiras no publiskā RainMaker servera šādos veidos:
Pieprasīšanas pakalpojums Lai ģenerētu sertifikātus privātos izvietojumos, pretenzijas vietā ir jāizmanto RainMaker Admin CLI. Izmantojot publisko serveri, izstrādātājiem ir jāpiešķir administratora tiesības, lai ieviestu programmaparatūras jaunināšanu, taču tas nav vēlams komerciālos izvietojumos. Tādēļ nevar nodrošināt ne atsevišķu autentifikācijas pakalpojumu pašprasību iesniegšanai, ne administratora tiesības resursdatora vadītai vai atbalstītai pretenziju iesniegšanai.
Tālruņa lietotnes Privātās izvietošanas gadījumā lietojumprogrammas ir jākonfigurē un jākompilē atsevišķi, lai nodrošinātu, ka kontu sistēmas nav sadarbspējīgas.
Trešās puses pieteikšanās un balss integrācija Izstrādātājiem ir jākonfigurē atsevišķi, izmantojot Google un Apple Developer kontus, lai iespējotu trešās puses pieteikšanos, kā arī Alexa Skill un Google Voice Assistant integrāciju.
PADOMI Lai iegūtu papildinformāciju par mākoņa izvietošanu, lūdzu, apmeklējiet vietni https://customer.rainmaker.espressif. com. Runājot par programmaparatūru, migrācijai no publiskā servera uz privāto serveri ir jāaizstāj tikai ierīces sertifikāti, kas ievērojami uzlabo migrācijas efektivitāti un samazina migrācijas un sekundārās atkļūdošanas izmaksas.
3.4 ESP RainMaker funkcijas
ESP RainMaker līdzekļi galvenokārt ir paredzēti trīs aspektiem – lietotāju pārvaldībai, galalietotājiem un administratoriem. Visas funkcijas tiek atbalstītas gan publiskajos, gan privātajos serveros, ja vien nav norādīts citādi.
3.4.1. Lietotāju pārvaldība
Lietotāju pārvaldības līdzekļi ļauj lietotājiem reģistrēties, pieteikties, mainīt paroles, izgūt paroles utt.
26 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Reģistrācija un pieteikšanās RainMaker atbalstītās reģistrācijas un pieteikšanās metodes ietver: · E-pasta ID + Parole · Tālruņa numurs + Parole · Google konts · Apple konts · GitHub konts (tikai publiskajam serverim) · Amazon konts (tikai privātajam serverim)
PIEZĪME Reģistrējoties, izmantojot Google/Amazon, koplieto lietotāja e-pasta adresi ar RainMaker. Reģistrējoties, izmantojot Apple, tiek koplietota fiktīva adrese, ko Apple piešķir lietotājam īpaši pakalpojumam RainMaker. RainMaker konts tiks automātiski izveidots lietotājiem, kuri pirmo reizi pierakstīsies ar Google, Apple vai Amazon kontu.
Mainīt paroli Derīga tikai e-pasta ID/tālruņa numura pieteikšanās sistēmām. Visas pārējās aktīvās sesijas tiks izrakstītas pēc paroles maiņas. Saskaņā ar AWS Cognito uzvedību sesijas, kuras nav pieteikušās, var palikt aktīvas līdz 1 stundai.
Atgūt paroli Derīga tikai e-pasta ID/tālruņa numura pieteikšanās sistēmām.
3.4.2. Galalietotāja līdzekļi
Galalietotājiem pieejamās funkcijas ietver lokālo un tālvadības pulti un uzraudzību, plānošanu, ierīču grupēšanu, ierīču koplietošanu, pašpiegādes paziņojumus un trešo pušu integrāciju.
Tālvadība un uzraudzība · Pieprasīt konfigurāciju, parametru vērtības un savienojuma statusu vienai vai visām ierīcēm. · Iestatiet parametrus vienai vai vairākām ierīcēm.
Vietējā vadība un uzraudzība Vietējai vadībai mobilajam tālrunim un ierīcei jābūt savienotiem ar vienu tīklu.
Plānošana · Lietotāji iepriekš iestata noteiktas darbības noteiktā laikā. · Grafika izpildes laikā ierīcei nav nepieciešams interneta savienojums. · Vienai vai vairākām ierīcēm vienu reizi vai atkārtoti (norādot dienas).
Ierīču grupēšana Atbalsta vairāku līmeņu abstraktu grupēšanu Grupas metadatus var izmantot, lai izveidotu mājas telpas struktūru.
3. nodaļa. Ievads ESP RainMaker 27
Ierīces koplietošana Vienu vai vairākas ierīces var koplietot ar vienu vai vairākiem lietotājiem.
Push paziņojumi Galalietotāji saņems pašpiegādes paziņojumus par tādiem notikumiem kā · Pievienota/noņemta jauna(-as) ierīce(-es) · Ierīce savienota ar mākoni · Ierīce ir atvienota no mākoņa · Ierīces koplietošanas pieprasījumi izveidoti/akceptēti/noraidīti · Ierīču ziņotie brīdinājuma ziņojumi
Trešo pušu integrācijas Alexa un Google Voice Assistant tiek atbalstītas, lai kontrolētu RainMaker ierīces, tostarp gaismas, slēdžus, kontaktligzdas, ventilatorus un temperatūras sensorus.
3.4.3. Administratora līdzekļi
Administrēšanas līdzekļi ļauj administratoriem ieviest ierīces reģistrāciju, ierīču grupēšanu un OTA jauninājumus, kā arī view statistika un ESP Insights dati.
Ierīces reģistrācija Ģenerējiet ierīču sertifikātus un reģistrējieties Admin CLI (tikai privātajā serverī).
Ierīču grupēšana Izveidojiet abstraktas vai strukturētas grupas, pamatojoties uz ierīces informāciju (tikai privātais serveris).
Bezvadu (OTA) jauninājumi Augšupielādējiet programmaparatūru, pamatojoties uz versiju un modeli, vienā vai vairākās ierīcēs vai grupā Pārraugiet, atceliet vai arhivējiet OTA darbus.
View statistika ViewIespējamā statistika ietver: · Ierīču reģistrāciju (administratora reģistrētos sertifikātus) · Ierīču aktivizācijas (ierīce pievienota pirmo reizi) · Lietotāju kontus · Lietotāja un ierīces saistību
View ESP Insights dati Viewspējīgi ESP Insights dati ietver: · kļūdas, brīdinājumus un pielāgotus žurnālus; · avāriju pārskatus un analīzi; · atkārtotas palaišanas iemeslus; · metriku, piemēram, atmiņas lietojumu, RSSI utt. · Pielāgota metrika un mainīgie.
28 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
3.5. Kopsavilkums
Šajā nodaļā mēs iepazīstinājām ar dažām galvenajām atšķirībām starp publisko RainMaker izvietošanu un privāto izvietošanu. Privātais ESP RainMaker risinājums, ko izlaida Espressif, ir ļoti uzticams un paplašināms. Visas ESP32 sērijas mikroshēmas ir savienotas un pielāgotas AWS, kas ievērojami samazina izmaksas. Izstrādātāji var koncentrēties uz prototipa verifikāciju, neapgūstot AWS mākoņa produktus. Mēs arī izskaidrojām ESP RainMaker ieviešanu un funkcijas, kā arī dažus galvenos punktus izstrādei, izmantojot platformu.
Skenējiet, lai lejupielādētu ESP RainMaker operētājsistēmai Android Skenējiet, lai lejupielādētu ESP RainMaker operētājsistēmai iOS
3. nodaļa. Ievads ESP RainMaker 29
30 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Nodaļa Iestatīšana 4 Attīstības vide
Šajā nodaļā galvenā uzmanība tiek pievērsta ESP-IDF — ESP32-C3 oficiālajai programmatūras izstrādes sistēmai. Mēs izskaidrosim, kā iestatīt vidi dažādās operētājsistēmās, un iepazīstināsim ar ESP-IDF projekta struktūru un būvēšanas sistēmu, kā arī ar to saistīto izstrādes rīku izmantošanu. Pēc tam mēs iepazīstināsim ar bijušā kompilēšanas un darbības procesuample projektu, vienlaikus piedāvājot detalizētu skaidrojumu par izvades žurnālu katrā stage.
4.1 ESP-IDF Overview
ESP-IDF (Espressif IoT attīstības ietvars) ir vienas pieturas IoT izstrādes ietvars, ko nodrošina Espressif Technology. Tas izmanto C/C++ kā galveno izstrādes valodu un atbalsta savstarpēju kompilāciju tādās galvenajās operētājsistēmās kā Linux, Mac un Windows. BijušaisampŠajā grāmatā iekļautās programmas ir izstrādātas, izmantojot ESP-IDF, kas piedāvā šādas funkcijas: · SoC sistēmas līmeņa draiveri. ESP-IDF ietver draiverus ESP32, ESP32-S2, ESP32-C3,
un citas mikroshēmas. Šie draiveri ietver perifērijas zema līmeņa (LL) bibliotēku, aparatūras abstrakcijas slāņa (HAL) bibliotēku, RTOS atbalstu un augšējā slāņa draiveru programmatūru utt. · Būtiski komponenti. ESP-IDF ietver pamatkomponentus, kas nepieciešami IoT attīstībai. Tas ietver vairākas tīkla protokolu kopas, piemēram, HTTP un MQTT, jaudas pārvaldības sistēmu ar dinamisku frekvences modulāciju un tādas funkcijas kā zibatmiņas šifrēšana un drošā sāknēšana utt. · Izstrādes un ražošanas rīki. ESP-IDF nodrošina plaši izmantotus rīkus veidošanai, zibatmiņai un atkļūdošanai izstrādes un masveida ražošanas laikā (sk. 4.1. attēlu), piemēram, ēku sistēmu, kuras pamatā ir CMake, savstarpējās kompilācijas rīku ķēdi, kuras pamatā ir GCC, un J.TAG Atkļūdošanas rīks, kura pamatā ir OpenOCD utt. Ir vērts atzīmēt, ka ESP-IDF kods galvenokārt atbilst Apache 2.0 atvērtā pirmkoda licencei. Lietotāji var izstrādāt personisku vai komerciālu programmatūru bez ierobežojumiem, vienlaikus ievērojot atvērtā pirmkoda licences noteikumus. Turklāt lietotājiem bez maksas tiek piešķirtas pastāvīgas patentu licences, bez pienākuma atvērt pirmkoda jebkādas avota koda modifikācijas.
31
4.1. attēls.
Veidošana, mirgošana un atkļūdošana
rīku izstrādei un masveida ražošanai
4.1.1 ESP-IDF versijas
ESP-IDF kods tiek mitināts vietnē GitHub kā atvērtā koda projekts. Pašlaik ir pieejamas trīs galvenās versijas: v3, v4 un v5. Katra galvenā versija parasti satur dažādas apakšversijas, piemēram, v4.2, v4.3 utt. Espressif Systems nodrošina 30 mēnešu atbalstu kļūdu labojumiem un drošības ielāpiem katrai izlaistajai apakšversijai. Tāpēc regulāri tiek izlaistas arī subversiju versijas, piemēram, v4.3.1, v4.2.2 utt. Tabulā 4.1 ir parādīts dažādu ESP-IDF versiju atbalsta statuss Espressif mikroshēmām, norādot, vai tās atrodas iepriekšview stage (piedāvājot atbalstu pirmsview versijas, kurām var nebūt noteiktu funkciju vai dokumentācijas), vai tās tiek oficiāli atbalstītas.
4.1. tabula. Atbalsta statuss dažādām ESP-IDF versijām Espressif mikroshēmām
Sērija ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
atbalstīta v4.1
Atbalstīta v4.2
v4.3 atbalstīts atbalstīts atbalstīts
v4.4 atbalstīts atbalstīts atbalstīts atbalstīts
iepriekšview
v5.0 atbalstīts atbalstīts atbalstīts atbalstīts atbalstīts iepriekšview
32 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Galveno versiju atkārtošana bieži ietver ietvara struktūras pielāgojumus un kompilācijas sistēmas atjauninājumus. Piemēram,ample, galvenās izmaiņas no v3.* uz v4.* bija pakāpeniska būvēšanas sistēmas migrācija no Make uz CMake. No otras puses, mazo versiju atkārtošana parasti ietver jaunu funkciju pievienošanu vai jaunu mikroshēmu atbalstu.
Ir svarīgi atšķirt un izprast attiecības starp stabilajām versijām un GitHub filiālēm. Versijas, kas apzīmētas kā v*.* vai v*.*.*, ir stabilas versijas, kuras ir izturējušas pilnīgu Espressif iekšējo pārbaudi. Pēc labošanas tās pašas versijas kods, rīku ķēde un izlaiduma dokumenti paliek nemainīgi. Tomēr GitHub filiālēm (piem., laidiena/v4.3 filiāle) bieži tiek veiktas koda saistības, bieži vien katru dienu. Tāpēc divi koda fragmenti vienā un tajā pašā atzarā var atšķirties, tāpēc izstrādātājiem ir nekavējoties attiecīgi jāatjaunina savs kods.
4.1.2. ESP-IDF Git darbplūsma
Espressif ievēro īpašu Git darbplūsmu ESP-IDF, kas izklāstīta šādi:
· Jaunas izmaiņas tiek veiktas galvenajā atzarā, kas kalpo kā galvenā izstrādes nozare. ESP-IDF versija galvenajā zarā vienmēr satur -dev tag lai norādītu, ka tas pašlaik tiek izstrādāts, piemēram, v4.3-dev. Izmaiņas galvenajā filiālē vispirms tiks atjaunotasviewrediģēts un pārbaudīts Espressif iekšējā repozitorijā, un pēc tam, kad automatizētā testēšana ir pabeigta, nosūtīta uz GitHub.
· Kad jaunā versija ir pabeigusi līdzekļa izstrādi galvenajā zarā un atbilst kritērijiem, lai ievadītu beta testēšanu, tā tiek pārieta uz jaunu atzaru, piemēram, laidienu/v4.3. Turklāt šī jaunā filiāle ir tagged kā pirmsizlaides versiju, piemēram, v4.3-beta1. Izstrādātāji var atsaukties uz GitHub platformu, lai piekļūtu pilnam filiāļu sarakstam un tags par ESP-IDF. Ir svarīgi ņemt vērā, ka beta versijā (versijā pirms izlaišanas) joprojām var būt daudz zināmu problēmu. Tā kā beta versija tiek nepārtraukti pārbaudīta, kļūdu labojumi tiek pievienoti gan šai versijai, gan galvenajai filiālei vienlaikus. Tikmēr galvenā filiāle, iespējams, jau ir sākusi izstrādāt jaunas funkcijas nākamajai versijai. Kad testēšana ir gandrīz pabeigta, zaram tiek pievienota laidiena kandidāta (rc) etiķete, kas norāda, ka tas ir potenciāls kandidāts oficiālajam laidienam, piemēram, v4.3-rc1. Šajā stage, filiāle joprojām ir pirmsizlaides versija.
· Ja lielas kļūdas netiek atklātas vai ziņotas, pirmsizlaides versija galu galā saņem galvenās versijas etiķeti (piemēram, v5.0) vai nelielas versijas etiķeti (piemēram, v4.3) un kļūst par oficiālu laidiena versiju, kas tiek dokumentēta. izlaiduma piezīmju lapā. Pēc tam visas šajā versijā konstatētās kļūdas tiek novērstas izlaiduma zarā. Pēc manuālās testēšanas pabeigšanas filiālei tiek piešķirts kļūdu labošanas versijas apzīmējums (piemēram, v4.3.2), kas ir atspoguļots arī izlaiduma piezīmju lapā.
4. nodaļa. Attīstības vides iestatīšana 33
4.1.3. Piemērotas versijas izvēle
Tā kā ESP-IDF oficiāli sāka atbalstīt ESP32-C3 no versijas v4.3 un šīs grāmatas rakstīšanas laikā v4.4 vēl nebija oficiāli izlaista, šajā grāmatā izmantotā versija ir v4.3.2, kas ir pārskatīta versija. no v4.3. Tomēr ir svarīgi ņemt vērā, ka šīs grāmatas lasīšanas laikā jau var būt pieejama v4.4 vai jaunāka versija. Izvēloties versiju, mēs iesakām:
· Iesācēja līmeņa izstrādātājiem ir ieteicams izvēlēties stabilo v4.3 versiju vai tās pārskatīto versiju, kas atbilst bijušajamampšajā grāmatā izmantotā versija.
· Masveida ražošanas nolūkos ieteicams izmantot jaunāko stabilo versiju, lai gūtu labumu no visjaunākā tehniskā atbalsta.
· Ja plānojat eksperimentēt ar jaunām mikroshēmām vai izpētīt jaunas produkta funkcijas, lūdzu, izmantojiet galveno filiāli. Jaunākajā versijā ir visas jaunākās funkcijas, taču ņemiet vērā, ka var būt zināmas vai nezināmas kļūdas.
· Ja izmantotajā stabilajā versijā nav ietverti vēlamie jaunie līdzekļi un vēlaties samazināt ar galveno atzaru saistītos riskus, apsveriet iespēju izmantot atbilstošo laidiena zaru, piemēram, laidiena/v4.4 filiāli. Espressif GitHub repozitorijs vispirms izveidos laidienu/v4.4 atzaru un pēc tam izlaidīs stabilo v4.4 versiju, pamatojoties uz konkrētu šīs filiāles vēsturisko momentuzņēmumu, pēc visu funkciju izstrādes un testēšanas pabeigšanas.
4.1.4 Beigāsview ESP-IDF SDK direktorijā
ESP-IDF SDK sastāv no diviem galvenajiem direktorijiem: esp-idf un .espressif. Pirmajā ir ESP-IDF repozitorija pirmkods files un kompilācijas skriptus, savukārt pēdējā galvenokārt glabā kompilācijas rīku ķēdes un citu programmatūru. Šo divu direktoriju iepazīšana palīdzēs izstrādātājiem labāk izmantot pieejamos resursus un paātrināt izstrādes procesu. ESP-IDF direktoriju struktūra ir aprakstīta zemāk:
(1) ESP-IDF repozitorija kodu direktorijs (/esp/esp-idf), kā parādīts 4.2. attēlā.
a. Komponentu direktoriju komponenti
Šajā galvenajā direktorijā ir integrēti daudzi būtiski ESP-IDF programmatūras komponenti. Nevienu projekta kodu nevar apkopot, nepaļaujoties uz komponentiem šajā direktorijā. Tas ietver draivera atbalstu dažādām Espressif mikroshēmām. No LL bibliotēkas un HAL bibliotēkas saskarnēm perifērijas ierīcēm līdz augstākā līmeņa draiverim un virtuālajam File Sistēmas (VFS) slāņa atbalsts, izstrādātāji var izvēlēties atbilstošos komponentus dažādos līmeņos savām attīstības vajadzībām. ESP-IDF atbalsta arī vairākus standarta tīkla protokolu stekus, piemēram, TCP/IP, HTTP, MQTT, WebSocket utt. Izstrādātāji var izmantot pazīstamas saskarnes, piemēram, Socket, lai izveidotu tīkla lietojumprogrammas. Sastāvdaļas nodrošina saprotamu
34 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
4.2.attēls. ESP-IDF repozitorija kodu direktorijs
funkcionalitāti, un to var viegli integrēt lietojumprogrammās, ļaujot izstrādātājiem koncentrēties tikai uz biznesa loģiku. Daži izplatīti komponenti ir šādi: · draiveris: šis komponents satur dažādu Espressif perifērijas draiveru programmas
mikroshēmu sērijas, piemēram, GPIO, I2C, SPI, UART, LEDC (PWM) utt. Šī komponenta perifērijas draiveru programmas piedāvā no mikroshēmām neatkarīgas abstraktas saskarnes. Katrai perifērijas ierīcei ir kopīga galvene file (piemēram, gpio.h), novēršot nepieciešamību risināt dažādus mikroshēmu atbalsta jautājumus. · esp_wifi: Wi-Fi kā īpaša perifērijas ierīce tiek uzskatīta par atsevišķu komponentu. Tas ietver vairākus API, piemēram, dažādu Wi-Fi draivera režīmu inicializāciju, parametru konfigurāciju un notikumu apstrādi. Dažas šī komponenta funkcijas tiek nodrošinātas statisku saišu bibliotēku veidā. ESP-IDF nodrošina arī visaptverošu draivera dokumentāciju, lai atvieglotu lietošanu.
4. nodaļa. Attīstības vides iestatīšana 35
· freertos: šis komponents satur pilnu FreeRTOS kodu. Papildus visaptverošam atbalstam šai operētājsistēmai Espressif ir paplašinājis savu atbalstu arī divkodolu mikroshēmām. Divkodolu mikroshēmām, piemēram, ESP32 un ESP32-S3, lietotāji var izveidot uzdevumus konkrētiem kodoliem.
b. Dokumentu direktoriju dokumenti
Šajā direktorijā ir ar ESP-IDF saistīti izstrādes dokumenti, tostarp darba sākšanas rokasgrāmata, API uzziņu rokasgrāmata, izstrādes rokasgrāmata utt.
PIEZĪME Pēc tam, kad šī direktorija saturs ir apkopots ar automatizētiem rīkiem, tas tiek izvietots vietnē https://docs.espressif.com/projects/esp-idf. Lūdzu, pārslēdziet dokumenta mērķi uz ESP32-C3 un atlasiet norādīto ESP-IDF versiju.
c. Skriptu rīku rīki
Šajā direktorijā ir plaši izmantoti kompilācijas priekšgala rīki, piemēram, idf.py un monitora termināļa rīks idf_monitor.py utt. Apakšdirektorijā cmake ir arī pamata skripts. files no kompilācijas sistēmas, kas kalpo par pamatu ESP-IDF kompilācijas noteikumu ieviešanai. Pievienojot vides mainīgos, rīku direktorija saturs tiek pievienots sistēmas vides mainīgajam, ļaujot idf.py izpildīt tieši zem projekta ceļa.
d. Piemample programmu direktorijs examples
Šajā direktorijā ir iekļauta plaša ESP-IDF example programmas, kas demonstrē komponentu API izmantošanu. Bijušaisamples ir sakārtoti dažādos apakšdirektorijos, pamatojoties uz to kategorijām:
· darba sākšana: šajā apakšdirektorijā ir iekļauts sākuma līmeņa eksemplārsamppiemēram, “sveika pasaule” un “mirkšķināt”, lai palīdzētu lietotājiem saprast pamatus.
· Bluetooth: varat atrast ar Bluetooth saistītu piemamples šeit, tostarp Bluetooth LE Mesh, Bluetooth LE HID, BluFi un citas.
· wifi: šajā apakšdirektorijā galvenā uzmanība ir pievērsta Wi-Fi piemamples, tostarp pamata programmas, piemēram, Wi-Fi SoftAP, Wi-Fi Station, espnow, kā arī patentēts sakaru protokols, piemēram,amples no Espressif. Tas ietver arī vairākus lietojumprogrammu slāņus, piemēramampbalstās uz Wi-Fi, piemēram, Iperf, Sniffer un Smart Config.
· Perifērijas ierīces: šis plašais apakšdirektorijs ir sadalīts daudzās apakšmapēs, pamatojoties uz perifērijas ierīču nosaukumiem. Tas galvenokārt satur perifērijas draiveri examples par Espressif čipsiem, ar katru example, kurā ir vairāki apakšpiederumiamples. Piemēram, gpio apakšdirektorijā ir iekļauti divi examples: GPIO un GPIO matricas tastatūra. Ir svarīgi atzīmēt, ka ne visi bijušieamples šajā direktorijā attiecas uz ESP32-C3.
36 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Piemēram,ample, bijušaisampusb/host les ir piemērojamas tikai perifērijas ierīcēm ar USB resursdatora aparatūru (piemēram, ESP32-S3), un ESP32-C3 nav šīs perifērijas. Kompilācijas sistēma parasti nodrošina uzvednes, iestatot mērķi. README file no katra bijušāample uzskaita atbalstītās mikroshēmas. · protokoli: šajā apakšdirektorijā ir piemamples dažādiem sakaru protokoliem, ieskaitot MQTT, HTTP, HTTP serveri, PPPoS, Modbus, mDNS, SNTP, kas aptver plašu sakaru protokolu klāstu, piemēram,ampmazāk nepieciešams IoT attīstībai. · nodrošinājums: šeit jūs atradīsit nodrošināšanu, piemamples dažādām metodēm, piemēram, Wi-Fi nodrošināšanai un Bluetooth LE nodrošināšanai. · sistēma: šajā apakšdirektorijā ir iekļauta sistēmas atkļūdošana, piemamples (piemēram, steka izsekošana, izpildlaika izsekošana, uzdevumu uzraudzība), jaudas pārvaldība, piemamples (piemēram, dažādi miega režīmi, kopprocesori) un piemampmazāk saistīti ar izplatītākajiem sistēmas komponentiem, piemēram, konsoles termināli, notikumu cilpu un sistēmas taimeri. · krātuve: šajā apakšdirektorijā jūs atklāsiet, piemēram,ampmazāk no visiem file sistēmas un uzglabāšanas mehānismi, ko atbalsta ESP-IDF (piemēram, Flash, SD kartes un citu datu nesēju lasīšana un rakstīšana), kā arīampmazāk gaistošas atmiņas (NVS), FatFS, SPIFFS un citas file sistēmas darbības. · drošība: šajā apakšdirektorijā ir piemampmazāk saistīti ar zibatmiņas šifrēšanu. (2) ESP-IDF kompilācijas rīka ķēdes direktorijs (/.espressif), kā parādīts 4.3. attēlā.
4.3.attēls. ESP-IDF kompilācijas rīku ķēdes direktorijs
4. nodaļa. Attīstības vides iestatīšana 37
a. Programmatūras izplatīšanas direktorija dist
ESP-IDF rīku ķēde un cita programmatūra tiek izplatīta saspiestu pakotņu veidā. Instalēšanas procesa laikā instalācijas rīks vispirms lejupielādē saspiesto pakotni dist direktorijā un pēc tam izvelk to norādītajā direktorijā. Kad instalēšana ir pabeigta, šī direktorija saturu var droši noņemt.
b. Python virtuālās vides direktorijs python env
Dažādas ESP-IDF versijas balstās uz noteiktām Python pakotņu versijām. Šo pakotņu instalēšana tieši tajā pašā resursdatorā var izraisīt konfliktus starp pakotnes versijām. Lai to novērstu, ESP-IDF izmanto Python virtuālās vides, lai izolētu dažādas pakotnes versijas. Izmantojot šo mehānismu, izstrādātāji var instalēt vairākas ESP-IDF versijas vienā un tajā pašā resursdatorā un viegli pārslēgties starp tām, importējot dažādus vides mainīgos.
c. ESP-IDF kompilācijas rīku ķēdes direktoriju rīki
Šajā direktorijā galvenokārt ir ietverti savstarpējās kompilācijas rīki, kas nepieciešami ESP-IDF projektu apkopošanai, piemēram, CMake rīki, Ninja veidošanas rīki un gcc rīku ķēde, kas ģenerē galīgo izpildāmo programmu. Turklāt šajā direktorijā atrodas C/C++ valodas standarta bibliotēka kopā ar atbilstošo galveni files. Ja programma atsaucas uz sistēmas galveni file patīk #iekļaut , apkopošanas rīku ķēde atradīs stdio.h file šajā direktorijā.
4.2 ESP-IDF izstrādes vides iestatīšana
ESP-IDF izstrādes vide atbalsta galvenās operētājsistēmas, piemēram, Windows, Linux un macOS. Šajā sadaļā tiks parādīts, kā katrā sistēmā iestatīt izstrādes vidi. Ieteicams izstrādāt ESP32-C3 uz Linux sistēmas, kas tiks detalizēti iepazīstināta šeit. Daudzas instrukcijas ir piemērojamas dažādās platformās izstrādes rīku līdzības dēļ. Tāpēc ieteicams rūpīgi izlasīt šīs sadaļas saturu.
PIEZĪME Varat skatīt tiešsaistes dokumentus, kas pieejami vietnē https://bookc3.espressif.com/esp32c3, kuros ir sniegtas šajā sadaļā minētās komandas.
4.2.1 ESP-IDF izstrādes vides iestatīšana operētājsistēmā Linux
GNU izstrādes un atkļūdošanas rīki, kas nepieciešami ESP-IDF izstrādes videi, ir Linux sistēmā. Turklāt Linux komandrindas terminālis ir jaudīgs un lietotājam draudzīgs, padarot to par ideālu izvēli ESP32-C3 izstrādei. Jūs varat
38 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
atlasiet vēlamo Linux izplatīšanu, taču mēs iesakām izmantot Ubuntu vai citas Debian bāzes sistēmas. Šajā sadaļā ir sniegti norādījumi par ESP-IDF izstrādes vides iestatīšanu Ubuntu 20.04.
1. Instalējiet nepieciešamās pakotnes
Atveriet jaunu termināli un izpildiet šo komandu, lai instalētu visas nepieciešamās pakotnes. Komanda automātiski izlaidīs jau instalētās pakotnes.
$ sudo apt-get instalēt git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
PADOMI Iepriekš norādītajai komandai ir jāizmanto administratora konts un parole. Pēc noklusējuma, ievadot paroli, informācija netiks parādīta. Vienkārši nospiediet taustiņu “Enter”, lai turpinātu procedūru.
Git ir galvenais koda pārvaldības rīks ESP-IDF. Pēc veiksmīgas izstrādes vides iestatīšanas varat izmantot git log komandu, lai view visas koda izmaiņas, kas veiktas kopš ESP-IDF izveides. Turklāt Git tiek izmantots arī ESP-IDF, lai apstiprinātu informāciju par versiju, kas nepieciešama, lai instalētu pareizo rīku ķēdi, kas atbilst konkrētām versijām. Kopā ar Git, citi svarīgi sistēmas rīki ietver Python. ESP-IDF ietver daudzus automatizācijas skriptus, kas rakstīti Python. Tādi rīki kā CMake, Ninja-build un Ccache tiek plaši izmantoti C/C++ projektos un kalpo kā noklusējuma koda kompilācijas un veidošanas rīki ESP-IDF. libusb-1.0-0 un dfu-util ir galvenie draiveri, ko izmanto USB seriālajai komunikācijai un programmaparatūras ierakstīšanai. Kad programmatūras pakotnes ir instalētas, varat izmantot apt show komandu, lai iegūtu detalizētus katras pakotnes aprakstus. Piemēram,ample, izmantojiet apt show git, lai izdrukātu Git rīka apraksta informāciju.
J: Ko darīt, ja Python versija netiek atbalstīta? A: ESP-IDF v4.3 nepieciešama Python versija, kas nav zemāka par v3.6. Vecākām Ubuntu versijām, lūdzu, manuāli lejupielādējiet un instalējiet jaunāku Python versiju un iestatiet Python3 kā noklusējuma Python vidi. Detalizētus norādījumus varat atrast, meklējot atslēgvārdu update-alternatives python.
2. Lejupielādējiet ESP-IDF repozitorija kodu
Atveriet termināli un izveidojiet mapi ar nosaukumu esp savā mājas direktorijā, izmantojot komandu mkdir. Ja vēlaties, varat izvēlēties citu mapes nosaukumu. Izmantojiet komandu cd, lai ievadītu mapi.
4. nodaļa. Attīstības vides iestatīšana 39
$ mkdir -p /esp $ cd /esp
Izmantojiet komandu git clone, lai lejupielādētu ESP-IDF repozitorija kodu, kā parādīts zemāk:
$ git klons -b v4.3.2 – rekursīvs https://github.com/espressif/esp-idf.git
Iepriekš minētajā komandā parametrs -b v4.3.2 norāda lejupielādējamo versiju (šajā gadījumā versiju 4.3.2). Parametrs –recursive nodrošina, ka visi ESP-IDF apakšrepozitoriji tiek lejupielādēti rekursīvi. Informāciju par apakšrepozitorijiem var atrast .gitmodules file.
3. Instalējiet ESP-IDF izstrādes rīku ķēdi
Espressif nodrošina automatizētu skriptu install.sh, lai lejupielādētu un instalētu rīku ķēdi. Šis skripts pārbauda pašreizējo ESP-IDF versiju un operētājsistēmas vidi un pēc tam lejupielādē un instalē atbilstošu Python rīku pakotņu un kompilācijas rīku ķēžu versiju. Noklusējuma instalācijas ceļš rīku ķēdei ir /.espressif. Viss, kas jums jādara, ir doties uz esp-idf direktoriju un palaist install.sh.
$ cd /esp/esp-idf $ ./install.sh
Ja instrumenta ķēde ir veiksmīgi instalēta, terminālis parādīs:
Viss darīts!
Šajā brīdī jūs esat veiksmīgi iestatījis ESP-IDF izstrādes vidi.
4.2.2 ESP-IDF izstrādes vides iestatīšana operētājsistēmā Windows
1. Lejupielādējiet ESP-IDF rīku instalētāju
PADOMI Ieteicams iestatīt ESP-IDF izstrādes vidi operētājsistēmā Windows 10 vai jaunākā versijā. Instalēšanas programmu var lejupielādēt no vietnes https://dl.espressif.com/dl/esp-idf/. Instalēšanas programma ir arī atvērtā pirmkoda programmatūra, un tās pirmkods var būt viewed vietnē https://github.com/espressif/idf-installer.
· Tiešsaistes ESP-IDF rīku instalētājs
Šis instalētājs ir salīdzinoši mazs, aptuveni 4 MB liels, un instalēšanas procesa laikā tiks lejupielādētas citas pakotnes un kods. AdvānstagTiešsaistes instalēšanas programmas galvenā iezīme ir tāda, ka instalēšanas procesa laikā pēc pieprasījuma var lejupielādēt ne tikai programmatūras pakotnes un kodu, bet arī ļauj instalēt visus pieejamos ESP-IDF laidienus un jaunāko GitHub koda atzaru (piemēram, galveno filiāli). . Disadvānstage ir tas, ka instalēšanas procesa laikā ir nepieciešams tīkla savienojums, kas var izraisīt instalēšanas kļūmi tīkla problēmu dēļ.
40 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
· Bezsaistes ESP-IDF rīku instalēšanas programma Šis instalēšanas programma ir lielāka, aptuveni 1 GB liela, un tajā ir visas programmatūras pakotnes un kods, kas nepieciešams vides iestatīšanai. Galvenais advantagBezsaistes instalēšanas programma ir tāda, ka to var izmantot datoros bez piekļuves internetam, un tam parasti ir augstāks instalēšanas panākumu līmenis. Jāņem vērā, ka bezsaistes instalēšanas programma var instalēt tikai stabilus ESP-IDF laidienus, kas apzīmēti ar v*.* vai v*.*.*.
2. Palaidiet ESP-IDF rīku instalēšanas programmu Pēc piemērotas instalētāja versijas lejupielādes (izmantojiet ESP-IDF rīku bezsaistē 4.3.2, piemēram,ample šeit), veiciet dubultklikšķi uz exe file lai palaistu ESP-IDF instalācijas saskarni. Tālāk ir parādīts, kā instalēt ESP-IDF stabilo versiju v4.3.2, izmantojot bezsaistes instalēšanas programmu.
(1) Saskarnē “Izvēlieties instalācijas valodu”, kas parādīts 4.4. attēlā, nolaižamajā sarakstā atlasiet izmantojamo valodu.
4.4.attēls. Interfeiss “Izvēlieties instalācijas valodu” (2) Pēc valodas izvēles noklikšķiniet uz “OK”, lai atvērtu saskarni “Licences līgums”.
(skat. 4.5. attēlu). Rūpīgi izlasot instalēšanas licences līgumu, atlasiet “Es piekrītu līgumam” un noklikšķiniet uz “Tālāk”.
4.5. attēls. Interfeiss “Licences līgums” 4. nodaļa. Attīstības vides iestatīšana 41
(3) Review sistēmas konfigurāciju saskarnē “Pirmsinstalēšanas sistēmas pārbaude” (skat. 4.6. attēlu). Pārbaudiet Windows versiju un informāciju par instalēto pretvīrusu programmatūru. Noklikšķiniet uz “Tālāk”, ja visi konfigurācijas vienumi ir normāli. Pretējā gadījumā varat noklikšķināt uz “Pilns žurnāls”, lai skatītu risinājumus, kuru pamatā ir galvenie elementi.
4.6. attēls. “Sistēmas pārbaude pirms instalēšanas” interfeisa PADOMI
Lai saņemtu palīdzību, žurnālus varat iesniegt vietnē https://github.com/espressif/idf-installer/issues. (4) Atlasiet ESP-IDF instalācijas direktoriju. Šeit atlasiet D:/.espressif, kā parādīts attēlā
Attēls 4.7 un noklikšķiniet uz "Tālāk". Lūdzu, ņemiet vērā, ka .espressif šeit ir slēpts direktorijs. Kad instalēšana ir pabeigta, varat view konkrēto šī direktorija saturu, atverot file pārvaldnieks un slēpto vienumu parādīšana.
4.7. attēls. Atlasiet ESP-IDF instalācijas direktoriju 42 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT
(5) Pārbaudiet komponentus, kas jāuzstāda, kā parādīts 4.8. attēlā. Ieteicams izmantot noklusējuma opciju, tas ir, pabeigt instalēšanu un pēc tam noklikšķiniet uz "Tālāk".
Attēls 4.8. Izvēlieties instalējamos komponentus (6) Apstipriniet instalējamos komponentus un noklikšķiniet uz “Instalēt”, lai sāktu automātisko instalēšanu.
aizķeršanās process, kā parādīts 4.9. attēlā. Instalēšanas process var ilgt desmitiem minūšu, un instalēšanas procesa progresa josla ir parādīta 4.10. attēlā. Lūdzu, uzgaidiet pacietīgi.
4.9. attēls. Sagatavošanās uzstādīšanai (7) Kad instalēšana ir pabeigta, ieteicams pārbaudīt “Reģistrēt ESP-IDF
Rīki izpildāmie faili kā Windows Defender izņēmumi…”, lai novērstu pretvīrusu programmatūras dzēšanu files. Izslēgšanas vienumu pievienošana var arī izlaist biežu pretvīrusu skenēšanu
4. nodaļa. Attīstības vides iestatīšana 43
4.10. attēls. Instalēšanas progresa joslas programmatūra, kas ievērojami uzlabo Windows sistēmas kodu apkopošanas efektivitāti. Noklikšķiniet uz “Pabeigt”, lai pabeigtu izstrādes vides instalēšanu, kā parādīts 4.11. attēlā. Varat izvēlēties atzīmēt “Palaist ESP-IDF PowerShell vidi” vai “Palaist ESP-IDF komandu uzvedni”. Palaidiet kompilācijas logu tieši pēc instalēšanas, lai nodrošinātu, ka izstrādes vide darbojas normāli.
Attēls 4.11. Instalēšana pabeigta (8) Programmu sarakstā atveriet instalēto izstrādes vidi (ESP-IDF 4.3
CMD vai ESP-IDF 4.3 PowerShell terminālis, kā parādīts 4.12. attēlā), un ESP-IDF vides mainīgais tiks automātiski pievienots, kad tas darbojas terminālī. Pēc tam operācijām varat izmantot komandu idf.py. Atvērtais ESP-IDF 4.3 CMD ir parādīts 4.13. attēlā. 44 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
4.12. attēls. Uzstādīta izstrādes vide
Attēls 4.13. ESP-IDF 4.3 CMD
4.2.3 ESP-IDF izstrādes vides iestatīšana operētājsistēmā Mac
ESP-IDF izstrādes vides instalēšanas process Mac sistēmā ir tāds pats kā Linux sistēmā. Komandas repozitorija koda lejupielādei un rīku ķēdes instalēšanai ir tieši tādas pašas. Tikai atkarības pakotņu instalēšanas komandas nedaudz atšķiras. 1. Atkarības pakotņu instalēšana Atveriet termināli un instalējiet Python pakotņu pārvaldības rīku pip, izpildot šādu komandu:
% sudo viegli instalēt pip
Instalējiet Homebrew, MacOS pakotņu pārvaldības rīku, izpildot šādu komandu:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
Instalējiet nepieciešamās atkarības pakotnes, izpildot šādu komandu:
% brew python3 instalējiet cmake ninja ccache dfu-util
2. Lejupielādēt ESP-IDF repozitorija kodu Lai lejupielādētu ESP-IDF repozitorija kodu, izpildiet 4.2.1. sadaļā sniegtos norādījumus. Darbības ir tādas pašas kā lejupielādei Linux sistēmā.
4. nodaļa. Attīstības vides iestatīšana 45
3. Instalējiet ESP-IDF izstrādes rīku ķēdi
Izpildiet 4.2.1. sadaļā sniegtos norādījumus, lai instalētu ESP-IDF izstrādes rīku ķēdi. Darbības ir tādas pašas kā instalēšanai Linux sistēmā.
4.2.4 VS koda instalēšana
Pēc noklusējuma ESP-IDF SDK neietver koda rediģēšanas rīku (lai gan jaunākā ESP-IDF instalēšanas programma operētājsistēmai Windows piedāvā iespēju instalēt ESP-IDF Eclipse). Varat izmantot jebkuru teksta rediģēšanas rīku pēc savas izvēles, lai rediģētu kodu un pēc tam to apkopotu, izmantojot termināļa komandas.
Viens populārs koda rediģēšanas rīks ir VS Code (Visual Studio Code), kas ir bezmaksas un daudzfunkcionāls koda redaktors ar lietotājam draudzīgu saskarni. Tā piedāvā dažādus plugins kas nodrošina tādas funkcijas kā koda navigācija, sintakses izcelšana, Git versijas kontrole un termināļa integrācija. Turklāt Espressif ir izstrādājis īpašu spraudni ar nosaukumu Espressif IDF for VS Code, kas vienkāršo projekta konfigurēšanu un atkļūdošanu.
Varat izmantot koda komandu terminālī, lai ātri atvērtu pašreizējo VS Code mapi. Varat arī izmantot īsinājumtaustiņu Ctrl+, lai VS kodā atvērtu sistēmas noklusējuma termināļa konsoli.
PADOMI ESP32-C3 koda izstrādei ieteicams izmantot VS kodu. Lejupielādējiet un instalējiet jaunāko VS Code versiju vietnē https://code.visualstudio.com/.
4.2.5. Ievads trešo pušu izstrādes vidēs
Papildus oficiālajai ESP-IDF izstrādes videi, kurā galvenokārt tiek izmantota C valoda, ESP32-C3 atbalsta arī citas galvenās programmēšanas valodas un plašu trešo pušu izstrādes vidi. Dažas ievērojamas iespējas ietver:
Arduino: atvērtā koda platforma gan aparatūrai, gan programmatūrai, kas atbalsta dažādus mikrokontrollerus, tostarp ESP32-C3.
Tas izmanto C++ valodu un piedāvā vienkāršotu un standartizētu API, ko parasti dēvē par Arduino valodu. Arduino plaši izmanto prototipu izstrādē un izglītības kontekstā. Tas nodrošina paplašināmu programmatūras pakotni un IDE, kas ļauj viegli apkopot un mirgot.
MicroPython: Python 3 valodas tulks, kas paredzēts darbam uz iegulto mikrokontrolleru platformām.
Izmantojot vienkāršu skriptu valodu, tas var tieši piekļūt ESP32-C3 perifērijas resursiem (piemēram, UART, SPI un I2C) un komunikācijas funkcijām (piemēram, Wi-Fi un Bluetooth LE).
46 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
Tas vienkāršo aparatūras mijiedarbību. MicroPython apvienojumā ar Python plašo matemātisko darbību bibliotēku ļauj ieviest sarežģītus algoritmus uz ESP32-C3, atvieglojot ar AI saistītu lietojumprogrammu izstrādi. Kā skriptu valodai nav nepieciešama atkārtota kompilācija; var veikt modifikācijas un tieši izpildīt skriptus.
NodeMCU: LUA valodas tulks, kas izstrādāts ESP sērijas mikroshēmām.
Tas atbalsta gandrīz visas ESP mikroshēmu perifērijas funkcijas un ir vieglāks nekā MicroPython. Līdzīgi kā MicroPython, NodeMCU izmanto skriptu valodu, novēršot nepieciešamību pēc atkārtotas kompilācijas.
Turklāt ESP32-C3 atbalsta arī NuttX un Zephyr operētājsistēmas. NuttX ir reāllaika operētājsistēma, kas nodrošina ar POSIX saderīgas saskarnes, uzlabojot lietojumprogrammu pārnesamību. Zephyr ir maza reāllaika operētājsistēma, kas īpaši izstrādāta IoT lietojumprogrammām. Tajā ir iekļautas daudzas programmatūras bibliotēkas, kas nepieciešamas IoT izstrādei, pakāpeniski pārtopot par visaptverošu programmatūras ekosistēmu.
Šajā grāmatā nav sniegtas detalizētas instalēšanas instrukcijas iepriekšminētajām izstrādes vidēm. Izstrādes vidi var instalēt atbilstoši savām prasībām, ievērojot attiecīgo dokumentāciju un norādījumus.
4.3 ESP-IDF kompilācijas sistēma
4.3.1. Kompilācijas sistēmas pamatjēdzieni
ESP-IDF projekts ir galvenās programmas kolekcija ar ievades funkciju un vairākiem neatkarīgiem funkcionāliem komponentiem. Piemēram,ample, projekts, kas kontrolē LED slēdžus, galvenokārt sastāv no ievades programmas galvenās un draivera sastāvdaļas, kas kontrolē GPIO. Ja vēlaties realizēt LED tālvadības pulti, jums jāpievieno arī Wi-Fi, TCP/IP protokolu steks utt.
Kompilācijas sistēma var apkopot, saistīt un ģenerēt izpildāmo failu files (.bin) kodam, izmantojot būvniecības noteikumu kopu. ESP-IDF v4.0 un jaunāku versiju kompilācijas sistēma pēc noklusējuma ir balstīta uz CMake, un kompilācijas skriptu CMakeLists.txt var izmantot, lai kontrolētu koda kompilācijas darbību. Papildus CMake pamata sintakses atbalstam ESP-IDF kompilācijas sistēma definē arī noklusējuma kompilācijas noteikumu kopu un CMake funkcijas, un jūs varat rakstīt kompilācijas skriptu ar vienkāršiem paziņojumiem.
4.3.2 Projekts File Struktūra
Projekts ir mape, kurā ir ievadprogrammas galvenie, lietotāja definēti komponenti un files nepieciešams, lai izveidotu izpildāmas lietojumprogrammas, piemēram, kompilācijas skriptus, konfigurāciju
4. nodaļa. Attīstības vides iestatīšana 47
files, nodalījumu tabulas utt. Projektus var kopēt un nodot tālāk, un to pašu izpildāmo failu file var apkopot un ģenerēt iekārtās ar tādu pašu ESP-IDF izstrādes vides versiju. Tipisks ESP-IDF projekts file struktūra ir parādīta 4.14. attēlā.
4.14. attēls. Tipisks ESP-IDF projekts file struktūra Tā kā ESP-IDF atbalsta vairākas Espressif IoT mikroshēmas, tostarp ESP32, ESP32-S sērija, ESP32-C sērija, ESP32-H sērija utt., pirms koda kompilēšanas ir jānosaka mērķis. Mērķis ir gan aparatūras ierīce, kas palaiž lietojumprogrammu, gan kompilācijas sistēmas izveides mērķis. Atkarībā no jūsu vajadzībām varat norādīt vienu vai vairākus sava projekta mērķus. Piemēram,ample, izmantojot komandu idf.py set-target esp32c3, varat iestatīt kompilācijas mērķi uz ESP32-C3, kura laikā tiks ielādēti ESP32C3 noklusējuma parametri un kompilācijas rīka ķēdes ceļš. Pēc kompilācijas ESP32C3 var ģenerēt izpildāmu programmu. Varat arī palaist komandu set-target vēlreiz, lai iestatītu citu mērķi, un kompilācijas sistēma automātiski attīrīs un pārkonfigurēs. Sastāvdaļas
ESP-IDF komponenti ir modulāras un neatkarīgas koda vienības, kas tiek pārvaldītas kompilācijas sistēmā. Tās ir sakārtotas kā mapes, un mapes nosaukums pēc noklusējuma apzīmē komponenta nosaukumu. Katram komponentam ir savs kompilācijas skripts, kas 48 ESP32-C3 Wireless Adventure: Visaptverošs ceļvedis IoT.
norāda tā kompilācijas parametrus un atkarības. Kompilācijas procesā komponenti tiek apkopoti atsevišķās statiskās bibliotēkās (.a files) un galu galā apvienot ar citiem komponentiem, lai izveidotu lietojumprogrammu.
ESP-IDF komponentu veidā nodrošina būtiskas funkcijas, piemēram, operētājsistēmu, perifērijas draiverus un tīkla protokolu steku. Šie komponenti tiek glabāti komponentu direktorijā, kas atrodas ESP-IDF saknes direktorijā. Izstrādātājiem šie komponenti nav jākopē myProject komponentu direktorijā. Tā vietā viņiem ir jānorāda tikai šo komponentu atkarības attiecības projekta failā CMakeLists.txt. file izmantojot REQUIRES vai PRIV_REQUIRES direktīvas. Kompilācijas sistēma automātiski atradīs un apkopos nepieciešamos komponentus.
Tāpēc komponentu direktorijs zem myProject nav nepieciešams. To izmanto tikai, lai iekļautu dažus projekta pielāgotos komponentus, kas var būt trešo pušu bibliotēkas vai lietotāja definēts kods. Turklāt komponentus var iegūt no jebkura direktorija, kas nav ESP-IDF vai pašreizējais projekts, piemēram, no atvērtā pirmkoda projekta, kas saglabāts citā direktorijā. Šajā gadījumā jums ir jāpievieno tikai komponenta ceļš, iestatot mainīgo EXTRA_COMPONENT_DIRS failā CMakeLists.txt zem saknes direktorija. Šis direktorijs ignorēs jebkuru ESP-IDF komponentu ar tādu pašu nosaukumu, nodrošinot, ka tiek izmantots pareizais komponents.
Ieejas programmas galvenā Galvenā direktorija projekta ietvaros seko tāpat file struktūra kā citas sastāvdaļas (piemēram, komponents1). Tomēr tam ir īpaša nozīme, jo tā ir obligāta sastāvdaļa, kurai jābūt katrā projektā. Galvenajā direktorijā ir projekta pirmkods un lietotāja programmas ieejas punkts, parasti ar nosaukumu app_main. Pēc noklusējuma lietotāja programmas izpilde sākas no šī ieejas punkta. Galvenais komponents atšķiras arī ar to, ka tas automātiski ir atkarīgs no visiem komponentiem meklēšanas ceļā. Tāpēc nav nepieciešams skaidri norādīt atkarības, izmantojot REQUIRES vai PRIV_REQUIRES direktīvas failā CMakeLists.txt. file.
Konfigurācija file Projekta saknes direktorijā ir konfigurācija file sdkconfig, kas satur visu projekta komponentu konfigurācijas parametrus. Sdkconfig file automātiski ģenerē kompilācijas sistēma, un to var modificēt un atjaunot ar komandu idf.py menuconfig. Menuconfig opcijas galvenokārt nāk no projekta Kconfig.projbuild un komponentu Kconfig. Komponentu izstrādātāji parasti pievieno konfigurācijas vienumus Kconfig, lai padarītu komponentu elastīgu un konfigurējamu.
Build directory Pēc noklusējuma projektā iekļautajā būvēšanas direktorijā tiek saglabāts starpposms files un fi-
4. nodaļa. Attīstības vides iestatīšana 49
galīgās izpildāmās programmas, ko ģenerē komanda idf.py build. Kopumā nav nepieciešams tieši piekļūt būvdirektorijas saturam. ESP-IDF nodrošina iepriekš definētas komandas, lai mijiedarbotos ar direktoriju, piemēram, izmantojot idf.py flash komandu, lai automātiski atrastu kompilēto bināro failu. file un flash to uz norādīto flash adresi vai izmantojot komandu idf.py fullclean, lai notīrītu visu būvēšanas direktoriju.
Sadalījuma tabula (partitions.csv) Katram projektam ir nepieciešama nodalījuma tabula, lai sadalītu zibatmiņas vietu un norādītu izpildāmās programmas un lietotāja datu telpas lielumu un sākuma adresi. Komanda idf.py flash vai OTA jaunināšanas programma mirgo programmaparatūru uz atbilstošo adresi saskaņā ar šo tabulu. ESP-IDF nodrošina vairākas noklusējuma nodalījumu tabulas komponentos/ partition_table, piemēram, partitions_singleapp.csv un partitions_two_ ota.csv, kuras var atlasīt izvēlnē menuconfig.
Ja sistēmas noklusējuma nodalījumu tabula nevar atbilst projekta prasībām, projekta direktorijam var pievienot pielāgotu partitions.csv un atlasīt menuconfig.
4.3.3. Kompilācijas sistēmas noklusējuma izveides noteikumi
Komponentu ar tādu pašu nosaukumu ignorēšanas noteikumi Komponentu meklēšanas procesā kompilācijas sistēma ievēro noteiktu secību. Vispirms tiek meklēti ESP-IDF iekšējie komponenti, pēc tam tiek meklēti lietotāja projekta komponenti un visbeidzot tiek meklēti komponenti mapē EXTRA_COMPONENT_DIRS. Gadījumos, kad vairākos direktorijos ir komponenti ar vienādu nosaukumu, pēdējā direktorijā atrastais komponents ignorēs visus iepriekšējos komponentus ar tādu pašu nosaukumu. Šis noteikums ļauj pielāgot ESP-IDF komponentus lietotāja projektā, vienlaikus saglabājot neskartu sākotnējo ESP-IDF kodu.
Noteikumi kopīgu komponentu iekļaušanai pēc noklusējuma Kā minēts 4.3.2. sadaļā, komponentiem ir skaidri jānorāda to atkarība no citiem komponentiem failā CMakeLists.txt. Tomēr plaši izplatīti komponenti, piemēram, freertos, pēc noklusējuma tiek automātiski iekļauti būvēšanas sistēmā, pat ja to atkarības attiecības nav skaidri noteiktas kompilācijas skriptā. ESP-IDF izplatītākie komponenti ietver freertos, Newlib, kaudzi, žurnālu, soc, esp_rom, esp_common, xtensa/riscv un cxx. Izmantojot šos izplatītos komponentus, varat izvairīties no atkārtota darba, rakstot failu CMakeLists.txt, un padarīt to kodolīgāku.
Konfigurācijas vienumu ignorēšanas noteikumi Izstrādātāji var pievienot noklusējuma konfigurācijas parametrus, pievienojot noklusējuma konfigurāciju file ar nosaukumu sdkconfig.defaults projektam. Piemēram,ample, pievienojot CONFIG_LOG_
50 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
DEFAULT_LEVEL_NONE = y var konfigurēt UART interfeisu, lai pēc noklusējuma nedrukātu žurnāla datus. Turklāt, ja konkrētam mērķim ir jāiestata īpaši parametri, konfigurācija file Var pievienot ar nosaukumu sdkconfig.defaults.TARGET_NAME, kur TARGET_NAME var būt esp32s2, esp32c3 un tā tālāk. Šīs konfigurācijas files tiek importēti sdkconfig kompilēšanas laikā ar vispārējo noklusējuma konfigurāciju file Vispirms tiek importēts sdkconfig.defaults, kam seko mērķa konfigurācija file, piemēram, sdkconfig.defaults.esp32c3. Gadījumos, kad ir konfigurācijas vienumi ar tādu pašu nosaukumu, pēdējā konfigurācija file ignorēs iepriekšējo.
4.3.4. Ievads kompilācijas skriptā
Izstrādājot projektu, izmantojot ESP-IDF, izstrādātājiem ir ne tikai jāraksta pirmkods, bet arī jāraksta CMakeLists.txt projektam un komponentiem. CMakeLists.txt ir teksts file, kas pazīstams arī kā kompilācijas skripts, kas definē virkni kompilācijas objektu, kompilācijas konfigurācijas vienumus un komandas, lai vadītu avota koda kompilēšanas procesu. ESP-IDF v4.3.2 kompilācijas sistēma ir balstīta uz CMake. Papildus vietējo CMake funkciju un komandu atbalstam tas definē arī vairākas pielāgotas funkcijas, padarot kompilācijas skriptu rakstīšanu daudz vienkāršāku.
ESP-IDF kompilācijas skripti galvenokārt ietver projekta kompilācijas skriptu un komponentu kompilācijas skriptus. CMakeLists.txt projekta saknes direktorijā sauc par projekta kompilācijas skriptu, kas vada visa projekta kompilācijas procesu. Pamatprojekta kompilācijas skripts parasti ietver šādas trīs rindiņas:
1. cmake_minimum_required(VERSION 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Tostarp pirmajā rindā jāievieto cmake_minimum_required (VERSION 3.5), kas tiek izmantots, lai norādītu projektam nepieciešamo minimālo CMake versijas numuru. Jaunākās CMake versijas parasti ir saderīgas ar vecākām versijām, tāpēc, lai nodrošinātu saderību, attiecīgi pielāgojiet versijas numuru, izmantojot jaunākas CMake komandas.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) importē iepriekš definētus konfigurācijas vienumus un ESP-IDF kompilācijas sistēmas komandas, tostarp kompilācijas sistēmas noklusējuma būvēšanas noteikumus, kas aprakstīti 4.3.3. sadaļā. project(myProject) pats izveido projektu un norāda tā nosaukumu. Šis nosaukums tiks izmantots kā galīgais izvades binārs file nosaukums, ti, myProject.elf un myProject.bin.
Projektam var būt vairākas sastāvdaļas, tostarp galvenā sastāvdaļa. Katra komponenta augstākā līmeņa direktorijā ir fails CMakeLists.txt file, ko sauc par komponentu kompilācijas skriptu. Komponentu kompilācijas skripti galvenokārt tiek izmantoti, lai norādītu komponentu atkarības, konfigurācijas parametrus, pirmkodu files, un iekļauta galvene files priekš
4. nodaļa. Attīstības vides iestatīšana 51
kompilācija. Izmantojot ESP-IDF pielāgoto funkciju idf_component_register, komponenta kompilācijas skriptam minimālais nepieciešamais kods ir šāds:
1. idf_component_register(SRCS "src1.c"
2.
INCLUDE_DIRS “iekļauts”
3.
NEPIECIEŠAMS komponents1)
SRCS parametrs nodrošina avota sarakstu files komponentā, atdalītas ar atstarpēm, ja ir vairākas files. Parametrs INCLUDE_DIRS nodrošina publisko galveņu sarakstu file komponenta direktorijus, kas tiks pievienoti iekļaušanas meklēšanas ceļam citiem komponentiem, kas ir atkarīgi no pašreizējā komponenta. Parametrs REQUIRES identificē pašreizējā komponenta publiskā komponenta atkarības. Komponentiem ir skaidri jānorāda, no kuriem komponentiem tie ir atkarīgi, piemēram, komponents2 ir atkarīgs no komponenta1. Tomēr galvenajam komponentam, kas pēc noklusējuma ir atkarīgs no visiem komponentiem, parametru REQUIRES var izlaist.
Turklāt kompilācijas skriptā var izmantot arī vietējās CMake komandas. Piemēram,ample, izmantojiet komandu kopu, lai iestatītu mainīgos, piemēram, set(VARIABLE “VALUE”).
4.3.5. Ievads parastajās komandās
ESP-IDF koda kompilācijas procesā izmanto CMake (projekta konfigurācijas rīks), Ninja (projekta veidošanas rīks) un esptool (flash rīks). Katram rīkam ir atšķirīga loma apkopošanas, veidošanas un zibatmiņas procesā, kā arī tiek atbalstītas dažādas darbības komandas. Lai atvieglotu lietotāja darbību, ESP-IDF pievieno vienotu priekšgala idf.py, kas ļauj ātri izsaukt iepriekš minētās komandas.
Pirms idf.py izmantošanas pārliecinieties, ka:
· Pašreizējam terminālim ir pievienots ESP-IDF vides mainīgais IDF_PATH. · Komandu izpildes direktorijs ir projekta saknes direktorijs, kas ietver
projekta kompilācijas skripts CMakeLists.txt.
Kopējās idf.py komandas ir šādas:
· idf.py –help: parāda komandu sarakstu un to lietošanas instrukcijas. · idf.py set-target : iestatot kompilāciju taidf.py fullcleanrget, piemēram
kā aizstājot ar esp32c3. · idf.py menuconfig: palaist menuconfig, termināļa grafisko konfigurāciju
rīks, kas var atlasīt vai modificēt konfigurācijas opcijas, un konfigurācijas rezultāti tiek saglabāti sdkconfig file. · idf.py build: koda kompilācijas uzsākšana. Starpposms files un kompilācijas ģenerētā galīgā izpildāmā programma pēc noklusējuma tiks saglabāta projekta veidošanas direktorijā. Kompilācijas process ir pakāpenisks, kas nozīmē, ka tikai viens avots file tiek modificēts, tikai modificētais file tiks apkopota nākamreiz.
52 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
· idf.py clean: starpprodukta tīrīšana files, ko rada projekta apkopojums. Viss projekts būs spiests apkopot nākamajā apkopojumā. Ņemiet vērā, ka CMake konfigurācija un menuconfig veiktās konfigurācijas modifikācijas tīrīšanas laikā netiks dzēstas.
· idf.py fullclean: dzēš visu būvdirektoriju, ieskaitot visu CMake konfigurācijas izvadi files. Atkārtoti veidojot projektu, CMake konfigurēs projektu no jauna. Lūdzu, ņemiet vērā, ka šī komanda rekursīvi izdzēsīs visu files būvēšanas direktorijā, tāpēc izmantojiet to piesardzīgi un projekta konfigurāciju file netiks dzēsts.
· idf.py flash: izpildāmās programmas binārā mirgošana file ģenerēts, būvējot uz mērķa ESP32-C3. Iespējas — lpp un -b tiek izmantoti, lai iestatītu attiecīgi seriālā porta ierīces nosaukumu un mirgošanas datu pārraides ātrumu. Ja šīs divas opcijas nav norādītas, seriālais ports tiks automātiski noteikts un tiks izmantots noklusējuma datu pārraides ātrums.
· idf.py monitors: parāda mērķa ESP32-C3 seriālā porta izvadi. Opciju -p var izmantot, lai norādītu resursdatora puses seriālā porta ierīces nosaukumu. Seriālā porta drukāšanas laikā nospiediet taustiņu kombināciju Ctrl+], lai izietu no monitora.
Iepriekš minētās komandas var arī kombinēt pēc vajadzības. Piemēram,ample, komanda idf.py build flash monitor veiks koda apkopošanu, mirgo un secīgi atvērs seriālā porta monitoru.
Varat apmeklēt vietni https://bookc3.espressif.com/build-system, lai uzzinātu vairāk par ESP-IDF kompilācijas sistēmu.
4.4. Prakse: sastādīšana PiemampProgramma "Mirkšķināt"
4.4.1 Piemample Analīze
Šajā sadaļā programma Blink tiks izmantota kā bijušaisamplai analizētu file detalizēti reāla projekta struktūra un kodēšanas noteikumi. Programma Blink ievieš LED mirgošanas efektu, un projekts atrodas direktorijā examples/get-started/blink, kas satur avotu file, konfigurācija files, un vairāki kompilācijas skripti.
Šajā grāmatā izklāstītais viedās gaismas projekts ir balstīts uz šo bijušoampprogramma. Funkcijas tiks pakāpeniski pievienotas turpmākajās nodaļās, lai to beidzot pabeigtu.
Avota kods Lai demonstrētu visu izstrādes procesu, programma Blink ir kopēta uz esp32c3-iot-projects/device firmware/1 blink.
Mirkšķināšanas projekta direktoriju struktūra files ir parādīts 4.15. attēlā.
Blink projekts satur tikai vienu galveno direktoriju, kas ir īpašs komponents, kas
4. nodaļa. Attīstības vides iestatīšana 53
4.15. attēls. File mirgošanas projekta direktoriju struktūra
jāiekļauj, kā aprakstīts 4.3.2. Galvenais direktorijs galvenokārt tiek izmantots, lai saglabātu funkcijas app_main() ieviešanu, kas ir lietotāja programmas ieejas punkts. Blink projektā nav iekļauts komponentu direktorijs, jo šis ex.ample ir jāizmanto tikai ESP-IDF komplektācijā iekļautie komponenti, un tam nav nepieciešami papildu komponenti. Blink projektā iekļautais fails CMakeLists.txt tiek izmantots, lai vadītu kompilācijas procesu, savukārt Kconfig.projbuild tiek izmantots, lai pievienotu konfigurācijas vienumus šim ex.ampprogramma izvēlnes konfigurācijā. Citas nevajadzīgas files neietekmēs koda apkopošanu, tāpēc tie šeit netiks apspriesti. Detalizēts ievads mirgošanas projektā files ir šāds.
1. /*blink.c ietver šādu galveni files*/
2. #iekļauts
//Standarta C bibliotēkas galvene file
3. #include “freertos/freeRTOS.h” //FreeRTOS galvenā galvene file
4. #include “freertos/task.h”
//FreeRTOS uzdevuma galvene file
5. #include “sdkconfig.h”
//Konfigurācijas galvene file ģenerēja kconfig
6. #include “driver/gpio.h”
//GPIO draivera galvene file
Avots file blink.c satur virkni galvenes files atbilst funkcijas deklarācijai-
cijas. ESP-IDF parasti ievēro standarta bibliotēkas galvenes iekļaušanas secību files, FreeR-
TOS galvene files, vadītāja galvene files, citu komponentu galvene files un projekta galveni files.
Secība, kādā galvene files ir iekļauti var ietekmēt galīgo apkopošanas rezultātu, tāpēc mēģiniet
ievērojiet noklusējuma noteikumus. Jāņem vērā, ka sdkconfig.h tiek ģenerēts automātiski
kconfig, un to var konfigurēt tikai ar komandu idf.py menuconfig.
Šīs galvenes tieša modifikācija file tiks pārrakstīts.
1. /*Varat atlasīt GPIO, kas atbilst LED idf.py menuconfig, un menuconfig modifikācijas rezultāts ir CONFIG_BLINK vērtība.
_GPIO tiks mainīts. Varat arī tieši mainīt makro definīciju
šeit un mainiet CONFIG_BLINK_GPIO uz fiksētu vērtību.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. Void app_main(void)
4. {
5.
/*Konfigurējiet IO kā GPIO noklusējuma funkciju, iespējojiet vilkšanas režīmu un
6.
atspējot ievades un izvades režīmus*/
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 bezvadu piedzīvojums: visaptverošs ceļvedis par IoT
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Iestatīt GPIO uz izvades režīmu*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); kamēr(1) {
/*Drukāt žurnālu*/ printf (“LEDn izslēgšana”); /*Izslēdziet LED (izvades zems līmenis)*/ gpio_set_level(BLINK_GPIO, 0); /*Aizkave (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf (“LEDn ieslēgšana”); /*Ieslēgt LED (izvades augsts līmenis)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Funkcija app_main() programmā Blink, piemample programma kalpo kā ieejas punkts lietotāju programmām. Tā ir vienkārša funkcija bez parametriem un atgriešanas vērtības. Šī funkcija tiek izsaukta pēc tam, kad sistēma ir pabeigusi inicializāciju, kas ietver tādus uzdevumus kā žurnāla seriālā porta inicializācija, viena/divkodolu konfigurēšana un sargsuņa konfigurēšana.
Funkcija app_main() darbojas uzdevuma main kontekstā. Šī uzdevuma steka lielumu un prioritāti var pielāgot izvēlnē menuconfig Componentconfig Kopējais ESP saistīts.
Vienkāršiem uzdevumiem, piemēram, gaismas diodes mirgošanai, visu nepieciešamo kodu var ieviest tieši funkcijā app_main(). Tas parasti ietver GPIO inicializāciju atbilstoši LED un cilpas while (1) izmantošanu, lai ieslēgtu un izslēgtu LED. Varat arī izmantot FreeRTOS API, lai izveidotu jaunu uzdevumu, kas apstrādā LED mirgošanu. Kad jaunais uzdevums ir veiksmīgi izveidots, varat iziet no funkcijas app_main().
Main/CMakeLists.txt saturs file, kas nosaka galvenās sastāvdaļas apkopošanas procesu, ir šāds:
1. idf_component_register(SRCS "blink.c" INCLUDE_DIRS "." )
Tostarp main/CMakeLists.txt izsauc tikai vienu kompilācijas sistēmas funkciju, tas ir, idf_component_register. Līdzīgi kā CMakeLists.txt vairumam citu komponentu, blink.c tiek pievienots SRCS un avots files, kas pievienoti SRCS, tiks apkopoti. Tajā pašā laikā ".", kas apzīmē ceļu, kur atrodas CMakeLists.txt, ir jāpievieno mapei INCLUDE_DIRS kā galvenes meklēšanas direktoriji. files. CMakeLists.txt saturs ir šāds:
1. #Norādiet v3.5 kā vecāko CMake versiju, ko atbalsta pašreizējais projekts 2. #Versijas, kas ir vecākas par v3.5, ir jājaunina pirms kompilācijas turpināšanas 3. cmake_minimum_required(VERSION 3.5) 4. #Iekļaujiet ESP noklusējuma CMake konfigurāciju -IDF kompilācijas sistēma
4. nodaļa. Attīstības vides iestatīšana 55
5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Izveidojiet projektu ar nosaukumu "blink" 7. project(myProject)
Tostarp CMakeLists.txt saknes direktorijā galvenokārt ietver $ENV{IDF_ PATH}/tools/cmake/project.cmake, kas ir galvenā CMake konfigurācija. file nodrošina ESP-IDF. To izmanto, lai con
Dokumenti / Resursi
![]() |
Espressif Systems ESP32-C3 bezvadu piedzīvojums [pdfLietotāja rokasgrāmata ESP32-C3 Wireless Adventure, ESP32-C3, Wireless Adventure, Adventure |