ESP32-C3 Wireless Adventure
ESP32-C3 Wireless Adventure
Pandhuan Komprehensif kanggo IoT
Sistem Espressif 12 Juni 2023
Spesifikasi
- Produk: ESP32-C3 Wireless Adventure
- Produsen: Sistem Espressif
- Tanggal: 12 Juni 2023
Pandhuan Panggunaan Produk
Persiapan
Sadurunge nggunakake ESP32-C3 Wireless Adventure, priksa manawa sampeyan lagi
menowo karo konsep lan arsitektur IoT. Iki bakal mbantu
sampeyan ngerti carane piranti pas menyang ekosistem IoT luwih gedhe
lan aplikasi potensial ing omah pinter.
Pambuka lan Praktek Proyek IoT
Ing bagean iki, sampeyan bakal sinau babagan proyek IoT khas,
kalebu modul dhasar kanggo piranti IoT umum, modul dhasar
aplikasi klien, lan platform awan IoT umum. Iki bakal
nyedhiyakake dhasar kanggo pangerten lan nggawe sampeyan
proyek IoT dhewe.
Praktek: Proyek Smart Light
Ing proyek latihan iki, sampeyan bakal sinau carane nggawe pinter
cahya nggunakake ESP32-C3 Wireless Adventure. Struktur proyek,
fungsi, preparation hardware, lan proses pembangunan bakal
diterangake kanthi rinci.
Struktur Proyek
Proyèk kasusun saka sawetara komponen, kalebu ing
ESP32-C3 Petualangan Nirkabel, LED, sensor, lan awan
mburi.
Fungsi Proyek
Proyek cahya cerdas ngidini sampeyan ngontrol padhange lan
werna saka LED mbatalake liwat app seluler utawa web
antarmuka.
Persiapan Hardware
Kanggo nyiapake proyek, sampeyan kudu ngumpulake
komponen hardware sing perlu, kayata ESP32-C3 Wireless
Papan petualangan, LED, resistor, lan sumber daya.
Proses Pangembangan
Proses pangembangan kalebu nyetel pembangunan
lingkungan, nulis kode kanggo kontrol LED, nyambungake menyang
backend maya, lan nyoba fungsi saka pinter
cahya.
Pambuka kanggo ESP RainMaker
ESP RainMaker minangka kerangka kerja sing kuat kanggo ngembangake IoT
piranti. Ing bagean iki, sampeyan bakal sinau apa ESP RainMaker lan
carane bisa dileksanakake ing proyek sampeyan.
Apa ESP RainMaker?
ESP RainMaker minangka platform basis maya sing nyedhiyakake sakumpulan
alat lan layanan kanggo mbangun lan ngatur piranti IoT.
Implementasi ESP RainMaker
Bagian iki nerangake macem-macem komponen sing ana ing
ngleksanakake ESP RainMaker, kalebu layanan pratelan,
Agen RainMaker, backend awan, lan Klien RainMaker.
Praktek: Titik Kunci kanggo Ngembangake karo ESP RainMaker
Ing bagean latihan iki, sampeyan bakal sinau babagan poin-poin penting
nimbang nalika ngembangaken karo ESP RainMaker. Iki kalebu piranti
pratelan, sinkronisasi data, lan manajemen pangguna.
Fitur ESP RainMaker
ESP RainMaker nawakake macem-macem fitur kanggo manajemen pangguna, pungkasan
pangguna, lan administrator. Fitur kasebut ngidini piranti gampang
setup, remote control, dan monitoring.
Nggawe Lingkungan Pangembangan
Bagian iki menehi liwatview saka ESP-IDF (Espressif IoT
Kerangka Pengembangan), yaiku kerangka pembangunan resmi
kanggo piranti basis ESP32. Iku nerangake versi beda saka
ESP-IDF lan carane nyiyapake lingkungan pangembangan.
Pangembangan Hardware lan Driver
Desain Perangkat Keras Produk Smart Light adhedhasar ESP32-C3
Bagean iki fokus ing desain hardware cahya cerdas
produk adhedhasar ESP32-C3 Wireless Adventure. Iku kalebu ing
fitur lan komposisi produk cahya pinter, uga ing
desain hardware saka sistem inti ESP32-C3.
Fitur lan Komposisi Produk Smart Light
Bagian iki nerangake fitur lan komponen sing nggawe
munggah produk cahya pinter. Iku mbahas fungsi sing beda-beda
lan pertimbangan desain kanggo nggawe lampu pinter.
Desain Hardware Sistem Inti ESP32-C3
Desain hardware sistem inti ESP32-C3 kalebu daya
pasokan, urutan daya, reset sistem, lampu kilat SPI, sumber jam,
lan pertimbangan RF lan antena. Subbagian iki nyedhiyakake
informasi rinci babagan aspek kasebut.
FAQ
P: Apa iku ESP RainMaker?
A: ESP RainMaker minangka platform basis awan sing nyedhiyakake alat
lan layanan kanggo mbangun lan ngatur piranti IoT. Iku simplifies
proses pembangunan lan ngidini kanggo persiyapan piranti gampang, remot
kontrol, lan monitoring.
P: Kepiye carane bisa nyetel lingkungan pangembangan
ESP32-C3?
A: Kanggo nyiyapake lingkungan pangembangan kanggo ESP32-C3, sampeyan kudu
kanggo nginstal ESP-IDF (Espressif IoT Development Framework) lan
ngatur miturut instruksi sing kasedhiya. ESP-IDF punika
framework pembangunan resmi kanggo piranti basis ESP32.
P: Apa fitur saka ESP RainMaker?
A: ESP RainMaker nawakake macem-macem fitur, kalebu pangguna
manajemen, fitur pangguna pungkasan, lan fitur admin. Manajemen pangguna
ngidini pratelan piranti gampang lan sinkronisasi data. Pangguna pungkasan
fitur mbisakake remot kontrol piranti liwat app seluler utawa
web antarmuka. Fitur Admin nyedhiyakake alat kanggo ngawasi piranti
lan manajemen.
ESP32-C3 Wireless Adventure
Pandhuan Komprehensif kanggo IoT
Sistem Espressif 12 Juni 2023
Isine
I Persiapan
1
1 Pambuka kanggo IoT
3
1.1 Arsitektur IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Aplikasi IoT ing Smart Homes. . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Pambuka lan Praktek Proyek IoT
9
2.1 Pambuka kanggo Proyek IoT Khas. . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Modul dhasar kanggo piranti IoT umum. . . . . . . . . . . . . . . . . 9
2.1.2 Modul Dasar Aplikasi Klien. . . . . . . . . . . . . . . . . . . 10
2.1.3 Pambuka kanggo Platform Cloud IoT Umum. . . . . . . . . . . . . . 11
2.2 Praktek: Proyek Cahya Cerdas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Struktur Proyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Fungsi Proyek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Persiapan Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Proses Pangembangan. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Pambuka kanggo ESP RainMaker
19
3.1 Apa ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Implementasi ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Layanan Nuntut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Agen RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Cloud Backend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Klien RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Laku: Poin Penting kanggo Ngembangake karo ESP RainMaker. . . . . . . . . . . . 25
3.4 Fitur ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Manajemen Panganggo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Fitur pangguna pungkasan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Fitur Admin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Nyetel Lingkungan Pangembangan
31
4.1 ESP-IDF Swaraview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Versi ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 Alur Kerja Git ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Milih Versi sing Cocok. . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Swaraview saka Direktori ESP-IDF SDK . . . . . . . . . . . . . . . . . . . . 34 4.2 Nyetel Lingkungan Pangembangan ESP-IDF . . . . . . . . . . . . . . . . . 38 4.2.1 Nyetel Lingkungan Pangembangan ESP-IDF ing Linux . . . . . . . . 38 4.2.2 Nyetel Lingkungan Pangembangan ESP-IDF ing Windows . . . . . . 40 4.2.3 Nyiyapake Lingkungan Pangembangan ESP-IDF ing Mac . . . . . . . . . 45 4.2.4 Nginstal Kode VS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Pambuka Lingkungan Pangembangan Pihak Katelu. . . . . . . . 46 4.3 Sistem Kompilasi ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Konsep Dasar Sistem Kompilasi. . . . . . . . . . . . . . . . . . 47 4.3.2 Proyek File Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Aturan Mbangun Default saka Sistem Kompilasi. . . . . . . . . . . . . 50 4.3.4 Pambuka Naskah Kompilasi. . . . . . . . . . . . . . . . . . 51 4.3.5 Pambuka Prentah Umum. . . . . . . . . . . . . . . . . . . 52 4.4 Praktek: Nyusun ExampProgram "Blink". . . . . . . . . . . . . . . . . . 53 4.4.1 Examplan Analisis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Nyusun Program Blink. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Flashing Program Blink. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Analisis Log Port Serial Program Blink. . . . . . . . . . . . . . 60 4.5 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Pengembangan Hardware lan Driver
65
5 Desain Perangkat Keras Produk Smart Light adhedhasar ESP32-C3
67
5.1 Fitur lan Komposisi Produk Smart Light. . . . . . . . . . . . . . . 67
5.2 Desain Hardware Sistem Inti ESP32-C3. . . . . . . . . . . . . . . . . . . 70
5.2.1 Sumber Daya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Urutan Power-on lan Reset Sistem. . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Sumber Jam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF lan Antena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Strapping Pins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO lan PWM Controller. . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Praktek: Nggawe Sistem Lampu Cerdas nganggo ESP32-C3 . . . . . . . . . . . . . 80
5.3.1 Milih Modul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 Konfigurasi GPIO Sinyal PWM. . . . . . . . . . . . . . . . . . . . 82
5.3.3 Ngundhuh Firmware lan Antarmuka Debugging . . . . . . . . . . . . 82
5.3.4 Pedoman kanggo Desain RF. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Pedoman Desain Pasokan Daya. . . . . . . . . . . . . . . . . . . 86 5.4 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Pangembangan Driver
87
6.1 Proses Pangembangan Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 Aplikasi Periferal. . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Dhasar Driver LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Werna Spasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 Driver LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 Dimming LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 Pambuka kanggo PWM. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 Pangembangan Driver Dimming LED. . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Panyimpenan Non-Volatile (NVS). . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM Controller (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 Pemrograman PWM LED. . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Laku: Nambahake Driver menyang Proyek Smart Light. . . . . . . . . . . . . . . . . 103
6.5.1 Tombol Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 Driver Dimming LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III Komunikasi lan Kontrol Nirkabel
109
7 Konfigurasi lan Sambungan Wi-Fi
111
7.1 Dhasar Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Pambuka kanggo Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 Évolusi IEEE 802.11. . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Konsep Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Sambungan Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Dhasar Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Pambuka kanggo Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Konsep Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Sambungan Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Konfigurasi Jaringan Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Pandhuan Konfigurasi Jaringan Wi-Fi. . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Cara Liyane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Pemrograman Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Komponen Wi-Fi ing ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Latihan: Sambungan Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Latihan: Sambungan Wi-Fi Cerdas . . . . . . . . . . . . . . . . . . . . . 145
7.5 Praktek: Konfigurasi Wi-Fi ing Proyek Smart Light . . . . . . . . . . . . . . . 156 7.5.1 Sambungan Wi-Fi ing Proyek Smart Light . . . . . . . . . . . . . . . . . 156 7.5.2 Konfigurasi Smart Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Kontrol Lokal
159
8.1 Pambuka kanggo Kontrol Lokal. . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Aplikasi Kontrol Lokal. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 Adwantagyaiku saka Kontrol Lokal. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Nemokake Piranti sing Dikontrol liwat Smartphone . . . . . . . . . . 161
8.1.4 Komunikasi Data Antarane Smartphone lan Piranti. . . . . . . . 162
8.2 Metode Penemuan Lokal Umum. . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Siaran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Multicast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Perbandingan Antarane Siaran lan Multicast. . . . . . . . . . . . . . 176
8.2.4 Protokol Aplikasi Multicast mDNS kanggo Penemuan Lokal. . . . . . . . 176
8.3 Protokol Komunikasi Umum kanggo Data Lokal. . . . . . . . . . . . . . . 179
8.3.1 Transmission Control Protocol (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 HyperText Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Panganggo DatagProtokol ram (UDP). . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Protokol Aplikasi Watesan (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Protokol Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Ringkesan Protokol Komunikasi Data. . . . . . . . . . . . . . . 203
8.4 Jaminan Keamanan Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Pambuka kanggo Transport Layer Security (TLS) . . . . . . . . . . . . . 207
8.4.2 Pambuka Datagram Transport Layer Security (DTLS) . . . . . . . 213
8.5 Praktek: Kontrol Lokal ing Proyek Smart Light. . . . . . . . . . . . . . . . . . 217
8.5.1 Nggawe Server Kontrol Lokal adhedhasar Wi-Fi. . . . . . . . . . . . . . . 217
8.5.2 Verifikasi Fungsi Kontrol Lokal nggunakake Skrip. . . . . . . . . . . 221
8.5.3 Nggawe Server Kontrol Lokal adhedhasar Bluetooth. . . . . . . . . . . . 222
8.6 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Kontrol Cloud
225
9.1 Pambuka Remote Control. . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Protokol Komunikasi Data Awan. . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT Pambuka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Prinsip MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 Format Pesen MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Perbandingan Protokol. . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Nyetel MQTT Broker ing Linux lan Windows . . . . . . . . . . . . 233 9.2.6 Nyetel Klien MQTT Adhedhasar ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Njamin Keamanan Data MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Makna lan Fungsi Sertifikat. . . . . . . . . . . . . . . . . . . 237 9.3.2 Ngasilake Sertifikat Lokal. . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Konfigurasi MQTT Broker. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Konfigurasi Klien MQTT. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Laku: Remote Control liwat ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 Dhasar RainMaker ESP. . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Protokol Komunikasi Node lan Cloud Backend . . . . . . . . . . . 244 9.4.3 Komunikasi antarane Klien lan Cloud Backend. . . . . . . . . . . 249 9.4.4 Peran pangguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Layanan dhasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Cahya Pinter Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 Aplikasi RainMaker lan Integrasi Pihak Katelu. . . . . . . . . . . . . . . 262 9.5 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Pangembangan Aplikasi Smartphone
269
10.1 Pambuka kanggo Pangembangan Aplikasi Smartphone. . . . . . . . . . . . . . . . . . 269
10.1.1 Luwihview Pengembangan Aplikasi Smartphone. . . . . . . . . . . . . . . 270
10.1.2 Struktur Proyek Android . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 Struktur Proyek iOS . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Siklus Urip Aktivitas Android . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 Lifecycle saka iOS ViewPengontrol . . . . . . . . . . . . . . . . . . . . . . 273
10.2 Nggawe Proyek Aplikasi Smartphone Anyar. . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Nyiapake kanggo Pangembangan Android . . . . . . . . . . . . . . . . . . . 275
10.2.2 Nggawe Proyek Android Anyar . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 Nambahake Dependensi kanggo MyRainmaker. . . . . . . . . . . . . . . . . 276
10.2.4 Panjaluk Idin ing Android . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 Nyiapake kanggo Pangembangan iOS . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Nggawe Proyek iOS Anyar . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 Nambahake Dependensi kanggo MyRainmaker. . . . . . . . . . . . . . . . . 279
10.2.8 Panjaluk Idin ing iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Analisis Kebutuhan Fungsional Aplikasi. . . . . . . . . . . . . . . . . . 281
10.3.1 Analisis Kebutuhan Fungsional Proyek. . . . . . . . . . . . 282
10.3.2 Analisis Kebutuhan Manajemen Panganggo. . . . . . . . . . . . . . . 282 10.3.3 Analisis Persyaratan Penyediaan Piranti lan Ikatan. . . . . . . 283 10.3.4 Analisis Persyaratan Remote-Control. . . . . . . . . . . . . . . . 283 10.3.5 Analisis Syarat Jadwal. . . . . . . . . . . . . . . . . . . 284 10.3.6 Analisis Keperluan Pusat Panganggo. . . . . . . . . . . . . . . . . . 285 10.4 Pangembangan Manajemen Panganggo. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Pambuka kanggo RainMaker API. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Miwiti Komunikasi liwat Smartphone . . . . . . . . . . . . . . . . 286 10.4.3 Registrasi Akun. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Mlebet Akun. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Pangembangan Penyediaan Piranti. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Piranti Pindai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Nyambungake piranti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Ngasilake Kunci Rahasia. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Njupuk ID Node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Piranti Penyediaan. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Pangembangan Kontrol Piranti. . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Naleni Piranti menyang Akun Cloud . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Njupuk Dhaptar Piranti . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Njupuk Status Piranti . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Ngganti Status Piranti . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Pangembangan Jadwal lan Pusat Panganggo. . . . . . . . . . . . . . . . . . . 313 10.7.1 Ngleksanakake Fungsi Penjadwalan. . . . . . . . . . . . . . . . . . . . 313 10.7.2 Implementasi User Center. . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Liyane Cloud API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Ringkesan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Nganyarke Firmware lan Manajemen Versi
321
11.1 Nganyarke Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Luwihview saka Tabel Partisi. . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Proses Booting Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Luwihview saka mekanisme OTA. . . . . . . . . . . . . . . . . . . . . 326
11.2 Manajemen Versi Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Tandha Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Rollback lan Anti-Rollback . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Praktek: Over-the-air (OTA) Example . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Nganyarke Firmware Liwat Host Lokal. . . . . . . . . . . . . . . . . 332
11.3.2 Nganyarke Firmware Liwat ESP RainMaker. . . . . . . . . . . . . . . 335
11.4 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Optimalisasi lan Produksi Massal
343
12 Manajemen Daya lan Optimization Low-Daya
345
12.1 Manajemen Daya ESP32-C3. . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Skala Frekuensi Dinamis. . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Konfigurasi Manajemen Daya. . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 Mode Kurang Daya. . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Modem-sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Mode cahya-turu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Mode turu jero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Konsumsi Saiki ing Mode Daya Beda. . . . . . . . . . . . . 358
12.3 Manajemen Daya lan Debugging Kurang Daya. . . . . . . . . . . . . . . . . 359
12.3.1 Log Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Praktek: Manajemen Daya ing Proyek Smart Light. . . . . . . . . . . . . . . 363
12.4.1 Konfigurasi Fitur Manajemen Daya. . . . . . . . . . . . . . . . . 364
12.4.2 Gunakake Kunci Manajemen Daya. . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Verifikasi Konsumsi Daya. . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Fitur Keamanan Piranti sing Ditingkatake
369
13.1 Luwihview saka Keamanan Data Piranti IoT. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Napa Ngamanake Data Piranti IoT? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 Keperluan dhasar kanggo Keamanan Data Piranti IoT. . . . . . . . . . . . 371
13.2 Pangreksan Integritas Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Pambuka Cara Verifikasi Integritas. . . . . . . . . . . . . . 372
13.2.2 Verifikasi Integritas Data Firmware. . . . . . . . . . . . . . . . . . 373
13.2.3 Kelample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Pangreksan Rahasia Data. . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Pambuka kanggo Enkripsi Data. . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Pambuka kanggo Skema Enkripsi Flash. . . . . . . . . . . . . . . . . 376
13.3.3 Panyimpenan Tombol Enkripsi Lampu kilat. . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Mode Kerja Enkripsi Lampu kilat. . . . . . . . . . . . . . . . . . . . 380
13.3.5 Proses Enkripsi Lampu kilat. . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 Pambuka kanggo NVS Enkripsi. . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 Kelampenkripsi Flash lan Enkripsi NVS. . . . . . . . . . . 384
13.4 Pangreksan Legitimasi Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Pambuka kanggo Digital Signature. . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Luwihview saka Skema Boot Aman. . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Pambuka kanggo Boot Aman Software. . . . . . . . . . . . . . . . . . . 388 13.4.4 Pambuka Hardware Boot Aman. . . . . . . . . . . . . . . . . . 390 13.4.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Praktek: Fitur Keamanan Ing Produksi Massal. . . . . . . . . . . . . . . . . . 396 13.5.1 Enkripsi Lampu kilat lan Boot Aman. . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Ngaktifake Enkripsi Lampu kilat lan Boot Aman nganggo Alat Flash Batch. . 397 13.5.3 Ngaktifake Enkripsi Lampu kilat lan Boot Aman ing Proyek Smart Light . . . 398 13.6 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Pembakaran lan Pengujian Firmware kanggo Produksi Massal
399
14.1 Pembakaran Firmware ing Produksi Massal. . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Nemtokake Partisi Data. . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Ngobong Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Pengujian Produksi Massal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Praktek: Data Produksi Massal ing Proyek Smart Light. . . . . . . . . . . . . 404
14.4 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP Insights: Remote Monitoring Platform
405
15.1 Pambuka kanggo ESP Insights. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 Miwiti ESP Insights. . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 Miwiti ESP Insights ing Proyek esp-insights. . . . . . 409
15.2.2 Mlaku Example ing esp-wawasan Project. . . . . . . . . . . . . . . 411
15.2.3 Nglaporake Informasi Coredump. . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Ngatur Log Kapentingan. . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Nglaporake Alasan Urip maneh. . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Nglaporake Metrik Kustom . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Praktek: Nggunakake ESP Insights ing Proyek Smart Light. . . . . . . . . . . . . . . 416
15.4 Ringkesan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Pambuka
ESP32-C3 minangka Wi-Fi siji-inti lan SoC mikrokontroler Bluetooth 5 (LE), adhedhasar arsitektur RISC-V open-source. Iku nyerang imbangan tengen daya, kemampuan I/O, lan keamanan, saéngga nawakake solusi biaya-efektif optimal kanggo piranti sing nyambung. Kanggo nuduhake macem-macem aplikasi saka kulawarga ESP32-C3, buku dening Espressif iki bakal nggawa sampeyan lelungan sing menarik liwat AIoT, wiwit saka dhasar pangembangan proyek IoT lan persiyapan lingkungan nganti praktis.amples. Papat bab pisanan ngomong babagan IoT, ESP RainMaker lan ESP-IDF. Bab 5 lan 6 ringkes babagan desain hardware lan pangembangan driver. Nalika sampeyan maju, sampeyan bakal nemokake carane ngatur proyek liwat jaringan Wi-Fi lan Aplikasi seluler. Pungkasan, sampeyan bakal sinau ngoptimalake proyek sampeyan lan nggawe produksi massal.
Yen sampeyan insinyur ing lapangan sing gegandhengan, arsitek piranti lunak, guru, siswa, utawa sapa wae sing duwe minat ing IoT, buku iki kanggo sampeyan.
Sampeyan bisa ngundhuh kode example digunakake ing buku iki saka situs Espressif ing GitHub. Kanggo informasi paling anyar babagan pangembangan IoT, tututi akun resmi kita.
Pambuka
Dunia Informatika
Nunggang gelombang Internet, Internet of Things (IoT) nggawe debut gedhe kanggo dadi jinis infrastruktur anyar ing ekonomi digital. Kanggo nggawa teknologi nyedhaki publik, Sistem Espressif bisa kanggo visi sing pangembang saka kabeh lapisan masyarakat bisa nggunakake IoT kanggo ngatasi sawetara masalah paling mencet ing jaman kita. A donya "Intelligent Network of All Things" apa kita ngarepake saka mangsa.
Ngrancang chip kita dhewe ndadekake komponen kritis saka visi kasebut. Iku dadi maraton, mbutuhake terobosan terus-terusan nglawan wates teknologi. Saka "Game Changer" ESP8266 nganti seri ESP32 sing nggabungake konektivitas Wi-Fi lan Bluetoothr (LE), diikuti ESP32-S3 sing dilengkapi akselerasi AI, Espressif ora nate mandheg riset lan ngembangake produk kanggo solusi AIoT. Kanthi piranti lunak open-source, kayata IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF, lan Device Connectivity Platform ESP RainMaker, kita wis nggawe kerangka kerja independen kanggo mbangun aplikasi AIoT.
Ing Juli 2022, kiriman kumulatif saka chipset IoT Espressif wis ngluwihi 800 yuta, anjog ing pasar Wi-Fi MCU lan nguwasani akeh piranti sing disambungake ing saindenging jagad. Ngupaya kanggo keunggulan ndadekake saben produk Espressif dadi hit gedhe amarga tingkat integrasi lan efisiensi biaya sing dhuwur. Rilis ESP32-C3 nandhani tonggak sejarah teknologi sing dikembangake dhewe Espressif. Iku siji-inti, 32-dicokot, RISC-V basis MCU karo 400KB SRAM, kang bisa mbukak ing 160MHz. Wis nggabungake Wi-Fi 2.4 GHz lan Bluetooth 5 (LE) kanthi dhukungan jarak jauh. Iku nyerang imbangan apik saka daya, kemampuan I/O, lan keamanan, saéngga nawakake solusi biaya-efektif optimal kanggo piranti sing nyambung. Adhedhasar ESP32-C3 sing kuat, buku iki ditujokake kanggo mbantu para pamaca ngerti kawruh sing ana gandhengane karo IoT kanthi ilustrasi rinci lan mantan praktis.amples.
Napa kita nulis buku iki?
Sistem Espressif luwih saka perusahaan semikonduktor. Iki uga minangka perusahaan platform IoT, sing tansah ngupayakake terobosan lan inovasi ing bidang teknologi. Ing wektu sing padha, Espressif wis mbukak-sumber lan nuduhake sistem operasi lan piranti lunak sing dikembangake dhewe karo komunitas, mbentuk ekosistem sing unik. Insinyur, produsen, lan penggemar teknologi aktif ngembangake aplikasi piranti lunak anyar adhedhasar produk Espressif, kanthi bebas komunikasi, lan nuduhake pengalamane. Sampeyan bisa ndeleng ide sing nyenengake para pangembang ing macem-macem platform, kayata YouTube lan GitHub. Popularitas produk Espressif wis stimulus akeh penulis sing wis ngasilake luwih saka 100 buku adhedhasar chipset Espressif, ing luwih saka sepuluh basa, kalebu Inggris, Cina, Jerman, Prancis, lan Jepang.
Dhukungan lan kapercayan saka mitra komunitas sing nyengkuyung inovasi terus Espressif. "Kita ngupayakake supaya chip, sistem operasi, kerangka kerja, solusi, Cloud, praktik bisnis, alat, dokumentasi, tulisan, ide, lsp. Iki minangka ambisi paling dhuwur lan kompas moral Espressif. ngandika Pak Teo Swee Ann, Pendhiri lan CEO saka Espressif.
Nilai espressif maca lan gagasan. Amarga terus-terusan nganyarke teknologi IoT ndadekake syarat sing luwih dhuwur kanggo para insinyur, kepiye carane bisa mbantu luwih akeh wong supaya bisa nguwasani chip IoT, sistem operasi, kerangka piranti lunak, skema aplikasi lan produk layanan awan kanthi cepet? Kaya paribasan, luwih becik ngajari wong mancing tinimbang menehi iwak. Ing sesi brainstorming, kita bisa nulis buku kanthi sistematis ngurutake kawruh penting babagan pangembangan IoT. Kita entuk, kanthi cepet nglumpukake klompok insinyur senior, lan nggabungake pengalaman tim teknis ing program sing dipasang, hardware lan piranti lunak IoT, kabeh nyumbang kanggo nerbitake buku iki. Ing proses nulis, kita nyoba sing paling apik kanggo objektif lan adil, ngilangi kepompong, lan nggunakake ekspresi sing ringkes kanggo nyritakake kerumitan lan pesona Internet of Things. Kita kanthi ati-ati ngringkes pitakonan umum, diarani umpan balik lan saran saka masyarakat, supaya bisa mangsuli kanthi jelas pitakonan sing ditemoni ing proses pangembangan, lan menehi pedoman pangembangan IoT praktis kanggo teknisi lan pembuat keputusan sing relevan.
Struktur Buku
Buku iki njupuk perspektif sing fokus ing insinyur lan nerangake kawruh sing dibutuhake kanggo pangembangan proyek IoT langkah demi langkah. Iku kasusun saka papat bagean, kaya ing ngisor iki:
· Persiapan (Bab 1): Bagean iki ngenalake arsitektur IoT, kerangka proyek IoT khas, platform awan ESP RainMakerr, lan lingkungan pangembangan ESP-IDF, supaya bisa nggawe dhasar sing kuat kanggo pangembangan proyek IoT.
· Pengembangan Perangkat Keras lan Driver (Bab 5): Adhedhasar chipset ESP6-C32, bagean iki njlentrehake babagan sistem hardware minimal lan pangembangan driver, lan ngetrapake kontrol dimming, grading warna, lan komunikasi nirkabel.
· Komunikasi lan Kontrol Nirkabel (Bab 7): Bagian iki nerangake skema konfigurasi Wi-Fi sing cerdas adhedhasar chip ESP11-C32, protokol kontrol lokal & awan, lan kontrol lokal & remot piranti. Uga nyedhiyakake skema kanggo ngembangake aplikasi smartphone, upgrade firmware, lan manajemen versi.
· Optimasi lan Produksi Massal (Bab 12-15): Bagean iki ditujokake kanggo aplikasi IoT sing luwih maju, fokus ing optimalisasi produk ing manajemen daya, optimasi kurang daya, lan keamanan sing ditingkatake. Iki uga ngenalake kobongan lan tes perangkat kukuh ing produksi massal, lan carane diagnosa status mlaku lan log perangkat kukuh piranti liwat platform ngawasi remot ESP Insights.
Babagan Kode Sumber
Pembaca bisa mbukak mantanample program ing buku iki, salah siji kanthi ngetik kode kanthi manual utawa nggunakake kode sumber sing ngiringi buku. Kita nandheske kombinasi teori lan praktik, lan kanthi mangkono nyetel bagean Praktek adhedhasar proyek Smart Light ing meh saben bab. Kabeh kode mbukak-sumber. Pembaca olèh ngundhuh kode sumber lan ngrembug ing bagean sing ana gandhengane karo buku iki ing GitHub lan forum resmi esp32.com. Kode sumber terbuka saka buku iki tundhuk karo syarat Lisensi Apache 2.0.
Cathetan Pengarang
Buku iki resmi diprodhuksi dening Espressif Systems lan ditulis dening insinyur senior perusahaan. Cocog kanggo manajer lan personel R&D ing industri sing gegandhengan karo IoT, guru lan siswa jurusan sing gegandhengan, lan penggemar ing bidang Internet of Things. Muga-muga buku iki bisa dadi buku pedoman kerja, referensi, lan buku ing pinggir amben, dadi kaya tutor lan kanca sing apik.
Nalika nyusun buku iki, kita ngrujuk sawetara asil riset sing relevan saka ahli, sarjana, lan teknisi ing omah lan ing luar negeri, lan kita nindakake sing paling apik kanggo nyebutake miturut norma akademik. Ananging boten saged uwal saking kekirangan, pramila wonten ing ngriki kula aturaken agunging panuwun saha panuwun dhumateng para panyerat ingkang gayut. Kajaba iku, kita wis ngutip informasi saka Internet, mula kita ngucapake matur nuwun marang penulis lan penerbit asli lan njaluk ngapura yen kita ora bisa nuduhake sumber saben informasi.
Supaya bisa ngasilake buku kanthi kualitas dhuwur, kita wis ngatur diskusi internal, lan sinau saka saran lan saran saka pembaca nyoba lan editor penerbit. Ing kene, kita arep matur nuwun maneh kanggo bantuan sing kabeh nyumbang kanggo karya sukses iki.
Pungkasan, nanging sing paling penting, matur nuwun kanggo kabeh wong ing Espressif sing wis kerja keras kanggo kelahiran lan popularisasi produk kita.
Pangembangan proyek IoT kalebu macem-macem kawruh. Diwatesi dawane buku, uga tingkat lan pengalaman penulis, ora bisa dihindari. Pramila sumangga para ahli saha para maos ngritik saha mbeneraken kalepatan kita. Yen sampeyan duwe saran kanggo buku iki, hubungi kita ing book@espressif.com. We look nerusake kanggo saran.
Kepiye cara nggunakake buku iki?
Kode proyek ing buku iki wis mbukak sumber. Sampeyan bisa ndownload saka repositori GitHub lan nuduhake pikirane lan pitakon ing forum resmi. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Saindhenging buku, bakal ana bagean sing disorot kaya ing ngisor iki.
Kode sumber Ing buku iki, kita nandheske kombinasi teori lan praktik, lan kanthi mangkono nyetel bagean Praktek babagan proyek Smart Light ing meh saben bab. Langkah-langkah lan kaca sumber sing cocog bakal ditandhani ing antarane rong baris sing diwiwiti karo tag Kode sumber.
CATETAN / TIPS Iki ngendi sampeyan bisa nemokake sawetara informasi kritis lan ngelingi kanggo kasil debugging program. Padha bakal ditandhani antarane rong garis nglukis diwiwiti karo tag CATETAN utawa TIPS.
Umume prentah ing buku iki dieksekusi ing Linux, dijaluk dening karakter "$". Yen prentah mbutuhake hak istimewa superuser kanggo nglakokake, pituduh bakal diganti karo "#". Command prompt ing sistem Mac yaiku "%", kaya sing digunakake ing Bagean 4.2.3 Nginstal ESP-IDF ing Mac.
Teks awak ing buku iki bakal dicithak ing Piagam, dene kode examples, komponen, fungsi, variabel, kode file jeneng, direktori kode, lan strings bakal ing Courier New.
Printah utawa teks sing kudu input dening pangguna, lan printah sing bisa diketik kanthi mencet tombol "Ketik" bakal dicithak ing Courier New kandel. Log lan blok kode bakal ditampilake ing kothak biru cahya.
Example:
Kapindho, gunakake esp-idf/komponen/nvs flash/nvs partisi generator/nvs partisi gen.py kanggo ngasilake biner partisi NVS file ing host pangembangan kanthi printah ing ngisor iki:
$ python $IDF PATH/komponen/nvs flash/nvs partisi generator/nvs partisi gen.py –input mass prod.csv –output mass prod.bin –size NVS PARTITION SIZE
Bab 1
Pambuka
kanggo
IoT
Ing pungkasan abad kaping 20, kanthi munculé jaringan komputer lan teknologi komunikasi, Internet kanthi cepet Integrasi menyang urip wong. Nalika teknologi Internet terus berkembang, ide Internet of Things (IoT) lair. Secara harfiah, IoT tegese Internet sing nyambungake samubarang. Nalika Internet asli ngilangi watesan ruang lan wektu lan nyepetake jarak antarane "wong lan wong", IoT ndadekake "barang" dadi peserta penting, ndadekake "wong" lan "barang" luwih cedhak. Ing mangsa ngarep, IoT disetel dadi tenaga pendorong industri informasi.
Dadi, apa Internet of Things?
Pancen angel nemtokake Internet of Things kanthi akurat, amarga makna lan ruang lingkupe terus berkembang. Ing taun 1995, Bill Gates pisanan nggawa gagasan IoT ing bukune The Road Ahead. Cukup, IoT ngidini obyek kanggo ijol-ijolan informasi karo siji liyane liwat Internet. Tujuan utama yaiku nggawe "Internet Kabeh". Iki minangka interpretasi awal IoT, uga fantasi teknologi masa depan. Telung puluh taun sabanjure, kanthi perkembangan ekonomi lan teknologi kanthi cepet, fantasi kasebut dadi kasunyatan. Saka piranti cerdas, omah cerdas, kutha cerdas, Internet Kendaraan lan piranti sing bisa dipakai, nganti "metaverse" sing didhukung dening teknologi IoT, konsep anyar terus berkembang. Ing bab iki, kita bakal miwiti panjelasan babagan arsitektur Internet of Things, lan banjur ngenalake aplikasi IoT sing paling umum, yaiku omah sing cerdas, supaya sampeyan bisa ngerti babagan IoT.
1.1 Arsitektur IoT
Internet of Things kalebu macem-macem teknologi sing duwe kabutuhan lan formulir aplikasi sing beda ing industri sing beda-beda. Kanggo ngurutake struktur, teknologi utama lan karakteristik aplikasi IoT, perlu nggawe arsitektur terpadu lan sistem teknis standar. Ing buku iki, arsitektur IoT mung dipérang dadi papat lapisan: lapisan persepsi & kontrol, lapisan jaringan, lapisan platform, lan lapisan aplikasi.
Lapisan Persepsi & Kontrol Minangka unsur paling dhasar ing arsitektur IoT, lapisan persepsi & kontrol minangka inti kanggo mujudake sensing lengkap IoT. Fungsi utama yaiku ngumpulake, ngenali lan ngontrol informasi. Iki kalebu macem-macem piranti kanthi kemampuan persepsi,
3
identifikasi, kontrol lan eksekusi, lan tanggung jawab kanggo njupuk lan nganalisa data kayata sifat materi, tren prilaku, lan status piranti. Kanthi cara iki, IoT bakal ngerteni jagad fisik sing nyata. Kajaba iku, lapisan kasebut uga bisa ngontrol status piranti kasebut.
Piranti sing paling umum ing lapisan iki yaiku macem-macem sensor, sing nduweni peran penting ing koleksi lan identifikasi informasi. Sensor kaya organ sensori manungsa, kayata sensor fotosensitif sing padha karo sesanti, sensor akustik kanggo pangrungu, sensor gas kanggo mambu, lan sensor sensitif tekanan lan suhu kanggo ndemek. Kanthi kabeh "organ sensori" iki, obyek dadi "urip" lan bisa ngerteni, pangenalan lan manipulasi sing cerdas ing jagad fisik.
Lapisan Jaringan Fungsi utama lapisan jaringan yaiku ngirim informasi, kalebu data sing dipikolehi saka lapisan persepsi & kontrol menyang target sing ditemtokake, uga perintah sing diterbitake saka lapisan aplikasi bali menyang lapisan persepsi & kontrol. Iki minangka jembatan komunikasi penting sing nyambungake macem-macem lapisan sistem IoT. Kanggo nyiyapake model dhasar Internet of Things, kalebu rong langkah kanggo nggabungake obyek menyang jaringan: akses menyang Internet lan transmisi liwat Internet.
Akses menyang Internet Internet mbisakake interkoneksi antarane wong lan wong, nanging gagal kanggo nyakup samubarang menyang kulawarga gedhe. Sadurunge tekane IoT, umume ora "bisa jaringan". Thanks kanggo pangembangan teknologi sing terus-terusan, IoT bisa nyambungake samubarang menyang Internet, saéngga nyadari interkoneksi antarane "wong lan barang", lan "barang lan barang". Ana rong cara umum kanggo ngetrapake sambungan Internet: akses jaringan kabel lan akses jaringan nirkabel.
Cara akses jaringan kabel kalebu Ethernet, komunikasi serial (contone, RS-232, RS-485) lan USB, nalika akses jaringan nirkabel gumantung ing komunikasi nirkabel, sing bisa dipérang manèh dadi komunikasi nirkabel jarak cendhak lan komunikasi nirkabel jarak jauh.
Komunikasi nirkabel jarak cendhak kalebu ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC), lan Radio Frequency Identification (RFID). Komunikasi nirkabel jarak jauh kalebu Enhanced Machine Type Communication (eMTC), LoRa, Narrow Band Internet of Things (NB-IoT), 2G, 3G, 4G, 5G, lsp.
Transmisi liwat Internet Cara akses Internet sing beda-beda nyebabake link transmisi fisik data sing cocog. Bab sabanjure yaiku mutusake protokol komunikasi sing digunakake kanggo ngirim data. Dibandhingake karo terminal Internet, umume terminal IoT saiki luwih sithik
4 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
sumber daya sing kasedhiya, kayata kinerja Processing, kapasitas panyimpenan, tingkat jaringan, etc., supaya iku perlu kanggo milih protokol komunikasi sing manggoni kurang sumber daya ing aplikasi IoT. Ana rong protokol komunikasi sing akeh digunakake saiki: Message Queuing Telemetry Transport (MQTT) lan Constrained Application Protocol (CoAP).
Lapisan Platform Lapisan platform utamane nuduhake platform awan IoT. Nalika kabeh terminal IoT disambungake menyang jaringan, data kasebut kudu dikumpulake ing platform awan IoT kanggo diitung lan disimpen. Lapisan platform utamane ndhukung aplikasi IoT kanggo nggampangake akses lan manajemen piranti gedhe. Iki nyambungake terminal IoT menyang platform awan, ngumpulake data terminal, lan ngetokake perintah menyang terminal, supaya bisa ngetrapake remot kontrol. Minangka layanan penengah kanggo nemtokake peralatan kanggo aplikasi industri, lapisan platform nduweni peran sing nyambungake ing kabeh arsitektur IoT, nggawa logika bisnis abstrak lan model data inti standar, sing ora mung bisa nyadari akses cepet saka piranti, nanging uga nyedhiyakake kemampuan modular sing kuat. kanggo nyukupi macem-macem kabutuhan ing skenario aplikasi industri. Lapisan platform utamane kalebu modul fungsional kayata akses piranti, manajemen piranti, manajemen keamanan, komunikasi pesen, operasi lan pangopènan ngawasi, lan aplikasi data.
· Akses piranti, nyadari sambungan lan komunikasi antarane terminal lan platform awan IoT.
· Manajemen piranti, kalebu fungsi kayata nggawe piranti, pangopènan piranti, konversi data, sinkronisasi data, lan distribusi piranti.
· Manajemen keamanan, njamin keamanan transmisi data IoT saka perspektif otentikasi keamanan lan keamanan komunikasi.
· Komunikasi pesen, kalebu telung arah transmisi, yaiku, terminal ngirim data menyang platform maya IoT, platform maya IoT ngirim data menyang sisih server utawa platform maya IoT liyane, lan sisih server ngontrol piranti IoT saka jarak jauh.
· Ngawasi O&M, kalebu pemantauan lan diagnosis, upgrade firmware, debugging online, layanan log, lsp.
· Aplikasi data, kalebu panyimpenan, analisis lan aplikasi data.
Lapisan Aplikasi Lapisan aplikasi nggunakake data saka lapisan platform kanggo ngatur aplikasi, nyaring lan ngolah kanthi alat kayata database lan piranti lunak analisis. Data sing diasilake bisa digunakake kanggo aplikasi IoT ing donya nyata kayata perawatan kesehatan cerdas, pertanian cerdas, omah cerdas, lan kutha cerdas.
Mesthine, arsitektur IoT bisa dipérang dadi luwih akeh lapisan, nanging ora preduli pirang-pirang lapisan, prinsip dhasar tetep padha. Sinau
Bab 1. Pengantar IoT 5
babagan arsitektur IoT mbantu kita ngerteni luwih jero babagan teknologi IoT lan mbangun proyek IoT kanthi fungsional.
1.2 Aplikasi IoT ing Smart Homes
IoT wis mlebu ing kabeh lapisan masyarakat, lan aplikasi IoT sing paling cedhak karo kita yaiku omah sing cerdas. Akeh peralatan tradisional saiki dilengkapi siji utawa luwih piranti IoT, lan akeh omah sing mentas dibangun sing dirancang nganggo teknologi IoT wiwit wiwitan. Figure 1.1 nuduhake sawetara piranti ngarep pinter umum.
Gambar 1.1. Piranti omah pinter umum Pangembangan omah pinter bisa dipérang dadi produk pintertage, sesambungan adegan stage lan pinter stage, minangka ditampilake ing Figure 1.2.
Gambar 1.2. Pangembangan stage saka omah pinter 6 ESP32-C3 Wireless Adventure: A Comprehensive Guide kanggo IoT
Pisanan stage babagan produk pinter. Beda karo omah tradisional, ing omah sing cerdas, piranti IoT nampa sinyal kanthi sensor, lan disambungake menyang jaringan liwat teknologi komunikasi nirkabel kayata Wi-Fi, Bluetooth LE, lan ZigBee. Pangguna bisa ngontrol produk cerdas kanthi macem-macem cara, kayata aplikasi smartphone, asisten swara, kontrol speaker cerdas, lsp.tage fokus ing interconnection pemandangan. Ing stage, pangembang ora maneh considering ngontrol produk pinter siji, nanging interconnecting loro utawa luwih produk pinter, otomatis menyang ombone tartamtu, lan pungkasanipun mbentuk mode pemandangan adat. Kanggo exampNanging, nalika pangguna menet sembarang tombol mode pemandangan, lampu, langsir, lan AC bakal otomatis dicocogake kanggo prasetel. Mesthi, ana prasyarat supaya logika linkage siap disetel, kalebu kondisi pemicu lan tumindak eksekusi. Mbayangno yen mode pemanasan AC dipicu nalika suhu njero ruangan mudhun ing ngisor 10 ° C; yen jam 7 esuk, musik diputer kanggo tangi pangguna, gorden pinter dibukak, lan kompor beras utawa roti panggang diwiwiti liwat soket pinter; nalika pangguna tangi lan rampung ngumbah, sarapan wis disedhiyakake, supaya ora ana wektu tundha kanggo kerja. Carane trep urip kita dadi! Katelu stage menyang Intelligence stage. Nalika piranti omah sing luwih pinter diakses, uga jinis data sing digawe. Kanthi bantuan komputasi awan, data gedhe lan intelijen buatan, kaya "otak sing luwih cerdas" wis ditanam ing omah sing cerdas, sing ora mbutuhake prentah sing kerep saka pangguna. Dheweke ngumpulake data saka interaksi sadurunge lan sinau pola prilaku lan pilihan pangguna, supaya bisa ngotomatisasi kegiatan, kalebu menehi rekomendasi kanggo nggawe keputusan. Saiki, paling omah-omahé pinter ing interconnection pemandangan stage. Nalika tingkat penetrasi lan intelijen produk cerdas mundhak, alangan ing antarane protokol komunikasi diilangi. Ing mangsa ngarep, omah-omah sing cerdas bakal dadi "pinter", kaya sistem AI Jarvis ing Iron Man, sing ora mung bisa mbantu pangguna ngontrol macem-macem piranti, nangani urusan saben dina, nanging uga duwe daya komputasi super lan kemampuan mikir. Ing cerdas stage, manungsa bakal nampa layanan sing luwih apik saka jumlah lan kualitas.
Bab 1. Pengantar IoT 7
8 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Bab Pambuka lan Praktek 2 Proyek IoT
Ing Bab 1, kita ngenalake arsitektur IoT, lan peran lan sesambungan saka lapisan persepsi & kontrol, lapisan jaringan, lapisan platform, lan lapisan aplikasi, uga pangembangan omah sing cerdas. Nanging, kaya nalika sinau nglukis, ngerti kawruh teoretis ora cukup. Kita kudu "ngresiki tangan" kanggo ngetrapake proyek IoT supaya bisa nguwasani teknologi kasebut. Kajaba iku, nalika proyèk pindhah menyang produksi massal stage, perlu kanggo nimbang luwih akeh faktor kayata sambungan jaringan, konfigurasi, interaksi platform maya IoT, manajemen firmware lan nganyari, manajemen produksi massal, lan konfigurasi keamanan. Dadi, apa sing kudu digatekake nalika ngembangake proyek IoT sing lengkap? Ing Bab 1, kita kasebut sing ngarep pinter iku salah siji saka skenario aplikasi IoT paling umum, lan lampu pinter iku salah siji saka peralatan paling dhasar lan praktis, kang bisa digunakake ing omah, hotel, gyms, rumah sakit, etc. Mulane, ing buku iki, kita bakal njupuk construction saka project cahya pinter minangka titik wiwitan, nerangake komponen lan fitur, lan menehi panuntun dhumateng ing pembangunan project. Muga-muga sampeyan bisa nggawe kesimpulan saka kasus iki kanggo nggawe aplikasi IoT liyane.
2.1 Pambuka kanggo Proyek IoT Khas
Ing babagan pangembangan, modul fungsional dhasar proyek IoT bisa diklasifikasikake dadi pangembangan piranti lunak lan perangkat keras piranti IoT, pangembangan aplikasi klien, lan pangembangan platform awan IoT. Penting kanggo njlentrehake modul fungsional dhasar, sing bakal diterangake ing bagean iki.
2.1.1 Modul dhasar kanggo piranti IoT umum
Pangembangan piranti lunak lan hardware piranti IoT kalebu modul dhasar ing ngisor iki: Koleksi data
Minangka lapisan ngisor arsitektur IoT, piranti IoT saka lapisan persepsi & kontrol nyambungake sensor lan piranti liwat chip lan periferal kanggo entuk koleksi data lan kontrol operasi.
9
Pengikatan akun lan konfigurasi awal Kanggo umume piranti IoT, ikatan akun lan konfigurasi awal rampung ing siji proses operasional, kayataample, nyambungake piranti karo pangguna kanthi ngatur jaringan Wi-Fi.
Interaksi karo platform maya IoT Kanggo ngawasi lan ngontrol piranti IoT, iku uga perlu kanggo nyambung menyang platform maya IoT, supaya menehi printah lan status laporan liwat interaksi antarane saben liyane.
Kontrol piranti Nalika disambungake karo platform awan IoT, piranti bisa komunikasi karo awan lan didaftar, diikat, utawa dikontrol. Pangguna bisa takon status produk lan nindakake operasi liyane ing aplikasi smartphone liwat platform awan IoT utawa protokol komunikasi lokal.
Nganyarke firmware piranti IoT uga bisa entuk upgrade firmware adhedhasar kabutuhan pabrikan. Kanthi nampa perintah sing dikirim awan, upgrade firmware lan manajemen versi bakal diwujudake. Kanthi fitur upgrade firmware iki, sampeyan bisa terus nambah fungsi piranti IoT, ndandani cacat, lan nambah pengalaman pangguna.
2.1.2 Modul Dasar Aplikasi Klien
Aplikasi klien (contone, aplikasi smartphone) utamane kalebu modul dhasar ing ngisor iki:
Sistem lan wewenang akun Ndhukung wewenang akun lan piranti.
Kontrol piranti Aplikasi smartphone biasane dilengkapi fungsi kontrol. Pangguna bisa gampang nyambung menyang piranti IoT, lan ngatur kapan wae, ing ngendi wae liwat aplikasi smartphone. Ing omah pinter ing donya nyata, piranti biasane dikontrol liwat aplikasi smartphone, sing ora mung ngidini manajemen piranti cerdas, nanging uga ngirit biaya tenaga kerja. Mulane, kontrol piranti kudu kanggo aplikasi klien, kayata kontrol atribut fungsi piranti, kontrol pemandangan, jadwal, remot kontrol, linkage piranti, lan sapiturute. , lan liya-liyane, supaya urip omah luwih kepenak lan kepenak. Padha bisa wektu AC, mateni jarak adoh, nyetel lampu lorong kanthi otomatis yen lawang ora dikunci, utawa ngalih menyang mode "teater" karo siji tombol.
Aplikasi Klien Notifikasi nganyari status wektu nyata piranti IoT, lan ngirim tandha yen piranti dadi ora normal.
10 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Layanan pelanggan sawise-sales Aplikasi smartphone bisa nyedhiyakake layanan sawise-sales kanggo produk, kanggo ngatasi masalah sing ana gandhengane karo kegagalan piranti IoT lan operasi teknis kanthi tepat wektu.
Fungsi sing dipilih Kanggo nyukupi kabutuhan pangguna sing beda-beda, fungsi liyane bisa ditambahake, kayata Shake, NFC, GPS, lsp. GPS bisa mbantu nyetel akurasi operasi adegan miturut lokasi lan jarak, dene fungsi Shake ngidini pangguna nyetel printah sing bakal dileksanakake kanggo piranti utawa pemandangan tartamtu kanthi goyang.
2.1.3 Pambuka kanggo Platform Cloud IoT Umum
Platform maya IoT minangka platform kabeh-ing-siji sing nggabungake fungsi kayata manajemen piranti, komunikasi keamanan data, lan manajemen kabar. Miturut klompok target lan aksesibilitas, platform awan IoT bisa dipérang dadi platform awan IoT umum (sabanjuré diarani "awan publik") lan platform awan IoT pribadi (sabanjuré diarani "awan pribadi").
Umume awan umum nuduhake platform awan IoT sing dienggo bareng kanggo perusahaan utawa individu, dioperasikake lan dikelola dening panyedhiya platform, lan dituduhake liwat Internet. Bisa gratis utawa murah, lan nyedhiyakake layanan ing saindhenging jaringan umum sing mbukak, kayata Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, lan sapiturute. Minangka platform pendukung, awan publik bisa nggabungake panyedhiya layanan hulu lan pangguna pungkasan hilir kanggo nggawe rantai nilai lan ekosistem anyar.
Cloud pribadi dibangun mung kanggo panggunaan perusahaan, saengga njamin kontrol data, keamanan, lan kualitas layanan sing paling apik. Layanan lan infrastruktur dikelola kanthi kapisah dening perusahaan, lan piranti keras lan piranti lunak sing ndhukung uga darmabakti kanggo pangguna tartamtu. Perusahaan bisa ngatur layanan awan kanggo nyukupi kabutuhan bisnis. Saiki, sawetara pabrikan omah cerdas wis entuk platform awan IoT pribadi lan ngembangake aplikasi omah cerdas adhedhasar kasebut.
Awan umum lan awan pribadi duwe advan dhewetages, sing bakal diterangake mengko.
Kanggo nggayuh konektivitas komunikasi, perlu ngrampungake paling ora pangembangan sing dipasang ing sisih piranti, bebarengan karo server bisnis, platform awan IoT, lan aplikasi smartphone. Ngadhepi proyek gedhe kasebut, awan umum biasane nyedhiyakake kit pangembangan piranti lunak kanggo aplikasi sisih piranti lan smartphone kanggo nyepetake proses kasebut. Awan umum lan pribadi nyedhiyakake layanan kalebu akses piranti, manajemen piranti, bayangan piranti, lan operasi lan pangopènan.
Akses piranti platform maya IoT kudu nyedhiyani ora mung antarmuka kanggo akses piranti nggunakake protokol
Bab 2. Pambuka lan Praktik Proyek IoT 11
kayata MQTT, CoAP, HTTPS, lan WebSoket, nanging uga fungsi otentikasi keamanan piranti kanggo mblokir piranti palsu lan ilegal, kanthi efektif nyuda resiko dikompromi. Otentikasi kasebut biasane ndhukung mekanisme sing beda-beda, saéngga nalika piranti diprodhuksi sacara massal, kudu diwenehi sertifikat piranti miturut mekanisme otentikasi sing dipilih lan diobong menyang piranti kasebut.
Manajemen piranti Fungsi manajemen piranti sing diwenehake dening platform awan IoT ora mung bisa mbantu produsen ngawasi status aktivasi lan status online piranti kasebut kanthi nyata, nanging uga ngidini opsi kayata nambah / mbusak piranti, njupuk, nambah / mbusak grup, upgrade firmware , lan manajemen versi.
Platform awan IoT bayangan piranti bisa nggawe versi virtual sing terus-terusan (bayangan piranti) kanggo saben piranti, lan status bayangan piranti bisa diselarasake lan dipikolehi dening aplikasi smartphone utawa piranti liyane liwat protokol transmisi Internet. Bayangan piranti nyimpen status sing dilaporake paling anyar lan status samesthine saben piranti, lan sanajan piranti kasebut offline, isih bisa entuk status kasebut kanthi nelpon API. Bayangan piranti nyedhiyakake API sing tansah aktif, sing nggawe luwih gampang kanggo mbangun aplikasi smartphone sing sesambungan karo piranti.
Operasi lan pangopènan Fungsi O&M kalebu telung aspek: · Nuduhake informasi statistik babagan piranti lan kabar IoT. · Manajemen log ngidini njupuk informasi babagan prilaku piranti, munggah / mudhun aliran pesen, lan isi pesen. · Debugging piranti ndhukung pangiriman printah, nganyari konfigurasi, lan mriksa interaksi antarane platform maya IoT lan pesen piranti.
2.2 Praktek: Proyek Smart Light
Sawise introduksi teori ing saben bab, sampeyan bakal nemokake bagean praktik sing ana gandhengane karo proyek Smart Light kanggo mbantu sampeyan entuk pengalaman langsung. Proyèk iki adhedhasar chip ESP32-C3 ESP lan ESP RainMaker IoT Cloud Platform, lan nyakup hardware modul nirkabel ing produk cahya cerdas, piranti lunak sing dipasang kanggo piranti cerdas adhedhasar ESP32C3, aplikasi smartphone, lan interaksi ESP RainMaker.
Kode sumber Kanggo sinau lan ngembangake pengalaman sing luwih apik, proyek ing buku iki wis opensourced. Sampeyan bisa ngundhuh kode sumber saka repositori GitHub ing https://github. com/espressif/book-esp32c3-iot-projects.
12 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
2.2.1 Struktur Proyek
Proyek Smart Light kasusun saka telung bagean: i. Piranti cahya cerdas adhedhasar ESP32-C3, tanggung jawab kanggo sesambungan karo platform awan IoT, lan ngontrol saklar, padhang lan suhu warna LED l.amp manik-manik. ii. Aplikasi smartphone (kalebu aplikasi tablet sing mlaku ing Android lan iOS), tanggung jawab kanggo konfigurasi jaringan produk cahya cerdas, uga takon lan ngontrol statuse.
iii. Platform awan IoT adhedhasar ESP RainMaker. Kanggo nyederhanakake, kita nimbang platform maya IoT lan server bisnis sacara sakabehe ing buku iki. Rincian babagan ESP RainMaker bakal diwenehake ing Bab 3.
Korespondensi antarane struktur proyek Smart Light lan arsitektur IoT ditampilake ing Gambar 2.1.
Gambar 2.1. Struktur proyek cahya cerdas
2.2.2 Fungsi Proyek
Dipérang miturut struktur, fungsi saben bagean kaya ing ngisor iki. Piranti cahya sing cerdas
· Konfigurasi lan sambungan jaringan. · Kontrol PWM LED, kayata saklar, padhang, suhu warna, lsp. · Kontrol otomatis utawa pemandangan, contone, ngalih wektu. · Enkripsi lan boot aman saka Flash. · Nganyarke firmware lan manajemen versi.
Bab 2. Pambuka lan Praktik Proyek IoT 13
Aplikasi smartphone · Konfigurasi jaringan lan ikatan piranti. · Kontrol produk cahya sing cerdas, kayata switch, padhang, suhu warna, lsp. · Setelan otomatis utawa pemandangan, contone, ngalih wektu. · Lokal/remote kontrol. · Registrasi pangguna, mlebu, lsp.
Platform maya ESP RainMaker IoT · Ngaktifake akses piranti IoT. · Nyedhiyakake API operasi piranti sing bisa diakses kanggo aplikasi smartphone. · Nganyarke firmware lan manajemen versi.
2.2.3 Persiapan Hardware
Yen kasengsem kanggo nindakake proyek kasebut, sampeyan uga mbutuhake hardware ing ngisor iki: lampu cerdas, smartphone, router Wi-Fi, lan komputer sing nyukupi syarat instalasi lingkungan pangembangan. Lampu pinter
Lampu cerdas minangka jinis bolam anyar, sing bentuke padha karo lampu pijar umum. Lampu cerdas kasusun saka sumber daya sing diatur langkah-mudhun kapasitor, modul nirkabel (karo ESP32-C3 sing dibangun), pengontrol LED lan matriks LED RGB. Nalika disambungake menyang daya, 15 V DC voltage output sawise kapasitor step-mudhun, diode rectification, lan angger-angger menehi energi kanggo LED controller lan matriks LED. Kontroler LED bisa kanthi otomatis ngirim tingkat dhuwur lan kurang ing interval tartamtu, ngoper matriks RGB LED antarane ditutup (lampu urip) lan mbukak (lampu mati), supaya bisa ngetokake cyan, kuning, ijo, ungu, biru, abang, lan cahya putih. Modul nirkabel tanggung jawab kanggo nyambungake menyang router Wi-Fi, nampa lan nglaporake status lampu cerdas, lan ngirim printah kanggo ngontrol LED.
Gambar 2.2. A cahya pinter simulasi
Ing pembangunan awal stage, sampeyan bisa simulasi cahya pinter nggunakake papan ESP32-C3DevKitM-1 disambungake karo RGB LED lamp manik-manik (pirsani Gambar 2.2). Nanging sampeyan kudu
14 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Elinga yen iki ora mung cara kanggo ngumpulake lampu pinter. Desain hardware proyek ing buku iki mung ngemot modul nirkabel (karo dibangun ing ESP32-C3), nanging ora lengkap desain hardware cahya pinter. Kajaba iku, Espressif uga ngasilake papan pangembangan audio berbasis ESP32-C3 ESP32C3-Lyra kanggo ngontrol lampu kanthi audio. Papan kasebut nduweni antarmuka kanggo mikropon lan speaker lan bisa ngontrol jalur LED. Bisa digunakake kanggo ngembangake penyiar audio ultra-murah, kinerja dhuwur lan jalur lampu irama. Figure 2.3 nuduhake Papan ESP32-C3Lyra disambung karo Strip saka 40 lampu LED.
Gambar 2.3. ESP32-C3-Lyra disambung karo strip 40 lampu LED
Smartphone (Android/iOS) Proyek Smart Light kalebu pangembangan aplikasi smartphone kanggo nyetel lan ngontrol produk cahya cerdas.
Router Wi-Fi Router Wi-Fi ngowahi sinyal jaringan kabel lan sinyal jaringan seluler dadi sinyal jaringan nirkabel, supaya komputer, smartphone, tablet, lan piranti nirkabel liyane bisa nyambung menyang jaringan. Kanggo exampNanging, broadband ing omah mung kudu disambungake menyang router Wi-Fi kanggo entuk jaringan nirkabel piranti Wi-Fi. Standar protokol mainstream sing didhukung dening router Wi-Fi yaiku IEEE 802.11n, kanthi rata-rata TxRate 300 Mbps, utawa maksimal 600 Mbps. Padha kompatibel karo IEEE 802.11b lan IEEE 802.11g. ESP32-C3 chip dening Espressif ndhukung IEEE 802.11b/g/n, supaya sampeyan bisa milih siji-band (2.4 GHz) utawa dual-band (2.4 GHz lan 5 GHz) router Wi-Fi.
Lingkungan pangembangan komputer (Linux/macOS/Windows) bakal dienal ing Bab 4. Bab 2. Pambuka lan Praktek Proyek IoT 15
2.2.4 Proses Pangembangan
Gambar 2.4. Langkah-langkah ngembangake proyek Smart Light
Desain hardware Desain hardware piranti IoT penting kanggo proyek IoT. A project cahya pinter lengkap dimaksudaké kanggo gawé alamp kerja ing pasokan listrik. Produsen beda mrodhuksi lamps saka macem-macem gaya lan jinis driver, nanging modul nirkabel biasane fungsi padha. Kanggo nyederhanakake proses pangembangan proyek Smart Ligh, buku iki mung nyakup desain hardware lan pangembangan piranti lunak modul nirkabel.
Konfigurasi platform maya IoT Kanggo nggunakake platform awan IoT, sampeyan kudu ngatur proyek ing backend, kayata nggawe produk, nggawe piranti, nyetel properti piranti, lsp.
Pangembangan piranti lunak semat kanggo piranti IoT Ngleksanakake fungsi sing dikarepake karo ESP-IDF, SDK sisih piranti Espressif, kalebu nyambungake menyang platform awan IoT, ngembangake driver LED, lan nganyarke perangkat kukuh.
Pangembangan aplikasi smartphone Ngembangake aplikasi smartphone kanggo sistem Android lan iOS kanggo nyadari registrasi lan login pangguna, kontrol piranti lan fungsi liyane.
Optimasi piranti IoT Sawise pangembangan dhasar fungsi piranti IoT rampung, sampeyan bisa nguripake tugas optimasi, kayata optimasi daya.
Tes produksi massal Nindakake tes produksi massal miturut standar sing gegandhengan, kayata tes fungsi peralatan, tes tuwa, tes RF, lsp.
Senadyan langkah-langkah sing kadhaptar ing ndhuwur, proyek Smart Light ora kudu tundhuk prosedur kasebut amarga tugas sing beda-beda uga bisa ditindakake bebarengan. Kanggo example, lunak ditempelake lan app smartphone bisa dikembangaké ing podo karo. Sawetara langkah bisa uga kudu diulang, kayata optimasi piranti IoT lan tes produksi massal.
16 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
2.3 Ringkesan
Ing bab iki, kita pisanan nerangake babagan komponen dhasar lan modul fungsional proyek IoT, banjur ngenalake kasus Smart Light kanggo praktik, ngrujuk marang struktur, fungsi, persiapan hardware, lan proses pangembangan. Pembaca bisa nggawe kesimpulan saka praktik kasebut lan dadi yakin kanggo nindakake proyek IoT kanthi kesalahan minimal ing mangsa ngarep.
Bab 2. Pambuka lan Praktik Proyek IoT 17
18 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Bab 3
Pambuka
kanggo
ESP
RainMaker
Internet of Things (IoT) nawakake kemungkinan tanpa wates kanggo ngganti cara urip wong, nanging pangembangan teknik IoT kebak tantangan. Kanthi awan umum, produsen terminal bisa ngetrapake fungsi produk liwat solusi ing ngisor iki:
Adhedhasar platform maya panyedhiya solusi Kanthi cara iki, pabrikan terminal mung kudu ngrancang hardware produk, banjur nyambungake hardware menyang awan nggunakake modul komunikasi sing kasedhiya, lan ngatur fungsi produk miturut pedoman kasebut. Iki minangka pendekatan sing efisien amarga ora mbutuhake pangembangan lan operasi lan pangopènan sisih server lan aplikasi (O&M). Iki ngidini produsen terminal fokus ing desain hardware tanpa kudu nimbang implementasine awan. Nanging, solusi kasebut (contone, perangkat kukuh piranti lan App) umume ora mbukak sumber, mula fungsi produk bakal diwatesi dening platform maya panyedhiya sing ora bisa disesuaikan. Kangge, data pangguna lan piranti uga kalebu ing platform maya.
Adhedhasar produk maya Ing solusi iki, sawise ngrampungake desain hardware, produsen terminal ora mung kudu ngetrapake fungsi awan nggunakake siji utawa luwih produk awan sing diwenehake dening awan umum, nanging uga kudu ngubungake hardware karo awan. Kanggo example, kanggo nyambung menyang Amazon Web Layanan (AWS), produsen terminal kudu nggunakake produk AWS kayata Amazon API Gateway, AWS IoT Core, lan AWS Lambda kanggo ngaktifake akses piranti, remot kontrol, panyimpenan data, manajemen pangguna, lan fungsi dhasar liyane. Ora mung njaluk produsen terminal supaya bisa nggunakake lan ngatur produk awan kanthi pangerten sing jero lan pengalaman sing sugih, nanging uga mbutuhake biaya konstruksi lan pangopènan kanggo wiwitan lan mengko.tagIki ndadekake tantangan gedhe kanggo energi lan sumber daya perusahaan.
Dibandhingake karo awan umum, awan pribadi biasane dibangun kanggo proyek lan produk tartamtu. Pangembang awan pribadi diwenehi kebebasan tingkat paling dhuwur ing desain protokol lan implementasi logika bisnis. Produsen terminal bisa nggawe produk lan rencana desain ing bakal, lan gampang nggabungake lan nguatake data pangguna. Nggabungake keamanan dhuwur, skalabilitas lan linuwih awan umum karo advantages saka maya pribadi, Espressif dibukak ESP
19
RainMaker, solusi maya pribadi sing terintegrasi adhedhasar awan Amazon. Pangguna bisa masang ESP RainMaker lan nggawe awan pribadi mung nganggo akun AWS.
3.1 Apa ESP RainMaker?
ESP RainMaker minangka platform AIoT lengkap sing dibangun kanthi macem-macem produk AWS sing diwasa. Iki nyedhiyakake macem-macem layanan sing dibutuhake kanggo produksi massal kayata akses maya piranti, upgrade piranti, manajemen backend, login pihak katelu, integrasi swara, lan manajemen pangguna. Kanthi nggunakake Serverless Application Repository (SAR) sing disedhiyakake dening AWS, produsen terminal bisa kanthi cepet masang ESP RainMaker menyang akun AWS, sing efisien wektu lan gampang dioperasikake. Ngatur lan dikelola dening Espressif, SAR sing digunakake dening ESP RainMaker mbantu para pangembang nyuda biaya pangopènan awan lan nyepetake pangembangan produk AIoT, saéngga mbangun solusi AIoT sing aman, stabil, lan bisa disesuaikan. Gambar 3.1 nuduhake arsitektur ESP RainMaker.
Gambar 3.1. Arsitektur ESP RainMaker
Server umum ESP RainMaker dening Espressif gratis kanggo kabeh penggemar, pembuat, lan pendidik ESP kanggo evaluasi solusi. Pangembang bisa mlebu nganggo akun Apple, Google, utawa GitHub, lan kanthi cepet nggawe prototipe aplikasi IoT dhewe. Server umum nggabungake Alexa lan Google Home, lan nyedhiyakake layanan kontrol swara, sing didhukung dening Alexa Skill lan Google Actions. Fungsi pangenalan semantik uga didhukung dening pihak katelu. Piranti RainMaker IoT mung nanggapi tumindak tartamtu. Kanggo dhaptar lengkap printah swara sing didhukung, priksa platform pihak katelu. Kajaba iku, Espressif nawakake RainMaker App umum kanggo pangguna ngontrol produk liwat smartphone. 20 ESP32-C3 Petualangan Nirkabel: Pandhuan Komprehensif kanggo IoT
3.2 Implementasine ESP RainMaker
Minangka ditampilake ing Figure 3.2, ESP RainMaker kasusun saka papat bagean: · Pratelan Service, mbisakake piranti RainMaker kanggo mbosenke diwenehi sertifikat. · RainMaker Cloud (uga dikenal minangka backend awan), nyedhiyakake layanan kayata nyaring pesen, manajemen pangguna, panyimpenan data, lan integrasi pihak katelu. · Agen RainMaker, mbisakake piranti RainMaker nyambung menyang RainMaker Cloud. · Klien RainMaker (Aplikasi RainMaker utawa skrip CLI), kanggo nyedhiyakake, nggawe pangguna, asosiasi lan kontrol piranti, lsp.
Gambar 3.2. Struktur ESP RainMaker
ESP RainMaker nyedhiyakake piranti lengkap kanggo pangembangan produk lan produksi massal, kalebu: RainMaker SDK
RainMaker SDK adhedhasar ESP-IDF lan menehi kode sumber agen sisih piranti lan API C related kanggo pembangunan perangkat kukuh. Pangembang mung kudu nulis logika aplikasi lan ninggalake liyane menyang framework RainMaker. Kanggo informasi luwih lengkap babagan C API, bukak https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Versi umum saka RainMaker App ngidini pangembang kanggo ngrampungake provisioning piranti, lan ngontrol lan takon status piranti (contone, produk cahya pinter). Kasedhiya ing toko app iOS lan Android. Kanggo rincian liyane, waca Bab 10. REST API REST API mbantu pangguna nggawe aplikasi dhewe sing padha karo RainMaker App. Kanggo informasi luwih lengkap, bukak https://swaggerapis.rainmaker.espressif.com/.
Bab 3. Pambuka kanggo ESP RainMaker 21
API Python A CLI basis Python, kang nerangake karo RainMaker SDK, kasedhiya kanggo ngleksanakake kabeh fungsi padha fitur smartphone. Kanggo informasi luwih lengkap babagan API Python, bukak https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, kanthi tingkat akses sing luwih dhuwur, diwenehake kanggo penyebaran pribadi ESP RainMaker kanggo ngasilake sertifikat piranti kanthi akeh.
3.2.1 Layanan pratelan
Kabeh komunikasi antarane piranti RainMaker lan backend maya ditindakake liwat MQTT+TLS. Ing konteks ESP RainMaker, "Klaim" minangka proses ing ngendi piranti entuk sertifikat saka Layanan Klaim kanggo nyambung menyang backend maya. Elinga yen Layanan Klaim mung ditrapake kanggo layanan RainMaker umum, dene kanggo panyebaran pribadi, sertifikat piranti kudu digawe akeh liwat Admin CLI. ESP RainMaker ndhukung telung jinis Layanan Klaim: Klaim Mandiri
Piranti kasebut dhewe njupuk sertifikat liwat kunci rahasia sing wis diprogram ing eFuse sawise nyambung menyang Internet. Host Driven Claiming Sertifikat dipikolehi saka host pangembangan kanthi akun RainMaker. Dibantu Klaim Sertifikat dipikolehi liwat aplikasi smartphone sajrone provisioning.
3.2.2 Agen RainMaker
Gambar 3.3. Struktur RainMaker SDK Fungsi utama Agen RainMaker yaiku nyedhiyakake konektivitas lan mbantu lapisan aplikasi kanggo ngolah data awan uplink/downlink. Dibangun liwat RainMaker SDK 22 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT
lan dikembangake adhedhasar kerangka kerja ESP-IDF sing wis kabukten, nggunakake komponen ESP-IDF kayata RTOS, NVS, lan MQTT. Gambar 3.3 nuduhake struktur RainMaker SDK.
RainMaker SDK kalebu rong fitur utama.
Sambungan
i. Kerjasama karo Layanan Klaim kanggo entuk sertifikat piranti.
ii. Nyambung menyang backend maya nggunakake protokol MQTT sing aman kanggo nyedhiyakake konektivitas remot lan ngleksanakake remot kontrol, laporan pesen, manajemen pangguna, manajemen piranti, lan sapiturute. Iku nggunakake komponen MQTT ing ESP-IDF kanthi standar lan nyedhiyakake lapisan abstraksi kanggo antarmuka karo liyane. tumpukan protokol.
iii. Nyedhiyakake komponen provisioning wifi kanggo sambungan lan provisioning Wi-Fi, esp komponen https ota kanggo nganyarke OTA, lan komponen ctrl lokal esp kanggo panemuan lan sambungan piranti lokal. Kabeh tujuan kasebut bisa digayuh liwat konfigurasi sing gampang.
Pangolahan data
i. Nyimpen sertifikat piranti sing ditanggepi dening Layanan Klaim lan data sing dibutuhake nalika mbukak RainMaker, kanthi standar nggunakake antarmuka sing diwenehake dening komponen lampu kilat nvs, lan nyedhiyakake API kanggo pangembang kanggo nggunakake langsung.
ii. Nggunakake mekanisme callback kanggo ngolah data awan uplink / downlink lan kanthi otomatis mbukak blokir data menyang lapisan aplikasi supaya gampang diproses dening pangembang. Kanggo exampNanging, RainMaker SDK nyedhiyakake antarmuka sing sugih kanggo nggawe data TSL (Bahasa Spesifikasi Barang), sing dibutuhake kanggo nemtokake model TSL kanggo njlèntrèhaké piranti IoT lan ngleksanakake fungsi kayata wektu, countdown, lan kontrol swara. Kanggo fitur interaktif dhasar kayata wektu, RainMaker SDK nyedhiyakake solusi tanpa pangembangan sing bisa diaktifake nalika dibutuhake. Banjur, Agen RainMaker bakal langsung ngolah data, ngirim menyang awan liwat topik MQTT sing gegandhengan, lan menehi umpan balik owah-owahan data ing backend awan liwat mekanisme callback.
3.2.3 Cloud Backend
Backend maya dibangun ing AWS Serverless Computing lan digayuh liwat AWS Cognito (sistem manajemen identitas), Amazon API Gateway, AWS Lambda (layanan komputasi tanpa server), Amazon DynamoDB (database NoSQL), AWS IoT Core (Inti akses IoT sing nyedhiyakake akses MQTT. lan nyaring aturan), Amazon Simple Email Service (SES layanan mail prasaja), Amazon CloudFront (jaringan pangiriman cepet), Amazon Simple Queue Service (SQS antrian pesen), lan Amazon S3 (layanan panyimpenan ember). Tujuane kanggo ngoptimalake skalabilitas lan keamanan. Kanthi ESP RainMaker, pangembang bisa ngatur piranti tanpa kudu nulis kode ing méga. Pesen sing dilapurake dening piranti dikirim kanthi transparan
Bab 3. Pambuka kanggo ESP RainMaker 23
klien aplikasi utawa layanan pihak katelu liyane. Tabel 3.1 nuduhake produk lan fungsi maya AWS sing digunakake ing backend maya, kanthi luwih akeh produk lan fitur sing dikembangake.
Tabel 3.1. Produk lan fungsi awan AWS sing digunakake dening backend awan
Produk AWS Cloud Digunakake dening RainMaker
Fungsi
AWS Cognito
Ngatur kredensial pangguna lan ndhukung login pihak katelu
AWS Lambda
Ngleksanakake logika bisnis inti saka backend maya
Amazon Timestream Nyimpen data seri wektu
Amazon DynamoDB Nyimpen informasi pribadi pelanggan
Inti AWS IoT
Ndhukung komunikasi MQTT
Amazon SES
Nyedhiyakake layanan ngirim email
Amazon CloudFront Nyepetake manajemen backend webakses situs
Amazon SQS
Nerusake pesen saka AWS IoT Core
3.2.4 Klien RainMaker
Klien RainMaker, kayata App lan CLI, komunikasi karo backend awan liwat REST API. Informasi rinci lan instruksi babagan API REST bisa ditemokake ing dokumentasi Swagger sing diwenehake dening Espressif. Klien aplikasi seluler RainMaker kasedhiya kanggo sistem iOS lan Android. Iki ngidini provisioning, kontrol, lan enggo bareng piranti, uga nggawe lan ngaktifake tugas countdown lan nyambungake menyang platform pihak katelu. Bisa mbukak UI lan lambang kanthi otomatis miturut konfigurasi sing dilapurake dening piranti lan nampilake TSL piranti kanthi lengkap.
Kanggo example, yen cahya pinter dibangun ing RainMaker SDK-diwenehake Examples, lambang lan UI saka lampu bohlam bakal dimuat kanthi otomatis nalika provisioning wis rampung. Pangguna bisa ngganti werna lan padhange cahya liwat antarmuka lan entuk kontrol pihak katelu kanthi ngubungake Alexa Smart Home Skill utawa Google Smart Home Actions menyang akun ESP RainMaker. Gambar 3.4 nuduhake lambang lan UI examples saka lampu bohlam mungguh ing Alexa, Google Home, lan ESP RainMaker App.
24 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
(a) Examplan – Alexa
(b) Example - Ngarep Google
(c) Example – ESP RainMaker
Gambar 3.4. Examplambang lan UI saka lampu bohlam ing Alexa, Google Home, lan ESP RainMaker App
3.3 Laku: Poin Kunci kanggo Ngembangake karo ESP RainMaker
Sawise lapisan driver piranti wis rampung, pangembang bisa miwiti nggawe model TSL lan ngolah data downlink nggunakake API sing diwenehake dening RainMaker SDK, lan ngaktifake layanan dhasar ESP RainMaker adhedhasar definisi produk lan syarat.
Bab 3. Pambuka kanggo ESP RainMaker 25
Bagean 9.4 buku iki bakal nerangake implementasine lampu cerdas LED ing RainMaker. Sajrone debugging, pangembang bisa nggunakake alat CLI ing RainMaker SDK kanggo komunikasi karo cahya pinter (utawa nelpon REST API saka Swagger).
Bab 10 bakal njlentrehake panggunaan REST API kanggo ngembangake aplikasi smartphone. Nganyarke OTA lampu cerdas LED bakal dibahas ing Bab 11. Yen pangembang wis ngaktifake pemantauan jarak jauh ESP Insights, backend manajemen ESP RainMaker bakal nampilake data ESP Insights. Rincian bakal diwenehi ing Bab 15.
ESP RainMaker ndhukung penyebaran pribadi, sing beda karo server RainMaker umum kanthi cara ing ngisor iki:
Layanan Nuntut Kanggo ngasilake sertifikat ing penyebaran pribadi, sampeyan kudu nggunakake CLI Admin RainMaker tinimbang Nuntut. Kanthi server umum, pangembang kudu diwenehi hak admin kanggo ngleksanakake upgrade perangkat kukuh, nanging ora dikarepake ing panyebaran komersial. Mula, ora ana layanan otentikasi sing kapisah sing bisa disedhiyakake kanggo ngaku dhewe, utawa hak admin kanggo klaim sing didorong utawa dibantu.
Aplikasi telpon Ing panyebaran pribadi, aplikasi kudu dikonfigurasi lan disusun kanthi kapisah kanggo mesthekake yen sistem akun ora interoperable.
Login pihak katelu lan integrasi swara Pangembang kudu ngatur kanthi kapisah liwat akun Google lan Apple Developer kanggo ngaktifake login pihak katelu, uga integrasi Alexa Skill lan Google Voice Assistant.
TIPS Kanggo rincian babagan penyebaran awan, bukak https://customer.rainmaker.espressif. com. Ing babagan perangkat kukuh, migrasi saka server umum menyang server pribadi mung mbutuhake ngganti sertifikat piranti, sing ningkatake efisiensi migrasi lan nyuda biaya migrasi lan debugging sekunder.
3.4 Fitur ESP RainMaker
Fitur ESP RainMaker utamane ditargetake ing telung aspek - manajemen pangguna, pangguna pungkasan, lan admin. Kabeh fitur didhukung ing server umum lan pribadi kajaba nyatakake.
3.4.1 Manajemen Panganggo
Fitur manajemen pangguna ngidini pangguna pungkasan kanggo ndhaptar, mlebu, ngganti tembung sandhi, njupuk tembung sandhi, lsp.
26 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Ndhaptar lan mlebu Cara registrasi lan login sing didhukung dening RainMaker kalebu: · Email id + Sandi · Nomer telpon + Sandi · Akun Google · Akun Apple · Akun GitHub (mung server umum) · Akun Amazon (mung server pribadi)
CATETAN Ndaftar nggunakake Google/Amazon nuduhake alamat email pangguna karo RainMaker. Ndaftar nggunakake Apple nuduhake alamat goblok sing ditugasake Apple kanggo pangguna khusus kanggo layanan RainMaker. Akun RainMaker bakal digawe kanthi otomatis kanggo pangguna sing mlebu nganggo akun Google, Apple, utawa Amazon kanggo pisanan.
Ganti tembung sandhi Valid mung kanggo id Email / nomer telpon login adhedhasar. Kabeh sesi aktif liyane bakal metu sawise tembung sandhi diganti. Minangka prilaku AWS Cognito, sesi log metu bisa tetep aktif nganti 1 jam.
Nompo sandhi Valid mung kanggo Email id / nomer telpon logins adhedhasar.
3.4.2 Fitur pangguna pungkasan
Fitur mbukak kanggo pangguna pungkasan kalebu kontrol lan ngawasi lokal lan remot, jadwal, klompok piranti, enggo bareng piranti, kabar push, lan integrasi pihak katelu.
Kontrol lan ngawasi remot · Konfigurasi pitakon, nilai parameter, lan status sambungan kanggo siji utawa kabeh piranti. · Setel paramèter kanggo siji utawa sawetara piranti.
Kontrol lan ngawasi lokal Ponsel lan piranti kudu disambungake menyang jaringan sing padha kanggo kontrol lokal.
Penjadwalan · Pangguna wis nyetel tumindak tartamtu ing wektu tartamtu. · Ora ana sambungan Internet sing dibutuhake kanggo piranti nalika nglakokake jadwal. · Sepisan utawa baleni (kanthi nemtokake dina) kanggo piranti siji utawa pirang-pirang.
Panglompokan piranti Ndhukung klompok abstrak multi-level Metadata grup bisa digunakake kanggo nggawe struktur Kamar Ngarep.
Bab 3. Pambuka kanggo ESP RainMaker 27
Nuduhake piranti Siji utawa luwih piranti bisa dienggo bareng karo siji utawa luwih pangguna.
Kabar push Pangguna pungkasan bakal nampa kabar push kanggo acara kayata · Piranti anyar ditambahake/dibusak · Piranti disambungake menyang maya · Piranti pedhot saka awan · Panjalukan enggo bareng piranti digawe/ditampa/ditolak · Pesen tandha dilaporake dening piranti
Integrasi pihak katelu Alexa lan Google Voice Assistant didhukung kanggo ngontrol piranti RainMaker, kalebu lampu, switch, soket, penggemar, lan sensor suhu.
3.4.3 Fitur Admin
Fitur admin ngidini administrator ngleksanakake registrasi piranti, klompok piranti, lan upgrade OTA, lan kanggo view statistik lan data ESP Insights.
Registrasi piranti Nggawe sertifikat piranti lan ndhaftar karo Admin CLI (mung server pribadi).
Panglompokan piranti Gawe grup abstrak utawa terstruktur adhedhasar informasi piranti (mung server pribadi).
Nganyarke Over-the-Air (OTA) Upload firmware adhedhasar versi lan model, menyang siji utawa luwih piranti utawa grup Monitor, mbatalake, utawa arsip proyek OTA.
View statistika Viewstatistik sing bisa kalebu: · Registrasi piranti (sertifikat sing didaftar dening admin) · Aktivasi piranti (piranti disambungake kanggo pisanan) · Akun pangguna · Asosiasi piranti pangguna
View data ESP Insights Viewdata ESP Insights sing bisa kalebu: · Kasalahan, peringatan, lan log khusus · Laporan lan analisis kacilakan · Alasan urip maneh · Metrik kaya panggunaan memori, RSSI, lsp · Metrik lan variabel khusus
28 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
3.5 Ringkesan
Ing bab iki, kita ngenalaken sawetara prabédan utama antarane penyebaran RainMaker umum lan penyebaran pribadi. Solusi ESP RainMaker pribadi sing diluncurake dening Espressif pancen dipercaya lan bisa diperluas. Kabeh Kripik seri ESP32 wis disambungake lan dicocogake kanggo AWS, kang nemen nyuda biaya. Pangembang bisa fokus ing verifikasi prototipe tanpa kudu sinau babagan produk awan AWS. Kita uga nerangake implementasine lan fitur ESP RainMaker, lan sawetara poin penting kanggo pangembangan nggunakake platform kasebut.
Pindai kanggo ngundhuh ESP RainMaker kanggo Android Pindai kanggo ngundhuh ESP RainMaker kanggo iOS
Bab 3. Pambuka kanggo ESP RainMaker 29
30 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Bab Setting Up 4 Development Environment
Bab iki fokus ing ESP-IDF, framework pangembangan piranti lunak resmi kanggo ESP32-C3. Kita bakal nerangake carane nyiyapake lingkungan ing macem-macem sistem operasi, lan ngenalake struktur proyek lan mbangun sistem ESP-IDF, uga panggunaan alat pangembangan sing gegandhengan. Banjur kita bakal nampilake proses kompilasi lan mlaku saka mantanample project, nalika kurban panjelasan rinci log output ing saben stage.
4.1 ESP-IDF Swaraview
ESP-IDF (Espressif IoT Development Framework) minangka kerangka pangembangan IoT siji-mandeg sing diwenehake dening Teknologi Espressif. Iki nggunakake C/C++ minangka basa pangembangan utama lan ndhukung kompilasi silang ing sistem operasi utama kayata Linux, Mac, lan Windows. mantanample program klebu ing buku iki dikembangaké nggunakake ESP-IDF, kang nawakake fitur ing ngisor iki: · SoC driver tingkat sistem. ESP-IDF kalebu driver kanggo ESP32, ESP32-S2, ESP32-C3,
lan Kripik liyane. Pembalap iki kalebu perpustakaan tingkat rendah periferal (LL), perpustakaan lapisan abstraksi hardware (HAL), dhukungan RTOS lan piranti lunak driver lapisan ndhuwur, lsp. · Komponen penting. ESP-IDF nggabungake komponen dhasar sing dibutuhake kanggo pangembangan IoT. Iki kalebu macem-macem tumpukan protokol jaringan kayata HTTP lan MQTT, kerangka manajemen daya kanthi modulasi frekuensi dinamis, lan fitur kaya Flash Encryption lan Boot Aman, lsp. · Piranti pangembangan lan produksi. ESP-IDF nyedhiyakake alat sing umum digunakake kanggo mbangun, lampu kilat, lan debugging sajrone pangembangan lan produksi massal (pirsani Gambar 4.1), kayata sistem bangunan adhedhasar CMake, rantai alat kompilasi silang adhedhasar GCC, lan JTAG alat debugging adhedhasar OpenOCD, etc. Wigati dicathet menawa kode ESP-IDF utamane adhedhasar lisensi sumber terbuka Apache 2.0. Pangguna bisa ngembangake piranti lunak pribadi utawa komersial tanpa watesan nalika netepi syarat lisensi sumber terbuka. Kajaba iku, pangguna diwenehi lisensi paten permanen kanthi gratis, tanpa kewajiban mbukak sumber modifikasi apa wae sing digawe kanggo kode sumber kasebut.
31
Gambar 4.1.
Nggawe, flashing, lan debug-
piranti ging kanggo pangembangan lan produksi massal
4.1.1 ESP-IDF Versi
Kode ESP-IDF di-host ing GitHub minangka proyek sumber terbuka. Saiki, ana telung versi utama sing kasedhiya: v3, v4, lan v5. Saben versi utama biasane ngemot macem-macem subversi, kayata v4.2, v4.3, lan liya-liyane. Sistem Espressif njamin dhukungan 30 wulan kanggo ndandani bug lan patch keamanan kanggo saben sub-versi sing dirilis. Mulane, revisi subversions uga dirilis ajeg, kayata v4.3.1, v4.2.2, etc. Tabel 4.1 nuduhake status dhukungan saka macem-macem versi ESP-IDF kanggo Kripik Espressif, nuduhake apa lagi ing pra.view stage (nawakake dhukungan kanggo praview versi, sing bisa uga ora duwe fitur utawa dokumentasi tartamtu) utawa didhukung kanthi resmi.
Tabel 4.1. Status Dhukungan saka macem-macem versi ESP-IDF kanggo Kripik Espressif
Seri ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 didhukung
v4.2 didhukung didhukung
v4.3 didhukung didhukung didhukung
v4.4 didhukung didhukung didhukung didhukung
praview
v5.0 didhukung didhukung didhukung didhukung didhukung preview
32 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Pengulangan versi utama asring kalebu pangaturan struktur kerangka lan nganyari sistem kompilasi. Kanggo example, owah-owahan utama saka v3.* kanggo v4.* ana migrasi bertahap saka sistem mbangun saka Make kanggo CMake. Ing sisih liya, pengulangan versi cilik biasane mbutuhake tambahan fitur anyar utawa dhukungan kanggo chip anyar.
Penting kanggo mbedakake lan mangerteni hubungan antarane versi stabil lan cabang GitHub. Versi sing dilabel minangka v*.* utawa v*.*.* makili versi stabil sing wis lulus testing internal lengkap dening Espressif. Sawise didandani, kode, rantai alat, lan dokumen rilis kanggo versi sing padha tetep ora diganti. Nanging, cabang GitHub (contone, cabang release/v4.3) ngalami kode sing kerep dilakoni, asring saben dina. Mula, rong potongan kode ing cabang sing padha bisa beda-beda, mula pangembang kudu nganyari kode kasebut kanthi cepet.
4.1.2 Alur Kerja Git ESP-IDF
Espressif ngetutake alur kerja Git tartamtu kanggo ESP-IDF, digarisake kaya ing ngisor iki:
· Owah-owahan anyar digawe ing cabang master, sing dadi cabang pangembangan utama. Versi ESP-IDF ing cabang master tansah nggawa -dev tag kanggo nuduhake yen saiki lagi dikembangake, kayata v4.3-dev. Owah-owahan ing cabang master pisanan bakal reviewed lan dites ing panyimpenan internal Espressif, banjur di-push menyang GitHub sawise testing otomatis rampung.
· Sawise versi anyar wis rampung pembangunan fitur ing cabang master lan ketemu kritéria kanggo ngetik beta testing, transisi menyang cabang anyar, kayata release/v4.3. Kajaba iku, cabang anyar iki tagged minangka versi pra-rilis, kaya v4.3-beta1. Pangembang bisa ngrujuk menyang platform GitHub kanggo ngakses dhaptar lengkap cabang lan tags kanggo ESP-IDF. Wigati dimangerteni manawa versi beta (versi pra-rilis) bisa uga isih duwe masalah sing dikenal. Nalika versi beta ngalami tes terus-terusan, koreksi bug ditambahake ing versi iki lan cabang master bebarengan. Kangge, cabang master bisa uga wis wiwit ngembangake fitur-fitur anyar kanggo versi sabanjure. Nalika testing meh rampung, bakal ditambahake label release calon (rc) kanggo cabang, nuduhake yen iku calon potensial kanggo release resmi, kayata v4.3-rc1. Ing stage, cabang tetep versi pra-rilis.
· Yen ora ana bug utama sing ditemokake utawa dilaporake, versi pra-rilis pungkasane nampa label versi utama (contone, v5.0) utawa label versi cilik (contone, v4.3) lan dadi versi rilis resmi, sing didokumentasikake. ing kaca cathetan rilis. Salajengipun, sembarang kewan omo sing diidentifikasi ing versi iki didandani ing cabang rilis. Sawise testing manual rampung, cabang diwenehi label versi bug-fix (contone, v4.3.2), kang uga dibayangke ing kaca cathetan release.
Bab 4. Nyetel Lingkungan Pangembangan 33
4.1.3 Milih Versi sing Cocok
Wiwit ESP-IDF resmi wiwit ndhukung ESP32-C3 saka versi v4.3, lan v4.4 durung dirilis sacara resmi nalika nulis buku iki, versi sing digunakake ing buku iki v4.3.2, yaiku versi revisi. saka v4.3. Nanging, penting kanggo dicathet yen nalika sampeyan maca buku iki, v4.4 utawa versi sing luwih anyar bisa uga wis kasedhiya. Nalika milih versi, disaranake ing ngisor iki:
· Kanggo pangembang tingkat entri, disaranake milih versi v4.3 stabil utawa versi revisi, sing cocog karo mantanampversi le digunakake ing buku iki.
· Kanggo tujuan produksi massal, disaranake nggunakake versi stabil paling anyar kanggo entuk manfaat saka dhukungan teknis paling anyar.
· Yen sampeyan pengin eksprimen karo chip anyar utawa njelajah fitur produk anyar, gunakake cabang master. Versi paling anyar ngemot kabeh fitur paling anyar, nanging elinga manawa ana bug sing dikenal utawa ora dingerteni.
· Yen versi stabil sing digunakake ora kalebu fitur anyar sing dikarepake lan sampeyan pengin nyilikake risiko sing ana gandhengane karo cabang master, coba gunakake cabang rilis sing cocog, kayata cabang rilis / v4.4. Repositori GitHub Espressif pisanan bakal nggawe cabang release/v4.4 lan banjur ngeculake versi stabil v4.4 adhedhasar snapshot sajarah tartamtu saka cabang iki, sawise ngrampungake kabeh pembangunan fitur lan testing.
4.1.4 Luwihview saka Direktori ESP-IDF SDK
ESP-IDF SDK kasusun saka rong direktori utama: esp-idf lan .espressif. Tilas ngemot kode sumber gudang ESP-IDF files lan skrip kompilasi, dene sing terakhir nyimpen rentengan alat kompilasi lan piranti lunak liyane. Keahlian karo rong direktori kasebut bakal mbantu para pangembang nggunakake sumber daya sing kasedhiya lan nyepetake proses pangembangan. Struktur direktori ESP-IDF diterangake ing ngisor iki:
(1) Direktori kode repositori ESP-IDF (/esp/esp-idf), kaya sing ditampilake ing Gambar 4.2.
a. Komponen direktori komponen
Direktori inti iki nggabungake akeh komponen piranti lunak penting ESP-IDF. Ora ana kode proyek sing bisa dikompilasi tanpa ngandelake komponen ing direktori iki. Iku kalebu support driver kanggo macem-macem Kripik Espressif. Saka perpustakaan LL lan antarmuka perpustakaan HAL kanggo peripheral menyang Driver tingkat ndhuwur lan Virtual File Dhukungan lapisan Sistem (VFS), pangembang bisa milih komponen sing cocog ing tingkat sing beda kanggo kabutuhan pangembangane. ESP-IDF uga ndhukung sawetara tumpukan protokol jaringan standar kayata TCP/IP, HTTP, MQTT, WebSoket, lsp. Pangembang bisa nggunakake antarmuka sing akrab kaya Socket kanggo mbangun aplikasi jaringan. Komponen nyedhiyakake pemahaman-
34 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Gambar 4.2. Direktori kode repositori ESP-IDF
fungsionalitas sive lan bisa gampang Integrasi menyang aplikasi, saéngga pangembang mung fokus ing logika bisnis. Sawetara komponen umum kalebu: · driver: Komponen iki ngemot program driver peripheral kanggo macem-macem Espressif
seri chip, kayata GPIO, I2C, SPI, UART, LEDC (PWM), etc.. Program driver peripheral ing komponen iki nawakake antarmuka abstrak chip-independent. Saben peripheral duwe header umum file (kayata gpio.h), mbusak perlu kanggo menehi hasil karo pitakonan support chip-tartamtu beda. · esp_wifi: Wi-Fi, minangka peripheral khusus, dianggep minangka komponen sing kapisah. Iki kalebu macem-macem API kayata initialization saka macem-macem mode driver Wi-Fi, konfigurasi parameter, lan pangolahan acara. Fungsi tartamtu saka komponen iki kasedhiya ing wangun perpustakaan link statis. ESP-IDF uga nyedhiyakake dokumentasi driver lengkap supaya gampang digunakake.
Bab 4. Nyetel Lingkungan Pangembangan 35
· freertos: Komponen iki ngemot kode FreeRTOS lengkap. Saliyane nyedhiyakake dhukungan lengkap kanggo sistem operasi iki, Espressif uga wis nambah dhukungan kanggo chip dual-inti. Kanggo chip dual-inti kaya ESP32 lan ESP32-S3, pangguna bisa nggawe tugas ing inti tartamtu.
b. Dokumen direktori docs
Direktori iki ngemot dokumen pangembangan sing gegandhengan karo ESP-IDF, kalebu Pandhuan Miwiti, Manual Referensi API, Pandhuan Pangembangan, lsp.
CATETAN Sawise dikompilasi dening alat otomatis, isi direktori iki disebarake ing https://docs.espressif.com/projects/esp-idf. Priksa manawa kanggo ngalih target dokumen menyang ESP32-C3 lan pilih versi ESP-IDF sing ditemtokake.
c. Piranti alat skrip
Direktori iki ngemot alat ngarep kompilasi sing umum digunakake kayata idf.py, lan alat terminal monitor idf_monitor.py, lsp. Sub-direktori cmake uga ngemot skrip inti files saka sistem kompilasi, dadi dhasar kanggo ngleksanakake aturan kompilasi ESP-IDF. Nalika nambahake variabel lingkungan, isi ing direktori alat ditambahake menyang variabel lingkungan sistem, ngidini idf.py bisa dieksekusi langsung ing dalan proyek.
d. Exampdirektori program examples
Direktori iki kalebu koleksi ESP-IDF example program sing nduduhake panggunaan API komponen. mantanamples diatur dadi macem-macem subdirektori adhedhasar kategori:
· miwiti: Sub-direktori iki kalebu ex entry-levelampkaya "hello world" lan "blink" kanggo mbantu pangguna ngerti dhasar.
· bluetooth: Sampeyan bisa nemokake Ex related Bluetoothamples kene, kalebu Bluetooth LE Mesh, Bluetooth LE HID, BluFi, lan liyane.
· wifi: Sub-direktori iki fokus ing Wi-Fi examples, kalebu program dhasar kaya Wi-Fi SoftAP, Wi-Fi Station, espnow, uga protokol komunikasi proprietary examples saka Espressif. Iku uga kalebu sawetara lapisan aplikasi examples adhedhasar Wi-Fi, kayata Iperf, Sniffer, lan Smart Config.
· periferal: Subdirektori ekstensif iki dipérang dadi pirang-pirang subfolder adhedhasar jeneng periferal. Utamane ngemot driver peripheral examples kanggo Kripik Espressif, karo saben Example nampilake sawetara sub-examples. Contone, sub-direktori gpio kalebu loro examples: GPIO lan GPIO keyboard matriks. Penting kanggo dicathet yen ora kabeh mantanamples ing direktori iki ditrapake kanggo ESP32-C3.
36 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Kanggo example, mantanamples ing usb / host mung ditrapake kanggo peripheral karo hardware USB Host (kayata ESP32-S3), lan ESP32-C3 ora duwe peripheral iki. Sistem kompilasi biasane menehi pituduh nalika nyetel target. The README file saka saben mantanample dhaptar Kripik didhukung. · protokol: Subdirektori iki ngemot examples kanggo macem-macem protokol komunikasi, kalebu MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, kalebu sawetara saka sudhut protokol komunikasi ex.amples dibutuhake kanggo pangembangan IoT. · provisioning: Ing kene, sampeyan bakal nemokake provisioning examples kanggo macem-macem cara, kayata provisioning Wi-Fi lan Bluetooth LE provisioning. · sistem: Sub-direktori iki kalebu sistem debugging examples (contone, stack tracing, runtime tracing, task monitoring), power management examples (contone, macem-macem mode turu, co-prosesor), lan exampsing ana hubungane karo komponen sistem umum kaya terminal konsol, loop acara, lan timer sistem. · panyimpenan: Ing sub-direktori iki, sampeyan bakal nemokake examples kabeh file sistem lan mekanisme panyimpenan sing didhukung dening ESP-IDF (kayata maca lan nulis Flash, kertu SD lan media panyimpenan liyane), uga examppanyimpenan non-volatile (NVS), FatFS, SPIFFS lan liya-liyane file operasi sistem. · keamanan: Subdirektori iki ngemot examples related kanggo enkripsi lampu kilat. (2) Direktori rantai alat kompilasi ESP-IDF (/.espressif), kaya sing ditampilake ing Gambar 4.3.
Gambar 4.3. Direktori rantai alat kompilasi ESP-IDF
Bab 4. Nyetel Lingkungan Pangembangan 37
a. Direktori Distribusi Perangkat Lunak Kab
Rantai alat ESP-IDF lan piranti lunak liyane disebarake ing bentuk paket sing dikompres. Sajrone proses instalasi, alat instalasi pisanan ndownload paket sing dikompres menyang direktori dist, banjur ekstrak menyang direktori sing ditemtokake. Sawise instalasi rampung, isi ing direktori iki bisa dibusak kanthi aman.
b. Direktori lingkungan virtual Python python env
Versi beda saka ESP-IDF gumantung ing versi tartamtu saka paket Python. Nginstal paket kasebut langsung ing host sing padha bisa nyebabake konflik antarane versi paket. Kanggo ngatasi masalah iki, ESP-IDF nggunakake lingkungan virtual Python kanggo ngisolasi versi paket sing beda. Kanthi mekanisme iki, pangembang bisa nginstal pirang-pirang versi ESP-IDF ing host sing padha lan gampang ngalih ing antarane kanthi ngimpor variabel lingkungan sing beda.
c. Alat direktori rantai kompilasi ESP-IDF
Direktori iki utamane ngemot alat kompilasi silang sing dibutuhake kanggo ngumpulake proyek ESP-IDF, kayata alat CMake, alat mbangun Ninja, lan rantai alat gcc sing ngasilake program eksekusi pungkasan. Kajaba iku, direktori iki ngemot perpustakaan standar basa C/C++ bebarengan karo header sing cocog files. Yen program ngrujuk header sistem file kaya #kalebu , chain alat kompilasi bakal nemokake stdio.h file ing direktori iki.
4.2 Nyetel Lingkungan Pangembangan ESP-IDF
Lingkungan pangembangan ESP-IDF ndhukung sistem operasi utama kayata Windows, Linux, lan macOS. Bagean iki bakal ngenalake carane nyiyapake lingkungan pangembangan ing saben sistem. Disaranake ngembangake ESP32-C3 ing sistem Linux, sing bakal ditepungi kanthi rinci ing kene. Akeh instruksi sing bisa ditrapake ing platform amarga padha karo alat pangembangan. Mulane, disaranake maca kanthi teliti isi bagean iki.
CATETAN Sampeyan bisa ngrujuk menyang dokumen online sing kasedhiya ing https://bookc3.espressif.com/esp32c3, sing nyedhiyakake prentah kasebut ing bagean iki.
4.2.1 Nggawe Lingkungan Pangembangan ESP-IDF ing Linux
Piranti pangembangan lan debugging GNU sing dibutuhake kanggo lingkungan pangembangan ESP-IDF asli saka sistem Linux. Kajaba iku, terminal baris perintah ing Linux kuat lan ramah pangguna, dadi pilihan sing cocog kanggo pangembangan ESP32-C3. Sampeyan bisa
38 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
pilih distribusi Linux sing disenengi, nanging disaranake nggunakake Ubuntu utawa sistem basis Debian liyane. Bagean iki menehi pandhuan babagan nyetel lingkungan pangembangan ESP-IDF ing Ubuntu 20.04.
1. Instal paket sing dibutuhake
Bukak terminal anyar lan jalanake perintah ing ngisor iki kanggo nginstal kabeh paket sing dibutuhake. Printah bakal kanthi otomatis ngliwati paket sing wis diinstal.
$ 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
TIPS Sampeyan kudu nggunakake akun administrator lan sandhi kanggo printah ing ndhuwur. Kanthi gawan, ora ana informasi sing bakal ditampilake nalika ngetik sandhi. Cukup pencet tombol "Ketik" kanggo nerusake prosedur kasebut.
Git minangka alat manajemen kode kunci ing ESP-IDF. Sawise kasil nyetel lingkungan pangembangan, sampeyan bisa nggunakake printah git log kanggo view kabeh owah-owahan kode digawe wiwit nggawe ESP-IDF. Kajaba iku, Git uga digunakake ing ESP-IDF kanggo konfirmasi informasi versi, sing perlu kanggo nginstal chain alat sing bener sing cocog karo versi tartamtu. Bebarengan karo Git, alat sistem penting liyane kalebu Python. ESP-IDF nggabungake akeh skrip otomatisasi sing ditulis ing Python. Piranti kayata CMake, Ninja-build, lan Ccache digunakake akeh ing proyek C/C++ lan dadi kompilasi kode standar lan alat bangunan ing ESP-IDF. libusb-1.0-0 lan dfu-util minangka pembalap utama sing digunakake kanggo komunikasi serial USB lan kobong perangkat kukuh. Sawise paket piranti lunak diinstal, sampeyan bisa nggunakake pertunjukan sing cocog printah diwenehi katrangan rinci saben paket. Kanggo example, gunakake apt show git kanggo nyithak informasi katrangan kanggo alat Git.
P: Apa sing kudu ditindakake yen versi Python ora didhukung? A: ESP-IDF v4.3 mbutuhake versi Python sing ora luwih murah tinimbang v3.6. Kanggo versi lawas saka Ubuntu, mangga download kanthi manual lan nginstal versi Python sing luwih dhuwur lan nyetel Python3 minangka lingkungan Python standar. Sampeyan bisa nemokake instruksi rinci kanthi nggoleki tembung kunci nganyari-alternatif python.
2. Download kode repositori ESP-IDF
Bukak terminal lan gawe folder sing jenenge esp ing direktori ngarep nggunakake perintah mkdir. Sampeyan bisa milih jeneng liya kanggo folder kasebut yen pengin. Gunakake printah cd kanggo ngetik folder.
Bab 4. Nyetel Lingkungan Pangembangan 39
$ mkdir -p / esp $ cd / esp
Gunakake printah git clone kanggo ngundhuh kode repositori ESP-IDF, kaya sing kapacak ing ngisor iki:
$ git clone -b v4.3.2 –rekursif https://github.com/espressif/esp-idf.git
Ing printah ing ndhuwur, parameter -b v4.3.2 nemtokake versi kanggo diundhuh (ing kasus iki, versi 4.3.2). Parameter -recursive njamin yen kabeh sub-repositori ESP-IDF diundhuh kanthi rekursif. Informasi babagan sub-repositori bisa ditemokake ing .gitmodules file.
3. Instal chain alat pangembangan ESP-IDF
Espressif nyedhiyakake skrip otomatis install.sh kanggo ngundhuh lan nginstal rantai alat. Skrip iki mriksa versi ESP-IDF saiki lan lingkungan sistem operasi, banjur ngundhuh lan nginstal versi cocok saka paket alat Python lan rentengan alat kompilasi. Path instalasi gawan kanggo chain alat punika /.espressif. Sampeyan mung kudu navigasi menyang direktori esp-idf lan mbukak install.sh.
$ cd /esp/esp-idf $ ./install.sh
Yen sampeyan sukses nginstal rantai alat, terminal bakal nampilake:
Kabeh rampung!
Ing wektu iki, sampeyan wis sukses nyiyapake lingkungan pangembangan ESP-IDF.
4.2.2 Nyetel Lingkungan Pangembangan ESP-IDF ing Windows
1. Ngundhuh installer alat ESP-IDF
TIPS Disaranake nyiyapake lingkungan pangembangan ESP-IDF ing Windows 10 utawa ndhuwur. Sampeyan bisa ngundhuh installer saka https://dl.espressif.com/dl/esp-idf/. Pemasang uga minangka piranti lunak sumber terbuka, lan kode sumber bisa uga viewed ing https: //github.com/espressif/idf-installer.
· Pemasang alat ESP-IDF online
Pemasang iki relatif cilik, ukurane watara 4 MB, lan paket lan kode liyane bakal diundhuh sajrone proses instalasi. Advantage saka installer online iku ora mung paket software lan kode bisa diundhuh ing dikarepake sak proses instalasi, nanging uga ngidini instalasi kabeh rilis kasedhiya ESP-IDF lan cabang paling anyar saka kode GitHub (kayata cabang master). . The disadvantage yaiku mbutuhake sambungan jaringan sajrone proses instalasi, sing bisa nyebabake kegagalan instalasi amarga masalah jaringan.
40 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
· Pemasang alat ESP-IDF Offline Iki luwih gedhe, ukurane kira-kira 1 GB, lan ngemot kabeh paket piranti lunak lan kode sing dibutuhake kanggo nyetel lingkungan. Advan utamatage saka installer offline iku bisa digunakake ing komputer tanpa akses Internet, lan umume wis tingkat sukses instalasi luwih. Sampeyan kudu nyatet sing installer offline mung bisa nginstal rilis stabil ESP-IDF dikenali dening v*.* utawa v*.*.*.
2. Jalanake installer alat ESP-IDF Sawise ngundhuh versi installer sing cocok (njupuk ESP-IDF Tools Offline 4.3.2 kanggo example kene), klik kaping pindho exe file kanggo miwiti antarmuka instalasi ESP-IDF. Ing ngisor iki nduduhake carane nginstal ESP-IDF versi stabil v4.3.2 nggunakake installer offline.
(1) Ing antarmuka "Pilih basa instalasi" sing ditampilake ing Gambar 4.4, pilih basa sing bakal digunakake saka dhaptar gulung mudhun.
Gambar 4.4. Antarmuka "Pilih basa instalasi" (2) Sawise milih basa, klik "OK" kanggo pop munggah antarmuka "Perjanjian Lisensi"
(pirsani Gambar 4.5). Sawise maca perjanjian lisensi instalasi kanthi ati-ati, pilih "Aku nampa persetujuan" lan klik "Sabanjure".
Gambar 4.5. Antarmuka "Perjanjian Lisensi" Bab 4. Nyetel Lingkungan Pengembangan 41
(3) Review konfigurasi sistem ing antarmuka "Pre-instalasi sistem mriksa" (ndeleng Figure 4.6). Priksa versi Windows lan informasi piranti lunak antivirus sing diinstal. Klik "Sabanjure" yen kabeh item konfigurasi normal. Yen ora, sampeyan bisa ngeklik "Log lengkap" kanggo solusi adhedhasar item kunci.
Gambar 4.6. "Sistem mriksa sadurunge instalasi" TIPS antarmuka
Sampeyan bisa ngirim log menyang https://github.com/espressif/idf-installer/issues kanggo bantuan. (4) Pilih direktori instalasi ESP-IDF. Kene, pilih D:/.espressif, minangka ditampilake ing
Gambar 4.7, lan klik "Next". Elinga yen .espressif ing kene minangka direktori sing didhelikake. Sawise instalasi rampung, sampeyan bisa view isi tartamtu saka direktori iki kanthi mbukak file manager lan nampilake item sing didhelikake.
Gambar 4.7. Pilih direktori instalasi ESP-IDF 42 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT
(5) Priksa komponen sing kudu diinstal, kaya sing ditampilake ing Gambar 4.8. Disaranake nggunakake pilihan standar, yaiku instalasi lengkap, banjur klik "Sabanjure".
Gambar 4.8. Pilih komponen sing arep diinstal (6) Konfirmasi komponen sing arep diinstal lan klik "Instal" kanggo miwiti otomatis in-
proses stallation, minangka ditampilake ing Figure 4.9. Proses instalasi bisa nganti puluhan menit lan garis kemajuan proses instalasi ditampilake ing Gambar 4.10. Mangga ngenteni kanthi sabar.
Gambar 4.9. Nyiyapake instalasi (7) Sawise instalasi rampung, disaranake mriksa "Daftar ESP-IDF
Alat sing bisa dieksekusi minangka pengecualian Windows Defender…” kanggo nyegah piranti lunak antivirus mbusak files. Nambah item pangecualian uga bisa nglewati scan sing kerep dening antivirus
Bab 4. Nyetel Lingkungan Pangembangan 43
Gambar 4.10. Piranti lunak bar kemajuan instalasi, ningkatake efisiensi kompilasi kode sistem Windows. Klik "Rampung" kanggo ngrampungake instalasi lingkungan pangembangan, kaya sing ditampilake ing Gambar 4.11. Sampeyan bisa milih mriksa "Run ESP-IDF PowerShell environment" utawa "Run ESP-IDF command prompt". Bukak jendhela kompilasi langsung sawise instalasi kanggo mesthekake yen lingkungan pangembangan bisa digunakake kanthi normal.
Gambar 4.11. Instalasi rampung (8) Bukak lingkungan pangembangan sing diinstal ing dhaptar program (salah siji ESP-IDF 4.3
CMD utawa ESP-IDF 4.3 PowerShell terminal, minangka ditampilake ing Figure 4.12), lan variabel lingkungan ESP-IDF bakal otomatis ditambahake nalika mlaku ing terminal. Sawise iku, sampeyan bisa nggunakake printah idf.py kanggo operasi. ESP-IDF 4.3 CMD sing dibukak ditampilake ing Gambar 4.13. 44 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Gambar 4.12. Lingkungan pangembangan diinstal
Gambar 4.13. ESP-IDF 4.3 CMD
4.2.3 Nggawe Lingkungan Pangembangan ESP-IDF ing Mac
Proses nginstal lingkungan pangembangan ESP-IDF ing sistem Mac padha karo ing sistem Linux. Prentah kanggo ndownload kode repositori lan nginstal rantai alat pancen padha. Mung prentah kanggo nginstal paket dependensi sing rada beda. 1. Instal paket dependensi Bukak terminal, lan instal pip, alat manajemen paket Python, kanthi nglakokake printah ing ngisor iki:
% sudo gampang nginstal pip
Instal Homebrew, alat manajemen paket kanggo macOS, kanthi nglakokake printah ing ngisor iki:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Instal paket dependensi sing dibutuhake kanthi nglakokake printah ing ngisor iki:
% brew python3 nginstal cmake ninja ccache dfu-util
2. Download kode repositori ESP-IDF Tindakake pandhuan sing diwenehake ing bagean 4.2.1 kanggo ngundhuh kode repositori ESP-IDF. Langkah-langkah kasebut padha karo ngundhuh ing sistem Linux.
Bab 4. Nyetel Lingkungan Pangembangan 45
3. Instal chain alat pangembangan ESP-IDF
Tindakake pandhuan sing kasedhiya ing bagean 4.2.1 kanggo nginstal chain alat pangembangan ESP-IDF. Langkah-langkah kasebut padha karo instalasi ing sistem Linux.
4.2.4 Nginstal VS Code
Kanthi gawan, ESP-IDF SDK ora kalebu alat panyuntingan kode (sanajan installer ESP-IDF paling anyar kanggo Windows nawakake pilihan kanggo nginstal ESP-IDF Eclipse). Sampeyan bisa nggunakake alat panyuntingan teks apa wae sing dipilih kanggo ngowahi kode banjur ngumpulake nggunakake perintah terminal.
Salah sawijining alat panyuntingan kode sing populer yaiku VS Code (Visual Studio Code), yaiku editor kode gratis lan sugih fitur kanthi antarmuka sing ramah pangguna. Nawakake macem-macem plugins sing nyedhiyakake fungsi kayata navigasi kode, panyorot sintaks, kontrol versi Git, lan integrasi terminal. Kajaba iku, Espressif wis ngembangake plugin khusus sing diarani Espressif IDF kanggo Kode VS, sing nyederhanakake konfigurasi lan debugging proyek.
Sampeyan bisa nggunakake printah kode ing terminal kanggo cepet mbukak folder saiki ing VS Code. Utawa, sampeyan bisa nggunakake trabasan Ctrl + kanggo mbukak konsol terminal standar sistem ing Kode VS.
TIPS Disaranake nggunakake Kode VS kanggo pangembangan kode ESP32-C3. Ngundhuh lan nginstal versi paling anyar saka VS Code ing https://code.visualstudio.com/.
4.2.5 Pambuka kanggo Lingkungan Pangembangan Pihak Katelu
Saliyane lingkungan pangembangan ESP-IDF resmi, sing utamane nggunakake basa C, ESP32-C3 uga ndhukung basa pamrograman utama liyane lan macem-macem lingkungan pangembangan pihak katelu. Sawetara opsi penting kalebu:
Arduino: platform open-source kanggo hardware lan piranti lunak, ndhukung macem-macem mikrokontroler, kalebu ESP32-C3.
Iki nggunakake basa C ++ lan nawakake API sing disederhanakake lan standar, sing umum diarani basa Arduino. Arduino digunakake akeh ing pangembangan prototipe lan konteks pendidikan. Menehi paket piranti lunak extensible lan IDE sing ngidini kanggo kompilasi gampang lan sumunar.
MicroPython: juru basa Python 3 sing dirancang kanggo mbukak ing platform mikrokontroler sing dipasang.
Kanthi basa skrip sing prasaja, bisa langsung ngakses sumber daya periferal ESP32-C3 (kayata UART, SPI, lan I2C) lan fungsi komunikasi (kayata Wi-Fi lan Bluetooth LE).
46 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
Iki nyederhanakake interaksi hardware. MicroPython, digabungake karo perpustakaan operasi matematika ekstensif Python, mbisakake implementasine saka algoritma Komplek ing ESP32-C3, nggampangake pangembangan aplikasi AI-related. Minangka basa skrip, ora perlu kompilasi bola-bali; modifikasi bisa digawe lan script bisa kaleksanan langsung.
NodeMCU: juru basa LUA sing dikembangake kanggo chip seri ESP.
Ndhukung meh kabeh fungsi peripheral chip ESP lan luwih entheng tinimbang MicroPython. Kaya MicroPython, NodeMCU nggunakake basa skrip, ngilangi kabutuhan kompilasi bola-bali.
Salajengipun, ESP32-C3 uga ndhukung sistem operasi NuttX lan Zephyr. NuttX minangka sistem operasi wektu nyata sing nyedhiyakake antarmuka sing kompatibel karo POSIX, nambah portabilitas aplikasi. Zephyr minangka sistem operasi wektu nyata cilik sing dirancang khusus kanggo aplikasi IoT. Iki kalebu akeh perpustakaan piranti lunak sing dibutuhake ing pangembangan IoT, kanthi bertahap berkembang dadi ekosistem piranti lunak sing komprehensif.
Buku iki ora nyedhiyakake instruksi instalasi sing rinci kanggo lingkungan pangembangan kasebut. Sampeyan bisa nginstal lingkungan pangembangan adhedhasar syarat sampeyan kanthi nuruti dokumentasi lan instruksi.
4.3 Sistem Kompilasi ESP-IDF
4.3.1 Konsep Dasar Sistem Kompilasi
Proyek ESP-IDF minangka kumpulan program utama kanthi fungsi entri lan sawetara komponen fungsional independen. Kanggo example, project sing kontrol ngalih LED utamané kasusun saka program entri utama lan komponen driver sing kontrol GPIO. Yen sampeyan pengin nyadari remot kontrol LED, sampeyan uga kudu nambah Wi-Fi, TCP / IP protokol tumpukan, etc.
Sistem kompilasi bisa kompilasi, ngubungake, lan ngasilake eksekusi files (.bin) kanggo kode liwat pesawat saka aturan bangunan. Sistem kompilasi ESP-IDF v4.0 lan versi ndhuwur adhedhasar CMake minangka standar, lan script kompilasi CMakeLists.txt bisa digunakake kanggo ngontrol prilaku kompilasi kode. Saliyane ndhukung sintaksis dhasar CMake, sistem kompilasi ESP-IDF uga nemtokake pesawat saka aturan kompilasi standar lan fungsi CMake, lan sampeyan bisa nulis script kompilasi karo statements prasaja.
4.3.2 Proyek File Struktur
Proyek minangka folder sing ngemot program entri utama, komponen sing ditemtokake pangguna, lan files dibutuhake kanggo mbangun aplikasi eksekusi, kayata skrip kompilasi, konfigurasi
Bab 4. Nyetel Lingkungan Pangembangan 47
files, tabel partisi, lsp. Proyek bisa disalin lan diterusake, lan eksekusi sing padha file bisa disusun lan digawe ing mesin karo versi padha lingkungan pangembangan ESP-IDF. Proyek ESP-IDF khas file struktur ditampilake ing Figure 4.14.
Gambar 4.14. Proyek ESP-IDF khas file struktur Wiwit ESP-IDF ndhukung sawetara Kripik IoT saka Espressif, kalebu ESP32, ESP32-S seri, ESP32-C seri, ESP32-H seri, etc., target kudu ditemtokake sadurunge ngumpulake kode. Target yaiku piranti hardware sing mbukak program aplikasi lan target mbangun sistem kompilasi. Gumantung saka kabutuhan sampeyan, sampeyan bisa nemtokake siji utawa luwih target kanggo proyek sampeyan. Kanggo exampNanging, liwat printah idf.py set-target esp32c3, sampeyan bisa nyetel target kompilasi kanggo ESP32-C3, sajrone paramèter gawan lan path chain alat kompilasi kanggo ESP32C3 bakal dimuat. Sawise kompilasi, program eksekusi bisa digawe kanggo ESP32C3. Sampeyan uga bisa mbukak printah set-target maneh kanggo nyetel target beda, lan sistem kompilasi bakal kanthi otomatis ngresiki munggah lan reconfigure. Komponen
Komponen ing ESP-IDF minangka unit kode modular lan mandiri sing dikelola ing sistem kompilasi. Padha diatur minangka folder, kanthi jeneng folder sing makili jeneng komponen minangka standar. Saben komponen duwe skrip kompilasi dhewe sing 48 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT
nemtokake paramèter kompilasi lan dependensi. Sajrone proses kompilasi, komponen dikompilasi dadi perpustakaan statis sing kapisah (.a files) lan pungkasane digabungake karo komponen liyane kanggo mbentuk program aplikasi.
ESP-IDF nyedhiyakake fungsi penting, kayata sistem operasi, driver periferal, lan tumpukan protokol jaringan, ing wangun komponen. Komponen kasebut disimpen ing direktori komponen sing ana ing direktori root ESP-IDF. Pangembang ora perlu nyalin komponen kasebut menyang direktori komponen myProject. Nanging, mung kudu nemtokake hubungan dependensi komponen kasebut ing CMakeLists.txt proyek. file nggunakake REQUIRES utawa PRIV_REQUIRES arahan. Sistem kompilasi bakal nemokake lan ngumpulake komponen sing dibutuhake kanthi otomatis.
Mulane, direktori komponen ing myProject ora perlu. Iki mung digunakake kanggo nyakup sawetara komponen khusus proyek kasebut, sing bisa dadi perpustakaan pihak katelu utawa kode sing ditemtokake pangguna. Kajaba iku, komponen bisa sumber saka direktori apa wae kajaba ESP-IDF utawa proyek saiki, kayata saka proyek open-source sing disimpen ing direktori liya. Ing kasus iki, sampeyan mung kudu nambah path komponen kanthi nyetel variabel EXTRA_COMPONENT_DIRS ing CMakeLists.txt ing direktori root. Direktori iki bakal ngilangi komponen ESP-IDF kanthi jeneng sing padha, kanggo mesthekake yen komponen sing bener digunakake.
Entry program utama Direktori utama ing project nderek padha file struktur minangka komponen liyane (contone, komponen1). Nanging, iki nduweni teges khusus amarga minangka komponen wajib sing kudu ana ing saben proyek. Direktori utama ngemot kode sumber proyek lan titik entri program pangguna, biasane dijenengi app_main. Kanthi gawan, eksekusi program pangguna diwiwiti saka titik entri iki. Komponen utama uga beda-beda amarga kanthi otomatis gumantung marang kabeh komponen ing dalan telusuran. Mula, ora perlu kanthi jelas nunjukake dependensi nggunakake REQUIRES utawa PRIV_REQUIRES arahan ing CMakeLists.txt file.
Konfigurasi file Direktori ROOT proyek ngemot konfigurasi file disebut sdkconfig, kang ngemot paramèter konfigurasi kanggo kabeh komponen ing project. sdkconfig file digawe kanthi otomatis dening sistem kompilasi lan bisa diowahi lan regenerated dening printah idf.py menuconfig. Pilihan menuconfig utamané asalé saka Kconfig.projbuild saka project lan Kconfig komponen. Pangembang komponen umume nambah item konfigurasi ing Kconfig kanggo nggawe komponen fleksibel lan bisa dikonfigurasi.
Mbangun direktori Kanthi gawan, mbangun direktori ing project nyimpen penengah files lan fi-
Bab 4. Nyetel Lingkungan Pangembangan 49
program eksekusi nal digawe dening idf.py mbangun printah. Umumé, ora perlu ngakses langsung isi direktori mbangun. ESP-IDF nyedhiyakake printah sing wis ditemtokake kanggo sesambungan karo direktori, kayata nggunakake printah lampu kilat idf.py kanggo nemokake kanthi otomatis binar sing dikompilasi. file lan kerlip menyang alamat lampu kilat sing ditemtokake, utawa nggunakake printah fullclean idf.py kanggo ngresiki kabeh direktori mbangun.
Tabel partisi (partitions.csv) Saben proyek mbutuhake tabel partisi kanggo dibagi spasi lampu kilat lan nemtokake ukuran lan alamat wiwitan program eksekusi lan ruang data pangguna. Command idf.py flash utawa program upgrade OTA bakal kerlip perangkat kukuh menyang alamat sing cocog miturut tabel iki. ESP-IDF nyedhiyakake sawetara tabel partisi standar ing komponen / partition_table, kayata partitions_singleapp.csv lan partitions_two_ ota.csv, sing bisa dipilih ing menuconfig.
Yen tabel partisi standar sistem ora bisa nyukupi syarat proyek, partitions.csv adat bisa ditambahake menyang direktori proyek lan dipilih ing menuconfig.
4.3.3 Aturan Mbangun Default saka Sistem Kompilasi
Aturan kanggo overriding komponen kanthi jeneng sing padha Sajrone proses panelusuran komponen, sistem kompilasi nderek urutan tartamtu. Pisanan nggoleki komponen internal ESP-IDF, banjur nggoleki komponen proyek pangguna, lan pungkasane nggoleki komponen ing EXTRA_COMPONENT_DIRS. Ing kasus nalika sawetara direktori ngemot komponen kanthi jeneng sing padha, komponen sing ditemokake ing direktori pungkasan bakal ngilangi komponen sadurunge kanthi jeneng sing padha. Aturan iki ngidini kanggo kustomisasi komponen ESP-IDF ing project pangguna, nalika tetep kode ESP-IDF asli utuh.
Aturan kanggo kalebu komponen umum minangka standar Kaya kasebut ing bagean 4.3.2, komponen kudu tegas nemtokake dependensi ing komponen liyane ing CMakeLists.txt. Nanging, komponen umum kayata freertos kanthi otomatis kalebu ing sistem mbangun minangka standar, sanajan hubungan ketergantungan kasebut ora ditetepake kanthi jelas ing skrip kompilasi. Komponen umum ESP-IDF kalebu freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, lan cxx. Nggunakake komponen umum iki supaya karya bola-bali nalika nulis CMakeLists.txt lan nggawe luwih ringkes.
Aturan kanggo item konfigurasi overriding Pangembang bisa nambah paramèter konfigurasi gawan kanthi nambah konfigurasi gawan file jenenge sdkconfig.defaults kanggo project. Kanggo example, nambah CONFIG_LOG_
50 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
DEFAULT_LEVEL_NONE = y bisa ngatur antarmuka UART supaya ora nyithak data log kanthi gawan. Salajengipun, yen paramèter tartamtu kudu disetel kanggo target tartamtu, konfigurasi file jenenge sdkconfig.defaults.TARGET_NAME bisa ditambahake, ing ngendi TARGET_NAME bisa dadi esp32s2, esp32c3, lan liya-liyane. Konfigurasi iki files diimpor menyang sdkconfig sajrone kompilasi, kanthi konfigurasi standar umum file sdkconfig.defaults diimpor pisanan, ngiring dening konfigurasi target-tartamtu file, kayata sdkconfig.defaults.esp32c3. Ing kasus sing ana item konfigurasi kanthi jeneng sing padha, konfigurasi sing terakhir file bakal ngalahake mantan.
4.3.4 Pambuka Naskah Kompilasi
Nalika ngembangake proyek nggunakake ESP-IDF, pangembang ora mung kudu nulis kode sumber nanging uga kudu nulis CMakeLists.txt kanggo proyek lan komponen kasebut. CMakeLists.txt minangka teks file, uga dikenal minangka skrip kompilasi, sing nemtokake serangkaian obyek kompilasi, item konfigurasi kompilasi, lan prentah kanggo nuntun proses kompilasi kode sumber. Sistem kompilasi ESP-IDF v4.3.2 adhedhasar CMake. Saliyane ndhukung fungsi lan printah CMake native, uga nemtokake seri fungsi adat, nggawe luwih gampang kanggo nulis skrip kompilasi.
Skrip kompilasi ing ESP-IDF utamane kalebu skrip kompilasi proyek lan skrip kompilasi komponen. CMakeLists.txt ing direktori ROOT proyek kasebut diarani script kompilasi proyek, sing nuntun proses kompilasi kabeh proyek. Skrip kompilasi proyek dhasar biasane kalebu telung baris ing ngisor iki:
1. cmake_minimum_required(VERSION 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Antarane wong-wong mau, cmake_minimum_required (VERSION 3.5) kudu diselehake ing baris pisanan, kang digunakake kanggo nunjukaké nomer versi CMake minimal dibutuhake dening project. Versi CMake sing luwih anyar umume kompatibel karo versi lawas, mula setel nomer versi kasebut nalika nggunakake perintah CMake sing luwih anyar kanggo njamin kompatibilitas.
kalebu ($ ENV {IDF_PATH}/tools/cmake/project.cmake) ngimpor item konfigurasi sing wis ditemtokake lan printah saka sistem kompilasi ESP-IDF, kalebu aturan mbangun standar saka sistem kompilasi diterangake ing bagean 4.3.3. project(myProject) nggawe proyek dhewe lan nemtokake jenenge. Jeneng iki bakal digunakake minangka biner output final file jeneng, IE, myProject.elf lan myProject.bin.
Proyek bisa duwe sawetara komponen, kalebu komponen utama. Direktori tingkat paling dhuwur saben komponen ngemot CMakeLists.txt file, sing diarani script kompilasi komponen. Skrip kompilasi komponen utamane digunakake kanggo nemtokake dependensi komponen, paramèter konfigurasi, kode sumber files, lan kalebu header files kanggo
Bab 4. Nyetel Lingkungan Pangembangan 51
kompilasi. Kanthi fungsi khusus ESP-IDF idf_component_register, kode minimal sing dibutuhake kanggo skrip kompilasi komponen kaya ing ngisor iki:
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "kalebu"
3.
Mbutuhake komponen 1)
Parameter SRCS nyedhiyakake dhaptar sumber files ing komponen, dipisahake dening spasi yen ana sawetara files. Parameter INCLUDE_DIRS nyedhiyakake dhaptar header umum file direktori kanggo komponen, sing bakal ditambahake menyang path panelusuran kalebu komponen liyane sing gumantung ing komponen saiki. Parameter REQUIRES ngenali dependensi komponen umum kanggo komponen saiki. Komponen kudu nyatakake kanthi jelas komponen sing gumantung, kayata komponen2 gumantung komponen1. Nanging, kanggo komponen utama, sing gumantung ing kabeh komponen kanthi standar, parameter REQUIRES bisa diilangi.
Kajaba iku, printah CMake native uga bisa digunakake ing script kompilasi. Kanggo example, gunakake set printah kanggo nyetel variabel, kayata set (VARIABLE "VALUE").
4.3.5 Pambuka Prentah Umum
ESP-IDF nggunakake CMake (alat konfigurasi proyek), Ninja (alat bangunan proyek) lan esptool (alat lampu kilat) ing proses kompilasi kode. Saben alat nduweni peran sing beda ing proses kompilasi, bangunan, lan lampu kilat, lan uga ndhukung perintah operasi sing beda. Kanggo nggampangake operasi pangguna, ESP-IDF nambahake front-end idf.py terpadu sing ngidini printah ing ndhuwur bisa diarani kanthi cepet.
Sadurunge nggunakake idf.py, priksa manawa:
· Variabel lingkungan IDF_PATH saka ESP-IDF wis ditambahake menyang terminal saiki. · Direktori eksekusi perintah minangka direktori root proyek, sing kalebu
script kompilasi project CMakeLists.txt.
Prentah umum idf.py kaya ing ngisor iki:
· idf.py –help: nampilake dhaptar printah lan instruksi panggunaan. · idf.py nyetel-target : nyetel kompilasi taidf.py fullcleanrget, kuwi
minangka ngganti karo esp32c3. · idf.py menuconfig: mbukak menuconfig, konfigurasi grafis terminal
alat, kang bisa milih utawa ngowahi opsi konfigurasi, lan asil konfigurasi disimpen ing sdkconfig file. · idf.py mbangun: miwiti kompilasi kode. Sing penengah files lan program eksekusi pungkasan sing digawe dening kompilasi bakal disimpen ing direktori mbangun proyek kanthi standar. Proses kompilasi punika incremental, tegese yen mung siji sumber file diowahi, mung diowahi file sabanjure bakal dikompilasi.
52 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
· idf.py resik: ngresiki penengah files kui dening kompilasi project. Kabeh proyek bakal dipeksa kanggo kompilasi ing kompilasi sabanjure. Elinga yen konfigurasi CMake lan modifikasi konfigurasi sing digawe dening menuconfig ora bakal dibusak nalika ngresiki.
· idf.py fullclean: mbusak kabeh direktori mbangun, kalebu kabeh output konfigurasi CMake files. Nalika mbangun proyek maneh, CMake bakal ngatur proyek kasebut saka awal. Elinga yen printah iki bakal mbusak kabeh kanthi rekursif files ing direktori mbangun, supaya nggunakake kanthi ati-ati, lan konfigurasi project file ora bakal dibusak.
· lampu kilat idf.py: sumunar binar program sing bisa dieksekusi file digawe dening mbangun menyang target ESP32-C3. Pilihan - p lan -b digunakake kanggo nyetel jeneng piranti port serial lan baud rate kanggo sumunar, mungguh. Yen rong pilihan iki ora kasebut, port serial bakal kanthi otomatis dideteksi lan standar baud rate bakal digunakake.
· idf.py monitor: nampilake output port serial saka target ESP32-C3. Opsi -p bisa digunakake kanggo nemtokake jeneng piranti port serial sisih inang. Sajrone printing port serial, pencet kombinasi tombol Ctrl+] kanggo metu saka monitor.
Printah ing ndhuwur uga bisa digabung yen perlu. Kanggo exampNanging, printah idf.py mbangun lampu kilat monitor bakal nindakake kompilasi kode, lampu kilat, lan mbukak monitor port serial ing urutan.
Sampeyan bisa ngunjungi https://bookc3.espressif.com/build-system kanggo mangerteni sing luwih lengkap babagan sistem kompilasi ESP-IDF.
4.4 Praktek: Nyusun ExampProgram "Blink"
4.4.1 Kelampl Analisis
Bagian iki bakal njupuk program Blink minangka mantanample kanggo nganalisa ing file struktur lan aturan kode saka proyek nyata kanthi rinci. Program Blink ngetrapake efek kedhip LED, lan proyek kasebut ana ing direktori examples / miwiti / kedhip, sing ngemot sumber file, konfigurasi files, lan sawetara skrip kompilasi.
Proyek cahya cerdas sing dienalake ing buku iki adhedhasar mantan ikiampprogram iki. Fungsi bakal ditambahake kanthi bertahap ing bab sabanjure kanggo ngrampungake.
Kode sumber Kanggo nduduhake kabeh proses pembangunan, program Blink wis disalin menyang esp32c3-iot-projects/perangkat kukuh/1 blink.
Struktur direktori proyek blink files ditampilake ing Figure 4.15.
Proyek kedhip ngemot mung siji direktori utama, yaiku komponen khusus sing
Bab 4. Nyetel Lingkungan Pangembangan 53
Gambar 4.15. File struktur direktori proyek blink
kudu kalebu minangka diterangake ing bagean 4.3.2. Direktori utama utamané digunakake kanggo nyimpen implementasine saka app_main () fungsi, kang titik entri kanggo program panganggo.Proyèk blink ora kalebu direktori komponen, amarga ex ikiample mung kudu nggunakake komponen sing teka karo ESP-IDF lan ora mbutuhake komponen tambahan. CMakeLists.txt sing kalebu ing proyek kedhip digunakake kanggo nuntun proses kompilasi, nalika Kconfig.projbuild digunakake kanggo nambah item konfigurasi kanggo mantan iki.ampprogram ing menuconfig. Liyane rasah files ora bakal mengaruhi kompilasi kode, supaya padha ora bakal rembugan kene. A introduksi rinci kanggo project blink files minangka nderek.
1. /*blink.c kalebu header ing ngisor iki files*/
2. #kalebu
//Standar C perpustakaan header file
3. #include "freeertos / freeRTOS.h" //FreeRTOS header utama file
4. #include “freeertos/task.h”
// FreeRTOS Tugas header file
5. #include "sdkconfig.h"
// Konfigurasi header file kui dening kconfig
6. #include "driver/gpio.h"
// Header driver GPIO file
Sumber file blink.c ngemot seri header files sing cocog karo fungsi deklarasi
tions. ESP-IDF umume nderek urutan kalebu header perpustakaan standar files, GratisR-
Header TOS files, header driver files, header komponen liyane files, lan header proyek files.
Urutan ing header files sing klebu bisa mengaruhi asil kompilasi final, supaya nyoba kanggo
tindakake aturan standar. Sampeyan kudu nyatet sing sdkconfig.h otomatis kui
dening kconfig lan mung bisa diatur liwat printah idf.py menuconfig.
Modifikasi langsung saka header iki file bakal ditimpa.
1. /*Sampeyan bisa milih GPIO cocog kanggo LED ing idf.py menuconfig, lan asil modifikasi saka menuconfig iku nilai CONFIG_BLINK
_GPIO bakal diganti. Sampeyan uga bisa langsung ngowahi definisi makro
kene, lan ganti CONFIG_BLINK_GPIO dadi nilai tetep.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. void app_main(void)
4. {
5.
/* Konfigurasi IO minangka fungsi gawan GPIO, ngaktifake mode pull-up, lan
6.
mateni mode input lan output*/
7.
gpio_reset_pin(BLINK_GPIO);
54 Petualangan Nirkabel ESP32-C3: Pandhuan Komprehensif kanggo IoT
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Setel GPIO menyang mode output*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); nalika(1) {
/*Print log*/ printf(“Matikan LEDn”); /*Pateni LED (output low level)*/ gpio_set_level(BLINK_GPIO, 0); /*Tundha (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("Menghidupkan LEDn"); /*Aktifake LED (output tingkat dhuwur)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Fungsi app_main() ing Blink example program serves minangka titik entri kanggo program panganggo. Iku fungsi prasaja tanpa paramèter lan ora bali Nilai. Fungsi iki diarani sawise sistem wis rampung initialization, kang kalebu tugas kayata initializing port serial log, configuring single/dual core, lan configuring watchdog.
Fungsi app_main () mlaku ing konteks tugas sing jenenge main. Ukuran tumpukan lan prioritas tugas iki bisa diatur ing menuconfig Componentconfig Common ESP-related.
Kanggo tugas prasaja kaya kedhip LED, kabeh kode perlu bisa dipun ginakaken langsung ing app_main () fungsi. Iki biasane nyakup initialising GPIO sing cocog karo LED lan nggunakake sawetara (1) daur ulang kanggo nguripake lan mateni LED. Utawa, sampeyan bisa nggunakake FreeRTOS API kanggo nggawe tugas anyar sing nangani LED blinking. Sawise tugas anyar kasil digawe, sampeyan bisa metu saka app_main () fungsi.
Isi utama / CMakeLists.txt file, sing nuntun proses kompilasi kanggo komponen utama, kaya ing ngisor iki:
1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )
Ing antarane, main/CMakeLists.txt mung nelpon siji fungsi sistem kompilasi, yaiku idf_component_register. Kaya CMakeLists.txt kanggo umume komponen liyane, blink.c ditambahake menyang SRCS, lan sumber files ditambahaké kanggo SRCS bakal nyawiji. Ing wektu sing padha, ".", sing nuduhake path ing ngendi CMakeLists.txt dumunung, kudu ditambahake menyang INCLUDE_DIRS minangka direktori telusuran kanggo header files. Isi CMakeLists.txt kaya ing ngisor iki:
1. #Nemtokake v3.5 minangka versi CMake paling tuwa sing didhukung dening proyek saiki 2. #Versi sing luwih murah tinimbang v3.5 kudu diupgrade sadurunge kompilasi diterusake 3. cmake_minimum_required(VERSION 3.5) 4. #Include konfigurasi CMake standar saka ESP - Sistem kompilasi IDF
Bab 4. Nyetel Lingkungan Pangembangan 55
5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Create a project named “blink” 7. project(myProject)
Ing antarane, CMakeLists.txt ing direktori root utamane kalebu $ENV{IDF_ PATH}/tools/cmake/project.cmake, yaiku konfigurasi CMake utama. file diwenehake dening ESP-IDF. Kang digunakake kanggo con
Dokumen / Sumber Daya
![]() |
Sistem Espressif ESP32-C3 Wireless Adventure [pdf] Pandhuan pangguna ESP32-C3 Wireless Adventure, ESP32-C3, Wireless Adventure, Adventure |