ESP32-C3 Wireless Adventure
ESP32-C3 Wireless Adventure
Usa ka Komprehensibo nga Giya sa IoT
Mga Sistema sa Espressif Hunyo 12, 2023
Mga detalye
- Produkto: ESP32-C3 Wireless Adventure
- Manufacturer: Espressif Systems
- Petsa: Hunyo 12, 2023
Mga Instruksyon sa Paggamit sa Produkto
Pagpangandam
Sa dili pa gamiton ang ESP32-C3 Wireless Adventure, siguroha nga ikaw
pamilyar sa mga konsepto ug arkitektura sa IoT. Makatabang kini
nasabtan nimo kung giunsa ang aparato mohaum sa mas dako nga ekosistema sa IoT
ug ang mga potensyal nga aplikasyon niini sa mga smart home.
Pasiuna ug Pagpraktis sa IoT Projects
Niini nga seksyon, mahibal-an nimo ang bahin sa kasagaran nga mga proyekto sa IoT,
lakip ang sukaranan nga mga module alang sa kasagaran nga mga aparato sa IoT, sukaranan nga mga module
sa mga aplikasyon sa kliyente, ug kasagaran nga IoT cloud platform. Kini nga kabubut-on
maghatag kanimo ug pundasyon sa pagsabot ug paghimo sa imong
kaugalingon nga mga proyekto sa IoT.
Praktisa: Smart Light Project
Niini nga praktis nga proyekto, makakat-on ka kung unsaon paghimo og usa ka maalamon
kahayag gamit ang ESP32-C3 Wireless Adventure. Ang istruktura sa proyekto,
mga gimbuhaton, pag-andam sa hardware, ug proseso sa pag-uswag
gipatin-aw sa detalye.
Istruktura sa Proyekto
Ang proyekto naglangkob sa daghang mga sangkap, lakip ang
ESP32-C3 Wireless Adventure, LED, sensor, ug panganod
backend.
Mga Katungdanan sa Proyekto
Ang proyekto sa intelihenteng suga nagtugot kanimo nga makontrol ang kahayag ug
kolor sa mga LED sa layo pinaagi sa usa ka mobile app o web
interface.
Pag-andam sa Hardware
Aron maandam ang proyekto, kinahanglan nimo nga kolektahon ang
gikinahanglan nga mga sangkap sa hardware, sama sa ESP32-C3 Wireless
Adventure board, LEDs, resistors, ug power supply.
Proseso sa Pag-uswag
Ang proseso sa pag-uswag naglakip sa pag-set up sa pag-uswag
palibot, pagsulat code aron makontrol ang mga LED, nga nagkonektar sa
cloud backend, ug pagsulay sa pagpaandar sa smart
kahayag.
Pasiuna sa ESP RainMaker
Ang ESP RainMaker usa ka kusgan nga balangkas alang sa pagpalambo sa IoT
mga himan. Niini nga seksyon, mahibal-an nimo kung unsa ang ESP RainMaker ug
kung giunsa kini ipatuman sa imong mga proyekto.
Unsa ang ESP RainMaker?
Ang ESP RainMaker usa ka cloud-based nga plataporma nga naghatag ug set sa
mga himan ug serbisyo alang sa pagtukod ug pagdumala sa mga aparato sa IoT.
Ang Pagpatuman sa ESP RainMaker
Kini nga seksyon nagpatin-aw sa lainlaing mga sangkap nga nalambigit sa
pagpatuman sa ESP RainMaker, lakip ang serbisyo sa pag-angkon,
RainMaker Agent, cloud backend, ug RainMaker Client.
Praktisa: Panguna nga mga Punto para sa Pagpalambo sa ESP RainMaker
Sa niini nga praktis nga seksyon, kamo makakat-on mahitungod sa yawe nga mga punto sa
hunahunaa kung nag-develop sa ESP RainMaker. Kini naglakip sa device
pag-angkon, pag-synchronize sa datos, ug pagdumala sa tiggamit.
Mga bahin sa ESP RainMaker
Ang ESP RainMaker nagtanyag sa lainlaing mga bahin alang sa pagdumala sa gumagamit, katapusan
tiggamit, ug mga tigdumala. Kini nga mga bahin nagtugot alang sa dali nga aparato
setup, remote control, ug monitoring.
Pag-set up sa Development Environment
Kini nga seksyon naghatag usa ka labawview sa ESP-IDF (Espressif IoT
Development Framework), nga mao ang opisyal nga development framework
alang sa ESP32-based nga mga himan. Kini nagpatin-aw sa lain-laing mga bersyon sa
ESP-IDF ug unsaon pag-set up sa development environment.
Pag-uswag sa Hardware ug Driver
Hardware Design sa Smart Light Products base sa ESP32-C3
Kini nga seksyon nagpunting sa disenyo sa hardware sa intelihenteng kahayag
mga produkto base sa ESP32-C3 Wireless Adventure. Kini naglangkob sa
mga bahin ug komposisyon sa mga produkto sa smart light, ingon man ang
disenyo sa hardware sa ESP32-C3 core system.
Mga Feature ug Komposisyon sa Mga Produkto sa Smart Light
Kini nga subseksyon nagpatin-aw sa mga bahin ug mga sangkap nga naghimo
sa mga produkto sa smart light. Gihisgutan niini ang lainlaing mga gimbuhaton
ug mga konsiderasyon sa pagdesinyo alang sa paghimo og mga intelihenteng suga.
Disenyo sa Hardware sa ESP32-C3 Core System
Ang disenyo sa hardware sa ESP32-C3 core system naglakip sa gahum
suplay, power-on sequence, system reset, SPI flash, clock source,
ug RF ug antenna nga mga konsiderasyon. Kini nga subseksyon naghatag
detalyado nga impormasyon bahin niini nga mga aspeto.
FAQ
P: Unsa ang ESP RainMaker?
A: Ang ESP RainMaker usa ka cloud-based nga plataporma nga naghatag ug mga himan
ug mga serbisyo alang sa pagtukod ug pagdumala sa mga aparato sa IoT. Gipasimple kini
ang proseso sa pag-uswag ug nagtugot alang sa dali nga pag-setup sa aparato, layo
pagkontrol, ug pagmonitor.
P: Unsaon nako pag-set up ang development environment para sa
ESP32-C3?
A: Aron ma-set up ang development environment para sa ESP32-C3, kinahanglan nimo
aron i-install ang ESP-IDF (Espressif IoT Development Framework) ug
i-configure kini sumala sa gihatag nga mga panudlo. Ang ESP-IDF mao ang
opisyal nga development framework alang sa ESP32-based nga mga device.
P: Unsa ang mga bahin sa ESP RainMaker?
A: Ang ESP RainMaker nagtanyag sa lain-laing mga bahin, lakip ang user
pagdumala, end user features, ug admin features. Pagdumala sa tiggamit
nagtugot alang sa dali nga pag-angkon sa aparato ug pag-synchronize sa datos. Katapusan nga tiggamit
ang mga feature makahimo sa remote control sa mga device pinaagi sa mobile app o
web interface. Ang mga feature sa admin naghatag og mga himan alang sa pagmonitor sa device
ug pagdumala.
ESP32-C3 Wireless Adventure
Usa ka Komprehensibo nga Giya sa IoT
Mga Sistema sa Espressif Hunyo 12, 2023
Mga sulod
I Pagpangandam
1
1 Pasiuna sa IoT
3
1.1 Arkitektura sa IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 IoT Application sa Smart Homes . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Pasiuna ug Pagpraktis sa IoT Projects
9
2.1 Pasiuna sa Kinaandan nga mga Proyekto sa IoT . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Basic Module para sa Komon nga IoT Devices . . . . . . . . . . . . . . . . . 9
2.1.2 Sukaranan nga mga Module sa mga Aplikasyon sa Kliyente . . . . . . . . . . . . . . . . . . . 10
2.1.3 Pasiuna sa Komon nga IoT Cloud Platform . . . . . . . . . . . . . . 11
2.2 Praktisa: Smart Light Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Istruktura sa Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Mga Kalihokan sa Proyekto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Pagpangandam sa Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Proseso sa Pag-uswag . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Pasiuna sa ESP RainMaker
19
3.1 Unsa ang ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Ang Pagpatuman sa ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Serbisyo sa Pag-angkon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Ahente sa RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Cloud Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Kliyente sa RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Pagpraktis: Pangunang mga Punto sa Pagpalambo uban sa ESP RainMaker . . . . . . . . . . . . 25
3.4 Mga Kinaiya sa ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Pagdumala sa Gumagamit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Mga Feature sa Katapusan nga Gumagamit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Mga Feature sa Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Pag-set up sa Development Environment
31
4.1 Nahuman ang ESP-IDFview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Mga Bersyon sa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 ESP-IDF Git Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Pagpili og Angay nga Bersyon . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Kapinview sa ESP-IDF SDK Directory . . . . . . . . . . . . . . . . . . . . 34 4.2 Pag-set up sa ESP-IDF Development Environment . . . . . . . . . . . . . . . . . 38 4.2.1 Pag-set up sa ESP-IDF Development Environment sa Linux . . . . . . . . 38 4.2.2 Pag-set up sa ESP-IDF Development Environment sa Windows . . . . . . 40 4.2.3 Pag-set up sa ESP-IDF Development Environment sa Mac . . . . . . . . . 45 4.2.4 Pag-instalar sa VS Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Pasiuna sa Third-Party Development Environments . . . . . . . . 46 4.3 ESP-IDF Compilation System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Sukaranan nga mga Konsepto sa Compilation System . . . . . . . . . . . . . . . . . . 47 4.3.2 Proyekto File Istruktura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Default Build Rules sa Compilation System . . . . . . . . . . . . . 50 4.3.4 Pasiuna sa Compilation Script . . . . . . . . . . . . . . . . . . 51 4.3.5 Pasiuna sa Komon nga mga Sugo . . . . . . . . . . . . . . . . . . . 52 4.4 Praktisa: Pag-compile Exampang Programa nga "Blink". . . . . . . . . . . . . . . . . . 53 4.4.1 ExampPag-analisa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Pag-compile sa Blink Program . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Pag-flash sa Blink Program . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Pagtuki sa Serial Port Log sa Blink Program . . . . . . . . . . . . . . 60 4.5 Katingbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Hardware ug Driver Development
65
5 Hardware Design sa Smart Light Products base sa ESP32-C3
67
5.1 Mga Kinaiya ug Komposisyon sa Mga Produkto sa Smart Light . . . . . . . . . . . . . . . 67
5.2 Hardware Design sa ESP32-C3 Core System . . . . . . . . . . . . . . . . . . . 70
5.2.1 Suplay sa Gahum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Power-on Sequence ug System Reset . . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Tinubdan sa Orasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF ug Antenna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Strapping Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO ug PWM Controller . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Pagpraktis: Pagtukod og Smart Light System nga adunay ESP32-C3 . . . . . . . . . . . . . 80
5.3.1 Pagpili sa mga Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 Pag-configure sa mga GPIO sa PWM Signals . . . . . . . . . . . . . . . . . . . . 82
5.3.3 Pag-download sa Firmware ug Debugging Interface . . . . . . . . . . . . 82
5.3.4 Mga Giya alang sa RF Design. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Mga Giya alang sa Disenyo sa Power Supply . . . . . . . . . . . . . . . . . . . 86 5.4 Katingbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Pag-uswag sa Driver
87
6.1 Proseso sa Pagpalambo sa Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 Peripheral nga mga Aplikasyon . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Mga sukaranan sa LED Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Kolor nga mga Luna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 LED Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 LED Dimming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 Pasiuna sa PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 LED Dimming Driver Development . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Non-Volatile Storage (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM Controller (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Praktisa: Pagdugang og mga Driver sa Smart Light Project. . . . . . . . . . . . . . . . . 103
6.5.1 Butang Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 LED Dimming Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III Wireless Komunikasyon ug Pagkontrol
109
7 Wi-Fi Configuration ug Koneksyon
111
7.1 Mga sukaranan sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Pasiuna sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 Ebolusyon sa IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Mga Konsepto sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Koneksyon sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Mga sukaranan sa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Pasiuna sa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Mga Konsepto sa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Koneksyon sa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Wi-Fi Network Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Giya sa Pag-configure sa Wi-Fi Network . . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Ubang mga Pamaagi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Pagprograma sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Mga Bahagi sa Wi-Fi sa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Pag-ehersisyo: Koneksyon sa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Pag-ehersisyo: Smart Wi-Fi Connection . . . . . . . . . . . . . . . . . . . . . 145
7.5 Praktisa: Wi-Fi Configuration sa Smart Light Project. . . . . . . . . . . . . . . 156 7.5.1 Koneksyon sa Wi-Fi sa Smart Light Project . . . . . . . . . . . . . . . . . 156 7.5.2 Smart Wi-Fi Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Lokal nga Pagpugong
159
8.1 Pasiuna sa Lokal nga Pagkontrol . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Paggamit sa Lokal nga Pagkontrol . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 Advantages sa Lokal nga Pagkontrol. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Pagdiskubre sa Kontroladong mga Device pinaagi sa mga Smartphone . . . . . . . . . . 161
8.1.4 Komunikasyon sa Data Tali sa mga Smartphone ug mga Device . . . . . . . . 162
8.2 Kasagarang Lokal nga Pamaagi sa Pagdiskobre . . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Sibya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Pagtandi Tali sa Broadcast ug Multicast . . . . . . . . . . . . . . 176
8.2.4 Multicast Application Protocol mDNS para sa Lokal nga Pagdiskobre . . . . . . . . 176
8.3 Kasagarang Mga Protokol sa Komunikasyon alang sa Lokal nga Data . . . . . . . . . . . . . . . 179
8.3.1 Transmission Control Protocol (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 HyperText Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Gumagamit Datagram Protocol (UDP) . . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Constrained Application Protocol (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Bluetooth Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Summary sa Data Communication Protocols . . . . . . . . . . . . . . . 203
8.4 Garantiya sa Seguridad sa Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Pasiuna sa Transport Layer Security (TLS) . . . . . . . . . . . . . 207
8.4.2 Pasiuna sa Datagram Transport Layer Security (DTLS) . . . . . . . 213
8.5 Praktisa: Lokal nga Pagkontrol sa Smart Light Project. . . . . . . . . . . . . . . . . . 217
8.5.1 Paghimo ug Wi-Fi-based Local Control Server . . . . . . . . . . . . . . . 217
8.5.2 Pag-verify sa Lokal nga Pagkontrol sa Functionality gamit ang mga Script . . . . . . . . . . . 221
8.5.3 Paghimo og Bluetooth-based Local Control Server . . . . . . . . . . . . 222
8.6 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Pagkontrol sa panganod
225
9.1 Pasiuna sa Remote Control . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Cloud Data Communication Protocols . . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT Pasiuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Mga Prinsipyo sa MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT Mensahe Format . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Pagtandi sa Protokol . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Pag-set up sa MQTT Broker sa Linux ug Windows . . . . . . . . . . . . 233 9.2.6 Pag-set up sa MQTT Client Base sa ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Pagsiguro sa MQTT Data Security . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Kahulugan ug Kalihokan sa mga Sertipiko . . . . . . . . . . . . . . . . . . . 237 9.3.2 Paghimo og mga Sertipiko sa Lokal . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Pag-configure sa MQTT Broker . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Pag-configure sa Kliyente sa MQTT . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Praktisa: Remote Control pinaagi sa ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 Mga Sukaranan sa ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Node ug Cloud Backend Communication Protocol . . . . . . . . . . . 244 9.4.3 Komunikasyon tali sa Kliyente ug Cloud Backend . . . . . . . . . . . 249 9.4.4 Mga Papel sa Gumagamit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Basic Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker App ug Third-Party Integrations . . . . . . . . . . . . . . . 262 9.5 Katingbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Pagpalambo sa Smartphone App
269
10.1 Pasiuna sa Pagpalambo sa Smartphone App . . . . . . . . . . . . . . . . . . 269
10.1.1 Labawview sa Pagpalambo sa Smartphone App. . . . . . . . . . . . . . . 270
10.1.2 Istruktura sa Proyekto sa Android . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 Istruktura sa iOS Project . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Lifecycle sa usa ka Android Activity . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 Lifecycle sa iOS ViewController . . . . . . . . . . . . . . . . . . . . . . 273
10.2 Paghimo og Bag-ong Smartphone App Project . . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Pag-andam alang sa Android Development . . . . . . . . . . . . . . . . . . . 275
10.2.2 Paghimo og Bag-ong Proyekto sa Android . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 Pagdugang mga Dependency para sa MyRainmaker . . . . . . . . . . . . . . . . . 276
10.2.4 Paghangyo sa Pagtugot sa Android . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 Pag-andam alang sa iOS Development . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Paghimo ug Bag-ong Proyekto sa iOS . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 Pagdugang mga Dependency para sa MyRainmaker . . . . . . . . . . . . . . . . . 279
10.2.8 Paghangyo sa Pagtugot sa iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Pagtuki sa mga Kinahanglanon sa Pag-andar sa App. . . . . . . . . . . . . . . . . . 281
10.3.1 Pag-analisa sa mga Kinahanglanon sa Pag-andar sa Proyekto . . . . . . . . . . . . 282
10.3.2 Pagtuki sa mga Kinahanglanon sa Pagdumala sa Gumagamit. . . . . . . . . . . . . . . 282 10.3.3 Pagtuki sa Device Provisioning ug Pagbugkos Kinahanglanon . . . . . . . 283 10.3.4 Pagtuki sa Remote-Control nga mga Kinahanglanon . . . . . . . . . . . . . . . . 283 10.3.5 Pagtuki sa mga Kinahanglanon sa Pag-iskedyul . . . . . . . . . . . . . . . . . . . 284 10.3.6 Pagtuki sa mga Kinahanglanon sa User Center . . . . . . . . . . . . . . . . . . 285 10.4 Pagpalambo sa Pagdumala sa Gumagamit . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Pasiuna sa RainMaker APIs . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Pagsugod sa Komunikasyon pinaagi sa Smartphone . . . . . . . . . . . . . . . . 286 10.4.3 Pagparehistro sa Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Pag-login sa Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Pagpalambo sa Pagtagana sa Device . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Pag-scan sa mga Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Pagdugtong nga mga Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Paghimo og Sekreto nga mga Yawe . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Pagkuha sa Node ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Mga Gamit sa Pagtagana . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Pagpalambo sa Pagkontrol sa Device . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Pagbugkos sa mga Device ngadto sa Cloud Accounts . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Pagkuha og Listahan sa mga Device . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Pagkuha sa Status sa Device . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Pag-usab sa Status sa Device . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Pagpalambo sa Pag-iskedyul ug Sentro sa Gumagamit . . . . . . . . . . . . . . . . . . . 313 10.7.1 Pag-implementar sa Function sa Pag-iskedyul . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Pagpatuman sa User Center . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Dugang nga Cloud API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Katingbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Pag-upgrade sa Firmware ug Pagdumala sa Bersyon
321
11.1 Pag-upgrade sa Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Labawview sa Partition Tables . . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Proseso sa Pag-boot sa Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Labawview sa Mekanismo sa OTA. . . . . . . . . . . . . . . . . . . . . 326
11.2 Pagdumala sa Bersyon sa Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Pagmarka sa Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Rollback ug Anti-Rollback . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Pagpraktis: Over-the-air (OTA) Example . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Pag-upgrade sa Firmware Pinaagi sa Lokal nga Host . . . . . . . . . . . . . . . . . 332
11.3.2 Pag-upgrade sa Firmware Pinaagi sa ESP RainMaker . . . . . . . . . . . . . . . 335
11.4 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Optimization ug Mass Production
343
12 Power Management ug Low-Power Optimization
345
12.1 ESP32-C3 Pagdumala sa Gahum . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Dynamic Frequency Scaling . . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Konfigurasyon sa Pagdumala sa Gahum . . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 Low-Power Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Modem-sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Light-sleep Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Deep-sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Kasamtangang Pagkonsumo sa Lainlaing Power Modes . . . . . . . . . . . . . 358
12.3 Power Management ug Low-Power Debugging . . . . . . . . . . . . . . . . . 359
12.3.1 Pag-debug sa Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Praktisa: Pagdumala sa Gahum sa Smart Light Project. . . . . . . . . . . . . . . 363
12.4.1 Pag-configure sa Power Management Feature . . . . . . . . . . . . . . . . . 364
12.4.2 Paggamit sa Power Management Locks . . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Pagsusi sa Pagkonsumo sa Gahum . . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Gipauswag nga Mga Feature sa Seguridad sa Device
369
13.1 Labawview sa IoT Device Data Security . . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Ngano nga Secure sa IoT Device Data? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 Pangunang mga Kinahanglanon alang sa IoT Device Data Security . . . . . . . . . . . . 371
13.2 Pagpanalipod sa Integridad sa Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Pasiuna sa Pamaagi sa Pagpamatuod sa Integridad . . . . . . . . . . . . . . 372
13.2.2 Integridad nga Pagpamatuod sa Firmware Data . . . . . . . . . . . . . . . . . . 373
13.2.3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Pagpanalipod sa Pagkakompidensyal sa Data . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Pasiuna sa Data Encryption . . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Pasiuna sa Flash Encryption Scheme . . . . . . . . . . . . . . . . . 376
13.3.3 Flash Encryption Key Pagtipig . . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Working Mode sa Flash Encryption . . . . . . . . . . . . . . . . . . . . 380
13.3.5 Proseso sa Pag-encrypt sa Flash . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 Pasiuna sa NVS Encryption . . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 Exampgamay sa Flash Encryption ug NVS Encryption. . . . . . . . . . . 384
13.4 Pagpanalipod sa Pagkalehitimo sa Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Pasiuna sa Digital Signature . . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Labawview sa Secure Boot Scheme . . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Pasiuna sa Software Secure Boot . . . . . . . . . . . . . . . . . . . 388 13.4.4 Pasiuna sa Hardware Secure Boot . . . . . . . . . . . . . . . . . . 390 13.4.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Praktisa: Mga Bahin sa Seguridad Sa Mass Production . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash Encryption ug Secure Boot . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Pag-enable sa Flash Encryption ug Secure Boot gamit ang Batch Flash Tools . . 397 13.5.3 Pag-enable sa Flash Encryption ug Secure Boot sa Smart Light Project . . . 398 13.6 Katingbanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Pagsunog sa Firmware ug Pagsulay alang sa Mass Production
399
14.1 Pagsunog sa Firmware sa Mass Production . . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Paghubit sa Mga Partisyon sa Data . . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Pagsunog sa Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Mass Production Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Pagpraktis: Data sa Mass Production sa Smart Light Project. . . . . . . . . . . . . 404
14.4 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP Insights: Remote Monitoring Platform
405
15.1 Pasiuna sa ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 Pagsugod sa ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 Pagsugod sa ESP Insights sa esp-insights Project . . . . . . 409
15.2.2 Pagdagan Example sa esp-insights Project. . . . . . . . . . . . . . . 411
15.2.3 Pagreport sa Impormasyon sa Coredump . . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Pag-customize sa mga Log sa Interes . . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Pagreport sa Reboot Rason . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Pagreport sa Custom nga Sukatan . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Praktisa: Paggamit sa ESP Insights sa Smart Light Project. . . . . . . . . . . . . . . 416
15.4 Sumaryo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Pasiuna
Ang ESP32-C3 usa ka single-core Wi-Fi ug Bluetooth 5 (LE) microcontroller SoC, base sa open-source nga RISC-V nga arkitektura. Giatake niini ang husto nga balanse sa gahum, mga kapabilidad sa I/O, ug seguridad, sa ingon nagtanyag sa labing maayo nga solusyon nga epektibo sa gasto alang sa mga konektado nga aparato. Aron ipakita ang lainlaing mga aplikasyon sa pamilyang ESP32-C3, kini nga libro ni Espressif magdala kanimo sa usa ka makapaikag nga pagbiyahe pinaagi sa AIoT, sugod sa mga sukaranan sa pagpalambo sa proyekto sa IoT ug pag-setup sa palibot hangtod sa praktikal nga examples. Ang unang upat ka mga kapitulo naghisgot bahin sa IoT, ESP RainMaker ug ESP-IDF. Kapitulo 5 ug 6 mubu sa disenyo sa hardware ug pagpalambo sa drayber. Sa imong pag-uswag, imong madiskubrehan kung unsaon pag-configure ang imong proyekto pinaagi sa mga Wi-Fi network ug mobile Apps. Sa katapusan, makakat-on ka sa pag-optimize sa imong proyekto ug ibutang kini sa mass production.
Kung ikaw usa ka inhenyero sa mga may kalabotan nga natad, usa ka arkitekto sa software, usa ka magtutudlo, usa ka estudyante, o bisan kinsa nga adunay interes sa IoT, kini nga libro alang kanimo.
Mahimo nimong i-download ang code exampgigamit sa kini nga libro gikan sa site ni Espressif sa GitHub. Para sa pinakabag-o nga impormasyon sa IoT development, palihog sunda ang among opisyal nga account.
Pasiuna
Usa ka Informatising nga Kalibutan
Nagsakay sa balud sa Internet, ang Internet of Things (IoT) mihimo sa iyang dakong debut aron mahimong bag-ong tipo sa imprastraktura sa digital nga ekonomiya. Aron madala ang teknolohiya nga mas duol sa publiko, ang Espressif Systems nagtrabaho alang sa panan-awon nga ang mga developer gikan sa tanan nga kahimtang sa kinabuhi makagamit sa IoT aron masulbad ang pipila sa labing dinalian nga mga problema sa atong panahon. Usa ka kalibutan sa "Intelligent Network of All Things" mao ang atong gipaabot gikan sa umaabot.
Ang pagdesinyo sa among kaugalingon nga mga chip naghimo usa ka kritikal nga bahin sa kana nga panan-awon. Kini usa ka marathon, nga nanginahanglan kanunay nga mga kauswagan batok sa mga utlanan sa teknolohiya. Gikan sa "Game Changer" ESP8266 hangtod sa serye sa ESP32 nga nag-integrate sa Wi-Fi ug Bluetoothr (LE) nga koneksyon, gisundan sa ESP32-S3 nga gisangkapan sa AI acceleration, si Espressif wala mohunong sa pagsiksik ug pagpalambo sa mga produkto alang sa mga solusyon sa AIoT. Uban sa among open-source nga software, sama sa IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF, ug Device Connectivity Platform ESP RainMaker, nakahimo kami og independenteng framework alang sa pagtukod sa mga aplikasyon sa AIoT.
Kaniadtong Hulyo 2022, ang mga cumulative nga pagpadala sa mga IoT chipset sa Espressif milapas sa 800 milyon, nanguna sa merkado sa Wi-Fi MCU ug gipakusog ang daghang mga konektado nga aparato sa tibuuk kalibutan. Ang pagtinguha alang sa kahinungdanon naghimo sa matag produkto sa Espressif nga usa ka dako nga hit alang sa taas nga lebel sa panagsama ug kahusayan sa gasto. Ang pagpagawas sa ESP32-C3 nagtimaan sa usa ka hinungdanon nga milestone sa teknolohiya nga gipalambo sa kaugalingon ni Espressif. Kini usa ka single-core, 32-bit, RISC-V nga nakabase sa MCU nga adunay 400KB nga SRAM, nga mahimong modagan sa 160MHz. Gisagol niini ang 2.4 GHz Wi-Fi ug Bluetooth 5 (LE) nga adunay taas nga suporta. Naghimo kini og maayo nga balanse sa gahum, mga kapabilidad sa I/O, ug seguridad, sa ingon nagtanyag sa labing maayo nga solusyon nga epektibo sa gasto alang sa mga konektado nga aparato. Pinasukad sa kusog nga ESP32-C3, kini nga libro gituyo aron matabangan ang mga magbabasa nga masabtan ang kahibalo nga may kalabotan sa IoT nga adunay detalyado nga ilustrasyon ug praktikal nga ex.amples.
Nganong gisulat man nato kini nga libro?
Espressif Systems is more than a semiconductor company. It is also an IoT platform company, which always strives for breakthroughs and innovations in the field of technology. At the same time, Espressif has open-sourced and shared its self-developed operating system and software framework with the community, forming a unique ecosystem. Engineers, makers, and technology enthusiasts actively develop new software applications based on Espressif’s products, freely communicate, and share their experience. You can see developers’ fascinating ideas on various platforms all the time, such as YouTube and GitHub. The popularity of Espressif’s products has stimulated an increasing number of authors who have produced over 100 books based on Espressif chipsets, in more than ten languages, including English, Chinese, German, French, and Japanese.
Kini ang suporta ug pagsalig sa mga kauban sa komunidad nga nagdasig sa padayon nga pagbag-o ni Espressif. "Kami naningkamot sa paghimo sa among mga chips, operating system, frameworks, solusyon, Cloud, negosyo nga mga pamaagi, mga himan, dokumentasyon, mga sinulat, mga ideya, ug uban pa, nga mas may kalabutan sa mga tubag nga gikinahanglan sa mga tawo sa mga problema sa modernong kinabuhi. Kini ang pinakataas nga ambisyon ug moral nga kompas ni Espressif. miingon si G. Teo Swee Ann, Founder ug CEO sa Espressif.
Gipabilhan sa espressif ang pagbasa ug mga ideya. Ingon nga ang padayon nga pag-upgrade sa teknolohiya sa IoT nagpatunghag mas taas nga mga kinahanglanon sa mga inhenyero, unsaon namo pagtabang ang daghang mga tawo nga dali nga ma-master ang IoT chips, operating system, software frameworks, aplikasyon nga mga laraw ug mga produkto sa serbisyo sa panganod? Sama sa giingon sa panultihon, mas maayo nga tudloan ang usa ka tawo kung unsaon pagpangisda kaysa hatagan siya og isda. Sa usa ka sesyon sa brainstorming, nahinabo kami nga makasulat kami usa ka libro aron sistematikong paghan-ay ang hinungdanon nga kahibalo sa pag-uswag sa IoT. Among naigo kini, dali nga nagtigom og grupo sa mga senior engineer, ug gihiusa ang kasinatian sa technical team sa embedded programming, IoT hardware ug software development, ang tanan nakatampo sa pagpatik niini nga libro. Sa proseso sa pagsulat, gisulayan namo ang among labing maayo nga mahimong tumong ug patas, gikuhaan ang cocoon, ug naggamit ug mugbong mga ekspresyon aron isulti ang kakomplikado ug kaanyag sa Internet of Things. Among gisummarize pag-ayo ang komon nga mga pangutana, nagtumong sa feedback ug mga sugyot sa komunidad, aron klarong matubag ang mga pangutana nga nasugatan sa proseso sa pag-uswag, ug maghatag ug praktikal nga mga giya sa pagpalambo sa IoT alang sa mga may kalabutan nga technician ug mga tighimog desisyon.
Istruktura sa Libro
Kini nga libro nagkuha usa ka inhenyero nga nakasentro nga panan-aw ug nagpatin-aw sa kinahanglan nga kahibalo alang sa pag-uswag sa proyekto sa IoT nga lakang sa lakang. Kini gilangkoban sa upat ka bahin, sama sa mosunod:
· Pagpangandam (Kapitulo 1): Kini nga bahin nagpaila sa arkitektura sa IoT, tipikal nga IoT project framework, ang ESP RainMakerr cloud platform, ug ang development environment ESP-IDF, aron makabutang ug lig-on nga pundasyon para sa IoT project development.
· Pag-uswag sa Hardware ug Driver (Kapitulo 5): Pinasukad sa ESP6-C32 chipset, kini nga bahin nagpatin-aw sa minimum nga sistema sa hardware ug pag-uswag sa drayber, ug nagpatuman sa pagkontrol sa pag-dimming, paggrado sa kolor, ug wireless nga komunikasyon.
· Wireless Communication and Control (Kapitulo 7): Kini nga bahin nagpatin-aw sa intelihente nga Wi-Fi configuration scheme base sa ESP11-C32 chip, local & cloud control protocols, ug local & remote control sa mga device. Naghatag usab kini og mga laraw alang sa pagpalambo sa mga smartphone apps, pag-upgrade sa firmware, ug pagdumala sa bersyon.
· Pag-optimize ug Pagproduksyon sa Masa (Kapitulo 12-15): Kini nga bahin gituyo alang sa mga advanced nga aplikasyon sa IoT, nga nagpunting sa pag-optimize sa mga produkto sa pagdumala sa kuryente, pag-optimize sa ubos nga gahum, ug gipauswag ang seguridad. Gipaila usab niini ang pagsunog ug pagsulay sa firmware sa mass production, ug kung unsaon pag-diagnose ang running status ug mga log sa firmware sa device pinaagi sa remote monitoring platform nga ESP Insights.
Mahitungod sa Source Code
Ang mga magbabasa makadagan sa exampAng mga programa niini nga libro, pinaagi sa pagsulod sa code nga mano-mano o pinaagi sa paggamit sa source code nga nag-uban sa libro. Gipasiugda namo ang kombinasyon sa teorya ug praktis, ug sa ingon nagtakda og seksyon sa Practice base sa proyekto sa Smart Light sa halos matag kapitulo. Ang tanan nga mga code kay open-sourced. Giabi-abi ang mga magbabasa sa pag-download sa source code ug hisgutan kini sa mga seksyon nga may kalabutan niini nga libro sa GitHub ug sa among opisyal nga forum esp32.com. Ang open-sourced code niini nga libro kay ubos sa mga termino sa Apache License 2.0.
Mubo nga sulat sa Awtor
Kini nga libro opisyal nga gihimo sa Espressif Systems ug gisulat sa mga senior engineer sa kompanya. Angayan kini alang sa mga manedyer ug mga kawani sa R&D sa mga industriya nga may kalabotan sa IoT, mga magtutudlo ug mga estudyante sa mga may kalabutan nga mga mayor, ug mga mahiligon sa natad sa Internet of Things. Kami nanghinaut nga kini nga libro mahimong usa ka manwal sa pagtrabaho, usa ka pakisayran, ug usa ka libro sa kilid sa higdaanan, aron mahisama sa usa ka maayong magtutudlo ug higala.
Samtang gihugpong kini nga libro, among gi-refer ang pipila ka may kalabutan nga mga resulta sa panukiduki sa mga eksperto, iskolar, ug mga teknisyan sa balay ug sa gawas sa nasud, ug among gihimo ang among pinakamaayo sa pagkutlo niini sumala sa mga lagda sa akademiko. Bisan pa, dili kalikayan nga kinahanglan adunay pipila nga mga pagkulang, busa dinhi gusto namon nga ipahayag ang among halawom nga pagtahud ug pagpasalamat sa tanan nga mga hingtungdan nga tagsulat. Dugang pa, gikutlo namo ang impormasyon gikan sa Internet, busa gusto namong pasalamatan ang orihinal nga mga tagsulat ug mga magmamantala ug mangayo og pasaylo nga dili namo isulti ang tinubdan sa matag piraso sa impormasyon.
Aron makahimo og usa ka libro nga adunay taas nga kalidad, nag-organisar kami og mga hugna sa internal nga mga diskusyon, ug nakakat-on gikan sa mga sugyot ug feedback sa pagsulay nga mga magbabasa ug mga editor sa publisher. Dinhi, gusto namong magpasalamat pag-usab alang sa imong tabang nga ang tanan nakatampo niining malampuson nga buluhaton.
Katapusan, apan ang labing hinungdanon, salamat sa tanan sa Espressif nga nagtrabaho pag-ayo alang sa pagkahimugso ug pagkapopular sa among mga produkto.
Ang pagpalambo sa mga proyekto sa IoT naglakip sa usa ka halapad nga kahibalo. Limitado sa gitas-on sa libro, ingon man ang lebel ug kasinatian sa tagsulat, ang mga pagtangtang dili malikayan. Busa, kami malulotong naghangyo nga ang mga eksperto ug mga magbabasa mosaway ug magtul-id sa among mga sayop. Kung naa kay sugyot para ani nga libro, palihog kontaka mi sa book@espressif.com. Kami nagpaabut sa imong feedback.
Giunsa paggamit kini nga libro?
Ang code sa mga proyekto niini nga libro kay open sourced. Mahimo nimo kini i-download gikan sa among GitHub repository ug ipaambit ang imong mga hunahuna ug pangutana sa among opisyal nga forum. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Sa tibuok libro, adunay mga bahin nga gipasiugda sama sa gipakita sa ubos.
Source code Niini nga libro, among gihatagan og gibug-aton ang kombinasyon sa teorya ug praktis, ug sa ingon nagtakda og seksyon sa Practice mahitungod sa proyekto sa Smart Light sa halos matag kapitulo. Ang katugbang nga mga lakang ug gigikanan nga panid markahan taliwala sa duha ka linya nga nagsugod sa tag Source code.
NOTE/TIPS Dinhi diin makit-an nimo ang pipila ka kritikal nga impormasyon ug pagpahinumdom alang sa malampuson nga pag-debug sa imong programa. Mamarkahan sila taliwala sa duha ka baga nga linya nga nagsugod sa tag NOTE o TIPS.
Kadaghanan sa mga sugo niini nga libro gipatuman ubos sa Linux, nga giaghat sa karakter nga "$". Kung ang mando nanginahanglan mga pribilehiyo sa superuser nga ipatuman, ang pag-aghat pulihan sa "#". Ang command prompt sa Mac system kay “%”, ingon nga gigamit sa Seksyon 4.2.3 Pag-instalar sa ESP-IDF sa Mac.
Ang lawas nga teksto niini nga libro i-imprinta sa Charter, samtang ang code examples, component, functions, variables, code file Ang mga ngalan, mga direktoryo sa code, ug mga kuwerdas anaa sa Bag-ong Courier.
Ang mga sugo o mga teksto nga kinahanglang i-input sa user, ug ang mga sugo nga masulod pinaagi sa pagpindot sa “Enter” key i-print sa Courier New bold. Ang mga log ug mga bloke sa code ipresentar sa light blue nga mga kahon.
Example:
Ikaduha, gamita ang esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py para makamugna ang NVS partition binary file sa development host uban sa mosunod nga sugo:
$ python $IDF PATH/components/nvs flash/nvs partition generator/nvs partition gen.py –input mass prod.csv –output mass prod.bin –size NVS PARTITION SIZE
Kapitulo 1
Pasiuna
sa
IoT
Sa katapusan sa ika-20 nga siglo, uban sa pagsaka sa mga network sa kompyuter ug mga teknolohiya sa komunikasyon, ang Internet paspas nga gisagol sa kinabuhi sa mga tawo. Samtang ang teknolohiya sa Internet nagpadayon sa pagkahamtong, ang ideya sa Internet of Things (IoT) natawo. Sa literal, ang IoT nagpasabut nga usa ka Internet diin konektado ang mga butang. Samtang gibuak sa orihinal nga Internet ang mga limitasyon sa wanang ug oras ug gipakunhod ang distansya tali sa "tawo ug tawo", gihimo sa IoT ang "mga butang" nga usa ka hinungdanon nga partisipante, nga nagdala sa "mga tawo" ug "mga butang" nga magkasuod. Sa umaabot nga umaabot, ang IoT gikatakda nga mahimong puwersa sa pagmaneho sa industriya sa kasayuran.
Busa, unsa ang Internet sa mga Butang?
Lisud ang tukma nga paghubit sa Internet sa mga Butang, tungod kay ang kahulogan ug kasangkaran niini kanunay nga nag-uswag. Sa 1995, si Bill Gates unang nagdala sa ideya sa IoT sa iyang libro nga The Road Ahead. Sa yanong pagkasulti, ang IoT nagtugot sa mga butang nga magbayloay og impormasyon sa usag usa pinaagi sa Internet. Ang katapusang tumong niini mao ang pag-establisar og "Internet of Everything". Kini usa ka sayo nga paghubad sa IoT, ingon man usa ka pantasya sa umaabot nga teknolohiya. Katloan ka tuig ang milabay, uban sa paspas nga pag-uswag sa ekonomiya ug teknolohiya, ang pantasya nahimong tinuod. Gikan sa mga smart device, smart homes, smart city, Internet of Vehicles ug wearable devices, ngadto sa "metaverse" nga gisuportahan sa IoT nga mga teknolohiya, ang bag-ong mga konsepto kanunay nga mitumaw. Niini nga kapitulo, magsugod kami sa usa ka pagpatin-aw sa arkitektura sa Internet of Things, ug dayon ipaila ang labing kasagaran nga aplikasyon sa IoT, ang smart home, aron matabangan ka nga makakuha usa ka tin-aw nga pagsabut sa IoT.
1.1 Arkitektura sa IoT
Ang Internet of Things naglangkit sa daghang mga teknolohiya nga adunay lainlaing mga panginahanglanon ug porma sa aplikasyon sa lainlaing mga industriya. Aron mahan-ay ang istruktura, ang mga yawe nga teknolohiya ug mga kinaiya sa aplikasyon sa IoT, kinahanglan nga magtukod usa ka hiniusa nga arkitektura ug usa ka sumbanan nga teknikal nga sistema. Niini nga libro, ang arkitektura sa IoT gibahin lang sa upat ka mga layer: perception & control layer, network layer, platform layer, ug application layer.
Perception & Control Layer Ingon ang labing sukaranan nga elemento sa IoT nga arkitektura, ang perception ug control layer mao ang kinauyokan aron maamgohan ang komprehensibo nga pagbati sa IoT. Ang panguna nga gimbuhaton niini mao ang pagkolekta, pag-ila ug pagkontrol sa kasayuran. Naglangkob kini sa lainlaing mga aparato nga adunay katakus sa pagsabut,
3
pag-ila, pagkontrol ug pagpatuman, ug responsable sa pagkuha ug pag-analisar sa mga datos sama sa materyal nga mga kabtangan, mga uso sa pamatasan, ug kahimtang sa aparato. Niining paagiha, mailhan sa IoT ang tinuod nga pisikal nga kalibutan. Gawas pa, ang layer mahimo usab nga makontrol ang kahimtang sa aparato.
Ang labing kasagaran nga mga aparato sa kini nga layer mao ang lainlaing mga sensor, nga adunay hinungdanon nga papel sa pagkolekta ug pag-ila sa impormasyon. Ang mga sensor sama sa mga organo sa sensory sa tawo, sama sa photosensitive sensor nga katumbas sa panan-aw, acoustic sensor sa pandungog, gas sensor sa pagpanimaho, ug pressure-ug temperatura-sensitive sensor sa paghikap. Uban niining tanan nga mga "sensory organ", ang mga butang nahimong "buhi" ug makahimo sa intelihenteng pagsabot, pag-ila ug pagmaniobra sa pisikal nga kalibutan.
Network Layer Ang nag-unang function sa network layer mao ang pagpadala sa impormasyon, lakip na ang data nga nakuha gikan sa perception & control layer ngadto sa espesipikong target, ingon man ang mga command nga gi-isyu gikan sa application layer balik ngadto sa perception & control layer. Nagsilbi kini nga hinungdanon nga tulay sa komunikasyon nga nagkonektar sa lainlaing mga layer sa usa ka sistema sa IoT. Aron ma-set up ang batakang modelo sa Internet of Things, naglakip kini og duha ka lakang sa pag-integrate sa mga butang ngadto sa usa ka network: access sa Internet ug transmission pinaagi sa Internet.
Ang pag-access sa Internet Internet makahimo sa interkoneksyon tali sa tawo ug tawo, apan napakyas sa pag-apil sa mga butang sa dako nga pamilya. Sa wala pa ang pag-abut sa IoT, kadaghanan sa mga butang dili "mahimo sa network". Salamat sa padayon nga pag-uswag sa teknolohiya, ang IoT nagdumala sa pagkonektar sa mga butang sa Internet, sa ingon nakaamgo sa pagkadugtong tali sa "mga tawo ug mga butang", ug "mga butang ug mga butang". Adunay duha ka kasagarang paagi sa pagpatuman sa koneksyon sa Internet: wired network access ug wireless network access.
Ang mga paagi sa pag-access sa wired network naglakip sa Ethernet, serial communication (eg, RS-232, RS-485) ug USB, samtang ang wireless network access nagdepende sa wireless nga komunikasyon, nga mahimong bahinon pa ngadto sa short-range wireless communication ug long-range wireless communication.
Ang short-range nga wireless nga komunikasyon naglakip sa ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC), ug Radio Frequency Identification (RFID). Ang long-range nga wireless nga komunikasyon naglakip sa Enhanced Machine Type Communication (eMTC), LoRa, Narrow Band Internet of Things (NB-IoT), 2G, 3G, 4G, 5G, ug uban pa.
Pagpasa pinaagi sa Internet Ang lain-laing mga pamaagi sa pag-access sa Internet mosangpot sa katugbang nga pisikal nga transmission link sa data. Ang sunod nga butang mao ang pagdesisyon kung unsang protocol sa komunikasyon ang gamiton aron ipadala ang datos. Kung itandi sa mga terminal sa Internet, kadaghanan sa mga terminal sa IoT karon adunay gamay
4 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
anaa nga mga kapanguhaan, sama sa pasundayag sa pagproseso, kapasidad sa pagtipig, rate sa network, ug uban pa, mao nga gikinahanglan ang pagpili sa usa ka protocol sa komunikasyon nga nag-okupar sa mas diyutay nga mga kapanguhaan sa mga aplikasyon sa IoT. Adunay duha ka protocol sa komunikasyon nga kaylap nga gigamit karon: Message Queuing Telemetry Transport (MQTT) ug Constrained Application Protocol (CoAP).
Platform Layer Ang platform layer nag-una nga nagtumong sa IoT cloud platforms. Kung ang tanan nga mga terminal sa IoT na-network, ang ilang mga datos kinahanglan nga ma-aggregate sa usa ka platform sa panganod sa IoT aron makalkula ug matipigan. Ang platform layer nag-una nga nagsuporta sa mga aplikasyon sa IoT sa pagpadali sa pag-access ug pagdumala sa daghang mga aparato. Gikonektar niini ang mga terminal sa IoT sa plataporma sa panganod, nagkolekta sa datos sa terminal, ug nag-isyu sa mga mando sa mga terminal, aron mapatuman ang hilit nga kontrol. Ingon usa ka intermediate nga serbisyo sa pag-assign sa mga ekipo sa mga aplikasyon sa industriya, ang layer sa platform adunay usa ka nagdugtong nga papel sa tibuuk nga arkitektura sa IoT, nga nagdala sa abstract nga lohika sa negosyo ug sumbanan nga modelo sa core data, nga dili lamang makaamgo sa paspas nga pag-access sa mga aparato, apan naghatag usab kusog nga modular nga kapabilidad. aron matubag ang lainlaing mga panginahanglanon sa mga senaryo sa aplikasyon sa industriya. Ang layer sa platform nag-una naglakip sa mga functional modules sama sa pag-access sa aparato, pagdumala sa aparato, pagdumala sa seguridad, komunikasyon sa mensahe, pag-monitor sa operasyon ug pagpadayon, ug mga aplikasyon sa datos.
· Pag-access sa aparato, nahibal-an ang koneksyon ug komunikasyon tali sa mga terminal ug mga platform sa panganod sa IoT.
· Pagdumala sa aparato, lakip ang mga gimbuhaton sama sa paghimo sa aparato, pagmentinar sa aparato, pagkakabig sa datos, pag-synchronize sa datos, ug pag-apod-apod sa aparato.
· Pagdumala sa seguridad, pagsiguro sa seguridad sa pagpadala sa datos sa IoT gikan sa mga panan-aw sa pag-authenticate sa seguridad ug seguridad sa komunikasyon.
· Komunikasyon sa mensahe, lakip ang tulo ka mga direksyon sa transmission, nga mao, ang terminal nagpadala sa datos sa IoT cloud platform, ang IoT cloud platform nagpadala og data ngadto sa server side o uban pang IoT cloud platform, ug ang server side layo nga nagkontrol sa IoT device.
· Pag-monitor sa O&M, nga naglambigit sa pag-monitor ug pagdayagnos, pag-upgrade sa firmware, online debugging, serbisyo sa log, ug uban pa.
· Mga aplikasyon sa datos, nga naglambigit sa pagtipig, pagtuki ug paggamit sa datos.
Application Layer Ang application layer naggamit sa datos gikan sa platform layer aron pagdumala sa aplikasyon, pagsala ug pagproseso niini gamit ang mga himan sama sa mga database ug software sa pagtuki. Ang resulta nga datos mahimong magamit alang sa tinuod nga kalibutan nga IoT nga mga aplikasyon sama sa smart healthcare, smart agriculture, smart homes, ug smart nga mga siyudad.
Siyempre, ang arkitektura sa IoT mahimong bahinon sa daghang mga layer, apan bisan kung pila ka mga layer ang gilangkuban niini, ang sukaranan nga prinsipyo nagpabilin nga parehas. Pagkat-on
Kapitulo 1. Pasiuna sa IoT 5
bahin sa arkitektura sa IoT makatabang sa pagpalawom sa among pagsabot sa mga teknolohiya sa IoT ug paghimo sa hingpit nga mga proyekto sa IoT.
1.2 IoT Application sa Smart Homes
Ang IoT nakasulod sa tanan nga mga lakang sa kinabuhi, ug ang labing suod nga kalabutan nga aplikasyon sa IoT sa amon mao ang intelihenteng balay. Daghang mga tradisyonal nga appliances ang nasangkapan na karon sa usa o daghan pa nga IoT nga mga aparato, ug daghang bag-ong natukod nga mga balay ang gidisenyo gamit ang mga teknolohiya sa IoT gikan sa sinugdanan. Ang Figure 1.1 nagpakita sa pipila ka kasagarang mga smart home device.
Hulagway 1.1. Komon nga mga smart home device Ang pagpalambo sa smart home mahimong bahinon lang sa smart product stage, talan-awon interkoneksyon stage ug intelihente stage, ingon sa gipakita sa Figure 1.2.
Hulagway 1.2. Pag-uswag stage sa smart home 6 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Ang unang stage mahitungod sa mga smart nga produkto. Lahi sa tradisyonal nga mga balay, sa mga smart nga balay, ang mga aparato sa IoT nakadawat mga signal nga adunay mga sensor, ug gi-network pinaagi sa wireless nga mga teknolohiya sa komunikasyon sama sa Wi-Fi, Bluetooth LE, ug ZigBee. Makontrol sa mga tiggamit ang mga smart nga produkto sa lainlaing paagi, sama sa mga smartphone apps, voice assistant, smart speaker control, ug uban pa.tage focus sa talan-awon interconnection. Niini nga stage, ang mga developers wala na naghunahuna sa pagkontrolar sa usa ka smart nga produkto, apan ang pagkonektar sa duha o labaw pa nga mga smart nga produkto, pag-automate sa usa ka piho nga gidak-on, ug sa katapusan nagporma og custom nga scene mode. Kay exampUg, sa diha nga ang user mopilit sa bisan unsa nga buton sa scene mode, ang mga suga, mga kurtina, ug mga air conditioner awtomatik nga ipahiangay sa mga preset. Siyempre, adunay gikinahanglan nga ang linkage logic dali nga ma-set up, lakip ang mga kondisyon sa pag-trigger ug mga aksyon sa pagpatuman. Hunahunaa nga ang air conditioning heating mode ma-trigger kung ang temperatura sa sulud moubos sa 10°C; nga sa alas 7 sa buntag, gipatokar ang musika aron pukawon ang tiggamit, giablihan ang mga smart curtains, ug ang rice cooker o bread toaster magsugod pinaagi sa smart socket; sa pagbangon sa tiggamit ug pagkahuman sa pagpanglaba, giandam na ang pamahaw, aron wala’y paglangan sa pag-adto sa trabaho. Pagkakombenyente sa among kinabuhi! Ang ikatulo nga stage adto sa intelligence stage. Ingon nga mas daghang mga smart home device ang ma-access, mao usab ang mga matang sa datos nga namugna. Uban sa tabang sa cloud computing, dako nga datos ug artipisyal nga paniktik, kini sama sa usa ka "mas utokan nga utok" nga gitanom sa mga smart nga balay, nga wala na magkinahanglan og kanunay nga mga sugo gikan sa tiggamit. Gikolekta nila ang mga datos gikan sa nangaging mga interaksyon ug nahibal-an ang mga sumbanan sa pamatasan ug gusto sa tiggamit, aron ma-automate ang mga kalihokan, lakip ang paghatag mga rekomendasyon alang sa paghimog desisyon. Sa pagkakaron, kadaghanan sa mga smart nga balay naa sa scene interconnection stage. Samtang ang penetration rate ug paniktik sa mga intelihente nga produkto nagdugang, ang mga babag tali sa mga protocol sa komunikasyon gitangtang. Sa umaabot, ang mga intelihente nga mga balay kinahanglan nga mahimong "maalamon", sama sa sistema sa AI nga Jarvis sa Iron Man, nga dili lamang makatabang sa tiggamit sa pagkontrol sa lainlaing mga aparato, pagdumala sa adlaw-adlaw nga mga kalihokan, apan adunay usab kusog sa pag-compute ug abilidad sa panghunahuna. Sa intelihenteng stage, ang mga tawo makadawat ug mas maayong serbisyo sa gidaghanon ug kalidad.
Kapitulo 1. Pasiuna sa IoT 7
8 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Kapitulo Pasiuna ug Pagpraktis sa 2 IoT Projects
Sa Kapitulo 1, gipaila namo ang arkitektura sa IoT, ug ang mga tahas ug interrelationships sa perception & control layer, network layer, platform layer, ug application layer, ingon man ang pagpalambo sa smart home. Bisan pa, sama sa kung kita makakat-on sa pagpintal, ang pagkahibalo sa teoretikal nga kahibalo dili igo. Kinahanglan nga "mahugawan ang among mga kamot" aron mapraktis ang mga proyekto sa IoT aron tinuud nga ma-master ang teknolohiya. Dugang pa, kung ang usa ka proyekto mobalhin sa mass production stage, kinahanglan nga tagdon ang daghang mga hinungdan sama sa koneksyon sa network, pag-configure, interaksyon sa IoT cloud platform, pagdumala ug pag-update sa firmware, pagdumala sa produksiyon sa masa, ug pag-configure sa seguridad. Mao nga, unsa ang kinahanglan naton nga hatagan pagtagad kung maghimo usa ka kompleto nga proyekto sa IoT? Sa Kapitulo 1, among gihisgutan nga ang smart home mao ang usa sa labing komon nga IoT application scenario, ug ang smart lights mao ang usa sa pinaka-basic ug praktikal nga appliances, nga magamit sa mga balay, hotel, gym, ospital, ug uban pa. niini nga libro, atong himoon ang pagtukod sa usa ka smart light project isip sinugdanan, ipatin-aw ang mga component ug feature niini, ug maghatag ug giya sa pagpalambo sa proyekto. Kami nanghinaut nga makahimo ka og mga inferences gikan sa kini nga kaso aron makahimo og daghang mga aplikasyon sa IoT.
2.1 Pasiuna sa Kinaandan nga mga Proyekto sa IoT
Sa termino sa pag-uswag, ang mga batakang functional module sa IoT nga mga proyekto mahimong maklasipikar sa software ug hardware development sa IoT devices, client application development, ug IoT cloud platform development. Mahinungdanon nga ipatin-aw ang sukaranan nga mga modulo nga magamit, nga dugang nga gihulagway sa kini nga seksyon.
2.1.1 Basic Module para sa Komon nga IoT Devices
Ang software ug hardware development sa IoT device naglakip sa mosunod nga basic modules: Pagkolekta sa datos
Isip ubos nga layer sa IoT nga arkitektura, ang IoT device sa perception & control layer nagkonektar sa mga sensor ug device pinaagi sa ilang mga chips ug peripheral aron makab-ot ang pagkolekta sa datos ug pagkontrol sa operasyon.
9
Pagbugkos sa account ug inisyal nga pag-configure Alang sa kadaghanan nga mga aparato sa IoT, ang pagbugkos sa account ug ang una nga pag-configure nahuman sa usa ka proseso sa operasyon, alang sa example, pagkonektar sa mga himan sa mga tiggamit pinaagi sa pag-configure sa Wi-Fi network.
Interaksyon sa IoT cloud platform Aron mamonitor ug makontrol ang IoT nga mga device, gikinahanglan usab nga ikonektar sila sa IoT cloud platforms, aron makahatag og mga sugo ug magreport sa status pinaagi sa interaksyon tali sa usag usa.
Pagkontrol sa device Kon konektado sa IoT cloud platform, ang mga device mahimong makigkomunikar sa cloud ug marehistro, mabugkos, o makontrol. Ang mga tiggamit mahimong mangutana sa kahimtang sa produkto ug maghimo sa ubang mga operasyon sa smartphone app pinaagi sa IoT cloud platform o lokal nga mga protocol sa komunikasyon.
Ang pag-upgrade sa firmware sa IoT nga mga aparato mahimo usab nga makab-ot ang pag-upgrade sa firmware base sa mga panginahanglanon sa mga tiggama. Pinaagi sa pagdawat sa mga sugo nga gipadala sa panganod, ang pag-upgrade sa firmware ug pagdumala sa bersyon matuman. Uban niini nga bahin sa pag-upgrade sa firmware, mahimo nimong padayon nga mapauswag ang mga gimbuhaton sa mga aparato sa IoT, ayohon ang mga depekto, ug mapaayo ang kasinatian sa gumagamit.
2.1.2 Sukaranan nga mga Module sa mga Aplikasyon sa Kliyente
Ang mga aplikasyon sa kliyente (pananglitan, mga smartphone apps) nag-una naglakip sa mosunod nga mga batakang module:
Sistema sa account ug pagtugot Gisuportahan niini ang pagtugot sa account ug aparato.
Pagkontrol sa aparato Ang mga smartphone apps kasagaran adunay mga function sa pagkontrol. Ang mga tiggamit dali nga makakonekta sa mga aparato sa IoT, ug madumala kini bisan kanus-a, bisan asa pinaagi sa mga smartphone apps. Sa usa ka tinuod nga kalibutan nga intelihente nga balay, ang mga aparato kasagarang kontrolado pinaagi sa mga smartphone apps, nga dili lamang makahimo sa intelihenteng pagdumala sa mga aparato, apan makatipig usab sa gasto sa manpower. Busa, ang pagkontrol sa device usa ka kinahanglan alang sa mga aplikasyon sa kliyente, sama sa pagkontrol sa kinaiya sa device function, pagkontrol sa talan-awon, pag-iskedyul, hilit nga kontrol, pagsumpay sa device, ug uban pa. , ug uban pa, aron ang kinabuhi sa panimalay mas komportable ug kombenyente. Mahimo nilang i-time ang air conditioning, i-off kini sa layo, i-set ang suga sa hallway awtomatik kung ma-unlock ang pultahan, o ibalhin sa mode nga "theater" gamit ang usa ka butones.
Ang mga aplikasyon sa Notification Client nag-update sa real-time nga status sa IoT device, ug nagpadala og mga alerto kung ang mga device mahimong abnormal.
10 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
After-sales customer service Ang smartphone apps makahatag ug after-sales services para sa mga produkto, aron masulbad ang mga problema nga may kalabotan sa IoT device failures ug technical operations sa tukma sa panahon nga paagi.
Gipili nga mga gimbuhaton Aron matubag ang mga panginahanglan sa lainlaing mga tiggamit, ang ubang mga gimbuhaton mahimong idugang, sama sa Shake, NFC, GPS, ug uban pa. Ang GPS makatabang sa pagtakda sa katukma sa mga operasyon sa talan-awon sumala sa lokasyon ug distansya, samtang ang function sa Shake nagtugot sa mga tiggamit nga itakda ang mga sugo nga ipatuman para sa piho nga device o eksena pinaagi sa pag-uyog.
2.1.3 Pasiuna sa Komon nga IoT Cloud Platform
Ang IoT cloud platform usa ka all-in-one nga plataporma nga naghiusa sa mga gimbuhaton sama sa pagdumala sa aparato, komunikasyon sa seguridad sa datos, ug pagdumala sa pagpahibalo. Sumala sa ilang target nga grupo ug accessibility, ang IoT cloud platforms mahimong bahinon ngadto sa public IoT cloud platforms (gitawag nga “public cloud”) ug pribado nga IoT cloud platforms (gitawag nga “private cloud”).
Ang publiko nga panganod kasagarang nagpaila sa gipaambit nga IoT cloud platform para sa mga negosyo o indibidwal, gipadagan ug gimentinar sa mga platform providers, ug gipaambit pinaagi sa Internet. Mahimo kini nga libre o mubu nga gasto, ug naghatag mga serbisyo sa tibuuk nga bukas nga publiko nga network, sama sa Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, ug uban pa. downstream end user sa paghimo og bag-ong value chain ug ecosystem.
Ang pribado nga panganod gihimo alang sa paggamit sa negosyo lamang, sa ingon gigarantiyahan ang labing kaayo nga pagkontrol sa datos, seguridad, ug kalidad sa serbisyo. Ang mga serbisyo ug imprastraktura niini gipadayon nga gilain sa mga negosyo, ug ang pagsuporta sa hardware ug software gipahinungod usab sa mga piho nga tiggamit. Mahimong ipasadya sa mga negosyo ang mga serbisyo sa panganod aron matubag ang mga panginahanglanon sa ilang negosyo. Sa pagkakaron, ang pipila ka mga smart home manufacturers nakabaton na ug pribadong IoT cloud platforms ug nagpalambo sa smart home applications base niini.
Ang public cloud ug private cloud adunay kaugalingong advantages, nga ipatin-aw sa ulahi.
Aron makab-ot ang koneksyon sa komunikasyon, gikinahanglan nga makompleto ang labing menus nga na-embed nga pag-uswag sa bahin sa aparato, kauban ang mga server sa negosyo, mga platform sa panganod sa IoT, ug mga aplikasyon sa smartphone. Nag-atubang sa ingon ka dako nga proyekto, ang publiko nga panganod kasagarang naghatag mga software development kits alang sa kilid sa aparato ug mga smartphone nga apps aron mapadali ang proseso. Ang publiko ug pribado nga panganod naghatag mga serbisyo lakip ang pag-access sa aparato, pagdumala sa aparato, anino sa aparato, ug operasyon ug pagpadayon.
Ang pag-access sa aparato nga IoT cloud platform kinahanglan nga maghatag dili lamang mga interface alang sa pag-access sa aparato gamit ang mga protocol
Kapitulo 2. Pasiuna ug Pagpraktis sa IoT Projects 11
sama sa MQTT, CoAP, HTTPS, ug WebSocket, apan usab ang function sa pag-authenticate sa seguridad sa aparato aron babagan ang mga peke ug iligal nga mga aparato, nga epektibo nga makunhuran ang peligro nga makompromiso. Ang ingon nga panghimatuud kasagaran nagsuporta sa lainlaing mga mekanismo, mao nga kung ang mga aparato gihimo sa masa, kinahanglan nga pre-assign ang sertipiko sa aparato sumala sa gipili nga mekanismo sa pag-authenticate ug sunugon kini sa mga aparato.
Pagdumala sa aparato Ang function sa pagdumala sa aparato nga gihatag sa IoT cloud platform dili lamang makatabang sa mga tiggama sa pagmonitor sa kahimtang sa pagpaaktibo ug kahimtang sa online sa ilang mga aparato sa tinuud nga oras, apan gitugotan usab ang mga kapilian sama sa pagdugang / pagtangtang sa mga aparato, pagkuha, pagdugang / pagtangtang sa mga grupo, pag-upgrade sa firmware , ug pagdumala sa bersyon.
Ang anino sa aparato nga IoT nga mga plataporma sa panganod mahimo’g maghimo usa ka padayon nga virtual nga bersyon (landong sa aparato) alang sa matag aparato, ug ang kahimtang sa anino sa aparato mahimong ma-synchronize ug makuha sa smartphone app o uban pang mga aparato pinaagi sa mga protocol sa transmission sa Internet. Gitipigan sa anino sa aparato ang labing bag-o nga gitaho nga kahimtang ug gipaabut nga kahimtang sa matag aparato, ug bisan kung offline ang aparato, makuha gihapon ang kahimtang pinaagi sa pagtawag sa mga API. Ang anino sa aparato naghatag kanunay nga mga API, nga nagpadali sa paghimo sa mga smartphone apps nga nakig-uban sa mga aparato.
Operasyon ug pagmentinar Ang O&M function naglakip sa tulo ka aspeto: · Pagpakita sa estadistika nga impormasyon bahin sa IoT nga mga himan ug mga pahibalo. · Gitugotan sa pagdumala sa log ang pagkuha sa kasayuran bahin sa pamatasan sa aparato, pataas / paubos nga dagan sa mensahe, ug sulud sa mensahe. · Gisuportahan sa pag-debug sa aparato ang paghatud sa mando, pag-update sa pag-configure, ug pagsusi sa interaksyon tali sa mga platform sa panganod sa IoT ug mga mensahe sa aparato.
2.2 Praktisa: Smart Light Project
Pagkahuman sa teoretikal nga pasiuna sa matag kapitulo, makit-an nimo ang usa ka seksyon sa praktis nga may kalabotan sa proyekto sa Smart Light aron matabangan ka nga makakuha og hands-on nga kasinatian. Ang proyekto gibase sa ESP32-C3 chip ug ESP RainMaker IoT Cloud Platform sa Espressif, ug gisakup ang wireless module hardware sa mga smart light nga produkto, embedded software para sa mga smart device base sa ESP32C3, smartphone apps, ug ESP RainMaker interaction.
Source code Para sa mas maayong pagkat-on ug pagpalambo sa kasinatian, ang proyekto niini nga libro kay opensourced. Mahimo nimong i-download ang source code gikan sa among GitHub repository sa https://github. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
2.2.1 Istruktura sa Proyekto
Ang proyekto sa Smart Light naglangkob sa tulo ka bahin: i. Ang mga smart light device nga gibase sa ESP32-C3, responsable sa pagpakig-uban sa IoT cloud platforms, ug pagkontrol sa switch, kahayag ug temperatura sa kolor sa LED l.amp mga lubid. ii. Ang mga smartphone apps (lakip ang mga tablet app nga nagdagan sa Android ug iOS), responsable sa pag-configure sa network sa mga produkto sa smart light, ingon man pagpangutana ug pagkontrol sa ilang kahimtang.
iii. Usa ka IoT cloud platform base sa ESP RainMaker. Alang sa pagpayano, among gikonsiderar ang IoT cloud platform ug business server sa kinatibuk-an niini nga libro. Ang mga detalye bahin sa ESP RainMaker ihatag sa Kapitulo 3.
Ang mga sulat tali sa istruktura sa proyekto sa Smart Light ug ang arkitektura sa IoT gipakita sa Figure 2.1.
Hulagway 2.1. Istruktura sa smart light project
2.2.2 Mga Kalihokan sa Proyekto
Gibahin sumala sa istruktura, ang mga gimbuhaton sa matag bahin mao ang mga musunud. Mga gamit sa smart light
· Konfigurasyon sa network ug koneksyon. · Ang kontrol sa LED PWM, sama sa switch, kahayag, temperatura sa kolor, ug uban pa · Automation o kontrol sa eksena, pananglitan, switch sa oras. · Pag-encrypt ug luwas nga boot sa Flash. · Pag-upgrade sa firmware ug pagdumala sa bersyon.
Kapitulo 2. Pasiuna ug Pagpraktis sa IoT Projects 13
Smartphone apps · Pag-configure sa network ug pagbugkos sa aparato. · Smart light product control, sama sa switch, brightness, color temperature, ug uban pa · Automation o scene settings, eg, time switch. · Lokal / hilit nga kontrol. · Pagparehistro sa tiggamit, pag-login, ug uban pa.
ESP RainMaker IoT cloud platform · Pag-enable sa IoT device access. · Paghatag ug device operation APIs nga ma-access sa smartphone apps. · Pag-upgrade sa firmware ug pagdumala sa bersyon.
2.2.3 Pagpangandam sa Hardware
Kung interesado sa pagpraktis sa proyekto, kinahanglan nimo usab ang mosunod nga hardware: mga intelihenteng suga, mga smartphone, mga router sa Wi-Fi, ug usa ka kompyuter nga nagtagbo sa mga kinahanglanon sa pag-install sa palibot sa pag-uswag. Smart nga mga suga
Ang mga smart lights usa ka bag-ong klase sa mga bombilya, kansang porma parehas sa kinatibuk-ang incandescent bulb. Ang usa ka intelihenteng kahayag gilangkuban sa capacitor step-down regulated power supply, wireless module (nga adunay built-in nga ESP32-C3), LED controller ug RGB LED matrix. Kung konektado sa gahum, ang 15 V DC voltage output human sa capacitor step-down, diode rectification, ug regulasyon naghatag og kusog sa LED controller ug LED matrix. Ang LED controller mahimong awtomatik nga magpadala sa taas ug ubos nga lebel sa pipila ka mga agwat, pagbalhin sa RGB LED matrix tali sa sirado (mga suga) ug bukas (mga suga nga gipalong), aron kini makapagawas sa cyan, yellow, green, purple, blue, red, ug puti nga kahayag. Ang wireless module ang responsable sa pagkonektar sa Wi-Fi router, pagdawat ug pagreport sa status sa mga smart lights, ug pagpadala sa mga command aron makontrol ang LED.
Hulagway 2.2. Usa ka simulate nga intelihenteng suga
Sa sayong kalamboan stage, mahimo nimong i-simulate ang usa ka intelihenteng suga gamit ang ESP32-C3DevKitM-1 board nga konektado sa RGB LED lamp beads (tan-awa ang Figure 2.2). Apan kinahanglan nimo
14 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
timan-i nga dili lang kini ang paagi sa pag-assemble og smart light. Ang disenyo sa hardware sa proyekto niini nga libro naglangkob lamang sa wireless module (nga adunay built-in nga ESP32-C3), apan dili kompleto nga smart light hardware design. Dugang pa, ang Espressif naghimo usab usa ka ESP32-C3 nga nakabase sa audio development board nga ESP32C3-Lyra alang sa pagkontrol sa mga suga nga adunay audio. Ang board adunay mga interface alang sa mga mikropono ug mga speaker ug makakontrol sa mga LED strips. Mahimo kini gamiton alang sa pagpalambo sa ultra-low-cost, high-performance audio broadcasters ug rhythm light strips. Ang Figure 2.3 nagpakita sa usa ka ESP32-C3Lyra board nga gisumpay sa usa ka strip sa 40 ka LED nga suga.
Hulagway 2.3. Ang ESP32-C3-Lyra nalambigit sa usa ka strip nga 40 ka LED nga suga
Mga Smartphone (Android/iOS) Ang proyekto sa Smart Light naglambigit sa pagpalambo sa usa ka smartphone app alang sa pag-set up ug pagkontrolar sa mga produkto sa smart light.
Mga Wi-Fi router Ang mga Wi-Fi router nag-convert sa mga wired network signal ug mobile network signal ngadto sa wireless network signal, para sa mga computer, smartphone, tablet, ug uban pang wireless device aron makonektar sa network. Kay exampBusa, ang broadband sa balay kinahanglan lamang nga konektado sa usa ka Wi-Fi router aron makab-ot ang wireless networking sa mga Wi-Fi device. Ang mainstream protocol standard nga gisuportahan sa Wi-Fi routers mao ang IEEE 802.11n, nga adunay average nga TxRate nga 300 Mbps, o 600 Mbps sa maximum. Nahiuyon sila sa IEEE 802.11b ug IEEE 802.11g. Ang ESP32-C3 chip ni Espressif nagsuporta sa IEEE 802.11b/g/n, para makapili ka ug single-band (2.4 GHz) o dual-band (2.4 GHz ug 5 GHz) Wi-Fi router.
Usa ka kompyuter (Linux/macOS/Windows) Development environment ipaila sa Kapitulo 4. Kapitulo 2. Pasiuna ug Pagpraktis sa IoT Projects 15
2.2.4 Proseso sa Pag-uswag
Hulagway 2.4. Mga lakang sa pagpalambo sa proyekto sa Smart Light
Disenyo sa hardware Ang laraw sa hardware sa mga aparato sa IoT hinungdanon sa usa ka proyekto sa IoT. Ang usa ka kompleto nga proyekto sa intelihenteng kahayag gituyo aron makahimo og alamp nagtrabaho ubos sa suplay sa mains. Nagkalainlain nga mga tiggama og lamps sa lain-laing mga estilo ug mga matang sa drayber, apan ang ilang mga wireless modules kasagaran sa sama nga function. Aron mapasayon ang proseso sa pagpalambo sa proyekto sa Smart Ligh, kini nga libro naglangkob lamang sa disenyo sa hardware ug software sa pagpalambo sa wireless modules.
Pag-configure sa IoT cloud platform Aron magamit ang IoT cloud platform, kinahanglan nimo nga i-configure ang mga proyekto sa backend, sama sa paghimo og mga produkto, paghimo og mga aparato, pag-set sa mga kabtangan sa aparato, ug uban pa.
Naka-embed nga software development para sa IoT device Ipatuman ang gipaabot nga mga function sa ESP-IDF, SDK sa device-side ni Espressif, lakip ang pagkonektar sa IoT cloud platforms, pagpalambo sa LED drivers, ug pag-upgrade sa firmware.
Pagpalambo sa smartphone app Paghimo og mga smartphone apps alang sa Android ug iOS nga mga sistema aron matuman ang pagrehistro ug pag-login sa user, pagkontrol sa device ug uban pang mga gimbuhaton.
Pag-optimize sa IoT device Kung makompleto na ang batakang pag-uswag sa mga function sa IoT device, mahimo kang modangop sa mga buluhaton sa pag-optimize, sama sa pag-optimize sa kuryente.
Pagsulay sa mass production Ipahigayon ang mga pagsulay sa mass production sumala sa may kalabutan nga mga sumbanan, sama sa pagsulay sa pag-andar sa kagamitan, pagsulay sa pagkatigulang, pagsulay sa RF, ug uban pa.
Bisan pa sa mga lakang nga gilista sa ibabaw, ang usa ka proyekto sa Smart Light dili kinahanglan nga ipailalom sa ingon nga pamaagi tungod kay ang lainlaing mga buluhaton mahimo usab nga himuon sa parehas nga oras. Kay example, embedded software ug smartphone apps mahimong maugmad sa parallel. Ang pipila ka mga lakang mahimo usab nga kinahanglan nga balikon, sama sa IoT device optimization ug mass production testing.
16 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
2.3 Katingbanan
Niini nga kapitulo, una namong gipatin-aw ang mga batakang sangkap ug functional modules sa usa ka proyekto sa IoT, dayon gipaila ang Smart Light nga kaso alang sa praktis, nga nagtumong sa iyang istruktura, mga gimbuhaton, pag-andam sa hardware, ug proseso sa pagpalambo. Ang mga magbabasa makahimo og mga inferences gikan sa praktis ug mahimong masaligon sa pagpatuman sa mga proyekto sa IoT nga adunay minimum nga mga sayop sa umaabot.
Kapitulo 2. Pasiuna ug Pagpraktis sa IoT Projects 17
18 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Kapitulo 3
Pasiuna
sa
ESP
Magbubuhat sa Ulan
Ang Internet of Things (IoT) nagtanyag sa walay katapusan nga mga posibilidad nga mabag-o ang paagi sa pagkinabuhi sa mga tawo, apan ang pag-uswag sa IoT engineering puno sa mga hagit. Uban sa publiko nga mga panganod, ang mga tiggama sa terminal mahimong mag-implementar sa pagpaandar sa produkto pinaagi sa mga mosunud nga solusyon:
Base sa mga cloud platform sa mga solution providers Niining paagiha, ang mga tiggama sa terminal kinahanglan lamang nga magdesinyo sa hardware sa produkto, dayon ikonektar ang hardware ngadto sa cloud gamit ang gihatag nga module sa komunikasyon, ug i-configure ang mga function sa produkto nga nagsunod sa mga giya. Kini usa ka episyente nga pamaagi tungod kay kini nagwagtang sa panginahanglan alang sa server-side ug application-side development ug operations and maintenance (O&M). Gitugotan niini ang mga tiggama sa terminal nga mag-focus sa disenyo sa hardware nga dili kinahanglan nga ikonsiderar ang pagpatuman sa panganod. Bisan pa, ang ingon nga mga solusyon (pananglitan, firmware sa aparato ug App) sa kasagaran dili bukas nga gigikanan, busa ang mga gimbuhaton sa produkto limitado sa platform sa panganod sa provider nga dili mapasibo. Sa kasamtangan, ang data sa user ug device iya usab sa cloud platform.
Pinasukad sa mga produkto sa panganod Sa kini nga solusyon, pagkahuman makompleto ang disenyo sa hardware, ang mga tiggama sa terminal dili lamang kinahanglan nga ipatuman ang mga function sa panganod gamit ang usa o daghang mga produkto sa panganod nga gihatag sa publiko nga panganod, apan kinahanglan usab nga i-link ang hardware sa panganod. Kay example, aron makonektar sa Amazon Web Mga Serbisyo (AWS), ang mga tiggama sa terminal kinahanglan nga mogamit sa mga produkto sa AWS sama sa Amazon API Gateway, AWS IoT Core, ug AWS Lambda aron mahimo ang pag-access sa aparato, hilit nga kontrol, pagtipig sa datos, pagdumala sa tiggamit, ug uban pang sukaranang mga gimbuhaton. Wala lang kini naghangyo sa mga tiggama sa terminal nga dali nga magamit ug i-configure ang mga produkto sa panganod nga adunay lawom nga pagsabut ug daghang kasinatian, apan kinahanglan usab nila nga hunahunaon ang gasto sa pagtukod ug pagmentinar para sa una ug ulahi nga mga s.tagNaghatag kini og daghang mga hagit sa kusog ug kahinguhaan sa kompanya.
Kung itandi sa publiko nga mga panganod, ang mga pribado nga panganod sagad nga gitukod alang sa piho nga mga proyekto ug produkto. Ang mga private cloud developers gihatagan ug pinakataas nga lebel sa kagawasan sa protocol design ug business logic nga pagpatuman. Ang mga tiggama sa terminal makahimo sa mga produkto ug mga laraw sa pagdesinyo sa gusto, ug dali nga maghiusa ug maghatag gahum sa datos sa tiggamit. Paghiusa sa taas nga seguridad, scalability ug kasaligan sa publiko nga panganod sa advantages sa pribadong panganod, gilusad sa Espressif ang ESP
19
RainMaker, usa ka lawom nga gisagol nga pribado nga solusyon sa panganod nga gibase sa panganod sa Amazon. Ang mga tiggamit mahimong mag-deploy sa ESP RainMaker ug magtukod og pribadong panganod gamit ang usa ka AWS account.
3.1 Unsa ang ESP RainMaker?
Ang ESP RainMaker usa ka kompleto nga platform sa AIoT nga gitukod nga adunay daghang mga hamtong nga produkto sa AWS. Naghatag kini og nagkalain-laing serbisyo nga gikinahanglan para sa mass production sama sa device cloud access, device upgrade, backend management, third-party login, voice integration, ug user management. Pinaagi sa paggamit sa Serverless Application Repository (SAR) nga gihatag sa AWS, ang mga tiggama sa terminal dali nga ma-deploy ang ESP RainMaker sa ilang mga AWS account, nga episyente sa oras ug dali nga magamit. Gidumala ug gimentinar ni Espressif, ang SAR nga gigamit sa ESP RainMaker nagtabang sa mga developers nga makunhuran ang gasto sa pagmentinar sa panganod ug mapadali ang pagpalambo sa mga produkto sa AIoT, sa ingon nagtukod og luwas, lig-on, ug napasadya nga mga solusyon sa AIoT. Ang Figure 3.1 nagpakita sa arkitektura sa ESP RainMaker.
Hulagway 3.1. Arkitektura sa ESP RainMaker
Ang ESP RainMaker nga publikong server ni Espressif libre para sa tanang mga mahiligon sa ESP, tighimo, ug mga magtutudlo para sa pagtimbang-timbang sa solusyon. Ang mga developers mahimong maka-log in gamit ang Apple, Google, o GitHub nga mga account, ug dali nga magtukod sa ilang kaugalingong IoT application prototypes. Ang publiko nga server naghiusa sa Alexa ug Google Home, ug naghatag og mga serbisyo sa pagkontrol sa tingog, nga gisuportahan sa Alexa Skill ug Google Actions. Ang function sa pag-ila sa semantiko niini gipadagan usab sa mga ikatulo nga partido. Ang mga aparato sa RainMaker IoT motubag lamang sa mga piho nga aksyon. Alang sa usa ka kompleto nga lista sa gisuportahan nga mga voice command, palihug susiha ang mga platform sa ikatulo nga partido. Dugang pa, ang Espressif nagtanyag sa usa ka publiko nga RainMaker App alang sa mga tiggamit nga makontrol ang mga produkto pinaagi sa mga smartphone. 20 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
3.2 Ang Pagpatuman sa ESP RainMaker
Sama sa gipakita sa Figure 3.2, ang ESP RainMaker naglangkob sa upat ka mga bahin: · Pag-angkon sa Serbisyo, nga makapahimo sa RainMaker nga mga himan nga dinamikong makakuha og mga sertipiko. · RainMaker Cloud (nailhan usab nga cloud backend), nga naghatag mga serbisyo sama sa pagsala sa mensahe, pagdumala sa gumagamit, pagtipig sa datos, ug mga panagsama sa ikatulo nga partido. · RainMaker Agent, nga makapahimo sa RainMaker nga mga device nga makakonektar sa RainMaker Cloud. · Kliyente sa RainMaker (Mga script sa RainMaker App o CLI), alang sa paghatag, paghimo sa tiggamit, asosasyon ug pagkontrol sa aparato, ug uban pa.
Hulagway 3.2. Istruktura sa ESP RainMaker
Ang ESP RainMaker naghatag usa ka kompleto nga hugpong sa mga himan alang sa pagpauswag sa produkto ug paghimo sa masa, lakip ang: RainMaker SDK
Ang RainMaker SDK gibase sa ESP-IDF ug naghatag sa source code sa device-side agent ug may kalabutan nga C APIs para sa firmware development. Kinahanglan lang isulat sa mga developer ang logic sa aplikasyon ug ibilin ang nahabilin sa framework sa RainMaker. Para sa dugang nga impormasyon bahin sa mga C API, palihog bisitaha ang https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Ang publiko nga bersyon sa RainMaker App nagtugot sa mga developer sa pagkompleto sa paghatag og device, ug pagkontrol ug pagpangutana sa status sa mga device (pananglitan, mga produkto sa smart lighting). Anaa kini sa iOS ug Android app stores. Para sa dugang nga mga detalye, palihog tan-awa ang Kapitulo 10. REST APIs REST APIs makatabang sa mga tiggamit sa paghimo sa ilang kaugalingong mga aplikasyon susama sa RainMaker App. Para sa dugang nga impormasyon, palihog bisitaha ang https://swaggerapis.rainmaker.espressif.com/.
Kapitulo 3. Pasiuna sa ESP RainMaker 21
Mga API sa Python Usa ka CLI nga nakabase sa Python, nga kauban ang RainMaker SDK, gihatag aron ipatuman ang tanan nga mga gimbuhaton nga parehas sa mga bahin sa smartphone. Para sa dugang nga impormasyon bahin sa Python APIs, palihog bisitaha ang https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, nga adunay mas taas nga lebel sa pag-access, gihatag alang sa ESP RainMaker nga pribadong pag-deploy aron makamugna og mga sertipiko sa device sa kadaghanan.
3.2.1 Serbisyo sa Pag-angkon
Ang tanan nga komunikasyon tali sa mga aparato sa RainMaker ug sa cloud backend gihimo pinaagi sa MQTT+TLS. Sa konteksto sa ESP RainMaker, ang "Claiming" mao ang proseso diin ang mga device makakuha og mga sertipiko gikan sa Claiming Service aron makonektar sa cloud backend. Timan-i nga ang Serbisyo sa Pag-angkon magamit lamang sa publiko nga serbisyo sa RainMaker, samtang alang sa pribado nga pag-deploy, ang mga sertipiko sa aparato kinahanglan nga mamugna sa kadaghanan pinaagi sa Admin CLI. Gisuportahan sa ESP RainMaker ang tulo ka klase sa Serbisyo sa Pag-angkon: Pag-angkon sa Kaugalingon
Ang aparato mismo ang nagkuha sa mga sertipiko pinaagi sa usa ka sekreto nga yawe nga giprograma na sa eFuse pagkahuman sa pagkonektar sa Internet. Host Driven Claim Ang mga sertipiko makuha gikan sa development host nga adunay RainMaker account. Gitabangan nga Pag-angkon Ang mga sertipiko makuha pinaagi sa mga aplikasyon sa smartphone sa panahon sa paghatag.
3.2.2 Ahente sa RainMaker
Hulagway 3.3. Istruktura sa RainMaker SDK Ang nag-unang gimbuhaton sa RainMaker Agent mao ang paghatag og koneksyon ug pagtabang sa layer sa aplikasyon sa pagproseso sa uplink/downlink cloud data. Gitukod kini pinaagi sa RainMaker SDK 22 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
ug naugmad base sa napamatud-an nga balangkas sa ESP-IDF, gamit ang mga sangkap sa ESP-IDF sama sa RTOS, NVS, ug MQTT. Ang Figure 3.3 nagpakita sa istruktura sa RainMaker SDK.
Ang RainMaker SDK naglakip sa duha ka dagkong bahin.
Koneksyon
i. Pagtinabangay sa Serbisyo sa Pag-angkon aron makakuha mga sertipiko sa aparato.
ii. Ang pagkonektar sa cloud backend gamit ang luwas nga MQTT protocol aron mahatagan ang hilit nga koneksyon ug ipatuman ang hilit nga kontrol, pagreport sa mensahe, pagdumala sa gumagamit, pagdumala sa aparato, ug uban pa. Gigamit niini ang sangkap sa MQTT sa ESP-IDF nga default ug naghatag usa ka layer sa abstraction aron ma-interface sa uban protocol stacks.
iii. Paghatag ug wifi provisioning component para sa Wi-Fi connection ug provisioning, esp https ota component para sa OTA upgrades, ug esp local ctrl component para sa local device discovery ug connection. Kining tanan nga mga tumong mahimong makab-ot pinaagi sa yano nga pag-configure.
Pagproseso sa datos
i. Pagtipig sa mga sertipiko sa device nga gi-isyu sa Serbisyo sa Pag-angkon ug sa datos nga gikinahanglan sa pagpadagan sa RainMaker, pinaagi sa default gamit ang interface nga gihatag sa nvs flash component, ug paghatag og mga API alang sa mga developers alang sa direktang paggamit.
ii. Gamit ang mekanismo sa callback aron maproseso ang uplink/downlink cloud data ug awtomatikong i-unblock ang data ngadto sa application layer para sa sayon nga pagproseso sa mga developers. Kay exampSa pagkakaron, ang RainMaker SDK naghatag og daghang mga interface alang sa pag-establisar sa TSL (Thing Specification Language) nga datos, nga gikinahanglan sa paghubit sa mga modelo sa TSL aron ihulagway ang mga IoT device ug pagpatuman sa mga function sama sa timing, countdown, ug voice control. Para sa batakang interactive nga bahin sama sa timing, ang RainMaker SDK naghatag ug development-free nga solusyon nga mahimo ra kung gikinahanglan. Dayon, ang RainMaker Agent direktang magproseso sa datos, ipadala kini ngadto sa panganod pinaagi sa may kalabutan nga MQTT nga hilisgutan, ug ibalik ang mga pagbag-o sa datos sa cloud backend pinaagi sa mekanismo sa callback.
3.2.3 Cloud Backend
Ang cloud backend gitukod sa AWS Serverless Computing ug nakab-ot pinaagi sa AWS Cognito (identity management system), Amazon API Gateway, AWS Lambda (serverless computing service), Amazon DynamoDB (NoSQL database), AWS IoT Core (IoT access core nga naghatag ug MQTT access ug pagsala sa lagda), Amazon Simple Email Service (SES simple nga serbisyo sa mail), Amazon CloudFront (paspas nga delivery network), Amazon Simple Queue Service (SQS message queuing), ug Amazon S3 (bucket storage service). Kini gitumong aron ma-optimize ang scalability ug seguridad. Uban sa ESP RainMaker, ang mga developers makadumala sa mga device nga dili na kinahanglang magsulat og code sa cloud. Ang mga mensahe nga gitaho sa mga aparato klaro nga gipasa
Kapitulo 3. Pasiuna sa ESP RainMaker 23
mga kliyente sa aplikasyon o uban pang serbisyo sa ikatulo nga partido. Gipakita sa talaan 3.1 ang mga produkto sa panganod sa AWS ug mga gimbuhaton nga gigamit sa backend sa panganod, nga adunay daghang mga produkto ug mga bahin nga gipauswag.
Talaan 3.1. AWS cloud nga mga produkto ug function nga gigamit sa cloud backend
AWS Cloud Product nga Gigamit sa RainMaker
Kalihokan
AWS Cognito
Pagdumala sa mga kredensyal sa tiggamit ug pagsuporta sa mga pag-login sa ikatulo nga partido
AWS Lambda
Pag-implementar sa core business logic sa cloud backend
Ang Amazon Timestream Pagtipig sa datos sa serye sa oras
Amazon DynamoDB Pagtipig sa pribadong impormasyon sa mga kustomer
AWS IoT Core
Pagsuporta sa komunikasyon sa MQTT
Amazon SES
Paghatag serbisyo sa pagpadala sa email
Amazon CloudFront Pagpadali sa pagdumala sa backend webaccess sa site
Amazon SQS
Pagpasa sa mga mensahe gikan sa AWS IoT Core
3.2.4 Kliyente sa RainMaker
Ang mga kliyente sa RainMaker, sama sa App ug CLI, nakigkomunikar sa cloud backend pinaagi sa REST APIs. Ang detalyadong impormasyon ug instruksyon bahin sa REST APIs makita sa Swagger documentation nga gihatag ni Espressif. Ang kliyente sa mobile application sa RainMaker magamit alang sa iOS ug Android nga mga sistema. Gitugotan niini ang paghatag, pagkontrol, ug pagpaambit sa aparato, ingon man paghimo ug pagpagana sa mga buluhaton sa pag-ihap ug pagkonekta sa mga platform sa ikatulo nga partido. Mahimo kini nga awtomatiko nga magkarga sa UI ug mga icon sumala sa pagsumpo nga gitaho sa mga aparato ug hingpit nga ipakita ang aparato nga TSL.
Kay example, kung ang usa ka intelihenteng suga gitukod sa RainMaker SDK nga gihatag nga examples, ang icon ug UI sa bombilya nga suga awtomatik nga i-load kung makompleto na ang paghatag. Mahimong usbon sa mga tiggamit ang kolor ug kahayag sa kahayag pinaagi sa interface ug makab-ot ang kontrol sa ikatulo nga partido pinaagi sa pag-link sa Alexa Smart Home Skill o Google Smart Home Actions sa ilang ESP RainMaker accounts. Ang Figure 3.4 nagpakita sa icon ug UI exampgamay sa bulb light sa Alexa, Google Home, ug ESP RainMaker App.
24 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
(a) Exampug - Alexa
(b) Example – Google Home
(c) Example – ESP RainMaker
Hulagway 3.4. Exampgamay sa icon ug UI sa bulb light sa Alexa, Google Home, ug ESP RainMaker App
3.3 Praktisa: Panguna nga mga Punto alang sa Pagpalambo uban sa ESP RainMaker
Kung nahuman na ang layer sa driver sa aparato, mahimo’g magsugod ang mga developer sa paghimo og mga modelo sa TSL ug pagproseso sa data sa downlink gamit ang mga API nga gihatag sa RainMaker SDK, ug mahimo ang mga batakang serbisyo sa ESP RainMaker base sa kahulugan sa produkto ug mga kinahanglanon.
Kapitulo 3. Pasiuna sa ESP RainMaker 25
Ang Seksyon 9.4 niini nga libro magpatin-aw sa pagpatuman sa LED smart light sa RainMaker. Atol sa pag-debug, ang mga developers makagamit sa CLI tools sa RainMaker SDK aron makigkomunikar sa smart light (o tawagan ang REST APIs gikan sa Swagger).
Ang Kapitulo 10 magdetalye sa paggamit sa REST API sa pagpalambo sa mga aplikasyon sa smartphone. Ang mga pag-upgrade sa OTA sa LED smart nga mga suga matabonan sa Kapitulo 11. Kung ang mga developers nakahimo sa ESP Insights remote monitoring, ang ESP RainMaker management backend magpakita sa ESP Insights data. Ang mga detalye ipresentar sa Kapitulo 15.
Ang ESP RainMaker nagsuporta sa pribadong pag-deploy, nga lahi sa publikong RainMaker server sa mosunod nga mga paagi:
Serbisyo sa Pag-angkon Aron makamugna og mga sertipiko sa mga pribadong deployment, gikinahanglan nga gamiton ang RainMaker Admin CLI imbes nga Mag-claim. Uban sa publiko nga server, ang mga developer kinahanglan nga hatagan ug mga katungod sa admin aron ipatuman ang pag-upgrade sa firmware, apan kini dili gusto sa mga komersyal nga pag-deploy. Busa, wala'y lain nga serbisyo sa pag-authenticate ang mahatag alang sa pag-angkon sa kaugalingon, o mga katungod sa admin alang sa gimaneho sa host o gitabangan nga pag-angkon.
Mga app sa telepono Sa pribado nga pag-deploy, ang mga aplikasyon kinahanglan nga i-configure ug i-compile nga gilain aron masiguro nga ang mga sistema sa account dili interoperable.
Ang 3rd party logins ug voice integration Ang mga developers kinahanglang mag-configure nga gilain pinaagi sa Google ug Apple Developer accounts aron mahimo ang 3rd party logins, ingon man ang Alexa Skill ug Google Voice Assistant integration.
TIP Para sa mga detalye bahin sa cloud deployment, palihog bisitaha ang https://customer.rainmaker.espressif. com. Sa termino sa firmware, ang paglalin gikan sa publiko nga server ngadto sa pribado nga server nanginahanglan lamang pag-ilis sa mga sertipiko sa aparato, nga labi nga nagpauswag sa kahusayan sa paglalin ug nagpamenos sa gasto sa paglalin ug sekondaryang pag-debug.
3.4 Mga bahin sa ESP RainMaker
Ang mga feature sa ESP RainMaker kasagarang gipunting sa tulo ka aspeto – pagdumala sa user, end user, ug admins. Ang tanan nga mga bahin gisuportahan sa publiko ug pribado nga mga server gawas kung gipahayag.
3.4.1 Pagdumala sa Gumagamit
Ang mga bahin sa pagdumala sa tiggamit nagtugot sa mga end user nga magparehistro, mag-log in, mag-ilis sa mga password, makakuha og mga password, ug uban pa.
26 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Pagrehistro ug pag-log in Ang mga pamaagi sa pagrehistro ug pag-login nga gisuportahan sa RainMaker naglakip sa: · Email id + Password · Numero sa telepono + Password · Google account · Apple account · GitHub account (publiko nga server lamang) · Amazon account (pribado nga server lamang)
HINUMDOMI Pag-sign up gamit ang Google/Amazon nakigbahin sa email address sa user sa RainMaker. Pag-sign up gamit ang Apple nag-ambit sa usa ka dummy nga adres nga gihatag sa Apple alang sa tiggamit labi na alang sa serbisyo sa RainMaker. Ang usa ka RainMaker account awtomatik nga himoon alang sa mga tiggamit nga nag-sign in gamit ang Google, Apple, o Amazon nga account sa unang higayon.
Usba ang password Balido lang para sa Email id/Phone number based logins. Ang tanan nga uban nga aktibo nga mga sesyon ma-log out human mausab ang password. Sama sa pamatasan sa AWS Cognito, ang mga na-log-out nga mga sesyon mahimong magpabilin nga aktibo hangtod sa 1 ka oras.
Kuhaa ang password Balido lamang para sa Email id/Phone number based logins.
3.4.2 Mga Feature sa Katapusan nga Gumagamit
Ang mga feature nga bukas sa mga end user naglakip sa local ug remote control ug monitoring, scheduling, device grouping, device sharing, push notifications, ug third-party integrations.
Remote control ug monitoring · Query configuration, parameter values, ug connection status para sa usa o tanang device. · Itakda ang mga parameter alang sa usa o daghang mga aparato.
Ang lokal nga pagkontrol ug pagmonitor Ang mobile phone ug ang aparato kinahanglan nga konektado sa parehas nga network alang sa lokal nga kontrol.
Pag-iskedyul · Gitakda nang daan sa mga tiggamit ang pipila ka mga aksyon sa usa ka piho nga oras. · Wala’y koneksyon sa Internet nga gikinahanglan alang sa aparato samtang gipatuman ang iskedyul. · Usa ka higayon o balik-balik (pinaagi sa pagtino sa mga adlaw) alang sa usa o daghang mga aparato.
Pag-grupo sa aparato Nagsuporta sa daghang lebel nga abstract nga paggrupo Ang metadata sa grupo mahimong magamit sa paghimo og istruktura sa Home Room.
Kapitulo 3. Pasiuna sa ESP RainMaker 27
Pagpaambit sa device Usa o daghan pa nga mga device mahimong ipaambit sa usa o daghang tiggamit.
Push notifications Ang mga end user makadawat og push notifications para sa mga panghitabo sama sa · Bag-ong (mga) device nga gidugang/gitangtang · Device konektado sa cloud · Device nadisconnect gikan sa cloud · Device sharing requests nga gihimo/gidawat/gibalibaran · Alert messages nga gitaho sa mga device
Ang mga panagsama sa ikatulo nga partido Alexa ug Google Voice Assistant gisuportahan aron makontrol ang mga aparato sa RainMaker, lakip ang mga suga, switch, socket, fan, ug sensor sa temperatura.
3.4.3 Mga Feature sa Admin
Ang mga feature sa admin nagtugot sa mga administrador sa pagpatuman sa pagrehistro sa device, paggrupo sa device, ug pag-upgrade sa OTA, ug sa view estadistika ug datos sa ESP Insights.
Pagparehistro sa aparato Paghimo mga sertipiko sa aparato ug pagrehistro sa Admin CLI (pribado nga server lamang).
Pag-grupo sa device Paghimo abstract o structured nga mga grupo base sa impormasyon sa device (pribado nga server lamang).
Over-the-Air (OTA) upgrades I-upload ang firmware base sa bersyon ug modelo, ngadto sa usa o daghang device o grupo Monitor, cancel, o archive sa OTA nga mga trabaho.
View estadistika ViewAng makahimo nga estadistika naglakip sa: · Mga rehistro sa device (mga sertipiko nga narehistro sa admin) · Mga pagpaaktibo sa device (device konektado sa unang higayon) · Mga account sa user · asosasyon sa user-device
View Ang datos sa ESP Insights ViewAng makahimo nga datos sa ESP Insights naglakip sa: · Mga kasaypanan, pasidaan, ug custom nga mga log · Mga report ug pagtuki sa pag-crash · Mga rason sa pag-reboot · Mga sukdanan sama sa paggamit sa memorya, RSSI, ug uban pa · Custom metrics ug variables
28 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
3.5 Katingbanan
Niini nga kapitulo, among gipaila ang pipila ka mahinungdanong mga kalainan tali sa publiko nga pag-deploy sa RainMaker ug sa pribadong pag-deploy. Ang pribado nga solusyon sa ESP RainMaker nga gilansad sa Espressif kasaligan kaayo ug mapalapad. Ang tanan nga ESP32 series chips konektado ug gipahiangay sa AWS, nga makapamenos sa gasto. Ang mga developers mahimong mag-focus sa prototype nga pag-verify nga dili kinahanglan nga magkat-on bahin sa mga produkto sa AWS cloud. Gipatin-aw usab namo ang pagpatuman ug mga feature sa ESP RainMaker, ug pipila ka importanteng punto para sa kalamboan gamit ang plataporma.
I-scan aron ma-download ang ESP RainMaker para sa Android I-scan aron ma-download ang ESP RainMaker para sa iOS
Kapitulo 3. Pasiuna sa ESP RainMaker 29
30 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Pag-set up sa Kapitulo 4 Development Environment
Kini nga kapitulo nagtutok sa ESP-IDF, ang opisyal nga software development framework para sa ESP32-C3. Atong ipatin-aw kung giunsa ang pag-set up sa palibot sa lain-laing mga operating system, ug ipaila ang istruktura sa proyekto ug pagtukod sa sistema sa ESP-IDF, ingon man ang paggamit sa mga may kalabutan nga kagamitan sa pagpauswag. Dayon among ipresentar ang proseso sa pag-compile ug pagpadagan sa usa ka example proyekto, samtang nagtanyag sa usa ka detalyado nga katin-awan sa output log sa matag stage.
4.1 Nahuman ang ESP-IDFview
Ang ESP-IDF (Espressif IoT Development Framework) usa ka one-stop IoT development framework nga gihatag sa Espressif Technology. Gigamit niini ang C/C++ isip nag-unang pinulongan sa pag-uswag ug nagsuporta sa cross-compilation ubos sa mainstream operating system sama sa Linux, Mac, ug Windows. Ang exampAng mga programa nga gilakip niini nga libro gihimo gamit ang ESP-IDF, nga nagtanyag sa mosunod nga mga bahin: · SoC system-level drivers. Ang ESP-IDF naglakip sa mga drayber alang sa ESP32, ESP32-S2, ESP32-C3,
ug uban pang mga chips. Kini nga mga drayber naglangkob sa peripheral low level (LL) library, hardware abstraction layer (HAL) library, suporta sa RTOS ug upper-layer driver software, ug uban pa · Essential components. Ang ESP-IDF naglakip sa sukaranang mga sangkap nga gikinahanglan alang sa pagpalambo sa IoT. Naglakip kini sa daghang network protocol stack sama sa HTTP ug MQTT, usa ka power management framework nga adunay dinamikong frequency modulation, ug mga feature sama sa Flash Encryption ug Secure Boot, ug uban pa · Development and production tools. Ang ESP-IDF naghatag ug kasagarang gigamit nga mga himan alang sa pagtukod, pag-flash, ug pag-debug sa panahon sa pag-uswag ug mass production (tan-awa ang Figure 4.1), sama sa sistema sa pagtukod base sa CMake, ang cross-compilation tool chain base sa GCC, ug ang JTAG himan sa pag-debug base sa OpenOCD, ug uban pa. Angay nga matikdan nga ang ESP-IDF code nag-una nga nagsunod sa Apache 2.0 open-source nga lisensya. Ang mga tiggamit makahimo og personal o komersyal nga software nga walay mga pagdili samtang nagsunod sa mga termino sa open-source nga lisensya. Dugang pa, ang mga tiggamit gihatagan og permanenteng mga lisensya sa patent nga walay bayad, nga walay obligasyon sa pag-abli sa tinubdan sa bisan unsang mga kausaban nga gihimo sa source code.
31
Hulagway 4.1.
Pagtukod, pagkidlap, ug pag-debug-
galamiton alang sa kalamboan ug mass production
4.1.1 Mga Bersyon sa ESP-IDF
Ang ESP-IDF code gi-host sa GitHub isip usa ka open-source nga proyekto. Sa pagkakaron, adunay tulo ka dagkong bersyon nga anaa: v3, v4, ug v5. Ang matag mayor nga bersyon kasagarang adunay lain-laing mga subversion, sama sa v4.2, v4.3, ug uban pa. Ang Espressif Systems nagsiguro sa usa ka 30 ka bulan nga suporta alang sa mga pag-ayo sa bug ug mga patch sa seguridad alang sa matag gipagawas nga sub-bersyon. Busa, ang mga pagbag-o sa mga subbersyon gi-release usab kanunay, sama sa v4.3.1, v4.2.2, ug uban pa. Ang talaan 4.1 nagpakita sa kahimtang sa suporta sa lain-laing mga bersyon sa ESP-IDF alang sa mga chips sa Espressif, nga nagpakita kon sila anaa sa usa ka preview stage (nagtanyag og suporta alang sa preview mga bersyon, nga mahimong kulang sa pipila ka bahin o dokumentasyon) o opisyal nga gisuportahan.
Talaan 4.1. Suporta sa status sa lain-laing ESP-IDF nga bersyon para sa Espressif chips
Serye ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 gisuportahan
v4.2 gisuportahan gisuportahan
v4.3 gisuportahan gisuportahan gisuportahan gisuportahan
v4.4 gisuportahan gisuportahan gisuportahan gisuportahan gisuportahan
preview
v5.0 gisuportahan gisuportahan gisuportahan gisuportahan gisuportahan gisuportahan preview
32 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Ang pag-uli sa dagkong mga bersyon kasagaran naglakip sa mga kausaban sa gambalay sa gambalay ug mga update sa sistema sa pagtipon. Kay example, ang dakong kausaban gikan sa v3.* ngadto sa v4.* mao ang anam-anam nga paglalin sa build system gikan sa Make ngadto sa CMake. Sa laing bahin, ang pag-uli sa mga menor de edad nga mga bersyon kasagaran naglakip sa pagdugang sa mga bag-ong feature o suporta alang sa bag-ong mga chips.
Importante nga mailhan ug masabtan ang relasyon tali sa mga stable nga bersyon ug mga sanga sa GitHub. Ang mga bersyon nga gimarkahan nga v*.* o v*.*.* nagrepresentar sa mga stable nga bersyon nga nakapasar sa kompleto nga internal nga pagsulay sa Espressif. Kung naayo na, ang code, kadena sa himan, ug pagpagawas sa mga dokumento alang sa parehas nga bersyon nagpabilin nga wala mausab. Bisan pa, ang mga sanga sa GitHub (pananglitan, ang sanga sa pagpagawas/v4.3) nag-agi sa kanunay nga pag-commit sa code, kanunay matag adlaw. Busa, ang duha ka snippet sa code ubos sa samang sanga mahimong magkalahi, nga nagkinahanglan sa mga developers sa pag-update dayon sa ilang code sumala niana.
4.1.2 ESP-IDF Git Workflow
Ang Espressif nagsunod sa usa ka piho nga Git workflow alang sa ESP-IDF, nga gilatid sama sa mosunod:
· Bag-ong mga pagbag-o gihimo sa master branch, nga nagsilbi nga nag-unang development branch. Ang ESP-IDF nga bersyon sa master branch kanunay nga nagdala og -dev tag aron ipakita nga kini sa pagkakaron ubos sa pagpalambo, sama sa v4.3-dev. Ang mga pagbag-o sa master branch una nga reviewed ug gisulayan sa internal nga tipiganan sa Espressif, ug dayon giduso ngadto sa GitHub human makompleto ang automated testing.
· Sa higayon nga ang usa ka bag-ong bersyon nakakompleto sa feature development sa master branch ug nakab-ot ang criteria sa pagsulod sa beta testing, kini mobalhin ngadto sa bag-ong branch, sama sa release/v4.3. Dugang pa, kining bag-ong sanga mao ang tagged isip pre-release nga bersyon, sama sa v4.3-beta1. Ang mga developers mahimong mag-refer sa GitHub platform aron ma-access ang kompletong listahan sa mga branch ug tags alang sa ESP-IDF. Mahinungdanon nga timan-an nga ang beta nga bersyon (pre-release nga bersyon) mahimo pa nga adunay daghang daghang nahibal-an nga mga isyu. Samtang ang beta nga bersyon nag-agi sa padayon nga pagsulay, ang mga pag-ayo sa bug gidugang sa kini nga bersyon ug sa master branch nga dungan. Sa kasamtangan, ang master branch tingali nagsugod na sa paghimo og bag-ong mga feature para sa sunod nga bersyon. Kung hapit na makompleto ang pagsulay, usa ka label sa kandidato sa pagpagawas (rc) idugang sa sanga, nga nagpakita nga kini usa ka potensyal nga kandidato alang sa opisyal nga pagpagawas, sama sa v4.3-rc1. Niini nga stage, ang sanga nagpabilin nga usa ka pre-release nga bersyon.
· Kung walay dagkong mga bug ang nadiskobrehan o gitaho, ang pre-release nga bersyon sa kadugayan makadawat ug major version label (eg, v5.0) o minor version label (eg, v4.3) ug mahimong opisyal nga release version, nga gidokumento. sa panid sa mga nota sa pagpagawas. Pagkahuman, ang bisan unsang mga bug nga nahibal-an sa kini nga bersyon gitakda sa sanga sa pagpagawas. Human makompleto ang manual testing, ang branch gihatagan og bug-fix version label (eg, v4.3.2), nga makita usab sa release notes page.
Kapitulo 4. Pag-set up sa Development Environment 33
4.1.3 Pagpili ug Angay nga Bersyon
Sukad nga opisyal nga gisugdan sa ESP-IDF ang pagsuporta sa ESP32-C3 gikan sa bersyon v4.3, ug ang v4.4 wala pa opisyal nga gipagawas sa panahon sa pagsulat niini nga libro, ang bersyon nga gigamit niini nga libro mao ang v4.3.2, nga usa ka giusab nga bersyon sa v4.3. Apan, importante nga timan-an nga sa panahon nga imong basahon kini nga libro, ang v4.4 o mas bag-ong mga bersyon mahimong magamit na. Kung nagpili usa ka bersyon, girekomenda namon ang mosunod:
· Para sa entry-level developers, mas maayo nga pilion ang stable v4.3 version o ang revised version niini, nga mohaom sa ex.ampang bersyon nga gigamit niini nga libro.
· Alang sa mga katuyoan sa mass production, girekomenda nga gamiton ang pinakabag-o nga stable nga bersyon aron makabenepisyo gikan sa pinakabag-o nga teknikal nga suporta.
· Kung gusto nimo nga mag-eksperimento sa bag-ong mga chips o mag-usisa sa bag-ong mga bahin sa produkto, palihug gamita ang master branch. Ang pinakabag-o nga bersyon naglangkob sa tanan nga labing bag-o nga mga bahin, apan hinumdomi nga mahimo’g adunay nahibal-an o wala mailhi nga mga bug nga naa.
· Kung ang stable nga bersyon nga gigamit wala maglakip sa gitinguha nga bag-ong mga bahin ug gusto nimo nga mamenosan ang mga risgo nga nalangkit sa master nga sanga, hunahunaa ang paggamit sa katugbang nga sanga sa pagpagawas, sama sa sanga sa pagpagawas/v4.4. Ang GitHub repository sa Espressif una nga maghimo sa release/v4.4 nga sanga ug dayon buhian ang stable nga v4.4 nga bersyon base sa usa ka piho nga historikal nga snapshot niini nga sanga, human makompleto ang tanang feature development ug testing.
4.1.4 Labawview sa ESP-IDF SDK Directory
Ang ESP-IDF SDK naglangkob sa duha ka nag-unang direktoryo: esp-idf ug .espressif. Ang nahauna naglangkob sa ESP-IDF repository's source code files ug compilation scripts, samtang ang ulahi nag-una nga nagtipig sa mga compilation tool chain ug uban pang software. Ang pagkapamilyar niining duha ka mga direktoryo makatabang sa mga developers nga mas maayo nga magamit ang anaa nga mga kapanguhaan ug mapadali ang proseso sa pagpalambo. Ang istruktura sa direktoryo sa ESP-IDF gihulagway sa ubos:
(1) ESP-IDF repository code directory (/esp/esp-idf), sama sa gipakita sa Figure 4.2.
a. Mga sangkap sa direktoryo sa sangkap
Kining kinauyokan nga direktoryo naghiusa sa daghang importanteng sangkap sa software sa ESP-IDF. Walay project code ang ma-compile nga dili magsalig sa mga component sulod niini nga direktoryo. Naglakip kini sa suporta sa drayber alang sa lainlaing mga chips sa Espressif. Gikan sa librarya sa LL ug mga interface sa librarya sa HAL alang sa mga peripheral hangtod sa taas nga lebel nga Driver ug Virtual File System (VFS) layer nga suporta, ang mga developers makapili sa angay nga mga sangkap sa lain-laing lebel alang sa ilang mga panginahanglan sa pag-uswag. Gisuportahan usab sa ESP-IDF ang daghang standard network protocol stacks sama sa TCP/IP, HTTP, MQTT, WebSocket, ug uban pa. Ang mga developers makagamit sa pamilyar nga mga interface sama sa Socket sa paghimo og mga aplikasyon sa network. Ang mga sangkap naghatag og pagsabot-
34 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Hulagway 4.2. Direktoryo sa ESP-IDF repository code
sive functionality ug dali nga ma-integrate sa mga aplikasyon, nga magtugot sa mga developers nga mag-focus lang sa business logic. Ang pipila ka kasagarang mga sangkap naglakip sa: · drayber: Kini nga sangkap adunay mga programa sa pagmaneho sa peripheral alang sa lainlaing Espressif
serye sa chip, sama sa GPIO, I2C, SPI, UART, LEDC (PWM), ug uban pa. Ang matag peripheral adunay usa ka komon nga ulohan file (sama sa gpio.h), pagwagtang sa panginahanglan sa pag-atubang sa lain-laing chip-spesipikong mga pangutana sa suporta. · esp_wifi: Ang Wi-Fi, isip usa ka espesyal nga peripheral, giisip nga usa ka bulag nga sangkap. Naglakip kini sa daghang mga API sama sa pagsugod sa lainlaing mga mode sa drayber sa Wi-Fi, pagsumpo sa parameter, ug pagproseso sa panghitabo. Ang pila ka mga gimbuhaton niini nga sangkap gihatag sa porma sa static link library. Naghatag usab ang ESP-IDF og komprehensibo nga dokumentasyon sa drayber alang sa kadali sa paggamit.
Kapitulo 4. Pag-set up sa Development Environment 35
· freertos: Kini nga component naglangkob sa kompleto nga FreeRTOS code. Gawas sa paghatag og komprehensibo nga suporta alang sa kini nga operating system, ang Espressif nagpalapad usab sa suporta niini ngadto sa dual-core chips. Alang sa dual-core chips sama sa ESP32 ug ESP32-S3, ang mga tiggamit makahimo og mga buluhaton sa piho nga mga cores.
b. Mga doc sa direktoryo sa dokumento
Kini nga direktoryo naglangkob sa ESP-IDF nga may kalabutan nga mga dokumento sa pag-uswag, lakip ang Giya sa Pagsugod, Manual sa Reference sa API, Giya sa Pag-uswag, ug uban pa.
PAHINUMDOM Human ma-compile pinaagi sa mga automated nga himan, ang mga sulod niini nga direktoryo i-deploy sa https://docs.espressif.com/projects/esp-idf. Palihug siguruha nga ibalhin ang target sa dokumento sa ESP32-C3 ug pilia ang piho nga bersyon sa ESP-IDF.
c. Mga himan sa script
Kini nga direktoryo naglangkob sa kasagarang gigamit nga compilation front-end nga mga himan sama sa idf.py, ug ang monitor terminal tool idf_monitor.py, ug uban pa. Ang sub-directory nga cmake naglakip usab sa core script files sa compilation system, nagsilbi nga pundasyon sa pagpatuman sa ESP-IDF compilation rules. Kung gidugang ang mga variable sa palibot, ang mga sulud sa sulod sa direktoryo sa mga himan idugang sa variable sa palibot sa sistema, nga gitugotan ang idf.py nga ipatuman direkta sa ilawom sa agianan sa proyekto.
d. Exampang direktoryo sa programa examples
Kini nga direktoryo naglangkob sa usa ka halapad nga koleksyon sa ESP-IDF exampAng mga programa nga nagpakita sa paggamit sa mga component API. Ang exampAng mga les giorganisar sa lainlaing mga subdirektoryo base sa ilang mga kategorya:
· pagsugod: Kini nga sub-direktoryo naglakip sa entry-level exampsama sa "hello world" ug "blink" aron matabangan ang mga tiggamit nga masabtan ang mga sukaranan.
· bluetooth: Makita nimo ang Bluetooth nga may kalabutan sa examples dinhi, lakip ang Bluetooth LE Mesh, Bluetooth LE HID, BluFi, ug uban pa.
· wifi: Kini nga sub-direktoryo nagtutok sa Wi-Fi examples, lakip ang mga batakang programa sama sa Wi-Fi SoftAP, Wi-Fi Station, espnow, ingon man ang proprietary communication protocol examples gikan sa Espressif. Naglakip usab kini sa daghang layer sa aplikasyon examples base sa Wi-Fi, sama sa Iperf, Sniffer, ug Smart Config.
· mga peripheral: Kining halapad nga sub-direktoryo gibahin pa ngadto sa daghang mga subfolder base sa peripheral nga mga ngalan. Nag-una kini nga adunay peripheral driver examples alang sa Espressif chips, sa matag example nga adunay daghang mga sub-examples. Pananglitan, ang gpio sub-direktoryo naglakip sa duha ka examples: GPIO ug GPIO matrix keyboard. Importante nga timan-an nga dili tanan exampAng mga les niini nga direktoryo magamit sa ESP32-C3.
36 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Kay example, ang examples sa usb/host magamit ra sa mga peripheral nga adunay USB Host hardware (sama sa ESP32-S3), ug ang ESP32-C3 wala niini nga peripheral. Ang sistema sa pag-compile kasagarang naghatag mga pag-aghat kung nagtakda sa target. Ang README file sa matag exampGilista sa le ang gisuportahan nga mga chips. · mga protocol: Kini nga sub-direktoryo adunay examples alang sa lainlaing mga protocol sa komunikasyon, lakip ang MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, nga naglangkob sa usa ka halapad nga protocol sa komunikasyon exampgikinahanglan alang sa IoT development. · provisioning: Dinhi, imong makita ang provisioning examples alang sa lain-laing mga pamaagi, sama sa Wi-Fi provisioning ug Bluetooth LE provisioning. · sistema: Kini nga sub-direktoryo naglakip sa sistema sa pag-debug examples (eg, stack tracing, runtime tracing, task monitoring), power management examples (pananglitan, lain-laing mga sleep mode, co-processors), ug examples nga may kalabutan sa komon nga mga sangkap sa sistema sama sa console terminal, event loop, ug system timer. · pagtipig: Sulod niining sub-direktoryo, imong madiskobrehan ang examples sa tanan file sistema ug mga mekanismo sa pagtipig nga gisuportahan sa ESP-IDF (sama sa pagbasa ug pagsulat sa Flash, SD card ug uban pang storage media), ingon man usab sa examples sa non-volatile storage (NVS), FatFS, SPIFFS ug uban pa file mga operasyon sa sistema. · seguridad: Kini nga sub-direktoryo adunay examples nga may kalabutan sa flash encryption. (2) ESP-IDF compilation tool chain directory (/.espressif), ingon sa gipakita sa Figure 4.3.
Hulagway 4.3. ESP-IDF compilation tool chain directory
Kapitulo 4. Pag-set up sa Development Environment 37
a. Direktoryo sa pag-apod-apod sa software dist
Ang ESP-IDF tool chain ug uban pang software gipang-apod-apod sa porma sa mga compressed packages. Atol sa proseso sa pag-instalar, ang himan sa pag-install una nga nag-download sa gi-compress nga pakete sa dist nga direktoryo, ug dayon gikuha kini sa gitakda nga direktoryo. Kung kompleto na ang pag-install, ang mga sulud sa kini nga direktoryo mahimong luwas nga makuha.
b. Python virtual environment directory python env
Ang lainlaing mga bersyon sa ESP-IDF nagsalig sa piho nga mga bersyon sa mga pakete sa Python. Ang pag-install niini nga mga pakete direkta sa parehas nga host mahimong mosangput sa mga panagsumpaki tali sa mga bersyon sa pakete. Aron matubag kini, ang ESP-IDF naggamit sa Python virtual nga palibot aron ihimulag ang lain-laing mga bersyon sa pakete. Uban niini nga mekanismo, ang mga developers maka-install ug daghang mga bersyon sa ESP-IDF sa samang host ug dali nga magbalhinbalhin tali kanila pinaagi sa pag-import sa lain-laing mga variable sa palibot.
c. ESP-IDF compilation tool chain directory tools
Kini nga direktoryo nag-una nga adunay mga cross-compilation nga mga himan nga gikinahanglan sa pag-compile sa mga proyekto sa ESP-IDF, sama sa CMake tools, Ninja build tools, ug ang gcc tool chain nga nagmugna sa katapusang executable nga programa. Dugang pa, kini nga direktoryo nagbutang sa standard nga librarya sa C/C++ nga pinulongan uban sa katugbang nga header files. Kung ang usa ka programa nag-refer sa usa ka header sa sistema file sama sa #apil , ang compilation tool chain mangita sa stdio.h file sulod niini nga direktoryo.
4.2 Pag-set up sa ESP-IDF Development Environment
Ang ESP-IDF development environment nagsuporta sa mainstream operating system sama sa Windows, Linux, ug macOS. Kini nga seksyon magpaila kon unsaon pag-set up ang development environment sa matag sistema. Girekomenda nga pauswagon ang ESP32-C3 sa sistema sa Linux, nga ipaila sa detalye dinhi. Daghang mga panudlo ang magamit sa mga platform tungod sa pagkaparehas sa mga himan sa pag-uswag. Busa, gitambagan nga basahon pag-ayo ang sulod niini nga seksyon.
PAHINUMDOM Mahimo nimong i-refer ang mga online nga dokumento nga anaa sa https://bookc3.espressif.com/esp32c3, nga naghatag sa mga sugo nga gihisgutan niini nga seksyon.
4.2.1 Pag-set up sa ESP-IDF Development Environment sa Linux
Ang GNU development ug debugging nga mga himan nga gikinahanglan alang sa ESP-IDF development environment lumad sa Linux system. Dugang pa, ang command-line terminal sa Linux gamhanan ug user-friendly, nga naghimo niini nga usa ka sulundon nga pagpili alang sa ESP32-C3 development. Mahimo nimo
38 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
pilia ang imong gusto nga pag-apod-apod sa Linux, apan girekomenda namon ang paggamit sa Ubuntu o uban pang mga sistema nga nakabase sa Debian. Kini nga seksyon naghatag giya sa pag-set up sa ESP-IDF development environment sa Ubuntu 20.04.
1. I-install ang gikinahanglan nga mga pakete
Ablihi ang usa ka bag-ong terminal ug ipatuman ang mosunud nga mando aron ma-install ang tanan nga kinahanglan nga mga pakete. Awtomatiko nga laktawan sa mando ang mga pakete nga na-install na.
$ 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
TIP Kinahanglan nimong gamiton ang administrator account ug password alang sa sugo sa ibabaw. Sa kasagaran, walay impormasyon nga ipakita sa pagsulod sa password. Pindota lang ang "Enter" key aron ipadayon ang pamaagi.
Ang Git usa ka hinungdanon nga himan sa pagdumala sa code sa ESP-IDF. Human sa malampuson nga pag-set up sa development environment, mahimo nimong gamiton ang git log command sa view tanan nga mga pagbag-o sa code nga nahimo sukad sa paghimo sa ESP-IDF. Dugang pa, ang Git gigamit usab sa ESP-IDF aron pagkumpirma sa impormasyon sa bersyon, nga gikinahanglan alang sa pag-instalar sa husto nga kadena sa himan nga katumbas sa piho nga mga bersyon. Kauban sa Git, ang uban pang hinungdanon nga mga himan sa sistema naglakip sa Python. Ang ESP-IDF naglakip sa daghang mga script sa automation nga gisulat sa Python. Ang mga himan sama sa CMake, Ninja-build, ug Ccache kaylap nga gigamit sa C/C++ nga mga proyekto ug nagsilbing default code compilation ug building tools sa ESP-IDF. Ang libusb-1.0-0 ug dfu-util mao ang nag-unang mga drayber nga gigamit alang sa USB serial communication ug firmware burning. Kung ma-install na ang software packages, mahimo nimong gamiton ang apt show sugo aron makakuha og detalyadong mga deskripsyon sa matag pakete. Kay example, gamita ang apt show git aron i-print ang kasayuran sa paghulagway alang sa tool sa Git.
P: Unsa ang buhaton kung ang bersyon sa Python dili suportado? A: Ang ESP-IDF v4.3 nanginahanglan ug bersyon sa Python nga dili ubos sa v3.6. Para sa mga daan nga bersyon sa Ubuntu, palihug i-download ug i-install ang mas taas nga bersyon sa Python ug itakda ang Python3 isip default nga Python environment. Makita nimo ang detalyado nga mga panudlo pinaagi sa pagpangita sa keyword update-alternatives python.
2. I-download ang ESP-IDF repository code
Ablihi ang usa ka terminal ug paghimo usa ka folder nga ginganlag esp sa imong home directory gamit ang mkdir command. Makapili ka ug lain nga ngalan alang sa folder kung gusto nimo. Gamita ang cd command sa pagsulod sa folder.
Kapitulo 4. Pag-set up sa Development Environment 39
$ mkdir -p / esp $ cd / esp
Gamita ang git clone command aron ma-download ang ESP-IDF repository code, sama sa gipakita sa ubos:
$ git clone -b v4.3.2 –recursive https://github.com/espressif/esp-idf.git
Sa sugo sa ibabaw, ang parameter -b v4.3.2 nagtino sa bersyon nga i-download (sa kini nga kaso, bersyon 4.3.2). Ang parameter -recursive nagsiguro nga ang tanan nga mga sub-repositories sa ESP-IDF ma-download nga recursively. Ang impormasyon bahin sa mga sub-repositories makita sa .gitmodules file.
3. I-install ang ESP-IDF development tool chain
Naghatag ang Espressif og automated script install.sh aron i-download ug i-install ang tool chain. Gisusi niini nga script ang kasamtangang bersyon sa ESP-IDF ug palibot sa operating system, ug dayon i-download ug i-install ang angay nga bersyon sa Python tool packages ug compilation tool chain. Ang default nga agianan sa pag-instalar alang sa kadena sa himan mao ang /.espressif. Ang kinahanglan nimong buhaton mao ang pag-navigate sa direktoryo sa esp-idf ug pagdagan ang install.sh.
$ cd /esp/esp-idf $ ./install.sh
Kung malampuson nimo nga i-install ang tool chain, ang terminal magpakita:
Nahuman na ang tanan!
Niini nga punto, malampuson nimong na-set up ang ESP-IDF development environment.
4.2.2 Pag-set up sa ESP-IDF Development Environment sa Windows
1. I-download ang ESP-IDF tools installer
TIP Girekomenda nga i-set up ang ESP-IDF development environment sa Windows 10 o labaw pa. Mahimo nimong i-download ang installer gikan sa https://dl.espressif.com/dl/esp-idf/. Ang installer usa usab ka open-source nga software, ug ang source code niini mahimong viewed sa https: //github.com/espressif/idf-installer.
· Online nga ESP-IDF tool installer
Kini nga installer medyo gamay, mga 4 MB ang gidak-on, ug ang ubang mga pakete ug code ma-download sa panahon sa proseso sa pag-instalar. Ang advantage sa online installer mao nga dili lamang ma-download ang mga software packages ug code kung gikinahanglan sa panahon sa proseso sa pag-instalar, apan gitugotan usab ang pag-instalar sa tanan nga magamit nga pagpagawas sa ESP-IDF ug ang pinakabag-o nga sanga sa GitHub code (sama sa master branch) . Ang disadvantage mao nga kini nanginahanglan usa ka koneksyon sa network sa panahon sa proseso sa pag-install, nga mahimong hinungdan sa pagkapakyas sa pag-install tungod sa mga problema sa network.
40 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
· Offline nga ESP-IDF tools installer Mas dako kini nga installer, mga 1 GB ang gidak-on, ug naglangkob sa tanang software packages ug code nga gikinahanglan para sa environment set up. Ang nag-unang advantage sa offline installer mao nga kini magamit sa mga kompyuter nga walay akses sa Internet, ug sa kasagaran adunay mas taas nga sukod sa kalampusan sa pag-instalar. Kinahanglang hinumdoman nga ang offline installer mahimo lamang mag-instalar sa mga stable nga pagpagawas sa ESP-IDF nga giila sa v*.* o v*.*.*.
2. Pagdalagan ang ESP-IDF tool installer Human ma-download ang angay nga bersyon sa installer (kuhaa ang ESP-IDF Tools Offline 4.3.2 para sa example dinhi), pag-double click sa exe file aron ilunsad ang interface sa pag-install sa ESP-IDF. Ang mosunod nagpakita kon unsaon pag-instalar sa ESP-IDF stable nga bersyon v4.3.2 gamit ang offline installer.
(1) Sa interface nga "Select installation language" nga gipakita sa Figure 4.4, pilia ang lengguwahe nga gamiton gikan sa drop-down list.
Hulagway 4.4. “Select installation language” interface (2) Human mapili ang lengguwahe, i-klik ang “OK” aron i-pop up ang “License agreement” interface
(tan-awa ang Figure 4.5). Human sa maampingong pagbasa sa kasabutan sa lisensya sa pag-instalar, pilia ang "Gidawat ko ang kasabutan" ug i-klik ang "Sunod".
Hulagway 4.5. “License agreement” interface Kapitulo 4. Pag-set up sa Development Environment 41
(3) Review ang pagsumpo sa sistema sa interface nga "Pre-installation system check" (tan-awa ang Figure 4.6). Susiha ang bersyon sa Windows ug ang na-install nga impormasyon sa antivirus software. I-klik ang "Sunod" kung normal ang tanan nga mga butang sa pag-configure. Kung dili, mahimo nimong i-klik ang "Full log" alang sa mga solusyon nga gibase sa yawe nga mga butang.
Hulagway 4.6. "System check before installation" interface TIPS
Mahimo nimong isumite ang mga log sa https://github.com/espressif/idf-installer/issues alang sa tabang. (4) Pilia ang direktoryo sa pag-install sa ESP-IDF. Dinhi, pilia ang D:/.espressif, ingon sa gipakita sa
Figure 4.7, ug i-klik ang "Next". Palihug timan-i nga ang .espressif dinhi usa ka tinago nga direktoryo. Human makompleto ang pag-instalar, mahimo nimo view ang piho nga mga sulod niini nga direktoryo pinaagi sa pag-abli sa file manager ug pagpakita sa mga tinago nga mga butang.
Hulagway 4.7. Pilia ang direktoryo sa pag-install sa ESP-IDF 42 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
(5) Susiha ang mga sangkap nga kinahanglan i-install, ingon sa gipakita sa Figure 4.8. Girekomenda nga gamiton ang default nga kapilian, nga mao, kompleto nga pag-install, ug dayon i-klik ang "Sunod".
Hulagway 4.8. Pilia ang mga sangkap nga i-install (6) Kumpirma ang mga sangkap nga i-install ug i-klik ang "Install" aron masugdan ang awtomatikong pag-in-
proseso sa pagpahunong, sama sa gipakita sa Figure 4.9. Ang proseso sa pag-instalar mahimong molungtad ug napulo ka minuto ug ang progress bar sa proseso sa pag-install gipakita sa Figure 4.10. Palihug paghulat nga mapailubon.
Hulagway 4.9. Pag-andam alang sa pag-instalar (7) Human makompleto ang pag-instalar, girekomenda nga susihon ang "Rehistro ang ESP-IDF
Tools executables as Windows Defender exclusions…” aron mapugngan ang antivirus software gikan sa pagtangtang files. Ang pagdugang sa mga butang nga dili iapil mahimo usab nga laktawan ang kanunay nga pag-scan sa antivirus
Kapitulo 4. Pag-set up sa Development Environment 43
Hulagway 4.10. Ang software sa pag-uswag sa pag-install sa bar, labi nga nagpauswag sa kahusayan sa pag-compile sa code sa sistema sa Windows. I-klik ang "Finish" aron makompleto ang pag-instalar sa development environment, sama sa gipakita sa Figure 4.11. Mahimo nimong pilion nga susihon ang "Run ESP-IDF PowerShell environment" o "Run ESP-IDF command prompt". Pagdalagan ang compilation window direkta human sa pag-instalar aron masiguro nga ang development environment normal nga naglihok.
Hulagway 4.11. Nakompleto ang pag-instalar (8) Ablihi ang na-install nga development environment sa lista sa programa (bisan ang ESP-IDF 4.3
CMD o ESP-IDF 4.3 PowerShell terminal, sama sa gipakita sa Figure 4.12), ug ang ESP-IDF environment variable awtomatikong idugang sa diha nga nagdagan sa terminal. Human niana, mahimo nimong gamiton ang idf.py nga sugo alang sa mga operasyon. Ang giablihan nga ESP-IDF 4.3 CMD gipakita sa Figure 4.13. 44 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Hulagway 4.12. Gi-install nga palibot sa pag-uswag
Hulagway 4.13. ESP-IDF 4.3 CMD
4.2.3 Pag-set up sa ESP-IDF Development Environment sa Mac
Ang proseso sa pag-instalar sa ESP-IDF development environment sa Mac system pareho ra sa Linux system. Ang mga sugo alang sa pag-download sa repository code ug pag-instalar sa tool chain parehas ra. Ang mga sugo lamang alang sa pag-instalar sa mga pakete sa dependency ang gamay nga lahi. 1. I-install ang dependency packages Ablihi ang terminal, ug i-install ang pip, ang Python package management tool, pinaagi sa pagpadagan sa mosunod nga command:
% sudo dali nga pag-install pip
I-install ang Homebrew, usa ka himan sa pagdumala sa package alang sa macOS, pinaagi sa pagpadagan sa mosunod nga sugo:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
I-install ang gikinahanglan nga dependency packages pinaagi sa pagpadagan sa mosunod nga sugo:
% brew python3 instalar cmake ninja ccache dfu-util
2. I-download ang ESP-IDF repository code Sunda ang mga instruksiyon nga gihatag sa seksyon 4.2.1 aron ma-download ang ESP-IDF repository code. Ang mga lakang parehas sa pag-download sa usa ka sistema sa Linux.
Kapitulo 4. Pag-set up sa Development Environment 45
3. I-install ang ESP-IDF development tool chain
Sunda ang mga instruksyon nga gihatag sa seksyon 4.2.1 aron i-install ang ESP-IDF development tool chain. Ang mga lakang parehas sa pag-install sa usa ka sistema sa Linux.
4.2.4 Pag-instalar sa VS Code
Sa kasagaran, ang ESP-IDF SDK wala maglakip sa usa ka himan sa pag-edit sa code (bisan pa ang pinakabag-o nga ESP-IDF installer alang sa Windows nagtanyag sa opsyon sa pag-instalar sa ESP-IDF Eclipse). Mahimo nimong gamiton ang bisan unsang himan sa pag-edit sa teksto nga imong gusto aron ma-edit ang code ug dayon i-compile kini gamit ang mga terminal command.
Usa ka sikat nga himan sa pag-edit sa code mao ang VS Code (Visual Studio Code), nga usa ka libre ug adunay daghang feature nga code editor nga adunay user-friendly interface. Nagtanyag kini og lainlain plugins nga naghatag og mga gamit sama sa code navigation, syntax highlighting, Git version control, ug terminal integration. Dugang pa, ang Espressif nakahimo og usa ka dedikado nga plugin nga gitawag og Espressif IDF alang sa VS Code, nga nagpasimple sa pag-configure sa proyekto ug pag-debug.
Mahimo nimong gamiton ang code command sa terminal aron dali nga maablihan ang kasamtangan nga folder sa VS Code. Sa laing paagi, mahimo nimong gamiton ang shortcut nga Ctrl+ aron maablihan ang default terminal console sa sistema sulod sa VS Code.
TIP Girekomenda nga gamiton ang VS Code para sa ESP32-C3 code development. I-download ug i-install ang pinakabag-o nga bersyon sa VS Code sa https://code.visualstudio.com/.
4.2.5 Pasiuna sa Third-Party Development Environments
Dugang pa sa opisyal nga ESP-IDF development environment, nga sa panguna naggamit sa C nga lengguwahe, ang ESP32-C3 nagsuporta usab sa ubang mainstream programming language ug usa ka halapad nga mga third-party development environment. Ang pipila ka talagsaong mga kapilian naglakip sa:
Arduino: usa ka open-source nga plataporma alang sa hardware ug software, nga nagsuporta sa nagkalain-laing microcontrollers, lakip ang ESP32-C3.
Gigamit niini ang C++ nga lengguwahe ug nagtanyag og gipasimple ug standardized nga API, nga sagad gitawag nga Arduino nga pinulongan. Ang Arduino kaylap nga gigamit sa prototype development ug educational contexts. Naghatag kini usa ka extensible software package ug usa ka IDE nga nagtugot alang sa dali nga pag-compile ug pag-flash.
MicroPython: usa ka Python 3 nga tighubad sa lengguwahe nga gilaraw nga modagan sa naka-embed nga microcontroller nga mga platform.
Uban sa usa ka yano nga script nga pinulongan, kini direkta nga maka-access sa ESP32-C3's peripheral resources (sama sa UART, SPI, ug I2C) ug mga function sa komunikasyon (sama sa Wi-Fi ug Bluetooth LE).
46 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
Gipasimple niini ang interaksyon sa hardware. Ang MicroPython, inubanan sa kaylap nga mathematical operation library sa Python, nagtugot sa pagpatuman sa mga komplikadong algorithm sa ESP32-C3, nga nagpadali sa pagpalambo sa AI-related nga mga aplikasyon. Isip usa ka lengguwahe sa script, dili na kinahanglan ang balik-balik nga pag-compile; Ang mga pagbag-o mahimo nga mahimo ug ang mga script mahimong direkta nga ipatuman.
NodeMCU: usa ka LUA nga tighubad sa lengguwahe nga gimugna alang sa ESP series chips.
Gisuportahan niini ang hapit tanan nga mga peripheral function sa ESP chips ug mas gaan kaysa MicroPython. Sama sa MicroPython, ang NodeMCU naggamit sa usa ka script nga pinulongan, nga nagwagtang sa panginahanglan alang sa balik-balik nga paghugpong.
Dugang pa, ang ESP32-C3 nagsuporta usab sa NuttX ug Zephyr operating system. Ang NuttX usa ka real-time nga operating system nga naghatag ug POSIX-compatible nga mga interface, nga nagpauswag sa kadali sa aplikasyon. Ang Zephyr usa ka gamay nga real-time nga operating system nga espesipikong gidisenyo alang sa mga aplikasyon sa IoT. Naglakip kini sa daghang mga librarya sa software nga gikinahanglan sa pag-uswag sa IoT, nga anam-anam nga nag-uswag sa usa ka komprehensibo nga ekosistema sa software.
Kini nga libro wala maghatag ug detalyado nga mga panudlo sa pag-install para sa nahisgutan nga mga palibot sa pag-uswag. Mahimo nimong i-install ang usa ka palibot sa pag-uswag base sa imong mga kinahanglanon pinaagi sa pagsunod sa tagsa-tagsa nga dokumentasyon ug mga panudlo.
4.3 ESP-IDF Compilation System
4.3.1 Sukaranan nga mga Konsepto sa Compilation System
Ang ESP-IDF nga proyekto usa ka koleksyon sa usa ka nag-unang programa nga adunay entry function ug daghang independente nga functional component. Kay example, usa ka proyekto nga nagkontrol sa LED switch nag-una naglangkob sa usa ka entry program main ug usa ka driver component nga nagkontrol sa GPIO. Kung gusto nimo mahibal-an ang LED remote control, kinahanglan nimo nga idugang ang Wi-Fi, TCP / IP protocol stack, ug uban pa.
Ang compilation system mahimong mag-compile, mag-link, ug makamugna og executable files (.bin) alang sa code pinaagi sa usa ka hugpong sa mga lagda sa pagtukod. Ang compilation system sa ESP-IDF v4.0 ug sa ibabaw nga mga bersyon gibase sa CMake sa default, ug ang compilation script CMakeLists.txt mahimong gamiton aron makontrol ang compilation nga kinaiya sa code. Dugang sa pagsuporta sa batakang syntax sa CMake, ang ESP-IDF compilation system usab naghubit sa usa ka set sa default compilation rules ug CMake functions, ug mahimo nimong isulat ang compilation script gamit ang yano nga mga pahayag.
4.3.2 Proyekto File Istruktura
Ang proyekto kay usa ka folder nga adunay sulod nga entry program main, user-defined components, ug files gikinahanglan sa paghimo sa executable aplikasyon, sama sa compilation script, configuration
Kapitulo 4. Pag-set up sa Development Environment 47
files, partition tables, ug uban pa. Ang mga proyekto mahimong kopyahon ug ipasa, ug parehas nga ma-executable file mahimong matipon ug mamugna sa mga makina nga adunay parehas nga bersyon sa ESP-IDF development environment. Usa ka tipikal nga proyekto sa ESP-IDF file istruktura gipakita sa Figure 4.14.
Hulagway 4.14. Kinaandan nga proyekto sa ESP-IDF file istruktura Tungod kay ang ESP-IDF nagsuporta sa daghang IoT chips gikan sa Espressif, lakip ang ESP32, ESP32-S series, ESP32-C series, ESP32-H series, ug uban pa, usa ka target ang kinahanglang matino sa dili pa i-compile ang code. Ang target mao ang hardware device nga nagpadagan sa aplikasyon nga programa ug ang target sa pagtukod sa compilation system. Depende sa imong mga panginahanglan, mahimo nimong itakda ang usa o daghang mga target alang sa imong proyekto. Kay exampUg, pinaagi sa command idf.py set-target esp32c3, mahimo nimong itakda ang target sa compilation sa ESP32-C3, diin ang default nga mga parameter ug compilation tool chain path alang sa ESP32C3 makarga. Human sa pag-compile, ang usa ka executable nga programa mahimong mamugna alang sa ESP32C3. Mahimo usab nimo nga ipadagan ang command set-target pag-usab aron magtakda og lain nga target, ug ang sistema sa compilation awtomatik nga maglimpyo ug mag-reconfigure. Mga sangkap
Ang mga component sa ESP-IDF kay modular ug independente nga code units nga gidumala sulod sa compilation system. Gi-organisar kini isip mga folder, nga ang ngalan sa folder nga nagrepresentar sa ngalan sa component pinaagi sa default. Ang matag component adunay kaugalingong compilation script nga 48 ESP32-C3 Wireless Adventure: Usa ka Comprehensive Guide to IoT
nagtino sa mga parametro sa compilation ug dependency niini. Atol sa proseso sa pag-compile, ang mga component gihugpong ngadto sa lain nga static nga mga librarya (.a files) ug sa kadugayan gihiusa sa ubang mga sangkap aron maporma ang programa sa aplikasyon.
Ang ESP-IDF naghatag ug importanteng mga gimbuhaton, sama sa operating system, peripheral drivers, ug network protocol stack, sa porma sa mga component. Kini nga mga sangkap gitipigan sa direktoryo sa mga sangkap nga nahimutang sulod sa direktoryo sa ugat sa ESP-IDF. Dili kinahanglan nga kopyahon sa mga developer kini nga mga sangkap sa direktoryo sa mga sangkap sa myProject. Hinuon, kinahanglan ra nila nga ipiho ang mga relasyon sa dependency sa kini nga mga sangkap sa CMakeLists.txt sa proyekto. file gamit ang REQUIRES o PRIV_REQUIRES nga mga direktiba. Ang sistema sa pag-compile awtomatikong mangita ug mag-compile sa gikinahanglan nga mga sangkap.
Busa, ang mga sangkap nga direktoryo ubos sa myProject dili kinahanglan. Gigamit lamang kini aron ilakip ang pipila ka naandan nga mga sangkap sa proyekto, nga mahimong mga librarya sa ikatulo nga partido o code nga gitakda sa user. Dugang pa, ang mga sangkap mahimong makuha gikan sa bisan unsang direktoryo gawas sa ESP-IDF o sa karon nga proyekto, sama sa usa ka bukas nga gigikanan nga proyekto nga gitipig sa lain nga direktoryo. Sa kini nga kaso, kinahanglan nimo nga idugang ang agianan sa sangkap pinaagi sa pagbutang sa EXTRA_COMPONENT_DIRS variable sa CMakeLists.txt sa ilawom sa root directory. Kini nga direktoryo mag-override sa bisan unsang ESP-IDF nga sangkap nga adunay parehas nga ngalan, pagsiguro nga ang husto nga sangkap gigamit.
Entry program main Ang nag-unang direktoryo sa sulod sa proyekto nagsunod sa parehas file istruktura sama sa ubang mga sangkap (pananglitan, sangkap1). Bisan pa, kini adunay usa ka espesyal nga kahulogan tungod kay kini usa ka mandatory nga sangkap nga kinahanglan maglungtad sa matag proyekto. Ang nag-unang direktoryo naglangkob sa source code sa proyekto ug ang entry point sa user program, kasagarang ginganlan og app_main. Sa kasagaran, ang pagpatuman sa programa sa user magsugod gikan niining entry point. Ang nag-unang sangkap lainlain usab tungod kay kini awtomatiko nga nagdepende sa tanan nga mga sangkap sa sulod sa agianan sa pagpangita. Busa, dili kinahanglan nga tin-aw nga ipakita ang mga dependency gamit ang REQUIRES o PRIV_REQUIRES nga mga direktiba sa CMakeLists.txt file.
Pag-configure file Ang root directory sa proyekto adunay usa ka configuration file gitawag nga sdkconfig, nga naglangkob sa mga parameter sa pagsumpo alang sa tanan nga mga sangkap sulod sa proyekto. Ang sdkconfig file awtomatik nga namugna sa sistema sa kompilasyon ug mahimong usbon ug mabag-o pinaagi sa command idf.py menuconfig. Ang mga kapilian sa menuconfig nag-una gikan sa Kconfig.projbuild sa proyekto ug sa Kconfig sa mga sangkap. Ang mga nag-develop sa component kasagaran magdugang og mga butang sa pag-configure sa Kconfig aron mahimo ang component nga flexible ug ma-configure.
Pagtukod og direktoryo Sa kasagaran, ang pagtukod nga direktoryo sulod sa proyekto nagtipig sa tunga-tunga files ug ang fi-
Kapitulo 4. Pag-set up sa Development Environment 49
nal executable nga mga programa nga namugna sa idf.py build command. Sa kinatibuk-an, dili kinahanglan nga direktang ma-access ang mga sulud sa direktoryo sa pagtukod. Ang ESP-IDF naghatag og predefined commands aron makig-interact sa direktoryo, sama sa paggamit sa idf.py flash command aron awtomatik nga makit-an ang gihugpong binary file ug i-flash kini sa espesipikong flash address, o gamit ang idf.py fullclean nga sugo aron limpyohan ang tibuok direktoryo sa pagtukod.
Partition table (partitions.csv) Ang matag proyekto nanginahanglan ug partition table aron bahinon ang space sa flash ug ipiho ang gidak-on ug pagsugod nga adres sa executable program ug user data space. Ang command idf.py flash o OTA upgrade nga programa mo-flash sa firmware ngadto sa katugbang nga adres sumala niini nga lamesa. Ang ESP-IDF naghatag ug daghang mga default partition table sa mga component/ partition_table, sama sa partitions_singleapp.csv ug partitions_two_ ota.csv, nga mahimong pilion sa menuconfig.
Kung ang default partition table sa sistema dili makatagbo sa mga kinahanglanon sa proyekto, ang usa ka custom partitions.csv mahimong idugang sa direktoryo sa proyekto ug mapili sa menuconfig.
4.3.3 Default nga Pagtukod nga mga Lagda sa Compilation System
Mga lagda alang sa pag-override sa mga sangkap nga adunay parehas nga ngalan Atol sa proseso sa pagpangita sa sangkap, ang sistema sa pagtipon nagsunod sa usa ka piho nga han-ay. Pangitaon una niini ang mga internal nga sangkap sa ESP-IDF, dayon pangitaon ang mga sangkap sa proyekto sa tiggamit, ug sa katapusan pangitaon ang mga sangkap sa EXTRA_COMPONENT_DIRS. Sa mga kaso diin ang daghang mga direktoryo adunay mga sangkap nga adunay parehas nga ngalan, ang sangkap nga nakit-an sa katapusan nga direktoryo mag-override sa bisan unsang nauna nga mga sangkap nga adunay parehas nga ngalan. Gitugotan niini nga lagda ang pag-customize sa mga sangkap sa ESP-IDF sulod sa proyekto sa user, samtang gihuptan nga wala ang orihinal nga ESP-IDF code.
Mga lagda alang sa paglakip sa komon nga mga sangkap pinaagi sa default Sama sa gihisgutan sa seksyon 4.3.2, ang mga sangkap kinahanglan nga tin-aw nga magtino sa ilang mga dependency sa ubang mga sangkap sa CMakeLists.txt. Bisan pa, ang kasagaran nga mga sangkap sama sa freertos awtomatiko nga gilakip sa sistema sa pagtukod pinaagi sa default, bisan kung ang ilang mga relasyon sa pagsalig dili klaro nga gihubit sa script sa pagtipon. Ang kasagarang mga sangkap sa ESP-IDF naglakip sa freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, ug cxx. Ang paggamit niining komon nga mga sangkap makalikay sa balik-balik nga trabaho sa pagsulat sa CMakeLists.txt ug himoon kini nga mas mubo.
Mga lagda alang sa pag-overriding sa mga butang sa configuration Ang mga developers makadugang sa default configuration parameters pinaagi sa pagdugang og default configuration file ginganlan og sdkconfig.defaults sa proyekto. Kay example, gidugang CONFIG_LOG_
50 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
DEFAULT_LEVEL_NONE = y ma-configure ang interface sa UART aron dili maimprinta ang data sa log pinaagi sa default. Dugang pa, kung ang piho nga mga parameter kinahanglan nga itakda alang sa usa ka partikular nga target, usa ka pag-configure file nga ginganlan og sdkconfig.defaults.TARGET_NAME mahimong idugang, diin ang TARGET_NAME mahimong esp32s2, esp32c3, ug uban pa. Kini nga configuration files gi-import sa sdkconfig sa panahon sa pag-compile, uban ang kinatibuk-ang default nga pag-configure file sdkconfig.defaults nga gi-import una, gisundan sa target-specific configuration file, sama sa sdkconfig.defaults.esp32c3. Sa mga kaso diin adunay mga butang sa pag-configure nga adunay parehas nga ngalan, ang ulahi nga pag-configure file i-override ang nahauna.
4.3.4 Pasiuna sa Compilation Script
Kung nag-develop ug proyekto gamit ang ESP-IDF, ang mga developer dili lang kinahanglan nga magsulat sa source code apan kinahanglan usab nga magsulat sa CMakeLists.txt para sa proyekto ug mga sangkap. Ang CMakeLists.txt kay usa ka text file, nailhan usab nga compilation script, nga naghubit sa sunodsunod nga compilation objects, compilation configuration items, ug commands nga mogiya sa compilation process sa source code. Ang compilation system sa ESP-IDF v4.3.2 gibase sa CMake. Agi og dugang sa pagsuporta sa lumad nga CMake nga mga gimbuhaton ug mga sugo, kini usab naghubit sa usa ka serye sa mga custom nga gimbuhaton, nga mas sayon ang pagsulat sa mga script sa compilation.
Ang mga compilation script sa ESP-IDF kasagaran naglakip sa project compilation script ug component compilation scripts. Ang CMakeLists.txt sa root directory sa proyekto gitawag nga project compilation script, nga naggiya sa proseso sa compilation sa tibuok proyekto. Ang sukaranan nga script sa pag-compile sa proyekto kasagaran naglakip sa mosunod nga tulo ka linya:
1. cmake_minimum_required(VERSION 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Taliwala kanila, ang cmake_minimum_required (VERSION 3.5) kinahanglang ibutang sa unang linya, nga gigamit sa pagpaila sa minimum nga CMake version number nga gikinahanglan sa proyekto. Ang mas bag-ong mga bersyon sa CMake kay kasagaran atras nga compatible sa mga daan nga bersyon, mao nga i-adjust ang numero sa bersyon sumala niana kung mogamit og mas bag-ong mga command sa CMake aron masiguro ang compatibility.
naglakip($ENV {IDF_PATH}/tools/cmake/project.cmake) imported pre-defined configuration items ug commands sa ESP-IDF compilation system, lakip ang default build rules sa compilation system nga gihulagway sa Seksyon 4.3.3. project(myProject) nagmugna sa proyekto mismo ug nagtino sa ngalan niini. Kini nga ngalan gamiton isip katapusang output binary file ngalan, ie, myProject.elf ug myProject.bin.
Ang usa ka proyekto mahimong adunay daghang mga sangkap, lakip ang panguna nga sangkap. Ang top-level nga direktoryo sa matag component adunay sulod nga CMakeLists.txt file, nga gitawag nga component compilation script. Ang mga script sa compilation sa component kasagarang gigamit sa pagtino sa mga dependency sa component, mga parameter sa configuration, source code files, ug naglakip sa header files alang sa
Kapitulo 4. Pag-set up sa Development Environment 51
kompilasyon. Uban sa custom function sa ESP-IDF nga idf_component_register, ang minimum nga gikinahanglan nga code alang sa usa ka component compilation script mao ang mosunod:
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "iapil"
3.
KINAHANGLAN nga sangkap1)
Ang parameter sa SRCS naghatag usa ka lista sa gigikanan files sa component, gibulag sa mga luna kon adunay daghan files. Ang INCLUDE_DIRS nga parametro naghatag ug lista sa public header file mga direktoryo alang sa sangkap, nga idugang sa naglakip nga agianan sa pagpangita alang sa ubang mga sangkap nga nagdepende sa karon nga sangkap. Ang REQUIRES parameter nagpaila sa mga dependency sa publiko nga sangkap alang sa kasamtangan nga sangkap. Kinahanglan nga ang mga sangkap klaro nga ipahayag kung unsang mga sangkap ang ilang gisaligan, sama sa component2 depende sa component1. Bisan pa, alang sa nag-unang sangkap, nga nagdepende sa tanan nga mga sangkap pinaagi sa default, ang GINAHANGLAN nga parameter mahimong tangtangon.
Dugang pa, ang lumad nga mga command sa CMake mahimo usab nga gamiton sa script sa pag-compile. Kay example, gamita ang command set aron itakda ang mga variable, sama sa set(VARIABLE "VALUE").
4.3.5 Pasiuna sa Komon nga mga Sugo
Ang ESP-IDF naggamit sa CMake (project configuration tool), Ninja (project building tool) ug esptool (flash tool) sa proseso sa code compilation. Ang matag himan adunay lain-laing papel sa compilation, building, ug proseso sa flash, ug nagsuporta usab sa lain-laing mga operating commands. Aron mapadali ang operasyon sa user, ang ESP-IDF nagdugang sa usa ka hiniusa nga front-end idf.py nga nagtugot sa mga sugo sa ibabaw nga tawagan dayon.
Sa dili pa gamiton ang idf.py, siguroha nga:
· Ang environment variable IDF_PATH sa ESP-IDF gidugang sa kasamtangan nga terminal. · Ang command execution directory mao ang root directory sa proyekto, nga naglakip sa
script sa kompilasyon sa proyekto CMakeLists.txt.
Ang kasagarang mga sugo sa idf.py mao ang mosunod:
· idf.py –help: pagpakita sa listahan sa mga sugo ug sa ilang mga instruksyon sa paggamit. · idf.py set-target : pagbutang sa compilation taidf.py fullcleanrget, ingon
isip pagpuli uban sa esp32c3. · idf.py menuconfig: paglansad sa menuconfig, usa ka terminal graphical configuration
tool, nga makapili o makausab sa mga opsyon sa pag-configure, ug ang mga resulta sa pag-configure gitipigan sa sdkconfig file. · Pagtukod sa idf.py: pagsugod sa pagtipon sa code. Ang intermediate files ug ang katapusang executable nga programa nga namugna sa compilation ma-save sa build directory sa proyekto pinaagi sa default. Ang proseso sa pag-compile kay incremental, nga nagpasabot nga kung usa lang ka tinubdan file giusab, ang giusab lang file i-compile sa sunod higayon.
52 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
· idf.py limpyo: paglimpyo sa intermediate files namugna pinaagi sa paghugpong sa proyekto. Ang tibuok proyekto mapugos sa pag-compile sa sunod nga compilation. Timan-i nga ang CMake configuration ug ang configuration modifications nga gihimo sa menuconfig dili mapapas atol sa paglimpyo.
· idf.py fullclean: pagtangtang sa tibuok direktoryo sa pagtukod, lakip ang tanang output sa configuration sa CMake files. Kung magtukod pag-usab sa proyekto, i-configure sa CMake ang proyekto gikan sa wala. Palihug timan-i nga kini nga sugo magbalikbalik sa pagtangtang sa tanan files sa direktoryo sa pagtukod, busa gamita kini uban ang pag-amping, ug ang pagsumpo sa proyekto file dili mapapas.
· idf.py flash: pag-flash sa executable program binary file gihimo pinaagi sa pagtukod sa target nga ESP32-C3. Ang mga kapilian -p ug -b gigamit aron itakda ang ngalan sa aparato sa serial port ug ang baud rate alang sa pagkidlap, matag usa. Kung kining duha ka mga kapilian wala gitino, ang serial port awtomatik nga makit-an ug ang default nga baud rate gamiton.
· idf.py monitor: pagpakita sa serial port output sa target nga ESP32-C3. Ang opsyon -p mahimong gamiton sa pagtino sa ngalan sa device sa host-side serial port. Atol sa pag-imprinta sa serial port, pindota ang key combination Ctrl+] aron mogawas sa monitor.
Ang mga sugo sa ibabaw mahimo usab nga ikombinar kung gikinahanglan. Kay exampSa ato pa, ang command idf.py build flash monitor maghimo sa code compilation, flash, ug ablihan ang serial port monitor sa han-ay.
Mahimo nimong bisitahan ang https://bookc3.espressif.com/build-system aron mahibal-an ang dugang bahin sa ESP-IDF compilation system.
4.4 Praktisa: Pag-compile Exampang Programa nga "Blink"
4.4.1 Exampug Pagtuki
Kini nga seksyon magkuha sa programa nga Blink ingon usa ka example sa pag-analisa sa file istruktura ug coding nga mga lagda sa usa ka tinuod nga proyekto sa detalye. Ang Blink program nagpatuman sa LED blinking effect, ug ang proyekto nahimutang sa ex directoryamples/get-start/blink, nga adunay tinubdan file, configuration files, ug daghang mga compilation script.
Ang intelihente nga proyekto sa suga nga gipaila sa kini nga libro gibase sa kini nga exampang programa. Ang mga gimbuhaton anam-anam nga idugang sa ulahi nga mga kapitulo aron sa katapusan makompleto kini.
Source code Aron mapakita ang tibuok proseso sa pagpalambo, ang Blink program gikopya sa esp32c3-iot-projects/device firmware/1 blink.
Ang istruktura sa direktoryo sa proyekto sa blink files gipakita sa Figure 4.15.
Ang blink project naglangkob lang sa usa ka main directory, nga usa ka espesyal nga component nga
Kapitulo 4. Pag-set up sa Development Environment 53
Hulagway 4.15. File direktoryo nga istruktura sa blink project
kinahanglang ilakip sama sa gihulagway sa seksyon 4.3.2. Ang nag-unang direktoryo kay kasagarang gigamit sa pagtipig sa pagpatuman sa app_main() function, nga mao ang entry point sa user program.Ang blink project wala maglakip sa component directory, tungod kay kini nga exampKinahanglan lang gamiton ang mga sangkap nga kauban sa ESP-IDF ug wala magkinahanglan dugang nga mga sangkap. Ang CMakeLists.txt nga gilakip sa blink nga proyekto gigamit sa paggiya sa proseso sa pag-compile, samtang ang Kconfig.projbuild gigamit sa pagdugang sa mga butang sa pag-configure alang niini nga exampang programa sa menuconfig. Lain nga wala kinahanglana files dili makaapekto sa compilation sa code, mao nga sila dili hisgotan dinhi. Usa ka detalyado nga pasiuna sa proyekto sa blink files mao ang mosunod.
1. /*blink.c naglakip sa mosunod nga header files*/
2. #ilakip
//Standard C library header file
3. #include “freetos/freeRTOS.h” //FreeRTOS main header file
4. #ilakip ang “freetos/task.h”
//FreeRTOS Task header file
5. #include “sdkconfig.h”
//Configuration header file gihimo sa kconfig
6. #ilakip ang “driver/gpio.h”
//GPIO driver header file
Ang tinubdan file Ang blink.c adunay usa ka serye sa header files katumbas sa function deklara-
mga tions. Ang ESP-IDF sa kasagaran nagsunod sa han-ay sa paglakip sa standard library header files, LibreR-
TOS nga ulohan files, header sa drayber files, uban pang component header files, ug project header files.
Ang han-ay sa diin nga ulohan fileAng mga gilakip mahimong makaapekto sa katapusan nga resulta sa pag-compile, busa sulayi
sunda ang default nga mga lagda. Kinahanglan nga matikdan nga ang sdkconfig.h awtomatik nga namugna
pinaagi sa kconfig ug mahimo lamang i-configure pinaagi sa command idf.py menuconfig.
Direkta nga pagbag-o sa kini nga ulohan file ma-overwrite.
1. /*Mahimo nimong pilion ang GPIO nga katumbas sa LED sa idf.py menuconfig, ug ang resulta sa pagbag-o sa menuconfig mao nga ang bili sa CONFIG_BLINK
_GPIO mausab. Mahimo usab nimo direkta nga usbon ang kahulugan sa macro
dinhi, ug usba ang CONFIG_BLINK_GPIO ngadto sa usa ka fixed value.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. void app_main(walay sulod)
4. {
5.
/*I-configure ang IO isip GPIO default function, i-enable ang pull-up mode, ug
6.
disable input ug output modes*/
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 Wireless Adventure: Usa ka Komprehensibo nga Giya sa IoT
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Ibutang ang GPIO sa output mode*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); samtang(1) {
/*Print log*/ printf("Pagpalong sa LEDn"); /*Palonga ang LED (ubos nga lebel sa output)*/ gpio_set_level(BLINK_GPIO, 0); /*Paglangan (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("Pag-on sa LEDn"); /*I-on ang LED (taas nga lebel sa output)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Ang app_main() function sa Blink exampAng programa nagsilbi nga entry point alang sa mga programa sa user. Kini usa ka yano nga function nga wala’y mga parameter ug wala’y kantidad sa pagbalik. Gitawag kini nga function human makompleto sa sistema ang pagsugod, nga naglakip sa mga buluhaton sama sa pagsugod sa log serial port, pag-configure sa single/dual core, ug pag-configure sa watchdog.
Ang app_main() function nagdagan sa konteksto sa usa ka buluhaton nga ginganlag main. Ang stack nga gidak-on ug prayoridad niini nga buluhaton mahimong i-adjust sa menuconfig Componentconfig Common ESP-related.
Alang sa yano nga mga buluhaton sama sa pag-blink sa usa ka LED, ang tanan nga gikinahanglan nga code mahimong ipatuman direkta sa app_main() function. Kini kasagaran naglakip sa pagsugod sa GPIO nga katumbas sa LED ug paggamit sa usa ka samtang(1) loop sa toggle sa LED on ug off. Sa laing bahin, mahimo nimong gamiton ang FreeRTOS API sa paghimo og bag-ong buluhaton nga nagdumala sa LED nga blinking. Kung ang bag-ong buluhaton malampuson nga nahimo, mahimo ka nga mogawas sa app_main () function.
Ang sulod sa main/CMakeLists.txt file, nga naggiya sa proseso sa paghugpong alang sa nag-unang sangkap, mao ang mosunod:
1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )
Lakip niini, ang main/CMakeLists.txt nagtawag lang ug usa ka function sa compilation system, nga mao ang idf_component_register. Sama sa CMakeLists.txt alang sa kadaghanan sa ubang mga sangkap, ang blink.c gidugang sa SRCS, ug ang gigikanan files idugang sa SRCS ma-compile. Sa samang higayon, ".", nga nagrepresentar sa dalan diin nahimutang ang CMakeLists.txt, kinahanglan idugang sa INCLUDE_DIRS isip mga direktoryo sa pagpangita alang sa header files. Ang sulod sa CMakeLists.txt mao ang mosunod:
1. #Specify v3.5 ingon ang labing karaan nga bersyon sa CMake nga gisuportahan sa karon nga proyekto 2. Ang #Bersyon nga ubos sa v3.5 kinahanglan i-upgrade sa dili pa magpadayon ang pagtipon 3. cmake_minimum_required(VERSION 3.5) 4. #Ilakip ang default nga configuration sa CMake sa ESP -IDF compilation nga sistema
Kapitulo 4. Pag-set up sa Development Environment 55
5. iapil($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Paghimo ug proyekto nga ginganlag “blink” 7. proyekto(akongProyekto)
Lakip niini, ang CMakeLists.txt sa root directory nag-una naglakip sa $ENV{IDF_ PATH}/tools/cmake/project.cmake, nga mao ang nag-unang CMake configuration file gihatag sa ESP-IDF. Kini gigamit sa con
Mga Dokumento / Mga Kapanguhaan
![]() |
Mga Sistema sa Espressif ESP32-C3 Wireless Adventure [pdf] Giya sa Gumagamit ESP32-C3 Wireless Adventure, ESP32-C3, Wireless Adventure, Adventure |




