ESP32-C3 Haririk gabeko Abentura
ESP32-C3 Haririk gabeko Abentura
IoTrako gida integrala
Espressif Systems 12ko ekainaren 2023a
Zehaztapenak
- Produktua: ESP32-C3 Wireless Adventure
- Fabrikatzailea: Espressif Systems
- Eguna: 12ko ekainaren 2023a
Produktuak erabiltzeko jarraibideak
Prestaketa
ESP32-C3 haririk gabeko abentura erabili aurretik, ziurtatu zarela
IoT-aren kontzeptuak eta arkitektura ezagutzen ditu. Horrek lagunduko du
gailua IoT ekosistema handiagora nola sartzen den ulertzen duzu
eta etxe adimendunetan izan ditzakeen aplikazioak.
IoT Proiektuen Sarrera eta Praktika
Atal honetan, IoT proiektu tipikoak ezagutuko dituzu,
IoT gailu arruntetarako oinarrizko moduluak barne, oinarrizko moduluak
bezeroen aplikazioak eta IoT hodeiko plataforma arruntak. Hau izango da
zurea ulertzeko eta sortzeko oinarri bat eskaintzen dizu
IoT proiektu propioak.
Praktika: Smart Light Project
Praktika-proiektu honetan, smart bat nola sortzen ikasiko duzu
argia ESP32-C3 Wireless Adventure erabiliz. Proiektuaren egitura,
funtzioak, hardwarearen prestaketa eta garapen prozesua izango dira
zehatz-mehatz azalduta.
Proiektuaren Egitura
Proiektuak hainbat osagai ditu, besteak beste
ESP32-C3 Haririk gabeko Abentura, LEDak, sentsoreak eta hodei bat
backend.
Proiektuaren funtzioak
Argi adimendunaren proiektuak distira kontrolatzeko eta
LEDen kolorea urrunetik mugikorretarako aplikazio baten bidez edo web
interfazea.
Hardwarearen Prestaketa
Proiektua prestatzeko, bildu beharko duzu
beharrezko hardware osagaiak, hala nola, ESP32-C3 Haririk gabekoa
Abentura-plaka, LED-ak, erresistentziak eta elikadura-iturri bat.
Garapen Prozesua
Garapen prozesuak garapena konfiguratzea dakar
ingurunea, LEDak kontrolatzeko kodea idazten, konektatzen
hodeiko backend-a eta smart-aren funtzionaltasuna probatzen
argia.
ESP RainMaker-en sarrera
ESP RainMaker IoT garatzeko esparru indartsua da
gailuak. Atal honetan, ESP RainMaker zer den eta
nola inplementa daitekeen zure proiektuetan.
Zer da ESP RainMaker?
ESP RainMaker hodeian oinarritutako plataforma bat da
IoT gailuak eraikitzeko eta kudeatzeko tresnak eta zerbitzuak.
ESP RainMakerren ezarpena
Atal honetan parte hartzen duten osagai desberdinak azaltzen dira
ESP RainMaker ezartzea, erreklamazio zerbitzua barne,
RainMaker Agent, hodeiko backend-a eta RainMaker Bezeroa.
Praktika: ESP RainMaker-ekin garatzeko funtsezko puntuak
Praktika atal honetan, funtsezko puntuak ezagutuko dituzu
kontuan hartu ESP RainMaker-ekin garatzerakoan. Honek gailua barne hartzen du
erreklamazioa, datuen sinkronizazioa eta erabiltzaileen kudeaketa.
ESP RainMaker-en ezaugarriak
ESP RainMaker-ek hainbat funtzio eskaintzen ditu erabiltzaileen kudeaketarako, amaieran
erabiltzaileak eta administratzaileak. Ezaugarri hauek gailu erraza ahalbidetzen dute
konfigurazioa, urruneko kontrola eta monitorizazioa.
Garapen-ingurunea ezartzea
Atal honek gaina ematen duview ESP-IDF (Espressif IoT
Garapen-esparrua), hau da, garapen-esparru ofiziala
ESP32n oinarritutako gailuetarako. Horren bertsio desberdinak azaltzen ditu
ESP-IDF eta garapen-ingurunea nola konfiguratu.
Hardware eta Driver Garapena
Smart Light produktuen hardware diseinua ESP32-C3-n oinarrituta
Atal hau argi adimendunaren hardware diseinuan zentratzen da
ESP32-C3 Wireless Adventuren oinarritutako produktuak. estaltzen du
Argi adimendunen produktuen ezaugarriak eta konposizioa, baita
ESP32-C3 core sistemaren hardware diseinua.
Smart Light produktuen ezaugarriak eta osaera
Azpiatal honetan egiten dituzten ezaugarriak eta osagaiak azaltzen dira
argi adimendunen produktuak. Funtzio desberdinak eztabaidatzen ditu
eta diseinatzeko gogoetak argi adimendunak sortzeko.
ESP32-C3 Core Sistemaren hardware diseinua
ESP32-C3 core sistemaren hardware diseinuak potentzia barne hartzen du
hornidura, pizteko sekuentzia, sistema berrezartzea, SPI flash, erloju iturria,
eta RF eta antena gogoetak. Azpiatal honek xedatzen du
alderdi horiei buruzko informazio zehatza.
Ohiko galderak
G: Zer da ESP RainMaker?
E: ESP RainMaker tresnak eskaintzen dituen hodeian oinarritutako plataforma bat da
eta IoT gailuak eraikitzeko eta kudeatzeko zerbitzuak. Sinplifikatzen du
garapen prozesua eta gailua erraz konfiguratzeko aukera ematen du, urruneko
kontrola, eta jarraipena.
G: Nola konfigura dezaket garapen-ingurunea
ESP32-C3?
A: ESP32-C3-ren garapen-ingurunea konfiguratzeko, behar duzu
ESP-IDF (Espressif IoT Development Framework) instalatzeko eta
konfiguratu emandako argibideen arabera. ESP-IDF da
ESP32n oinarritutako gailuen garapen-esparru ofiziala.
G: Zeintzuk dira ESP RainMaker-en ezaugarriak?
E: ESP RainMaker-ek hainbat funtzio eskaintzen ditu, erabiltzailea barne
kudeaketa, azken erabiltzaileen eginbideak eta administratzaile funtzioak. Erabiltzaileen kudeaketa
gailuak erreklamatzeko eta datuak sinkronizatzeko erraztasunak ematen ditu. Azken erabiltzailea
eginbideek gailuen urrutiko kontrola ahalbidetzen dute mugikorreko aplikazio baten bidez edo
web interfazea. Admin eginbideek gailua kontrolatzeko tresnak eskaintzen dituzte
eta kudeaketa.
ESP32-C3 Haririk gabeko Abentura
IoTrako gida integrala
Espressif Systems 12ko ekainaren 2023a
Edukiak
I Prestaketa
1
1 IoT-en sarrera
3
1.1 IoT-aren arkitektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 IoT aplikazioa Etxe Adimendunetan . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 IoT Proiektuen Sarrera eta Praktika
9
2.1 IoT proiektu tipikoen sarrera. . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 IoT gailu arruntetarako oinarrizko moduluak . . . . . . . . . . . . . . . . . 9
2.1.2 Bezero-aplikazioen oinarrizko moduluak . . . . . . . . . . . . . . . . . . . 10
2.1.3 IoT Hodeiko Plataformen Sarrera . . . . . . . . . . . . . . 11
2.2 Praktika: Smart Light Proiektua . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Proiektuaren egitura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Proiektuaren funtzioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Hardwarearen prestaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Garapen-prozesua . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 ESP RainMaker-en sarrera
19
3.1 Zer da ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 ESP RainMakerren ezarpena. . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Erreklamazio Zerbitzua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 RainMaker Agentea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Hodeiko backend-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 RainMaker bezeroa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Praktika: ESP RainMaker-ekin garatzeko gakoak. . . . . . . . . . . . 25
3.4 ESP RainMaker-en ezaugarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Erabiltzaileen kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Azken erabiltzaileen eginbideak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Administratzailearen Ezaugarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Garapen-ingurunea ezartzea
31
4.1 ESP-IDF baino gehiagoview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 ESP-IDF bertsioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 ESP-IDF Git lan-fluxua . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Bertsio egoki bat hautatzea . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Gehiagoview ESP-IDF SDK direktorioaren . . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF garapen-ingurunea konfiguratzea . . . . . . . . . . . . . . . . . 38 4.2.1 ESP-IDF garapen-ingurunea Linux-en konfiguratzea . . . . . . . . 38 4.2.2 Windows-en ESP-IDF garapen-ingurunea konfiguratzea . . . . . . 40 4.2.3 ESP-IDF garapen-ingurunea konfiguratzea Mac-en . . . . . . . . . 45 4.2.4 VS kodea instalatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Hirugarrenen garapen-inguruneen sarrera . . . . . . . . 46 4.3 ESP-IDF Konpilazio Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Konpilazio-sistemaren oinarrizko kontzeptuak . . . . . . . . . . . . . . . . . . 47 4.3.2 Proiektua File Egitura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Konpilazio-sistemaren eraikuntza-arau lehenetsiak . . . . . . . . . . . . . 50 4.3.4 Konpilazio script-aren sarrera . . . . . . . . . . . . . . . . . . 51 4.3.5 Komando arrunten sarrera . . . . . . . . . . . . . . . . . . . 52 4.4 Praktika: Adibample Programa "Kinukatu". . . . . . . . . . . . . . . . . . 53 4.4.1 Adibample Analisia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Blink programa konpilatzea . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Blink programa keinuka . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Blink programaren serie-portuaren erregistroaren analisia . . . . . . . . . . . . . . 60 4.5 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Hardware eta Driver Garapena
65
5 Smart Light produktuen hardware diseinua ESP32-C3-n oinarrituta
67
5.1 Argi adimendunen produktuen ezaugarriak eta konposizioa . . . . . . . . . . . . . . . 67
5.2 ESP32-C3 Core Sistemaren Hardware Diseinua . . . . . . . . . . . . . . . . . . . 70
5.2.1 Elikatze-iturria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Pizteko sekuentzia eta sistema berrezarri . . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Erlojuaren iturria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF eta antena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Uhalak egiteko pinak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO eta PWM kontrolagailua . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Praktika: Argi-sistema adimendun bat eraikitzea ESP32-C3-rekin. . . . . . . . . . . . . 80
5.3.1 Moduluak hautatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 PWM seinaleen GPIOak konfiguratzea. . . . . . . . . . . . . . . . . . . . 82
5.3.3 Firmwarea deskargatzea eta arazketa-interfazea . . . . . . . . . . . . 82
5.3.4 RF Diseinurako jarraibideak . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Elikatze-iturriaren diseinurako jarraibideak . . . . . . . . . . . . . . . . . . . 86 5.4 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Gidariaren garapena
87
6.1 Gidariak garatzeko prozesua . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 Aplikazio Periferikoak . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 LED kontrolatzailearen oinarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Kolore-espazioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 LED kontrolatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 LED Iluntzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 PWMrako sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 LED dimming kontrolatzaileen garapena. . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Biltegiratze ez lurrunkorra (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM kontrolagailua (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM programazioa . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Praktika: Drivers gehitzea Smart Light proiektuan . . . . . . . . . . . . . . . . . 103
6.5.1 Botoien kontrolatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 LED iluntzeko kontrolatzailea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Haririk gabeko Komunikazioa eta Kontrola III
109
7 Wi-Fi konfigurazioa eta konexioa
111
7.1 Wi-Fiaren oinarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Wi-Fiaren sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 IEEE 802.11ren bilakaera. . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Wi-Fi kontzeptuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Wi-Fi konexioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Bluetooth-aren oinarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Bluetooth-aren sarrera . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Bluetooth kontzeptuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Bluetooth konexioa . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Wi-Fi sarearen konfigurazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Wi-Fi sarearen konfigurazio gida . . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetootha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Beste metodo batzuk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Wi-Fi programazioa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Wi-Fi osagaiak ESP-IDFn . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Ariketa: Wi-Fi konexioa . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Ariketa: Wi-Fi konexio adimenduna . . . . . . . . . . . . . . . . . . . . . 145
7.5 Praktika: Wi-Fi konfigurazioa Smart Light proiektuan. . . . . . . . . . . . . . . 156 7.5.1 Wi-Fi konexioa Smart Light proiektuan . . . . . . . . . . . . . . . . . 156 7.5.2 Wi-Fi adimendunaren konfigurazioa . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Tokiko Kontrola
159
8.1 Tokiko Kontrolaren Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Tokiko Kontrolaren Aplikazioa . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 AurrerapenatagTokiko Kontrolaren es. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Smartphone bidez kontrolatutako gailuak ezagutzea . . . . . . . . . . 161
8.1.4 Smartphone eta gailuen arteko datu-komunikazioa . . . . . . . . 162
8.2 Tokiko aurkikuntza-metodo arruntak . . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Igorpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Igorpenaren eta Multicasten arteko konparaketa . . . . . . . . . . . . . . 176
8.2.4 Multicast aplikazio-protokoloa mDNS aurkikuntza lokalerako . . . . . . . . 176
8.3 Tokiko datuetarako komunikazio-protokolo komunak . . . . . . . . . . . . . . . 179
8.3.1 Transmisioaren Kontrolerako Protokoloa (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 Hipertestua transferitzeko protokoloa (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Erabiltzaile Datagram Protokoloa (UDP). . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Aplikazio mugatuko protokoloa (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Bluetooth protokoloa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Datuak Komunikatzeko Protokoloen Laburpena . . . . . . . . . . . . . . . 203
8.4 Datuen segurtasunaren bermea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Garraio-geruzaren segurtasunaren (TLS) sarrera . . . . . . . . . . . . . 207
8.4.2 Da-ren sarreratagRam Transport Layer Security (DTLS) . . . . . . . 213
8.5 Praktika: Tokiko Kontrola Smart Light Proiektuan . . . . . . . . . . . . . . . . . . 217
8.5.1 Wi-Fi bidezko Tokiko Kontrol Zerbitzaria sortzea . . . . . . . . . . . . . . . 217
8.5.2 Kontrol lokalaren funtzionaltasuna egiaztatzea script-ak erabiliz. . . . . . . . . . . 221
8.5.3 Bluetooth bidezko Tokiko Kontrol Zerbitzaria sortzea . . . . . . . . . . . . 222
8.6 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Hodeiaren Kontrola
225
9.1 Urruneko kontrolaren sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Hodeiko Datuak Komunikatzeko Protokoloak . . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT Sarrera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 MQTT printzipioak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT mezuen formatua . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Protokoloen alderaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 MQTT Broker konfiguratzea Linux eta Windows-en . . . . . . . . . . . . 233 9.2.6 ESP-IDF-n oinarritutako MQTT bezeroa konfiguratzea . . . . . . . . . . . . . . . . 235 9.3 MQTT datuen segurtasuna bermatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Ziurtagirien esanahia eta funtzioa . . . . . . . . . . . . . . . . . . . 237 9.3.2 Ziurtagiriak lokalean sortzea . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 MQTT Broker konfiguratzea . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT bezeroa konfiguratzea . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Praktika: urrutiko kontrola ESP RainMaker-en bidez . . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMakerren oinarriak . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Nodo eta hodeiko backend komunikazio-protokoloa . . . . . . . . . . . 244 9.4.3 Bezeroaren eta Cloud Backend-en arteko komunikazioa . . . . . . . . . . . 249 9.4.4 Erabiltzaile-rolak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Oinarrizko zerbitzuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Argi adimenduna Adibample . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker aplikazioa eta hirugarrenen integrazioak . . . . . . . . . . . . . . . 262 9.5 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Smartphone aplikazioen garapena
269
10.1 Smartphone aplikazioen garapenaren sarrera. . . . . . . . . . . . . . . . . . 269
10.1.1 Gehiagoview Smartphone App Garapena. . . . . . . . . . . . . . . 270
10.1.2 Android proiektuaren egitura . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 iOS Proiektuaren egitura . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Android jarduera baten bizi-zikloa . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 iOS-en bizi-zikloa ViewKontrolatzailea . . . . . . . . . . . . . . . . . . . . . . 273
10.2 Smartphone aplikazio-proiektu berri bat sortzea . . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Android garapenerako prestatzen . . . . . . . . . . . . . . . . . . . 275
10.2.2 Android proiektu berri bat sortzea . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 MyRainmaker-en menpekotasunak gehitzea . . . . . . . . . . . . . . . . . 276
10.2.4 Baimen eskaera Android-en . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 iOS garapenerako prestatzen . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 iOS proiektu berri bat sortzea . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 MyRainmaker-en menpekotasunak gehitzea . . . . . . . . . . . . . . . . . 279
10.2.8 Baimen-eskaera iOS-en. . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Aplikazioaren eskakizun funtzionalen azterketa . . . . . . . . . . . . . . . . . . 281
10.3.1 Proiektuaren Baldintza Funtzionalen analisia . . . . . . . . . . . . 282
10.3.2 Erabiltzaileen kudeaketa-eskakizunen analisia . . . . . . . . . . . . . . . 282 10.3.3 Gailuen hornikuntza eta lotura-eskakizunen analisia . . . . . . . 283 10.3.4 Urruneko agintearen eskakizunen analisia . . . . . . . . . . . . . . . . 283 10.3.5 Programazio-baldintzen analisia . . . . . . . . . . . . . . . . . . . 284 10.3.6 Erabiltzaile-zentroaren eskakizunen analisia . . . . . . . . . . . . . . . . . . 285 10.4 Erabiltzaileen kudeaketaren garapena . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker APIen sarrera . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Smartphone bidez komunikazioa hastea . . . . . . . . . . . . . . . . 286 10.4.3 Kontuaren erregistroa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Kontuan saioa hasteko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Gailuen hornikuntzaren garapena . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Eskaneatzeko gailuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Gailuak konektatzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Gako sekretuak sortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Nodoaren IDa lortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Hornikuntza-gailuak . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Gailuen kontrolaren garapena . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Gailuak hodeiko kontuekin lotzea . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Gailuen zerrenda lortzea . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Gailuaren egoera lortzea . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Gailuaren egoera aldatzea . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Programazioaren eta Erabiltzaile Zentroaren garapena . . . . . . . . . . . . . . . . . . . 313 10.7.1 Programazio-funtzioa ezartzea . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Erabiltzaile-zentroa ezartzea . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Hodeiko API gehiago . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Firmwarearen eguneratzea eta bertsioen kudeaketa
321
11.1 Firmwarearen eguneratzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Gehiagoview Partizio Taulen . . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Firmwarearen abio-prozesua . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Gehiagoview OTA Mekanismoarena. . . . . . . . . . . . . . . . . . . . . 326
11.2 Firmwarearen bertsioaren kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Firmwarearen markaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Atzeraetorria eta atzeraeraztea . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Praktika: airez gaindiko (OTA) Adibample . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Eguneratu firmwarea Ostalari lokal baten bidez . . . . . . . . . . . . . . . . . 332
11.3.2 Berritu firmwarea ESP RainMaker-en bidez. . . . . . . . . . . . . . . 335
11.4 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Optimizazioa eta Masa Produkzioa
343
12 Potentziaren kudeaketa eta potentzia baxuko optimizazioa
345
12.1 ESP32-C3 Energia-kudeaketa . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Maiztasun-eskalatze dinamikoa . . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Energia-kudeaketako konfigurazioa . . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 Potentzia baxuko modua . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Modem-lo modua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Arin-lo modua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Lo sakoneko modua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Korronte-kontsumoa potentzia-modu desberdinetan . . . . . . . . . . . . . 358
12.3 Potentzia-kudeaketa eta potentzia gutxiko arazketa . . . . . . . . . . . . . . . . . 359
12.3.1 Erregistroaren arazketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO arazketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Praktika: Energiaren kudeaketa Smart Light proiektuan. . . . . . . . . . . . . . . 363
12.4.1 Energia kudeatzeko eginbidea konfiguratzea . . . . . . . . . . . . . . . . . 364
12.4.2 Erabili energia kudeatzeko blokeoak . . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Energia-kontsumoa egiaztatzea . . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Gailuaren segurtasun-eginbide hobetuak
369
13.1 Gehiagoview IoT Gailuen Datuen Segurtasuna. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Zergatik babestu IoT gailuaren datuak? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 IoT gailuen datuen segurtasunerako oinarrizko eskakizunak . . . . . . . . . . . . 371
13.2 Datuen osotasuna babestea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Osotasuna egiaztatzeko metodoaren sarrera. . . . . . . . . . . . . . 372
13.2.2 Firmwarearen datuen osotasuna egiaztatzea . . . . . . . . . . . . . . . . . . 373
13.2.3 Adibample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Datuen konfidentzialtasuna babestea . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Datuen enkriptatzeari buruzko sarrera . . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Flash enkriptatzeko eskemaren sarrera. . . . . . . . . . . . . . . . . 376
13.3.3 Flash enkriptatutako gakoak biltegiratzea . . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Flash enkriptatzeko lan-modua . . . . . . . . . . . . . . . . . . . . 380
13.3.5 Flash enkriptatzeko prozesua . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 NVS enkriptatzeari buruzko sarrera . . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 AdibampFlash Encryption eta NVS Encryption fitxategiak. . . . . . . . . . . 384
13.4 Datuen zilegitasunaren babesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Sinadura Digitalaren Sarrera . . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Gehiagoview Abio eskema segurua. . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Software-abio seguruaren sarrera. . . . . . . . . . . . . . . . . . . 388 13.4.4 Hardware abio seguruaren sarrera . . . . . . . . . . . . . . . . . . 390 13.4.5 Adibamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Praktika: Segurtasun-ezaugarriak ekoizpen masiboan . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash enkriptatzea eta abio segurua . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Flash enkriptatzea eta abio segurua gaitzea Batch Flash Tools-ekin . . 397 13.5.3 Flash enkriptatzea eta abio segurua gaitzea Smart Light Project-en . . . 398 13.6 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Firmwarearen erretzea eta probak ekoizpen masiborako
399
14.1 Firmwarea erretzea Masa Produkzioan . . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Datuen partizioak definitzea . . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Firmwarea erretzea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Produkzio masiboko probak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Praktika: Mass Production Datuak Smart Light Proiektuan. . . . . . . . . . . . . 404
14.4 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP Insights: Urruneko Monitorizazio Plataforma
405
15.1 ESP Insights-en sarrera. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 ESP Insights-ekin hastea . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 ESP Insights-ekin hastea esp-insights proiektuan. . . . . . 409
15.2.2 Korrika Adibample esp-insights Proiektuan. . . . . . . . . . . . . . . 411
15.2.3 Coredump informazioaren berri ematea . . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Intereseko erregistroak pertsonalizatzea . . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Berrabiarazteko arrazoiaren berri ematea . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Neurri pertsonalizatuen berri ematea . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Praktika: ESP Insights erabiltzea Smart Light proiektuan. . . . . . . . . . . . . . . 416
15.4 Laburpena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Sarrera
ESP32-C3 nukleo bakarreko Wi-Fi eta Bluetooth 5 (LE) mikrokontrolagailu SoC bat da, kode irekiko RISC-V arkitekturan oinarrituta. Potentziaren, I/O gaitasunen eta segurtasunaren oreka egokia lortzen du, eta horrela, konektatutako gailuetarako irtenbide errentagarri onena eskaintzen du. ESP32-C3 familiaren hainbat aplikazio erakusteko, Espressife-ren liburu honek AIoT-n zehar bidaia interesgarri batean eramango zaitu, IoT proiektuen garapenaren eta ingurunearen konfigurazioaren oinarrietatik hasita, praktikara arte.amples. Lehenengo lau kapituluek IoT, ESP RainMaker eta ESP-IDF buruz hitz egiten dute. 5. eta 6. kapituluak hardwarearen diseinuari eta kontrolatzaileen garapenari buruzko laburpena. Aurrera egin ahala, zure proiektua nola konfiguratu ezagutuko duzu Wi-Fi sareen eta mugikorreko aplikazioen bidez. Azkenik, zure proiektua optimizatzen eta ekoizpen masiboan jartzen ikasiko duzu.
Erlazionatutako arloetako ingeniaria bazara, software-arkitektoa, irakaslea, ikaslea edo IoT-n interesa duen edonor bazara, liburu hau zuretzat da.
Kodea deskargatu dezakezu adibidezampLiburu honetan Espressif-en GitHub-eko gunetik erabilitako le. IoT garapenari buruzko azken informazioa lortzeko, jarraitu gure kontu ofiziala.
Hitzaurrea
Mundu informatzaile bat
Interneten olatu gainean, Gauzen Internet (IoT) bere debut handia egin zuen ekonomia digitaleko azpiegitura mota berri bat izateko. Teknologia publikoari hurbiltzeko, Espressif Systems-ek bizitzako esparru guztietako garatzaileek IoT erabil dezaketela gure garaiko arazo larrienak konpontzeko ikuspegiaren alde lan egiten du. "Gauza Guztien Sare Adimentsua" mundu bat da etorkizunetik espero duguna.
Gure txipak diseinatzeak ikuspegi horren osagai kritikoa da. Maratoi bat izatea da, muga teknologikoen aurka etengabeko aurrerapenak eskatzen dituena. "Game Changer" ESP8266tik Wi-Fi eta Bluetoothr (LE) konektibitatea integratzen duen ESP32 seriera, eta ondoren AI azelerazioaz hornitutako ESP32-S3, Espressifek ez du inoiz uzten AIoT irtenbideetarako produktuak ikertzea eta garatzea. Gure kode irekiko softwarearekin, hala nola, IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF eta Device Connectivity Platform ESP RainMaker, AIoT aplikazioak eraikitzeko esparru independente bat sortu dugu.
2022ko uztailean, Espressif-en IoT chipset-en bidalketa metatuek 800 milioi baino gehiago gainditu dituzte, Wi-Fi MCU merkatuan liderra eta mundu osoan konektatutako gailu kopuru handi bat elikatuz. Bikaintasunaren bilatzeak Espressif produktu bakoitza arrakasta handia bihurtzen du bere integrazio maila altuagatik eta kostu-eraginkortasunagatik. ESP32-C3 kaleratzeak Espressifek bere burua garatu duen teknologiaren mugarri garrantzitsu bat markatzen du. Nukleo bakarreko, 32 biteko, RISC-V-n oinarritutako MCU bat da, 400KB SRAM dituena, 160MHz exekutatu daitekeena. 2.4 GHz-ko Wi-Fi eta Bluetooth 5 (LE) integratuta ditu irismen luzeko euskarri batekin. Potentziaren, I/O gaitasunen eta segurtasunaren oreka fin bat lortzen du, eta horrela, konektatutako gailuetarako irtenbide errentagarri onena eskaintzen du. ESP32-C3 hain indartsuan oinarrituta, liburu honek irakurleei IoT-ri lotutako ezagutza ulertzen laguntzea da, ilustrazio zehatzarekin eta adibide praktikoekin.amples.
Zergatik idatzi dugu liburu hau?
Espressif Systems erdieroaleen enpresa bat baino gehiago da. Gainera, IoT plataformako enpresa bat da, eta beti ahalegintzen da teknologiaren alorrean aurrerapen eta berrikuntzak lortzeko. Aldi berean, Espressifek kode irekia egin du eta norberak garatutako sistema eragilea eta software-esparrua komunitatearekin partekatu ditu, ekosistema paregabea osatuz. Ingeniariek, arduradunek eta teknologia zaleek Espressifen produktuetan oinarritutako software-aplikazio berriak modu aktiboan garatzen dituzte, libreki komunikatzen dira eta beren esperientzia partekatzen dute. Garatzaileen ideia liluragarriak hainbat plataformatan ikus ditzakezu uneoro, hala nola YouTube eta GitHub. Espressif-en produktuen ospeak gero eta egile gehiago bultzatu ditu Espressif chipsetetan oinarritutako 100 liburu baino gehiago egin dituztenak, hamar hizkuntza baino gehiagotan, ingelesa, txinera, alemana, frantsesa eta japoniera barne.
Komunitateko bazkideen laguntza eta konfiantza da Espressifen etengabeko berrikuntza bultzatzen duena. “Gure txipak, sistema eragileak, markoak, soluzioak, hodeia, negozio praktikak, tresnak, dokumentazioa, idazkiak, ideiak eta abar gero eta garrantzitsuagoak izan daitezen ahalegintzen gara, jendeak bizitza garaikideko arazo larrienetan behar dituen erantzunetarako. Hau da Espressifen asmorik eta iparrorratz moral gorena». esan zuen Teo Swee Ann jaunak, Espressifeko sortzaile eta zuzendari nagusiak.
Espressifek irakurketa eta ideiak balioesten ditu. IoT teknologiaren etengabeko hobekuntzak ingeniariei eskakizun handiagoak ezartzen dizkienez, nola lagundu pertsona gehiagori IoT txipak, sistema eragileak, software esparruak, aplikazio eskemak eta hodeiko zerbitzu produktuak azkar menderatzen? Esaerak dioen bezala, hobe da gizon bati arrantzan irakastea arraina ematea baino. Brainstorming saio batean, bururatu zitzaigun liburu bat idatzi genezakeela IoT garapenaren ezagutza gakoak sistematikoki antolatzeko. Gauzak horrela, goi mailako ingeniari talde bat azkar bildu eta programazio txertatuaren, IoT hardwarearen eta softwarearen garapenean talde teknikoaren esperientzia batu genuen, guztiak liburu hau argitaratzen lagunduz. Idazteko prozesuan, ahalegindu ginen objektiboak eta zuzenak izaten, kuskua kenduta, eta esamolde zehatzak erabiltzen Gauzen Interneten konplexutasuna eta xarma kontatzeko. Ohiko galderak arreta handiz laburbildu ditugu, komunitatearen iritziak eta iradokizunak aipatu, garapen prozesuan aurkitutako galderei argi erantzuteko eta IoT garapenerako jarraibide praktikoak eskaintzeko teknikari eta erabakitzaile garrantzitsuei.
Liburuaren Egitura
Liburu honek ingeniariaren ikuspegia hartzen du eta IoT proiektuak garatzeko beharrezkoak diren ezagutzak azaltzen ditu urratsez urrats. Lau zatiz osatuta dago, honela:
· Prestaketa (1. kapitulua): Atal honek IoTren arkitektura, IoT proiektuaren esparru tipikoa, ESP RainMakerr hodeiko plataforma eta ESP-IDF garapen ingurunea aurkezten ditu, IoT proiektuaren garapenerako oinarri sendoak jartzeko.
· Hardware eta kontrolatzaileen garapena (5. kapitulua): ESP6-C32 chipset-ean oinarrituta, zati honek gutxieneko hardware sistema eta kontrolatzaileen garapena lantzen du, eta iluntzearen, kolore-kalifikazioaren eta haririk gabeko komunikazioaren kontrola ezartzen du.
· Hari gabeko komunikazioa eta kontrola (7. kapitulua): zati honek ESP11-C32 txiparen, tokiko eta hodeiko kontroleko protokoloen eta gailuen tokiko eta urrutiko kontrolaren araberako Wi-Fi konfigurazio eskema adimenduna azaltzen du. Telefonoetarako aplikazioak garatzeko, firmware eguneratzeko eta bertsioen kudeaketarako eskemak ere eskaintzen ditu.
· Optimizazioa eta produkzio masiboa (12-15. kapitulua): zati hau IoT aplikazio aurreratuetarako pentsatuta dago, produktuen optimizazioan arreta jarrita energiaren kudeaketan, potentzia baxuko optimizazioan eta segurtasun hobetuan. Gainera, produkzio masiboan firmwarearen grabaketa eta probak aurkezten ditu, eta gailuaren firmwarearen egoera eta erregistroak nola diagnostikatu ESP Insights urruneko monitorizazio plataformaren bidez.
Iturburu kodeari buruz
Irakurleek exampliburu honetako programak, kodea eskuz sartuz edo liburuarekin batera datorren iturburu-kodea erabiliz. Teoria eta praktikaren konbinazioa azpimarratzen dugu, eta, horrela, Smart Light proiektuan oinarritutako Praktika atal bat ezartzen dugu ia kapitulu guztietan. Kode guztiak kode irekikoak dira. Irakurleek iturburu kodea deskargatu eta GitHub-en eta gure foro ofizialean esp32.com-en liburu honekin lotutako ataletan eztabaidatu dezakete. Liburu honen kode irekiko kodea Apache License 2.0-ren baldintzen mende dago.
Egilearen Oharra
Liburu hau Espressif Systems-ek ekoitzi du ofizialki eta konpainiako goi mailako ingeniariek idatzi dute. IoT-ekin erlazionatutako industrietako kudeatzaile eta I+Gko langileentzat, erlazionatutako irakasle eta ikasleentzat eta Gauzen Interneten alorreko zaleentzat egokia da. Espero dugu liburu hau lan-eskuliburu, erreferentzia eta ohe-liburu gisa balio izatea, tutore eta lagun on bat bezala izateko.
Liburu hau osatzerakoan, adituen, jakintsuen eta teknikarien ikerketa-emaitza garrantzitsu batzuei erreferentzia egin diegu etxeko zein atzerriko, eta ahal dugun guztia egin dugu arau akademikoen arabera aipatzeko. Hala ere, ezinbestekoa da hutsune batzuk egotea, beraz, hemen dagozkion egile guztiei gure errespetu eta esker ona adierazi nahi diegu. Horrez gain, Interneteko informazioa aipatu dugu, beraz, eskerrak eman nahi dizkiegu jatorrizko egileei eta argitaletxeei eta barkamena eskatu nahi diegu informazio bakoitzaren iturria adierazi ezin dugulako.
Kalitate handiko liburu bat ekoizteko, barne-eztabaida-errondak antolatu ditugu, eta proba-irakurleen eta argitaletxeen editoreen iradokizunetatik eta iritzietatik ikasi dugu. Hemen, eskerrak eman nahi dizkizugu berriro ere lan arrakastatsu honetan lagundu duten laguntzagatik.
Azkena, baina garrantzitsuena, eskerrak gure produktuen jaiotzaren eta dibulgazioaren alde hainbeste lan egin duten Espressifeko guztioi.
IoT proiektuen garapenak ezagutza zabala dakar. Liburuaren luzera mugatuta, baita egilearen maila eta esperientziara ere, hutsuneak ezinbestekoak dira. Horregatik, atsegin handiz eskatzen dugu adituek eta irakurleek gure akatsak kritikatu eta zuzen ditzatela. Liburu honetarako iradokizunik baduzu, jar zaitez gurekin harremanetan book@espressif.com helbidera. Zure iritzia espero dugu.
Nola erabili liburu hau?
Liburu honetako proiektuen kodea kode irekikoa izan da. Gure GitHub biltegitik deskarga dezakezu eta zure pentsamenduak eta galderak parteka ditzakezu gure foro ofizialean. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Foroa: https://www.esp32.com/bookc3 Liburuan zehar, azpian agertzen den moduan nabarmendutako zatiak egongo dira.
Iturburu-kodea Liburu honetan, teoria eta praktikaren konbinazioa azpimarratzen dugu, eta, horrela, Smart Light proiektuari buruzko Praktika atal bat ezartzen dugu ia kapitulu guztietan. Dagozkion urratsak eta iturburu-orria markaz hasten diren bi lerroen artean markatuko dira tag Iturburu kodea.
OHARRA/AHOLKUAK Hemen aurkituko dituzu zure programa arrakastaz arazketarako informazio eta abisu kritiko batzuk. -rekin hasten diren bi lerro lodiren artean markatuko dira tag OHARRA edo AHOLKUAK.
Liburu honetako komando gehienak Linux-en exekutatzen dira, "$" karaktereak eskatuta. Komandoak exekutatzeko supererabiltzaile pribilegioak behar baditu, gonbita "#"-rekin ordezkatuko da. Mac sistemetan komando-gonbita "%" da, 4.2.3 atalean ESP-IDF instalatzea Mac-en erabiltzen den bezala.
Liburu honetako testua Charter-en inprimatuko da, eta kodea adibidezampfitxategiak, osagaiak, funtzioak, aldagaiak, kodea file izenak, kode-direktorioak eta kateak Courier New-n egongo dira.
Erabiltzaileak sartu behar dituen komandoak edo testuak, eta "Sartu" tekla sakatuz sartu daitezkeen komandoak Courier New lodiz inprimatuko dira. Erregistroak eta kode blokeak koadro urdin argietan aurkeztuko dira.
Example:
Bigarrenik, erabili esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py NVS partizio bitarra sortzeko file garapen ostalarian komando honekin:
$ python $IDF PATH/components/nvs flash/nvs partizio-sorgailua/nvs partizioa gen.py –sarrera masa prod.csv –irteera masa prod.bin –tamaina NVS PARTIZIOAREN TAMAINA
1. kapitulua
Sarrera
to
IoT
mendearen amaieran, sare informatikoen eta komunikazio teknologien gorakadarekin, Internet azkar txertatu zen pertsonen bizitzan. Interneteko teknologiak heltzen jarraitzen duen heinean, Gauzen Internet (IoT) ideia sortu zen. Literalki, IoT gauzak konektatuta dauden Internet bat esan nahi du. Jatorrizko Internetek espazioaren eta denboraren mugak hautsi eta "pertsonaren eta pertsonaren arteko distantzia" murrizten duen bitartean, IoT "gauzak" partaide garrantzitsu bihurtzen ditu, "pertsonak" eta "gauzak" elkarrengana hurbilduz. Etorkizun hurbilean, IoT informazioaren industriaren eragile bihurtuko da.
Beraz, zer da Gauzen Interneta?
Zaila da gauzen Interneta zehaztasunez definitzea, bere esanahia eta esparrua etengabe eboluzionatzen ari baitira. 1995ean, Bill Gates-ek lehen aldiz IoT ideia ekarri zuen The Road Ahead liburuan. Besterik gabe, IoT-ek objektuei informazioa elkartrukatzea ahalbidetzen die Internet bidez. Bere azken helburua "Dena Internet" bat ezartzea da. Hau IoT-en lehen interpretazio bat da, baita etorkizuneko teknologiaren fantasia ere. Hogeita hamar urte geroago, ekonomiaren eta teknologiaren garapen azkarrarekin, fantasia errealitate bihurtzen ari da. Gailu adimendunetatik, etxe adimendunetatik, hiri adimendunetatik, Ibilgailuen Internet eta gailu eramangarrietatik, IoT teknologiek onartzen duten "metabertsoraino", kontzeptu berriak etengabe sortzen ari dira. Kapitulu honetan, Gauzen Interneten arkitekturaren azalpenarekin hasiko gara, eta gero IoT aplikazio ohikoena aurkeztuko dugu, etxe adimenduna, IoT-a argi ulertzen laguntzeko.
1.1 IoT-aren arkitektura
Gauzen Internetek industria ezberdinetan aplikazio-behar eta forma desberdinak dituzten hainbat teknologia dakartza. IoTren egitura, teknologia nagusiak eta aplikazioaren ezaugarriak ordenatzeko, beharrezkoa da arkitektura bateratua eta sistema tekniko estandar bat ezartzea. Liburu honetan, IoT-aren arkitektura lau geruzatan banatzen da: pertzepzio- eta kontrol-geruza, sare-geruza, plataforma-geruza eta aplikazio-geruza.
Pertzepzio eta Kontrol Geruza IoT arkitekturaren elementurik oinarrizkoena denez, pertzepzio eta kontrol geruza da IoT sentsazio integrala gauzatzeko muina. Bere eginkizun nagusia informazioa biltzea, identifikatzea eta kontrolatzea da. Pertzepzio gaitasuna duten hainbat gailuz osatuta dago,
3
identifikazioa, kontrola eta exekuzioa, eta datuak berreskuratzeaz eta aztertzeaz arduratzen da, hala nola, materialaren propietateak, portaera-joerak eta gailuaren egoera. Modu honetan, IoT benetako mundu fisikoa ezagutzen lortzen du. Gainera, geruza gailuaren egoera kontrolatzeko gai da.
Geruza honen gailu ohikoenak hainbat sentsore dira, eta informazio bilketan eta identifikazioan zeregin garrantzitsua betetzen dute. Sentsoreak giza zentzumen-organoak bezalakoak dira, hala nola, ikusmenaren pareko sentsore fotosentsibleak, entzumenaren sentsore akustikoak, usaimenaren gas sentsoreak eta ukipenarekiko presio eta tenperatura sentikorrak diren sentsoreak. "Zentzumen-organo" guzti hauekin objektuak "bizi" bihurtzen dira eta mundu fisikoa hautemateko, ezagutzeko eta manipulatzeko gai dira.
Sare geruza Sare geruzaren funtzio nagusia informazioa transmititzea da, pertzepzio eta kontrol geruzatik lortutako datuak helburu zehatzetara, baita aplikazio geruzatik igorritako komandoak ere pertzepzio eta kontrol geruzara. IoT sistema baten geruza desberdinak lotzen dituen komunikazio zubi garrantzitsu gisa balio du. Gauzen Interneten oinarrizko eredua ezartzeko, objektuak sare batean integratzeko bi urrats hartzen dira: Interneterako sarbidea eta Internet bidezko transmisioa.
Interneterako sarbideak pertsona eta pertsonaren arteko interkonexioa ahalbidetzen du, baina ez ditu gauzak familia handian sartzen. IoT-a iritsi aurretik, gauza gehienak ez ziren "sarerako gai". Teknologiaren etengabeko garapenari esker, IoT gauzak Internetera konektatzea lortzen du, horrela “pertsonen eta gauzen” eta “gauzen eta gauzen” arteko interkonexioa gauzatuz. Interneteko konexioa ezartzeko bi modu arrunt daude: kable bidezko sarerako sarbidea eta hari gabeko sarerako sarbidea.
Sarera kable bidezko sarbide-metodoak Ethernet, serieko komunikazioa (adibidez, RS-232, RS-485) eta USBa dira, haririk gabeko sarerako sarbidea hari gabeko komunikazioaren araberakoa den bitartean, hau da, irismen laburreko haririk gabeko komunikazioan eta irismen luzeko haririk gabeko komunikazioan bana daitekeena.
Sormen laburreko haririk gabeko komunikazioak ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC) eta Irrati-maiztasunaren identifikazioa (RFID) barne hartzen ditu. Irte luzeko haririk gabeko komunikazioak Enhanced Machine Type Communication (eMTC), LoRa, Narrow Band Internet of Things (NB-IoT), 2G, 3G, 4G, 5G, etab.
Internet bidezko transmisioa Interneterako sarbidea izateko metodo ezberdinek datuen transmisio fisikoaren lotura zuzena dute. Hurrengo gauza datuak transmititzeko zein komunikazio-protokolo erabili erabakitzea da. Interneteko terminalekin alderatuta, gaur egun IoT terminal gehienek gutxiago dute
4 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
erabilgarri dauden baliabideak, hala nola prozesatzeko errendimendua, biltegiratze ahalmena, sare-tasa, etab., beraz, beharrezkoa da IoT aplikazioetan baliabide gutxiago okupatzen dituen komunikazio-protokolo bat aukeratzea. Gaur egun oso erabiliak diren bi komunikazio-protokolo daude: Message Queuing Telemetry Transport (MQTT) eta Constrained Application Protocol (CoAP).
Plataforma geruza Plataforma geruzak IoT hodeiko plataformei egiten die erreferentzia nagusiki. IoT terminal guztiak sarean daudenean, haien datuak IoT hodeiko plataforma batean bildu behar dira kalkulatu eta gordetzeko. Plataforma geruzak IoT aplikazioak onartzen ditu batez ere gailu masiboen sarbidea eta kudeaketa errazteko. IoT terminalak hodeiko plataformarekin konektatzen ditu, terminalen datuak biltzen ditu eta terminalei komandoak ematen dizkie, urruneko kontrola ezartzeko. Industria-aplikazioei ekipoak esleitzeko bitarteko zerbitzu gisa, plataforma-geruzak konektatzeko eginkizuna du IoT arkitektura osoan, negozio-logika abstraktua eta oinarrizko datu-eredu estandarizatuak dituena, gailuen sarbide azkarra ez ezik, gaitasun modular indartsuak ere eskaintzen dituena. industriako aplikazio eszenatokietan hainbat behar asetzeko. Plataforma-geruzak modulu funtzionalak barne hartzen ditu batez ere, hala nola gailuen sarbidea, gailuen kudeaketa, segurtasun kudeaketa, mezuen komunikazioa, monitorizazio funtzionamendua eta mantentze-lanak eta datu-aplikazioak.
· Gailurako sarbidea, terminalen eta IoT hodeiko plataformen arteko konexioa eta komunikazioa gauzatuz.
· Gailuen kudeaketa, gailuen sorrera, gailuen mantentze-lanak, datuen bihurketa, datuen sinkronizazioa eta gailuaren banaketa bezalako funtzioak barne.
· Segurtasunaren kudeaketa, IoT datuen transmisioaren segurtasuna bermatuz, segurtasun-autentifikazioaren eta komunikazio-segurtasunaren ikuspegitik.
· Mezu-komunikazioa, hiru transmisio-norabide barne, hau da, terminalak datuak IoT hodeiko plataformara bidaltzen ditu, IoT hodeiko plataformak datuak zerbitzariaren aldean edo IoT hodeian beste plataforma batzuetara bidaltzen ditu eta zerbitzariaren aldean urrunetik kontrolatzen ditu IoT gailuak.
· O&M monitorizatzea, monitorizazioa eta diagnostikoa, firmware eguneratzea, lineako arazketa, erregistro zerbitzuak, etab.
· Datuen aplikazioak, datuak biltegiratzea, aztertzea eta aplikatzea.
Aplikazio-geruza Aplikazio-geruzak plataforma-geruzaren datuak erabiltzen ditu aplikazioa kudeatzeko, datu-baseak eta analisi-softwarea bezalako tresnekin iragazten eta prozesatzen ditu. Lortutako datuak mundu errealeko IoT aplikazioetarako erabil daitezke, hala nola osasun-laguntza adimenduna, nekazaritza adimenduna, etxe adimentsuak eta hiri adimentsuak.
Jakina, IoT-en arkitektura geruza gehiagotan bana daiteke, baina zenbat geruzaz osatuta egon arren, azpiko printzipioa funtsean berdina izaten jarraitzen du. Ikaskuntza
1. kapitulua. IoT-aren sarrera 5
IoT-aren arkitekturari buruz, IoT teknologien ulermena sakontzen eta IoT proiektu guztiz funtzionalak eraikitzen laguntzen du.
1.2 IoT aplikazioa Etxe Adimendunetan
IoT bizitzako esparru guztietan sartu da, eta gurekin loturarik handiena duen IoT aplikazioa etxe adimenduna da. Etxetresna tradizional asko IoT gailu bat edo gehiagoz hornituta daude gaur egun, eta eraiki berri diren etxe asko IoT teknologiekin diseinatu dira hasieratik. 1.1 irudiak etxeko gailu adimendun arrunt batzuk erakusten ditu.
1.1 irudia. Etxe adimendunen ohiko gailuak Etxe adimendunaren garapena produktu adimendunetan bana daiteketage, eszena interkonexioa stage eta adimentsu stage, 1.2 irudian ikusten den bezala.
1.2 irudia. Garapena stagSmart home 6 ESP32-C3 Haririk gabeko Abentura: IoT-rako gida integrala
Lehenengo stage produktu adimendunei buruzkoa da. Etxe tradizionalen aldean, etxe adimendunetan, IoT gailuek sentsoreekin seinaleak jasotzen dituzte, eta haririk gabeko komunikazio teknologien bidez saretzen dira, hala nola Wi-Fi, Bluetooth LE eta ZigBee. Erabiltzaileek produktu adimendunak kontrola ditzakete hainbat modutan, hala nola, telefono-aplikazioak, ahots-laguntzaileak, bozgorailu adimendunen kontrola, etab.tage eszena interkonexioan zentratzen da. S. honetantage, garatzaileek jada ez dute produktu adimendun bakarra kontrolatzea kontuan hartzen, baizik eta bi produktu adimendun edo gehiago interkonektatzea, neurri batean automatizatzea eta, azkenik, eszena modu pertsonalizatua osatzea. AdibidezampIzan ere, erabiltzaileak edozein eszena moduko botoi sakatzen duenean, argiak, gortinak eta aire girotuak automatikoki egokituko dira aurrez ezarritakoetara. Noski, lotura-logika erraz konfiguratzeko baldintza dago, abiarazte-baldintzak eta exekuzio-ekintzak barne. Imajinatu aire girotua berotzeko modua abiarazten dela barruko tenperatura 10°C-tik behera jaisten denean; Goizeko 7etan, erabiltzailea esnatzeko musika jotzen dela, gortina adimendunak irekitzen direla eta arroz-sukalda edo ogi-txigorgailua entxufe adimendun batetik abiatzen dela; erabiltzailea altxatu eta garbitzen amaitu ahala, dagoeneko gosaria zerbitzatzen da, lanera joateko atzerapenik egon ez dadin. Zein eroso bihurtu den gure bizitza! Hirugarren stage goes to intelligence stage. Etxeko gailu adimendun gehiago sartzen diren heinean, sortutako datu motak ere izango dira. Hodeiko informatikaren, big dataren eta adimen artifizialaren laguntzaz, etxe adimendunetan "garun adimendunagoa" landatu izana bezalakoa da, jada erabiltzailearen maiz agindurik behar ez dutenak. Aurreko elkarreraginetako datuak biltzen dituzte eta erabiltzailearen portaera-ereduak eta lehentasunak ikasten dituzte, jarduerak automatizatzeko, erabakiak hartzeko gomendioak emanez barne. Gaur egun, etxe adimendun gehienak eszena interkonexioan daudetage. Produktu adimendunen sartze-tasa eta adimena hazi ahala, komunikazio-protokoloen arteko oztopoak kentzen ari dira. Etorkizunean, etxe adimendunak benetan "adimentsu" bihurtuko dira, Iron Man-en Jarvis AI sistema bezala, erabiltzaileari hainbat gailu kontrolatzen laguntzeaz gain, eguneroko gaiak kudeatzen laguntzeaz gain, informatika-ahalmena eta pentsatzeko gaitasuna ere baditu. Adimentsuan stage, gizakiak zerbitzu hobeak jasoko ditu kantitatez zein kalitatez.
1. kapitulua. IoT-aren sarrera 7
8 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Kapitulua 2 IoT Proiektuen Sarrera eta Praktika
1. kapituluan, IoT-aren arkitektura eta pertzepzio- eta kontrol-geruzaren, sare-geruzaren, plataforma-geruzaren eta aplikazio-geruzaren eginkizunak eta elkarrelazioak aurkeztu genituen, baita etxe adimendunaren garapena ere. Hala ere, margotzen ikasten dugunean bezala, ezagutza teorikoak ezagutzea nahikoa da. IoT proiektuak praktikan jartzeko "eskuak zikindu" behar ditugu teknologia benetan menderatzeko. Horrez gain, proiektu bat ekoizpen masibora stagBesteak beste, faktore gehiago kontuan hartu behar dira, hala nola sareko konexioa, konfigurazioa, IoT hodeiko plataformaren elkarrekintza, firmwarearen kudeaketa eta eguneraketak, ekoizpen masiboaren kudeaketa eta segurtasun konfigurazioa. Beraz, zeri erreparatu behar diogu IoT proiektu oso bat garatzerakoan? 1. kapituluan, etxe adimenduna IoT aplikazio-eszenatoki ohikoenetako bat dela aipatu dugu, eta argi adimentsuak tresna oinarrizko eta praktikoenetako bat direla, etxeetan, hoteletan, gimnasioetan, ospitaleetan eta abarretan erabil daitezkeenak. liburu honetan, argi adimendunaren proiektu baten eraikuntza abiapuntutzat hartuko dugu, haren osagaiak eta ezaugarriak azalduko ditugu eta proiektuaren garapenari buruzko orientazioa emango dugu. Espero dugu kasu honetatik ondorioak atera ditzakezula IoT aplikazio gehiago sortzeko.
2.1 IoT proiektu tipikoen sarrera
Garapenari dagokionez, IoT proiektuen oinarrizko modulu funtzionalak IoT gailuen software eta hardware garapenean, bezeroen aplikazioen garapenean eta IoT hodeiko plataformaren garapenean sailka daitezke. Garrantzitsua da oinarrizko modulu funtzionalak argitzea, atal honetan gehiago deskribatuko direnak.
2.1.1 IoT gailu arruntetarako oinarrizko moduluak
IoT gailuen software eta hardware garapenak oinarrizko modulu hauek ditu: Datu bilketa
IoT arkitekturaren beheko geruza den heinean, pertzepzio eta kontrol geruzaren IoT gailuek sentsoreak eta gailuak konektatzen dituzte beren txip eta periferikoen bidez, datu bilketa eta funtzionamendu kontrola lortzeko.
9
Kontua lotzea eta hasierako konfigurazioa IoT gailu gehienentzat, kontua lotzea eta hasierako konfigurazioa prozesu operatibo batean burutzen dira, adibidezample, gailuak erabiltzaileekin konektatzea Wi-Fi sarea konfiguratuz.
IoT hodeiko plataformekin elkarrekintza IoT gailuak monitorizatzeko eta kontrolatzeko, beharrezkoa da IoT hodeiko plataformetara konektatzea ere, elkarren arteko elkarrekintzaren bidez komandoak emateko eta egoeraren berri emateko.
Gailuen kontrola IoT hodeiko plataformekin konektatuta daudenean, gailuak hodeiarekin komunikatu eta erregistratu, lotu edo kontrolatu daitezke. Erabiltzaileek produktuaren egoera kontsultatu eta beste eragiketa batzuk egin ditzakete smartphone aplikazioan, IoT hodeiko plataformen edo tokiko komunikazio protokoloen bidez.
Firmwarearen eguneratzea IoT gailuek ere lor dezakete firmwarearen eguneratzea fabrikatzaileen beharretan oinarrituta. Hodeiak bidalitako komandoak jasoz, firmwarearen eguneratzea eta bertsioen kudeaketa gauzatuko da. Firmwarea eguneratzeko eginbide honekin, IoT gailuen funtzioak etengabe hobetu ditzakezu, akatsak konpondu eta erabiltzailearen esperientzia hobetu.
2.1.2 Bezero-aplikazioen oinarrizko moduluak
Bezero-aplikazioek (adibidez, smartphone-ak) oinarrizko modulu hauek dituzte nagusiki:
Kontu-sistema eta baimena Kontuen eta gailuen baimena onartzen du.
Gailuaren kontrola Smartphone aplikazioak kontrol-funtzioez hornituta egon ohi dira. Erabiltzaileak erraz konektatu daitezke IoT gailuetara, eta edonoiz eta edonon kudeatu ditzakete smartphone-en aplikazioen bidez. Mundu errealeko etxe adimendun batean, gailuak gehienbat smartphone aplikazioen bidez kontrolatzen dira, eta horrek gailuen kudeaketa adimenduna ahalbidetzen du, baina eskulanaren kostua ere aurrezten du. Hori dela eta, gailuaren kontrola ezinbestekoa da bezeroen aplikazioetarako, hala nola gailuaren funtzioen atributuen kontrola, eszenaren kontrola, programazioa, urruneko kontrola, gailuen lotura, etab. Etxe adimendunetako erabiltzaileek eszenak ere pertsonaliza ditzakete behar pertsonalen arabera, argiztapena, etxetresna elektrikoak, sarrera kontrolatzeko. , etab., etxeko bizitza erosoagoa eta erosoagoa izan dadin. Aire girotua tenpora dezakete, urrunetik itzali, korridorearen argia automatikoki piztu dezakete atea desblokeatuta dagoenean edo "antzerki" modura aldatu botoi bakar batekin.
Jakinarazpena Bezeroen aplikazioek IoT gailuen denbora errealeko egoera eguneratzen dute eta alertak bidaltzen dituzte gailuak anormalak direnean.
10 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Salmenta osteko bezeroarentzako arreta Telefono adimendunen aplikazioek produktuen salmenta osteko zerbitzuak eskain ditzakete, IoT gailuen akatsekin eta eragiketa teknikoekin lotutako arazoak garaiz konpontzeko.
Funtzio aipagarriak Erabiltzaile ezberdinen beharrak asetzeko, beste funtzio batzuk gehi daitezke, hala nola Shake, NFC, GPS, etab. GPSak eszenaren eragiketen zehaztasuna kokapen eta distantziaren arabera ezartzen lagun dezake, Astindu funtzioak erabiltzaileei aukera ematen die bitartean. astinduz gailu edo eszena zehatz baterako exekutatu beharreko komandoak.
2.1.3 IoT Hodeiko Plataformen Sarrera
IoT hodeiko plataforma bat-bateko plataforma bat da, gailuen kudeaketa, datuen segurtasunaren komunikazioa eta jakinarazpenen kudeaketa bezalako funtzioak integratzen dituena. Helburu-taldearen eta irisgarritasunaren arabera, IoT hodeiko plataformak IoT hodeiko plataforma publikoetan (aurrerantzean "hodei publikoa") eta IoT hodeiko plataforma pribatuetan (aurrerantzean "hodei pribatua") bana daitezke.
Hodei publikoak normalean enpresen edo partikularrentzako partekatutako IoT hodeiko plataformak adierazten ditu, plataforma-hornitzaileek kudeatzen eta mantentzen dituztenak eta Internet bidez partekatzen direnak. Doakoa edo kostu baxua izan daiteke, eta sare publiko irekian zehar zerbitzuak eskaintzen ditu, hala nola Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, etab. Plataforma euskarri gisa, hodei publikoak upstream zerbitzu-hornitzaileak integra ditzake eta. beheranzko azken erabiltzaileek balio kate eta ekosistema berri bat sortzeko.
Hodei pribatua enpresen erabilerarako soilik eraikita dago, eta horrela datuen, segurtasunaren eta zerbitzuaren kalitatearen kontrol onena bermatzen du. Bere zerbitzuak eta azpiegiturak bereizita mantentzen dituzte enpresek, eta laguntza-hardwarea eta softwarea ere erabiltzaile zehatzei eskaintzen zaie. Enpresek hodeiko zerbitzuak pertsonaliza ditzakete beren negozioaren beharrei erantzuteko. Gaur egun, etxe adimendunen fabrikatzaile batzuek dagoeneko lortu dituzte IoT hodeiko plataforma pribatuak eta haietan oinarritutako etxe adimenduneko aplikazioak garatu dituzte.
Hodei publikoak eta hodei pribatuak beren abantaila dutetages, geroago azalduko dena.
Komunikazio-konektibitatea lortzeko, beharrezkoa da gutxienez gailuaren garapen txertatua egitea, negozio-zerbitzariekin, IoT hodeiko plataformekin eta smartphone-en aplikazioekin batera. Horrelako proiektu handi bati aurre egiteko, hodei publikoak normalean software garapen-kitak eskaintzen ditu gailuaren eta telefonoen aplikazioetarako, prozesua bizkortzeko. Hodei publikoek zein pribatuek gailuen sarbidea, gailuen kudeaketa, gailuaren itzala eta funtzionamendua eta mantentze-lanak barne eskaintzen dituzte.
Gailuetarako sarbidea IoT hodeiko plataformek ez dute soilik gailuak atzitzeko interfazeak eman behar protokoloak erabiliz
2. Kapitulua. IoT Proiektuen Sarrera eta Praktika 11
hala nola, MQTT, CoAP, HTTPS eta WebSocketa, baina baita gailuaren segurtasun-autentifikazioaren funtzioa ere faltsuak eta legez kanpoko gailuak blokeatzeko, arriskua arriskua eraginkortasunez murrizteko. Autentifikazio horrek normalean mekanismo desberdinak onartzen ditu, beraz, gailuak masiboki ekoizten direnean, beharrezkoa da gailuaren ziurtagiria hautatutako autentifikazio-mekanismoaren arabera esleitu eta gailuetan grabatzea.
Gailuen kudeaketa IoT hodeiko plataformek eskaintzen duten gailuak kudeatzeko funtzioak fabrikatzaileei beren gailuen aktibazio-egoera eta lineako egoera kontrolatzen lagun diezaieke denbora errealean, gailuak gehitzea / kentzea, taldeak berreskuratzea, gehitu / ezabatzea, firmware-berritzea bezalako aukerak ere ematen ditu. , eta bertsioen kudeaketa.
Gailuaren itzala IoT hodeiko plataformek bertsio birtual iraunkor bat (gailuaren itzala) sor dezakete gailu bakoitzarentzat, eta gailuaren itzalaren egoera sinkronizatu eta lor daiteke telefonoaren aplikazioak edo beste gailu batzuek Internet bidezko transmisio-protokoloen bidez. Gailuaren itzalak gailu bakoitzaren azken egoera eta espero den egoera gordetzen ditu, eta gailua lineaz kanpo badago ere, egoera lor dezake APIetara deituz. Gailuaren itzalak beti aktibatuta dauden APIak eskaintzen ditu, eta horrek errazten du gailuekin elkarreragina duten telefono-aplikazioak sortzea.
Funtzionamendua eta mantentze-lanak O&M funtzioak hiru alderdi ditu: · IoT gailuei eta jakinarazpenei buruzko informazio estatistikoa erakustea. · Erregistroen kudeaketak gailuaren portaerari, goranzko/behera mezu-fluxuari eta mezuen edukiari buruzko informazioa berreskuratzeko aukera ematen du. · Gailuen arazketa-komandoak ematea, konfigurazio-eguneratzea eta IoT hodeiko plataformen eta gailuen mezuen arteko elkarrekintza egiaztatzea onartzen du.
2.2 Praktika: Smart Light Proiektua
Kapitulu bakoitzeko sarrera teorikoaren ondoren, Smart Light proiektuarekin lotutako praktika-atal bat aurkituko duzu esperientzia praktikoa lortzen laguntzeko. Proiektua Espressif-en ESP32-C3 txipan eta ESP RainMaker IoT Cloud Platform-en oinarritzen da, eta argi adimendunaren produktuetan haririk gabeko moduluaren hardwarea, ESP32C3-n oinarritutako gailu adimendunentzako txertatutako softwarea, smartphone-en aplikazioak eta ESP RainMaker elkarrekintza hartzen ditu.
Iturburu kodea Ikasteko eta garatzeko esperientzia hobea izateko, liburu honetako proiektua kode irekikoa izan da. Iturburu kodea gure GitHub biltegitik deskarga dezakezu https://github helbidean. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
2.2.1 Proiektuaren Egitura
Smart Light proiektuak hiru zati ditu: i. ESP32-C3-n oinarritutako argi adimendun gailuak, IoT hodeiko plataformekin elkarreragineaz arduratzen dira eta LED l-en etengailua, distira eta kolore-tenperatura kontrolatzeaz arduratzen dira.amp aleak. ii. Smartphone aplikazioak (Android eta iOS-en exekutatzen diren tablet aplikazioak barne), argi adimendunen produktuen sareko konfigurazioaz arduratzen dira, baita haien egoera kontsultatzeaz eta kontrolatzeaz ere.
iii. ESP RainMaker-en oinarritutako IoT hodeiko plataforma. Sinplifikatzeko, IoT hodeiko plataforma eta negozio zerbitzaria osotasunean hartzen ditugu liburu honetan. ESP RainMaker-i buruzko xehetasunak 3. kapituluan emango dira.
Smart Light proiektuaren egituraren eta IoT-aren arkitekturaren arteko korrespondentzia 2.1 irudian ageri da.
2.1 irudia. Argi adimendunaren proiektuaren egitura
2.2.2 Proiektuaren funtzioak
Egituraren arabera banatuta, zati bakoitzaren funtzioak hauek dira. Argi gailu adimendunak
· Sarearen konfigurazioa eta konexioa. · LED PWM kontrola, hala nola, etengailua, distira, kolore-tenperatura, etab. · Automatizazioa edo eszena kontrola, adibidez, ordua. · Flash-en enkriptatzea eta abio segurua. · Firmware-berritzea eta bertsioen kudeaketa.
2. Kapitulua. IoT Proiektuen Sarrera eta Praktika 13
Smartphone aplikazioak · Sarearen konfigurazioa eta gailuaren lotura. · Argiaren produktu adimendunaren kontrola, hala nola etengailua, distira, kolore-tenperatura, etab. · Automatizazioaren edo eszenaren ezarpenak, adibidez, ordu-etengailua. · Tokiko/urruneko kontrola. · Erabiltzaileen erregistroa, saioa hasteko, etab.
ESP RainMaker IoT hodeiko plataforma · IoT gailurako sarbidea gaitu. · Gailuaren funtzionamendurako APIak eskaintzea telefonoko aplikazioetarako eskuragarriak. · Firmware-berritzea eta bertsioen kudeaketa.
2.2.3 Hardwarearen prestaketa
Proiektua praktikan jartzeko interesa baduzu, hardware hau ere beharko duzu: argi adimendunak, telefono adimendunak, Wi-Fi bideratzaileak eta garapen-ingurunearen instalazio-baldintzak betetzen dituen ordenagailua. Argi adimendunak
Argi adimendunak bonbilla mota berri bat dira, eta goritasun orokorreko bonbillaren forma dute. Argi adimenduna kondentsadoreak beheranzko elikadura erregulatua, haririk gabeko modulua (ESP32-C3 integratua), LED kontroladore eta RGB LED matrizez osatuta dago. Potentziara konektatuta dagoenean, 15 V DC voltagKondentsadorearen jaitsiera, diodoaren zuzenketa eta erregulazioaren ondoren irteerak energia ematen dio LED kontroladoreari eta LED matrizeari. LED kontrolagailuak automatikoki bidal ditzake maila altuak eta baxuak tarte jakin batzuetan, RGB LED matrizea itxita (argiak piztuta) eta irekia (argiak itzalita) artean aldatuz, zian, horia, berdea, morea, urdina, gorria eta igor ditzake. argi zuria. Haririk gabeko modulua Wi-Fi bideratzailera konektatzeaz, argi adimendunen egoera jasotzeaz eta jakinarazteaz eta LEDa kontrolatzeko aginduak bidaltzeaz arduratzen da.
2.2 irudia. Argi adimendun simulatua
Hasierako garapenean stage, argi adimendun bat simula dezakezu RGB LED-rekin konektatuta dagoen ESP32-C3DevKitM-1 plaka erabiliz.amp aleak (ikus 2.2 irudia). Baina beharko zenuke
14 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
kontuan izan hau ez dela argi adimendun bat muntatzeko modu bakarra. Liburu honetako proiektuaren hardware diseinuak haririk gabeko modulu bat besterik ez du (ESP32-C3 integratua duena), baina ez argi adimendunaren hardware diseinu osoa. Horrez gain, Espressifek ESP32-C3-n oinarritutako audio garapen-plaka bat ere ekoizten du ESP32C3-Lyra, argiak audioarekin kontrolatzeko. Plakak mikrofono eta bozgorailuentzako interfazeak ditu eta LED bandak kontrola ditzake. Errendimendu handiko audio-difusioak eta erritmo-argi-bandak garatzeko erabil daiteke. 2.3 irudiak ESP32-C3Lyra plaka bat erakusten du 40 LED argiz osatutako zerrenda batekin lotuta.
2.3 irudia. ESP32-C3-Lyra 40 LED argien zerrenda batekin lotuta
Smartphones (Android/iOS) Smart Light proiektuak smart light produktuak konfiguratzeko eta kontrolatzeko telefono-aplikazio bat garatzen du.
Wi-Fi bideratzaileak Wi-Fi bideratzaileek hari gabeko sare-seinaleak eta sare mugikorreko seinaleak hari gabeko sare-seinale bihurtzen dituzte, ordenagailuak, telefonoak, tabletak eta hari gabeko beste gailu batzuk sarera konektatzeko. AdibidezampIzan ere, etxeko banda zabala Wi-Fi bideratzaile batera konektatu behar da Wi-Fi gailuen haririk gabeko sareak lortzeko. Wi-Fi bideratzaileek onartzen duten protokolo nagusia IEEE 802.11n da, batez beste 300 Mbps-ko TxRate edo 600 Mbps gehienez. IEEE 802.11b eta IEEE 802.11g-ekin bateragarriak dira. Espressif-en ESP32-C3 txipak IEEE 802.11b/g/n onartzen du, beraz, banda bakarreko (2.4 GHz) edo banda bikoitzeko (2.4 GHz eta 5 GHz) Wi-Fi bideratzailea aukeratu dezakezu.
Ordenagailu bat (Linux/macOS/Windows) garapen-ingurune bat aurkeztuko da 4. kapituluan. 2. kapitulua. IoT proiektuen sarrera eta praktika 15
2.2.4 Garapen-prozesua
2.4 irudia. Smart Light proiektua garatzeko urratsak
Hardwarearen diseinua IoT gailuen hardwarearen diseinua ezinbestekoa da IoT proiektu batean. Argi adimendunaren proiektu oso bat sortu nahi daamp sare elektrikoaren azpian lan egitea. Fabrikatzaile ezberdinek l ekoizten duteampestilo eta kontrolatzaile mota desberdinetakoak, baina haien haririk gabeko moduluak funtzio berekoak izan ohi dira. Smart Ligh proiektuaren garapen-prozesua errazteko, liburu honek hari gabeko moduluen hardware-diseinua eta software-garapena soilik hartzen ditu.
IoT hodeiko plataformaren konfigurazioa IoT hodeiko plataformak erabiltzeko, proiektuak konfiguratu behar dituzu backend-ean, hala nola, produktuak sortzea, gailuak sortzea, gailuen propietateak ezartzea, etab.
IoT gailuetarako txertatutako softwarearen garapena Ezar ezazu espero diren funtzioak ESP-IDFrekin, Espressif-en gailuaren alboko SDKarekin, besteak beste, IoT hodeiko plataformetara konektatzea, LED kontrolatzaileak garatzea eta firmwarea eguneratzea.
Smartphone aplikazioen garapena Garatu telefonorako aplikazioak Android eta iOS sistemetarako, erabiltzaileen erregistroa eta saioa hasteko, gailuen kontrola eta beste funtzio batzuk gauzatzeko.
IoT gailuen optimizazioa IoT gailuen funtzioen oinarrizko garapena amaitutakoan, optimizazio-zereginetara jo dezakezu, hala nola energia-optimizazioa.
Produkzio masiboko probak Egin ekoizpen masiboko probak erlazionatutako estandarren arabera, hala nola, ekipoen funtzioen proba, zahartze proba, RF proba, etab.
Goian adierazitako urratsak izan arren, Smart Light proiektu bat ez da zertan prozedura horren menpe egon, zeregin desberdinak ere aldi berean egin daitezkeelako. Adibidezample, kapsulatutako softwarea eta smartphone aplikazioak paraleloki garatu daitezke. Baliteke urrats batzuk ere errepikatu behar izatea, hala nola, IoT gailuen optimizazioa eta ekoizpen masiboko probak.
16 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
2.3 Laburpena
Kapitulu honetan, lehenik IoT proiektu baten oinarrizko osagaiak eta modulu funtzionalak azaldu genituen, ondoren Smart Light kasua praktikarako aurkeztu genuen, bere egitura, funtzioak, hardwarearen prestaketa eta garapen prozesua aipatuz. Irakurleek praktikatik ondorioak atera ditzakete eta etorkizunean IoT proiektuak gutxieneko akatsekin burutzeko konfiantza izan dezakete.
2. Kapitulua. IoT Proiektuen Sarrera eta Praktika 17
18 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
3. kapitulua
Sarrera
to
ESP
RainMaker
Gauzen Internetek (IoT) pertsonen bizimodua aldatzeko aukera amaigabeak eskaintzen ditu, baina IoT ingeniaritzaren garapena erronkaz beteta dago. Hodei publikoekin, terminalen fabrikatzaileek produktuaren funtzionaltasuna inplementa dezakete irtenbide hauen bidez:
Soluzio-hornitzaileen hodeiko plataformetan oinarrituta. Modu honetan, terminalen fabrikatzaileek produktuaren hardwarea diseinatzea baino ez dute egin behar, gero hardwarea hodeira konektatu emandako komunikazio modulua erabiliz eta produktuaren funtzioak jarraibideei jarraituz konfiguratu behar dute. Ikuspegi eraginkorra da, zerbitzariaren eta aplikazioen garapenaren eta eragiketa eta mantentze (O&M) beharra ezabatzen baitu. Terminalen fabrikatzaileei hardwarearen diseinuan zentratzea ahalbidetzen die, hodeiaren ezarpena kontuan hartu beharrik gabe. Hala ere, irtenbide horiek (adibidez, gailuaren firmwarea eta aplikazioa) orokorrean ez dira kode irekikoak, beraz, produktuaren funtzioak pertsonalizatu ezin diren hornitzailearen hodeiko plataformak mugatuko ditu. Bien bitartean, erabiltzailearen eta gailuaren datuak ere hodeiko plataformakoak dira.
Hodeiko produktuetan oinarrituta Irtenbide honetan, hardwarearen diseinua amaitu ondoren, terminalen fabrikatzaileek hodeiko funtzioak ezartzeaz gain, hodei publikoak eskaintzen dituen hodeiko produktu bat edo gehiago erabiliz, hardwarea hodeiarekin lotu behar dute. Adibidezample, Amazonera konektatzeko Web Zerbitzuak (AWS), terminalen fabrikatzaileek AWS produktuak erabili behar dituzte, hala nola Amazon API Gateway, AWS IoT Core eta AWS Lambda, gailuen sarbidea, urruneko kontrola, datuak biltegiratzea, erabiltzaileen kudeaketa eta oinarrizko beste funtzio batzuk gaitzeko. Terminalen fabrikatzaileei hodeiko produktuak malgutasunez erabiltzeko eta konfiguratzeko eskatzen die ulermen sakonarekin eta esperientzia aberatsarekin, baizik eta hasierako eta ondorengorako eraikuntza eta mantentze-kostuak kontuan hartzea eskatzen die.tages Horrek erronka handiak dakartza enpresaren energia eta baliabideei.
Hodei publikoekin alderatuta, hodei pribatuak proiektu eta produktu zehatzetarako eraiki ohi dira. Hodei pribatuko garatzaileei askatasun maila handiena ematen zaie protokoloen diseinuan eta negozio-logikaren ezarpenean. Terminalen fabrikatzaileek nahieran egin ditzakete produktuak eta diseinu-eskemak, eta erabiltzaileen datuak erraz integratu eta indartu. Hodei publikoaren segurtasun, eskalagarritasun eta fidagarritasun handiko abantailak konbinatuztaghodei pribatuaren baitan, Espressifek ESP jarri zuen martxan
19
RainMaker, Amazon hodeian oinarritutako hodei pribatuko irtenbide sakon integratua. Erabiltzaileek ESP RainMaker inplementatu eta hodei pribatua eraiki dezakete, besterik gabe, AWS kontu batekin.
3.1 Zer da ESP RainMaker?
ESP RainMaker AWS produktu heldu anitzekin eraikitako AIoT plataforma osoa da. Masa-produkziorako beharrezkoak diren hainbat zerbitzu eskaintzen ditu, hala nola gailuen hodeian sarbidea, gailuaren eguneratzea, backend kudeaketa, hirugarrenen saioa, ahots integrazioa eta erabiltzaileen kudeaketa. AWSk eskaintzen duen Serverless Application Repository (SAR) erabiliz, terminalen fabrikatzaileek ESP RainMaker azkar inplementa dezakete beren AWS kontuetan, denbora eraginkorra eta funtzionatzeko erraza dena. Espressifek kudeatzen eta mantentzen du, ESP RainMaker-ek erabiltzen duen SAR-ak garatzaileei laguntzen die hodeiko mantentze-kostuak murrizten eta AIoT produktuen garapena bizkortzen, horrela AIoT irtenbide seguru, egonkor eta pertsonalizagarriak eraikitzen. 3.1 irudiak ESP RainMaker-en arkitektura erakusten du.
3.1 irudia. ESP RainMaker-en arkitektura
Espressif-en ESP RainMaker zerbitzari publikoa doakoa da ESP zaletu, sortzaile eta hezitzaile guztientzat irtenbideak ebaluatzeko. Garatzaileek Apple, Google edo GitHub kontuekin saioa hasi dezakete eta azkar eraiki ditzakete beren IoT aplikazioen prototipoak. Zerbitzari publikoak Alexa eta Google Home integratzen ditu, eta ahots-kontroleko zerbitzuak eskaintzen ditu, Alexa Skill eta Google Actions-ek onartzen dituztenak. Bere ezagutze semantikoaren funtzioa hirugarrenek ere sustatzen dute. RainMaker IoT gailuek ekintza zehatzei soilik erantzuten diete. Onartutako ahots-komandoen zerrenda zehatza lortzeko, begiratu hirugarrenen plataformak. Horrez gain, Espressifek RainMaker App publiko bat eskaintzen du erabiltzaileentzat produktuak smartphone bidez kontrolatzeko. 20 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
3.2 ESP RainMakerren ezarpena
3.2 Irudian ikusten den bezala, ESP RainMaker-ek lau zati ditu: · Erreklamazio-zerbitzua, RainMaker gailuek ziurtagiriak modu dinamikoan lor ditzaten. · RainMaker Cloud (hodeiko backend izenez ere ezaguna), mezuak iragaztea, erabiltzaileen kudeaketa, datuak biltegiratzea eta hirugarrenen integrazioak bezalako zerbitzuak eskaintzen ditu. · RainMaker Agent, RainMaker gailuak RainMaker Cloud-era konektatzeko aukera ematen duena. · RainMaker Bezeroa (RainMaker App edo CLI script-ak), hornikuntzarako, erabiltzaileak sortzeko, gailuak elkartzeko eta kontrolatzeko, etab.
3.2 irudia. ESP RainMaker-en egitura
ESP RainMaker-ek produktuen garapenerako eta ekoizpen masiborako tresna multzo osoa eskaintzen du, besteak beste: RainMaker SDK
RainMaker SDK ESP-IDF-n oinarritzen da eta gailuaren alboko agentearen iturburu-kodea eta lotutako C APIak eskaintzen ditu firmwarea garatzeko. Garatzaileek aplikazioaren logika idatzi eta gainerakoa RainMaker esparruaren esku utzi behar dute. C APIei buruzko informazio gehiago lortzeko, bisitatu https://bookc3.espressif.com/rm/c-api-reference. RainMaker aplikazioa RainMaker aplikazioaren bertsio publikoari esker, garatzaileek gailuen horniketa osatzeko, eta gailuen egoera kontrolatu eta kontsultatu dezakete (adibidez, argiztapen adimendunaren produktuak). iOS zein Android aplikazioen dendetan dago eskuragarri. Xehetasun gehiago lortzeko, ikusi 10. kapitulura. REST APIak REST APIak erabiltzaileei RainMaker aplikazioaren antzeko aplikazioak sortzen laguntzen die. Informazio gehiago lortzeko, bisitatu https://swaggerapis.rainmaker.espressif.com/.
3. kapitulua. ESP RainMaker-en sarrera 21
Python APIak Python-en oinarritutako CLI bat eskaintzen da, RainMaker SDK-arekin batera, telefonoaren funtzioen antzeko funtzio guztiak ezartzeko. Python APIei buruzko informazio gehiago lortzeko, bisitatu https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, sarbide maila altuagoa duena, ESP RainMaker inplementazio pribaturako eskaintzen da gailuaren ziurtagiriak masiboki sortzeko.
3.2.1 Erreklamazio Zerbitzua
RainMaker gailuen eta hodeiko backendaren arteko komunikazio guztia MQTT+TLS bidez egiten da. ESP RainMaker-en testuinguruan, "Erreklamazioa" Hodeiko backend-era konektatzeko gailuek Erreklamazio Zerbitzuaren ziurtagiriak lortzen dituzten prozesua da. Kontuan izan Erreklamazio Zerbitzua RainMaker zerbitzu publikoari soilik aplikatzen zaiola, eta hedapen pribaturako, berriz, gailuaren ziurtagiriak masiboki sortu behar dira Admin CLI bidez. ESP RainMaker-ek hiru erreklamazio-zerbitzu mota onartzen ditu: Auto-erreklamazioa
Gailuak berak Internetera konektatu ondoren eFuse-n aurrez programatutako gako sekretu baten bidez lortzen ditu ziurtagiriak. Ostalariaren erreklamazioa Ziurtagiriak garapen ostalariarengandik lortzen dira RainMaker kontuarekin. Lagundutako erreklamazioa Ziurtagiriak telefono mugikorreko aplikazioen bidez lortzen dira hornikuntzan.
3.2.2 RainMaker Agentea
3.3 irudia. RainMaker SDK-ren egitura RainMaker Agentearen funtzio nagusia konektibitatea eskaintzea eta aplikazio-geruzak gorako/beheko esteka hodeiko datuak prozesatzen laguntzea da. RainMaker SDK 22 ESP32-C3 haririk gabeko abenturaren bidez eraiki da: IoTrako gida integrala
eta frogatutako ESP-IDF esparruan oinarrituta garatu da, RTOS, NVS eta MQTT bezalako ESP-IDF osagaiak erabiliz. 3.3 irudiak RainMaker SDK-aren egitura erakusten du.
RainMaker SDK-k bi ezaugarri nagusi ditu.
Konexioa
i. Erreklamazio Zerbitzuarekin lankidetzan aritzea gailuaren ziurtagiriak lortzeko.
ii. Hodeiko backend-era konektatzea MQTT protokolo segurua erabiliz urruneko konektagarritasuna eskaintzeko eta urruneko kontrola, mezuen berri ematea, erabiltzaileen kudeaketa, gailuen kudeaketa eta abar ezartzeko. MQTT osagaia ESP-IDF-n erabiltzen du lehenespenez eta abstrakzio-geruza bat eskaintzen du beste batzuekin interfazea egiteko. protokolo-pilak.
iii. WiFi hornikuntzarako osagaia hornitzea Wi-Fi konexiorako eta hornikuntzarako, batez ere https ota osagaia OTA eguneratzeko eta, batez ere, ctrl lokaleko osagaia gailu lokalak aurkitzeko eta konektatzeko. Helburu hauek guztiak konfigurazio sinpleen bidez lor daitezke.
Datuen tratamendua
i. Claiming Service-k emandako gailuaren ziurtagiriak eta RainMaker exekutatzen ari zarenean beharrezkoak diren datuak gordetzea, lehenespenez nvs flash osagaiak eskaintzen duen interfazea erabiliz, eta garatzaileentzako APIak zuzenean erabiltzeko.
ii. Deia itzultzeko mekanismoa erabiliz, gorako/beheko esteka hodeiko datuak prozesatzeko eta datuak aplikazio-geruzara automatikoki desblokeatzea garatzaileek erraz prozesatzeko. AdibidezampRainMaker SDK-k TSL (Thing Specification Language) datuak ezartzeko interfaze aberatsak eskaintzen ditu, IoT gailuak deskribatzeko TSL ereduak definitzeko eta denbora, atzerako kontaketa eta ahots-kontrola bezalako funtzioak ezartzeko behar direnak. Oinarrizko funtzio interaktiboetarako, hala nola denbora, RainMaker SDK-k garapenik gabeko soluzio bat eskaintzen du, behar denean gaitu besterik gabe. Ondoren, RainMaker Agenteak zuzenean prozesatu egingo ditu datuak, hodeira bidaliko ditu lotutako MQTT gaiaren bidez eta hodeiko backend-eko datu-aldaketak itzultzeko mekanismoaren bidez emango ditu.
3.2.3 Hodeiko backend-a
Hodeiko backend-a AWS Serverless Computing-en eraikita dago eta AWS Cognito (identitatea kudeatzeko sistema), Amazon API Gateway, AWS Lambda (zerbitzaririk gabeko informatika zerbitzua), Amazon DynamoDB (NoSQL datu-basea), AWS IoT Core (MQTT sarbidea eskaintzen duen IoT sarbidearen core) bidez lortzen da. eta arauen iragazketa), Amazon Simple Email Service (SES posta-zerbitzu sinplea), Amazon CloudFront (bidalketa bizkorreko sarea), Amazon Simple Queue Service (SQS mezuen ilarara) eta Amazon S3 (bucket biltegiratze zerbitzua). Eskalagarritasuna eta segurtasuna optimizatzea du helburu. ESP RainMaker-ekin, garatzaileek gailuak kudea ditzakete hodeian kodea idatzi beharrik gabe. Gailuek jakinarazitako mezuak modu gardenean transmititzen dira
3. kapitulua. ESP RainMaker-en sarrera 23
aplikazio bezeroak edo hirugarrenen beste zerbitzu batzuk. 3.1 taulak hodeiko backend-ean erabiltzen diren AWS hodeiko produktuak eta funtzioak erakusten ditu, produktu eta funtzio gehiago garatzen ari direla.
3.1 taula. Hodeiko backendak erabiltzen dituen AWS hodeiko produktuak eta funtzioak
RainMaker-ek erabiltzen duen AWS Cloud produktua
Funtzioa
AWS Cognito
Erabiltzaileen kredentzialak kudeatzea eta hirugarrenen saioak onartzen ditu
AWS Lambda
Hodeiko backendaren negozio-logika nagusia ezartzea
Amazon Timestream Denbora serieen datuak gordetzea
Amazon DynamoDB Bezeroen informazio pribatua gordetzea
AWS IoT Core
MQTT komunikazioa laguntzea
Amazon SES
Posta elektronikoa bidaltzeko zerbitzuak eskaintzea
Amazon CloudFront Backend-aren kudeaketa bizkortzea webgunerako sarbidea
Amazon SQS
AWS IoT Core-tik mezuak birbidaltzea
3.2.4 RainMaker Bezeroa
RainMaker bezeroak, hala nola, aplikazioak eta CLIak, hodeiko backendarekin komunikatzen dira REST APIen bidez. REST APIei buruzko informazio zehatza eta argibideak Espressifek emandako Swagger dokumentazioan aurki daitezke. RainMaker-en mugikorretarako aplikazio bezeroa iOS zein Android sistemetarako eskuragarri dago. Gailuak hornitzea, kontrolatzea eta partekatzea ahalbidetzen du, baita atzerako kontaketa egitekoak eta hirugarrenen plataformetara konektatzea ere. Automatikoki kargatu ditzake UI eta ikonoak gailuek jakinarazitako konfigurazioaren arabera eta gailuaren TSL guztiz bistaratu.
Adibidezample, argi adimendun bat eraikitzen bada RainMaker SDK-k emandako adibidezamples, bonbillaren ikonoa eta interfazea automatikoki kargatuko dira horniketa amaitzean. Erabiltzaileek argiaren kolorea eta distira alda ditzakete interfazearen bidez eta hirugarrenen kontrola lor dezakete Alexa Smart Home Skill edo Google Smart Home Actions ESP RainMaker kontuekin lotuz. 3.4 irudiak ikonoa eta UI erakusten ditu adibidezampbonbillaren argiaren fitxategiak, hurrenez hurren, Alexa, Google Home eta ESP RainMaker aplikazioan.
24 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
(a) Adibample – Alexa
(b) Adibample - Google Home
(c) Adibample – ESP RainMaker
3.4. irudia. AdibampAlexa, Google Home eta ESP RainMaker aplikazioan bonbillaren ikonoaren eta interfazearen fitxategiak
3.3 Praktika: ESP RainMaker-ekin garatzeko funtsezko puntuak
Gailu-kontrolatzaileen geruza osatu ondoren, garatzaileak TSL ereduak sortzen has daitezke RainMaker SDK-k emandako APIak erabiliz beheranzko loturako datuak prozesatzen, eta ESP RainMaker oinarrizko zerbitzuak gaitu produktuaren definizio eta eskakizunetan oinarrituta.
3. kapitulua. ESP RainMaker-en sarrera 25
Liburu honen 9.4 atalean RainMaker-en LED argi adimendunaren ezarpena azalduko da. Arazketan, garatzaileek RainMaker SDK-ko CLI tresnak erabil ditzakete argi adimendunarekin komunikatzeko (edo Swagger-eko REST APIetara deitu).
10. kapituluan REST APIen erabilera landuko da smartphone aplikazioak garatzeko. LED argi adimendunen OTA eguneratzeak 11. kapituluan landuko dira. Garatzaileek ESP Insights urruneko monitorizazioa gaitu badute, ESP RainMaker kudeaketa backendak ESP Insights datuak bistaratuko ditu. Xehetasunak 15. kapituluan aurkeztuko dira.
ESP RainMaker-ek inplementazio pribatua onartzen du, zeina RainMaker zerbitzari publikotik ezberdintzen den modu hauetan:
Erreklamazio-zerbitzua Inplementazio pribatuetan ziurtagiriak sortzeko, RainMaker Admin CLI erabili behar da Erreklamazioa egin beharrean. Zerbitzari publikoarekin, garatzaileei admin-eskubideak eman behar zaizkie firmware-berritzea ezartzeko, baina ez da desiragarria inplementazio komertzialetan. Hori dela eta, ezin da auto-erreklamaziorako autentifikazio-zerbitzu bereizirik eman, ezta ostalariaren edo lagundutako erreklamazioetarako administratzaile-eskubiderik ere.
Telefono-aplikazioak Inplementazio pribatuetan, aplikazioak bereizita konfiguratu eta konpilatu behar dira, kontu-sistemak elkarreragingarriak ez direla ziurtatzeko.
Hirugarrenen saioak eta ahotsaren integrazioa Garatzaileek bereizita konfiguratu behar dute Google eta Apple Garatzaileen kontuen bidez hirugarrenen saioak gaitzeko, baita Alexa Skill eta Google Voice Assistant integrazioa ere.
AHOLKUAK Hodeiaren inplementazioari buruzko xehetasunak lortzeko, bisitatu https://customer.rainmaker.espressif. com. Firmwareari dagokionez, zerbitzari publikotik zerbitzari pribaturako migrazioak gailuaren ziurtagiriak ordezkatzea besterik ez du behar, eta horrek asko hobetzen du migrazioaren eraginkortasuna eta migrazioaren eta bigarren mailako arazketa kostua murrizten du.
3.4 ESP RainMaker-en ezaugarriak
ESP RainMaker-en eginbideak hiru alderditara zuzentzen dira nagusiki: erabiltzaileen kudeaketa, azken erabiltzaileak eta administratzaileak. Ezaugarri guztiak zerbitzari publikoetan zein pribatuetan onartzen dira, bestela adierazi ezean.
3.4.1 Erabiltzaileen kudeaketa
Erabiltzaileak kudeatzeko eginbideei esker, azken erabiltzaileek erregistratu, saioa hasi, pasahitzak aldatu, pasahitzak berreskuratu, etab.
26 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Erregistratu eta hasi saioa RainMaker-ek onartzen dituen erregistratzeko eta saioa hasteko metodoak honako hauek dira: · Posta elektronikoaren ID + Pasahitza · Telefono-zenbakia + Pasahitza · Google kontua · Apple kontua · GitHub kontua (zerbitzari publikoa soilik) · Amazon kontua (zerbitzari pribatua soilik)
OHARRA Erregistratu Google/Amazon erabiliz erabiltzailearen helbide elektronikoa RainMaker-ekin partekatzen du. Erregistratu Apple erabiliz Applek RainMaker zerbitzurako bereziki erabiltzaileari esleitzen dion helbide fikzio bat partekatzen du. RainMaker kontu bat sortuko da automatikoki Google, Apple edo Amazon kontu batekin lehen aldiz saioa hasten duten erabiltzaileentzat.
Aldatu pasahitza Baliozkoa da posta elektronikoko ID/Telefono-zenbakian oinarritutako saioa hasteko soilik. Gainontzeko saio aktibo guztiak saioa amaituko dira pasahitza aldatu ondoren. AWS Cognito-ren portaeraren arabera, saioa amaitutako saioak ordubete arte egon daitezke aktibo.
Berreskuratu pasahitza Baliozkoa da posta elektronikoko ID/Telefono-zenbakian oinarritutako saioa hasteko soilik.
3.4.2 Azken erabiltzaileen ezaugarriak
Azken erabiltzaileei irekita dauden eginbideen artean, tokiko eta urruneko kontrola eta monitorizazioa, programazioa, gailuen taldekatzea, gailuak partekatzea, push jakinarazpenak eta hirugarrenen integrazioak daude.
Urruneko kontrola eta monitorizazioa · Kontsultatu konfigurazioa, parametroen balioak eta konexio-egoera gailu baten edo guztientzat. · Ezarri gailu bakarreko edo anitzeko parametroak.
Tokiko kontrola eta monitorizazioa Telefono mugikorrak eta gailua sare berera konektatuta egon behar dute tokiko kontrolerako.
Programazioa · Erabiltzaileek une zehatz batean ekintza batzuk aurrez ezartzen dituzte. · Ez da Interneteko konexiorik behar gailuan programazioa exekutatzen ari zaren bitartean. · Behin edo errepikatu (egunak zehaztuz) gailu bakarrean edo anitzetan.
Gailuen taldekatzea Maila anitzeko taldekatze abstraktua onartzen du Taldeko metadatuak Home Room egitura bat sortzeko.
3. kapitulua. ESP RainMaker-en sarrera 27
Gailuak partekatzea Gailu bat edo gehiago erabiltzaile batekin edo gehiagorekin parteka daitezke.
Push jakinarazpenak Azken erabiltzaileek push jakinarazpenak jasoko dituzte, hala nola: · Gailu berriak gehitu/kendu · Hodeira konektatutako gailua · Hodeitik deskonektatu da gailua · Sortu/onartu/baztertu gailuak partekatzeko eskaerak · Gailuek jakinarazitako alerta-mezuak
Hirugarrenen integrazioak Alexa eta Google Voice Assistant onartzen dira RainMaker gailuak kontrolatzeko, argiak, etengailuak, entxufeak, haizagailuak eta tenperatura sentsoreak barne.
3.4.3 Admin Ezaugarriak
Admin eginbideei esker, administratzaileek gailuen erregistroa, gailuen taldekatzea eta OTA eguneratzeak ezar ditzakete view estatistikak eta ESP Insights datuak.
Gailuaren erregistroa Sortu gailuaren ziurtagiriak eta erregistratu Admin CLI-rekin (zerbitzari pribatua soilik).
Gailuen taldekatzea Sortu talde abstraktuak edo egituratuak gailuaren informazioan oinarrituta (zerbitzari pribatua soilik).
Airean zehar (OTA) eguneratzeak Kargatu firmwarea bertsioaren eta ereduaren arabera, gailu batera edo gehiagotara edo talde batera Monitorizatu, bertan behera utzi edo artxibatu OTA lanak.
View estatistikak ViewGai estatistiken artean honako hauek daude: · Gailuen erregistroak (administratzaileak erregistratutako ziurtagiriak) · Gailuaren aktibazioa (gailuak lehen aldiz konektatuta) · Erabiltzaile-kontuak · Erabiltzaile-gailuen elkartea
View ESP Insights datuak ViewESP Insights-en datuek honako hauek dira: · Akatsak, abisuak eta erregistro pertsonalizatuak.
28 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
3.5 Laburpena
Kapitulu honetan, RainMaker inplementazio publikoaren eta inplementazio pribatuaren arteko funtsezko desberdintasun batzuk sartu ditugu. Espressifek abian jarritako ESP RainMaker irtenbide pribatua oso fidagarria eta hedagarria da. ESP32 serieko txip guztiak AWSra konektatu eta egokitu dira, eta horrek kostua asko murrizten du. Garatzaileek prototipoen egiaztapenean zentratu daitezke AWS hodeiko produktuei buruz ikasi beharrik gabe. ESP RainMaker-en ezarpena eta ezaugarriak ere azaldu ditugu, eta plataforma erabiliz garatzeko gako batzuk.
Eskaneatu ESP RainMaker Android deskargatzeko Eskaneatu ESP RainMaker iOSerako deskargatzeko
3. kapitulua. ESP RainMaker-en sarrera 29
30 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Kapitulua Konfiguratzea 4 Garapen-ingurunea
Kapitulu honek ESP-IDF, ESP32-C3rako software garatzeko esparru ofiziala du ardatz. Hainbat sistema eragiletan ingurunea nola konfiguratu eta ESP-IDFren proiektuaren egitura eta eraikitze sistema aurkeztuko dugu, baita erlazionatutako garapen tresnen erabilera ere. Ondoren, ex baten konpilazio eta exekuzio prozesua aurkeztuko duguample proiektua, s bakoitzean irteerako erregistroaren azalpen zehatza eskaintzen duen bitarteantage.
4.1 ESP-IDF baino gehiagoview
ESP-IDF (Espressif IoT Development Framework) Espressif Technology-k eskaintzen duen IoT garapen esparru bakarra da. C/C++ erabiltzen du garapen-lengoaia nagusi gisa eta konpilazio gurutzatua onartzen du Linux, Mac eta Windows bezalako sistema eragile nagusietan. AdibampLiburu honetan sartzen diren programak ESP-IDF erabiliz garatzen dira, eta honek ezaugarri hauek eskaintzen ditu: · SoC sistema-mailako kontrolatzaileak. ESP-IDF-k ESP32, ESP32-S2, ESP32-C3 eta
eta beste txip batzuk. Gidari hauek maila baxuko periferikoen (LL) liburutegia, hardwarearen abstrakzio geruzaren (HAL) liburutegia, RTOS euskarria eta goiko geruzako kontrolatzaileen softwarea eta abar biltzen dituzte. · Ezinbesteko osagaiak. ESP-IDF-k IoT garapenerako beharrezkoak diren oinarrizko osagaiak biltzen ditu. Horrek sareko protokolo-pila ugari biltzen ditu, hala nola HTTP eta MQTT, maiztasun-modulazio dinamikoa duen energia kudeatzeko esparrua eta Flash Encryption eta Secure Boot bezalako funtzioak, etab. · Garapen eta ekoizpen tresnak. ESP-IDF-k garapenean eta ekoizpen masiboan eraikitzeko, flasherako eta arazketarako erabili ohi diren tresnak eskaintzen ditu (ikus 4.1. irudia), hala nola CMake-n oinarritutako eraikuntza-sistema, GCCn oinarritutako konpilazio gurutzatuaren tresna-katea eta J.TAG OpenOCD-n oinarritutako arazketa-tresna, etab. Azpimarratzekoa da ESP-IDF kodea batez ere Apache 2.0 kode irekiko lizentziari atxikitzen zaiola. Erabiltzaileek software pertsonala edo komertziala gara dezakete murrizketarik gabe, kode irekiko lizentziaren baldintzak betetzen dituzten bitartean. Gainera, erabiltzaileek doako patente-lizentzia iraunkorrak ematen dituzte, iturburu-kodean egindako aldaketak kode irekian jartzeko betebeharrik gabe.
31
4.1. irudia.
Eraikuntza, keinuka eta arazketa-
garapen eta ekoizpen masiborako tresnak
4.1.1 ESP-IDF bertsioak
ESP-IDF kodea GitHub-en dago kode irekiko proiektu gisa. Gaur egun, hiru bertsio nagusi daude eskuragarri: v3, v4 eta v5. Bertsio nagusi bakoitzak hainbat subbertsio izan ohi ditu, hala nola v4.2, v4.3, etab. Espressif Systems-ek 30 hilabeteko laguntza bermatzen du kaleratutako azpi-bertsio bakoitzeko akatsen konponketetarako eta segurtasun-adabakietarako. Hori dela eta, subbertsioen berrikuspenak ere argitaratzen dira aldian-aldian, hala nola, v4.3.1, v4.2.2, etab. 4.1 taulak ESP-IDF bertsio desberdinen euskarriaren egoera erakusten du Espressif txipetarako, aurreko batean dauden ala ez adieraziz.view stage (aurrerako laguntza eskainizview bertsioak (funtzio edo dokumentazio jakin batzuk ez dituztenak) edo ofizialki onartzen direnak.
4.1 taula. Espressif txipetarako ESP-IDF bertsio ezberdinen egoera onartzen
Serie ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 onartzen da
v4.2 onartzen da
v4.3 onargarria onartzen da
v4.4 onargarria onartzen da onartzen da
aurreview
v5.0 onargarria onartzen da onartzen da onartzen daview
32 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Bertsio nagusien errepikapenak marko-egituraren doikuntzak eta konpilazio-sistemaren eguneratzeak dakar askotan. Adibidezample, v3.*-tik v4.*-ra aldaketa nagusia izan zen eraikitze-sistema Make-tik CMake-ra pixkanaka migratzea. Bestalde, bertsio txikien iterazioak normalean ezaugarri berriak gehitzea edo txip berrientzako euskarria dakar.
Garrantzitsua da bertsio egonkorrak eta GitHub-en adarren arteko erlazioa bereiztea eta ulertzea. v*.* edo v*.*.* gisa etiketatutako bertsioek Espressifek egindako barne-proba osoa gainditu duten bertsio egonkorrak adierazten dituzte. Behin konponduta, bertsio bereko kodea, tresna-katea eta oharra dokumentuak aldatu gabe geratzen dira. Hala ere, GitHub-en adarrek (adibidez, bertsioa/v4.3 adarra) maiz kode-konpromisoak jasaten dituzte, askotan egunero. Hori dela eta, adar bereko bi kode zati desberdinak izan daitezke, eta, ondorioz, garatzaileek beren kodea berehala eguneratu behar dute.
4.1.2 ESP-IDF Git lan-fluxua
Espressifek ESP-IDFrako Git lan-fluxu espezifikoa jarraitzen du, honela deskribatuta:
· Aldaketa berriak egiten dira adarraren maisuan, garapen adar nagusi gisa balio duena. Adar nagusiko ESP-IDF bertsioak beti darama -dev tag gaur egun garatzen ari dela adierazteko, adibidez, v4.3-dev. Maisu-adarraren aldaketak lehenik eta behin berriro izango diravieweditatu eta Espressif-en barne biltegian probatu, eta, ondoren, GitHubera bidali, proba automatizatuak amaitu ondoren.
· Bertsio berri batek adar nagusiaren ezaugarrien garapena amaitu eta beta proban sartzeko irizpideak betetzen dituenean, adar berri batera igarotzen da, hala nola bertsioa/v4.3. Horrez gain, adar berri hau da tagargitaratu aurreko bertsio gisa, v4.3-beta1 bezala. Garatzaileek GitHub plataformara jo dezakete adar zerrenda osoa eta tags ESP-IDFrentzat. Garrantzitsua da beta bertsioak (argitaratze aurreko bertsioak) oraindik arazo ezagun ugari izan ditzakeela. Beta bertsioak etengabeko probak egiten dituenez, akatsen konponketak gehitzen zaizkio bertsio honi eta adar nagusiari aldi berean. Bien bitartean, adar maisua hurrengo bertsiorako funtzio berriak garatzen hasita egotea agian. Probak ia amaitzen direnean, bertsiorako hautagai (rc) etiketa bat gehitzen zaio adarrean, bertsio ofizialerako hautagai potentziala dela adieraziz, v4.3-rc1 adibidez. s honetantage, adarrak kaleratu aurreko bertsioa izaten jarraitzen du.
· Akats handirik aurkitzen edo jakinarazi ez bada, bertsioaren aurreko bertsioak azkenean bertsio nagusiaren etiketa bat jasoko du (adibidez, v5.0) edo bertsio txikiaren etiketa bat (adibidez, v4.3) eta bertsio ofiziala bihurtzen da, dokumentatuta dagoena. oharra oharren orrian. Ondoren, bertsio honetan identifikatutako akatsak kaleratze-adarrean konponduko dira. Eskuzko probak amaitu ondoren, adarrari akatsak konpontzeko bertsio etiketa bat esleitzen zaio (adibidez, v4.3.2), bertsioaren oharren orrian ere islatzen dena.
4. kapitulua. Garapen-ingurunea ezartzea 33
4.1.3 Bertsio egoki bat hautatzea
ESP-IDF ofizialki ESP32-C3 onartzen hasi zenez v4.3 bertsiotik, eta v4.4 oraindik ez da ofizialki argitaratu liburu hau idazteko unean, liburu honetan erabilitako bertsioa v4.3.2 da, hau da, bertsio berritua. v4.3. Dena den, kontuan izan behar da liburu hau irakurtzen duzunerako, baliteke 4.4 bertsioa edo bertsio berriagoak eskuragarri egotea. Bertsio bat hautatzerakoan, honako hau gomendatzen dugu:
· Hasierako garatzaileentzat, gomendagarria da v4.3 bertsio egonkorra edo bere bertsio berritua aukeratzea, zeina ex-ekin bat datorrena.ampLiburu honetan erabilitako bertsioa.
· Produkzio masiborako, azken bertsio egonkorra erabiltzea gomendatzen da laguntza tekniko eguneratuenaz baliatzeko.
· Txip berriekin esperimentatzeko edo produktuen ezaugarri berriak arakatzeko asmoa baduzu, erabili adar nagusia. Azken bertsioak azken ezaugarri guztiak ditu, baina kontuan izan akats ezagunak edo ezezagunak egon daitezkeela.
· Erabiltzen ari den bertsio egonkorrak nahi diren ezaugarri berriak ez baditu eta adar nagusiarekin lotutako arriskuak gutxitu nahi badituzu, kontuan hartu dagokion bertsio-adarra erabiltzea, adibidez, bertsioa/v4.4 adarra. Espressif-en GitHub biltegiak lehenik oharra/v4.4 adarra sortuko du eta, ondoren, v4.4 bertsio egonkorra kaleratuko du adar honen argazki historiko zehatz batean oinarrituta, funtzioen garapen eta proba guztiak amaitu ondoren.
4.1.4 Gehiagoview ESP-IDF SDK direktorioaren
ESP-IDF SDK bi direktorio nagusik osatzen dute: esp-idf eta .espressif. Lehenengoak ESP-IDF biltegiaren iturburu kodea dauka files eta konpilazio scriptak, bigarrenak, batez ere, konpilazio tresna-kateak eta beste software batzuk gordetzen ditu. Bi direktorio hauek ezagutzeak garatzaileek erabilgarri dauden baliabideak hobeto aprobetxatzen eta garapen prozesua bizkortzen lagunduko dute. ESP-IDF-ren direktorio-egitura jarraian deskribatzen da:
(1) ESP-IDF biltegiko kode direktorioa (/esp/esp-idf), 4.2 Irudian ikusten den moduan.
a. Osagaien direktorioaren osagaiak
Oinarrizko direktorio honek ESP-IDF-ren funtsezko software osagai ugari integratzen ditu. Ezin da proiektu-koderik konpilatu direktorio honetako osagaietan fidatu gabe. Espressif hainbat txip gidariaren euskarria barne hartzen du. LL liburutegitik eta HAL liburutegiko interfazeetatik periferikoetarako goi-mailako kontrolatzailera eta birtualera. File Sistemaren (VFS) geruzaren euskarria, garatzaileek osagai egokiak aukera ditzakete maila ezberdinetan beren garapen beharretarako. ESP-IDF-k sareko protokolo estandar ugari onartzen ditu, hala nola TCP/IP, HTTP, MQTT, WebSocket, etab. Garatzaileek Socket bezalako interfaze ezagunak erabil ditzakete sareko aplikazioak sortzeko. Osagaiek ulermena eskaintzen dute
34 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
4.2 irudia. ESP-IDF biltegiko kode direktorioa
funtzionaltasun handia eta aplikazioetan erraz integra daiteke, garatzaileei negozio-logikan soilik zentratu ahal izateko. Osagai arrunt batzuk honako hauek dira: · kontrolatzailea: osagai honek Espressif hainbat kontrolatzaile periferikorako programak ditu
txip-serieak, hala nola GPIO, I2C, SPI, UART, LEDC (PWM), etab. Osagai honetako kontrolatzaile periferikoen programek txiparekiko independenteak diren interfaze abstraktuak eskaintzen dituzte. Periferiko bakoitzak goiburu komun bat du file (adibidez, gpio.h), txiparen berariazko laguntza-galdera ezberdinei aurre egiteko beharra ezabatuz. · esp_wifi: Wi-Fi, periferiko berezi gisa, osagai bereizi gisa tratatzen da. Hainbat API barne hartzen ditu, hala nola, Wi-Fi kontrolatzaile modu ezberdinen hasieratzea, parametroen konfigurazioa eta gertaeren prozesamendua. Osagai honen funtzio batzuk esteka-liburutegi estatikoen moduan eskaintzen dira. ESP-IDF-k gidariaren dokumentazio osoa ere eskaintzen du erabiltzeko erraztasunerako.
4. kapitulua. Garapen-ingurunea ezartzea 35
· freertos: osagai honek FreeRTOS kodea osoa dauka. Sistema eragile honi euskarria integrala emateaz gain, Espressifek nukleo biko txipetara ere hedatu du bere laguntza. ESP32 eta ESP32-S3 bezalako nukleo bikoitzeko txipetarako, erabiltzaileek nukleo zehatzetan zereginak sor ditzakete.
b. Dokumentuen direktorioa docs
Direktorio honek ESP-IDF-ren garapen-dokumentuak ditu, besteak beste, Hasteko Gida, API-ren Erreferentzia Eskuliburua, Garapen Gida, etab.
OHARRA Tresna automatizatuek konpilatu ondoren, direktorio honen edukia https://docs.espressif.com/projects/esp-idf helbidean zabaltzen da. Mesedez, ziurtatu dokumentuaren xedea ESP32-C3ra aldatzea eta zehaztutako ESP-IDF bertsioa hautatu.
c. Script tresna tresnak
Direktorio honek erabili ohi diren konpilazio-frontend-tresnak ditu, hala nola idf.py, eta monitor terminal tresna idf_monitor.py, etab. cmake azpidirektorioak core script-a ere badu. fileKonpilazio sistemaren s, ESP-IDF konpilazio arauak ezartzeko oinarri gisa balio duena. Ingurune-aldagaiak gehitzean, tresnen direktorioko edukiak sistemaren ingurune-aldagaira gehitzen dira, idf.py proiektuaren bide-bidearen azpian zuzenean exekutatzeko aukera emanez.
d. Adibample programen direktorioa adibidezamples
Direktorio honek ESP-IDF adib. bilduma zabala duamposagaien APIen erabilera erakusten duten programak. Adibampfitxategiak hainbat azpidirektoriotan antolatzen dira euren kategorien arabera:
· Hasi: azpidirektorio honek sarrera-mailako adamp"Kaixo mundua" eta "Kinukatu" bezalakoak erabiltzaileei oinarriak ulertzen laguntzeko.
· bluetooth: Bluetooth-a erlazionatuta aurki dezakezu adibidezamphemen, Bluetooth LE Mesh, Bluetooth LE HID, BluFi eta gehiago barne.
· wifi: azpidirektorio honek Wi-Fi-ra bideratzen du, adibidezampfitxategiak, Wi-Fi SoftAP, Wi-Fi Station, espnow bezalako oinarrizko programak barne, baita jabedun komunikazio protokoloa ere.ampEspressifeko les. Hainbat aplikazio geruza ere barne hartzen ditu, adibidezampWi-Fi-n oinarritutako fitxategiak, hala nola Iperf, Sniffer eta Smart Config.
· periferikoak: azpidirektorio zabal hau periferikoen izenetan oinarritutako azpikarpeta ugaritan banatzen da. Gidari periferikoak ditu batez ere, adibidezampEspressif txipetarako les, adibide bakoitzarekinample hainbat azpi-examples. Adibidez, gpio azpidirektorioak bi adibide biltzen dituamples: GPIO eta GPIO matrize teklatua. Garrantzitsua da kontuan izan ez direla exampDirektorio honetako fitxategiak ESP32-C3-rako aplikagarriak dira.
36 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Adibidezample, exampusb/host-en fitxategiak USB Host hardwarea duten periferikoei soilik aplikatzen zaizkie (esaterako, ESP32-S3), eta ESP32-C3-k ez du periferiko hori. Konpilazio-sistemak normalean abisuak ematen ditu helburua ezartzerakoan. IRAKURRI file ex bakoitzekoample-ek onartzen dituen txipak zerrendatzen ditu. · protokoloak: Azpidirektorio honek adibampKomunikazio protokolo ezberdinetarako fitxategiak, besteak beste, MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, komunikazio protokolo ugari biltzen dituena.ampIoT garapenerako beharrezkoak diren fitxategiak. · hornidura: hemen hornidura aurkituko duzu adibidezampmetodo desberdinetarako, adibidez, Wi-Fi hornidura eta Bluetooth LE hornidura. · sistema: azpidirektorio honek sistemaren arazketa barne hartzen du, adibidezampfitxategiak (adibidez, pilaren jarraipena, exekuzio denboraren jarraipena, zereginen jarraipena), potentzia-kudeaketa, adibidezamples (adibidez, hainbat lo modu, koprozesadoreak) eta adibidezampSistemaren osagai arruntekin erlazionatutako fitxategiak, esaterako, kontsola terminala, gertaeren begizta eta sistemaren tenporizadorea. · biltegiratzea: azpidirektorio honen barruan, adibidez, aurkituko duzuampdenen artean file ESP-IDF-k onartzen dituen sistemak eta biltegiratze-mekanismoak (adibidez, Flash, SD txartela eta beste biltegiratze-euskarriak irakurtzea eta idaztea), baita ex.ampBiltegiratze ez-hegazkorra (NVS), FatFS, SPIFFS eta beste fitxategi batzuk file sistemaren eragiketak. · segurtasuna: Azpidirektorio honek adibidezampflash enkriptatzeari lotutako fitxategiak. (2) ESP-IDF konpilazio tresnen kate direktorioa (/.espressif), 4.3 irudian ikusten den moduan.
4.3 irudia. ESP-IDF konpilazio tresnen kate direktorioa
4. kapitulua. Garapen-ingurunea ezartzea 37
a. Software banaketa direktorioa dist
ESP-IDF tresna-katea eta beste software batzuk pakete konprimitu moduan banatzen dira. Instalazio-prozesuan zehar, instalazio-tresnak lehenik konprimitutako paketea deskargatzen du dist direktoriora, eta ondoren zehaztutako direktoriora ateratzen du. Instalazioa amaitutakoan, direktorio honetako edukia segurtasunez kendu daiteke.
b. Python ingurune birtuala direktorioa python env
ESP-IDFren bertsio desberdinak Python paketeen bertsio zehatzetan oinarritzen dira. Pakete hauek ostalari berean zuzenean instalatzeak paketeen bertsioen arteko gatazkak sor ditzake. Horri aurre egiteko, ESP-IDF-k Python ingurune birtualak erabiltzen ditu paketeen bertsio desberdinak isolatzeko. Mekanismo honekin, garatzaileek ESP-IDF-ren hainbat bertsio instala ditzakete ostalari berean eta erraz alda ditzakete haien artean ingurune-aldagai desberdinak inportatuz.
c. ESP-IDF konpilazio tresna kate direktorio tresnak
Direktorio honek batez ere ESP-IDF proiektuak konpilatzeko beharrezkoak diren konpilazio gurutzatuko tresnak ditu, hala nola, CMake tresnak, Ninja eraikitzeko tresnak eta azken programa exekutagarria sortzen duen gcc tresna-katea. Gainera, direktorio honek C/C++ lengoaiaren liburutegi estandarra biltzen du dagokion goiburuarekin batera files. Programa batek sistemaren goiburu bat aipatzen badu file #barne bezala , konpilazio tresna kateak stdio.h kokatuko du file direktorio honen barruan.
4.2 ESP-IDF garapen-ingurunea konfiguratzea
ESP-IDF garapen-inguruneak sistema eragile nagusiak onartzen ditu, hala nola Windows, Linux eta macOS. Atal honetan garapen-ingurunea sistema bakoitzean nola konfiguratu azalduko da. ESP32-C3 Linux sisteman garatzea gomendatzen da, hemen zehatz-mehatz aurkeztuko dena. Argibide asko plataformetan aplikatzen dira garapen tresnen antzekotasuna dela eta. Horregatik, atal honen edukia arretaz irakurtzea gomendatzen da.
OHARRA https://bookc3.espressif.com/esp32c3 helbidean eskuragarri dauden sareko dokumentuetara jo dezakezu, atal honetan aipatzen diren komandoak ematen dituztenak.
4.2.1 ESP-IDF garapen-ingurunea Linux-en konfiguratzea
ESP-IDF garapen ingurunerako beharrezkoak diren GNU garapen eta arazketa tresnak Linux sistemaren jatorrizkoak dira. Gainera, Linux-en komando-lerroko terminala indartsua eta erabilerraza da, eta aukera ezin hobea da ESP32-C3 garapenerako. Ahal duzu
38 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
hautatu zure Linux banaketa gogokoena, baina Ubuntu edo Debian oinarritutako beste sistema batzuk erabiltzea gomendatzen dugu. Atal honek ESP-IDF garapen-ingurunea Ubuntu 20.04-n konfiguratzeko jarraibideak eskaintzen ditu.
1. Instalatu beharrezko paketeak
Ireki terminal berri bat eta exekutatu komando hau beharrezko pakete guztiak instalatzeko. Komandoak automatikoki saltatuko ditu dagoeneko instalatuta dauden paketeak.
$ sudo apt-get install git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
AHOLKUAK Administratzailearen kontua eta pasahitza erabili behar dituzu goiko komandorako. Lehenespenez, ez da informaziorik bistaratuko pasahitza sartzean. Besterik gabe, sakatu "Sartu" tekla prozedura jarraitzeko.
Git gako-kodeak kudeatzeko tresna bat da ESP-IDF-n. Garapen-ingurunea behar bezala konfiguratu ondoren, git log komandoa erabil dezakezu view ESP-IDF sortu zenetik egindako kode aldaketa guztiak. Horrez gain, Git ESP-IDF-n ere erabiltzen da bertsio-informazioa berresteko, bertsio zehatzei dagokien tresna-kate egokia instalatzeko beharrezkoa dena. Git-ekin batera, sistemaren beste tresna garrantzitsu batzuk Python daude. ESP-IDF-k Python-en idatzitako automatizazio script ugari biltzen ditu. CMake, Ninja-build eta Ccache bezalako tresnak oso erabiliak dira C/C++ proiektuetan eta kodeak biltzeko eta eraikitzeko tresna lehenetsi gisa balio dute ESP-IDF-n. libusb-1.0-0 eta dfu-util USB serieko komunikaziorako eta firmwarea grabatzeko erabiltzen diren kontrolatzaile nagusiak dira. Software paketeak instalatuta daudenean, apt show erabil dezakezu komandoa pakete bakoitzaren deskribapen zehatzak lortzeko. Adibidezample, erabili apt show git Git tresnaren deskribapen informazioa inprimatzeko.
G: Zer egin Python bertsioa onartzen ez bada? E: ESP-IDF v4.3 v3.6 baino txikiagoa ez den Python bertsioa behar du. Ubunturen bertsio zaharragoetarako, deskargatu eta instalatu eskuz Python-en bertsio handiagoa eta ezarri Python3 Python ingurune lehenetsi gisa. Argibide zehatzak aurki ditzakezu python gakoen eguneraketa-alternatibak bilatuz.
2. Deskargatu ESP-IDF biltegiko kodea
Ireki terminal bat eta sortu esp izeneko karpeta bat zure etxeko direktorioan mkdir komandoa erabiliz. Nahiago baduzu karpetarako beste izen bat hauta dezakezu. Erabili cd komandoa karpetara sartzeko.
4. kapitulua. Garapen-ingurunea ezartzea 39
$ mkdir -p /esp $ cd /esp
Erabili git clone komandoa ESP-IDF biltegiaren kodea deskargatzeko, behean erakusten den moduan:
$ git clone -b v4.3.2 –errekurtsiboa https://github.com/espressif/esp-idf.git
Goiko komandoan, -b v4.3.2 parametroak deskargatu beharreko bertsioa zehazten du (kasu honetan, 4.3.2 bertsioa). –recursive parametroak ESP-IDF-ren azpi-biltegi guztiak modu errekurtsiboan deskargatzen direla ziurtatzen du. Azpi-biltegiei buruzko informazioa .gitmodules-en aurki daiteke file.
3. Instalatu ESP-IDF garapen tresna katea
Espressifek install.sh script automatizatu bat eskaintzen du tresna-katea deskargatzeko eta instalatzeko. Script honek egungo ESP-IDF bertsioa eta sistema eragilearen ingurunea egiaztatzen ditu, eta, ondoren, Python tresna paketeen eta konpilazio tresnen kateen bertsio egokia deskargatzen eta instalatzen du. Tresna-katearen instalazio-bide lehenetsia /.espressif da. Egin behar duzun guztia esp-idf direktoriora nabigatu eta install.sh exekutatu da.
$ cd /esp/esp-idf $ ./install.sh
Tresna-katea behar bezala instalatzen baduzu, terminalak bistaratuko du:
Dena eginda!
Une honetan, arrakastaz konfiguratu duzu ESP-IDF garapen-ingurunea.
4.2.2 Windows-en ESP-IDF garapen-ingurunea konfiguratzea
1. Deskargatu ESP-IDF tresnen instalatzailea
AHOLKUAK ESP-IDF garapen-ingurunea konfiguratzea gomendatzen da Windows 10 edo berriagoa. Instalatzailea https://dl.espressif.com/dl/esp-idf/ helbidean deskarga dezakezu. Instalatzailea kode irekiko software bat ere bada, eta bere iturburu kodea izan daiteke vieweditatu https://github.com/espressif/idf-installer helbidean.
· Lineako ESP-IDF tresnen instalatzailea
Instalatzaile hau nahiko txikia da, 4 MB ingurukoa, eta beste pakete eta kodea deskargatuko dira instalazio prozesuan zehar. AdvantagLineako instalatzailearena da instalazio-prozesuan zehar software paketeak eta kodea eskatuz deskargatu ahal izateaz gain, ESP-IDF-en eskuragarri dauden bertsio guztiak eta GitHub kodearen azken adarra (adar nagusia adibidez) instalatzeko aukera ere ematen du. . DesabantailatagEa da sareko konexioa behar duela instalazio-prozesuan zehar, eta horrek sareko arazoengatik instalazioaren hutsegitea eragin dezake.
40 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
· Lineaz kanpoko ESP-IDF tresnen instalatzailea Instalatzaile hau handiagoa da, 1 GB ingurukoa, eta ingurunea konfiguratzeko behar diren software pakete eta kode guztiak ditu. Abantail nagusiatagLineaz kanpoko instalatzailearena da Interneterako sarbiderik gabeko ordenagailuetan erabil daitekeela eta, oro har, instalazioaren arrakasta tasa handiagoa duela. Kontuan izan behar da lineaz kanpoko instalatzaileak v*.* edo v*.*.* bidez identifikatutako ESP-IDF bertsio egonkorrak soilik instala ditzakeela.
2. Exekutatu ESP-IDF tresnen instalatzailea Instalatzailearen bertsio egoki bat deskargatu ondoren (hartu ESP-IDF Tools Offline 4.3.2 adibidezample hemen), egin klik bikoitza exe-n file ESP-IDF instalazio interfazea abiarazteko. Jarraian, ESP-IDF v4.3.2 bertsio egonkorra nola instalatu erakusten du lineaz kanpoko instalatzailea erabiliz.
(1) 4.4 Irudian agertzen den "Hautatu instalazio-hizkuntza" interfazean, hautatu erabiliko den hizkuntza goitibeherako zerrendatik.
4.4 irudia. "Hautatu instalazioko hizkuntza" interfazea (2) Hizkuntza hautatu ondoren, sakatu "Ados" "Lizentzia-kontratua" interfazea agertzeko.
(ikus 4.5 irudia). Instalazio lizentzia-kontratua arretaz irakurri ondoren, hautatu "Akordioa onartzen dut" eta egin klik "Hurrengoa".
4.5 irudia. "Lizentzia-hitzarmena" interfazea 4. kapitulua. Garapen-ingurunea konfiguratzea 41
(3) Erreview sistemaren konfigurazioa "Instalazioaren aurretiko sistemaren egiaztapena" interfazean (ikus 4.6 irudia). Egiaztatu Windows bertsioa eta instalatutako birusen aurkako softwarearen informazioa. Sakatu "Hurrengoa" konfigurazio-elementu guztiak normalak badira. Bestela, "Erregistro osoa" sakatu dezakezu funtsezko elementuetan oinarritutako soluzioetarako.
4.6 irudia. "Sistemaren egiaztapena instalatu aurretik" interfazea AHOLKUAK
Erregistroak https://github.com/espressif/idf-installer/issues helbidera bidal ditzakezu laguntza eskatzeko. (4) Hautatu ESP-IDF instalazio-direktorioa. Hemen, hautatu D:/.espressif, atalean agertzen den moduan
4.7 irudia, eta egin klik "Hurrengoa". Kontuan izan .espressif hemen ezkutuko direktorio bat dela. Instalazioa amaitu ondoren, egin dezakezu view direktorio honen eduki zehatzak irekiz file kudeatzailea eta ezkutuko elementuak bistaratzea.
4.7 irudia. Hautatu ESP-IDF instalazio-direktorioa 42 ESP32-C3 Haririk gabeko Abentura: IoTrako Gida Integrala
(5) Egiaztatu instalatu behar diren osagaiak, 4.8 irudian ikusten den moduan. Aukera lehenetsia erabiltzea gomendatzen da, hau da, instalazioa osatzea, eta gero sakatu "Hurrengoa".
4.8 irudia. Hautatu instalatu beharreko osagaiak (6) Berretsi instalatu beharreko osagaiak eta egin klik "Instalatu" aukera automatizatua abiarazteko.
instalazio-prozesua, 4.9 irudian ikusten den moduan. Instalazio-prozesuak hamarnaka minutu iraun dezake eta instalazio-prozesuaren aurrerapen-barra 4.10 irudian ageri da. Mesedez, itxaron pazientziaz.
4.9 irudia. Instalazioa prestatzen (7) Instalazioa amaitu ondoren, "Erregistratu ESP-IDF" egiaztatzea gomendatzen da.
Tresnak exekutagarriak Windows Defender bazterketa gisa...” birusen aurkako softwarea ezaba ez dadin files. Baztertutako elementuak gehitzeak birusen aurkako maiz egindako eskaneatzea ere salta dezake
4. kapitulua. Garapen-ingurunea ezartzea 43
4.10 irudia. Instalazioaren aurrerapen barraren softwarea, Windows sistemaren kodea biltzeko eraginkortasuna asko hobetuz. Sakatu "Amaitu" garapen-ingurunearen instalazioa amaitzeko, 4.11 Irudian ikusten den moduan. "Exekutatu ESP-IDF PowerShell ingurunea" edo "Exekutatu ESP-IDF komando-gonbita" egiaztatzea aukera dezakezu. Exekutatu konpilazio leihoa instalatu ondoren zuzenean garapen-inguruneak normal funtzionatzen duela ziurtatzeko.
4.11 irudia. Instalazioa amaitu da (8) Ireki instalatutako garapen-ingurunea programa-zerrendan (edo ESP-IDF 4.3
CMD edo ESP-IDF 4.3 PowerShell terminala, 4.12 irudian ikusten den bezala), eta ESP-IDF ingurune-aldagaia automatikoki gehituko dira terminalean exekutatzen direnean. Horren ondoren, idf.py komandoa erabil dezakezu eragiketak egiteko. Irekitako ESP-IDF 4.3 CMD 4.13 irudian ageri da. 44 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
4.12 irudia. Garapen ingurunea instalatuta
4.13 irudia. ESP-IDF 4.3 CMD
4.2.3 ESP-IDF garapen-ingurunea konfiguratzea Mac-en
ESP-IDF garapen-ingurunea Mac sisteman instalatzeko prozesua Linux sisteman dagoen berdina da. Biltegiaren kodea deskargatzeko eta tresna-katea instalatzeko komandoak berdinak dira. Mendekotasun paketeak instalatzeko komandoak bakarrik apur bat desberdinak dira. 1. Instalatu mendekotasun paketeak Ireki terminal bat eta instalatu pip, Python paketeak kudeatzeko tresna, komando hau exekutatuz:
% sudo easy install pip
Instalatu Homebrew, macOSentzako paketeak kudeatzeko tresna, komando hau exekutatuz:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Instalatu beharrezko mendekotasun paketeak komando hau exekutatuz:
% brew python3 instalatu cmake ninja ccache dfu-util
2. Deskargatu ESP-IDF biltegiaren kodea ESP-IDF biltegiaren kodea deskargatzeko, jarraitu 4.2.1 atalean emandako argibideak. Urratsak Linux sistema batean deskargatzeko berdinak dira.
4. kapitulua. Garapen-ingurunea ezartzea 45
3. Instalatu ESP-IDF garapen tresna katea
Jarraitu 4.2.1 atalean emandako argibideak ESP-IDF garapen tresna katea instalatzeko. Pausoak Linux sistema batean instalatzeko berdinak dira.
4.2.4 VS kodea instalatzea
Lehenespenez, ESP-IDF SDK-k ez du kodea editatzeko tresnarik (Windows-rako ESP-IDF instalatzaileak ESP-IDF Eclipse instalatzeko aukera eskaintzen duen arren). Nahi duzun testua editatzeko tresna erabil dezakezu kodea editatzeko eta gero konpilatzeko terminal komandoak erabiliz.
Kodea editatzeko tresna ezagun bat VS Code (Visual Studio Code) da, hau da, doako eta funtzionalitate aberatsa duen kode-editorea, interfaze atsegina duena. Hainbat eskaintzen ditu plugins Kodeen nabigazioa, sintaxia nabarmentzea, Git bertsioen kontrola eta terminalen integrazioa bezalako funtzionalitateak eskaintzen dituztenak. Gainera, Espressifek VS Coderako Espressif IDF izeneko plugin dedikatu bat garatu du, proiektuaren konfigurazioa eta arazketa errazten dituena.
Terminaleko kodearen komandoa erabil dezakezu VS Code-n uneko karpeta azkar irekitzeko. Bestela, Ctrl+ lasterbidea erabil dezakezu sistemaren terminal-kontsola lehenetsia irekitzeko VS Code-n.
AHOLKUAK ESP32-C3 kodea garatzeko VS Code erabiltzea gomendatzen da. Deskargatu eta instalatu VS Code-ren azken bertsioa https://code.visualstudio.com/ helbidean.
4.2.5 Hirugarrenen garapen-inguruneen sarrera
ESP-IDF garapen-ingurune ofizialaz gain, nagusiki C lengoaia erabiltzen duena, ESP32-C3-k beste programazio-lengoaia nagusiak eta hirugarrenen garapen-ingurune ugari ere onartzen ditu. Aukera aipagarri batzuk honako hauek dira:
Arduino: kode irekiko plataforma bat hardware zein softwarerako, hainbat mikrokontrolagailu onartzen dituena, ESP32-C3 barne.
C++ lengoaia erabiltzen du eta API sinplifikatu eta estandarizatu bat eskaintzen du, normalean Arduino lengoaia bezala ezagutzen dena. Arduino oso erabilia da prototipoen garapenean eta hezkuntza testuinguruetan. Software pakete hedagarri bat eta IDE bat eskaintzen ditu, erraz konpilatu eta keinu egiteko aukera ematen duena.
MicroPython: txertatutako mikrokontrolagailuen plataformetan exekutatzeko diseinatutako Python 3 hizkuntzako interpretea.
Script-lengoaia sinple batekin, ESP32-C3-ren baliabide periferikoetara (esaterako, UART, SPI eta I2C) eta komunikazio-funtzioetara (esaterako, Wi-Fi eta Bluetooth LE) sar daiteke zuzenean.
46 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
Honek hardware-interakzioa errazten du. MicroPython-ek, Python-en eragiketa matematikoen liburutegi zabalarekin konbinatuta, algoritmo konplexuak ezartzea ahalbidetzen du ESP32-C3-n, AIarekin lotutako aplikazioen garapena erraztuz. Gidoi-lengoaia denez, ez dago behin eta berriz konpilaziorik behar; aldaketak egin daitezke eta scriptak zuzenean exekutatu daitezke.
NodeMCU: ESP serieko txipetarako garatutako LUA hizkuntza-interpretaria.
ESP txipen ia funtzio periferiko guztiak onartzen ditu eta MicroPython baino arinagoa da. MicroPython-en antzera, NodeMCU-k script-lengoaia erabiltzen du, behin eta berriz konpilazioaren beharra ezabatuz.
Gainera, ESP32-C3-k NuttX eta Zephyr sistema eragileak ere onartzen ditu. NuttX denbora errealeko sistema eragile bat da, POSIX-ekin bateragarriak diren interfazeak eskaintzen dituena, aplikazioen eramangarritasuna hobetuz. Zephyr denbora errealeko sistema eragile txiki bat da, IoT aplikazioetarako bereziki diseinatua. IoT garapenean beharrezkoak diren software liburutegi ugari biltzen ditu, pixkanaka software ekosistema integral batean eboluzionatuz.
Liburu honek ez ditu aipatutako garapen-inguruneetarako instalazio-argibide zehatzak ematen. Zure eskakizunetan oinarritutako garapen-ingurune bat instala dezakezu dagozkien dokumentazioa eta argibideak jarraituz.
4.3 ESP-IDF Konpilazio Sistema
4.3.1 Konpilazio-sistemaren oinarrizko kontzeptuak
ESP-IDF proiektu bat programa nagusi baten bilduma da, sarrera funtzioa eta osagai funtzional independente anitz dituena. Adibidezample, LED etengailuak kontrolatzen dituen proiektu batek, nagusiki, sarrerako programa nagusi batez eta GPIO kontrolatzen duen kontrolatzaile osagai batez osatuta dago. LED urrutiko aginteaz jabetu nahi baduzu, Wi-Fi, TCP/IP protokolo pila eta abar gehitu behar dituzu.
Konpilazio-sistemak exekutagarriak konpilatu, lotu eta sor ditzake files (.bin) kodea eraikitzeko arau multzo baten bidez. ESP-IDF v4.0 eta goiko bertsioen konpilazio-sistema CMake-n oinarritzen da lehenespenez, eta CMakeLists.txt konpilazio scripta erabil daiteke kodearen konpilazio-portaera kontrolatzeko. CMake-ren oinarrizko sintaxia onartzeaz gain, ESP-IDF konpilazio-sistemak konpilazio-arau eta CMake-ren funtzio lehenetsien multzo bat ere definitzen du, eta konpilazio-scripta adierazpen sinpleekin idatz dezakezu.
4.3.2 Proiektua File Egitura
Proiektu bat sarrera programa nagusi bat, erabiltzaileak definitutako osagaiak, eta dituen karpeta bat da fileaplikazio exekutagarriak eraikitzeko beharrezkoak dira, hala nola konpilazio scriptak, konfigurazioa
4. kapitulua. Garapen-ingurunea ezartzea 47
files, partizio-taulak, etab. Proiektuak kopiatu eta pasa daitezke, eta exekutagarri bera file ESP-IDF garapen ingurunearen bertsio bera duten makinetan konpilatu eta sor daiteke. ESP-IDF proiektu tipikoa file egitura 4.14 irudian ageri da.
4.14 irudia. ESP-IDF proiektu tipikoa file egitura ESP-IDF-k Espressifeko IoT txip anitz onartzen dituenez, besteak beste, ESP32, ESP32-S seriea, ESP32-C seriea, ESP32-H seriea, etab., kodea konpilatu aurretik helburu bat zehaztu behar da. Helburua aplikazio-programa exekutatzen duen hardware-gailua eta konpilazio-sistemaren eraikuntza-helburua da. Zure beharren arabera, zure proiekturako helburu bat edo gehiago zehaztu ditzakezu. Adibidezample, idf.py set-target esp32c3 komandoaren bidez, konpilazio-helburua ESP32-C3-ra ezar dezakezu, eta bertan ESP32C3-ren parametro lehenetsiak eta konpilazio-tresnaren katearen bidea kargatuko dira. Konpilatu ondoren, programa exekutagarri bat sor daiteke ESP32C3rako. Set-target komandoa berriro ere exekutatu dezakezu beste helburu bat ezartzeko, eta konpilazio-sistema automatikoki garbitu eta birkonfiguratuko da. Osagaiak
ESP-IDF-ko osagaiak konpilazio sistemaren barruan kudeatzen diren kode unitate modular eta independenteak dira. Karpeta gisa antolatuta daude, eta karpetaren izenak osagaiaren izena ordezkatzen du lehenespenez. Osagai bakoitzak bere konpilazio script du 48 ESP32-C3 Wireless Adventure: IoT-rako gida integrala
bere konpilazio-parametroak eta mendekotasunak zehazten ditu. Konpilazio prozesuan, osagaiak liburutegi estatiko bereizietan konpilatzen dira (.a files) eta, azkenean, beste osagai batzuekin konbinatu aplikazio-programa osatzeko.
ESP-IDF-k funtsezko funtzioak eskaintzen ditu, hala nola, sistema eragilea, kontrolatzaile periferikoak eta sareko protokolo pila, osagai moduan. Osagai hauek ESP-IDF erro direktorioaren barruan kokatutako osagaien direktorioan gordetzen dira. Garatzaileek ez dituzte osagai hauek myProject-eko osagaien direktoriora kopiatu behar. Horren ordez, osagai horien mendekotasun-erlazioak soilik zehaztu behar dituzte proiektuaren CMakeLists.txt-en. file REQUIRES edo PRIV_REQUIRES zuzentarauak erabiliz. Konpilazio-sistemak automatikoki kokatu eta konpilatuko ditu beharrezko osagaiak.
Beraz, myProject azpian dagoen osagaien direktorioa ez da beharrezkoa. Proiektuaren osagai pertsonalizatu batzuk sartzeko soilik erabiltzen da, hirugarrenen liburutegiak edo erabiltzaileak definitutako kodea izan daitezkeenak. Gainera, osagaiak ESP-IDF edo uneko proiektua ez den edozein direktoriotatik atera daitezke, adibidez, beste direktorio batean gordetako kode irekiko proiektu batetik. Kasu honetan, osagaiaren bidea bakarrik gehitu behar duzu EXTRA_COMPONENT_DIRS aldagaia CMakeLists.txt erroko direktorioaren azpian ezarriz. Direktorio honek izen bereko ESP-IDF osagaiak gainidatziko ditu, osagai zuzena erabiltzen dela ziurtatuz.
Sarrera programa nagusia Proiektuaren direktorio nagusiak berdin jarraitzen du file egitura beste osagai gisa (adibidez, osagaia 1). Hala ere, garrantzi berezia du, proiektu guztietan egon behar den nahitaezko osagaia baita. Direktorio nagusiak proiektuaren iturburu kodea eta erabiltzailearen programaren sarrera-puntua ditu, normalean app_main izenekoa. Lehenespenez, erabiltzailearen programaren exekuzioa sarrera-puntu horretatik hasten da. Osagai nagusia ere desberdina da bilaketa-bideko osagai guztien araberakoa baita automatikoki. Beraz, ez dago menpekotasunak esplizituki adierazi beharrik REQUIRES edo PRIV_REQUIRES zuzentarauak erabiliz CMakeLists.txt-en. file.
Konfigurazioa file Proiektuaren erro-direktorioak konfigurazio bat dauka file sdkconfig izenekoa, proiektuaren osagai guztien konfigurazio-parametroak biltzen dituena. sdkconfig file konpilazio-sistemak automatikoki sortzen du eta idf.py menuconfig komandoaren bidez aldatu eta birsortu daiteke. Menuconfig aukerak proiektuaren Kconfig.projbuild-etik eta osagaien Kconfig-etik sortzen dira batez ere. Osagaien garatzaileek, oro har, konfigurazio-elementuak gehitzen dituzte Kconfig-en osagaia malgu eta konfiguragarria izan dadin.
Eraiki-direktorioa Lehenespenez, proiektuaren barruan dagoen eraikuntza-direktorioak tarteko gordetzen du files eta fi-
4. kapitulua. Garapen-ingurunea ezartzea 49
idf.py build komandoak sortutako azken programa exekutagarriak. Oro har, ez da beharrezkoa eraikitze-direktorioko edukietara zuzenean sartzea. ESP-IDF-k aurrez zehaztutako komandoak eskaintzen ditu direktorioarekin elkarreragiteko, adibidez, idf.py flash komandoa erabiliz konpilatutako bitarra automatikoki aurkitzeko. file eta flash jarri zehaztutako flash helbidera, edo idf.py fullclean komandoa erabiliz eraikitze-direktorio osoa garbitzeko.
Partizio-taula (partitions.csv) Proiektu bakoitzak partizio-taula bat behar du flash-aren espazioa banatzeko eta programa exekutagarriaren eta erabiltzailearen datu-espazioaren tamaina eta hasierako helbidea zehazteko. Idf.py flash komandoak edo OTA eguneratzeko programak firmwarea dagokion helbidera flash jarriko du taula honen arabera. ESP-IDF-k hainbat partizio-taula lehenetsi eskaintzen ditu osagai/partition_tablen, hala nola partitions_singleapp.csv eta partitions_two_ ota.csv, menuconfig-en hauta daitezkeenak.
Sistemaren partizio-taula lehenetsiak ezin baditu proiektuaren baldintzak bete, partitions.csv pertsonalizatu bat gehi daiteke proiektuaren direktorioa eta menuconfig-en hautatu.
4.3.3 Konpilazio-sistemaren eraikuntza-arau lehenetsiak
Izen bereko osagaiak gainidazteko arauak Osagaien bilaketa-prozesuan, konpilazio-sistemak ordena zehatz bat jarraitzen du. Lehenik ESP-IDF-ren barne osagaiak bilatzen ditu, ondoren erabiltzailearen proiektuaren osagaiak bilatzen ditu eta, azkenik, EXTRA_COMPONENT_DIRS-en osagaiak bilatzen ditu. Hainbat direktoriok izen bereko osagaiak dituzten kasuetan, azken direktorioan aurkitutako osagaiak izen bereko aurreko osagaiak gainidatziko ditu. Arau honek ESP-IDF osagaiak erabiltzailearen proiektuaren barruan pertsonalizatzeko aukera ematen du, jatorrizko ESP-IDF kodea osorik mantenduz.
Osagai komunak lehenespenez sartzeko arauak 4.3.2 atalean esan bezala, osagaiek CMakeLists.txt-en beste osagaiekiko duten mendekotasuna esplizituki zehaztu behar dute. Hala ere, freertos bezalako osagai arruntak automatikoki sartzen dira eraikuntza-sisteman lehenespenez, nahiz eta haien menpekotasun-erlazioak konpilazio scriptean esplizituki definituta ez egon. ESP-IDF osagai arruntak freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv eta cxx dira. Osagai arrunt hauek erabiltzeak CMakeLists.txt idaztean lan errepikakorra saihesten du eta zehatzagoa bihurtzen da.
Konfigurazio-elementuak gainidazteko arauak Garatzaileek konfigurazio-parametro lehenetsiak gehi ditzakete konfigurazio lehenetsi bat gehituta file sdkconfig.defaults izeneko proiektuari. Adibidezample, CONFIG_LOG_ gehituz
50 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
DEFAULT_LEVEL_NONE = y UART interfazea konfigura dezakezu lehenespenez erregistroko datuak ez inprimatzeko. Gainera, helburu jakin baterako parametro zehatzak ezarri behar badira, konfigurazio bat file sdkconfig.defaults.TARGET_NAME izenekoa gehi daiteke, non TARGET_NAME esp32s2, esp32c3 eta abar izan daitekeen. Konfigurazio hauek files sdkconfig-era inportatzen dira konpilazioan zehar, lehenetsitako konfigurazio orokorrarekin file sdkconfig.defaults inportatzen ari da lehenik, eta ondoren xede-konfigurazio espezifikoa file, hala nola sdkconfig.defaults.esp32c3. Izen bereko konfigurazio-elementuak dauden kasuetan, azken konfigurazioa file lehena gailenduko du.
4.3.4 Konpilazio gidoiaren sarrera
ESP-IDF erabiliz proiektu bat garatzen dutenean, garatzaileek iturburu-kodea idatzi behar dute ez ezik, CMakeLists.txt ere idatzi behar dute proiekturako eta osagaietarako. CMakeLists.txt testu bat da file, konpilazio script gisa ere ezagutzen dena, konpilazio-objektu, konpilazio-konfigurazio-elementu eta iturburu-kodearen konpilazio-prozesua gidatzeko komando batzuk definitzen dituena. ESP-IDF v4.3.2 konpilazio sistema CMake-n oinarritzen da. CMake jatorrizko funtzioak eta komandoak onartzeaz gain, funtzio pertsonalizatu batzuk ere definitzen ditu, konpilazio script-ak idaztea askoz erraztuz.
ESP-IDF-en konpilazio-scriptek proiektuaren konpilazio-scripta eta osagaien konpilazio-scriptak barne hartzen dituzte batez ere. Proiektuaren erro-direktorioan dagoen CMakeLists.txt-i proiektuaren konpilazio-scripta deitzen zaio, proiektu osoaren konpilazio-prozesua gidatzen duena. Oinarrizko proiektuak biltzeko script-ak normalean hiru lerro hauek ditu:
1. cmake_minimum_required (3.5 BERTSIOA) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. proiektua (nireProiektua)
Horien artean, cmake_minimum_required (3.5 BERTSIOA) jarri behar da lehen lerroan, proiektuak eskatzen duen CMake bertsioaren gutxieneko bertsio-zenbakia adierazteko erabiltzen dena. CMake-ren bertsio berriagoak, oro har, bertsio zaharragoekin atzerantz bateragarriak dira, beraz, egokitu bertsio-zenbakia horren arabera CMake-ren komando berriak erabiltzen dituzunean bateragarritasuna ziurtatzeko.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) aurrez definitutako konfigurazio-elementuak eta ESP-IDF konpilazio-sistemako komandoak inportatzen ditu, 4.3.3 atalean deskribatutako konpilazio-sistemaren konpilazio-arau lehenetsiak barne. project(myProject) proiektua bera sortzen du eta bere izena zehazten du. Izen hau azken irteerako bitar gisa erabiliko da file izena, hau da, myProject.elf eta myProject.bin.
Proiektu batek hainbat osagai izan ditzake, osagai nagusia barne. Osagai bakoitzaren goi-mailako direktorioa CMakeLists.txt bat dauka file, osagaien konpilazio script deitzen dena. Osagaien konpilazio-scriptak osagaien mendekotasunak, konfigurazio-parametroak, iturburu-kodea zehazteko erabiltzen dira batez ere files, eta goiburua barne files
4. kapitulua. Garapen-ingurunea ezartzea 51
bilketa. ESP-IDF-ren idf_component_register funtzio pertsonalizatuarekin, osagaien konpilazio script baterako beharrezkoa den gutxieneko kodea honako hau da:
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "sartu"
3.
osagaia BEHAR DU 1)
SRCS parametroak iturri-zerrenda bat eskaintzen du files osagaian, anitzak badira zuriunez bereizita files. INCLUDE_DIRS parametroak goiburu publikoen zerrenda eskaintzen du file osagairako direktorioetan, uneko osagaiaren araberako beste osagai batzuen barne bilaketa-bidera gehituko direnak. REQUIRES parametroak uneko osagaiaren osagai publikoaren menpekotasunak identifikatzen ditu. Beharrezkoa da osagaiek esplizituki adieraztea zein osagairen menpe dauden, adibidez 2 osagaia 1 osagaiaren arabera. Hala ere, osagai nagusiarentzat, osagai guztien araberakoa den lehenespenez, REQUIRES parametroa ezabatu daiteke.
Horrez gain, jatorrizko CMake komandoak konpilazio scriptean ere erabil daitezke. Adibidezample, erabili komando-multzoa aldagaiak ezartzeko, hala nola set(ALDAGAIA “BALIOA”).
4.3.5 Komando arrunten sarrera
ESP-IDF-k CMake (proiektua konfiguratzeko tresna), Ninja (proiektua eraikitzeko tresna) eta esptool (flash tresna) erabiltzen ditu kodea konpilatzeko prozesuan. Tresna bakoitzak rol ezberdina betetzen du konpilazio, eraikuntza eta flash prozesuan, eta komando operatibo desberdinak ere onartzen ditu. Erabiltzaileen funtzionamendua errazteko, ESP-IDF-k idf.py frontend bateratu bat gehitzen du, goiko komandoak azkar deitzea ahalbidetzen duena.
idf.py erabili aurretik, ziurtatu:
· ESP-IDFren IDF_PATH ingurune-aldagaia uneko terminalean gehitu da. · Komandoa exekutatzeko direktorioa proiektuaren erro-direktorioa da, eta horrek barne hartzen du
proiektuaren konpilazio script CMakeLists.txt.
Idf.py-ren komando arruntak hauek dira:
· idf.py –help: komandoen zerrenda eta haien erabilera-argibideak bistaratzen ditu. · idf.py ezarri-helburua : konpilazioa ezartzea taidf.py fullcleanrget, hala nola
ordezkatuz esp32c3-rekin. · idf.py menuconfig: menuconfig abiarazi, terminalaren konfigurazio grafikoa
tresna, konfigurazio-aukerak hautatu edo alda ditzake, eta konfigurazio-emaitzak sdkconfig-en gordetzen dira file. · idf.py build: kodea konpilazioa abiarazten. Tartekoa files eta konpilazioak sortutako azken programa exekutagarria lehenespenez proiektuaren eraikitze-direktorioan gordeko da. Konpilazio prozesua inkrementala da, hau da, iturri bakarra bada file aldatzen da, aldatua bakarrik file hurrengoan bilduko da.
52 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
· idf.py clean: tarteko garbiketa files proiektuaren bildumak sortutakoak. Proiektu osoa hurrengo bilduman konpilatzera behartuta egongo da. Kontuan izan CMake konfigurazioa eta menuconfig-ek egindako konfigurazio-aldaketak ez direla ezabatuko garbiketan zehar.
· idf.py fullclean: eraikuntza-direktorio osoa ezabatzen du, CMake-ren konfigurazio-irteera guztiak barne files. Proiektua berriro eraikitzean, CMake-k proiektua hutsetik konfiguratuko du. Kontuan izan komando honek modu errekurtsiboan guztiak ezabatuko dituela files eraikitze direktorioan, beraz, erabili kontuz eta proiektuaren konfigurazioa file ez da ezabatuko.
· idf.py flash: programa exekutagarriaren bitar keinuka file ESP32-C3 helburura eraikiz sortutakoa. Aukerak -p eta -b serie-atariaren gailuaren izena eta keinurako baud-tasa ezartzeko erabiltzen dira, hurrenez hurren. Bi aukera hauek zehazten ez badira, serieko ataka automatikoki detektatuko da eta baud-tasa lehenetsia erabiliko da.
· idf.py monitorea: helburuko ESP32-C3 serieko atakaren irteera erakusten du. -p aukera erabil daiteke ostalariaren aldeko serie atakaren gailuaren izena zehazteko. Serieko ataka inprimatzean, sakatu Ctrl+] tekla-konbinazioa monitoretik irteteko.
Goiko komandoak behar bezala konbina daitezke. Adibidezample, idf.py build flash monitor komandoak kodearen konpilazioa egingo du, flasha eta serieko ataka monitorea sekuentzian irekiko du.
https://bookc3.espressif.com/build-system bisita dezakezu ESP-IDF konpilazio sistemari buruz gehiago jakiteko.
4.4 Praktika: Adibamp"Kinukatu" programa
4.4.1 Adibample Analisia
Atal honek Blink programa hartuko du adibide gisaample aztertzeko file Proiektu erreal baten egitura eta kodeketa-arauak zehatz-mehatz. Blink programak LED keinu efektua inplementatzen du, eta proiektua adibidez direktorioan dagoamples/get-started/blink, iturri bat daukana file, konfigurazioa files, eta hainbat konpilazio gidoi.
Liburu honetan aurkeztutako argi adimendunaren proiektua adibide honetan oinarritzen daample programa. Hurrengo kapituluetan pixkanaka gehituko dira funtzioak, azkenean osatzeko.
Iturburu-kodea Garapen-prozesu osoa erakusteko, Blink programa esp32c3-iot-projects/device firmware/1 blink-era kopiatu da.
Blink proiektuaren direktorio-egitura files 4.15 irudian ageri da.
Blink proiektuak direktorio nagusi bakarra dauka, hau da, osagai berezi bat
4. kapitulua. Garapen-ingurunea ezartzea 53
4.15. irudia. File blink proiektuaren direktorio-egitura
4.3.2 atalean azaltzen den moduan sartu behar da. Direktorio nagusia app_main() funtzioaren inplementazioa gordetzeko erabiltzen da nagusiki, hau da, erabiltzailearen programarako sarrera-puntua. Blink proiektuak ez du osagaien direktorioa barne hartzen, hau da.ample ESP-IDF-rekin datozen osagaiak soilik erabili behar ditu eta ez ditu osagai gehigarririk behar. Blink proiektuan sartutako CMakeLists.txt konpilazio-prozesua gidatzeko erabiltzen da, eta Kconfig.projbuild, berriz, konfigurazio-elementuak gehitzeko.ample programa menuconfig-en. Beharrezkoak ez diren beste batzuk files-k ez du kodearen konpilazioan eragingo, beraz, ez dira hemen eztabaidatuko. Blink proiektuaren sarrera zehatza files honako hau da.
1. /*blink.c-k honako goiburua biltzen du files*/
2. #sartu
//C liburutegiaren goiburua estandarra file
3. #include “freertos/freeRTOS.h” //FreeRTOS goiburu nagusia file
4. #sartu “freeertos/task.h”
//FreeRTOS Zereginaren goiburua file
5. #include "sdkconfig.h"
//Konfigurazioaren goiburua file kconfig-ek sortutakoa
6. #include "driver/gpio.h"
//GPIO kontrolatzailearen goiburua file
Iturria file blink.c-k goiburu sorta bat dauka filefuntzio-adierazpenari dagozkionak
zioak. ESP-IDF normalean liburutegiaren goiburu estandarra sartzeko ordena jarraitzen du files, libreR-
TOS goiburua files, gidariaren goiburua files, beste osagaien goiburua files, eta proiektuaren goiburua files.
Goiburua zein ordena filesartzen direnek azken konpilazioaren emaitzan eragina izan dezakete, beraz, saiatu
arau lehenetsiak jarraitu. Kontuan izan behar da sdkconfig.h automatikoki sortzen dela
kconfig-ek eta idf.py menuconfig komandoaren bidez soilik konfigura daiteke.
Goiburu honen zuzeneko aldaketa file gainidatzi egingo da.
1. /* LEDari dagokion GPIO hauta dezakezu idf.py menuconfig-en, eta menuconfig-en aldaketaren emaitza CONFIG_BLINK-ren balioa da
_GPIO aldatuko da. Makro definizioa ere zuzenean alda dezakezu
hemen, eta aldatu CONFIG_BLINK_GPIO balio finko batera.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. void app_main(void)
4. {
5.
/*Konfiguratu IO GPIO funtzio lehenetsi gisa, gaitu pull-up modua eta
6.
desgaitu sarrera eta irteera moduak*/
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 Haririk gabeko Abentura: IoTrako gida integrala
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Ezarri GPIO irteera moduan*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); bitartean(1) {
/*Inprimatu erregistroa*/ printf(“LEDn itzaltzen”); /*Itzali LEDa (irteera maila baxua)*/ gpio_set_level(BLINK_GPIO, 0); /*Atzerapena (1000 ms)*/ vTaskDelay (1000 / portTICK_PERIOD_MS); printf(“LEDn pizten”); /*Piztu LEDa (irteera maila altua)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
app_main() funtzioa Blink-en adibidezample programa erabiltzaile-programen sarrera-puntu gisa balio du. Parametrorik eta itzulera-baliorik gabeko funtzio sinple bat da. Funtzio hau sistemak hasieratzea amaitu ondoren deitzen da, eta, besteak beste, log serieko ataka hasieratzea, nukleo bakarra/bikoitza konfiguratzea eta watchdog-a konfiguratzea bezalako zereginak barne hartzen ditu.
app_main() funtzioa main izeneko ataza baten testuinguruan exekutatzen da. Zeregin honen pila-tamaina eta lehentasuna menuconfig Componentconfig Common ESP-rekin erlazionatuta doi daitezke.
LED bat keinu egitea bezalako zeregin errazetarako, beharrezko kode guztia zuzenean inplementa daiteke app_main() funtzioan. Honek normalean LEDari dagokion GPIO hasieratzea eta while(1) begizta erabiltzea dakar LEDa piztu eta itzaltzeko. Bestela, FreeRTOS APIa erabil dezakezu LED keinuka kudeatzen duen zeregin berri bat sortzeko. Zeregin berria behar bezala sortu ondoren, app_main() funtziotik irten zaitezke.
main/CMakeLists.txt-en edukia file, osagai nagusiaren konpilazio-prozesua gidatzen duena, hau da:
1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )
Horien artean, main/CMakeLists.txt-ek konpilazio-sistemaren funtzio bakarra deitzen du, hau da, idf_component_register. Beste osagai gehienetarako CMakeLists.txt-en antzera, blink.c gehitzen da SRCSra, eta iturburua. fileSRCSra gehitutako s bilduko dira. Aldi berean, ".", CMakeLists.txt kokatzen den bidea adierazten duena, INCLUDE_DIRS-en gehitu behar da goiburuko bilaketa-direktorio gisa. files. CMakeLists.txt-en edukia hau da:
1. #Zehaztu v3.5 uneko proiektuak onartzen duen CMake bertsio zaharren gisa 2. #V3.5 baino txikiagoak diren bertsioak berritu behar dira konpilazioan jarraitu aurretik 3. cmake_minimum_required (VERSION 3.5) 4. #Sartu ESP-ren CMake konfigurazio lehenetsia -IDF konpilazio sistema
4. kapitulua. Garapen-ingurunea ezartzea 55
5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Sortu “blink” izeneko proiektu bat 7. proiektua (nireProiektua)
Horien artean, root direktorioko CMakeLists.txt-ek $ENV{IDF_ PATH}/tools/cmake/project.cmake barne hartzen du batez ere, hau da, CMakeren konfigurazio nagusia. file ESP-IDFk emandakoa. Konparatzeko erabiltzen da
Dokumentuak / Baliabideak
![]() |
Espressif Systems ESP32-C3 Haririk gabeko Abentura [pdfErabiltzailearen gida ESP32-C3 Haririk gabeko Abentura, ESP32-C3, Haririk gabeko Abentura, Abentura |