ESP32-C3 Wireless avanti
ESP32-C3 Wireless avanti
Yon Gid konplè sou IoT
Espressif Systems 12 jen 2023
Espesifikasyon
- Pwodwi: ESP32-C3 Wireless avanti
- Manifakti: Espressif Systems
- Dat: 12 jen 2023
Enstriksyon Itilizasyon Pwodwi
Preparasyon
Anvan w sèvi ak ESP32-C3 Wireless Adventure, asire w ke ou ye
abitye ak konsèp ak achitekti IoT. Sa ap ede
ou konprann ki jan aparèy la adapte nan pi gwo ekosistèm IoT la
ak aplikasyon potansyèl li yo nan kay entelijan.
Entwodiksyon ak pratik nan pwojè IoT
Nan seksyon sa a, ou pral aprann sou pwojè IoT tipik,
ki gen ladan modil debaz yo pou aparèy IoT komen, modil debaz yo
nan aplikasyon kliyan yo, ak komen IoT platfòm nwaj. Sa a pral
ba ou yon fondasyon pou konprann ak kreye ou
pwòp pwojè IoT.
Pratike: Smart Light Project
Nan pwojè pratik sa a, ou pral aprann ki jan yo kreye yon entelijan
limyè lè l sèvi avèk ESP32-C3 Wireless Adventure la. Estrikti pwojè a,
fonksyon, preparasyon pyès ki nan konpitè, ak pwosesis devlopman yo pral
eksplike an detay.
Estrikti Pwojè
Pwojè a konsiste de plizyè eleman, ki gen ladan
ESP32-C3 Wireless avanti, LED, detèktè, ak yon nwaj
backend.
Fonksyon Pwojè
Pwojè a limyè entelijan pèmèt ou kontwole klète a ak
koulè LED yo adistans atravè yon aplikasyon mobil oswa web
koòdone.
Preparasyon pyès ki nan konpitè
Pou prepare pou pwojè a, w ap bezwen rasanble a
eleman pyès ki nan konpitè ki nesesè yo, tankou ESP32-C3 Wireless la
Tablo avanti, dirije, rezistans, ak yon ekipman pou pouvwa.
Pwosesis Devlopman
Pwosesis devlopman an enplike nan mete kanpe devlopman an
anviwònman, ekri kòd pou kontwole LED yo, konekte ak la
nwaj backend, ak tès fonksyonalite a nan entelijan an
limyè.
Entwodiksyon nan ESP RainMaker
ESP RainMaker se yon kad pwisan pou devlope IoT
aparèy. Nan seksyon sa a, ou pral aprann kisa ESP RainMaker ye ak
ki jan li ka aplike nan pwojè ou yo.
Ki sa ki ESP RainMaker?
ESP RainMaker se yon platfòm ki baze sou nwaj ki bay yon seri
zouti ak sèvis pou konstwi ak jere aparèy IoT.
Aplikasyon an nan ESP RainMaker
Seksyon sa a eksplike diferan eleman ki enplike nan
aplike ESP RainMaker, ki gen ladan sèvis reklamasyon an,
RainMaker Agent, nwaj backend, ak RainMaker Kliyan.
Pratike: Pwen kle pou devlope ak ESP RainMaker
Nan seksyon pratik sa a, ou pral aprann sou pwen kle yo
konsidere lè w ap devlope ak ESP RainMaker. Sa gen ladann aparèy
reklamasyon, senkronizasyon done, ak jesyon itilizatè.
Karakteristik nan ESP RainMaker
ESP RainMaker ofri divès kalite karakteristik pou jesyon itilizatè, fen
itilizatè yo, ak administratè yo. Karakteristik sa yo pèmèt aparèy fasil
konfigirasyon, kontwòl remote, ak siveyans.
Mete kanpe anviwònman devlopman
Seksyon sa a bay yon souview nan ESP-IDF (Espressif IoT
kad devlopman), ki se kad devlopman ofisyèl la
pou aparèy ki baze sou ESP32. Li eksplike diferan vèsyon yo
ESP-IDF ak kouman yo mete kanpe anviwònman devlopman an.
Materyèl ak Devlopman Chofè
Konsepsyon Materyèl nan pwodwi limyè entelijan ki baze sou ESP32-C3
Seksyon sa a konsantre sou konsepsyon pyès ki nan konpitè nan limyè entelijan
pwodwi ki baze sou ESP32-C3 Wireless Adventure la. Li kouvri a
karakteristik ak konpozisyon nan pwodwi limyè entelijan, osi byen ke la
konsepsyon pyès ki nan konpitè nan sistèm debaz ESP32-C3 la.
Karakteristik ak konpozisyon Smart Light Products
Sou-seksyon sa a eksplike karakteristik ak eleman ki fè yo
moute pwodwi limyè entelijan. Li diskite sou fonksyonalite yo diferan
ak konsiderasyon konsepsyon pou kreye limyè entelijan.
Konsepsyon Materyèl nan sistèm debaz ESP32-C3
Konsepsyon pyès ki nan konpitè sistèm debaz ESP32-C3 gen ladan pouvwa
ekipman pou, pouvwa-sou sekans, sistèm reset, SPI flash, sous revèy,
ak konsiderasyon RF ak antèn. Sou-seksyon sa a bay
enfòmasyon detaye sou aspè sa yo.
FAQ
K: Ki sa ki ESP RainMaker?
A: ESP RainMaker se yon platfòm ki baze sou nwaj ki bay zouti
ak sèvis pou konstwi ak jere aparèy IoT. Li senplifye
pwosesis devlopman ak pèmèt pou konfigirasyon aparèy fasil, aleka
kontwòl, ak siveyans.
K: Kouman mwen ka mete kanpe anviwònman an devlopman pou
ESP32-C3?
A: Pou mete kanpe anviwònman devlopman pou ESP32-C3, ou bezwen
pou enstale ESP-IDF (Espressif IoT Development Framework) ak
konfigirasyon li selon enstriksyon yo bay yo. ESP-IDF se la
kad devlopman ofisyèl pou aparèy ki baze sou ESP32.
K: Ki karakteristik ESP RainMaker?
A: ESP RainMaker ofri divès kalite karakteristik, ki gen ladan itilizatè
jesyon, karakteristik itilizatè fen, ak karakteristik admin. Jesyon itilizatè
pèmèt pou fè reklamasyon aparèy fasil ak senkronizasyon done. Itilizatè fen
karakteristik pèmèt kontwòl remote nan aparèy atravè yon app mobil oswa
web koòdone. Karakteristik admin bay zouti pou siveyans aparèy
ak jesyon.
ESP32-C3 Wireless avanti
Yon Gid konplè sou IoT
Espressif Systems 12 jen 2023
Kontni
I Preparasyon
1
1 Entwodiksyon nan IoT
3
1.1 Achitekti IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Aplikasyon IoT nan Kay Smart . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Entwodiksyon ak pratik nan pwojè IoT
9
2.1 Entwodiksyon nan Pwojè IoT tipik . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Modil debaz pou Aparèy IoT komen . . . . . . . . . . . . . . . . . 9
2.1.2 Modil Debaz Aplikasyon Kliyan . . . . . . . . . . . . . . . . . . . 10
2.1.3 Entwodiksyon sou platfòm Cloud IoT komen . . . . . . . . . . . . . . 11
2.2 Pratike: Smart Light Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Estrikti Pwojè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Fonksyon Pwojè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Preparasyon Materyèl . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Pwosesis Devlopman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Entwodiksyon nan ESP RainMaker
19
3.1 Ki sa ki ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Aplikasyon ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Sèvis Reklamasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Ajan RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Cloud Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Kliyan RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Pratike: Pwen kle pou devlope ak ESP RainMaker . . . . . . . . . . . . 25
3.4 Karakteristik ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Jesyon itilizatè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Karakteristik itilizatè fen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Karakteristik Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Mete kanpe anviwònman devlopman
31
4.1 ESP-IDF finiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Vèsyon ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 ESP-IDF Git Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Chwazi yon vèsyon ki apwopriye . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Plis paseview nan Anyè ESP-IDF SDK . . . . . . . . . . . . . . . . . . . . 34 4.2 Mete kanpe anviwònman devlopman ESP-IDF . . . . . . . . . . . . . . . . . 38 4.2.1 Mete kanpe anviwònman devlopman ESP-IDF sou Linux . . . . . . . . 38 4.2.2 Mete kanpe anviwònman devlopman ESP-IDF sou Windows . . . . . . 40 4.2.3 Mete kanpe anviwònman devlopman ESP-IDF sou Mac . . . . . . . . . 45 4.2.4 Enstale Kòd VS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Entwodiksyon nan Anviwònman Devlopman Twazyèm Pati . . . . . . . . 46 4.3 Sistèm Konpilasyon ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Konsèp debaz nan sistèm konpilasyon . . . . . . . . . . . . . . . . . . 47 4.3.2 Pwojè File Estrikti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Règ Konstriksyon Default nan Sistèm Konpilasyon . . . . . . . . . . . . . 50 4.3.4 Entwodiksyon nan Script Konpilasyon . . . . . . . . . . . . . . . . . . 51 4.3.5 Entwodiksyon nan kòmandman komen . . . . . . . . . . . . . . . . . . . 52 4.4 Pratike: Konpile EgzampPwogram “Blink” . . . . . . . . . . . . . . . . . . 53 4.4.1 Egzample analiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Konpile Pwogram Blink la . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Kliche Pwogram Blink la . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Analiz Log Port Serial Pwogram Blink la . . . . . . . . . . . . . . 60 4.5 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Materyèl ak Devlopman Chofè
65
5 Konsepsyon Materyèl nan pwodwi limyè entelijan ki baze sou ESP32-C3
67
5.1 Karakteristik ak konpozisyon nan pwodwi limyè entelijan. . . . . . . . . . . . . . . 67
5.2 Konsepsyon Materyèl nan Sistèm Nwayo ESP32-C3. . . . . . . . . . . . . . . . . . . 70
5.2.1 Pwovizyon pou pouvwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Sekans pouvwa-sou ak Reset sistèm . . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Sous revèy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF ak antèn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Broch tache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO ak PWM Kontwolè . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Pratike: Bati yon sistèm limyè entelijan ak ESP32-C3 . . . . . . . . . . . . . 80
5.3.1 Chwazi modil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 Konfigirasyon GPIO nan siyal PWM . . . . . . . . . . . . . . . . . . . . 82
5.3.3 Telechaje Firmware ak Entèfas debogaj . . . . . . . . . . . . 82
5.3.4 Gid pou konsepsyon RF . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Gid pou Konsepsyon Ekipman Elektrisite . . . . . . . . . . . . . . . . . . . 86 5.4 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Devlopman Chofè
87
6.1 Pwosesis Devlopman Chofè . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 Aplikasyon periferik ESP32-C3 . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Prensip debaz chofè ki ap dirije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Espas koulè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 Chofè ki ap dirije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 Diminye ki ap dirije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 Entwodiksyon sou PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 Devlopman chofè gradyasyon ki ap dirije . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Depo ki pa volatil (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM Controller (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Pratike: Ajoute Chofè nan Smart Light Project . . . . . . . . . . . . . . . . . 103
6.5.1 Chofè bouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 Chofè gradyasyon ki ap dirije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III kominikasyon san fil ak kontwòl
109
7 Konfigirasyon Wi-Fi ak Koneksyon
111
7.1 Prensip fondamantal nan Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Entwodiksyon nan Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 Evolisyon IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Konsèp Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Koneksyon Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Prensip debaz Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Entwodiksyon nan Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Konsèp Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Koneksyon Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Konfigirasyon rezo Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Gid Konfigirasyon Rezo Wi-Fi . . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Lòt Metòd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Programmasyon Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Konpozan Wi-Fi nan ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Egzèsis: Koneksyon Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Egzèsis: Koneksyon Wi-Fi entelijan . . . . . . . . . . . . . . . . . . . . . 145
7.5 Pratike: Konfigirasyon Wi-Fi nan Smart Light Project . . . . . . . . . . . . . . . 156 7.5.1 Koneksyon Wi-Fi nan Smart Light Project . . . . . . . . . . . . . . . . . 156 7.5.2 Konfigirasyon Smart Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Kontwòl lokal yo
159
8.1 Entwodiksyon nan kontwòl lokal . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Aplikasyon kontwòl lokal . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 Avantages de kontwòl lokal. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Dekouvri Aparèy Kontwole atravè Smartphones . . . . . . . . . . 161
8.1.4 Kominikasyon Done Ant Smartphone ak Aparèy . . . . . . . . 162
8.2 Metòd dekouvèt lokal komen . . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Emisyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Multidiffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Konparezon Ant Emisyon ak Multidifizyon . . . . . . . . . . . . . . 176
8.2.4 Multicast Aplikasyon Pwotokòl mDNS pou Dekouvèt Lokal . . . . . . . . 176
8.3 Pwotokòl Kominikasyon Komen pou Done Lokal . . . . . . . . . . . . . . . 179
8.3.1 Pwotokòl kontwòl transmisyon (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 Pwotokòl Transfè HyperText (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Itilizatè Datagram Pwotokòl (UDP). . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Pwotokòl aplikasyon kontrent (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Pwotokòl Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Rezime Pwotokòl Kominikasyon Done . . . . . . . . . . . . . . . 203
8.4 Garanti Sekirite Done . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Entwodiksyon nan Transport Layer Security (TLS) . . . . . . . . . . . . . 207
8.4.2 Entwodiksyon nan Datagram Transport Layer Security (DTLS) . . . . . . . 213
8.5 Pratike: Kontwòl lokal nan Smart Light Project . . . . . . . . . . . . . . . . . . 217
8.5.1 Kreye yon sèvè kontwòl lokal ki baze sou Wi-Fi . . . . . . . . . . . . . . . 217
8.5.2 Verifye Fonksyonalite Kontwòl Lokal lè l sèvi avèk Scripts . . . . . . . . . . . 221
8.5.3 Kreye yon sèvè kontwòl lokal ki baze sou Bluetooth . . . . . . . . . . . . 222
8.6 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Kontwòl Cloud
225
9.1 Entwodiksyon nan Kontwòl Remote . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Pwotokòl kominikasyon done Cloud . . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT Entwodiksyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Prensip MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 Fòma mesaj MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Konparezon Pwotokòl . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Mete kanpe MQTT Broker sou Linux ak Windows . . . . . . . . . . . . 233 9.2.6 Mete kanpe kliyan MQTT ki baze sou ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Asire Sekirite Done MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Siyifikasyon ak Fonksyon Sètifika . . . . . . . . . . . . . . . . . . . 237 9.3.2 Jenere Sètifika lokalman . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Konfigirasyon MQTT Broker . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Konfigirasyon Kliyan MQTT . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Pratike: Kontwòl Remote atravè ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Pwotokòl Kominikasyon Nèd ak Cloud Backend . . . . . . . . . . . 244 9.4.3 Kominikasyon ant Kliyan ak Cloud Backend . . . . . . . . . . . 249 9.4.4 Wòl itilizatè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Sèvis Debaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Egzample . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker App ak Entegrasyon Twazyèm Pati . . . . . . . . . . . . . . . 262 9.5 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Devlopman App Smartphone
269
10.1 Entwodiksyon nan Devlopman App Smartphone . . . . . . . . . . . . . . . . . . 269
10.1.1 Plis paseview nan Devlopman App Smartphone . . . . . . . . . . . . . . . 270
10.1.2 Estrikti pwojè Android . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 Estrikti pwojè iOS . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Sik lavi yon Aktivite Android . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 Sik lavi iOS ViewKontwolè. . . . . . . . . . . . . . . . . . . . . . 273
10.2 Kreye yon Nouvo Pwojè App Smartphone . . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Preparasyon pou Devlopman Android . . . . . . . . . . . . . . . . . . . 275
10.2.2 Kreye yon nouvo pwojè Android . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 Ajoute Depandans pou MyRainmaker . . . . . . . . . . . . . . . . . 276
10.2.4 Demann pèmisyon nan Android . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 Preparasyon pou Devlopman iOS . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Kreye yon nouvo pwojè iOS . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 Ajoute Depandans pou MyRainmaker . . . . . . . . . . . . . . . . . 279
10.2.8 Demann pèmisyon nan iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Analiz Kondisyon Fonksyonèl Aplikasyon an . . . . . . . . . . . . . . . . . . 281
10.3.1 Analiz Kondisyon Fonksyonèl Pwojè a . . . . . . . . . . . . 282
10.3.2 Analiz Kondisyon Jesyon Itilizatè . . . . . . . . . . . . . . . 282 10.3.3 Analiz Kondisyon Pwovizyon ak Obligasyon Aparèy . . . . . . . 283 10.3.4 Analiz Kondisyon pou Kontwòl A Distans . . . . . . . . . . . . . . . . 283 10.3.5 Analiz Kondisyon pou Orè . . . . . . . . . . . . . . . . . . . 284 10.3.6 Analiz Kondisyon Sant Itilizatè . . . . . . . . . . . . . . . . . . 285 10.4 Devlopman Jesyon Itilizatè . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Entwodiksyon sou RainMaker API . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Kòmanse kominikasyon atravè Smartphone . . . . . . . . . . . . . . . . 286 10.4.3 Enskripsyon kont . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Koneksyon kont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Devlopman Pwovizyon pou Aparèy . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Aparèy eskane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Konekte Aparèy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Jenere kle sekrè . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Jwenn ID Nœuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Aparèy pwovizyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Devlopman Kontwòl Aparèy . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Liaison Aparèy ak Kont Cloud . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Jwenn yon Lis Aparèy . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Jwenn eta Aparèy . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Chanje Estati Aparèy . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Devlopman Planifikasyon ak Sant Itilizatè . . . . . . . . . . . . . . . . . . . 313 10.7.1 Aplike Fonksyon Orè . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Aplike Sant Itilizatè . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Plis API Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Mizajou Firmware ak Jesyon Vèsyon
321
11.1 Mizajou Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Plis paseview nan tab patisyon yo. . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Pwosesis Boot Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Plis paseview nan Mekanis OTA a. . . . . . . . . . . . . . . . . . . . . 326
11.2 Jesyon vèsyon mikrolojisyèl . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Marking Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Rollback ak Anti-Rollback . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Pratike: Over-the-air (OTA) Egzample . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Mizajou mikrolojisyèl atravè yon lame lokal . . . . . . . . . . . . . . . . . 332
11.3.2 Mizajou Firmware Atravè ESP RainMaker . . . . . . . . . . . . . . . 335
11.4 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Optimizasyon ak pwodiksyon an mas
343
12 Jesyon pouvwa ak Optimizasyon ki ba-pouvwa
345
12.1 ESP32-C3 Jesyon pouvwa . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Echèl frekans dinamik . . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Konfigirasyon Jesyon pouvwa . . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 mòd ba-pouvwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Modem-dòmi mòd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Limyè-dòmi mòd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Mòd gwo dòmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Konsomasyon aktyèl nan diferan mòd pouvwa . . . . . . . . . . . . . 358
12.3 Jesyon pouvwa ak debogaj ba-pouvwa . . . . . . . . . . . . . . . . . 359
12.3.1 Log Debogaj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 Debogaj GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Pratike: Jesyon pouvwa nan Smart Light Project . . . . . . . . . . . . . . . 363
12.4.1 Konfigirasyon Karakteristik Jesyon pouvwa . . . . . . . . . . . . . . . . . 364
12.4.2 Sèvi ak kadna jesyon pouvwa . . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Verifye konsomasyon pouvwa . . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Enhanced Aparèy Sekirite Karakteristik
369
13.1 Plis paseview nan Sekirite Done Aparèy IoT. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Poukisa sekirize done aparèy IoT? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 Kondisyon Debaz pou Sekirite Done Aparèy IoT . . . . . . . . . . . . 371
13.2 Pwoteksyon Entegrite Done . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Entwodiksyon Metòd Verifikasyon Entegrite . . . . . . . . . . . . . . 372
13.2.2 Verifikasyon Entegrite Done Firmware . . . . . . . . . . . . . . . . . . 373
13.2.3 Egzample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Pwoteksyon Konfidansyalite Done . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Entwodiksyon nan chifreman done . . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Entwodiksyon Flash Encryption Scheme . . . . . . . . . . . . . . . . . 376
13.3.3 Flash Encryption Depo kle . . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Mòd travay Flash Encryption . . . . . . . . . . . . . . . . . . . . 380
13.3.5 Pwosesis Chifraje Flash . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 Entwodiksyon NVS Encryption . . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 Egzamples nan Flash Encryption ak NVS Encryption . . . . . . . . . . . 384
13.4 Pwoteksyon lejitimite done . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Entwodiksyon Siyati Dijital . . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Plis paseview nan Secure Boot Scheme . . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Entwodiksyon lojisyèl Secure Boot . . . . . . . . . . . . . . . . . . . 388 13.4.4 Entwodiksyon sou Materyèl Secure Boot . . . . . . . . . . . . . . . . . . 390 13.4.5 Egzamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Pratik: Karakteristik sekirite nan pwodiksyon an mas . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash Encryption ak Secure Boot . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Pèmèt Flash Encryption ak Secure Boot ak Batch Flash Tools . . 397 13.5.3 Pèmèt Flash Encryption ak Secure Boot nan Smart Light Project . . . 398 13.6 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Firmware boule ak tès pou pwodiksyon an mas
399
14.1 Firmware boule nan pwodiksyon an mas . . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Defini patisyon done . . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Firmware boule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Tès pwodiksyon an mas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Pratike: Done Pwodiksyon Mass nan Smart Light Project . . . . . . . . . . . . . 404
14.4 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP Insights: Platfòm Siveyans Adistans
405
15.1 Entwodiksyon nan ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 Kòmanse ak ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 Kòmanse ak ESP Insights nan Pwojè esp-insights . . . . . . 409
15.2.2 Kouri Egzample nan pwojè esp-insights la. . . . . . . . . . . . . . . 411
15.2.3 Rapòte Enfòmasyon sou Coredump . . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Pèsonalizasyon mòso ki enterese yo . . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Rapòte Rezon rdemare . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Rapòte Paramèt Customize . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Pratike: Sèvi ak ESP Insights nan Smart Light Project . . . . . . . . . . . . . . . 416
15.4 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Entwodiksyon
ESP32-C3 se yon sèl-nwayo Wi-Fi ak Bluetooth 5 (LE) mikrokontroleur SoC, ki baze sou achitekti RISC-V sous louvri. Li frape bon balans nan pouvwa, kapasite I/O, ak sekirite, kidonk ofri solisyon an pi bon pri-efikas pou aparèy konekte. Pou montre plizyè aplikasyon nan fanmi ESP32-C3, liv Espressif sa a pral mennen ou nan yon vwayaj enteresan atravè AIoT, kòmanse soti nan baz yo nan devlopman pwojè IoT ak konfigirasyon anviwònman an nan ansyen pratik.amples. Kat premye chapit yo pale sou IoT, ESP RainMaker ak ESP-IDF. Chapit 5 ak 6 brèf sou konsepsyon pyès ki nan konpitè ak devlopman chofè. Pandan w ap pwogrese, w ap dekouvri kijan pou w konfigirasyon pwojè w atravè rezo Wi-Fi ak aplikasyon mobil. Finalman, ou pral aprann optimize pwojè ou a epi mete l nan pwodiksyon an mas.
Si ou se yon enjenyè nan domèn ki gen rapò, yon achitèk lojisyèl, yon pwofesè, yon elèv, oswa nenpòt moun ki gen yon enterè nan IoT, liv sa a se pou ou.
Ou ka telechaje kòd la eksampte itilize nan liv sa a sou sit Espressif la sou GitHub. Pou jwenn dènye enfòmasyon sou devlopman IoT, tanpri swiv kont ofisyèl nou an.
Prefas
Yon Monn Enfòmatif
Monte vag entènèt la, Entènèt bagay sa yo (IoT) te fè premye premye li yo vin tounen yon nouvo kalite enfrastrikti nan ekonomi dijital. Pou pote teknoloji a pi pre piblik la, Espressif Systems travay pou vizyon ke devlopè ki soti nan tout domèn nan lavi yo ka itilize IoT pou rezoud kèk nan pwoblèm ki pi ijan nan epòk nou an. Yon mond nan "Rezo Entelijan nan tout bagay" se sa nou ap tann nan tan kap vini an.
Konsepsyon pwòp chip pa nou yo fè yon eleman enpòtan nan vizyon sa a. Li se yon maraton, ki mande pwogrè konstan kont fwontyè teknolojik. Soti nan "Game Changer" ESP8266 nan seri ESP32 ki entegre Wi-Fi ak Bluetoothr (LE), ki te swiv pa ESP32-S3 ekipe pa akselerasyon AI, Espressif pa janm sispann fè rechèch ak devlope pwodwi pou solisyon AIoT. Avèk lojisyèl sous ouvè nou an, tankou IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF, ak Device Connectivity Platform ESP RainMaker, nou te kreye yon kad endepandan pou bati aplikasyon AIoT.
Apati Jiyè 2022, chajman kimilatif chipsets IoT Espressif yo te depase 800 milyon dola, ki mennen nan mache Wi-Fi MCU a ak alimante yon gwo kantite aparèy konekte atravè lemond. Pouswit pou ekselans fè chak pwodwi Espressif yon gwo frape pou nivo segondè li yo nan entegrasyon ak efikasite pri. Liberasyon ESP32-C3 make yon etap enpòtan nan teknoloji Espressif devlope pwòp tèt ou. Li se yon sèl-nwayo, 32-bit, RISC-V ki baze sou MCU ak 400KB nan SRAM, ki ka kouri nan 160MHz. Li te entegre 2.4 GHz Wi-Fi ak Bluetooth 5 (LE) ak yon sipò alontèm. Li frape yon bon balans nan pouvwa, kapasite I/O, ak sekirite, kidonk ofri solisyon an pri-efikas optimal pou aparèy konekte. Ki baze sou ESP32-C3 pwisan sa a, liv sa a gen entansyon ede lektè yo konprann konesans ki gen rapò ak IoT ak ilistrasyon detaye ak ansyen pratik.amples.
Poukisa nou te ekri liv sa a?
Espressif Systems se plis pase yon konpayi semiconductor. Li se tou yon konpayi platfòm IoT, ki toujou fè efò pou avans ak inovasyon nan domèn teknoloji. An menm tan an, Espressif te louvri-sous ak pataje sistèm operasyon pwòp tèt ou-devlope li yo ak kad lojisyèl ak kominote a, fòme yon ekosistèm inik. Enjenyè, mizisyen, ak amater teknoloji aktivman devlope nouvo aplikasyon lojisyèl ki baze sou pwodwi Espressif yo, lib kominike, epi pataje eksperyans yo. Ou ka wè lide kaptivan devlopè yo sou divès platfòm tout tan tout tan, tankou YouTube ak GitHub. Popilarite pwodwi Espressif yo te ankouraje yon ogmantasyon kantite otè ki te pwodwi plis pase 100 liv ki baze sou chipsets Espressif, nan plis pase dis lang, tankou angle, Chinwa, Alman, franse ak Japonè.
Se sipò ak konfyans patnè kominote yo ki ankouraje inovasyon kontinyèl Espressif. “Nou fè efò pou fè chips nou yo, sistèm opere, kad, solisyon, Cloud, pratik biznis, zouti, dokimantasyon, ekriti, lide, elatriye, toujou pi enpòtan pou repons moun bezwen nan pwoblèm ki pi ijan nan lavi kontanporen. Sa a se pi gwo anbisyon ak konpa moral Espressif.” te di Mesye Teo Swee Ann, Fondatè ak Direktè Jeneral Espressif.
Espressif apresye lekti ak lide. Kòm amelyorasyon kontinyèl nan teknoloji IoT poze kondisyon pi wo sou enjenyè, ki jan nou ka ede plis moun yo byen vit metrize IoT chips, sistèm opere, kad lojisyèl, konplo aplikasyon ak pwodwi sèvis nwaj? Jan pawòl la di, li pi bon pou moutre yon moun ki jan pou l lapèch pase pou l ba l pwason. Nan yon sesyon brainstorming, li te rive nou ke nou te kapab ekri yon liv pou sistematik rezoud konesans kle nan devlopman IoT. Nou frape li, byen vit rasanble yon gwoup enjenyè ansyen, ak konbine eksperyans nan ekip teknik nan pwogram entegre, IoT pyès ki nan konpitè ak devlopman lojisyèl, tout kontribye nan pibliye liv sa a. Nan pwosesis ekriti, nou te eseye pi byen nou pou nou objektif ak jis, dezabiye nan kokon an, epi sèvi ak ekspresyon kout pou di konpleksite ak cham nan entènèt la bagay. Nou ak anpil atansyon rezime kesyon komen yo, refere yo bay fidbak ak sijesyon nan kominote a, yo nan lòd yo byen klè reponn kesyon yo rankontre nan pwosesis devlopman an, epi bay gid pratik devlopman IoT pou teknisyen ki enpòtan ak moun k ap pran desizyon.
Estrikti Liv
Liv sa a pran yon pèspektiv ki santre sou enjenyè epi li eksplike konesans ki nesesè pou devlopman pwojè IoT etap pa etap. Li konpoze de kat pati, jan sa a:
· Preparasyon (Chapit 1): Pati sa a entwodui achitekti IoT, kad pwojè IoT tipik, platfòm nwaj ESP RainMakerr, ak anviwònman devlopman ESP-IDF, yon fason pou mete yon fondasyon solid pou devlopman pwojè IoT.
· Materyèl ak Devlopman Chofè (Chapit 5): Baze sou chipset ESP6-C32, pati sa a elabore sou sistèm pyès ki nan konpitè minimòm ak devlopman chofè, epi aplike kontwòl gradyasyon, gradyasyon koulè, ak kominikasyon san fil.
· Kominikasyon ak kontwòl san fil (Chapit 7): Pati sa a eksplike konplo konfigirasyon Wi-Fi entelijan ki baze sou chip ESP11-C32, pwotokòl kontwòl lokal ak nwaj, ak kontwòl lokal ak remote aparèy yo. Li bay tou plan pou devlope apps smartphone, ajou firmwèr, ak jesyon vèsyon.
· Optimizasyon ak pwodiksyon an mas (Chapit 12-15): Pati sa a fèt pou aplikasyon IoT avanse, konsantre sou optimize pwodwi nan jesyon pouvwa, optimize ba-pouvwa, ak sekirite amelyore. Li tou entwodui mikrolojisyèl boule ak tès nan pwodiksyon an mas, ak ki jan yo fè dyagnostik estati a kouri ak mòso bwa mikrolojisyèl aparèy la atravè platfòm la siveyans aleka ESP Insights.
Konsènan Kòd Sous la
Lektè yo ka kouri ansyen anamppwogram yo nan liv sa a, swa lè w antre kòd la manyèlman oswa lè w itilize kòd sous ki akonpaye liv la. Nou mete aksan sou konbinezon teyori ak pratik, epi konsa mete yon seksyon Pratike ki baze sou pwojè Smart Light nan prèske chak chapit. Tout kòd yo louvri-sous. Lektè yo akeyi telechaje kòd sous la epi diskite sou li nan seksyon ki gen rapò ak liv sa a sou GitHub ak fowòm ofisyèl nou an esp32.com. Kòd louvri-sous liv sa a sijè a kondisyon Apache License 2.0.
Nòt otè a
Liv sa a ofisyèlman pwodui pa Espressif Systems epi li ekri pa enjenyè ansyen konpayi an. Li apwopriye pou manadjè ak pèsonèl R&D nan endistri ki gen rapò ak IoT, pwofesè ak elèv ki gen rapò ak matyè, ak amater nan domèn entènèt nan bagay sa yo. Nou espere ke liv sa a ka sèvi kòm yon manyèl travay, yon referans, ak yon liv bò kabann, tankou yon bon titè ak zanmi.
Pandan n ap konpile liv sa a, nou te refere ak kèk rezilta rechèch ki enpòtan nan ekspè, entelektyèl, ak teknisyen lakay yo ak aletranje, epi nou te fè pi byen nou pou site yo dapre nòm akademik yo. Sepandan, li se inevitab ke ta dwe gen kèk omisyon, kidonk isit la nou ta renmen eksprime gwo respè nou ak rekonesans ak tout otè ki enpòtan yo. Anplis de sa, nou te site enfòmasyon ki soti nan Entènèt la, kidonk nou ta renmen remèsye otè orijinal yo ak piblikatè yo epi eskize ke nou pa ka endike sous la nan chak moso enfòmasyon.
Yo nan lòd yo pwodwi yon liv nan kalite siperyè, nou te òganize jij nan diskisyon entèn yo, epi aprann nan sijesyon yo ak fidbak nan lektè jijman ak editè Piblikatè. Isit la, nou ta renmen remèsye ou ankò pou èd ou ki tout kontribye nan travay sa a siksè.
Denye, men sa ki pi enpòtan an, mèsi a tout moun nan Espressif ki te travay di pou nesans la ak popilarizasyon nan pwodwi nou yo.
Devlopman nan pwojè IoT enplike nan yon pakèt konesans. Limite nan longè liv la, osi byen ke nivo ak eksperyans otè a, omisyon yo inevitab. Se poutèt sa, nou tanpri mande pou ekspè ak lektè kritike ak korije erè nou yo. Si w gen nenpòt sijesyon pou liv sa a, tanpri kontakte nou nan book@espressif.com. Nou gade pou pi devan pou fidbak ou.
Ki jan yo sèvi ak liv sa a?
Kòd pwojè yo nan liv sa a te louvri sous. Ou ka telechaje li nan depo GitHub nou an epi pataje panse ou ak kesyon ou sou fowòm ofisyèl nou an. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Pandan tout liv la, pral gen pati make jan yo montre anba a.
Kòd sous Nan liv sa a, nou mete aksan sou konbinezon teyori ak pratik, epi konsa mete yon seksyon Pratik sou pwojè Smart Light nan prèske chak chapit. Etap korespondan ak paj sous yo pral make ant de liy kòmanse ak la tag Kòd sous.
REMAK / KONSÈY Sa a se kote ou ka jwenn kèk enfòmasyon kritik ak raple pou debogaj pwogram ou an avèk siksè. Yo pral make ant de liy epè kòmanse ak la tag REMAK oswa KONSÈY.
Pifò nan kòmandman yo nan liv sa a yo egzekite anba Linux, pouse pa karaktè "$". Si kòmandman an mande privilèj sipè itilizatè pou egzekite, èd memwa a pral ranplase pa "#". Èd memwa nan lòd sou sistèm Mac se "%", jan yo itilize nan Seksyon 4.2.3 Enstale ESP-IDF sou Mac.
Tèks kò a nan liv sa a pral enprime nan Charter, pandan y ap kòd la egzanpamples, konpozan, fonksyon, varyab, kòd file non, anyè kòd, ak fisèl yo pral nan Courier New.
Kòmandman oswa tèks ki bezwen antre pa itilizatè a, ak kòmandman ki ka antre nan peze "Entre" kle a pral enprime nan Courier New fonse. Yo pral prezante mòso bwa ak blòk kòd yo nan bwat ble limyè.
Example:
Dezyèmman, sèvi ak esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py pou jenere binè patisyon NVS. file sou lame devlopman ak lòd sa a:
$ python $IDF PATH/components/nvs flash/nvs partition generator/nvs partition gen.py –input mass prod.csv –output mass prod.bin –size NVS PARTITION SIZE
Chapit 1
Entwodiksyon
pou
IoT
Nan fen 20yèm syèk la, ak ogmantasyon nan rezo òdinatè ak teknoloji kominikasyon, Entènèt rapidman entegre nan lavi moun. Kòm teknoloji Entènèt la ap kontinye gen matirite, lide entènèt nan bagay sa yo (IoT) te fèt. Literalman, IoT vle di yon Entènèt kote bagay yo konekte. Pandan ke Entènèt orijinal la kraze limit espas ak tan epi redwi distans ki genyen ant "moun ak moun", IoT fè "bagay" yon patisipan enpòtan, pote "moun" ak "bagay" pi pre ansanm. Nan fiti prévisible, IoT ap vin fòs kondiktè endistri enfòmasyon an.
Se konsa, ki sa ki entènèt la nan bagay sa yo?
Li difisil pou defini ak presizyon Entènèt bagay sa yo, kòm siyifikasyon li yo ak dimansyon yo toujou ap evolye. An 1995, Bill Gates te premye parèt lide IoT nan liv li The Road Ahead. Senpleman mete, IoT pèmèt objè yo fè echanj enfòmasyon youn ak lòt atravè Entènèt. Objektif final li se etabli yon "Entènèt tout bagay". Sa a se yon entèpretasyon bonè nan IoT, osi byen ke yon fantezi nan teknoloji nan lavni. Trant ane pita, ak devlopman rapid nan ekonomi ak teknoloji, fantezi a ap vini nan reyalite. Soti nan aparèy entelijan, kay entelijan, vil entelijan, Entènèt Veyikil ak aparèy pou mete yo, rive nan "metaverse" ki sipòte pa teknoloji IoT, nouvo konsèp toujou ap parèt. Nan chapit sa a, nou pral kòmanse ak yon eksplikasyon sou achitekti Entènèt bagay sa yo, epi answit prezante aplikasyon IoT ki pi komen an, kay entelijan, pou ede w jwenn yon konpreyansyon klè sou IoT.
1.1 Achitekti IoT
Entènèt bagay sa yo enplike plizyè teknoloji ki gen diferan bezwen aplikasyon ak fòm nan diferan endistri yo. Yo nan lòd yo rezoud estrikti a, teknoloji kle yo ak karakteristik aplikasyon IoT, li nesesè etabli yon achitekti inifye ak yon sistèm teknik estanda. Nan liv sa a, achitekti IoT tou senpleman divize an kat kouch: kouch pèsepsyon ak kontwòl, kouch rezo, kouch platfòm, ak kouch aplikasyon.
Kouch pèsepsyon ak kontwòl Kòm eleman ki pi fondamantal nan achitekti IoT, pèsepsyon ak kouch kontwòl se nwayo pou reyalize deteksyon konplè IoT. Fonksyon prensipal li se kolekte, idantifye ak kontwole enfòmasyon. Li konsiste de yon varyete de aparèy ak kapasite nan pèsepsyon,
3
idantifikasyon, kontwòl ak ekzekisyon, epi li responsab pou rekipere ak analize done tankou pwopriyete materyèl, tandans konpòtman, ak estati aparèy. Nan fason sa a, IoT vin rekonèt mond reyèl la fizik. Anplis, kouch la tou kapab kontwole estati aparèy la.
Aparèy ki pi komen nan kouch sa a se detèktè divès kalite, ki jwe yon wòl enpòtan nan koleksyon enfòmasyon ak idantifikasyon. Detèktè yo tankou ògàn sansoryèl imen, tankou detèktè fotosensib ki egal a vizyon, detèktè acoustic pou tande, detèktè gaz pou pran sant, ak detèktè presyon-ak tanperati-sansib pou manyen. Avèk tout "ògàn sansoryèl sa yo", objè yo vin "vivan" epi yo kapab pèsepsyon entèlijan, rekonesans ak manipilasyon nan mond fizik la.
Kouch Rezo Fonksyon prensipal kouch rezo a se transmèt enfòmasyon, ki gen ladan done yo jwenn nan kouch pèsepsyon ak kontwòl nan sib espesifye, osi byen ke kòmandman ki soti nan kouch aplikasyon an tounen nan kouch pèsepsyon ak kontwòl. Li sèvi kòm yon pon kominikasyon enpòtan ki konekte diferan kouch nan yon sistèm IoT. Pou mete kanpe yon modèl debaz nan Entènèt bagay sa yo, li enplike de etap yo entegre objè nan yon rezo: aksè nan Entènèt ak transmisyon atravè Entènèt.
Aksè nan Entènèt Entènèt pèmèt entèkoneksyon ant moun ak moun, men li echwe pou mete bagay sa yo nan gwo fanmi an. Anvan avenman IoT, pifò bagay yo pa t 'kapab pou rezo a. Mèsi a devlopman kontinyèl nan teknoloji, IoT jere konekte bagay sa yo sou entènèt la, kidonk reyalize entèkoneksyon ant "moun ak bagay sa yo", ak "bagay ak bagay sa yo". Gen de fason komen pou aplike koneksyon Entènèt: aksè rezo filè ak aksè rezo san fil.
Metòd aksè nan rezo filaire gen ladan Ethernet, kominikasyon seri (egzanp, RS-232, RS-485) ak USB, pandan y ap aksè rezo san fil depann sou kominikasyon san fil, ki ka plis divize an kout ranje kominikasyon san fil ak alontèm kominikasyon san fil.
Kominikasyon san fil kout ranje gen ladan ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC), ak Radyo Frekans Idantifikasyon (RFID). Long-ranje kominikasyon san fil gen ladan Enhanced Machine Type Communication (eMTC), LoRa, Narrow Band Internet of Things (NB-IoT), 2G, 3G, 4G, 5G, elatriye.
Transmisyon atravè Entènèt Diferan metòd aksè entènèt mennen nan lyen korespondan transmisyon fizik done yo. Pwochen bagay la se deside ki pwotokòl kominikasyon pou itilize pou transmèt done yo. Konpare ak tèminal entènèt, pifò tèminal IoT gen mwens kounye a
4 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
resous ki disponib, tankou pèfòmans pwosesis, kapasite depo, pousantaj rezo, elatriye, kidonk li nesesè yo chwazi yon pwotokòl kominikasyon ki okipe mwens resous nan aplikasyon IoT. Gen de pwotokòl kominikasyon ki lajman itilize jodi a: Message Queuing Telemetry Transport (MQTT) ak Constrained Application Protocol (CoAP).
Kouch platfòm Kouch platfòm la sitou refere a platfòm nwaj IoT. Lè tout tèminal IoT yo an rezo, done yo bezwen yo dwe rasanble sou yon platfòm nwaj IoT pou yo kalkile epi estoke. Kouch platfòm la sitou sipòte aplikasyon IoT nan fasilite aksè ak jesyon nan aparèy masiv. Li konekte tèminal IoT ak platfòm nwaj la, kolekte done tèminal, epi bay kòmandman tèminal yo, konsa tankou aplike kontwòl remote. Kòm yon sèvis entèmedyè pou bay ekipman pou aplikasyon endistri yo, kouch platfòm la jwe yon wòl konekte nan tout achitekti IoT, pote lojik biznis abstrè ak modèl done debaz estanda, ki ka pa sèlman reyalize aksè rapid nan aparèy, men tou, bay kapasite modilè pwisan. satisfè divès bezwen nan senaryo aplikasyon endistri. Kouch platfòm la sitou gen ladan modil fonksyonèl tankou aksè aparèy, jesyon aparèy, jesyon sekirite, kominikasyon mesaj, operasyon siveyans ak antretyen, ak aplikasyon pou done.
· Aksè aparèy, reyalize koneksyon ak kominikasyon ant tèminal yo ak platfòm nwaj IoT.
· Jesyon aparèy, ki gen ladan fonksyon tankou kreyasyon aparèy, antretyen aparèy, konvèsyon done, senkronizasyon done, ak distribisyon aparèy.
· Jesyon sekirite, asire sekirite transmisyon done IoT nan pèspektiv otantifikasyon sekirite ak sekirite kominikasyon.
· Kominikasyon mesaj, ki gen ladan twa direksyon transmisyon, se sa ki, tèminal la voye done sou platfòm nwaj IoT la, platfòm nwaj IoT voye done sou bò sèvè a oswa lòt platfòm nwaj IoT, ak bò sèvè a kontwole aparèy IoT adistans.
· Siveyans O&M, ki enplike siveyans ak dyagnostik, ajou firmwèr, debogaj sou entènèt, sèvis boutèy demi lit, elatriye.
· Aplikasyon done, ki enplike depo, analiz ak aplikasyon done yo.
Kouch aplikasyon Kouch aplikasyon an sèvi ak done ki soti nan kouch platfòm la pou jere aplikasyon an, filtre ak trete yo ak zouti tankou baz done ak lojisyèl analiz. Done ki kapab lakòz yo ka itilize pou aplikasyon IoT nan mond reyèl la tankou swen sante entelijan, agrikilti entelijan, kay entelijan, ak vil entelijan.
Natirèlman, achitekti IoT ka sibdivize an plis kouch, men kèlkeswa kantite kouch li konsiste de, prensip ki kache a rete esansyèlman menm bagay la. Aprantisaj
Chapit 1. Entwodiksyon nan IoT 5
sou achitekti IoT ede apwofondi konpreyansyon nou sou teknoloji Io ak bati pwojè IoT ki totalman fonksyonèl.
1.2 Aplikasyon IoT nan Kay Entelijan
IoT te antre nan tout mache nan lavi, ak aplikasyon IoT ki pi sere ki gen rapò ak nou se kay la entelijan. Anpil aparèy tradisyonèl yo kounye a ekipe ak youn oswa plis aparèy IoT, ak anpil kay ki fèk bati yo fèt ak teknoloji IoT depi nan kòmansman an. Figi 1.1 montre kèk aparèy lakay entelijan komen.
Figi 1.1. Aparèy komen lakay entelijan Devlopman nan kay entelijan ka tou senpleman divize an pwodwi entelijan stage, sèn entèkoneksyon stage ak entèlijan stage, jan yo montre nan Figi 1.2.
Figi 1.2. Devlopman stage nan kay entelijan 6 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Premye stage se sou pwodwi entelijan. Diferan de kay tradisyonèl yo, nan kay entelijan, aparèy IoT resevwa siyal ak detèktè, epi yo konekte nan rezo atravè teknoloji kominikasyon san fil tankou Wi-Fi, Bluetooth LE, ak ZigBee. Itilizatè yo ka kontwole pwodwi entelijan nan yon varyete fason, tankou aplikasyon pou smartphone, asistan vwa, kontwòl entelijan oratè, elatriye.tage konsantre sou sèn entèkoneksyon. Nan s sa atage, devlopè yo pa konsidere kontwole yon sèl pwodwi entelijan, men konekte de oswa plis pwodwi entelijan, otomatize nan yon sèten limit, epi finalman fòme yon mòd sèn koutim. Pou egzanpample, lè itilizatè a peze nenpòt bouton mòd sèn, limyè yo, rido, ak èkondisyone yo pral otomatikman adapte nan prereglaj yo. Natirèlman, gen kondisyon pou lojik lyen yo fasilman mete sou pye, ki gen ladan kondisyon deklanche ak aksyon ekzekisyon. Imajine ke mòd chofaj èkondisyone deklanche lè tanperati andedan kay la desann anba 10 ° C; ke a 7 è nan maten, mizik yo jwe pou reveye itilizatè a, rido entelijan yo louvri, ak cuisinier diri a oswa pen griye kòmanse atravè yon priz entelijan; kòm itilizatè a leve epi li fini lave, manje maten yo deja sèvi, pou pa pral gen okenn reta nan ale nan travay. Ala bon lavi nou vin pi bon! Twazyèm stage ale nan entèlijans stage. Kòm plis aparèy lakay entelijan yo jwenn aksè, se konsa kalite done ki pwodwi yo pral. Avèk èd nan cloud computing, gwo done ak entèlijans atifisyèl, se tankou yon "sèvo entelijan" te plante nan kay entelijan, ki pa bezwen kòmandman souvan nan men itilizatè a. Yo kolekte done ki sòti nan entèraksyon anvan yo epi aprann modèl konpòtman itilizatè a ak preferans, konsa tankou otomatize aktivite, ki gen ladan bay rekòmandasyon pou pran desizyon. Kounye a, pifò kay entelijan yo nan sèn entèkoneksyon antage. Kòm pousantaj pénétration ak entèlijans nan pwodwi entelijan ogmante, baryè ant pwotokòl kominikasyon yo ap retire. Nan lavni an, kay entelijan yo mare yo vin reyèlman "entelijan", menm jan ak sistèm AI Jarvis nan Iron Man, ki ka pa sèlman ede itilizatè a kontwole divès aparèy, okipe zafè chak jou, men tou, gen super pouvwa informatique ak kapasite panse. Nan entèlijan stage, èt imen pral resevwa pi bon sèvis tou de nan kantite ak bon jan kalite.
Chapit 1. Entwodiksyon nan IoT 7
8 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Chapit Entwodiksyon ak Pratik 2 Pwojè IoT
Nan Chapit 1, nou te prezante achitekti IoT, ak wòl ak entèrelasyon kouch pèsepsyon ak kontwòl, kouch rezo, kouch platfòm, ak kouch aplikasyon, osi byen ke devlopman nan kay entelijan. Sepandan, menm jan ak lè nou aprann penti, konnen konesans teyorik la lwen ase. Nou dwe "fè men nou sal" pou mete pwojè IoT an pratik pou nou vrèman metrize teknoloji a. Anplis de sa, lè yon pwojè deplase nan pwodiksyon an mas stage, li nesesè yo konsidere plis faktè tankou koneksyon rezo, konfigirasyon, entèraksyon IoT nwaj platfòm, jesyon firmwèr ak mizajou, jesyon pwodiksyon an mas, ak konfigirasyon sekirite. Se konsa, ki sa nou bezwen peye atansyon a lè w ap devlope yon pwojè IoT konplè? Nan chapit 1, nou mansyone ke kay entelijan se youn nan senaryo aplikasyon IoT ki pi komen, ak limyè entelijan yo se youn nan aparèy ki pi fondamantal ak pratik, ki ka itilize nan kay, otèl, jimnaz, lopital, elatriye. liv sa a, nou pral pran konstriksyon an nan yon pwojè limyè entelijan kòm pwen an kòmanse, eksplike eleman li yo ak karakteristik, epi bay konsèy sou devlopman pwojè. Nou espere ke ou ka tire enferans nan ka sa a pou kreye plis aplikasyon IoT.
2.1 Entwodiksyon nan Pwojè IoT tipik
An tèm de devlopman, modil fonksyonèl debaz nan pwojè Io yo ka klase nan devlopman lojisyèl ak pyès ki nan konpitè nan aparèy Io, devlopman aplikasyon kliyan, ak devlopman platfòm IoT nwaj. Li enpòtan pou klarifye modil fonksyonèl debaz yo, ki pral dekri plis nan seksyon sa a.
2.1.1 Modil debaz pou Aparèy IoT komen
Devlopman lojisyèl ak pyès ki nan konpitè nan aparèy IoT gen ladan modil debaz sa yo: Koleksyon done
Kòm kouch anba nan achitekti IoT, aparèy IoT nan kouch pèsepsyon ak kontwòl konekte detèktè ak aparèy atravè chips yo ak periferik yo reyalize koleksyon done ak kontwòl operasyon.
9
Obligasyon kont ak konfigirasyon inisyal Pou pifò aparèy IoT, obligatwa kont ak konfigirasyon inisyal yo fini nan yon pwosesis operasyonèl, pa egzanp.ample, konekte aparèy ak itilizatè pa konfigirasyon rezo Wi-Fi.
Entèaksyon ak platfòm nwaj IoT Pou kontwole ak kontwole aparèy IoT, li nesesè tou konekte yo ak platfòm nwaj IoT, yo nan lòd yo bay kòmandman ak rapòte estati atravè entèraksyon youn ak lòt.
Kontwòl aparèy Lè yo konekte ak platfòm nwaj IoT, aparèy yo ka kominike ak nwaj la epi yo ka anrejistre, mare oswa kontwole. Itilizatè yo ka mande estati pwodwi yo epi fè lòt operasyon sou app smartphone la atravè platfòm nwaj IoT oswa pwotokòl kominikasyon lokal yo.
Mizajou mikrolojisyèl aparèy IoT kapab tou reyalize amelyorasyon firmwèr ki baze sou bezwen manifaktirè yo. Lè w resevwa kòmandman nwaj la voye, ajou firmwèr ak jesyon vèsyon yo pral reyalize. Avèk karakteristik ajou firmwèr sa a, ou ka kontinyèlman amelyore fonksyon yo nan aparèy IoT, repare defo, ak amelyore eksperyans itilizatè.
2.1.2 Modil Debaz Aplikasyon Kliyan yo
Aplikasyon kliyan yo (egzanp, aplikasyon pou smartphone) sitou gen ladan modil debaz sa yo:
Sistèm kont ak otorizasyon Li sipòte otorizasyon kont ak aparèy.
Aparèy kontwòl aplikasyon pou Smartphone yo anjeneral ekipe ak fonksyon kontwole. Itilizatè yo ka fasilman konekte ak aparèy IoT, epi jere yo nenpòt lè, nenpòt kote atravè apps smartphone. Nan yon kay entelijan nan mond reyèl la, aparèy yo sitou kontwole atravè apps smartphone, ki non sèlman pèmèt jesyon entelijan nan aparèy, men tou, ekonomize pri a nan mendèv. Se poutèt sa, kontwòl aparèy se yon dwe pou aplikasyon pou kliyan, tankou kontwòl atribi fonksyon aparèy, kontwòl sèn, orè, kontwòl remote, koneksyon aparèy, elatriye itilizatè kay entelijan kapab tou Customize sèn selon bezwen pèsonèl, kontwole ekleraj, aparèy kay, antre. , elatriye, fè lavi lakay ou pi konfòtab ak pratik. Yo ka mete èkondisyone, fèmen li adistans, mete limyè koulwa a otomatikman yon fwa pòt la louvri, oswa chanje nan mòd "teyat la" ak yon sèl bouton.
Notifikasyon Aplikasyon kliyan yo mete ajou estati an tan reyèl nan aparèy Io, epi voye alèt lè aparèy yo ale nòmal.
10 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Sèvis kliyan apre lavant aplikasyon pou Smartphone ka bay sèvis apre lavant pou pwodwi yo, pou rezoud pwoblèm ki gen rapò ak echèk aparèy IoT ak operasyon teknik nan yon fason apwopriye.
Fonksyon ki prezante yo Pou satisfè bezwen diferan itilizatè yo, yo ka ajoute lòt fonksyon, tankou Shake, NFC, GPS, elatriye GPS ka ede mete presizyon nan operasyon sèn dapre kote ak distans, pandan y ap fonksyon an Shake pèmèt itilizatè yo mete a. kòmandman yo dwe egzekite pou aparèy espesifik oswa sèn pa souke.
2.1.3 Entwodiksyon sou platfòm komen IoT Cloud
Platfòm nwaj IoT se yon platfòm tout-an-yon ki entegre fonksyon tankou jesyon aparèy, kominikasyon sekirite done, ak jesyon notifikasyon. Dapre gwoup sib yo ak aksesibilite yo, platfòm nwaj IoT yo ka divize an platfòm nwaj IoT piblik (ki refere yo kòm "nwaj piblik") ak tribin nwaj IoT prive (ki refere yo kòm "nwaj prive").
Nwaj piblik anjeneral endike platfòm nwaj IoT pataje pou antrepwiz oswa moun, ki opere ak konsève pa founisè platfòm, epi pataje atravè entènèt la. Li ka gratis oswa pri ki ba, epi li bay sèvis nan tout rezo piblik ouvè a, tankou Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, elatriye. Kòm yon platfòm sipò, nwaj piblik ka entegre founisè sèvis en ak itilizatè fen en pou kreye yon nouvo chèn valè ak ekosistèm.
Nwaj prive bati pou itilizasyon antrepriz sèlman, kidonk garanti pi bon kontwòl sou done, sekirite, ak kalite sèvis. Sèvis li yo ak enfrastrikti yo konsève separeman pa antrepriz, ak pyès ki nan konpitè sipò yo ak lojisyèl yo tou dedye a itilizatè espesifik. Antrepriz yo ka personnaliser sèvis nwaj pou satisfè bezwen biznis yo. Kounye a, gen kèk manifakti kay entelijan ki te deja jwenn platfòm nwaj prive IoT epi devlope aplikasyon pou kay entelijan ki baze sou yo.
Nwaj piblik ak nwaj prive gen pwòp advan yotages, ki pral eksplike pita.
Pou reyalize koneksyon kominikasyon, li nesesè pou konplete omwen devlopman entegre sou bò aparèy la, ansanm ak sèvè biznis, platfòm nwaj IoT, ak aplikasyon pou smartphone. Fè fas a yon pwojè gwo konsa, nwaj piblik nòmalman bay twous devlopman lojisyèl pou aparèy-bò ak apps smartphone pou akselere pwosesis la. Tou de nwaj piblik ak prive bay sèvis ki gen ladan aksè aparèy, jesyon aparèy, lonbraj aparèy, ak operasyon ak antretyen.
Aparèy aksè platfòm nwaj IoT bezwen bay non sèlman entèfas pou aksè aparèy lè l sèvi avèk pwotokòl
Chapit 2. Entwodiksyon ak pratik pwojè IoT 11
tankou MQTT, CoAP, HTTPS, ak WebSocket, men tou, fonksyon otantifikasyon sekirite aparèy pou bloke aparèy fòje ak ilegal, efektivman diminye risk pou yo konpwomèt. Otantifikasyon sa yo anjeneral sipòte diferan mekanis, kidonk lè aparèy yo pwodui an mas, li nesesè pre-asiyen sètifika aparèy la dapre mekanis otantifikasyon chwazi a epi boule li nan aparèy yo.
Jesyon aparèy Fonksyon jesyon aparèy yo ofri pa platfòm nwaj IoT ka pa sèlman ede manifaktirè yo kontwole estati aktivasyon ak estati sou entènèt aparèy yo an tan reyèl, men tou pèmèt opsyon tankou ajoute / retire aparèy, rekipere, ajoute / efase gwoup, ajou firmwèr. , ak jesyon vèsyon.
Aparèy lonbraj platfòm nwaj IoT ka kreye yon vèsyon vityèl ki pèsistan (lonbraj aparèy) pou chak aparèy, epi estati lonbraj aparèy la ka senkronize epi jwenn pa aplikasyon smartphone oswa lòt aparèy atravè pwotokòl transmisyon entènèt. Lonbraj aparèy la estoke dènye estati yo rapòte ak sitiyasyon espere chak aparèy, e menm si aparèy la offline, li ka toujou jwenn estati a lè w rele API yo. Lonbraj aparèy bay API toujou sou, sa ki fè li pi fasil pou konstwi apps smartphone ki kominike avèk aparèy yo.
Operasyon ak antretyen Fonksyon O&M gen ladan twa aspè: · Demontre enfòmasyon estatistik sou aparèy ak notifikasyon IoT. · Jesyon boutèy demi lit pèmèt rekipere enfòmasyon sou konpòtman aparèy, moute / desann mesaj koule, ak kontni mesaj. · Debogaj aparèy sipòte livrezon lòd, aktyalizasyon konfigirasyon, ak tcheke entèraksyon ki genyen ant platfòm nwaj IoT ak mesaj aparèy.
2.2 Pratike: Pwojè limyè entelijan
Apre entwodiksyon teyorik la nan chak chapit, w ap jwenn yon seksyon pratik ki gen rapò ak pwojè Smart Light pou ede w jwenn eksperyans pratik. Pwojè a baze sou chip ESP32-C3 Espressif ak ESP RainMaker IoT Cloud Platform, epi li kouvri pyès ki nan konpitè modil san fil nan pwodwi limyè entelijan, lojisyèl entegre pou aparèy entelijan ki baze sou ESP32C3, apps smartphone, ak entèraksyon ESP RainMaker.
Kòd Sous Pou pi bon aprantisaj ak devlopman eksperyans, pwojè a nan liv sa a te louvri. Ou ka telechaje kòd sous la nan depo GitHub nou an nan https://github. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
2.2.1 Estrikti Pwojè
Pwojè Smart Light la gen twa pati: i. Aparèy limyè entelijan ki baze sou ESP32-C3, responsab pou kominike avèk platfòm nwaj IoT, ak kontwole switch, klète ak tanperati koulè nan LED l.amp pèl. ii. Aplikasyon Smartphone (ki gen ladan aplikasyon pou tablèt ki kouri sou andwad ak iOS), responsab pou konfigirasyon rezo pwodwi limyè entelijan, osi byen ke demann ak kontwole estati yo.
iii. Yon platfòm nwaj IoT ki baze sou ESP RainMaker. Pou senplifikasyon, nou konsidere platfòm nwaj IoT ak sèvè biznis kòm yon antye nan liv sa a. N ap bay detay sou ESP RainMaker nan Chapit 3.
Korespondans ki genyen ant estrikti pwojè Smart Light ak achitekti IoT montre nan Figi 2.1.
Figi 2.1. Estrikti nan pwojè limyè entelijan
2.2.2 Fonksyon Pwojè
Divize selon estrikti a, fonksyon chak pati yo jan sa a. Aparèy limyè entelijan
· Konfigirasyon rezo ak koneksyon. · Dirije kontwòl PWM, tankou switch, klète, tanperati koulè, elatriye. · Automatisation oswa kontwòl sèn, pa egzanp, switch tan. · Chifre ak bòt an sekirite nan Flash la. · Mizajou mikrolojisyèl ak jesyon vèsyon.
Chapit 2. Entwodiksyon ak pratik pwojè IoT 13
Aplikasyon pou Smartphone · Konfigirasyon rezo ak aparèy obligatwa. · Kontwòl pwodwi limyè entelijan, tankou switch, klète, tanperati koulè, elatriye. · Otomatik oswa anviwònman sèn, pa egzanp, switch tan. · Lokal / kontwòl remote. · Enskripsyon itilizatè, konekte, elatriye.
Platfòm nwaj ESP RainMaker IoT · Pèmèt aksè aparèy IoT. · Bay API operasyon aparèy aksesib a apps smartphone. · Mizajou mikrolojisyèl ak jesyon vèsyon.
2.2.3 Preparasyon Materyèl
Si w enterese mete pwojè a an pratik, w ap bezwen tou pyès ki nan konpitè sa yo: limyè entelijan, smartphones, routeurs Wi-Fi, ak yon òdinatè ki satisfè kondisyon enstalasyon anviwònman devlopman an. Limyè entelijan
Limyè entelijan yo se yon nouvo kalite anpoul, ki gen fòm se menm jan ak anpoul enkandesan jeneral la. Yon limyè entelijan konpoze de kondansateur etap-down reglemante ekipman pou pouvwa, modil san fil (ak bati-an ESP32-C3), kontwolè dirije ak RGB dirije matris. Lè konekte ak pouvwa, 15 V DC voltage pwodiksyon apre kondansateur etap-desann, redresman dyod, ak règleman bay enèji nan kontwolè a ki ap dirije ak dirije matris. Kontwolè ki ap dirije a ka voye otomatikman nivo wo ak ba nan sèten entèval, chanje matris ki ap dirije RGB ant fèmen (limyè limen) ak louvri (limyè etenn), pou li ka emèt cyan, jòn, vèt, koulè wouj violèt, ble, wouj, ak limyè blan. Modil san fil la responsab pou konekte ak routeur Wi-Fi, resevwa ak rapòte estati limyè entelijan yo, epi voye kòmandman pou kontwole LED la.
Figi 2.2. Yon limyè entelijan simulation
Nan devlopman bonè stage, ou ka simulation yon limyè entelijan lè l sèvi avèk tablo ESP32-C3DevKitM-1 ki konekte ak RGB LED lamp pèl (gade Figi 2.2). Men, ou ta dwe
14 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
sonje ke sa a se pa sèl fason yo rasanble yon limyè entelijan. Konsepsyon pyès ki nan konpitè pwojè a nan liv sa a sèlman gen yon modil san fil (avèk ESP32-C3 entegre), men se pa yon konsepsyon pyès ki nan konpitè limyè entelijan. Anplis de sa, Espressif tou pwodui yon tablo devlopman odyo ESP32-C3 ki baze sou ESP32C3-Lyra pou kontwole limyè ak odyo. Komisyon Konsèy la gen interfaces pou mikwofòn ak moun kap pale epi li ka kontwole bann dirije. Li ka itilize pou devlope ultra-ba-pri, segondè-pèfòmans difizyon odyo ak bann limyè ritm. Figi 2.3 montre yon tablo ESP32-C3Lyra lye ak yon teren 40 limyè dirije.
Figi 2.3. ESP32-C3-Lyra lye ak yon teren 40 limyè dirije
Smartphones (Android/iOS) Pwojè Smart Light a enplike devlopman yon app smartphone pou mete kanpe ak kontwole pwodwi limyè entelijan.
Routeur Wi-Fi Routeur Wi-Fi konvèti siyal rezo fil elektrik ak siyal rezo mobil nan siyal rezo san fil, pou òdinatè, smartphones, tablèt, ak lòt aparèy san fil konekte ak rezo a. Pou egzanpample, bande nan kay la sèlman bezwen konekte ak yon routeur Wi-Fi reyalize rezo san fil nan aparèy Wi-Fi. Estanda pwotokòl endikap ki sipòte pa routeurs Wi-Fi se IEEE 802.11n, ak yon mwayèn TxRate 300 Mbps, oswa 600 Mbps nan maksimòm. Yo konpatib bak ak IEEE 802.11b ak IEEE 802.11g. Chip ESP32-C3 pa Espressif sipòte IEEE 802.11b/g/n, kidonk, ou ka chwazi yon sèl-band (2.4 GHz) oswa doub-band (2.4 GHz ak 5 GHz) Wi-Fi routeur.
Yo pral prezante yon anviwònman Devlopman òdinatè (Linux/macOS/Windows) nan Chapit 4. Chapit 2. Entwodiksyon ak pratik Pwojè IoT 15
2.2.4 Pwosesis Devlopman
Figi 2.4. Etap pou devlope pwojè Smart Light la
Konsepsyon pyès ki nan konpitè Konsepsyon pyès ki nan konpitè nan aparèy IoT esansyèl nan yon pwojè IoT. Yon pwojè limyè entelijan konplè gen entansyon pwodwi alamp k ap travay anba kouran elektrik. Diferan manifakti yo pwodwi lamps nan diferan estil ak kalite chofè, men modil san fil yo anjeneral nan menm fonksyon an. Pou senplifye pwosesis devlopman pwojè Smart Ligh la, liv sa a sèlman kouvri konsepsyon pyès ki nan konpitè ak devlopman lojisyèl modil san fil.
Konfigirasyon platfòm nwaj IoT Pou itilize platfòm nwaj IoT, ou bezwen konfigirasyon pwojè sou backend la, tankou kreye pwodwi, kreye aparèy, mete pwopriyete aparèy, elatriye.
Devlopman lojisyèl entegre pou aparèy IoT Enplemante fonksyon espere ak ESP-IDF, SDK Espressif nan aparèy, ki gen ladan konekte ak platfòm nwaj IoT, devlope chofè LED, ak amelyore firmwèr.
Devlopman aplikasyon pou Smartphone Devlope aplikasyon pou smartphone pou sistèm Android ak iOS pou reyalize enskripsyon itilizatè yo ak konekte, kontwòl aparèy ak lòt fonksyon.
Optimizasyon aparèy IoT Yon fwa devlopman debaz fonksyon aparèy IoT fini, ou ka ale nan travay optimize, tankou optimize pouvwa.
Tès pwodiksyon an mas Fè tès pwodiksyon an mas selon estanda ki gen rapò, tankou tès fonksyon ekipman, tès aje, tès RF, elatriye.
Malgre etap sa yo ki nan lis pi wo a, yon pwojè Smart Light pa nesesèman sijè a pwosedi sa yo, paske diferan travay kapab tou fèt an menm tan an. Pou egzanpample, entegre lojisyèl ak apps smartphone ka devlope nan paralèl. Gen kèk etap ki ka bezwen repete tou, tankou optimize aparèy IoT ak tès pwodiksyon an mas.
16 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
2.3 Rezime
Nan chapit sa a, nou te premye ekspoze sou eleman debaz yo ak modil fonksyonèl nan yon pwojè IoT, Lè sa a, prezante ka Smart Light pou pratik, refere li a estrikti li yo, fonksyon, preparasyon pyès ki nan konpitè, ak pwosesis devlopman. Lektè yo ka tire enferans nan pratik la epi vin gen konfyans yo pote pwojè IoT ak erè minimòm nan lavni.
Chapit 2. Entwodiksyon ak pratik pwojè IoT 17
18 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Chapit 3
Entwodiksyon
pou
ESP
RainMaker
Entènèt bagay sa yo (IoT) ofri posiblite kontinuèl pou chanje fason moun ap viv, men devlopman jeni IoT chaje ak defi. Avèk nwaj piblik yo, manifaktirè tèminal yo ka aplike fonksyonalite pwodwi atravè solisyon sa yo:
Ki baze sou platfòm nwaj founisè solisyon yo. Nan fason sa a, manifaktirè tèminal yo sèlman bezwen konsepsyon pyès ki nan konpitè pwodwi a, Lè sa a, konekte pyès ki nan konpitè a nan nwaj la lè l sèvi avèk modil kominikasyon yo bay la, ak konfigirasyon fonksyon pwodwi yo swiv direktiv yo. Sa a se yon apwòch efikas paske li elimine nesesite pou devlopman ak operasyon ak antretyen bò sèvè ak bò aplikasyon an (O&M). Li pèmèt manifaktirè tèminal yo konsantre sou konsepsyon pyès ki nan konpitè san yo pa bezwen konsidere aplikasyon nwaj. Sepandan, solisyon sa yo (egzanp, firmwèr aparèy ak App) jeneralman yo pa sous louvri, kidonk fonksyon pwodwi yo pral limite pa platfòm nwaj founisè a ki pa ka Customized. Pandan se tan, done itilizatè a ak aparèy tou fè pati platfòm nwaj la.
Ki baze sou pwodwi nwaj Nan solisyon sa a, apre yo fin ranpli konsepsyon pyès ki nan konpitè, manifaktirè tèminal yo pa sèlman bezwen aplike fonksyon nwaj lè l sèvi avèk youn oswa plis pwodwi nwaj ki bay nwaj piblik la, men tou, bezwen konekte pyès ki nan konpitè ak nwaj la. Pou egzanpample, konekte ak Amazon Web Sèvis (AWS), manifaktirè tèminal yo bezwen sèvi ak pwodwi AWS tankou Amazon API Gateway, AWS IoT Core, ak AWS Lambda pou pèmèt aksè aparèy, kontwòl remote, depo done, jesyon itilizatè, ak lòt fonksyon debaz yo. Li pa sèlman mande manifaktirè tèminal yo pou yo itilize ak konfigirasyon pwodwi nwaj yo ak konpreyansyon pwofondè ak eksperyans rich, men tou, li mande pou yo konsidere pri konstriksyon ak antretyen pou premye ak pita.tages Sa poze gwo defi nan enèji ak resous konpayi an.
Konpare ak nwaj piblik yo, nwaj prive yo anjeneral bati pou pwojè espesifik ak pwodwi. Devlopè nwaj prive yo bay pi wo nivo libète nan konsepsyon pwotokòl ak aplikasyon lojik biznis. Manifaktirè tèminal yo ka fè pwodwi ak plan konsepsyon yo nan volonte, epi fasil entegre ak pèmèt done itilizatè yo. Konbine sekirite segondè, évolutivité ak fyab nan nwaj piblik ak advan latagnan nwaj prive, Espressif te lanse ESP
19
RainMaker, yon solisyon nwaj prive byen entegre ki baze sou Amazon nwaj. Itilizatè yo ka deplwaye ESP RainMaker epi konstwi nwaj prive tou senpleman avèk yon kont AWS.
3.1 Ki sa ki ESP RainMaker?
ESP RainMaker se yon platfòm AIoT konplè ki bati ak plizyè pwodwi AWS ki gen matirite. Li bay plizyè sèvis ki nesesè pou pwodiksyon an mas tankou aksè nan nwaj aparèy, ajou aparèy, jesyon backend, koneksyon twazyèm pati, entegrasyon vwa, ak jesyon itilizatè. Lè yo itilize Serverless Application Repository (SAR) AWS bay, manifaktirè tèminal yo ka byen vit deplwaye ESP RainMaker nan kont AWS yo, ki efikas nan tan e fasil pou opere. Jere ak konsève pa Espressif, SAR ki itilize pa ESP RainMaker ede devlopè diminye depans antretyen nwaj yo ak akselere devlopman nan pwodwi AIoT, konsa bati solisyon AIoT ki an sekirite, ki estab ak personnalisable. Figi 3.1 montre achitekti ESP RainMaker.
Figi 3.1. Achitekti nan ESP RainMaker
Sèvè piblik ESP RainMaker pa Espressif gratis pou tout amater ESP, mizisyen, ak edikatè pou evalyasyon solisyon. Devlopè yo ka konekte ak kont Apple, Google, oswa GitHub, epi byen vit bati pwòp pwototip aplikasyon IoT yo. Sèvè piblik la entegre Alexa ak Google Home, epi li bay sèvis kontwòl vwa, ki sipòte pa Alexa Skill ak Google Actions. Fonksyon rekonesans semantik li yo tou patrone pa twazyèm pati. Aparèy RainMaker IoT sèlman reponn a aksyon espesifik. Pou yon lis konplè sou kòmandman vwa sipòte, tanpri tcheke platfòm twazyèm pati yo. Anplis de sa, Espressif ofri yon RainMaker App piblik pou itilizatè yo kontwole pwodwi yo atravè smartphones. 20 ESP32-C3 Avanti san fil: Yon Gid konplè sou IoT
3.2 Aplikasyon ESP RainMaker
Jan yo montre nan Figi 3.2, ESP RainMaker gen kat pati: · Sèvis Reklamasyon, ki pèmèt aparèy RainMaker pou yo jwenn sètifika yon fason dinamik. · RainMaker Cloud (ki rele tou nwaj backend), bay sèvis tankou filtrage mesaj, jesyon itilizatè, depo done, ak entegrasyon twazyèm pati. · RainMaker Agent, ki pèmèt aparèy RainMaker yo konekte ak RainMaker Cloud. · RainMaker Kliyan (RainMaker App oswa scripts CLI), pou pwovizyon, kreyasyon itilizatè, asosyasyon ak kontwòl aparèy, elatriye.
Figi 3.2. Estrikti nan ESP RainMaker
ESP RainMaker bay yon seri zouti konplè pou devlopman pwodwi ak pwodiksyon an mas, tankou: RainMaker SDK
RainMaker SDK baze sou ESP-IDF epi li bay kòd sous ajan bò aparèy la ak API C ki gen rapò pou devlopman firmwèr. Devlopè yo sèlman bezwen ekri lojik aplikasyon an epi kite rès la nan kad RainMaker la. Pou plis enfòmasyon sou C APIs, tanpri vizite https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Vèsyon piblik RainMaker App a pèmèt devlopè yo konplete apwovizyonman aparèy, epi kontwole ak kesyone estati aparèy yo (pa egzanp, pwodwi ekleraj entelijan). Li disponib sou tou de magazen app iOS ak Android. Pou plis detay, tanpri al gade nan Chapit 10. API REST API REST ede itilizatè yo bati pwòp aplikasyon yo menm jan ak App RainMaker la. Pou plis enfòmasyon, tanpri vizite https://swaggerapis.rainmaker.espressif.com/.
Chapit 3. Entwodiksyon nan ESP RainMaker 21
API Python Yo bay yon CLI ki baze sou Python, ki vini ak RainMaker SDK, pou aplike tout fonksyon ki sanble ak karakteristik smartphone yo. Pou plis enfòmasyon sou API Python, tanpri vizite https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, ak pi wo nivo aksè, yo bay pou deplwaman ESP RainMaker prive pou jenere sètifika aparèy an gwo.
3.2.1 Sèvis Reklamasyon
Tout kominikasyon ant aparèy RainMaker ak backend nwaj la fèt atravè MQTT + TLS. Nan kontèks ESP RainMaker, "Reklamasyon" se pwosesis kote aparèy yo jwenn sètifika nan Sèvis reklamasyon an pou konekte ak backend nwaj la. Remake byen ke Sèvis reklamasyon an aplikab sèlman nan sèvis RainMaker piblik la, alòske pou deplwaman prive, sètifika aparèy yo dwe pwodwi an gwo atravè Admin CLI. ESP RainMaker sipòte twa kalite sèvis reklamasyon: Self Claiming
Aparèy la li menm pran sètifika yo atravè yon kle sekrè pre-pwograme nan eFuse apre konekte ak entènèt la. Reklamasyon sou lame a Sètifika yo jwenn nan men animatè devlopman ak kont RainMaker la. Asistans reklamasyon Sètifika yo jwenn atravè aplikasyon smartphone pandan pwovizyon.
3.2.2 Ajan RainMaker
Figi 3.3. Estrikti RainMaker SDK Fonksyon prensipal RainMaker Agent se pou bay koneksyon ak ede kouch aplikasyon an pou trete done nwaj monte/desann. Li konstwi atravè RainMaker SDK 22 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT.
epi devlope baze sou fondasyon ESP-IDF pwouve, lè l sèvi avèk konpozan ESP-IDF tankou RTOS, NVS, ak MQTT. Figi 3.3 montre estrikti RainMaker SDK la.
RainMaker SDK gen ladan de gwo karakteristik.
Koneksyon
mwen. Koopere ak Sèvis reklamasyon pou jwenn sètifika aparèy.
ii. Konekte ak backend nwaj la lè l sèvi avèk pwotokòl MQTT an sekirite pou bay koneksyon aleka epi aplike kontwòl remote, rapò mesaj, jesyon itilizatè, jesyon aparèy, elatriye. Li itilize eleman MQTT nan ESP-IDF pa default epi li bay yon kouch abstrè pou koòdone ak lòt. pil pwotokòl.
iii. Bay eleman pwovizyon wifi pou koneksyon ak pwovizyon Wi-Fi, espesyalman https ota eleman pou amelyorasyon OTA, ak espesyalman lokal ctrl eleman pou dekouvèt aparèy lokal ak koneksyon. Tout objektif sa yo ka reyalize atravè konfigirasyon senp.
Pwosesis done
mwen. Sere sètifika aparèy yo bay Claiming Service ak done ki nesesè lè w ap kouri RainMaker, pa default lè l sèvi avèk koòdone eleman nvs flash bay la, epi bay API pou devlopè pou itilize dirèk.
ii. Sèvi ak mekanis callback la pou trete done nwaj uplink/downlink epi otomatikman debloke done yo nan kouch aplikasyon an pou devlopè yo fasil pou trete yo. Pou egzanpampLè sa a, RainMaker SDK bay entèfas rich pou etabli done TSL (Thing Specification Language), ki oblije defini modèl TSL pou dekri aparèy IoT epi aplike fonksyon tankou distribisyon, dekont, ak kontwòl vwa. Pou karakteristik debaz entèaktif tankou distribisyon, RainMaker SDK bay yon solisyon devlopman-gratis ki ka tou senpleman aktive lè sa nesesè. Lè sa a, Ajan RainMaker la pral trete done yo dirèkteman, voye yo nan nwaj la atravè sijè MQTT ki asosye a, epi li pral bay chanjman done yo nan backend nwaj la atravè mekanis callback.
3.2.3 Cloud Backend
Backend nwaj la bati sou AWS Serverless Computing epi li reyalize atravè AWS Cognito (sistèm jesyon idantite), Amazon API Gateway, AWS Lambda (sèvis enfòmatik san sèvè), Amazon DynamoDB (baz done NoSQL), AWS IoT Core (nwayo aksè IoT ki bay aksè MQTT). ak filtraj règ), Amazon Senp Imèl Sèvis (SES senp sèvis lapòs), Amazon CloudFront (rezo livrezon rapid), Amazon Senp Queue Sèvis (SQS mesaj keuing), ak Amazon S3 (sèvis depo bokit). Li vize pou optimize évolutivité ak sekirite. Avèk ESP RainMaker, devlopè yo ka jere aparèy san yo pa bezwen ekri kòd nan nwaj la. Mesaj rapòte pa aparèy yo transparan transparan
Chapit 3. Entwodiksyon nan ESP RainMaker 23
kliyan aplikasyon oswa lòt sèvis twazyèm pati. Tablo 3.1 montre pwodwi nwaj AWS yo ak fonksyon yo itilize nan backend nwaj la, ak plis pwodwi ak karakteristik nan devlopman.
Tablo 3.1. Pwodwi nwaj AWS ak fonksyon backend nwaj yo itilize
Pwodwi AWS Cloud itilize pa RainMaker
Fonksyon
AWS Cognito
Jere kalifikasyon itilizatè yo ak sipòte koneksyon twazyèm pati
AWS Lambda
Aplike lojik biznis debaz nan backend nwaj la
Amazon Timestream Sere done seri tan
Amazon DynamoDB Sere enfòmasyon prive kliyan yo
AWS IoT Nwayo
Sipòte kominikasyon MQTT
Amazon SES
Bay sèvis voye imel
Amazon CloudFront Akselere jesyon backend la webaksè sit
Amazon SQS
Voye mesaj ki soti nan AWS IoT Core
3.2.4 Kliyan RainMaker
Kliyan RainMaker, tankou App ak CLI, kominike ak backend nwaj la atravè API REST. Ou ka jwenn enfòmasyon detaye ak enstriksyon sou API REST nan dokiman Swagger Espressif bay. Kliyan aplikasyon mobil RainMaker la disponib pou tou de sistèm iOS ak Android. Li pèmèt aparèy pwovizyon, kontwòl, ak pataje, osi byen ke kreye ak pèmèt travay dekont ak konekte ak platfòm twazyèm pati. Li ka otomatikman chaje UI ak ikon selon konfigirasyon aparèy yo rapòte epi montre TSL aparèy la konplètman.
Pou egzanpample, si yon limyè entelijan bati sou RainMaker SDK-bay ansyen anamples, icon ak UI nan limyè anpoul la pral chaje otomatikman lè pwovizyon an fini. Itilizatè yo ka chanje koulè ak klète limyè a atravè koòdone a epi reyalize kontwòl yon twazyèm pati lè yo konekte Alexa Smart Home Skill oswa Google Smart Home Actions nan kont ESP RainMaker yo. Figi 3.4 montre icon a ak UI exampti limyè anpoul la respektivman sou Alexa, Google Home, ak ESP RainMaker App.
24 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
(a) Egzample – Alexa
(b) Egzample – Google Kay
(c) Egzample – ESP RainMaker
Figi 3.4. Egzampkèk nan icon ak UI nan limyè anpoul la sou Alexa, Google Home, ak ESP RainMaker App
3.3 Pratike: Pwen kle pou devlope ak ESP RainMaker
Yon fwa kouch chofè aparèy la fini, devlopè yo ka kòmanse kreye modèl TSL epi trete done downlink yo lè l sèvi avèk API RainMaker SDK bay yo, epi pèmèt sèvis debaz ESP RainMaker ki baze sou definisyon pwodwi ak kondisyon yo.
Chapit 3. Entwodiksyon nan ESP RainMaker 25
Seksyon 9.4 nan liv sa a pral eksplike aplikasyon an nan limyè entelijan ki ap dirije nan RainMaker. Pandan debogaj, devlopè yo ka itilize zouti CLI nan RainMaker SDK pou kominike ak limyè entelijan (oswa rele REST API soti nan Swagger).
Chapit 10 pral elabore itilizasyon API REST pou devlope aplikasyon pou smartphone. Amelyorasyon OTA nan limyè entelijan ki ap dirije yo pral kouvri nan Chapit 11. Si devlopè yo te pèmèt siveyans aleka ESP Insights, backend jesyon ESP RainMaker pral montre done ESP Insights yo. Detay yo pral prezante nan Chapit 15.
ESP RainMaker sipòte deplwaman prive, ki diferan de sèvè RainMaker piblik la nan fason sa yo:
Reklame Sèvis Pou jenere sètifika nan deplwaman prive, li oblije sèvi ak RainMaker Admin CLI olye pou Reklamasyon. Avèk sèvè piblik, devlopè yo dwe bay dwa admin pou aplike ajou firmwèr, men li pa dezirab nan deplwaman komèsyal yo. Se poutèt sa, ni sèvis otantifikasyon separe ka bay pou reklamasyon pwòp tèt ou, ni dwa admin pou reklamasyon kondwi oswa asistans.
Aplikasyon pou telefòn Nan deplwaman prive, aplikasyon yo dwe konfigirasyon epi konpile separeman pou asire ke sistèm kont yo pa entèoperab.
Login 3yèm pati ak entegrasyon vwa Devlopè yo dwe konfigirasyon separeman atravè kont Google ak Apple Developer pou pèmèt koneksyon 3yèm pati, osi byen ke Alexa Skill ak entegrasyon Google Voice Assistant.
KONSÈY Pou plis detay sou deplwaman nwaj, tanpri vizite https://customer.rainmaker.espressif. com. An tèm de firmwèr, migrasyon soti nan sèvè piblik nan sèvè prive sèlman mande pou ranplase sètifika aparèy, ki anpil amelyore efikasite migrasyon ak diminye pri a nan migrasyon ak debogaj segondè.
3.4 Karakteristik ESP RainMaker
Karakteristik ESP RainMaker yo vize sitou sou twa aspè - jesyon itilizatè, itilizatè final, ak admin. Tout karakteristik yo sipòte nan tou de sèvè piblik ak prive sof si otreman endike.
3.4.1 Jesyon itilizatè
Karakteristik jesyon itilizatè yo pèmèt itilizatè final yo enskri, konekte, chanje modpas, rekipere modpas, elatriye.
26 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Enskri epi konekte Metòd enskripsyon ak konekte RainMaker sipòte yo enkli: · Imèl id + Modpas · Nimewo telefòn + Modpas · Kont Google · Kont Apple · Kont GitHub (sèvè piblik sèlman) · Kont Amazon (sèvè prive sèlman)
REMAK Enskri ak Google/Amazon pataje adrès imel itilizatè a ak RainMaker. Enskri lè l sèvi avèk Apple pataje yon adrès enbesil ke Apple asiyen pou itilizatè a espesyalman pou sèvis RainMaker la. Y ap kreye yon kont RainMaker otomatikman pou itilizatè ki konekte ak yon kont Google, Apple oswa Amazon pou premye fwa.
Chanje modpas Valab sèlman pou idantifikasyon imèl/nimewo telefòn ki baze sou koneksyon. Tout lòt sesyon aktif yo pral dekonekte apre modpas la chanje. Dapre konpòtman AWS Cognito, sesyon yo dekonekte yo ka rete aktif jiska 1 èdtan.
Rekipere modpas Valab sèlman pou idantifikasyon imèl/nimewo telefòn ki baze sou koneksyon.
3.4.2 Karakteristik itilizatè fen
Karakteristik ouvè pou itilizatè fen yo enkli kontwòl lokal ak remote ak siveyans, orè, gwoupman aparèy, pataje aparèy, notifikasyon pouse, ak entegrasyon twazyèm pati.
Kontwòl ak siveyans Remote · Rechèch konfigirasyon, valè paramèt, ak estati koneksyon pou youn oswa tout aparèy. · Mete paramèt pou aparèy sèl oswa plizyè.
Kontwòl lokal ak siveyans Telefòn mobil ak aparèy la bezwen konekte nan menm rezo a pou kontwòl lokal yo.
Orè · Itilizatè yo pre-mete sèten aksyon nan yon moman espesifik. · Pa gen koneksyon entènèt ki nesesè pou aparèy la pandan y ap egzekite orè a. · Yon fwa oswa repete (pa espesifye jou) pou yon sèl oswa plizyè aparèy.
Gwoupman Aparèy Sipòte gwoupman abstrè milti-nivo Yo ka itilize metadata Gwoup pou kreye yon estrikti Sal Kay.
Chapit 3. Entwodiksyon nan ESP RainMaker 27
Pataje Aparèy Youn oswa plizyè aparèy kapab pataje ak youn oswa plis itilizatè.
Notifikasyon pouse Itilizatè final yo pral resevwa notifikasyon pouse pou evènman tankou · Nouvo aparèy (yo) ajoute/retire · Aparèy ki konekte nan nwaj · Aparèy dekonekte nan nwaj · Demann pou pataje aparèy yo kreye/aksepte/refize · Mesaj alèt yo rapòte pa aparèy
Entegrasyon twazyèm pati Alexa ak Google Voice Assistant yo sipòte pou kontwole aparèy RainMaker, tankou limyè, switch, sipò, fanatik, ak detèktè tanperati.
3.4.3 Karakteristik Admin
Karakteristik admin pèmèt administratè yo aplike enskripsyon aparèy, gwoupman aparèy, ak amelyorasyon OTA, ak view estatistik ak done ESP Insights.
Anrejistreman aparèy Jenere sètifika aparèy epi enskri ak Admin CLI (sèvè prive sèlman).
Gwoupman aparèy Kreye gwoup abstrè oswa estriktire ki baze sou enfòmasyon sou aparèy (sèvè prive sèlman).
Upgrade Over-the-Air (OTA) Télécharge firmwèr ki baze sou vèsyon ak modèl, nan youn oswa plizyè aparèy oswa yon gwoup Siveye, anile, oswa achiv travay OTA.
View estatistik Viewestatistik ki kapab genyen ladan yo: · Anrejistreman aparèy (sètifika ki anrejistre pa administratè a) · Aktivasyon aparèy (aparèy konekte pou premye fwa) · Kont itilizatè · Asosyasyon itilizatè-aparèy
View Done ESP Insights ViewDone ESP Insights ki kapab genyen ladan yo: · Erè, avètisman, ak repòtaj koutim · Rapò aksidan ak analiz · Rezon ki fè rekòmanse · Paramèt tankou itilizasyon memwa, RSSI, elatriye · Paramèt ak varyab pèsonèl.
28 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
3.5 Rezime
Nan chapit sa a, nou prezante kèk diferans enpòtan ant deplwaman RainMaker piblik la ak deplwaman prive a. Solisyon prive ESP RainMaker lanse pa Espressif se trè serye ak ekstansibl. Tout chips seri ESP32 yo te konekte ak adapte ak AWS, ki redwi anpil pri a. Devlopè yo ka konsantre sou verifikasyon pwototip san yo pa bezwen aprann sou pwodwi nwaj AWS yo. Nou te eksplike tou aplikasyon ak karakteristik ESP RainMaker, ak kèk pwen kle pou devlopman lè l sèvi avèk platfòm la.
Eskane pou telechaje ESP RainMaker pou Android Eskane pou telechaje ESP RainMaker pou iOS
Chapit 3. Entwodiksyon nan ESP RainMaker 29
30 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Chapit Mete kanpe 4 Anviwònman Devlopman
Chapit sa a konsantre sou ESP-IDF, fondasyon ofisyèl devlopman lojisyèl pou ESP32-C3. Nou pral eksplike kijan pou mete anviwònman an sou divès sistèm opere, epi prezante estrikti pwojè a ak bati sistèm nan ESP-IDF, osi byen ke itilizasyon zouti devlopman ki gen rapò. Lè sa a, nou pral prezante pwosesis la konpile ak kouri nan yon ansyenample pwojè, pandan y ap ofri yon eksplikasyon detaye sou boutèy la pwodiksyon nan chak stage.
4.1 ESP-IDF finiview
ESP-IDF (Espressif IoT Development Framework) se yon kad devlopman IoT yon sèl-stop ki ofri pa Espressif Teknoloji. Li itilize C/C++ kòm lang prensipal devlopman epi li sipòte kwa-konpilasyon anba sistèm opere endikap tankou Linux, Mac, ak Windows. Ansyen anampPwogram ki enkli nan liv sa a yo devlope lè l sèvi avèk ESP-IDF, ki ofri karakteristik sa yo: · Pilotè nan nivo sistèm SoC. ESP-IDF gen ladann chofè pou ESP32, ESP32-S2, ESP32-C3,
ak lòt chips. Chofè sa yo enkli bibliyotèk periferik nivo ba (LL), bibliyotèk kouch abstrè pyès ki nan konpitè (HAL), sipò RTOS ak lojisyèl chofè kouch siperyè, elatriye. · Konpozan esansyèl. ESP-IDF enkòpore eleman fondamantal ki nesesè pou devlopman IoT. Sa a gen ladan plizyè pil pwotokòl rezo tankou HTTP ak MQTT, yon kad jesyon pouvwa ak modulasyon frekans dinamik, ak karakteristik tankou Flash Encryption ak Secure Boot, elatriye · Devlopman ak zouti pwodiksyon. ESP-IDF bay zouti souvan itilize pou bati, flash, ak debogaj pandan devlopman ak pwodiksyon an mas (gade Figi 4.1), tankou sistèm nan bilding ki baze sou CMake, chèn zouti kwa-konpilasyon ki baze sou GCC, ak J la.TAG zouti debogaj ki baze sou OpenOCD, elatriye. Li se vo anyen ke kòd la ESP-IDF prensipalman konfòme yo ak Apache 2.0 lisans la sous louvri. Itilizatè yo ka devlope lojisyèl pèsonèl oswa komèsyal san restriksyon pandan y ap konfòme yo ak kondisyon ki nan lisans la sous louvri. Anplis de sa, itilizatè yo akòde lisans patant pèmanan gratis, san yo pa obligasyon pou louvri sous nenpòt modifikasyon ki fèt nan kòd sous la.
31
Figi 4.1.
Bati, flache, ak debug-
ging zouti pou devlopman ak pwodiksyon an mas
4.1.1 Vèsyon ESP-IDF
Kòd ESP-IDF akomode sou GitHub kòm yon pwojè sous louvri. Kounye a, gen twa gwo vèsyon ki disponib: v3, v4, ak v5. Chak gwo vèsyon anjeneral gen divès kalite subversion, tankou v4.2, v4.3, ak sou sa. Espressif Systems asire yon sipò 30 mwa pou korije ensèk ak plak sekirite pou chak vèsyon ki lage. Se poutèt sa, revizyon sibvèsyon yo lage tou regilyèman, tankou v4.3.1, v4.2.2, elatriye. Tablo 4.1 montre estati sipò diferan vèsyon ESP-IDF pou chips Espressif, ki endike si yo nan yon pre.view stage (ofri sipò pou preview vèsyon, ki ka manke sèten karakteristik oswa dokiman) oswa yo ofisyèlman sipòte.
Tablo 4.1. Sipòte estati diferan vèsyon ESP-IDF pou chips Espressif
Seri ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 sipòte
v4.2 sipòte sipòte
v4.3 sipòte sipòte sipòte
v4.4 sipòte sipòte sipòte sipòte
preview
v5.0 sipòte sipòte sipòte sipòte sipòte preview
32 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Iterasyon nan vèsyon pi gwo souvan enplike ajisteman nan estrikti nan kad ak mizajou nan sistèm nan konpilasyon. Pou egzanpample, chanjman ki pi gwo soti nan v3.* a v4.* te migrasyon gradyèl nan sistèm nan bati soti nan Make nan CMake. Nan lòt men an, iterasyon nan vèsyon minè anjeneral enplike nan adisyon nan nouvo karakteristik oswa sipò pou nouvo chips.
Li enpòtan pou distenge ak konprann relasyon ki genyen ant vèsyon ki estab ak branch GitHub. Vèsyon ki make kòm v*.* oswa v*.*.* reprezante vèsyon ki estab ki te pase tès entèn konplè pa Espressif. Yon fwa yo fikse, kòd la, chèn zouti, ak dokiman lage pou menm vèsyon an rete san okenn chanjman. Sepandan, branch GitHub (egzanp, lage/v4.3 branch) sibi kòd komèt souvan, souvan sou yon baz chak jou. Se poutèt sa, de fragman kòd anba menm branch lan ka diferan, sa ki fè devlopè yo bezwen mete ajou kòd yo san pèdi tan kòmsadwa.
4.1.2 ESP-IDF Git Workflow
Espressif swiv yon workflow Git espesifik pou ESP-IDF, ki endike jan sa a:
· Nouvo chanjman yo fèt sou branch mèt la, ki sèvi kòm branch devlopman prensipal la. Vèsyon ESP-IDF sou branch mèt la toujou pote yon -dev tag pou endike ke li se kounye a sou devlopman, tankou v4.3-dev. Chanjman sou branch mèt la pral premye reviewed ak teste nan depo entèn Espressif a, ak Lè sa a, pouse nan GitHub apre tès otomatik yo fini.
· Yon fwa ke yon nouvo vèsyon te konplete devlòpman karakteristik sou branch mèt la epi li satisfè kritè pou antre nan tès beta, li tranzisyon nan yon nouvo branch, tankou version/v4.3. Anplis de sa, nouvo branch sa a se tagged kòm yon vèsyon pre-lage, tankou v4.3-beta1. Devlopè yo ka refere a platfòm GitHub pou jwenn aksè nan lis konplè branch yo ak tags pou ESP-IDF. Li enpòtan sonje ke vèsyon an beta (vèsyon pre-lage) ka toujou gen yon kantite siyifikatif pwoblèm li te ye. Kòm vèsyon beta a sibi tès kontinyèl, yo ajoute korije ensèk nan tou de vèsyon sa a ak branch mèt la ansanm. Pandan se tan, branch mèt la ka deja kòmanse devlope nouvo karakteristik pou pwochen vèsyon an. Lè tès la prèske fini, yo ajoute yon etikèt pou lage kandida (rc) nan branch lan, ki endike li se yon kandida potansyèl pou lage ofisyèl la, tankou v4.3-rc1. Nan s sa atage, branch lan rete yon vèsyon pre-lage.
· Si yo pa dekouvri oswa rapòte pa gen okenn gwo ensèk, vèsyon anvan lage a finalman resevwa yon etikèt vèsyon pi gwo (egzanp, v5.0) oswa yon etikèt vèsyon minè (egzanp, v4.3) epi li vin tounen yon vèsyon ofisyèl lage, ki dokimante. nan paj nòt lage yo. Apre sa, nenpòt ensèk yo idantifye nan vèsyon sa a yo fikse sou branch lage a. Apre tès manyèl yo fini, yo bay branch lan yon etikèt vèsyon ki ranje ensèk (pa egzanp, v4.3.2), ki reflete tou sou paj nòt lage yo.
Chapit 4. Mete kanpe anviwònman devlopman 33
4.1.3 Chwazi yon vèsyon ki apwopriye
Depi ESP-IDF te kòmanse sipòte ofisyèlman ESP32-C3 apati vèsyon v4.3, epi v4.4 poko pibliye ofisyèlman nan moman ekri liv sa a, vèsyon yo itilize nan liv sa a se v4.3.2, ki se yon vèsyon revize. nan v4.3. Sepandan, li enpòtan sonje ke lè ou li liv sa a, v4.4 oswa vèsyon pi nouvo yo ka deja disponib. Lè w ap chwazi yon vèsyon, nou rekòmande sa ki annapre yo:
· Pou devlopè nivo antre, li rekòmande yo chwazi vèsyon ki estab v4.3 oswa vèsyon revize li yo, ki aliyen ak ansyen an.ampvèsyon yo itilize nan liv sa a.
· Pou rezon pwodiksyon an mas, li rekòmande pou itilize dènye vèsyon ki estab pou benefisye de sipò teknik ki pi ajou.
· Si ou gen entansyon fè eksperyans ak nouvo chips oswa eksplore karakteristik nouvo pwodwi, tanpri itilize branch mèt la. Dènye vèsyon an gen tout karakteristik dènye yo, men kenbe nan tèt ou ke ka gen pinèz li te ye oswa enkoni prezan.
· Si vèsyon ki estab ke yo te itilize a pa gen ladan nouvo karakteristik yo vle epi ou ta vle minimize risk ki asosye ak branch mèt la, konsidere itilize branch lage ki koresponn lan, tankou branch lan version/v4.4. Repozitwa GitHub Espressif a pral premye kreye lage/v4.4 branch epi answit lage vèsyon ki estab v4.4 ki baze sou yon snapshot istorik espesifik nan branch sa a, apre yo fin ranpli tout devlopman karakteristik ak tès.
4.1.4 Plis paseview nan Anyè ESP-IDF SDK
ESP-IDF SDK a gen de anyè prensipal: esp-idf ak .espressif. Ansyen an gen kòd sous depo ESP-IDF a files ak scripts konpilasyon, pandan ke lèt la sitou magazen chenn zouti konpilasyon ak lòt lojisyèl. Abitye ak de anyè sa yo pral ede devlopè yo fè pi byen sèvi ak resous ki disponib yo ak akselere pwosesis devlopman an. Yo dekri estrikti anyè ESP-IDF anba a:
(1) Anyè kòd depo ESP-IDF (/esp/esp-idf), jan yo montre nan Figi 4.2.
a. Konpozan anyè konpozan
Anyè debaz sa a entegre anpil eleman lojisyèl esansyèl nan ESP-IDF. Pa gen okenn kòd pwojè ka konpile san konte sou eleman ki nan anyè sa a. Li gen ladann sipò chofè pou plizyè chips Espressif. Soti nan bibliyotèk LL ak entèfas bibliyotèk HAL pou periferik yo rive nan chofè a nivo siperyè ak Virtuel. File Sistèm (VFS) sipò kouch, devlopè yo ka chwazi eleman ki apwopriye yo nan diferan nivo pou bezwen devlopman yo. ESP-IDF sipòte tou plizyè pil estanda pwotokòl rezo tankou TCP/IP, HTTP, MQTT, WebSocket, elatriye. Devlopè yo ka itilize entèfas abitye tankou Socket pou konstwi aplikasyon rezo. Konpozan yo bay konpreyansyon-
34 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Figi 4.2. Anyè kòd depo ESP-IDF
fonksyonalite sif epi yo ka fasilman entegre nan aplikasyon yo, sa ki pèmèt devlopè yo konsantre sèlman sou lojik biznis la. Gen kèk eleman komen yo enkli: · chofè: Eleman sa a gen pwogram chofè periferik pou divès kalite Espressif
seri chip, tankou GPIO, I2C, SPI, UART, LEDC (PWM), elatriye. Pwogram chofè periferik nan eleman sa a ofri entèfas abstrè ki endepandan. Chak periferik gen yon header komen file (tankou gpio.h), elimine nesesite pou fè fas ak diferan kesyon sipò espesifik chip. · esp_wifi: Wi-Fi, kòm yon periferik espesyal, trete kòm yon eleman separe. Li gen ladann plizyè API tankou inisyalizasyon divès mòd chofè Wi-Fi, konfigirasyon paramèt, ak pwosesis evènman. Sèten fonksyon eleman sa a yo bay sou fòm bibliyotèk lyen estatik. ESP-IDF bay tou dokiman konplè sou chofè yo pou fasilite yo itilize.
Chapit 4. Mete kanpe anviwònman devlopman 35
· freertos: Eleman sa a gen kòd konplè FreeRTOS la. Apa de bay sipò konplè pou sistèm operasyon sa a, Espressif te pwolonje tou sipò li nan chips doub-nwayo. Pou chips doub-nwayo tankou ESP32 ak ESP32-S3, itilizatè yo ka kreye travay sou nwayo espesifik.
b. Dokiman anyè dokiman
Anyè sa a genyen dokiman devlòpman ki gen rapò ak ESP-IDF, tankou Gid Kòmanse, Manyèl Referans API, Gid Devlopman, elatriye.
REMAK Apre yo fin konpile pa zouti otomatik, sa ki nan anyè sa a yo deplwaye nan https://docs.espressif.com/projects/esp-idf. Tanpri asire w ke w chanje sib dokiman an nan ESP32-C3 epi chwazi vèsyon espesifye ESP-IDF la.
c. Zouti zouti Script
Anyè sa a gen zouti konpilasyon ki pi souvan itilize tankou idf.py, ak zouti tèminal pou kontwole idf_monitor.py, elatriye. files nan sistèm konpilasyon an, sèvi kòm fondasyon pou mete ann aplikasyon règ konpilasyon ESP-IDF. Lè w ajoute varyab anviwònman yo, sa ki nan anyè zouti yo ajoute nan varyab anviwònman sistèm lan, sa ki pèmèt idf.py egzekite dirèkteman anba chemen pwojè a.
d. Egzample anyè pwogram ekzamples
Anyè sa a genyen yon gwo koleksyon ESP-IDF ansyenamppwogram ki demontre itilizasyon API konpozan yo. Ansyen anamples yo òganize an divès sous-reperyè ki baze sou kategori yo:
· kòmanse: Sou-anyè sa a gen ladann ansyen nivo antreamples tankou "bonjou mond" ak "blink" pou ede itilizatè yo konprann debaz yo.
· bluetooth: Ou ka jwenn Bluetooth ki gen rapò ansyenamples isit la, ki gen ladan Bluetooth LE Mesh, Bluetooth LE HID, BluFi, ak plis ankò.
· wifi: Sou-anyè sa a konsantre sou Wi-Fi ansyenamples, ki gen ladan pwogram debaz tankou Wi-Fi SoftAP, Wi-Fi Station, espnow, osi byen ke pwotokòl kominikasyon propriétaire ansyen.amples soti nan Espressif. Li gen ladan tou miltip kouch aplikasyon ansyenamples ki baze sou Wi-Fi, tankou Iperf, Sniffer, ak Smart Config.
· periferik: Sou-anyè sa a plis divize an plizyè sousdosye ki baze sou non periferik yo. Li sitou gen periferik chofè ansyenamples pou chips Espressif, ak chak ansyenample prezante plizyè sub-examples. Pou egzanp, sou-anyè gpio a gen ladan de ansyenamples: GPIO ak GPIO matris klavye. Li enpòtan sonje ke se pa tout ansyenamples nan anyè sa a aplikab pou ESP32-C3.
36 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Pou egzanpample, ansyen anamples nan usb/lame yo aplikab sèlman nan periferik ak USB Host pyès ki nan konpitè (tankou ESP32-S3), ak ESP32-C3 pa gen periferik sa a. Sistèm konpilasyon an anjeneral bay envit lè w ap fikse sib la. README a file nan chak ansyenample lis chips yo sipòte. · pwotokòl: Sou-anyè sa a gen examples pou plizyè pwotokòl kominikasyon, ki gen ladan MQTT, HTTP, HTTP sèvè, PPPoS, Modbus, mDNS, SNTP, ki kouvri yon pakèt pwotokòl kominikasyon ansyen.amples ki nesesè pou devlopman IoT. · pwovizyon: isit la, w ap jwenn pwovizyon examples pou diferan metòd, tankou Wi-Fi pwovizyon ak Bluetooth LE pwovizyon. · sistèm: Sou-anyè sa a gen ladann sistèm debogaj ansyenamples (egzanp, trase pile, trase ègzekutabl, siveyans travay), jesyon pouvwa eksamples (egzanp, divès mòd dòmi, ko-prosesè), ak egzanpamples ki gen rapò ak eleman sistèm komen tankou tèminal konsole, bouk evènman, ak revèy sistèm. · Depo: Nan sou-anyè sa a, ou pral dekouvri ansyenamples nan tout file sistèm ak mekanis depo ki sipòte pa ESP-IDF (tankou lekti ak ekri nan Flash, kat SD ak lòt medya depo), osi byen ke ansyenamples nan depo ki pa temèt (NVS), FatFS, SPIFFS ak lòt file operasyon sistèm yo. · sekirite: Sou-anyè sa a gen examples ki gen rapò ak chifreman flash. (2) Anyè chèn zouti konpilasyon ESP-IDF (/.espressif), jan yo montre nan Figi 4.3.
Figi 4.3. Anyè chèn zouti konpilasyon ESP-IDF
Chapit 4. Mete kanpe anviwònman devlopman 37
a. Anyè distribisyon lojisyèl dist
Yo distribye chèn zouti ESP-IDF ak lòt lojisyèl sou fòm pakè konprese. Pandan pwosesis enstalasyon an, zouti enstalasyon an premye telechaje pake konprese a nan anyè dist la, ak Lè sa a, ekstrè li nan anyè a espesifye. Yon fwa enstalasyon an fini, sa ki nan anyè sa a ka retire san danje.
b. Anyè anviwònman vityèl Python python env
Vèsyon diferan nan ESP-IDF konte sou vèsyon espesifik nan pakè Python. Enstale pakè sa yo dirèkteman sou menm lame a ka mennen nan konfli ant vèsyon pake yo. Pou adrese sa, ESP-IDF itilize anviwònman vityèl Python pou izole diferan vèsyon pake. Avèk mekanis sa a, devlopè yo ka enstale plizyè vèsyon ESP-IDF sou menm lame a epi fasil pou chanje ant yo lè yo enpòte diferan varyab anviwònman.
c. ESP-IDF zouti konpilasyon chèn anyè zouti
Anyè sa a sitou gen zouti kwa-konpilasyon ki nesesè pou konpile pwojè ESP-IDF, tankou zouti CMake, zouti konstriksyon Ninja, ak chèn zouti gcc ki jenere pwogram final la. Anplis de sa, anyè sa a gen bibliyotèk estanda lang C/C++ la ansanm ak tèt ki koresponn lan files. Si yon pwogram fè referans a yon header sistèm file tankou #include , chèn zouti konpilasyon an pral lokalize stdio.h la file nan anyè sa a.
4.2 Mete kanpe anviwònman devlopman ESP-IDF
Anviwònman devlopman ESP-IDF sipòte sistèm opere endikap tankou Windows, Linux, ak macOS. Seksyon sa a pral prezante kijan pou mete anviwònman devlopman sou chak sistèm. Li rekòmande pou devlope ESP32-C3 sou sistèm Linux, ki pral prezante an detay isit la. Anpil enstriksyon yo aplikab atravè platfòm akòz resanblans zouti devlopman yo. Se poutèt sa, li rekòmande pou li ak anpil atansyon kontni an nan seksyon sa a.
REMAK Ou ka fè referans ak dokiman sou entènèt ki disponib nan https://bookc3.espressif.com/esp32c3, ki bay kòmandman yo mansyone nan seksyon sa a.
4.2.1 Mete kanpe anviwònman devlopman ESP-IDF sou Linux
Devlopman GNU ak zouti debogaj ki nesesè pou anviwònman devlopman ESP-IDF yo natif natal nan sistèm Linux la. Anplis de sa, tèminal liy kòmand nan Linux pwisan ak zanmitay, fè li yon chwa ideyal pou devlopman ESP32-C3. Ou kapab
38 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
chwazi distribisyon Linux ou pi pito, men nou rekòmande pou itilize Ubuntu oswa lòt sistèm ki baze sou Debian. Seksyon sa a bay konsèy sou konfigirasyon anviwònman devlopman ESP-IDF sou Ubuntu 20.04.
1. Enstale pakè obligatwa yo
Louvri yon nouvo tèminal epi egzekite lòd sa a pou enstale tout pakè ki nesesè yo. Kòmandman an pral otomatikman sote pakè ki deja enstale.
$ 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
KONSÈY Ou bezwen sèvi ak kont administratè a ak modpas pou kòmandman ki anwo a. Pa default, pa gen okenn enfòmasyon ap parèt lè w ap antre modpas la. Senpleman peze "Antre" bouton an pou kontinye pwosedi a.
Git se yon zouti kle jesyon kòd nan ESP-IDF. Apre yo fin mete aksan sou anviwònman devlopman an, ou ka itilize kòmandman git log pou view tout chanjman kòd ki fèt depi kreyasyon ESP-IDF. Anplis de sa, Git yo itilize tou nan ESP-IDF pou konfime enfòmasyon vèsyon an, ki nesesè pou enstale chèn zouti ki kòrèk la ki koresponn ak vèsyon espesifik yo. Ansanm ak Git, lòt zouti sistèm enpòtan yo enkli Python. ESP-IDF enkòpore anpil script automatisation ekri nan Python. Zouti tankou CMake, Ninja-build, ak Ccache yo lajman itilize nan pwojè C/C++ epi sèvi kòm konpilasyon kòd default ak zouti bati nan ESP-IDF. libusb-1.0-0 ak dfu-util se chofè prensipal yo itilize pou kominikasyon seri USB ak mikrolojisyèl boule. Yon fwa pakè lojisyèl yo enstale, ou ka itilize montre nan apt kòmand pou jwenn deskripsyon detaye chak pake. Pou egzanpample, itilize apt show git pou enprime enfòmasyon deskripsyon zouti Git la.
K: Kisa pou w fè si vèsyon Python a pa sipòte? A: ESP-IDF v4.3 mande pou yon vèsyon Python ki pa pi ba pase v3.6. Pou vèsyon ki pi gran nan Ubuntu, tanpri telechaje ak enstale manyèlman yon vèsyon pi wo nan Python epi mete Python3 kòm anviwònman an default Python. Ou ka jwenn enstriksyon detaye lè w ap chèche mo kle update-alternatives python.
2. Telechaje kòd depo ESP-IDF
Louvri yon tèminal epi kreye yon katab ki rele esp nan anyè lakay ou lè l sèvi avèk lòd mkdir la. Ou ka chwazi yon non diferan pou katab la si ou prefere. Sèvi ak kòmandman cd la pou antre nan katab la.
Chapit 4. Mete kanpe anviwònman devlopman 39
$ mkdir -p /esp $ cd /esp
Sèvi ak lòd git clone pou telechaje kòd repozitwa ESP-IDF, jan yo montre anba a:
$ git klonaj -b v4.3.2 –recursive https://github.com/espressif/esp-idf.git
Nan lòd ki anwo a, paramèt -b v4.3.2 presize vèsyon an telechaje (nan ka sa a, vèsyon 4.3.2). Paramèt -recursive asire ke tout depo ESP-IDF yo telechaje yon fason repetitif. Ou ka jwenn enfòmasyon sou sub-depozitwa nan .gitmodules yo file.
3. Enstale chèn zouti devlopman ESP-IDF
Espressif bay yon script otomatik install.sh pou telechaje ak enstale chèn zouti a. Script sa a tcheke vèsyon aktyèl ESP-IDF ak anviwònman sistèm operasyon an, epi answit telechaje ak enstale vèsyon apwopriye pakè zouti Python ak chèn zouti konpilasyon. Chemen enstalasyon default pou chèn zouti a se /.espressif. Tout sa ou bezwen fè se navige nan anyè esp-idf epi kouri install.sh.
$ cd /esp/esp-idf $ ./install.sh
Si ou enstale chèn zouti a avèk siksè, tèminal la ap montre:
Tout fini!
Nan pwen sa a, ou te byen etabli anviwònman devlopman ESP-IDF.
4.2.2 Mete kanpe anviwònman devlopman ESP-IDF sou Windows
1. Telechaje enstalatè zouti ESP-IDF
KONSÈY Li rekòmande pou mete kanpe anviwònman devlopman ESP-IDF sou Windows 10 oswa pi wo a. Ou ka telechaje enstalasyon an nan https://dl.espressif.com/dl/esp-idf/. Enstalatè a se tou yon lojisyèl sous louvri, ak kòd sous li yo kapab viewed nan https://github.com/espressif/idf-installer.
· Enstalatè zouti ESP-IDF sou entènèt
Enstalatè sa a se relativman ti, anviwon 4 MB nan gwosè, ak lòt pakè ak kòd yo pral telechaje pandan pwosesis enstalasyon an. Avant latagEnstalatè sou entènèt la se non sèlman pakè lojisyèl ak kòd ka telechaje sou demann pandan pwosesis enstalasyon an, men tou pèmèt enstalasyon tout degaje ki disponib nan ESP-IDF ak dènye branch kòd GitHub (tankou branch mèt la) . Dezavantaj latage se ke li mande pou yon koneksyon rezo pandan pwosesis enstalasyon an, ki ka lakòz echèk enstalasyon akòz pwoblèm rezo.
40 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
· Enstalatè zouti ESP-IDF offline Enstalatè sa a pi gwo, apeprè 1 GB nan gwosè, epi li gen tout pakè lojisyèl ak kòd ki nesesè pou anviwònman an mete. Advan prensipal latage nan enstale a offline se ke li ka itilize sou òdinatè san aksè entènèt, epi jeneralman gen yon pi gwo pousantaj siksè enstalasyon. Li ta dwe remake ke enstalatè offline a ka sèlman enstale vèsyon ki estab nan ESP-IDF idantifye pa v*.* oswa v*.*.*.
2. Kouri enstalatè zouti ESP-IDF a Apre w fin telechaje yon vèsyon apwopriye nan enstalatè a (pran ESP-IDF Tools Offline 4.3.2 pou egzanp).ample isit la), double-klike sou ègzekutabl la file pou lanse koòdone enstalasyon ESP-IDF la. Sa ki anba la a montre kouman pou enstale vèsyon ki estab ESP-IDF v4.3.2 lè l sèvi avèk enstalatè offline la.
(1) Nan koòdone "Chwazi lang pou enstalasyon" yo montre nan Figi 4.4, chwazi lang pou w itilize a nan lis ki dewoule a.
Figi 4.4. Entèfas "Chwazi lang pou enstalasyon" (2) Apre w fin chwazi lang lan, klike sou "OK" pou parèt koòdone "Akò lisans" la.
(gade Figi 4.5). Apre ak anpil atansyon li akò lisans enstalasyon an, chwazi "Mwen aksepte akò a" epi klike sou "Next".
Figi 4.5. Entèfas "Akò lisans" Chapit 4. Mete kanpe anviwònman devlopman 41
(3) Review konfigirasyon sistèm lan nan koòdone "Tcheke sistèm pre-enstalasyon" (gade Figi 4.6). Tcheke vèsyon an Windows ak enfòmasyon lojisyèl antivirus enstale a. Klike sou "Next" si tout atik konfigirasyon yo nòmal. Sinon, ou ka klike sou "Full log" pou solisyon ki baze sou atik kle yo.
Figi 4.6. "Tcheke sistèm anvan enstalasyon" KONSÈY koòdone
Ou ka soumèt mòso bwa nan https://github.com/espressif/idf-installer/issues pou èd. (4) Chwazi anyè enstalasyon ESP-IDF. Isit la, chwazi D:/.espressif, jan yo montre nan
Figi 4.7, epi klike sou "Next". Tanpri sonje ke .espressif isit la se yon anyè kache. Apre enstalasyon an fini, ou kapab view sa ki espesifik nan anyè sa a lè w louvri file manadjè ak montre atik kache.
Figi 4.7. Chwazi anyè enstalasyon ESP-IDF 42 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT
(5) Tcheke eleman ki bezwen enstale, jan yo montre nan Figi 4.8. Li rekòmande yo sèvi ak opsyon default la, se sa ki, ranpli enstalasyon, ak Lè sa a, klike sou "Next".
Figi 4.8. Chwazi konpozan pou enstale yo (6) Konfime konpozan yo dwe enstale epi klike sou "Enstale" pou kòmanse enstalasyon otomatik la.
pwosesis enstalasyon, jan yo montre nan Figi 4.9. Pwosesis enstalasyon an ka dire plizyè dizèn minit epi yo montre ba pwogrè pwosesis enstalasyon an nan Figi 4.10. Tanpri tann pasyans.
Figi 4.9. Preparasyon pou enstalasyon (7) Apre enstalasyon an fini, li rekòmande pou tcheke "Enskri ESP-IDF la.
Zouti ègzèkutabl kòm esklizyon Windows Defender...” pou anpeche lojisyèl antivirus efase files. Ajoute atik esklizyon kapab tou sote analiz souvan pa antivirus
Chapit 4. Mete kanpe anviwònman devlopman 43
Figi 4.10. Enstalasyon lojisyèl bar pwogrè, anpil amelyore efikasite konpilasyon kòd nan sistèm Windows la. Klike "Fini" pou konplete enstalasyon anviwònman devlopman, jan yo montre nan Figi 4.11. Ou ka chwazi pou tcheke "Kouri anviwònman ESP-IDF PowerShell" oswa "Kouri èd memwa kòmand ESP-IDF". Kouri fenèt konpilasyon an dirèkteman apre enstalasyon pou asire anviwònman devlopman fonksyone nòmalman.
Figi 4.11. Enstalasyon konplete (8) Louvri anviwònman devlopman enstale a nan lis pwogram lan (swa ESP-IDF 4.3
CMD oswa ESP-IDF 4.3 PowerShell tèminal, jan yo montre nan Figi 4.12), ak varyab anviwònman ESP-IDF la pral otomatikman ajoute lè w ap kouri nan tèminal la. Apre sa, ou ka itilize idf.py lòd pou operasyon yo. ESP-IDF 4.3 CMD louvri yo montre nan Figi 4.13. 44 ESP32-C3 Avanti san fil: Yon Gid konplè sou IoT
Figi 4.12. Anviwònman devlopman enstale
Figi 4.13. ESP-IDF 4.3 CMD
4.2.3 Mete kanpe anviwònman devlopman ESP-IDF sou Mac
Pwosesis pou enstale anviwònman devlopman ESP-IDF sou yon sistèm Mac se menm jan ak yon sistèm Linux. Kòmandman yo pou telechaje kòd depo a ak enstale chèn zouti yo se egzakteman menm bagay la. Se sèlman kòmandman yo pou enstale pakè depandans yo yon ti kras diferan. 1. Enstale pakè depandans Louvri yon tèminal, epi enstale pip, zouti jesyon pake Python, lè w ap kouri kòmandman sa a:
% sudo fasil enstale pip
Enstale Homebrew, yon zouti jesyon pake pou macOS, pa kouri lòd sa a:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
Enstale pakè depandans ki nesesè yo pa kouri lòd sa a:
% brew python3 enstale cmake ninja ccache dfu-util
2. Telechaje kòd depo ESP-IDF Swiv enstriksyon yo bay nan seksyon 4.2.1 pou telechaje kòd depo ESP-IDF la. Etap yo se menm jan ak pou telechaje sou yon sistèm Linux.
Chapit 4. Mete kanpe anviwònman devlopman 45
3. Enstale chèn zouti devlopman ESP-IDF
Swiv enstriksyon yo bay nan seksyon 4.2.1 pou enstale chèn zouti devlopman ESP-IDF la. Etap yo se menm jan ak enstalasyon sou yon sistèm Linux.
4.2.4 Enstale Kòd VS
Pa default, ESP-IDF SDK a pa genyen yon zouti koreksyon kòd (menm si dènye enstalasyon ESP-IDF pou Windows ofri opsyon pou enstale ESP-IDF Eclipse). Ou ka itilize nenpòt zouti koreksyon tèks ou chwazi pou modifye kòd la epi konpile li lè l sèvi avèk kòmandman tèminal yo.
Youn nan zouti popilè koreksyon kòd se VS Code (Visual Studio Code), ki se yon editè kòd gratis ak karakteristik rich ak yon koòdone itilizatè-zanmitay. Li ofri divès kalite plugins ki bay fonksyonalite tankou navigasyon kòd, maketing sentaks, kontwòl vèsyon Git, ak entegrasyon tèminal. Anplis de sa, Espressif te devlope yon plugin dedye ki rele Espressif IDF pou Kòd VS, ki senplifye konfigirasyon pwojè ak debogaj.
Ou ka sèvi ak lòd kòd la nan tèminal la byen vit louvri katab aktyèl la nan VS Code. Altènativman, ou ka itilize chemen kout Ctrl + pou louvri konsole tèminal default sistèm nan nan VS Code.
KONSÈY Li rekòmande pou itilize VS Code pou devlopman kòd ESP32-C3. Telechaje epi enstale dènye vèsyon VS Code nan https://code.visualstudio.com/.
4.2.5 Entwodiksyon nan Anviwònman Devlopman Twazyèm Pati
Anplis anviwònman devlopman ofisyèl ESP-IDF, ki itilize prensipalman langaj C a, ESP32-C3 sipòte tou lòt langaj pwogramasyon prensipal yo ak yon pakèt anviwonman devlopman twazyèm pati. Gen kèk opsyon remakab yo enkli:
Arduino: yon platfòm louvri-sous pou tou de pyès ki nan konpitè ak lojisyèl, sipòte divès kalite mikrokontroleur, ki gen ladan ESP32-C3.
Li sèvi ak lang C++ epi li ofri yon API senplifye ak estanda, souvan refere yo kòm lang Arduino. Arduino se lajman ki itilize nan devlopman pwototip ak kontèks edikasyon. Li bay yon pake lojisyèl ekstansibl ak yon IDE ki pèmèt konpilasyon fasil ak flache.
MicroPython: yon entèprèt lang Python 3 ki fèt pou kouri sou platfòm mikrokontwolè entegre.
Avèk yon langaj script senp, li ka dirèkteman jwenn aksè nan resous periferik ESP32-C3 (tankou UART, SPI, ak I2C) ak fonksyon kominikasyon (tankou Wi-Fi ak Bluetooth LE).
46 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
Sa a senplifye entèraksyon pyès ki nan konpitè. MicroPython, konbine avèk bibliyotèk vaste operasyon matematik Python a, pèmèt aplikasyon algoritm konplèks sou ESP32-C3, fasilite devlopman aplikasyon ki gen rapò ak AI. Kòm yon langaj ekriti, pa gen okenn nesesite pou konpilasyon repete; modifikasyon yo ka fè ak scripts ka egzekite dirèkteman.
NodeMCU: yon entèprèt lang LUA devlope pou chips seri ESP.
Li sipòte prèske tout fonksyon periferik chips ESP epi li pi lejè pase MicroPython. Menm jan ak MicroPython, NodeMCU sèvi ak yon langaj script, elimine bezwen pou konpilasyon repete.
Anplis de sa, ESP32-C3 sipòte tou sistèm operasyon NuttX ak Zephyr. NuttX se yon sistèm operasyon an tan reyèl ki bay POSIX-konpatib interfaces, amelyore portabilite aplikasyon an. Zephyr se yon ti sistèm operasyon an tan reyèl ki fèt espesyalman pou aplikasyon IoT. Li gen ladann anpil bibliyotèk lojisyèl ki nesesè nan devlopman IoT, piti piti evolye nan yon ekosistèm lojisyèl konplè.
Liv sa a pa bay enstriksyon detaye enstalasyon pou anviwònman devlopman yo mansyone pi wo a. Ou ka enstale yon anviwònman devlopman ki baze sou kondisyon ou yo lè w swiv dokiman ak enstriksyon respektif yo.
4.3 Sistèm Konpilasyon ESP-IDF
4.3.1 Konsèp debaz nan sistèm konpilasyon
Yon pwojè ESP-IDF se yon koleksyon yon pwogram prensipal ki gen yon fonksyon antre ak plizyè eleman fonksyonèl endepandan. Pou egzanpample, yon pwojè ki kontwole switch dirije sitou konsiste de yon pwogram antre prensipal ak yon eleman chofè ki kontwole GPIO. Si ou vle reyalize kontwòl remote ki ap dirije a, ou bezwen tou ajoute Wi-Fi, TCP / IP pwotokòl pile, elatriye.
Sistèm konpilasyon an ka konpile, konekte ak jenere ègzèkutabl files (.bin) pou kòd la atravè yon seri règ bilding. Sistèm konpilasyon ESP-IDF v4.0 ak vèsyon pi wo a baze sou CMake pa default, epi yo ka itilize script konpilasyon CMakeLists.txt pou kontwole konpòtman konpilasyon kòd la. Anplis de sipòte sentaks debaz CMake, sistèm konpilasyon ESP-IDF la defini tou yon seri règ konpilasyon default ak fonksyon CMake, epi ou ka ekri script konpilasyon an ak deklarasyon senp.
4.3.2 Pwojè File Estrikti
Yon pwojè se yon katab ki gen yon pwogram antre prensipal, eleman itilizatè-defini, ak files oblije bati aplikasyon pou ègzèkutabl, tankou scripts konpilasyon, konfigirasyon
Chapit 4. Mete kanpe anviwònman devlopman 47
files, tab patisyon, elatriye Pwojè yo ka kopye ak pase sou, ak menm ègzèkutabl la file ka konpile ak pwodwi nan machin ki gen menm vèsyon an nan anviwònman devlopman ESP-IDF. Yon pwojè ESP-IDF tipik file estrikti yo montre nan Figi 4.14.
Figi 4.14. Tipik pwojè ESP-IDF file estrikti Depi ESP-IDF sipòte plizyè chip IoT soti nan Espressif, ki gen ladan ESP32, ESP32-S seri, ESP32-C seri, ESP32-H seri, elatriye, yon sib bezwen yo dwe detèmine anvan konpile kòd la. Sib la se tou de aparèy pyès ki nan konpitè ki kouri pwogram aplikasyon an ak sib bati sistèm konpilasyon an. Tou depan de bezwen ou yo, ou ka presize youn oswa plis sib pou pwojè ou a. Pou egzanpample, atravè kòmand idf.py set-target esp32c3, ou ka mete sib la konpilasyon nan ESP32-C3, pandan ki paramèt yo default ak konpilasyon zouti chèn chemen pou ESP32C3 yo pral chaje. Apre konpilasyon, yon pwogram ègzekutabl ka pwodwi pou ESP32C3. Ou kapab tou kouri lòd set-target la ankò pou mete yon sib diferan, ak sistèm konpilasyon an pral otomatikman netwaye ak rkonfigure. Eleman
Eleman nan ESP-IDF se inite kòd modilè ak endepandan jere nan sistèm konpilasyon an. Yo òganize kòm dosye, ak non katab ki reprezante non eleman an pa default. Chak eleman gen pwòp script konpilasyon li ki 48 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
espesifye paramèt konpilasyon li yo ak depandans. Pandan pwosesis konpilasyon an, eleman yo konpile nan bibliyotèk estatik separe (.a files) epi finalman konbine avèk lòt konpozan pou fòme pwogram aplikasyon an.
ESP-IDF bay fonksyon esansyèl, tankou sistèm operasyon an, chofè periferik, ak pile pwotokòl rezo a, sou fòm eleman. Konpozan sa yo estoke nan anyè konpozan ki sitiye nan anyè rasin ESP-IDF. Devlopè yo pa bezwen kopye eleman sa yo nan anyè konpozan myProject. Olye de sa, yo sèlman bezwen presize relasyon yo depandans nan eleman sa yo nan CMakeLists.txt pwojè a. file itilize direktiv REQUIRES oswa PRIV_REQUIRES. Sistèm konpilasyon an pral otomatikman lokalize ak konpile eleman ki nesesè yo.
Se poutèt sa, anyè eleman ki anba myProject pa nesesè. Li se sèlman itilize yo enkli kèk eleman koutim nan pwojè a, ki ka bibliyotèk twazyèm pati oswa kòd itilizatè-defini. Anplis de sa, eleman yo ka soti nan nenpòt ki anyè ki pa ESP-IDF oswa pwojè aktyèl la, tankou nan yon pwojè sous louvri sove nan yon lòt anyè. Nan ka sa a, ou sèlman bezwen ajoute chemen eleman an lè w mete varyab EXTRA_COMPONENT_DIRS nan CMakeLists.txt anba anyè rasin lan. Anyè sa a pral pase sou nenpòt eleman ESP-IDF ki gen menm non an, pou asire yo itilize eleman ki kòrèk la.
Antre pwogram prensipal Anyè prensipal la nan pwojè a swiv menm bagay la file estrikti kòm lòt konpozan (egzanp, component1). Sepandan, li kenbe yon siyifikasyon espesyal paske li se yon eleman obligatwa ki dwe egziste nan chak pwojè. Anyè prensipal la gen kòd sous pwojè a ak pwen antre pwogram itilizatè a, anjeneral yo rele app_main. Pa default, ekzekisyon pwogram itilizatè a kòmanse nan pwen antre sa a. Eleman prensipal la diferan tou paske li otomatikman depann de tout eleman ki nan chemen rechèch la. Se poutèt sa, pa gen okenn nesesite pou endike depandans klèman lè l sèvi avèk direktiv REQUIRES oswa PRIV_REQUIRES nan CMakeLists.txt. file.
Konfigirasyon file Anyè rasin pwojè a gen yon konfigirasyon file yo rele sdkconfig, ki gen paramèt konfigirasyon pou tout eleman ki nan pwojè a. sdkconfig la file se otomatikman pwodwi pa sistèm nan konpilasyon epi li ka modifye ak rejenere pa lòd idf.py menuconfig la. Opsyon menuconfig yo sitou soti nan Kconfig.projbuild nan pwojè a ak Kconfig nan eleman yo. Devlopè eleman jeneralman ajoute atik konfigirasyon nan Kconfig pou fè eleman an fleksib ak configurable.
Anyè Bati Pa default, anyè bati nan pwojè a magazen entèmedyè files ak fi-
Chapit 4. Mete kanpe anviwònman devlopman 49
nal pwogram ègzekutabl ki te pwodwi pa idf.py build lòd la. An jeneral, li pa nesesè dirèkteman aksè nan sa ki nan anyè a bati. ESP-IDF bay kòmandman predefini pou kominike avèk anyè a, tankou lè l sèvi avèk idf.py kòmand flash la otomatikman lokalize binè konpile a. file epi flash li nan adrès flash espesifye a, oswa lè l sèvi avèk idf.py fullclean lòd pou netwaye tout anyè bati a.
Tablo patisyon (partitions.csv) Chak pwojè mande pou yon tab patisyon divize espas flash la epi presize gwosè ak adrès kòmanse pwogram ègzèkutabl la ak espas done itilizatè a. Kòmand idf.py flash oswa pwogram ajou OTA pral flash firmwèr la nan adrès ki koresponn lan dapre tablo sa a. ESP-IDF bay plizyè tab patisyon default nan eleman/partition_table, tankou partitions_singleapp.csv ak partitions_two_ ota.csv, ki ka chwazi nan menuconfig.
Si tab la patisyon default nan sistèm nan pa ka satisfè kondisyon yo nan pwojè a, yon partitions.csv koutim ka ajoute nan anyè pwojè a epi yo dwe chwazi nan menuconfig.
4.3.3 Règ Default Konstwi Sistèm Konpilasyon an
Règ pou depase eleman ki gen menm non Pandan pwosesis rechèch eleman an, sistèm konpilasyon an swiv yon lòd espesifik. Li premye chèche konpozan entèn nan ESP-IDF, Lè sa a, gade pou eleman nan pwojè itilizatè a, epi finalman rechèch pou eleman nan EXTRA_COMPONENT_DIRS. Nan ka kote plizyè repèrtwar genyen konpozan ki gen menm non an, eleman yo te jwenn nan dènye anyè a pral pase sou nenpòt konpozan anvan ki gen menm non an. Règ sa a pèmèt pou personnalisation nan eleman ESP-IDF nan pwojè itilizatè a, pandan y ap kenbe kòd orijinal la ESP-IDF entak.
Règ pou enkli eleman komen pa default Jan mansyone nan seksyon 4.3.2, konpozan bezwen klèman presize depandans yo sou lòt konpozan nan CMakeLists.txt la. Sepandan, eleman komen tankou freertos yo otomatikman enkli nan sistèm nan bati pa default, menm si relasyon depandans yo pa klèman defini nan script konpilasyon an. Konpozan komen ESP-IDF yo enkli freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, ak cxx. Sèvi ak eleman komen sa yo evite travay repetitif lè w ap ekri CMakeLists.txt epi fè li pi kout.
Règ pou depase atik konfigirasyon Devlopè yo ka ajoute paramèt konfigirasyon default lè yo ajoute yon konfigirasyon default file yo te rele sdkconfig.defaults nan pwojè a. Pou egzanpample, ajoute CONFIG_LOG_
50 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
DEFAULT_LEVEL_NONE = ou ka konfigirasyon koòdone UART pou pa enprime done log pa default. Anplis de sa, si paramèt espesifik bezwen yo dwe mete pou yon sib patikilye, yon konfigirasyon file yo ka ajoute yo rele sdkconfig.defaults.TARGET_NAME, kote TARGET_NAME ka esp32s2, esp32c3, ak sou sa. Konfigirasyon sa yo files yo enpòte nan sdkconfig la pandan konpilasyon, ak konfigirasyon jeneral default la file sdkconfig.defaults yo te enpòte an premye, ki te swiv pa konfigirasyon an sib-espesifik file, tankou sdkconfig.defaults.esp32c3. Nan ka kote gen atik konfigirasyon ak menm non an, konfigirasyon an dènye file pral depase ansyen an.
4.3.4 Entwodiksyon nan Script Konpilasyon an
Lè w ap devlope yon pwojè lè l sèvi avèk ESP-IDF, devlopè yo pa sèlman bezwen ekri kòd sous men tou bezwen ekri CMakeLists.txt pou pwojè a ak konpozan yo. CMakeLists.txt se yon tèks file, konnen tou kòm yon script konpilasyon, ki defini yon seri objè konpilasyon, atik konpilasyon konfigirasyon, ak kòmandman pou gide pwosesis konpilasyon kòd sous la. Sistèm konpilasyon ESP-IDF v4.3.2 baze sou CMake. Anplis sipòte fonksyon natif natal CMake ak kòmandman, li defini tou yon seri fonksyon koutim, ki fè li pi fasil pou ekri script konpilasyon.
Scripts konpilasyon yo nan ESP-IDF sitou gen ladan script konpilasyon pwojè a ak scripts konpilasyon eleman yo. CMakeLists.txt nan anyè rasin pwojè a rele script konpilasyon pwojè a, ki gide pwosesis konpilasyon tout pwojè a. Yon script konpilasyon pwojè debaz anjeneral gen ladan twa liy sa yo:
1. cmake_minimum_required(VERSION 3.5) 2. enkli($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. pwojè(myProject)
Pami yo, cmake_minimum_required (VERSION 3.5) dwe mete sou premye liy lan, ki itilize pou endike nimewo minimòm vèsyon CMake pwojè a mande. Vèsyon ki pi nouvo nan CMake yo jeneralman bak konpatib ak vèsyon ki pi ansyen, kidonk ajiste nimewo vèsyon an kòmsadwa lè w ap itilize nouvo kòmandman CMake pou asire konpatibilite.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) enpòte atik konfigirasyon pre-defini ak kòmandman nan sistèm konpilasyon ESP-IDF, ki gen ladan règ yo bati default nan sistèm konpilasyon ki dekri nan Seksyon 4.3.3. project(myProject) kreye pwojè a tèt li epi li presize non li. Non sa a pral itilize kòm binè final pwodiksyon an file non, sa vle di, myProject.elf ak myProject.bin.
Yon pwojè ka gen plizyè konpozan, ki gen ladan eleman prensipal la. Anyè nivo siperyè chak eleman gen yon CMakeLists.txt file, ki rele script konpilasyon eleman. Scripts konpilasyon eleman yo sitou itilize pou presize depandans eleman, paramèt konfigirasyon, kòd sous files, ak enkli header files pou
Chapit 4. Mete kanpe anviwònman devlopman 51
konpilasyon. Avèk fonksyon koutim ESP-IDF idf_component_register, kòd minimòm obligatwa pou yon script konpilasyon eleman se jan sa a:
1. idf_component_register(SRCS "src1.c"
2.
INCLUDE_DIRS "enkli"
3.
MANDE konpozan 1)
Paramèt SRCS a bay yon lis sous files nan eleman an, separe pa espas si gen plizyè files. Paramèt INCLUDE_DIRS la bay yon lis header piblik file anyè pou eleman an, ki pral ajoute nan chemen rechèch enkli pou lòt eleman ki depann de eleman aktyèl la. Paramèt REQUIRES la idantifye depandans eleman piblik yo pou eleman aktyèl la. Li nesesè pou konpozan yo deklare klèman sou ki eleman yo depann, tankou component2 depann sou component1. Sepandan, pou eleman prensipal la, ki depann sou tout eleman pa default, yo ka omisyon paramèt REQUIRES la.
Anplis de sa, kòmandman CMake natif natal yo ka itilize tou nan script konpilasyon an. Pou egzanpample, sèvi ak seri a lòd yo mete varyab, tankou set(VARIAB "VALÈ").
4.3.5 Entwodiksyon kòmandman komen yo
ESP-IDF itilize CMake (zouti konfigirasyon pwojè), Ninja (zouti konstriksyon pwojè) ak esptool (zouti flash) nan pwosesis konpilasyon kòd. Chak zouti jwe yon wòl diferan nan pwosesis konpilasyon, bilding ak flash, epi tou li sipòte kòmandman opere diferan. Pou fasilite operasyon itilizatè a, ESP-IDF ajoute yon idf.py front-end inifye ki pèmèt kòmandman ki anwo yo rele byen vit.
Anvan w itilize idf.py, asire w ke:
· Yo ajoute varyab anviwònman IDF_PATH ESP-IDF nan tèminal aktyèl la. · Anyè ekzekisyon kòmand se anyè rasin pwojè a, ki gen ladann
script konpilasyon pwojè CMakeLists.txt.
Kòmandman komen idf.py yo jan sa a:
· idf.py –help: montre yon lis kòmandman ak enstriksyon itilizasyon yo. · idf.py mete-sib : mete konpilasyon an taidf.py fullcleanrget, tankou
kòm ranplase ak esp32c3. · idf.py menuconfig: lanse menuconfig, yon konfigirasyon grafik tèminal
zouti, ki ka chwazi oswa modifye opsyon konfigirasyon, ak rezilta konfigirasyon yo sove nan sdkconfig la file. · idf.py bati: kòmanse konpilasyon kòd. Entèmedyè a files ak pwogram final la ègzekutabl ki te pwodwi pa konpilasyon an pral sove nan anyè a bati nan pwojè a pa default. Pwosesis la konpilasyon se incrémentielle, ki vle di ke si sèlman yon sèl sous file se modifye, se sèlman modifye a file pral konpile pwochen fwa.
52 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
· idf.py pwòp: netwaye entèmedyè a files ki te pwodwi pa konpilasyon pwojè a. Tout pwojè a pral fòse yo konpile nan pwochen konpilasyon an. Remake byen ke konfigirasyon CMake la ak modifikasyon konfigirasyon ki fèt pa menuconfig pa pral efase pandan netwayaj.
· idf.py fullclean: efase tout anyè a bati, ki gen ladan tout pwodiksyon konfigirasyon CMake files. Lè w bati pwojè a ankò, CMake pral konfigirasyon pwojè a nan grafouyen. Tanpri sonje ke kòmandman sa a pral rekursif efase tout files nan anyè bati a, kidonk sèvi ak li ak prekosyon, ak konfigirasyon pwojè a file pa pral efase.
· idf.py flash: flache pwogram nan binè ègzekutabl file ki te pwodwi pa bati nan sib la ESP32-C3. Opsyon yo -p ak -b yo itilize yo mete non aparèy la nan pò a seri ak pousantaj la baud pou flache, respektivman. Si de opsyon sa yo pa espesifye, yo pral otomatikman detekte pò seri a epi yo pral itilize pousantaj baud default la.
· idf.py ki monitè kè bebe: montre pwodiksyon pò seri sib ESP32-C3 la. Opsyon -p ka itilize pou presize non aparèy pò seri lame-bò a. Pandan enprime pò seri, peze konbinezon kle Ctrl +] pou sòti pou kontwole a.
Kòmandman ki anwo yo ka konbine tou jan sa nesesè. Pou egzanpample, kòmandman idf.py bati flash ki monitè kè bebe a pral fè kòd konpilasyon, flash, epi louvri pò seri pou kontwole nan sekans.
Ou ka vizite https://bookc3.espressif.com/build-system pou konnen plis sou sistèm konpilasyon ESP-IDF.
4.4 Pratike: Konpile EgzampPwogram "Blink"
4.4.1 Egzample analiz
Seksyon sa a pral pran pwogram Blink la kòm yon ansyenample pou analize la file estrikti ak règ kodaj nan yon pwojè reyèl an detay. Pwogram Blink la aplike efè clignotant ki ap dirije, epi pwojè a sitiye nan ansyen anyè aamples/get-started/blink, ki gen yon sous file, konfigirasyon files, ak plizyè scripts konpilasyon.
Pwojè limyè entelijan yo prezante nan liv sa a baze sou ansyen sa aamppwogram nan. Fonksyon yo pral piti piti ajoute nan chapit pita yo finalman konplete li.
Kòd Sous Pou demontre tout pwosesis devlopman an, yo te kopye pwogram Blink nan esp32c3-iot-projects/device firmware/1 blink.
Estrikti anyè pwojè blink la files yo montre nan Figi 4.15.
Pwojè blink la gen sèlman yon sèl anyè prensipal, ki se yon eleman espesyal ki
Chapit 4. Mete kanpe anviwònman devlopman 53
Figi 4.15. File estrikti anyè pwojè blink la
dwe enkli jan sa dekri nan seksyon 4.3.2. Anyè prensipal la se sitou itilize nan magazen aplikasyon an nan fonksyon an app_main(), ki se pwen an antre nan pwogram itilizatè a. Pwojè a bat je pa gen ladan anyè a eleman, paske ansyen sa a.ample sèlman bezwen sèvi ak konpozan ki vini ak ESP-IDF epi li pa mande pou eleman adisyonèl. CMakeLists.txt ki enkli nan pwojè blink la itilize pou gide pwosesis konpilasyon an, pandan y ap itilize Kconfig.projbuild pou ajoute atik konfigirasyon pou ansyen sa a.amppwogram nan menuconfig. Lòt ki pa nesesè files pa pral afekte konpilasyon kòd la, kidonk yo pa pral diskite isit la. Yon entwodiksyon detaye sou pwojè blink la files se jan sa a.
1. /*blink.c gen ladan header sa a files*/
2. #include
//Tèt bibliyotèk estanda C file
3. #include "freertos/freeRTOS.h" //FreeRTOS prensipal header file
4. #include "freertos/task.h"
//FreeRTOS Tèt Objektif Travay la file
5. #include "sdkconfig.h"
//Tèt konfigirasyon file ki te pwodwi pa kconfig
6. #include "driver/gpio.h"
//Tèt chofè GPIO file
Sous la file blink.c gen yon seri de header files ki koresponn ak deklarasyon fonksyon-
syon. ESP-IDF jeneralman swiv lòd pou enkli tèt estanda bibliyotèk la files, gratisR-
TOS header files, tèt chofè files, lòt header eleman files, ak tèt pwojè files.
Lòd nan ki header files yo enkli ka afekte rezilta konpilasyon final la, kidonk eseye
swiv règ yo default. Li ta dwe remake ke sdkconfig.h se otomatikman pwodwi
pa kconfig epi yo ka configuré sèlman atravè lòd idf.py menuconfig la.
Modifikasyon dirèk nan header sa a file pral ranplase.
1. /*Ou ka chwazi GPIO ki koresponn ak LED nan idf.py menuconfig, ak rezilta modifikasyon menuconfig se ke valè CONFIG_BLINK
_GPIO pral chanje. Ou kapab tou dirèkteman modifye definisyon makro a
isit la, epi chanje CONFIG_BLINK_GPIO an yon valè fiks.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. anile app_main(anile)
4. {
5.
/*Konfigure IO kòm fonksyon default GPIO, pèmèt mòd rale-up, ak
6.
enfim mòd antre ak pwodiksyon */
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 Wireless Adventure: Yon Gid konplè sou IoT
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Mete GPIO nan mòd pwodiksyon*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); pandan (1) {
/*Enprime log*/ printf("Etenyen LEDn la"); /*Etenn dirije a (sòti ki ba nivo)*/ gpio_set_level(BLINK_GPIO, 0); /*Reta (1000 ms)*/ vTaskDelay (1000 / portTICK_PERIOD_MS); printf ("Limen LEDn la"); /*Limen ki ap dirije a (pwodiksyon wo nivo)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Fonksyon app_main() nan ansyen Blink laample pwogram sèvi kòm pwen antre pou pwogram itilizatè yo. Li se yon fonksyon senp ki pa gen okenn paramèt ak pa gen okenn valè retounen. Yo rele fonksyon sa a apre sistèm lan fini inisyalizasyon, ki gen ladan travay tankou inisyalize pò seri boutèy la, konfigirasyon sèl/double nwayo, ak konfigirasyon watchdog la.
Fonksyon app_main() kouri nan yon kontèks travay ki rele main. Gwosè pil ak priyorite travay sa a ka ajiste nan menuconfig Componentconfig Common ESP ki gen rapò.
Pou travay senp tankou clignotant yon LED, tout kòd ki nesesè yo ka aplike dirèkteman nan fonksyon app_main(). Sa a anjeneral enplike nan inisyalize GPIO ki koresponn ak dirije a ak lè l sèvi avèk yon bouk pandan y ap (1) pou aktive dirije ak sou. Altènativman, ou ka sèvi ak FreeRTOS API pou kreye yon nouvo travay ki okipe ki ap dirije k'ap klere. Yon fwa yo kreye nouvo travay la avèk siksè, ou ka sòti fonksyon app_main().
Kontni main/CMakeLists.txt file, ki gide pwosesis konpilasyon pou eleman prensipal la, se jan sa a:
1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )
Pami yo, main/CMakeLists.txt sèlman rele yon sèl fonksyon sistèm konpilasyon, ki se idf_component_register. Menm jan ak CMakeLists.txt pou pifò lòt konpozan, blink.c ajoute nan SRCS, ak sous la. files ajoute nan SRCS yo pral konpile. An menm tan an, ".", ki reprezante chemen kote CMakeLists.txt ye, ta dwe ajoute nan INCLUDE_DIRS kòm repèrtwar rechèch pou header. files. Kontni CMakeLists.txt se jan sa a:
1. # Espesifye v3.5 kòm pi ansyen vèsyon CMake ki sipòte pa pwojè aktyèl la 2. #Vèsyon ki pi ba pase v3.5 dwe amelyore anvan konpilasyon kontinye 3. cmake_minimum_required(VERSION 3.5) 4. #Enkli konfigirasyon CMake defo ESP la. -IDF konpilasyon sistèm
Chapit 4. Mete kanpe anviwònman devlopman 55
5. enkli($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Kreye yon pwojè ki rele “blink” 7. pwojè(myProject)
Pami yo, CMakeLists.txt nan anyè rasin lan gen ladan sitou $ENV{IDF_ PATH}/tools/cmake/project.cmake, ki se konfigirasyon prensipal CMake. file ESP-IDF ofri. Li itilize pou kon
Dokiman / Resous
![]() |
Espressif Systems ESP32-C3 Wireless avanti [pdfGid Itilizatè ESP32-C3 avanti san fil, ESP32-C3, avanti san fil, avanti |