ESP32-C3 Tukio Isiyo na Waya
ESP32-C3 Tukio Isiyo na Waya
Mwongozo wa kina wa IoT
Mifumo ya Espressif Juni 12, 2023
Vipimo
- Bidhaa: ESP32-C3 Wireless Adventure
- Mtengenezaji: Mifumo ya Espressif
- Tarehe: Juni 12, 2023
Maagizo ya Matumizi ya Bidhaa
Maandalizi
Kabla ya kutumia ESP32-C3 Wireless Adventure, hakikisha uko
unajua dhana na usanifu wa IoT. Hii itasaidia
unaelewa jinsi kifaa kinavyolingana na mfumo ikolojia mkubwa wa IoT
na uwezekano wa matumizi yake katika nyumba mahiri.
Utangulizi na Mazoezi ya Miradi ya IoT
Katika sehemu hii, utajifunza kuhusu miradi ya kawaida ya IoT,
ikijumuisha moduli za kimsingi za vifaa vya kawaida vya IoT, moduli za kimsingi
ya maombi ya mteja, na majukwaa ya kawaida ya wingu ya IoT. Hii mapenzi
kukupa msingi wa kuelewa na kuunda yako
miradi ya IoT.
Mazoezi: Smart Light Project
Katika mradi huu wa mazoezi, utajifunza jinsi ya kuunda smart
mwanga kwa kutumia ESP32-C3 Wireless Adventure. Muundo wa mradi,
kazi, utayarishaji wa maunzi, na mchakato wa ukuzaji utakuwa
alielezea kwa kina.
Muundo wa Mradi
Mradi huo unajumuisha vipengele kadhaa, ikiwa ni pamoja na
ESP32-C3 Wireless Adventure, LED, vitambuzi, na wingu
nyuma.
Kazi za Mradi
Mradi wa mwanga wa smart utapata kudhibiti mwangaza na
rangi ya LEDs kwa mbali kupitia programu ya simu au web
kiolesura.
Maandalizi ya Vifaa
Ili kujiandaa kwa ajili ya mradi, utahitaji kukusanya
vipengele muhimu vya maunzi, kama vile ESP32-C3 Wireless
Ubao wa matukio, LEDs, vipingamizi, na usambazaji wa nishati.
Mchakato wa Maendeleo
Mchakato wa maendeleo unahusisha kuanzisha maendeleo
mazingira, kuandika kanuni kudhibiti LEDs, kuunganisha na
cloud backend, na kupima utendakazi wa mahiri
mwanga.
Utangulizi wa ESP RainMaker
ESP RainMaker ni mfumo madhubuti wa kukuza IoT
vifaa. Katika sehemu hii, utajifunza ESP RainMaker ni nini na
jinsi inavyoweza kutekelezwa katika miradi yako.
ESP RainMaker ni nini?
ESP RainMaker ni jukwaa linalotegemea wingu ambalo hutoa seti ya
zana na huduma za kujenga na kusimamia vifaa vya IoT.
Utekelezaji wa ESP RainMaker
Sehemu hii inaelezea vipengele tofauti vinavyohusika
kutekeleza ESP RainMaker, pamoja na huduma ya kudai,
RainMaker Agent, cloud backend, na RainMaker Client.
Mazoezi: Mambo Muhimu ya Kuendeleza na ESP RainMaker
Katika sehemu hii ya mazoezi, utajifunza kuhusu pointi kuu za
zingatia unapotengeneza na ESP RainMaker. Hii inajumuisha kifaa
kudai, usawazishaji wa data, na usimamizi wa mtumiaji.
Vipengele vya ESP RainMaker
ESP RainMaker inatoa vipengele mbalimbali kwa ajili ya usimamizi wa mtumiaji, mwisho
watumiaji, na wasimamizi. Vipengele hivi huruhusu kifaa rahisi
usanidi, udhibiti wa mbali, na ufuatiliaji.
Kuweka Mazingira ya Maendeleo
Sehemu hii inatoa nyongezaview ya ESP-IDF (Espressif IoT
Mfumo wa Maendeleo), ambao ndio mfumo rasmi wa maendeleo
kwa vifaa vinavyotokana na ESP32. Inaelezea matoleo tofauti ya
ESP-IDF na jinsi ya kuweka mazingira ya maendeleo.
Maendeleo ya Vifaa na Dereva
Muundo wa maunzi ya Bidhaa za Smart Light kulingana na ESP32-C3
Sehemu hii inaangazia muundo wa maunzi wa mwanga mahiri
bidhaa kulingana na ESP32-C3 Wireless Adventure. Inashughulikia
vipengele na muundo wa bidhaa smart mwanga, pamoja na
muundo wa vifaa vya mfumo wa msingi wa ESP32-C3.
Vipengele na Muundo wa Bidhaa za Smart Light
Kifungu hiki kinaelezea vipengele na vipengele vinavyotengeneza
ongeza bidhaa za mwanga. Inajadili utendaji tofauti
na masuala ya muundo wa kuunda taa mahiri.
Muundo wa Vifaa vya Mfumo wa Msingi wa ESP32-C3
Muundo wa vifaa vya mfumo wa msingi wa ESP32-C3 ni pamoja na nguvu
usambazaji, mlolongo wa kuwasha, kuweka upya mfumo, mmweko wa SPI, chanzo cha saa,
na RF na kuzingatia antenna. Kifungu hiki kinatoa
maelezo ya kina juu ya vipengele hivi.
Maswali Yanayoulizwa Mara kwa Mara
Swali: ESP RainMaker ni nini?
J: ESP RainMaker ni jukwaa la msingi la wingu ambalo hutoa zana
na huduma za kujenga na kusimamia vifaa vya IoT. Inarahisisha
mchakato wa uundaji na inaruhusu usanidi rahisi wa kifaa, kijijini
udhibiti, na ufuatiliaji.
Swali: Ninawezaje kuweka mazingira ya maendeleo
ESP32-C3?
J: Ili kusanidi mazingira ya uendelezaji wa ESP32-C3, unahitaji
kusakinisha ESP-IDF (Espressif IoT Development Framework) na
isanidi kulingana na maagizo yaliyotolewa. ESP-IDF ndio
mfumo rasmi wa maendeleo kwa vifaa vinavyotegemea ESP32.
Swali: Je, ni sifa gani za ESP RainMaker?
J: ESP RainMaker inatoa vipengele mbalimbali, ikiwa ni pamoja na mtumiaji
usimamizi, vipengele vya mtumiaji wa mwisho, na vipengele vya msimamizi. Usimamizi wa mtumiaji
inaruhusu udai rahisi wa kifaa na ulandanishi wa data. Mtumiaji wa mwisho
vipengele huwezesha udhibiti wa mbali wa vifaa kupitia programu ya simu au
web kiolesura. Vipengele vya msimamizi hutoa zana za ufuatiliaji wa kifaa
na usimamizi.
ESP32-C3 Tukio Isiyo na Waya
Mwongozo wa kina wa IoT
Mifumo ya Espressif Juni 12, 2023
Yaliyomo
Mimi Maandalizi
1
1 Utangulizi wa IoT
3
1.1 Usanifu wa IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Maombi ya IoT katika Nyumba Mahiri. . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Utangulizi na Mazoezi ya Miradi ya IoT
9
2.1 Utangulizi wa Miradi ya Kawaida ya IoT. . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Moduli za Msingi za Vifaa vya Kawaida vya IoT . . . . . . . . . . . . . . . . . 9
2.1.2 Moduli za Msingi za Maombi ya Mteja. . . . . . . . . . . . . . . . . . . 10
2.1.3 Utangulizi wa Majukwaa ya Wingu ya IoT ya Kawaida. . . . . . . . . . . . . . 11
2.2 Mazoezi: Mradi wa Nuru Mahiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Muundo wa Mradi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Kazi za Mradi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Maandalizi ya Vifaa. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Mchakato wa Maendeleo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Utangulizi wa ESP RainMaker
19
3.1 ESP RainMaker ni nini? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Utekelezaji wa ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Huduma ya Kudai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Wakala wa kutengeneza mvua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Wingu Backend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Mteja wa kutengeneza mvua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Mazoezi: Mambo Muhimu ya Kuendeleza na ESP RainMaker . . . . . . . . . . . . 25
3.4 Vipengele vya ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Usimamizi wa Mtumiaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Vipengele vya Mtumiaji wa Mwisho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Sifa za Msimamizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Kuweka Mazingira ya Maendeleo
31
4.1 ESP-IDF Zaidiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Matoleo ya ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 Mtiririko wa kazi wa Git wa ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Kuchagua Toleo Linalofaa . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Zaidiview ya Saraka ya ESP-IDF SDK . . . . . . . . . . . . . . . . . . . . 34 4.2 Kuweka Mazingira ya Maendeleo ya ESP-IDF . . . . . . . . . . . . . . . . . 38 4.2.1 Kuweka Mazingira ya Maendeleo ya ESP-IDF kwenye Linux . . . . . . . . 38 4.2.2 Kuweka Mazingira ya Maendeleo ya ESP-IDF kwenye Windows . . . . . . 40 4.2.3 Kuweka Mazingira ya Maendeleo ya ESP-IDF kwenye Mac . . . . . . . . . 45 4.2.4 Kusakinisha Msimbo wa VS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Utangulizi wa Mazingira ya Maendeleo ya Watu Wengine . . . . . . . . 46 4.3 Mfumo wa Kukusanya ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Dhana za Msingi za Mfumo wa Kukusanya. . . . . . . . . . . . . . . . . . 47 4.3.2 Mradi File Muundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Kanuni Chaguomsingi za Muundo wa Mfumo wa Ukusanyaji. . . . . . . . . . . . . 50 4.3.4 Utangulizi wa Hati ya Kukusanya . . . . . . . . . . . . . . . . . . 51 4.3.5 Utangulizi wa Amri za Pamoja . . . . . . . . . . . . . . . . . . . 52 4.4 Mazoezi: Kutunga Kutampna Programu "Blink". . . . . . . . . . . . . . . . . . 53 4.4.1 KutampUchambuzi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Kuandaa Programu ya Kufumba Pesa. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Kumulika Programu ya Kufumba. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Uchanganuzi wa Logi ya Bandari ya Msururu wa Programu ya Blink. . . . . . . . . . . . . . 60 4.5 Muhtasari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Maendeleo ya Vifaa na Dereva
65
5 Muundo wa maunzi ya Bidhaa za Smart Light kulingana na ESP32-C3
67
5.1 Vipengele na Muundo wa Bidhaa za Smart Light. . . . . . . . . . . . . . . 67
5.2 Muundo wa maunzi ya Mfumo wa Msingi wa ESP32-C3 . . . . . . . . . . . . . . . . . . . 70
5.2.1 Ugavi wa Umeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Mpangilio wa Kuwasha na Kuweka Upya Mfumo . . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Chanzo cha Saa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF na Antenna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Pini za Kufunga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO na Kidhibiti cha PWM . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Mazoezi: Kujenga Mfumo Mahiri wa Mwanga kwa kutumia ESP32-C3 . . . . . . . . . . . . . 80
5.3.1 Kuchagua Moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 Kusanidi GPIO za Mawimbi ya PWM . . . . . . . . . . . . . . . . . . . . 82
5.3.3 Kupakua Firmware na Kiolesura cha Utatuzi . . . . . . . . . . . . 82
5.3.4 Miongozo ya Usanifu wa RF . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Miongozo ya Usanifu wa Ugavi wa Umeme . . . . . . . . . . . . . . . . . . . 86 5.4 Muhtasari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Maendeleo ya Dereva
87
6.1 Mchakato wa Maendeleo ya Madereva. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 Maombi ya Pembeni . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Misingi ya Dereva ya LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Nafasi za Rangi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 Dereva ya LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 Kufifisha kwa LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 Utangulizi wa PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 Maendeleo ya Kiendeshaji cha Dimming ya LED. . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Hifadhi Isiyo na Tete (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 Kidhibiti cha PWM cha LED (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 Upangaji wa PWM wa LED . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Mazoezi: Kuongeza Viendeshaji kwenye Mradi wa Smart Light . . . . . . . . . . . . . . . . . 103
6.5.1 Dereva wa Kitufe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 Kiendesha Dimming ya LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III Mawasiliano na Udhibiti bila Waya
109
7 Usanidi na Muunganisho wa Wi-Fi
111
7.1 Misingi ya Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Utangulizi wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 Mageuzi ya IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Dhana za Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Muunganisho wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Misingi ya Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Utangulizi wa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Dhana za Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Muunganisho wa Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Usanidi wa Mtandao wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Mwongozo wa Usanidi wa Mtandao wa Wi-Fi . . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Mbinu Nyingine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Kupanga Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Vipengele vya Wi-Fi katika ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Zoezi: Muunganisho wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Zoezi: Muunganisho Mahiri wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . 145
7.5 Mazoezi: Usanidi wa Wi-Fi katika Mradi wa Smart Light. . . . . . . . . . . . . . . 156 7.5.1 Muunganisho wa Wi-Fi katika Mradi wa Smart Light . . . . . . . . . . . . . . . . . 156 7.5.2 Usanidi Mahiri wa Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Udhibiti wa Mitaa
159
8.1 Utangulizi wa Udhibiti wa Mitaa . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Utumiaji wa Udhibiti wa Mitaa . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 Advantages ya Udhibiti wa Mitaa. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Kugundua Vifaa Vinavyodhibitiwa kupitia Simu mahiri . . . . . . . . . . 161
8.1.4 Mawasiliano ya Data kati ya Simu mahiri na Vifaa. . . . . . . . 162
8.2 Mbinu za Kawaida za Ugunduzi wa Karibu . . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Tangaza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Utangazaji mwingi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Ulinganisho Kati ya Matangazo na Utangazaji anuwai . . . . . . . . . . . . . . 176
8.2.4 MDNS ya Itifaki ya Maombi ya Multicast kwa Ugunduzi wa Ndani . . . . . . . . 176
8.3 Itifaki za Mawasiliano za Kawaida za Data ya Ndani . . . . . . . . . . . . . . . 179
8.3.1 Itifaki ya Udhibiti wa Usambazaji (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 Itifaki ya Kuhamisha Maandishi Mkubwa (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Da ya MtumiajitagItifaki ya kondoo dume (UDP) . . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Itifaki ya Maombi yenye Vikwazo (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Itifaki ya Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Muhtasari wa Itifaki za Mawasiliano ya Data. . . . . . . . . . . . . . . 203
8.4 Dhamana ya Usalama wa Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Utangulizi wa Usalama wa Tabaka la Usafiri (TLS) . . . . . . . . . . . . . 207
8.4.2 Utangulizi wa Datagkondoo dume Usalama wa Tabaka la Usafiri (DTLS) . . . . . . . 213
8.5 Mazoezi: Udhibiti wa Ndani katika Mradi wa Smart Light . . . . . . . . . . . . . . . . . . 217
8.5.1 Kuunda Seva ya Udhibiti wa Mitaa inayotegemea Wi-Fi . . . . . . . . . . . . . . . 217
8.5.2 Kuthibitisha Utendaji wa Udhibiti wa Eneo kwa kutumia Hati . . . . . . . . . . . 221
8.5.3 Kuunda Seva ya Udhibiti wa Ndani inayotegemea Bluetooth . . . . . . . . . . . . 222
8.6 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Udhibiti wa Wingu
225
9.1 Utangulizi wa Udhibiti wa Mbali . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Itifaki za Mawasiliano ya Data ya Wingu . . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 Utangulizi wa MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Kanuni za MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 Umbizo la Ujumbe wa MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Ulinganisho wa Itifaki. . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Kuanzisha Kidalali cha MQTT kwenye Linux na Windows . . . . . . . . . . . . 233 9.2.6 Kuanzisha Mteja wa MQTT Kulingana na ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Kuhakikisha Usalama wa Data wa MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Maana na Kazi ya Vyeti. . . . . . . . . . . . . . . . . . . 237 9.3.2 Kuzalisha Vyeti Ndani ya Nchi. . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Kusanidi Dalali wa MQTT . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Kusanidi Mteja wa MQTT . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Mazoezi: Udhibiti wa Mbali kupitia ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker Misingi . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Itifaki ya Mawasiliano ya Nodi na Cloud Backend. . . . . . . . . . . 244 9.4.3 Mawasiliano kati ya Mteja na Hifadhi ya Wingu . . . . . . . . . . . 249 9.4.4 Majukumu ya Mtumiaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Huduma za Msingi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Mwanga Mahiri Kutample. . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 Programu ya RainMaker na Miunganisho ya Watu Wengine . . . . . . . . . . . . . . . 262 9.5 Muhtasari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Maendeleo ya Programu ya Simu mahiri
269
10.1 Utangulizi wa Ukuzaji wa Programu za Simu mahiri . . . . . . . . . . . . . . . . . . 269
10.1.1 Zaidiview ya Maendeleo ya Programu ya Simu mahiri . . . . . . . . . . . . . . . 270
10.1.2 Muundo wa Mradi wa Android . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 Muundo wa Mradi wa iOS . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Mzunguko wa Maisha wa Shughuli ya Android . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 Mzunguko wa maisha wa iOS ViewMdhibiti. . . . . . . . . . . . . . . . . . . . . . 273
10.2 Kuunda Mradi Mpya wa Programu ya Simu mahiri . . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Kujitayarisha kwa Usanidi wa Android . . . . . . . . . . . . . . . . . . . 275
10.2.2 Kuunda Mradi Mpya wa Android . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 Kuongeza Vitegemezi kwa MyRainmaker . . . . . . . . . . . . . . . . . 276
10.2.4 Ombi la Ruhusa katika Android . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 Kujitayarisha kwa Usanidi wa iOS . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Kuunda Mradi Mpya wa iOS . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 Kuongeza Vitegemezi kwa MyRainmaker . . . . . . . . . . . . . . . . . 279
10.2.8 Ombi la Ruhusa katika iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Uchambuzi wa Masharti ya Utendaji ya Programu . . . . . . . . . . . . . . . . . . 281
10.3.1 Uchambuzi wa Mahitaji ya Kiutendaji ya Mradi. . . . . . . . . . . . 282
10.3.2 Uchambuzi wa Mahitaji ya Usimamizi wa Mtumiaji. . . . . . . . . . . . . . . 282 10.3.3 Uchambuzi wa Mahitaji ya Utoaji na Ufungaji wa Kifaa. . . . . . . 283 10.3.4 Uchambuzi wa Mahitaji ya Udhibiti wa Mbali . . . . . . . . . . . . . . . . 283 10.3.5 Uchambuzi wa Mahitaji ya Upangaji. . . . . . . . . . . . . . . . . . . 284 10.3.6 Uchambuzi wa Mahitaji ya Kituo cha Mtumiaji. . . . . . . . . . . . . . . . . . 285 10.4 Maendeleo ya Usimamizi wa Mtumiaji. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Utangulizi wa API za RainMaker. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Kuanzisha Mawasiliano kupitia Simu mahiri . . . . . . . . . . . . . . . . 286 10.4.3 Usajili wa Akaunti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Kuingia kwa Akaunti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Utengenezaji wa Utoaji wa Kifaa. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Vifaa vya Kuchanganua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Vifaa vya Kuunganisha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Kuzalisha Funguo za Siri. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Kupata Kitambulisho cha Nodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Vifaa vya Utoaji. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Utengenezaji wa Udhibiti wa Kifaa . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Kufunga Vifaa kwa Akaunti za Wingu . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Kupata Orodha ya Vifaa . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Kupata Hali ya Kifaa . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Kubadilisha Hali ya Kifaa . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Maendeleo ya Ratiba na Kituo cha Watumiaji . . . . . . . . . . . . . . . . . . . 313 10.7.1 Utekelezaji wa Kazi ya Upangaji . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Utekelezaji wa Kituo cha Mtumiaji . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 API Zaidi za Wingu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Muhtasari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Uboreshaji wa Firmware na Usimamizi wa Toleo
321
11.1 Uboreshaji wa Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Zaidiview ya Majedwali ya Kugawa. . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Mchakato wa Kuanzisha Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Zaidiview ya Utaratibu wa OTA. . . . . . . . . . . . . . . . . . . . . 326
11.2 Usimamizi wa Toleo la Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Kuashiria kwa Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Kurudisha nyuma na Kuzuia Kurudisha nyuma . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Mazoezi: Juu-hewani (OTA) Mfample. . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Boresha Programu Firmware Kupitia Mpangishi wa Karibu. . . . . . . . . . . . . . . . . 332
11.3.2 Boresha Firmware Kupitia ESP RainMaker. . . . . . . . . . . . . . . 335
11.4 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Uboreshaji na Uzalishaji kwa wingi
343
12 Usimamizi wa Nishati na Uboreshaji wa Nguvu ya Chini
345
12.1 Usimamizi wa Nguvu za ESP32-C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Kuongeza Marudio Yanayobadilika. . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Usanidi wa Usimamizi wa Nishati. . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 Hali ya Nguvu ya Chini . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Hali ya modem-usingizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Hali ya Usingizi Mwepesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Hali ya usingizi mzito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Matumizi ya Sasa katika Njia Tofauti za Nishati . . . . . . . . . . . . . 358
12.3 Usimamizi wa Nishati na Utatuzi wa Nguvu ya Chini. . . . . . . . . . . . . . . . . 359
12.3.1 Utatuzi wa Kumbukumbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 Utatuzi wa GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Mazoezi: Usimamizi wa Nguvu katika Mradi wa Smart Light . . . . . . . . . . . . . . . 363
12.4.1 Kuweka Kipengele cha Usimamizi wa Nishati. . . . . . . . . . . . . . . . . 364
12.4.2 Tumia Kufuli za Kusimamia Nguvu. . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Kuthibitisha Matumizi ya Umeme. . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Vipengele 13 vya Usalama vya Kifaa Vilivyoboreshwa
369
13.1 Zaidiview ya Usalama wa Data ya Kifaa cha IoT. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Kwa nini Uhifadhi Data ya Kifaa cha IoT? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 Mahitaji ya Msingi kwa Usalama wa Data wa Kifaa cha IoT . . . . . . . . . . . . 371
13.2 Ulinzi wa Uadilifu wa Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Utangulizi wa Mbinu ya Kuthibitisha Uadilifu . . . . . . . . . . . . . . 372
13.2.2 Uthibitishaji wa Uadilifu wa Data ya Firmware. . . . . . . . . . . . . . . . . . 373
13.2.3 Kutample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Ulinzi wa Usiri wa Data . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Utangulizi wa Usimbaji Data. . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Utangulizi wa Mpango wa Usimbaji Mwanga . . . . . . . . . . . . . . . . . 376
13.3.3 Hifadhi ya Ufunguo wa Usimbaji Mwangaza . . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Hali ya Kazi ya Usimbaji Fiche wa Mweko . . . . . . . . . . . . . . . . . . . . 380
13.3.5 Mchakato wa Usimbaji Mwako . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 Utangulizi wa Usimbaji fiche wa NVS . . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 Kutampmaelezo ya Usimbaji wa Flash na Usimbaji fiche wa NVS . . . . . . . . . . . 384
13.4 Ulinzi wa Uhalali wa Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Utangulizi wa Sahihi ya Dijitali . . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Zaidiview ya Mpango wa Boot Salama. . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Utangulizi wa Uanzishaji Salama wa Programu . . . . . . . . . . . . . . . . . . . 388 13.4.4 Utangulizi wa Kiwashi salama cha Vifaa. . . . . . . . . . . . . . . . . . 390 13.4.5 Kutamples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Mazoezi: Vipengele vya Usalama Katika Uzalishaji wa Wingi . . . . . . . . . . . . . . . . . . 396 13.5.1 Usimbaji wa Mweko na Boot Salama . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Kuwasha Usimbaji Fiche wa Mweko na Kuwasha Salama kwa Zana za Bechi za Flash . . 397 13.5.3 Kuwasha Usimbaji Fiche wa Mweko na Kuanzisha Salama katika Mradi wa Mwanga Mahiri . . . 398 13.6 Muhtasari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Kuchoma Firmware na Kujaribiwa kwa Uzalishaji wa Misa
399
14.1 Uchomaji wa Firmware katika Uzalishaji wa Misa. . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Kufafanua Sehemu za Data. . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Kuungua kwa Firmware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Upimaji wa Uzalishaji Misa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Mazoezi: Data ya Uzalishaji Misa katika Mradi wa Smart Light. . . . . . . . . . . . . 404
14.4 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 Maarifa ya ESP: Mfumo wa Ufuatiliaji wa Mbali
405
15.1 Utangulizi wa Maarifa ya ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 Kuanza na Maarifa ya ESP . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 Kuanza na Maarifa ya ESP katika Mradi wa esp-insights . . . . . . 409
15.2.2 Kuendesha Example katika Mradi wa esp-insights . . . . . . . . . . . . . . . 411
15.2.3 Kuripoti Taarifa za Utupaji wa Msingi . . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Kubinafsisha Kumbukumbu za Maslahi . . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Sababu ya Kuripoti Anzisha Upya . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Kuripoti Vipimo Maalum . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Mazoezi: Kutumia Maarifa ya ESP katika Mradi wa Smart Light . . . . . . . . . . . . . . . 416
15.4 Muhtasari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Utangulizi
ESP32-C3 ni kidhibiti kidogo cha Wi-Fi na Bluetooth 5 (LE) ya SoC, kulingana na usanifu wa chanzo huria wa RISC-V. Inaleta uwiano unaofaa wa nguvu, uwezo wa I/O na usalama, hivyo basi kutoa suluhisho bora la gharama nafuu kwa vifaa vilivyounganishwa. Ili kuonyesha matumizi mbalimbali ya familia ya ESP32-C3, kitabu hiki cha Espressif kitakupeleka kwenye safari ya kuvutia kupitia AIoT, kuanzia misingi ya maendeleo ya mradi wa IoT na usanidi wa mazingira hadi wa zamani wa vitendo.ampchini. Sura nne za kwanza zinazungumza kuhusu IoT, ESP RainMaker na ESP-IDF. Sura ya 5 na 6 muhtasari wa muundo wa maunzi na ukuzaji wa viendeshaji. Unapoendelea, utagundua jinsi ya kusanidi mradi wako kupitia mitandao ya Wi-Fi na Programu za simu. Hatimaye, utajifunza kuboresha mradi wako na kuuweka katika uzalishaji wa wingi.
Ikiwa wewe ni mhandisi katika nyanja zinazohusiana, mbunifu wa programu, mwalimu, mwanafunzi, au mtu yeyote ambaye ana nia ya IoT, kitabu hiki ni kwa ajili yako.
Unaweza kupakua msimbo wa zamaniampiliyotumika kwenye kitabu hiki kutoka kwa wavuti ya Espressif kwenye GitHub. Kwa habari ya hivi punde juu ya ukuzaji wa IoT, tafadhali fuata akaunti yetu rasmi.
Dibaji
Ulimwengu Unaohabarisha
Kuendesha wimbi la Mtandao, Mtandao wa Vitu (IoT) ulifanya mwanzo wake mzuri kuwa aina mpya ya miundombinu katika uchumi wa dijiti. Ili kuleta teknolojia karibu na umma, Mifumo ya Espressif inafanya kazi kwa maono ambayo watengenezaji kutoka tabaka zote za maisha wanaweza kutumia IoT kutatua baadhi ya shida kubwa za nyakati zetu. Ulimwengu wa "Mtandao Wenye Akili wa Vitu Vyote" ndio tunaotarajia kutoka siku zijazo.
Kuunda chip zetu wenyewe hufanya sehemu muhimu ya maono hayo. Inapaswa kuwa marathon, inayohitaji mafanikio ya mara kwa mara dhidi ya mipaka ya kiteknolojia. Kutoka kwa "Game Changer" ESP8266 hadi safu ya ESP32 inayounganisha muunganisho wa Wi-Fi na Bluetoothr (LE), ikifuatiwa na ESP32-S3 iliyo na kuongeza kasi ya AI, Espressif haiachi kamwe kutafiti na kutengeneza bidhaa kwa suluhisho za AIoT. Kwa programu yetu huria, kama vile Mfumo wa Ukuzaji wa IoT ESP-IDF, Mfumo wa Uendelezaji wa Mesh ESP-MDF, na Mfumo wa Muunganisho wa Kifaa ESP RainMaker, tumeunda mfumo huru wa kuunda programu za AIoT.
Kufikia Julai 2022, jumla ya usafirishaji wa chipsets za Espressif za IoT zimezidi milioni 800, zikiongoza katika soko la Wi-Fi MCU na kuwezesha idadi kubwa ya vifaa vilivyounganishwa ulimwenguni kote. Kutafuta ubora hufanya kila bidhaa ya Espressif kuwa maarufu kwa kiwango chake cha juu cha ujumuishaji na ufanisi wa gharama. Kutolewa kwa ESP32-C3 kunaashiria hatua muhimu ya teknolojia ya kujiendeleza ya Espressif. Ni MCU yenye msingi mmoja, 32-bit, RISC-V yenye 400KB ya SRAM, ambayo inaweza kufanya kazi kwa 160MHz. Imeunganisha 2.4 GHz Wi-Fi na Bluetooth 5 (LE) na usaidizi wa masafa marefu. Inaleta uwiano mzuri wa nguvu, uwezo wa I/O na usalama, hivyo basi kutoa suluhisho bora la gharama nafuu kwa vifaa vilivyounganishwa. Kulingana na ESP32-C3 yenye nguvu kama hii, kitabu hiki kimekusudiwa kusaidia wasomaji kuelewa maarifa yanayohusiana na IoT kwa kielelezo cha kina na ex ya vitendo.ampchini.
Kwa nini tuliandika kitabu hiki?
Mifumo ya Espressif ni zaidi ya kampuni ya semiconductor. Pia ni kampuni ya jukwaa la IoT, ambayo daima inajitahidi kwa mafanikio na uvumbuzi katika uwanja wa teknolojia. Wakati huo huo, Espressif ina chanzo wazi na kushiriki mfumo wake wa uendeshaji uliojiendeleza na mfumo wa programu na jamii, na kutengeneza mfumo wa ikolojia wa kipekee. Wahandisi, waundaji, na wapenda teknolojia hutengeneza programu mpya za programu kulingana na bidhaa za Espressif, huwasiliana kwa uhuru na kushiriki uzoefu wao. Unaweza kuona mawazo ya kuvutia ya wasanidi programu kwenye mifumo mbalimbali kila wakati, kama vile YouTube na GitHub. Umaarufu wa bidhaa za Espressif umechochea idadi inayoongezeka ya waandishi ambao wametoa zaidi ya vitabu 100 kulingana na chipsets za Espressif, katika lugha zaidi ya kumi, ikiwa ni pamoja na Kiingereza, Kichina, Kijerumani, Kifaransa na Kijapani.
Ni usaidizi na imani ya washirika wa jumuiya ambayo inahimiza uvumbuzi endelevu wa Espressif. "Tunajitahidi kufanya chips zetu, mifumo ya uendeshaji, mifumo, ufumbuzi, Wingu, mazoea ya biashara, zana, nyaraka, maandishi, mawazo, nk, kuwa muhimu zaidi kwa majibu ambayo watu wanahitaji katika matatizo ya maisha ya kisasa. Hii ndiyo matamanio ya juu zaidi ya Espressif na dira ya maadili. Alisema Bw. Teo Swee Ann, Mwanzilishi na Mkurugenzi Mtendaji wa Espressif.
Espressif inathamini usomaji na maoni. Kadiri uboreshaji unaoendelea wa teknolojia ya IoT unavyoleta mahitaji ya juu zaidi kwa wahandisi, tunawezaje kuwasaidia watu zaidi kujua kwa haraka chipsi za IoT, mifumo ya uendeshaji, mifumo ya programu, mipango ya programu na bidhaa za huduma za wingu? Kama msemo unavyosema, ni bora kumfundisha mtu jinsi ya kuvua kuliko kumpa samaki. Katika kikao cha kujadiliana, ilitokea kwetu kwamba tunaweza kuandika kitabu ili kupanga kwa utaratibu maarifa muhimu ya maendeleo ya IoT. Tulifanikiwa, tukakusanya kikundi cha wahandisi wakuu haraka, na tukachanganya uzoefu wa timu ya kiufundi katika upangaji programu iliyopachikwa, maunzi ya IoT na ukuzaji wa programu, yote yakichangia uchapishaji wa kitabu hiki. Katika mchakato wa uandishi, tulijaribu tuwezavyo kuwa na lengo na haki, tukiwa tumenyang'anywa koko, na kutumia maneno mafupi kueleza utata na haiba ya Mtandao wa Mambo. Tulifanya muhtasari wa maswali ya kawaida, tukirejelea maoni na mapendekezo ya jumuiya, ili kujibu kwa uwazi maswali yanayopatikana katika mchakato wa maendeleo, na kutoa miongozo ya maendeleo ya IoT kwa mafundi na watoa maamuzi husika.
Muundo wa Kitabu
Kitabu hiki kinachukua mtazamo unaozingatia uhandisi na kufafanua maarifa muhimu kwa maendeleo ya mradi wa IoT hatua kwa hatua. Inaundwa na sehemu nne, kama ifuatavyo:
· Matayarisho (Sura ya 1): Sehemu hii inatanguliza usanifu wa IoT, mfumo wa kawaida wa mradi wa IoT, jukwaa la wingu la ESP RainMakerr, na mazingira ya maendeleo ya ESP-IDF, ili kuweka msingi thabiti wa maendeleo ya mradi wa IoT.
· Ukuzaji wa Maunzi na Dereva (Sura ya 5): Kulingana na chipset ya ESP6-C32, sehemu hii inafafanua kwa kina mfumo wa chini zaidi wa maunzi na uundaji wa viendeshaji, na kutekeleza udhibiti wa kufifia, kupanga rangi, na mawasiliano yasiyotumia waya.
· Mawasiliano na Udhibiti Bila Waya (Sura ya 7): Sehemu hii inafafanua mpango mahiri wa usanidi wa Wi-Fi kulingana na chipu ya ESP11-C32, itifaki za udhibiti wa ndani na wingu, na udhibiti wa ndani na wa mbali wa vifaa. Pia hutoa mipango ya kutengeneza programu za simu mahiri, uboreshaji wa programu dhibiti, na usimamizi wa matoleo.
· Uboreshaji na Uzalishaji kwa wingi (Sura ya 12-15): Sehemu hii imekusudiwa kwa matumizi ya hali ya juu ya IoT, inayolenga uboreshaji wa bidhaa katika usimamizi wa nishati, uboreshaji wa nishati kidogo, na usalama ulioimarishwa. Pia inatanguliza uchomaji na majaribio ya programu dhibiti katika uzalishaji wa wingi, na jinsi ya kutambua hali ya uendeshaji na kumbukumbu za programu dhibiti ya kifaa kupitia mfumo wa ufuatiliaji wa mbali wa ESP Insights.
Kuhusu Msimbo wa Chanzo
Wasomaji wanaweza kuendesha example programu kwenye kitabu hiki, ama kwa kuingiza msimbo mwenyewe au kwa kutumia msimbo wa chanzo unaoambatana na kitabu. Tunasisitiza mchanganyiko wa nadharia na mazoezi, na hivyo kuweka sehemu ya Mazoezi kulingana na mradi wa Smart Light katika karibu kila sura. Nambari zote ziko wazi. Wasomaji wanakaribishwa kupakua msimbo wa chanzo na kuujadili katika sehemu zinazohusiana na kitabu hiki kwenye GitHub na jukwaa letu rasmi esp32.com. Msimbo wa chanzo huria wa kitabu hiki unategemea masharti ya Apache License 2.0.
Ujumbe wa Mwandishi
Kitabu hiki kimetolewa rasmi na Espressif Systems na kimeandikwa na wahandisi wakuu wa kampuni hiyo. Inafaa kwa wasimamizi na wafanyikazi wa R&D katika tasnia zinazohusiana na IoT, walimu na wanafunzi wa taaluma zinazohusiana, na wakereketwa katika uwanja wa Mtandao wa Mambo. Tunatumai kuwa kitabu hiki kinaweza kutumika kama mwongozo wa kazi, marejeleo, na kitabu cha kando ya kitanda, ili kuwa kama mwalimu na rafiki mzuri.
Wakati wa kuandaa kitabu hiki, tulirejelea baadhi ya matokeo ya utafiti husika ya wataalam, wasomi, na mafundi nchini na nje ya nchi, na tulijitahidi tuwezavyo kuyataja kulingana na kanuni za kitaaluma. Hata hivyo, ni jambo lisiloepukika kwamba kuwe na mapungufu, kwa hiyo hapa tunapenda kutoa heshima na shukrani zetu za kina kwa waandishi wote husika. Kwa kuongezea, tumenukuu habari kutoka kwa Mtandao, kwa hivyo tungependa kuwashukuru waandishi na wachapishaji wa asili na kuomba radhi kwamba hatuwezi kuonyesha chanzo cha kila habari.
Ili kutoa kitabu cha ubora wa juu, tumepanga mijadala ya ndani, na kujifunza kutoka kwa mapendekezo na maoni ya wasomaji wa majaribio na wahariri wa wachapishaji. Hapa, tungependa kukushukuru tena kwa msaada wako ambao wote umechangia kufanikisha kazi hii.
Mwisho, lakini muhimu zaidi, shukrani kwa kila mtu katika Espressif ambaye amefanya kazi kwa bidii kwa ajili ya kuzaliwa na umaarufu wa bidhaa zetu.
Maendeleo ya miradi ya IoT inahusisha maarifa mbalimbali. Upungufu wa urefu wa kitabu, pamoja na kiwango na uzoefu wa mwandishi, kuachwa hakuwezi kuepukika. Kwa hivyo, tunaomba kwa fadhili kwamba wataalamu na wasomaji wakosoa na kurekebisha makosa yetu. Ikiwa una mapendekezo yoyote ya kitabu hiki, tafadhali wasiliana nasi kwa book@espressif.com. Tunatazamia maoni yako.
Jinsi ya kutumia kitabu hiki?
Msimbo wa miradi katika kitabu hiki umewekwa wazi. Unaweza kuipakua kutoka kwa hazina yetu ya GitHub na kushiriki mawazo na maswali yako kwenye jukwaa letu rasmi. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Katika kitabu chote, kutakuwa na sehemu zilizoangaziwa kama inavyoonyeshwa hapa chini.
Msimbo wa chanzo Katika kitabu hiki, tunasisitiza mchanganyiko wa nadharia na mazoezi, na hivyo kuweka sehemu ya Mazoezi kuhusu mradi wa Smart Light katika karibu kila sura. Hatua zinazolingana na ukurasa wa chanzo utawekwa alama kati ya mistari miwili inayoanza na tag Msimbo wa chanzo.
KUMBUKA/VIDOKEZO Hapa ndipo unapoweza kupata taarifa muhimu na ukumbusho wa kutatua kwa ufanisi programu yako. Zitawekwa alama kati ya mistari miwili minene inayoanza na tag KUMBUKA au VIDOKEZO.
Amri nyingi katika kitabu hiki zinatekelezwa chini ya Linux, kwa kuchochewa na herufi "$". Ikiwa amri inahitaji upendeleo wa mtumiaji mkuu kutekeleza, haraka itabadilishwa na "#". Kidokezo cha amri kwenye mifumo ya Mac ni "%", kama inavyotumika katika Sehemu ya 4.2.3 Kusakinisha ESP-IDF kwenye Mac.
Maandishi muhimu katika kitabu hiki yatachapishwa katika Mkataba, huku msimbo wa zamaniamples, vipengele, kazi, vigezo, kanuni file majina, saraka za misimbo, na mifuatano itakuwa katika Courier New.
Amri au maandishi ambayo yanahitaji kuingizwa na mtumiaji, na amri ambazo zinaweza kuingizwa kwa kubonyeza kitufe cha "Ingiza" zitachapishwa kwa Courier New bold. Kumbukumbu na vizuizi vya msimbo vitawasilishwa katika visanduku vya samawati hafifu.
Example:
Pili, tumia esp-idf/components/nvs flash/nvs partition jenereta/nvs partition gen.py kutengeneza kizigeu cha NVS file kwenye mwenyeji wa maendeleo na amri ifuatayo:
$ python $IDF NJIA/vijenzi/nvs flash/nvs partition jenereta/nvs partition gen.py -input mass prod.csv -output mass prod.bin -size NVS PARTITION SIZE
Sura ya 1
Utangulizi
kwa
IoT
Mwishoni mwa karne ya 20, pamoja na kuongezeka kwa mitandao ya kompyuta na teknolojia za mawasiliano, Intaneti iliunganishwa haraka katika maisha ya watu. Kadiri teknolojia ya mtandao inavyoendelea kukomaa, wazo la Mtandao wa Mambo (IoT) lilizaliwa. Kwa kweli, IoT inamaanisha Mtandao ambapo vitu vimeunganishwa. Wakati Mtandao wa awali huvunja mipaka ya nafasi na wakati na kupunguza umbali kati ya "mtu na mtu", IoT hufanya "vitu" kuwa mshiriki muhimu, kuleta "watu" na "vitu" karibu zaidi. Katika siku zijazo zinazoonekana, IoT imewekwa kuwa nguvu inayoendesha tasnia ya habari.
Kwa hivyo, Mtandao wa Mambo ni nini?
Ni vigumu kufafanua kwa usahihi Mtandao wa Mambo, kwani maana na upeo wake hubadilika kila mara. Mnamo 1995, Bill Gates alileta wazo la kwanza la IoT katika kitabu chake The Road Ahead. Kwa ufupi, IoT huwezesha vitu kubadilishana habari kupitia mtandao. Lengo lake kuu ni kuanzisha "Mtandao wa Kila kitu". Hii ni tafsiri ya mapema ya IoT, pamoja na fantasia ya teknolojia ya baadaye. Miaka thelathini baadaye, pamoja na maendeleo ya haraka ya uchumi na teknolojia, fantasia inakuja katika ukweli. Kuanzia vifaa mahiri, nyumba mahiri, miji mahiri, Mtandao wa Magari na vifaa vinavyoweza kuvaliwa, hadi "metaverse" inayoungwa mkono na teknolojia ya IoT, dhana mpya zinaibuka kila wakati. Katika sura hii, tutaanza na maelezo ya usanifu wa Mtandao wa Mambo, na kisha tutaanzisha programu ya kawaida ya IoT, nyumba nzuri, ili kukusaidia kupata ufahamu wazi wa IoT.
1.1 Usanifu wa IoT
Mtandao wa Mambo unahusisha teknolojia nyingi ambazo zina mahitaji na fomu tofauti za matumizi katika tasnia tofauti. Ili kutatua muundo, teknolojia muhimu na sifa za matumizi ya IoT, ni muhimu kuanzisha usanifu wa umoja na mfumo wa kiufundi wa kawaida. Katika kitabu hiki, usanifu wa IoT umegawanywa katika tabaka nne: safu ya mtazamo & udhibiti, safu ya mtandao, safu ya jukwaa, na safu ya matumizi.
Tabaka la Mtazamo na Udhibiti Kama kipengele cha msingi zaidi cha usanifu wa IoT, safu ya utambuzi na udhibiti ndio msingi wa kutambua hisia za kina za IoT. Kazi yake kuu ni kukusanya, kutambua na kudhibiti habari. Inajumuisha vifaa anuwai na uwezo wa utambuzi,
3
utambulisho, udhibiti na utekelezaji, na ana jukumu la kurejesha na kuchambua data kama vile sifa za nyenzo, mwelekeo wa tabia na hali ya kifaa. Kwa njia hii, IoT inapata kutambua ulimwengu halisi wa kimwili. Mbali na hilo, safu pia inaweza kudhibiti hali ya kifaa.
Vifaa vya kawaida vya safu hii ni sensorer mbalimbali, ambazo zina jukumu muhimu katika kukusanya habari na kutambua. Vihisi ni kama viungo vya hisi vya binadamu, kama vile vitambuzi vya picha vinavyolingana na maono, vitambuzi vya akustisk kwa kusikia, vitambuzi vya gesi hadi kunusa, na vitambuzi vinavyohimili shinikizo na joto kwa kuguswa. Pamoja na "viungo vya hisi" hivi vyote, vitu vinakuwa "hai" na vina uwezo wa mtazamo wa akili, utambuzi na uendeshaji wa ulimwengu wa kimwili.
Safu ya Mtandao Kazi kuu ya safu ya mtandao ni kusambaza taarifa, ikiwa ni pamoja na data iliyopatikana kutoka kwa mtazamo & udhibiti wa safu hadi lengo maalum, pamoja na amri zinazotolewa kutoka kwa safu ya programu hadi kwenye safu ya mtazamo na udhibiti. Inatumika kama daraja muhimu la mawasiliano linalounganisha tabaka tofauti za mfumo wa IoT. Ili kusanidi kielelezo cha msingi cha Mtandao wa Mambo, inahusisha hatua mbili za kuunganisha vitu kwenye mtandao: ufikiaji wa Mtandao na usambazaji kupitia Mtandao.
Ufikiaji wa Mtandao wa Intaneti huwezesha muunganisho kati ya mtu na mtu, lakini hushindwa kujumuisha mambo katika familia kubwa. Kabla ya ujio wa IoT, vitu vingi havikuwa "uwezekano wa mtandao". Shukrani kwa maendeleo endelevu ya teknolojia, IoT inasimamia kuunganisha vitu kwenye Mtandao, na hivyo kutambua muunganisho kati ya "watu na vitu", na "vitu na vitu". Kuna njia mbili za kawaida za kutekeleza uunganisho wa Intaneti: upatikanaji wa mtandao wa waya na upatikanaji wa mtandao wa wireless.
Mbinu za kufikia mtandao wa waya ni pamoja na Ethernet, mawasiliano ya serial (k.m., RS-232, RS-485) na USB, wakati ufikiaji wa mtandao wa wireless unategemea mawasiliano ya wireless, ambayo yanaweza kugawanywa zaidi katika mawasiliano ya masafa mafupi ya wireless na mawasiliano ya muda mrefu ya wireless.
Mawasiliano ya masafa mafupi yasiyotumia waya yanajumuisha ZigBee, Bluetoothr, Wi-Fi, Mawasiliano ya Karibu na Uga (NFC), na Utambulisho wa Marudio ya Redio (RFID). Mawasiliano ya masafa marefu yasiyotumia waya yanajumuisha Mawasiliano Iliyoimarishwa ya Aina ya Mashine (eMTC), LoRa, Mtandao wa Mambo wa Bendi Nyembamba (NB-IoT), 2G, 3G, 4G, 5G, n.k.
Usambazaji kwa njia ya Mtandao Mbinu tofauti za ufikiaji wa mtandao husababisha kiungo kinacholingana cha maambukizi ya data. Jambo linalofuata ni kuamua ni itifaki gani ya mawasiliano itumike kusambaza data. Ikilinganishwa na vituo vya mtandao, vituo vingi vya IoT kwa sasa vina vichache
4 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
rasilimali zinazopatikana, kama vile utendakazi wa kuchakata, uwezo wa kuhifadhi, kiwango cha mtandao, n.k., kwa hivyo ni muhimu kuchagua itifaki ya mawasiliano ambayo inachukua rasilimali chache katika programu za IoT. Kuna itifaki mbili za mawasiliano ambazo zinatumika sana leo: Usafiri wa Telemetry wa Kupanga Ujumbe kwenye Foleni (MQTT) na Itifaki ya Maombi Iliyodhibitiwa (CoAP).
Safu ya Mfumo Safu ya jukwaa inarejelea hasa majukwaa ya wingu ya IoT. Wakati vituo vyote vya IoT vimeunganishwa kwenye mtandao, data yao inahitaji kujumlishwa kwenye jukwaa la wingu la IoT ili kukokotoa na kuhifadhiwa. Safu ya jukwaa inasaidia sana programu za IoT katika kuwezesha ufikiaji na usimamizi wa vifaa vikubwa. Inaunganisha vituo vya IoT kwenye jukwaa la wingu, hukusanya data ya wastaafu, na kutoa amri kwa vituo, ili kutekeleza udhibiti wa mbali. Kama huduma ya kati ya kupeana vifaa kwa matumizi ya tasnia, safu ya jukwaa ina jukumu la kuunganisha katika usanifu mzima wa IoT, ikibeba mantiki ya biashara ya kufikirika na modeli ya msingi ya data, ambayo haiwezi tu kutambua ufikiaji wa haraka wa vifaa, lakini pia kutoa uwezo wa nguvu wa msimu. ili kukidhi mahitaji mbalimbali katika hali ya matumizi ya sekta. Safu ya jukwaa inajumuisha moduli za utendaji kazi kama vile ufikiaji wa kifaa, usimamizi wa kifaa, usimamizi wa usalama, mawasiliano ya ujumbe, uendeshaji wa ufuatiliaji na matengenezo, na programu za data.
· Ufikiaji wa kifaa, kwa kutambua muunganisho na mawasiliano kati ya vituo na majukwaa ya wingu ya IoT.
· Udhibiti wa kifaa, ikijumuisha utendakazi kama vile kuunda kifaa, matengenezo ya kifaa, ubadilishaji wa data, usawazishaji wa data na usambazaji wa kifaa.
· Usimamizi wa usalama, kuhakikisha usalama wa utumaji data wa IoT kutoka kwa mitazamo ya uthibitishaji wa usalama na usalama wa mawasiliano.
· Mawasiliano ya ujumbe, ikijumuisha maelekezo matatu ya utumaji, yaani, terminal hutuma data kwenye jukwaa la wingu la IoT, jukwaa la wingu la IoT hutuma data kwenye upande wa seva au majukwaa mengine ya wingu ya IoT, na upande wa seva hudhibiti vifaa vya IoT kwa mbali.
· Ufuatiliaji wa O&M, unaohusisha ufuatiliaji na utambuzi, uboreshaji wa programu dhibiti, utatuzi wa mtandaoni, huduma za kumbukumbu n.k.
· Utumizi wa data, unaohusisha uhifadhi, uchambuzi na utumiaji wa data.
Safu ya Programu Safu ya programu hutumia data kutoka kwa safu ya jukwaa ili kudhibiti programu, kuzichuja na kuzichakata kwa zana kama vile hifadhidata na programu ya uchanganuzi. Data inayotokana inaweza kutumika kwa matumizi ya ulimwengu halisi ya IoT kama vile afya bora, kilimo bora, nyumba mahiri, na miji mahiri.
Kwa kweli, usanifu wa IoT unaweza kugawanywa katika tabaka zaidi, lakini haijalishi ina tabaka ngapi, kanuni ya msingi inabaki sawa. Kujifunza
Sura ya 1. Utangulizi wa IoT 5
kuhusu usanifu wa IoT husaidia kuongeza uelewa wetu wa teknolojia za IoT na kujenga miradi inayofanya kazi kikamilifu ya IoT.
1.2 Maombi ya IoT katika Nyumba za Smart
IoT imepenya katika nyanja zote za maisha, na programu inayohusiana zaidi ya IoT kwetu ni nyumba nzuri. Vifaa vingi vya kitamaduni sasa vina vifaa vya IoT moja au zaidi, na nyumba nyingi mpya zilizojengwa zimeundwa kwa teknolojia ya IoT tangu mwanzo. Mchoro 1.1 unaonyesha baadhi ya vifaa vya kawaida vya nyumbani mahiri.
Kielelezo 1.1. Vifaa vya kawaida vya nyumbani mahiri Ukuzaji wa nyumba mahiri unaweza kugawanywa kwa urahisi katika bidhaa mahiri stage, muunganisho wa eneo stage na mwenye akili stage, kama inavyoonyeshwa kwenye Mchoro 1.2.
Kielelezo 1.2. Maendeleo stage of smart home 6 ESP32-C3 Wireless Adventure: Mwongozo Kamili wa IoT
Ya kwanza stage ni kuhusu bidhaa smart. Tofauti na nyumba za kitamaduni, katika nyumba mahiri, vifaa vya IoT hupokea mawimbi yenye vitambuzi, na huunganishwa kwenye mtandao kupitia teknolojia za mawasiliano zisizotumia waya kama vile Wi-Fi, Bluetooth LE, na ZigBee. Watumiaji wanaweza kudhibiti bidhaa mahiri kwa njia mbalimbali, kama vile programu mahiri, visaidizi vya sauti, vidhibiti mahiri vya spika n.k.tage inazingatia muunganisho wa eneo. Katika stage, wasanidi programu hawazingatii tena kudhibiti bidhaa moja mahiri, lakini kuunganisha bidhaa mbili au zaidi mahiri, kujiendesha kiotomatiki kwa kiwango fulani, na hatimaye kuunda hali maalum ya tukio. Kwa mfanoampna, mtumiaji anapobonyeza kitufe chochote cha hali ya tukio, taa, mapazia na viyoyozi vitarekebishwa kiotomatiki kwa uwekaji mapema. Bila shaka, kuna sharti kwamba mantiki ya uunganisho imewekwa kwa urahisi, ikijumuisha masharti ya vichochezi na vitendo vya utekelezaji. Hebu fikiria kwamba hali ya joto ya hali ya hewa husababishwa wakati joto la ndani linapungua chini ya 10 ° C; kwamba saa 7 asubuhi, muziki unachezwa ili kuamsha mtumiaji, mapazia ya smart yanafunguliwa, na jiko la mchele au mkate wa mkate huanza kupitia tundu la smart; mtumiaji anapoamka na kumaliza kuosha, kifungua kinywa tayari kinatolewa, ili kusiwe na kuchelewa kwenda kazini. Jinsi maisha yetu yamekuwa rahisi! Ya tatu stage huenda kwa ujasusi stage. Kadiri vifaa mahiri vya nyumbani vinavyofikiwa, ndivyo aina za data zinazozalishwa zitakavyoweza kufikiwa. Kwa usaidizi wa kompyuta ya wingu, data kubwa na akili ya bandia, ni kama "ubongo mwerevu" umepandwa kwenye nyumba mahiri, ambazo hazihitaji tena amri za mara kwa mara kutoka kwa mtumiaji. Hukusanya data kutoka kwa mwingiliano wa awali na kujifunza mifumo ya tabia na mapendeleo ya mtumiaji, ili kufanyia shughuli kiotomatiki, ikiwa ni pamoja na kutoa mapendekezo ya kufanya maamuzi. Hivi sasa, nyumba nyingi mahiri ziko kwenye unganishi wa eneo la tukiotage. Kadiri kasi ya kupenya na akili ya bidhaa mahiri inavyoongezeka, vizuizi kati ya itifaki za mawasiliano vinaondolewa. Katika siku zijazo, nyumba zenye akili zitakuwa "smart" kweli, kama vile mfumo wa AI wa Jarvis katika Iron Man, ambao hauwezi tu kumsaidia mtumiaji kudhibiti vifaa mbalimbali, kushughulikia masuala ya kila siku, lakini pia kuwa na uwezo wa juu wa kompyuta na uwezo wa kufikiri. Katika wenye akili stage, wanadamu watapata huduma bora kwa wingi na ubora.
Sura ya 1. Utangulizi wa IoT 7
8 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Utangulizi wa Sura na Mazoezi ya Miradi 2 ya IoT
Katika Sura ya 1, tulianzisha usanifu wa IoT, na majukumu na uhusiano wa mtazamo na udhibiti wa safu, safu ya mtandao, safu ya jukwaa, na safu ya matumizi, pamoja na ukuzaji wa nyumba mahiri. Walakini, kama vile tunapojifunza kuchora, kujua maarifa ya kinadharia ni mbali na kutosha. Tunapaswa "kuchafua mikono yetu" ili kuweka miradi ya IoT katika vitendo ili kujua teknolojia kweli. Aidha, mradi unapohamia kwenye uzalishaji wa wingi stage, ni muhimu kuzingatia vipengele zaidi kama vile muunganisho wa mtandao, usanidi, mwingiliano wa jukwaa la wingu la IoT, usimamizi na masasisho ya programu dhibiti, usimamizi wa uzalishaji kwa wingi na usanidi wa usalama. Kwa hivyo, tunahitaji kuzingatia nini wakati wa kuunda mradi kamili wa IoT? Katika Sura ya 1, tulitaja kuwa nyumba mahiri ni mojawapo ya matukio ya kawaida ya utumaji maombi ya IoT, na taa mahiri ni mojawapo ya vifaa vya kimsingi na vya vitendo, vinavyoweza kutumika katika nyumba, hoteli, ukumbi wa michezo, hospitali, n.k. Kwa hivyo, katika kitabu hiki, tutachukua ujenzi wa mradi wa mwanga mahiri kama mahali pa kuanzia, tutaelezea vipengele na vipengele vyake, na kutoa mwongozo kuhusu maendeleo ya mradi. Tunatumahi kuwa unaweza kuchora makisio kutoka kwa kesi hii ili kuunda programu zaidi za IoT.
2.1 Utangulizi wa Miradi ya Kawaida ya IoT
Kwa upande wa maendeleo, moduli za kimsingi za utendakazi za miradi ya IoT zinaweza kuainishwa katika ukuzaji wa programu na maunzi ya vifaa vya IoT, ukuzaji wa programu za mteja, na ukuzaji wa jukwaa la wingu la IoT. Ni muhimu kufafanua moduli za msingi za kazi, ambazo zitaelezwa zaidi katika sehemu hii.
2.1.1 Moduli za Msingi za Vifaa vya Kawaida vya IoT
Utengenezaji wa programu na maunzi ya vifaa vya IoT ni pamoja na moduli za msingi zifuatazo: Mkusanyiko wa data
Kama safu ya chini ya usanifu wa IoT, vifaa vya IoT vya safu ya utambuzi na udhibiti huunganisha vitambuzi na vifaa kupitia chipsi na vifaa vyake vya pembeni ili kufikia ukusanyaji wa data na udhibiti wa uendeshaji.
9
Kufunga akaunti na usanidi wa awali Kwa vifaa vingi vya IoT, kufunga akaunti na usanidi wa awali hukamilishwa katika mchakato mmoja wa uendeshaji, kwa mfano.ample, kuunganisha vifaa na watumiaji kwa kusanidi mtandao wa Wi-Fi.
Mwingiliano na majukwaa ya wingu ya IoT Ili kufuatilia na kudhibiti vifaa vya IoT, ni muhimu pia kuviunganisha kwenye majukwaa ya wingu ya IoT, ili kutoa amri na kuripoti hali kupitia mwingiliano kati ya kila mmoja.
Udhibiti wa kifaa Ukiunganishwa na mifumo ya wingu ya IoT, vifaa vinaweza kuwasiliana na wingu na kusajiliwa, kufungwa au kudhibitiwa. Watumiaji wanaweza kuuliza hali ya bidhaa na kutekeleza shughuli zingine kwenye programu ya simu mahiri kupitia majukwaa ya wingu ya IoT au itifaki za mawasiliano za ndani.
Vifaa vya kuboresha Firmware IoT pia vinaweza kufikia uboreshaji wa firmware kulingana na mahitaji ya watengenezaji. Kwa kupokea amri zilizotumwa na wingu, uboreshaji wa programu dhibiti na usimamizi wa toleo utatekelezwa. Ukiwa na kipengele hiki cha kuboresha programu, unaweza kuendelea kuboresha utendakazi wa vifaa vya IoT, kurekebisha kasoro, na kuboresha matumizi ya mtumiaji.
2.1.2 Moduli za Msingi za Maombi ya Mteja
Programu za mteja (k.m., programu za simu mahiri) zinajumuisha moduli za kimsingi zifuatazo:
Mfumo wa akaunti na uidhinishaji Inaauni uidhinishaji wa akaunti na kifaa.
Programu za simu mahiri za kudhibiti kifaa huwa na vitendaji vya kudhibiti. Watumiaji wanaweza kuunganisha kwa urahisi kwenye vifaa vya IoT, na kuvidhibiti wakati wowote, mahali popote kupitia programu mahiri. Katika nyumba mahiri ya ulimwengu halisi, vifaa vinadhibitiwa zaidi kupitia programu za simu mahiri, ambazo sio tu kuwezesha usimamizi wa vifaa kwa akili, lakini pia huokoa gharama ya wafanyikazi. Kwa hivyo, udhibiti wa kifaa ni lazima kwa programu za mteja, kama vile udhibiti wa sifa za utendakazi wa kifaa, udhibiti wa eneo, kuratibu, udhibiti wa mbali, unganisho la kifaa, n.k. Watumiaji mahiri wa nyumbani wanaweza pia kubinafsisha matukio kulingana na mahitaji ya kibinafsi, kudhibiti mwanga, vifaa vya nyumbani, mlango. , nk, kufanya maisha ya nyumbani kuwa ya kufurahisha zaidi na rahisi. Wanaweza muda wa kuweka kiyoyozi, kukizima kwa mbali, kuwasha taa ya barabara ya ukumbi kiotomatiki mara tu mlango unapofunguliwa, au wabadilishe hadi modi ya "ukumbi" kwa kitufe kimoja.
Programu za Arifa za Mteja husasisha hali ya wakati halisi ya vifaa vya IoT, na kutuma arifa wakati vifaa vinapoharibika.
10 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Huduma ya mteja baada ya mauzo Programu za simu mahiri zinaweza kutoa huduma za baada ya mauzo kwa bidhaa, kutatua matatizo yanayohusiana na hitilafu za kifaa cha IoT na uendeshaji wa kiufundi kwa wakati ufaao.
Vitendaji vilivyoangaziwa Ili kukidhi mahitaji ya watumiaji tofauti, vitendaji vingine vinaweza kuongezwa, kama vile Shake, NFC, GPS, n.k. GPS inaweza kusaidia kuweka usahihi wa shughuli za eneo kulingana na eneo na umbali, huku kipengele cha Shake kinaruhusu watumiaji kuweka amri za kutekelezwa kwa kifaa maalum au eneo kwa kutikisa.
2.1.3 Utangulizi wa Majukwaa ya Wingu ya IoT ya Kawaida
Jukwaa la wingu la IoT ni jukwaa la yote kwa moja ambalo linajumuisha utendaji kama vile usimamizi wa kifaa, mawasiliano ya usalama wa data, na usimamizi wa arifa. Kulingana na kundi lao lengwa na ufikivu, majukwaa ya wingu ya IoT yanaweza kugawanywa katika majukwaa ya wingu ya umma ya IoT (ambayo yanajulikana kama "wingu la umma") na majukwaa ya wingu ya kibinafsi ya IoT (hapa yanajulikana kama "wingu la kibinafsi").
Wingu la umma kwa kawaida huonyesha majukwaa ya wingu ya IoT yaliyoshirikiwa kwa biashara au watu binafsi, yanayoendeshwa na kudumishwa na watoa huduma wa jukwaa, na kushirikiwa kupitia Mtandao. Inaweza kuwa ya bure au ya gharama ya chini, na inatoa huduma katika mtandao wazi wa umma, kama vile Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, n.k. Kama jukwaa linalosaidia, wingu la umma linaweza kuunganisha watoa huduma wa juu na watumiaji wa mwisho wa mkondo ili kuunda msururu mpya wa thamani na mfumo ikolojia.
Wingu la faragha limeundwa kwa matumizi ya biashara pekee, hivyo basi kuhakikisha udhibiti bora wa data, usalama na ubora wa huduma. Huduma na miundombinu yake hudumishwa kando na makampuni ya biashara, na vifaa na programu inayounga mkono pia imetolewa kwa watumiaji maalum. Biashara zinaweza kubinafsisha huduma za wingu ili kukidhi mahitaji ya biashara zao. Kwa sasa, watengenezaji wengine mahiri wa nyumba tayari wana majukwaa ya wingu ya kibinafsi ya IoT na wametengeneza programu mahiri za nyumbani kulingana nazo.
Wingu la umma na wingu la kibinafsi lina advan yao wenyewetages, ambayo itaelezwa baadaye.
Ili kufikia muunganisho wa mawasiliano, ni muhimu kukamilisha angalau maendeleo yaliyopachikwa kwenye upande wa kifaa, pamoja na seva za biashara, majukwaa ya wingu ya IoT, na programu za simu mahiri. Inakabiliwa na mradi huo mkubwa, wingu la umma kwa kawaida hutoa vifaa vya ukuzaji wa programu kwa upande wa kifaa na programu za simu mahiri ili kuharakisha mchakato. Wingu la umma na la kibinafsi hutoa huduma ikijumuisha ufikiaji wa kifaa, udhibiti wa kifaa, kivuli cha kifaa na uendeshaji na matengenezo.
Ufikiaji wa kifaa majukwaa ya wingu ya IoT yanahitaji kutoa sio tu violesura vya ufikiaji wa kifaa kwa kutumia itifaki
Sura ya 2. Utangulizi na Utendaji wa Miradi ya IoT 11
kama vile MQTT, CoAP, HTTPS, na WebSoketi, lakini pia kazi ya uthibitishaji wa usalama wa kifaa ili kuzuia vifaa ghushi na haramu, kwa ufanisi kupunguza hatari ya kuathirika. Uthibitishaji kama huo kwa kawaida hutumia mbinu tofauti, kwa hivyo wakati vifaa vinapozalishwa kwa wingi, ni muhimu kukabidhi cheti cha kifaa mapema kulingana na utaratibu uliochaguliwa wa uthibitishaji na kukichoma ndani ya vifaa.
Usimamizi wa kifaa Kitendaji cha usimamizi wa kifaa kinachotolewa na majukwaa ya wingu ya IoT kinaweza kusaidia watengenezaji kufuatilia hali ya kuwezesha na hali ya mtandaoni ya vifaa vyao kwa wakati halisi, lakini pia inaruhusu chaguzi kama vile kuongeza / kuondoa vifaa, kurejesha, kuongeza / kufuta vikundi, kuboresha programu. , na usimamizi wa toleo.
Mifumo ya wingu ya kivuli cha kifaa ya IoT inaweza kuunda toleo dhahiri (kivuli cha kifaa) kwa kila kifaa, na hali ya kivuli cha kifaa inaweza kusawazishwa na kupatikana kwa programu ya simu mahiri au vifaa vingine kupitia itifaki za utumaji mtandao. Kivuli cha kifaa huhifadhi hali ya hivi punde iliyoripotiwa na hali inayotarajiwa ya kila kifaa, na hata kama kifaa kiko nje ya mtandao, bado kinaweza kupata hali hiyo kwa kupiga API. Kivuli cha kifaa hutoa API zinazowashwa kila wakati, ambayo hurahisisha kuunda programu mahiri zinazoingiliana na vifaa.
Uendeshaji na matengenezo Kitendaji cha O&M kinajumuisha vipengele vitatu: · Kuonyesha taarifa za takwimu kuhusu vifaa na arifa za IoT. · Udhibiti wa kumbukumbu huruhusu urejeshaji wa taarifa kuhusu tabia ya kifaa, mtiririko wa ujumbe wa juu/chini, na maudhui ya ujumbe. · Utatuzi wa kifaa unaauni utoaji wa amri, sasisho la usanidi, na kuangalia mwingiliano kati ya majukwaa ya wingu ya IoT na ujumbe wa kifaa.
2.2 Mazoezi: Mradi wa Nuru Mahiri
Baada ya utangulizi wa kinadharia katika kila sura, utapata sehemu ya mazoezi inayohusiana na mradi wa Smart Light ili kukusaidia kupata uzoefu wa vitendo. Mradi huu unatokana na chip ya ESP32-C3 ya Espressif na Jukwaa la Wingu la ESP RainMaker IoT, na inashughulikia maunzi ya moduli zisizo na waya katika bidhaa mahiri za mwanga, programu iliyopachikwa kwa vifaa mahiri kulingana na ESP32C3, programu za simu mahiri, na mwingiliano wa ESP RainMaker.
Msimbo wa chanzo Kwa uzoefu bora wa kujifunza na kuendeleza, mradi katika kitabu hiki umetolewa kwa njia huria. Unaweza kupakua msimbo wa chanzo kutoka kwa hazina yetu ya GitHub kwenye https://github. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
2.2.1 Muundo wa Mradi
Mradi wa Smart Light una sehemu tatu: i. Vifaa vya mwanga mahiri kulingana na ESP32-C3, vinavyohusika na kuingiliana na majukwaa ya wingu ya IoT, na kudhibiti swichi, mwangaza na joto la rangi ya l ya LED.amp shanga. ii. Programu za simu mahiri (pamoja na programu za kompyuta kibao zinazotumika kwenye Android na iOS), zinazohusika na usanidi wa mtandao wa bidhaa mahiri za mwanga, pamoja na kuuliza na kudhibiti hali zao.
iii. Jukwaa la wingu la IoT kulingana na ESP RainMaker. Kwa kurahisisha, tunazingatia jukwaa la wingu la IoT na seva ya biashara kwa ujumla katika kitabu hiki. Maelezo kuhusu ESP RainMaker yatatolewa katika Sura ya 3.
Mawasiliano kati ya muundo wa mradi wa Smart Light na usanifu wa IoT umeonyeshwa kwenye Mchoro 2.1.
Kielelezo 2.1. Muundo wa mradi wa mwanga wa smart
2.2.2 Kazi za Mradi
Imegawanywa kulingana na muundo, kazi za kila sehemu ni kama ifuatavyo. Vifaa vya mwanga vya Smart
· Mipangilio ya mtandao na muunganisho. · Udhibiti wa LED PWM, kama vile swichi, mwangaza, halijoto ya rangi, n.k. · Kidhibiti kiotomatiki au eneo, k.m., kubadili saa. · Usimbaji fiche na uanzishaji salama wa Flash. · Uboreshaji wa programu dhibiti na usimamizi wa toleo.
Sura ya 2. Utangulizi na Utendaji wa Miradi ya IoT 13
Programu za simu mahiri · Usanidi wa mtandao na kufunga kifaa. · Udhibiti mahiri wa bidhaa, kama vile swichi, mwangaza, halijoto ya rangi, n.k. · Mipangilio ya otomatiki au eneo, k.m., kubadili saa. · Udhibiti wa ndani/kijijini. · Usajili wa mtumiaji, kuingia, nk.
Jukwaa la wingu la ESP RainMaker IoT · Kuwasha ufikiaji wa kifaa cha IoT. · Kutoa API za uendeshaji wa kifaa zinazoweza kufikiwa na programu za simu mahiri. · Uboreshaji wa programu dhibiti na usimamizi wa toleo.
2.2.3 Maandalizi ya Vifaa
Ikiwa ungependa kutekeleza mradi, utahitaji pia maunzi yafuatayo: taa mahiri, simu mahiri, vipanga njia vya Wi-Fi, na kompyuta inayokidhi mahitaji ya usakinishaji wa mazingira ya usanidi. Taa za Smart
Taa mahiri ni aina mpya ya balbu, ambazo umbo lake ni sawa na balbu ya jumla ya incandescent. Mwangaza mahiri unajumuisha usambazaji wa nguvu unaodhibitiwa wa kushuka chini kwa capacitor, moduli isiyo na waya (iliyo na ESP32-C3 iliyojengwa ndani), kidhibiti cha LED na matrix ya RGB ya LED. Inapounganishwa kwa nishati, 15 V DC voltage pato baada ya kushuka kwa capacitor, urekebishaji wa diode, na udhibiti hutoa nishati kwa kidhibiti cha LED na matrix ya LED. Kidhibiti cha LED kinaweza kutuma kiotomati viwango vya juu na vya chini kwa vipindi fulani, kubadilisha matrix ya RGB ya LED kati ya kufungwa (taa imewashwa) na kufunguliwa (taa imezimwa), ili iweze kutoa samawati, manjano, kijani kibichi, zambarau, bluu, nyekundu, na. mwanga mweupe. Moduli isiyotumia waya inawajibika kuunganisha kwenye kipanga njia cha Wi-Fi, kupokea na kuripoti hali ya taa mahiri, na kutuma amri za kudhibiti LED.
Kielelezo 2.2. Mwanga mahiri ulioiga
Katika maendeleo ya mapema stage, unaweza kuiga mwanga mahiri kwa kutumia ubao wa ESP32-C3DevKitM-1 iliyounganishwa na RGB LED lamp shanga (ona Mchoro 2.2). Lakini unapaswa
14 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
kumbuka kuwa hii sio njia pekee ya kukusanya taa nzuri. Muundo wa maunzi wa mradi katika kitabu hiki una moduli isiyotumia waya (iliyo na ESP32-C3 iliyojengewa ndani), lakini si muundo kamili wa maunzi mahiri. Kwa kuongeza, Espressif pia inazalisha bodi ya maendeleo ya sauti ya ESP32-C3 ESP32C3-Lyra kwa ajili ya kudhibiti taa na sauti. Ubao una violesura vya maikrofoni na spika na inaweza kudhibiti vipande vya LED. Inaweza kutumika kutengeneza vipeperushi vya sauti vya bei ya chini, utendakazi wa hali ya juu na vipande vya mwanga wa midundo. Mchoro 2.3 unaonyesha bodi ya ESP32-C3Lyra iliyounganishwa na ukanda wa taa 40 za LED.
Kielelezo 2.3. ESP32-C3-Lyra iliyounganishwa na ukanda wa taa 40 za LED
Simu mahiri (Android/iOS) Mradi wa Smart Light unahusisha uundaji wa programu mahiri ya kusanidi na kudhibiti bidhaa mahiri za mwanga.
Vipanga njia vya Wi-Fi Vipanga njia vya Wi-Fi hubadilisha mawimbi ya mtandao yenye waya na mawimbi ya mtandao wa simu kuwa mawimbi ya mtandao yasiyotumia waya, kwa ajili ya kompyuta, simu mahiri, kompyuta kibao na vifaa vingine visivyotumia waya ili kuunganishwa kwenye mtandao. Kwa mfanoampna, mtandao mpana nyumbani unahitaji tu kuunganishwa kwenye kipanga njia cha Wi-Fi ili kufikia mtandao usiotumia waya wa vifaa vya Wi-Fi. Kiwango cha kawaida cha itifaki kinachotumika na vipanga njia vya Wi-Fi ni IEEE 802.11n, yenye TxRate ya wastani ya 300 Mbps, au 600 Mbps ya juu zaidi. Zinaendana nyuma na IEEE 802.11b na IEEE 802.11g. Chip ya ESP32-C3 ya Espressif inaauni IEEE 802.11b/g/n, kwa hivyo unaweza kuchagua kipanga njia cha bendi moja (2.4 GHz) au bendi-mbili (GHz 2.4 na GHz 5) kipanga njia cha Wi-Fi.
Mazingira ya ukuzaji wa kompyuta (Linux/macOS/Windows) yataanzishwa katika Sura ya 4. Sura ya 2. Utangulizi na Utekelezaji wa Miradi ya IoT 15.
2.2.4 Mchakato wa Maendeleo
Kielelezo 2.4. Hatua za kuendeleza mradi wa Smart Light
Muundo wa maunzi Muundo wa maunzi ya vifaa vya IoT ni muhimu kwa mradi wa IoT. Mradi kamili wa taa mahiri unakusudiwa kutoa lamp kufanya kazi chini ya usambazaji wa mains. Wazalishaji tofauti huzalisha lamps ya mitindo tofauti na aina za madereva, lakini moduli zao zisizo na waya kawaida huwa na kazi sawa. Ili kurahisisha mchakato wa ukuzaji wa mradi wa Smart Ligh, kitabu hiki kinashughulikia tu muundo wa maunzi na uundaji wa programu za moduli zisizotumia waya.
Usanidi wa jukwaa la wingu la IoT Ili kutumia majukwaa ya wingu ya IoT, unahitaji kusanidi miradi kwenye upande wa nyuma, kama vile kuunda bidhaa, kuunda vifaa, kuweka sifa za kifaa, n.k.
Ukuzaji wa programu iliyopachikwa kwa vifaa vya IoT Tekeleza utendakazi unaotarajiwa na ESP-IDF, SDK ya upande wa kifaa ya Espressif, ikijumuisha kuunganisha kwenye majukwaa ya wingu ya IoT, kutengeneza viendeshaji vya LED, na kuboresha programu dhibiti.
Utengenezaji wa programu za simu mahiri Tengeneza programu mahiri za mifumo ya Android na iOS ili kutambua usajili na kuingia kwa mtumiaji, udhibiti wa kifaa na vipengele vingine.
Uboreshaji wa kifaa cha IoT Mara uundaji msingi wa vitendaji vya kifaa vya IoT unapokamilika, unaweza kugeukia kazi za uboreshaji, kama vile uboreshaji wa nishati.
Upimaji wa uzalishaji wa wingi Fanya vipimo vya uzalishaji wa wingi kulingana na viwango vinavyohusiana, kama vile mtihani wa utendaji wa vifaa, mtihani wa kuzeeka, mtihani wa RF, nk.
Licha ya hatua zilizoorodheshwa hapo juu, mradi wa Smart Light sio lazima uwe chini ya utaratibu kama huo kwani kazi tofauti zinaweza pia kufanywa kwa wakati mmoja. Kwa mfanoample, programu iliyopachikwa na programu mahiri zinaweza kuendelezwa sambamba. Baadhi ya hatua pia zinaweza kuhitaji kurudiwa, kama vile uboreshaji wa kifaa cha IoT na majaribio ya uzalishaji kwa wingi.
16 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
2.3 Muhtasari
Katika sura hii, tulifafanua kwanza vipengele vya msingi na moduli za kazi za mradi wa IoT, kisha tukaanzisha kesi ya Smart Light kwa mazoezi, tukirejelea muundo wake, kazi, utayarishaji wa maunzi, na mchakato wa uundaji. Wasomaji wanaweza kupata makisio kutoka kwa mazoezi na kuwa na ujasiri wa kutekeleza miradi ya IoT na makosa ya chini katika siku zijazo.
Sura ya 2. Utangulizi na Utendaji wa Miradi ya IoT 17
18 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Sura ya 3
Utangulizi
kwa
ESP
Mtengenezaji wa mvua
Mtandao wa Mambo (IoT) unatoa uwezekano usio na mwisho wa kubadilisha jinsi watu wanavyoishi, lakini maendeleo ya uhandisi wa IoT yamejaa changamoto. Kwa mawingu ya umma, watengenezaji wa terminal wanaweza kutekeleza utendakazi wa bidhaa kupitia suluhisho zifuatazo:
Kulingana na majukwaa ya wingu ya watoa suluhisho Kwa njia hii, wazalishaji wa mwisho wanahitaji tu kuunda maunzi ya bidhaa, kisha kuunganisha maunzi kwenye wingu kwa kutumia moduli ya mawasiliano iliyotolewa, na kusanidi kazi za bidhaa kwa kufuata miongozo. Hii ni mbinu bora kwa kuwa inaondoa hitaji la usanidi wa upande wa seva na utendakazi na matengenezo (O&M). Inaruhusu wazalishaji wa terminal kuzingatia muundo wa vifaa bila kuzingatia utekelezaji wa wingu. Hata hivyo, suluhu kama hizo (k.m., programu dhibiti ya kifaa na Programu) kwa ujumla si chanzo huria, kwa hivyo utendakazi wa bidhaa utadhibitiwa na jukwaa la wingu la mtoa huduma ambalo haliwezi kubinafsishwa. Wakati huo huo, data ya mtumiaji na kifaa pia ni ya jukwaa la wingu.
Kulingana na bidhaa za wingu Katika suluhisho hili, baada ya kukamilisha muundo wa vifaa, wazalishaji wa terminal hawahitaji tu kutekeleza kazi za wingu kwa kutumia bidhaa moja au zaidi za wingu zinazotolewa na wingu la umma, lakini pia wanahitaji kuunganisha vifaa na wingu. Kwa mfanoample, ili kuungana na Amazon Web Huduma (AWS), watengenezaji wa vifaa vya mwisho wanahitaji kutumia bidhaa za AWS kama vile Amazon API Gateway, AWS IoT Core, na AWS Lambda ili kuwezesha ufikiaji wa kifaa, udhibiti wa mbali, uhifadhi wa data, usimamizi wa mtumiaji na kazi zingine za kimsingi. Sio tu inawauliza watengenezaji wa mwisho kutumia na kusanidi bidhaa za wingu kwa uelewa wa kina na uzoefu wa hali ya juu, lakini pia inawahitaji kuzingatia gharama ya ujenzi na matengenezo kwa mwanzo na baadaye.tagHii inaleta changamoto kubwa kwa nishati na rasilimali za kampuni.
Ikilinganishwa na mawingu ya umma, mawingu ya kibinafsi kawaida hujengwa kwa miradi na bidhaa maalum. Wasanidi wa kibinafsi wa wingu hupewa kiwango cha juu zaidi cha uhuru katika muundo wa itifaki na utekelezaji wa mantiki ya biashara. Watengenezaji wa vituo wanaweza kutengeneza bidhaa na miundo ya kubuni watakavyo, na kuunganisha kwa urahisi na kuwezesha data ya mtumiaji. Kuchanganya usalama wa juu, uimara na kuegemea kwa wingu la umma na advantages of private cloud, Espressif ilizindua ESP
19
RainMaker, suluhisho la wingu la kibinafsi lililojumuishwa kwa undani kulingana na wingu la Amazon. Watumiaji wanaweza kupeleka ESP RainMaker na kuunda wingu la faragha kwa kutumia akaunti ya AWS.
3.1 ESP RainMaker ni nini?
ESP RainMaker ni jukwaa kamili la AIoT lililojengwa na bidhaa nyingi za AWS zilizokomaa. Inatoa huduma mbalimbali zinazohitajika kwa ajili ya uzalishaji wa wingi kama vile ufikiaji wa wingu wa kifaa, uboreshaji wa kifaa, udhibiti wa mazingira nyuma, kuingia kwa wengine, ujumuishaji wa sauti na usimamizi wa watumiaji. Kwa kutumia Hifadhi ya Programu Isiyo na Seva (SAR) iliyotolewa na AWS, watengenezaji wa vifaa vya mwisho wanaweza kupeleka ESP RainMaker kwa haraka kwenye akaunti zao za AWS, ambayo ni ya muda na ni rahisi kufanya kazi. Inasimamiwa na kudumishwa na Espressif, SAR inayotumiwa na ESP RainMaker huwasaidia wasanidi programu kupunguza gharama za matengenezo ya wingu na kuharakisha uundaji wa bidhaa za AIoT, hivyo kujenga suluhu za AIoT salama, thabiti na zinazoweza kubinafsishwa. Mchoro 3.1 unaonyesha usanifu wa ESP RainMaker.
Kielelezo 3.1. Usanifu wa ESP RainMaker
Seva ya umma ya ESP RainMaker na Espressif ni ya bure kwa wapenda ESP, waundaji na waelimishaji wote kwa tathmini ya suluhisho. Wasanidi programu wanaweza kuingia na akaunti za Apple, Google, au GitHub, na kuunda haraka prototypes zao za programu za IoT. Seva ya umma inaunganisha Alexa na Google Home, na hutoa huduma za udhibiti wa sauti, ambazo zinasaidiwa na Alexa Skill na Google Actions. Utendakazi wake wa utambuzi wa kisemantiki pia unawezeshwa na wahusika wengine. Vifaa vya IoT vya RainMaker hujibu tu kwa vitendo maalum. Kwa orodha kamili ya amri za sauti zinazotumika, tafadhali angalia mifumo ya wahusika wengine. Kwa kuongezea, Espressif inatoa Programu ya RainMaker ya umma kwa watumiaji kudhibiti bidhaa kupitia simu mahiri. 20 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
3.2 Utekelezaji wa ESP RainMaker
Kama inavyoonyeshwa kwenye Mchoro 3.2, ESP RainMaker ina sehemu nne: · Huduma ya Kudai, kuwezesha vifaa vya RainMaker kupata vyeti kwa urahisi. · RainMaker Cloud (pia inajulikana kama wingu backend), kutoa huduma kama vile kuchuja ujumbe, usimamizi wa mtumiaji, hifadhi ya data na miunganisho ya watu wengine. · RainMaker Agent, kuwezesha vifaa vya RainMaker kuunganishwa kwenye RainMaker Cloud. · Mteja wa RainMaker (hati za Programu ya RainMaker au CLI), kwa utoaji, kuunda mtumiaji, uhusiano na udhibiti wa kifaa, n.k.
Kielelezo 3.2. Muundo wa ESP RainMaker
ESP RainMaker hutoa seti kamili ya zana za ukuzaji wa bidhaa na uzalishaji wa wingi, ikijumuisha: RainMaker SDK.
RainMaker SDK inategemea ESP-IDF na hutoa msimbo wa chanzo wa wakala wa upande wa kifaa na API za C zinazohusiana kwa ajili ya kutengeneza programu dhibiti. Wasanidi wanahitaji tu kuandika mantiki ya programu na kuacha mengine kwenye mfumo wa RainMaker. Kwa maelezo zaidi kuhusu API za C, tafadhali tembelea https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Toleo la umma la RainMaker App huruhusu wasanidi programu kukamilisha utoaji wa kifaa, na kudhibiti na kuuliza hali ya vifaa (k.m., bidhaa mahiri za taa). Inapatikana kwenye duka za programu za iOS na Android. Kwa maelezo zaidi, tafadhali rejelea Sura ya 10. REST APIs REST APIs husaidia watumiaji kuunda programu zao zinazofanana na RainMaker App. Kwa maelezo zaidi, tafadhali tembelea https://swaggerapis.rainmaker.espressif.com/.
Sura ya 3. Utangulizi wa ESP RainMaker 21
API za Python CLI inayotokana na chatu, inayokuja na RainMaker SDK, imetolewa ili kutekeleza utendakazi wote sawa na vipengele vya simu mahiri. Kwa habari zaidi kuhusu API za Python, tafadhali tembelea https://bookc3.espressif.com/rm/python-api-reference.
Msimamizi wa CLI CLI, aliye na kiwango cha juu zaidi cha ufikiaji, hutolewa kwa utumiaji wa faragha wa ESP RainMaker ili kutoa vyeti vya kifaa kwa wingi.
3.2.1 Huduma ya Madai
Mawasiliano yote kati ya vifaa vya RainMaker na mazingira ya nyuma ya wingu hufanywa kupitia MQTT+TLS. Katika muktadha wa ESP RainMaker, "Kudai" ni mchakato ambapo vifaa hupata cheti kutoka kwa Huduma ya Madai ili kuunganishwa kwenye mazingira ya nyuma ya wingu. Kumbuka kuwa Huduma ya Kudai inatumika tu kwa huduma ya umma ya RainMaker, ilhali kwa matumizi ya kibinafsi, vyeti vya kifaa vinahitaji kuzalishwa kwa wingi kupitia Msimamizi wa CLI. ESP RainMaker inasaidia aina tatu za Huduma ya Kudai: Kujidai
Kifaa chenyewe huchukua vyeti kupitia ufunguo wa siri uliopangwa awali katika eFuse baada ya kuunganisha kwenye Mtandao. Madai Yanayoendeshwa na Mwenyeji Vyeti hupatikana kutoka kwa mpangishi wa ukuzaji kwa akaunti ya RainMaker. Kudai Kusaidiwa Vyeti hupatikana kupitia programu za simu mahiri wakati wa utoaji.
3.2.2 Wakala wa kutengeneza mvua
Kielelezo 3.3. Muundo wa RainMaker SDK Kazi ya msingi ya RainMaker Agent ni kutoa muunganisho na kusaidia safu ya programu kuchakata data ya wingu ya uplink/downlink. Imejengwa kupitia RainMaker SDK 22 ESP32-C3 Wireless Adventure: Mwongozo wa Kina wa IoT.
na kuendelezwa kulingana na mfumo uliothibitishwa wa ESP-IDF, kwa kutumia vijenzi vya ESP-IDF kama vile RTOS, NVS, na MQTT. Mchoro 3.3 unaonyesha muundo wa RainMaker SDK.
RainMaker SDK inajumuisha vipengele viwili vikuu.
Muunganisho
i. Kushirikiana na Huduma ya Madai ili kupata vyeti vya kifaa.
ii. Kuunganisha kwenye mazingira ya nyuma ya wingu kwa kutumia itifaki salama ya MQTT ili kutoa muunganisho wa mbali na kutekeleza udhibiti wa mbali, kuripoti ujumbe, usimamizi wa mtumiaji, usimamizi wa kifaa, n.k. Inatumia kijenzi cha MQTT katika ESP-IDF kwa chaguomsingi na hutoa safu ya uondoaji ili kusano na nyingine. mwingi wa itifaki.
iii. Kutoa kipengee cha utoaji wa wifi kwa ajili ya muunganisho na utoaji wa Wi-Fi, esp https ota kipengele kwa ajili ya masasisho ya OTA, na esp kijenzi cha ctrl cha ndani kwa ugunduzi na muunganisho wa kifaa cha ndani. Malengo haya yote yanaweza kupatikana kupitia usanidi rahisi.
Usindikaji wa data
i. Kuhifadhi vyeti vya kifaa vilivyotolewa na Huduma ya Kudai na data inayohitajika wakati wa kuendesha RainMaker, kwa chaguo-msingi kwa kutumia kiolesura kilichotolewa na kipengele cha nvs flash, na kutoa API kwa wasanidi programu kwa matumizi ya moja kwa moja.
ii. Kwa kutumia utaratibu wa kupiga tena simu kuchakata data ya wingu ya uplink/downlink na kufungua kiotomatiki data kwenye safu ya programu kwa ajili ya kuchakatwa kwa urahisi na wasanidi programu. Kwa mfanoampna, SDK ya RainMaker hutoa miingiliano tajiri ya kuanzisha data ya TSL (Lugha ya Uainisho wa Kitu), ambayo inahitajika ili kufafanua miundo ya TSL ili kuelezea vifaa vya IoT na kutekeleza utendakazi kama vile muda, muda uliosalia na udhibiti wa sauti. Kwa vipengele vya msingi vya mwingiliano kama vile kuweka muda, RainMaker SDK hutoa suluhisho lisilo na usanidi ambalo linaweza kuwashwa kwa urahisi inapohitajika. Kisha, RainMaker Agent itachakata data moja kwa moja, kuituma kwa wingu kupitia mada husika ya MQTT, na kurudisha nyuma mabadiliko ya data katika mazingira ya nyuma ya wingu kupitia utaratibu wa kupiga tena simu.
3.2.3 Wingu Backend
Mazingira ya nyuma ya wingu yamejengwa kwenye AWS Serverless Computing na kupatikana kupitia AWS Cognito (mfumo wa usimamizi wa kitambulisho), Amazon API Gateway, AWS Lambda (huduma ya kompyuta isiyo na seva), Amazon DynamoDB (database ya NoSQL), AWS IoT Core (msingi wa ufikiaji wa IoT ambao hutoa ufikiaji wa MQTT. na kuchuja kanuni), Huduma ya Barua Pepe rahisi ya Amazon (huduma rahisi ya barua pepe ya SES), Amazon CloudFront (mtandao wa utoaji wa haraka), Huduma ya Foleni ya Amazon (upangaji wa ujumbe wa SQS), na Amazon S3 (huduma ya kuhifadhi ndoo). Inalenga kuongeza usalama na uboreshaji. Kwa kutumia ESP RainMaker, wasanidi programu wanaweza kudhibiti vifaa bila kuandika msimbo kwenye wingu. Ujumbe unaoripotiwa na vifaa hutumwa kwa uwazi
Sura ya 3. Utangulizi wa ESP RainMaker 23
wateja wa maombi au huduma zingine za wahusika wengine. Jedwali la 3.1 linaonyesha bidhaa na vipengele vya wingu vya AWS vinavyotumika katika mandharinyuma ya wingu, kukiwa na bidhaa na vipengele zaidi vinavyotengenezwa.
Jedwali 3.1. Bidhaa za wingu za AWS na vitendakazi vinavyotumiwa na mazingira ya nyuma ya wingu
Bidhaa ya Wingu ya AWS Inatumiwa na RainMaker
Kazi
Utambuzi wa AWS
Kusimamia kitambulisho cha mtumiaji na kusaidia kuingia kwa wahusika wengine
AWS Lambda
Utekelezaji wa mantiki ya msingi ya biashara ya wingu backend
Data ya mfululizo wa wakati wa Amazon
Amazon DynamoDB Inahifadhi habari za kibinafsi za wateja
Msingi wa AWS IoT
Kusaidia mawasiliano ya MQTT
Amazon SES
Kutoa huduma za kutuma barua pepe
Amazon CloudFront Kuongeza kasi ya usimamizi wa backend webufikiaji wa tovuti
Amazon SQS
Inasambaza ujumbe kutoka kwa AWS IoT Core
3.2.4 Mteja wa kutengeneza mvua
Wateja wa RainMaker, kama vile Programu na CLI, huwasiliana na mazingira ya nyuma ya wingu kupitia API za REST. Maelezo na maagizo ya kina kuhusu API za REST yanaweza kupatikana katika hati za Swagger zinazotolewa na Espressif. Mteja wa programu ya rununu ya RainMaker inapatikana kwa mifumo ya iOS na Android. Huruhusu utoaji, udhibiti na ushiriki wa kifaa, pamoja na kuunda na kuwezesha majukumu ya kuhesabu na kuunganisha kwenye mifumo ya watu wengine. Inaweza kupakia UI na ikoni kiotomatiki kulingana na usanidi ulioripotiwa na vifaa na kuonyesha kikamilifu TSL ya kifaa.
Kwa mfanoampna, ikiwa taa mahiri imeundwa kwenye RainMaker SDK ya zamani inayotolewaampKwa hivyo, ikoni na UI ya taa ya balbu itapakiwa kiotomatiki ugawaji utakapokamilika. Watumiaji wanaweza kubadilisha rangi na mwangaza wa mwanga kupitia kiolesura na kufikia udhibiti wa watu wengine kwa kuunganisha Alexa Smart Home Skill au Google Smart Home Actions kwenye akaunti zao za ESP RainMaker. Mchoro 3.4 unaonyesha ikoni na zamani wa UIampmwanga wa balbu mtawalia kwenye Alexa, Google Home na ESP RainMaker App.
24 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
(a) Mfample - Alexa
(b) Mfample – Google Home
(c) Mfample - ESP RainMaker
Kielelezo 3.4. Kutampmaelezo ya ikoni na UI ya taa ya balbu kwenye Alexa, Google Home na ESP RainMaker App
3.3 Mazoezi: Mambo Muhimu ya Kuendeleza na ESP RainMaker
Mara tu safu ya kiendesha kifaa itakapokamilika, wasanidi programu wanaweza kuanza kuunda miundo ya TSL na kuchakata data ya kuunganisha chini kwa kutumia API zinazotolewa na RainMaker SDK, na kuwasha huduma za msingi za ESP RainMaker kulingana na ufafanuzi na mahitaji ya bidhaa.
Sura ya 3. Utangulizi wa ESP RainMaker 25
Sehemu ya 9.4 ya kitabu hiki itaeleza utekelezaji wa taa mahiri ya LED katika RainMaker. Wakati wa utatuzi, wasanidi programu wanaweza kutumia zana za CLI katika RainMaker SDK kuwasiliana na mwanga mahiri (au piga simu API za REST kutoka Swagger).
Sura ya 10 itafafanua matumizi ya API za REST katika kutengeneza programu za simu mahiri. Maboresho ya OTA ya taa mahiri za LED yatashughulikiwa katika Sura ya 11. Ikiwa wasanidi programu wamewasha ufuatiliaji wa mbali wa ESP Insights, mandharinyuma ya usimamizi wa ESP RainMaker itaonyesha data ya ESP Insights. Maelezo yatawasilishwa katika Sura ya 15.
ESP RainMaker inasaidia uwekaji wa kibinafsi, ambao hutofautiana na seva ya umma ya RainMaker kwa njia zifuatazo:
Huduma ya Kudai Ili kuunda vyeti katika utumaji wa kibinafsi, inahitajika kutumia RainMaker Admin CLI badala ya Kudai. Kwa seva ya umma, wasanidi lazima wapewe haki za msimamizi ili kutekeleza uboreshaji wa programu, lakini haifai katika uwekaji wa kibiashara. Kwa hivyo, hakuna huduma tofauti ya uthibitishaji inayoweza kutolewa kwa ajili ya kujidai, wala haki za msimamizi kwa madai ya mpangishaji yanayoendeshwa au kusaidiwa.
Programu za simu Katika utumaji wa faragha, programu zinahitaji kusanidiwa na kukusanywa kando ili kuhakikisha kuwa mifumo ya akaunti haitumiki.
Kuingia kwa wahusika wengine na ujumuishaji wa sauti Wasanidi programu wanapaswa kusanidi kando kupitia akaunti za Google na Apple Developer ili kuwezesha kuingia kwa wahusika wengine, pamoja na ushirikiano wa Alexa Skill na Google Voice.
VIDOKEZO Kwa maelezo kuhusu utumiaji wa wingu, tafadhali tembelea https://customer.rainmaker.espressif. com. Kwa upande wa programu dhibiti, uhamishaji kutoka kwa seva ya umma hadi seva ya kibinafsi unahitaji tu kubadilisha vyeti vya kifaa, ambayo huboresha sana ufanisi wa uhamiaji na kupunguza gharama ya uhamishaji na utatuzi wa pili.
3.4 Vipengele vya ESP RainMaker
Vipengele vya ESP RainMaker vinalengwa hasa katika vipengele vitatu - usimamizi wa watumiaji, watumiaji wa mwisho, na wasimamizi. Vipengele vyote vinatumika katika seva za umma na za kibinafsi isipokuwa kama imeelezwa vinginevyo.
3.4.1 Usimamizi wa Mtumiaji
Vipengele vya usimamizi wa mtumiaji huruhusu watumiaji wa mwisho kujiandikisha, kuingia, kubadilisha nenosiri, kurejesha nywila, nk.
26 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Sajili na uingie Mbinu za usajili na kuingia zinazoungwa mkono na RainMaker ni pamoja na: · Kitambulisho cha barua pepe + Nenosiri · Nambari ya simu + Nenosiri · Akaunti ya Google · Akaunti ya Apple · Akaunti ya GitHub (seva ya umma pekee) · Akaunti ya Amazon (seva ya kibinafsi pekee)
KUMBUKA Jisajili kwa kutumia Google/Amazon inashiriki barua pepe ya mtumiaji na RainMaker. Jisajili kwa kutumia Apple inashiriki anwani ya dummy ambayo Apple inampa mtumiaji haswa kwa huduma ya RainMaker. Akaunti ya RainMaker itaundwa kiotomatiki kwa watumiaji wanaoingia kwa kutumia akaunti ya Google, Apple au Amazon kwa mara ya kwanza.
Badilisha nenosiri Inatumika kwa utambulisho wa Barua pepe/Nambari ya simu pekee. Vipindi vingine vyote vinavyotumika vitaondolewa baada ya nenosiri kubadilishwa. Kulingana na tabia ya AWS Cognito, vipindi vya kujiondoa vinaweza kukaa amilifu hadi saa 1.
Rejesha nenosiri Inatumika tu kwa nambari ya barua pepe ya kitambulisho/Nambari ya simu.
3.4.2 Vipengele vya Mtumiaji wa Mwisho
Vipengele vilivyo wazi kwa watumiaji wa hatima ni pamoja na udhibiti wa ndani na wa mbali na ufuatiliaji, kuratibu, kupanga kifaa katika vikundi, kushiriki kifaa, arifa zinazotumwa na programu hata wakati huitumii na miunganisho ya watu wengine.
Udhibiti na ufuatiliaji wa mbali · Usanidi wa hoja, thamani za vigezo, na hali ya muunganisho wa kifaa kimoja au vyote. · Weka vigezo vya kifaa kimoja au vingi.
Udhibiti wa ndani na ufuatiliaji Simu ya mkononi na kifaa vinahitaji kuunganishwa kwenye mtandao sawa kwa udhibiti wa ndani.
Kuratibu · Watumiaji huweka mapema vitendo fulani kwa wakati maalum. · Hakuna muunganisho wa Mtandao unaohitajika kwa kifaa wakati wa kutekeleza ratiba. · Mara moja au kurudia (kwa kubainisha siku) kwa kifaa kimoja au nyingi.
Upangaji wa kifaa Inaauni metadata ya mukhtasari ya ngazi mbalimbali ya Kikundi inaweza kutumika kuunda muundo wa Chumba cha Nyumbani.
Sura ya 3. Utangulizi wa ESP RainMaker 27
Kushiriki kifaa Kifaa kimoja au zaidi kinaweza kushirikiwa na mtumiaji mmoja au zaidi.
Arifa zinazotumwa na programu hata wakati huitumii Watumiaji wa mwisho watapokea arifa zinazotumwa na programu hata wakati huitumii kwa matukio kama vile · Kifaa/vifaa vipya vilivyoongezwa/kuondolewa · Kifaa kimeunganishwa kwenye wingu · Kifaa kimetenganishwa na wingu · Maombi ya kushiriki kifaa yameundwa/kukubaliwa/yamekataliwa · Ujumbe wa arifa ulioripotiwa na vifaa.
Viunganishi vya wahusika wengine Alexa na Msaidizi wa Google Voice hutumika kudhibiti vifaa vya RainMaker, ikiwa ni pamoja na taa, swichi, soketi, feni na vihisi joto.
3.4.3 Sifa za Msimamizi
Vipengele vya msimamizi huruhusu wasimamizi kutekeleza usajili wa kifaa, kupanga vifaa katika vikundi, na uboreshaji wa OTA, na view takwimu na data ya Maarifa ya ESP.
Usajili wa kifaa Tengeneza vyeti vya kifaa na ujisajili na Msimamizi wa CLI (seva ya faragha pekee).
Upangaji wa kifaa Unda vikundi dhahania au vilivyoundwa kulingana na maelezo ya kifaa (seva ya faragha pekee).
Maboresho ya Hewani (OTA) Pakia programu dhibiti kulingana na toleo na muundo, kwa kifaa kimoja au zaidi au kikundi Fuatilia, ghairi, au uhifadhi kwenye kumbukumbu kazi za OTA.
View takwimu Viewtakwimu zinazoweza kujumuisha: · Usajili wa kifaa (vyeti vilivyosajiliwa na msimamizi) · Uwezeshaji wa kifaa (kifaa kimeunganishwa kwa mara ya kwanza) · Akaunti za mtumiaji · Muungano wa kifaa
View Data ya Maarifa ya ESP Viewdata inayoweza kutumia Maarifa ya ESP ni pamoja na: · Hitilafu, maonyo na kumbukumbu maalum · Ripoti za kuacha kufanya kazi na uchanganuzi · Washa upya sababu · Vipimo kama vile matumizi ya kumbukumbu, RSSI, n.k. · Vipimo na vigezo maalum.
28 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
3.5 Muhtasari
Katika sura hii, tulianzisha baadhi ya tofauti kuu kati ya uwekaji wa umma wa RainMaker na uwekaji wa kibinafsi. Suluhisho la kibinafsi la ESP RainMaker lililozinduliwa na Espressif linategemewa sana na linaweza kupanuka. Chips zote za mfululizo wa ESP32 zimeunganishwa na kubadilishwa kwa AWS, ambayo hupunguza gharama kwa kiasi kikubwa. Wasanidi programu wanaweza kuzingatia uthibitishaji wa mfano bila kujifunza kuhusu bidhaa za wingu za AWS. Pia tulielezea utekelezaji na vipengele vya ESP RainMaker, na baadhi ya vipengele muhimu vya maendeleo kwa kutumia jukwaa.
Changanua ili kupakua ESP RainMaker ya Android Scan ili kupakua ESP RainMaker ya iOS
Sura ya 3. Utangulizi wa ESP RainMaker 29
30 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Sura ya Kuanzisha Mazingira ya 4 ya Maendeleo
Sura hii inaangazia ESP-IDF, mfumo rasmi wa ukuzaji wa programu kwa ESP32-C3. Tutaeleza jinsi ya kuweka mazingira kwenye mifumo mbalimbali ya uendeshaji, na kutambulisha muundo wa mradi na mfumo wa kujenga wa ESP-IDF, pamoja na matumizi ya zana zinazohusiana za maendeleo. Kisha tutawasilisha mchakato wa kuandaa na kuendesha wa zamaniample project, huku ukitoa maelezo ya kina ya logi ya matokeo katika kila stage.
4.1 ESP-IDF Zaidiview
ESP-IDF (Mfumo wa Maendeleo wa Espressif IoT) ni mfumo wa maendeleo wa IoT wa kituo kimoja unaotolewa na Teknolojia ya Espressif. Inatumia C/C++ kama lugha kuu ya ukuzaji na inasaidia ujumuishaji mtambuka chini ya mifumo ya uendeshaji ya kawaida kama vile Linux, Mac na Windows. Exampprogramu zilizojumuishwa katika kitabu hiki zinatengenezwa kwa kutumia ESP-IDF, ambayo inatoa vipengele vifuatavyo: · Viendeshaji vya kiwango cha mfumo wa SoC. ESP-IDF inajumuisha viendeshaji vya ESP32, ESP32-S2, ESP32-C3,
na chips nyingine. Viendeshaji hivi hujumuisha maktaba ya kiwango cha chini cha pembeni (LL), maktaba ya safu ya uondoaji ya maunzi (HAL), usaidizi wa RTOS na programu ya kiendeshi cha tabaka la juu, n.k. · Vipengele muhimu. ESP-IDF inajumuisha vipengele vya msingi vinavyohitajika kwa maendeleo ya IoT. Hii ni pamoja na rafu nyingi za itifaki za mtandao kama vile HTTP na MQTT, mfumo wa usimamizi wa nishati yenye urekebishaji wa mzunguko unaobadilika, na vipengele kama vile Usimbaji Fiche wa Flash na Secure Boot, n.k. · Zana za ukuzaji na uzalishaji. ESP-IDF hutoa zana zinazotumika kwa kawaida za kujenga, flash, na utatuzi wakati wa ukuzaji na uzalishaji wa wingi (ona Mchoro 4.1), kama vile mfumo wa ujenzi kulingana na CMake, msururu wa zana za ujumuishaji kulingana na GCC, na J.TAG zana ya utatuzi kulingana na OpenOCD, n.k. Inafaa kukumbuka kuwa msimbo wa ESP-IDF hufuata hasa leseni ya programu huria ya Apache 2.0. Watumiaji wanaweza kutengeneza programu za kibinafsi au za kibiashara bila vizuizi huku wakizingatia masharti ya leseni ya programu huria. Zaidi ya hayo, watumiaji hupewa leseni za kudumu za hataza bila malipo, bila wajibu wa kufungua chanzo marekebisho yoyote yanayofanywa kwenye msimbo wa chanzo.
31
Kielelezo cha 4.1.
Kujenga, kuwaka, na kurekebisha-
zana za maendeleo na uzalishaji wa wingi
4.1.1 Matoleo ya ESP-IDF
Nambari ya ESP-IDF inapangishwa kwenye GitHub kama mradi wa chanzo-wazi. Kwa sasa, kuna matoleo makuu matatu yanayopatikana: v3, v4, na v5. Kila toleo kuu kwa kawaida huwa na upotoshaji mbalimbali, kama vile v4.2, v4.3, na kadhalika. Mifumo ya Espressif huhakikisha usaidizi wa miezi 30 wa kurekebisha hitilafu na alama za usalama kwa kila toleo ndogo lililotolewa. Kwa hivyo, masahihisho ya ubadilishaji pia hutolewa mara kwa mara, kama vile v4.3.1, v4.2.2, n.k. Jedwali 4.1 linaonyesha hali ya usaidizi wa matoleo tofauti ya ESP-IDF kwa chip za Espressif, ikionyesha kama ziko katika toleo la awali.view stage (kutoa msaada kwa preview matoleo, ambayo yanaweza kukosa vipengele au nyaraka fulani) au yanaungwa mkono rasmi.
Jedwali 4.1. Hali ya usaidizi wa matoleo tofauti ya ESP-IDF kwa chipsi za Espressif
Mfululizo ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 inaungwa mkono
v4.2 mkono mkono
v4.3 mkono mkono mkono
v4.4 mkono mkono mkono mkono
kablaview
v5.0 mkono mkono mkono mkono mkono kablaview
32 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Marudio ya matoleo makuu mara nyingi huhusisha marekebisho ya muundo wa mfumo na masasisho ya mfumo wa mkusanyiko. Kwa mfanoample, badiliko kuu kutoka v3.* hadi v4.* lilikuwa uhamishaji wa taratibu wa mfumo wa kujenga kutoka Make hadi CMake. Kwa upande mwingine, marudio ya matoleo madogo kwa kawaida hujumuisha kuongezwa kwa vipengele vipya au usaidizi wa chipsi mpya.
Ni muhimu kutofautisha na kuelewa uhusiano kati ya matoleo thabiti na matawi ya GitHub. Matoleo yaliyo na lebo ya v*.* au v*.*.* yanawakilisha matoleo thabiti ambayo yamefaulu majaribio kamili ya ndani na Espressif. Baada ya kurekebishwa, msimbo, msururu wa zana, na hati za kutolewa za toleo lile lile hubakia bila kubadilika. Walakini, matawi ya GitHub (k.m., tawi la kutolewa/v4.3) hupitia ahadi za mara kwa mara, mara nyingi kila siku. Kwa hivyo, vijisehemu viwili vya msimbo vilivyo chini ya tawi moja vinaweza kutofautiana, na hivyo kulazimu wasanidi programu kusasisha msimbo wao mara moja ipasavyo.
4.1.2 Mtiririko wa Git wa ESP-IDF
Espressif inafuata mtiririko maalum wa Git wa ESP-IDF, ulioainishwa kama ifuatavyo:
· Mabadiliko mapya yanafanywa kwenye tawi kuu, ambalo hutumika kama tawi kuu la maendeleo. Toleo la ESP-IDF kwenye tawi kuu daima hubeba -dev tag ili kuonyesha kuwa inaendelezwa kwa sasa, kama vile v4.3-dev. Mabadiliko kwenye tawi la bwana kwanza yatakuwa reviewed na kujaribiwa katika hazina ya ndani ya Espressif, na kisha kusukumwa hadi GitHub baada ya majaribio ya kiotomatiki kukamilika.
· Mara tu toleo jipya linapokamilisha uundaji wa vipengele kwenye tawi kuu na kukidhi vigezo vya kuingia katika jaribio la beta, hubadilika hadi tawi jipya, kama vile kutolewa/ v4.3. Aidha, tawi hili jipya ni tagged kama toleo la awali, kama v4.3-beta1. Watengenezaji wanaweza kurejelea jukwaa la GitHub ili kufikia orodha kamili ya matawi na tags kwa ESP-IDF. Ni muhimu kutambua kwamba toleo la beta (toleo la kabla ya kutolewa) bado linaweza kuwa na idadi kubwa ya masuala yanayojulikana. Toleo la beta linapofanyiwa majaribio ya mara kwa mara, urekebishaji wa hitilafu huongezwa kwa toleo hili na tawi kuu kwa wakati mmoja. Wakati huo huo, tawi kuu linaweza kuwa tayari limeanza kutengeneza vipengele vipya vya toleo linalofuata. Jaribio linapokaribia kukamilika, lebo ya mgombeaji (rc) huongezwa kwenye tawi, kuonyesha kwamba inaweza kutumika katika toleo rasmi, kama vile v4.3-rc1. Katika stage, tawi linasalia kuwa toleo la awali.
· Ikiwa hakuna hitilafu kuu zinazogunduliwa au kuripotiwa, toleo la awali la toleo hatimaye hupokea lebo ya toleo kuu (k.m., v5.0) au lebo ya toleo dogo (k.m., v4.3) na kuwa toleo rasmi la toleo, ambalo limerekodiwa. katika ukurasa wa maelezo ya kutolewa. Baadaye, hitilafu zozote zilizotambuliwa katika toleo hili hurekebishwa kwenye tawi la toleo. Baada ya majaribio ya mikono kukamilika, tawi hupewa lebo ya toleo la kurekebisha hitilafu (k.m., v4.3.2), ambayo pia inaonekana kwenye ukurasa wa maelezo ya toleo.
Sura ya 4. Kuweka Mazingira ya Maendeleo 33
4.1.3 Kuchagua Toleo Linalofaa
Kwa kuwa ESP-IDF ilianza rasmi kuunga mkono ESP32-C3 kutoka toleo la v4.3, na v4.4 bado haijatolewa rasmi wakati wa kuandika kitabu hiki, toleo lililotumiwa katika kitabu hiki ni v4.3.2, ambalo ni toleo lililorekebishwa. ya v4.3. Hata hivyo, ni muhimu kutambua kwamba wakati unaposoma kitabu hiki, matoleo ya v4.4 au mapya zaidi yanaweza kuwa tayari yanapatikana. Wakati wa kuchagua toleo, tunapendekeza yafuatayo:
· Kwa wasanidi wa kiwango cha kuingia, inashauriwa kuchagua toleo thabiti la v4.3 au toleo lake lililosahihishwa, ambalo linalingana na toleo la zamani.amptoleo lililotumika katika kitabu hiki.
· Kwa madhumuni ya uzalishaji kwa wingi, inashauriwa kutumia toleo la hivi punde thabiti ili kufaidika na usaidizi wa kiufundi uliosasishwa.
· Ikiwa una nia ya kujaribu chips mpya au kuchunguza vipengele vipya vya bidhaa, tafadhali tumia tawi kuu. Toleo la hivi punde lina vipengele vyote vya hivi punde, lakini kumbuka kuwa kunaweza kuwa na hitilafu zinazojulikana au zisizojulikana.
· Ikiwa toleo thabiti linalotumika halijumuishi vipengele vipya unavyotaka na ungependa kupunguza hatari zinazohusiana na tawi kuu, zingatia kutumia tawi la toleo linalolingana, kama vile toleo/v4.4 tawi. Hazina ya GitHub ya Espressif itaunda kwanza tawi la toleo/v4.4 na baadaye kutoa toleo thabiti la v4.4 kulingana na picha mahususi ya kihistoria ya tawi hili, baada ya kukamilisha utayarishaji na majaribio ya vipengele vyote.
4.1.4 Zaidiview ya Saraka ya ESP-IDF SDK
SDK ya ESP-IDF ina saraka kuu mbili: esp-idf na .espressif. Ya kwanza ina msimbo wa chanzo wa hazina ya ESP-IDF files na hati za ujumuishaji, huku za mwisho huhifadhi minyororo ya zana za ujumuishaji na programu zingine. Kufahamiana na saraka hizi mbili kutasaidia wasanidi kutumia vyema rasilimali zinazopatikana na kuharakisha mchakato wa maendeleo. Muundo wa saraka ya ESP-IDF umeelezewa hapa chini:
(1) Saraka ya msimbo wa hazina wa ESP-IDF (/esp/esp-idf), kama inavyoonyeshwa kwenye Mchoro 4.2.
a. Vipengele vya saraka ya sehemu
Saraka hii ya msingi inaunganisha vipengele vingi muhimu vya programu vya ESP-IDF. Hakuna nambari ya mradi inayoweza kukusanywa bila kutegemea vipengee vilivyo ndani ya saraka hii. Inajumuisha usaidizi wa dereva kwa chips mbalimbali za Espressif. Kutoka kwa maktaba ya LL na miingiliano ya maktaba ya HAL ya vifaa vya pembeni hadi Dereva ya kiwango cha juu na Virtual File Usaidizi wa safu ya Mfumo (VFS), watengenezaji wanaweza kuchagua vipengele vinavyofaa katika viwango tofauti kwa mahitaji yao ya maendeleo. ESP-IDF pia inasaidia rafu nyingi za kawaida za itifaki za mtandao kama vile TCP/IP, HTTP, MQTT, WebSoketi, n.k. Wasanidi wanaweza kutumia violesura vinavyojulikana kama Soketi kuunda programu za mtandao. Vipengele vinatoa ufahamu-
34 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Kielelezo 4.2. Saraka ya nambari ya hazina ya ESP-IDF
utendakazi kamili na inaweza kuunganishwa kwa urahisi katika programu, kuruhusu wasanidi programu kuzingatia tu mantiki ya biashara. Baadhi ya vipengele vya kawaida ni pamoja na: · dereva: Sehemu hii ina programu za viendeshi vya pembeni za Espressif mbalimbali
mfululizo wa chip, kama vile GPIO, I2C, SPI, UART, LEDC (PWM), n.k. Programu za viendeshi vya pembeni katika kipengele hiki hutoa miingiliano ya muhtasari inayojitegemea ya chip. Kila pembeni ina kichwa cha kawaida file (kama vile gpio.h), kuondoa hitaji la kushughulikia maswali tofauti ya usaidizi mahususi kwa chip. · esp_wifi: Wi-Fi, kama sehemu maalum ya pembeni, inachukuliwa kama sehemu tofauti. Inajumuisha API nyingi kama vile uanzishaji wa modi mbalimbali za viendeshaji vya Wi-Fi, usanidi wa vigezo, na uchakataji wa tukio. Baadhi ya utendakazi wa sehemu hii hutolewa kwa namna ya maktaba za kiungo tuli. ESP-IDF pia hutoa nyaraka za kiendeshi za kina kwa urahisi wa utumiaji.
Sura ya 4. Kuweka Mazingira ya Maendeleo 35
· freertos: Sehemu hii ina msimbo kamili wa FreeRTOS. Kando na kutoa usaidizi wa kina kwa mfumo huu wa uendeshaji, Espressif pia imepanua usaidizi wake kwa chips mbili-msingi. Kwa chips mbili-msingi kama ESP32 na ESP32-S3, watumiaji wanaweza kuunda kazi kwenye cores maalum.
b. Hati za saraka ya hati
Saraka hii ina hati za ukuzaji zinazohusiana na ESP-IDF, ikijumuisha Mwongozo wa Anza, Mwongozo wa Marejeleo ya API, Mwongozo wa Maendeleo, n.k.
KUMBUKA Baada ya kukusanywa na zana otomatiki, yaliyomo kwenye saraka hii yanatumwa kwa https://docs.espressif.com/projects/esp-idf. Tafadhali hakikisha kuwa umebadilisha lengo la hati hadi ESP32-C3 na uchague toleo lililobainishwa la ESP-IDF.
c. Zana za zana za hati
Saraka hii ina zana za ujumuishaji zinazotumika sana kama vile idf.py, na zana ya kidhibiti cha ufuatiliaji idf_monitor.py, n.k. Saraka ndogo ya cmake pia ina hati ya msingi. fileya mfumo wa utungaji, unaotumika kama msingi wa utekelezaji wa sheria za utungaji wa ESP-IDF. Wakati wa kuongeza anuwai za mazingira, yaliyomo ndani ya saraka ya zana huongezwa kwa utofauti wa mazingira ya mfumo, ikiruhusu idf.py kutekelezwa moja kwa moja chini ya njia ya mradi.
d. Kwa mfanoampsaraka ya programu exampchini
Saraka hii inajumuisha mkusanyiko mkubwa wa zamani wa ESP-IDFample programu zinazoonyesha matumizi ya sehemu ya API. Examples zimepangwa katika saraka ndogo tofauti kulingana na kategoria zao:
· anza: Saraka hii ndogo inajumuisha ex wa kiwango cha kuingiaampkama vile "hello world" na "blink" ili kuwasaidia watumiaji kufahamu mambo ya msingi.
· bluetooth: Unaweza kupata ex inayohusiana na Bluetoothamples hapa, ikijumuisha Bluetooth LE Mesh, Bluetooth LE HID, BluFi, na zaidi.
· wifi: Saraka hii ndogo inaangazia zamani wa Wi-Fiamples, ikijumuisha programu za kimsingi kama vile Wi-Fi SoftAP, Kituo cha Wi-Fi, espnow, pamoja na itifaki ya mawasiliano ya umiliki wa zamani.ampkidogo kutoka kwa Espressif. Pia inajumuisha safu ya programu nyingi za zamaniamples kulingana na Wi-Fi, kama vile Iperf, Sniffer, na Smart Config.
· viambajengo: Saraka hii ndogo ya kina imegawanywa zaidi katika folda nyingi kulingana na majina ya pembeni. Ina haswa dereva wa pembeni wa zamaniamples kwa chips za Espressif, na kila example inayoangazia ma-ex kadhaaampchini. Kwa mfano, saraka ndogo ya gpio inajumuisha ex mbiliampchini: kibodi ya matrix ya GPIO na GPIO. Ni muhimu kutambua kwamba sio wote wa zamaniampLes katika saraka hii inatumika kwa ESP32-C3.
36 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Kwa mfanoample, wa zamaniamples in usb/host inatumika tu kwa vifaa vya pembeni vilivyo na maunzi ya Seva ya USB (kama vile ESP32-S3), na ESP32-C3 haina kifaa hiki cha pembeni. Mfumo wa ujumuishaji hutoa vidokezo wakati wa kuweka lengo. SOMA file ya kila example anaorodhesha chips zinazotumika. · itifaki: Saraka hii ndogo ina examples kwa itifaki mbalimbali za mawasiliano, ikiwa ni pamoja na MQTT, HTTP, Seva ya HTTP, PPPoS, Modbus, mDNS, SNTP, inayojumuisha aina mbalimbali za itifaki ya mawasiliano ya zamani.ampkidogo inahitajika kwa maendeleo ya IoT. · utoaji: Hapa, utapata utoaji examples kwa mbinu tofauti, kama vile utoaji wa Wi-Fi na utoaji wa Bluetooth LE. · mfumo: Saraka hii ndogo inajumuisha utatuzi wa mfumo wa zamaniamples (k.m., ufuatiliaji wa rafu, ufuatiliaji wa wakati wa utekelezaji, ufuatiliaji wa kazi), usimamizi wa nishati k.mamples (k.m., hali mbalimbali za usingizi, vichakataji-shirikishi), na k.mampLes zinazohusiana na vipengee vya kawaida vya mfumo kama vile terminal ya kiweko, kitanzi cha tukio, na kipima muda cha mfumo. · hifadhi: Ndani ya saraka hii ndogo, utagundua exampchini ya yote file mifumo na mifumo ya uhifadhi inayoungwa mkono na ESP-IDF (kama vile kusoma na kuandika kwa Flash, kadi ya SD na media zingine za uhifadhi), na vile vile vya zamani.amples ya hifadhi isiyo na tete (NVS), FatFS, SPIFFS na nyingine file shughuli za mfumo. · usalama: Saraka hii ndogo ina exampinayohusiana na usimbaji fiche wa flash. (2) Saraka ya mnyororo wa zana ya utungaji wa ESP-IDF (/.espressif), kama inavyoonyeshwa kwenye Mchoro 4.3.
Kielelezo 4.3. Saraka ya mnyororo wa zana ya utungaji wa ESP-IDF
Sura ya 4. Kuweka Mazingira ya Maendeleo 37
a. Dist ya saraka ya usambazaji wa programu
Mlolongo wa zana za ESP-IDF na programu nyingine husambazwa kwa namna ya vifurushi vilivyobanwa. Wakati wa mchakato wa usakinishaji, chombo cha usakinishaji hupakua kwanza kifurushi kilichoshinikizwa kwenye saraka ya dist, na kisha kuitoa kwenye saraka maalum. Baada ya usakinishaji kukamilika, yaliyomo kwenye saraka hii yanaweza kuondolewa kwa usalama.
b. Saraka ya mazingira ya Python ya python env
Toleo tofauti za ESP-IDF hutegemea matoleo maalum ya vifurushi vya Python. Kusakinisha vifurushi hivi moja kwa moja kwenye seva pangishi moja kunaweza kusababisha migogoro kati ya matoleo ya kifurushi. Ili kushughulikia hili, ESP-IDF hutumia mazingira ya mtandaoni ya Python kutenga matoleo tofauti ya vifurushi. Kwa utaratibu huu, wasanidi programu wanaweza kusakinisha matoleo mengi ya ESP-IDF kwenye seva pangishi moja na kubadili kwa urahisi kati yao kwa kuleta vibadilishio tofauti vya mazingira.
c. Zana za saraka ya zana za utungaji za ESP-IDF
Saraka hii ina zana za ujumuishaji mtambuka zinazohitajika ili kukusanya miradi ya ESP-IDF, kama vile zana za CMake, zana za ujenzi wa Ninja, na msururu wa zana za gcc ambao hutengeneza programu ya mwisho inayoweza kutekelezeka. Zaidi ya hayo, saraka hii huhifadhi maktaba ya kawaida ya lugha ya C/C++ pamoja na kichwa kinacholingana files. Ikiwa programu inarejelea kichwa cha mfumo file kama #pamoja na , msururu wa zana za ujumuishaji utapata stdio.h file ndani ya saraka hii.
4.2 Kuweka Mazingira ya Maendeleo ya ESP-IDF
Mazingira ya ukuzaji wa ESP-IDF inasaidia mifumo ya kawaida ya uendeshaji kama vile Windows, Linux, na macOS. Sehemu hii itatambulisha jinsi ya kuweka mazingira ya maendeleo kwenye kila mfumo. Inashauriwa kuendeleza ESP32-C3 kwenye mfumo wa Linux, ambayo itaanzishwa kwa undani hapa. Maagizo mengi yanatumika katika mifumo yote kwa sababu ya kufanana kwa zana za usanidi. Kwa hivyo, inashauriwa kusoma kwa uangalifu yaliyomo katika sehemu hii.
KUMBUKA Unaweza kurejelea hati za mtandaoni zinazopatikana katika https://bookc3.espressif.com/esp32c3, ambazo hutoa amri zilizotajwa katika sehemu hii.
4.2.1 Kuweka Mazingira ya Maendeleo ya ESP-IDF kwenye Linux
Zana za ukuzaji na utatuzi za GNU zinazohitajika kwa mazingira ya ukuzaji wa ESP-IDF ni asili ya mfumo wa Linux. Zaidi ya hayo, terminal ya mstari wa amri katika Linux ni yenye nguvu na ya kirafiki, na kuifanya kuwa chaguo bora kwa maendeleo ya ESP32-C3. Unaweza
38 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
chagua usambazaji wako wa Linux unaopendelea, lakini tunapendekeza kutumia Ubuntu au mifumo mingine ya Debianbased. Sehemu hii inatoa mwongozo wa kusanidi mazingira ya ukuzaji ya ESP-IDF kwenye Ubuntu 20.04.
1. Sakinisha vifurushi vinavyohitajika
Fungua terminal mpya na utekeleze amri ifuatayo ili kusakinisha vifurushi vyote muhimu. Amri itaruka kiotomatiki vifurushi ambavyo tayari vimesakinishwa.
$ sudo apt-get install git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
TIPS Unahitaji kutumia akaunti ya msimamizi na nenosiri kwa amri iliyo hapo juu. Kwa chaguo-msingi, hakuna taarifa itaonyeshwa wakati wa kuingiza nenosiri. Bonyeza tu kitufe cha "Ingiza" ili kuendelea na utaratibu.
Git ni zana muhimu ya usimamizi wa nambari katika ESP-IDF. Baada ya kufanikiwa kusanidi mazingira ya ukuzaji, unaweza kutumia git log amri kwa view mabadiliko yote ya msimbo yaliyofanywa tangu kuundwa kwa ESP-IDF. Kwa kuongeza, Git pia hutumiwa katika ESP-IDF ili kuthibitisha maelezo ya toleo, ambayo ni muhimu kwa kusakinisha mlolongo sahihi wa zana unaolingana na matoleo maalum. Pamoja na Git, zana zingine muhimu za mfumo ni pamoja na Python. ESP-IDF inajumuisha maandishi mengi ya otomatiki yaliyoandikwa kwa Python. Zana kama vile CMake, Ninja-build, na Ccache hutumiwa sana katika miradi ya C/C++ na hutumika kama mkusanyo chaguomsingi wa msimbo na zana za ujenzi katika ESP-IDF. libusb-1.0-0 na dfu-util ndio viendeshaji kuu vinavyotumiwa kwa mawasiliano ya serial ya USB na uchomaji wa programu dhibiti. Mara tu vifurushi vya programu vimesakinishwa, unaweza kutumia apt show amri kupata maelezo ya kina ya kila kifurushi. Kwa mfanoample, tumia apt show git kuchapisha maelezo ya zana ya Git.
Swali: Nini cha kufanya ikiwa toleo la Python halitumiki? J: ESP-IDF v4.3 inahitaji toleo la Python ambalo sio chini ya v3.6. Kwa matoleo ya zamani ya Ubuntu, tafadhali pakua na usakinishe toleo la juu zaidi la Python na uweke Python3 kama mazingira chaguo-msingi ya Chatu. Unaweza kupata maagizo ya kina kwa kutafuta neno la msingi update-alternatives python.
2. Pakua msimbo wa hazina wa ESP-IDF
Fungua terminal na uunda folda inayoitwa esp kwenye saraka yako ya nyumbani ukitumia amri ya mkdir. Unaweza kuchagua jina tofauti la folda ukipenda. Tumia amri ya cd kuingiza folda.
Sura ya 4. Kuweka Mazingira ya Maendeleo 39
$ mkdir -p /esp $ cd /esp
Tumia git clone amri kupakua nambari ya hazina ya ESP-IDF, kama inavyoonyeshwa hapa chini:
$ git clone -b v4.3.2 -recursive https://github.com/espressif/esp-idf.git
Katika amri hapo juu, parameter -b v4.3.2 inataja toleo la kupakua (katika kesi hii, toleo la 4.3.2). Kigezo -recursive huhakikisha kuwa hazina zote ndogo za ESP-IDF zinapakuliwa kwa kujirudia. Taarifa kuhusu hazina ndogo zinaweza kupatikana katika .gitmodules file.
3. Sakinisha mnyororo wa zana ya ukuzaji wa ESP-IDF
Espressif hutoa hati ya kiotomatiki install.sh ili kupakua na kusakinisha msururu wa zana. Hati hii hukagua toleo la sasa la ESP-IDF na mazingira ya mfumo wa uendeshaji, na kisha kupakua na kusakinisha toleo linalofaa la vifurushi vya zana za Python na minyororo ya zana za ujumuishaji. Njia chaguo-msingi ya usakinishaji kwa msururu wa zana ni /.espressif. Unachohitaji kufanya ni kwenda kwenye saraka ya esp-idf na kukimbia install.sh.
$ cd /esp/esp-idf $ ./install.sh
Ikiwa utasanikisha mnyororo wa zana kwa mafanikio, terminal itaonyesha:
Yote yamekamilika!
Kwa hatua hii, umefanikiwa kusanidi mazingira ya ukuzaji ya ESP-IDF.
4.2.2 Kuweka Mazingira ya Maendeleo ya ESP-IDF kwenye Windows
1. Pakua kisakinishi cha zana za ESP-IDF
VIDOKEZO Inapendekezwa kusanidi mazingira ya ukuzaji ya ESP-IDF kwenye Windows 10 au matoleo mapya zaidi. Unaweza kupakua kisakinishi kutoka https://dl.espressif.com/dl/esp-idf/. Kisakinishi pia ni programu ya chanzo-wazi, na msimbo wake wa chanzo unaweza kuwa viewed katika https: //github.com/espressif/idf-installer.
· Kisakinishi cha zana mtandaoni cha ESP-IDF
Kisakinishi hiki ni kidogo, kikiwa na ukubwa wa MB 4, na vifurushi vingine na msimbo vitapakuliwa wakati wa usakinishaji. Advantage ya kisakinishi mtandaoni ni kwamba sio tu kwamba vifurushi vya programu na msimbo vinaweza kupakuliwa inapohitajika wakati wa mchakato wa usakinishaji, lakini pia inaruhusu usakinishaji wa matoleo yote yanayopatikana ya ESP-IDF na tawi la hivi karibuni la msimbo wa GitHub (kama vile tawi kuu) . disadvantage ni kwamba inahitaji muunganisho wa mtandao wakati wa mchakato wa usakinishaji, ambayo inaweza kusababisha kushindwa kwa usakinishaji kutokana na matatizo ya mtandao.
40 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
· Kisakinishi cha zana za nje ya mtandao za ESP-IDF Kisakinishi hiki ni kikubwa zaidi, cha ukubwa wa takriban GB 1, na kina vifurushi vyote vya programu na msimbo unaohitajika kwa ajili ya kuweka mazingira. Advan kuutage ya kisakinishi cha nje ya mtandao ni kwamba inaweza kutumika kwenye kompyuta bila ufikiaji wa mtandao, na kwa ujumla ina kiwango cha juu cha mafanikio ya usakinishaji. Ikumbukwe kwamba kisakinishi cha nje ya mtandao kinaweza tu kusakinisha matoleo thabiti ya ESP-IDF yanayotambuliwa na v*.* au v*.*.*.
2. Endesha kisakinishi cha zana za ESP-IDF Baada ya kupakua toleo linalofaa la kisakinishi (chukua Zana za ESP-IDF Nje ya Mtandao 4.3.2 kwa mfanoample hapa), bonyeza mara mbili exe file kuzindua kiolesura cha usakinishaji cha ESP-IDF. Ifuatayo inaonyesha jinsi ya kusakinisha toleo thabiti la ESP-IDF v4.3.2 kwa kutumia kisakinishi cha nje ya mtandao.
(1) Katika kiolesura cha "Chagua lugha ya usakinishaji" kilichoonyeshwa kwenye Mchoro 4.4, chagua lugha itakayotumika kutoka kwenye orodha kunjuzi.
Kielelezo 4.4. kiolesura cha "Chagua lugha ya usakinishaji" (2) Baada ya kuchagua lugha, bofya "Sawa" ili kuunda kiolesura cha "Mkataba wa leseni"
(tazama Mchoro 4.5). Baada ya kusoma kwa uangalifu makubaliano ya leseni ya usakinishaji, chagua "Ninakubali makubaliano" na ubofye "Ifuatayo".
Kielelezo 4.5. Kiolesura cha "makubaliano ya leseni" Sura ya 4. Kuweka Mazingira ya Maendeleo 41
(3) Review usanidi wa mfumo katika kiolesura cha "Hundi ya mfumo wa usakinishaji kabla" (ona Mchoro 4.6). Angalia toleo la Windows na maelezo ya programu ya antivirus iliyosakinishwa. Bonyeza "Next" ikiwa vitu vyote vya usanidi ni vya kawaida. Vinginevyo, unaweza kubofya "logi kamili" kwa ufumbuzi kulingana na vitu muhimu.
Kielelezo 4.6. TIPS za kiolesura cha "Angalia mfumo kabla ya kusakinisha".
Unaweza kuwasilisha kumbukumbu kwa https://github.com/espressif/idf-installer/issues kwa usaidizi. (4) Chagua saraka ya ufungaji ya ESP-IDF. Hapa, chagua D:/.espressif, kama inavyoonyeshwa katika
Mchoro 4.7, na ubofye "Next". Tafadhali kumbuka kuwa .espressif hapa kuna saraka iliyofichwa. Baada ya ufungaji kukamilika, unaweza view yaliyomo maalum ya saraka hii kwa kufungua file meneja na kuonyesha vitu vilivyofichwa.
Kielelezo 4.7. Chagua saraka ya usakinishaji ya ESP-IDF 42 ESP32-C3 Wireless Adventure: Mwongozo Kamili wa IoT
(5) Angalia vipengele vinavyohitaji kusakinishwa, kama inavyoonyeshwa kwenye Mchoro 4.8. Inashauriwa kutumia chaguo-msingi, yaani, usakinishaji kamili, na kisha bofya "Next".
Kielelezo 4.8. Chagua vipengee vya kusakinisha (6) Thibitisha vijenzi vitakavyosakinishwa na ubofye "Sakinisha" ili kuanzisha kiotomatiki-
mchakato wa kukwama, kama inavyoonyeshwa kwenye Mchoro 4.9. Mchakato wa usakinishaji unaweza kudumu makumi ya dakika na upau wa maendeleo wa mchakato wa usakinishaji umeonyeshwa kwenye Mchoro 4.10. Tafadhali subiri kwa subira.
Kielelezo 4.9. Kujitayarisha kwa usakinishaji (7) Baada ya usakinishaji kukamilika, inashauriwa kuangalia “Sajili ESP-IDF
Zana zinaweza kutekelezwa kama vizuizi vya Windows Defender…” ili kuzuia programu ya kuzuia virusi kufuta files. Kuongeza vipengee vya kutengwa kunaweza pia kuruka scans za mara kwa mara na antivirus
Sura ya 4. Kuweka Mazingira ya Maendeleo 43
Kielelezo 4.10. Programu ya upau wa maendeleo ya usakinishaji, inaboresha sana ufanisi wa utungaji wa msimbo wa mfumo wa Windows. Bofya "Maliza" ili kukamilisha usakinishaji wa mazingira ya uendelezaji, kama inavyoonyeshwa kwenye Mchoro 4.11. Unaweza kuchagua kuangalia "Endesha ESP-IDF PowerShell mazingira" au "Endesha ESP-IDF amri ya haraka". Endesha kidirisha cha mkusanyo moja kwa moja baada ya usakinishaji ili kuhakikisha kuwa mazingira ya uendelezaji hufanya kazi kama kawaida.
Kielelezo 4.11. Usakinishaji umekamilika (8) Fungua mazingira ya usanidi yaliyosakinishwa katika orodha ya programu (ama ESP-IDF 4.3
Terminal ya CMD au ESP-IDF 4.3 PowerShell, kama inavyoonyeshwa kwenye Mchoro 4.12), na kigezo cha mazingira cha ESP-IDF kitaongezwa kiotomatiki wakati wa kufanya kazi kwenye terminal. Baada ya hapo, unaweza kutumia idf.py amri kwa shughuli. ESP-IDF 4.3 CMD iliyofunguliwa imeonyeshwa kwenye Mchoro 4.13. 44 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Kielelezo 4.12. Mazingira ya maendeleo imewekwa
Kielelezo 4.13. ESP-IDF 4.3 CMD
4.2.3 Kuweka Mazingira ya Maendeleo ya ESP-IDF kwenye Mac
Mchakato wa kusakinisha mazingira ya maendeleo ya ESP-IDF kwenye mfumo wa Mac ni sawa na ule kwenye mfumo wa Linux. Amri za kupakua nambari ya kumbukumbu na kusanikisha mnyororo wa zana ni sawa. Amri tu za kusanikisha vifurushi vya utegemezi ni tofauti kidogo. 1. Sakinisha vifurushi vya utegemezi Fungua terminal, na usakinishe bomba, zana ya usimamizi wa kifurushi cha Python, kwa kutekeleza amri ifuatayo:
% sudo rahisi kufunga bomba
Sakinisha Homebrew, zana ya usimamizi wa kifurushi cha macOS, kwa kutekeleza amri ifuatayo:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Sakinisha vifurushi vya utegemezi vinavyohitajika kwa kutekeleza amri ifuatayo:
% brew python3 install cmake ninja ccache dfu-util
2. Pakua msimbo wa hazina wa ESP-IDF Fuata maagizo yaliyotolewa katika sehemu ya 4.2.1 ili kupakua msimbo wa hazina wa ESP-IDF. Hatua ni sawa na kupakua kwenye mfumo wa Linux.
Sura ya 4. Kuweka Mazingira ya Maendeleo 45
3. Sakinisha mnyororo wa zana ya ukuzaji wa ESP-IDF
Fuata maagizo yaliyotolewa katika sehemu ya 4.2.1 ili kusakinisha mnyororo wa zana za ukuzaji wa ESP-IDF. Hatua ni sawa na za usakinishaji kwenye mfumo wa Linux.
4.2.4 Kusakinisha Msimbo wa VS
Kwa chaguomsingi, SDK ya ESP-IDF haijumuishi zana ya kuhariri msimbo (ingawa kisakinishi cha hivi punde zaidi cha ESP-IDF cha Windows kinatoa chaguo la kusakinisha ESP-IDF Eclipse). Unaweza kutumia zana yoyote ya kuhariri maandishi unayopenda kuhariri msimbo na kisha kuikusanya kwa kutumia amri za wastaafu.
Zana moja maarufu ya kuhariri msimbo ni Msimbo wa VS (Msimbo wa Studio inayoonekana), ambayo ni kihariri cha msimbo kisicholipishwa na chenye kipengele chenye kiolesura kinachofaa mtumiaji. Inatoa mbalimbali plugins ambayo hutoa utendaji kazi kama vile urambazaji wa msimbo, uangaziaji wa sintaksia, udhibiti wa toleo la Git, na ujumuishaji wa wastaafu. Zaidi ya hayo, Espressif imetengeneza programu-jalizi maalum inayoitwa Espressif IDF kwa Msimbo wa VS, ambayo hurahisisha usanidi wa mradi na utatuzi.
Unaweza kutumia amri ya nambari kwenye terminal ili kufungua folda ya sasa katika Msimbo wa VS. Vinginevyo, unaweza kutumia njia ya mkato ya Ctrl+ kufungua koni chaguo-msingi ya mfumo ndani ya Msimbo wa VS.
VIDOKEZO Inapendekezwa kutumia Msimbo wa VS kwa utengenezaji wa msimbo wa ESP32-C3. Pakua na usakinishe toleo jipya zaidi la Msimbo wa VS kwenye https://code.visualstudio.com/.
4.2.5 Utangulizi wa Mazingira ya Maendeleo ya Watu Wengine
Kando na mazingira rasmi ya ukuzaji wa ESP-IDF, ambayo kimsingi hutumia lugha ya C, ESP32-C3 pia inasaidia lugha zingine kuu za programu na anuwai ya mazingira ya maendeleo ya watu wengine. Baadhi ya chaguzi zinazojulikana ni pamoja na:
Arduino: jukwaa la chanzo-wazi la maunzi na programu, linalosaidia vidhibiti vidogo vidogo, ikiwa ni pamoja na ESP32-C3.
Inatumia lugha ya C++ na inatoa API iliyorahisishwa na sanifu, inayojulikana kama lugha ya Arduino. Arduino hutumiwa sana katika ukuzaji wa mfano na muktadha wa kielimu. Inatoa kifurushi cha programu inayoweza kupanuliwa na IDE ambayo inaruhusu ujumuishaji rahisi na kuwaka.
MicroPython: Mkalimani wa lugha ya Python 3 iliyoundwa kufanya kazi kwenye majukwaa ya kidhibiti kidogo kilichopachikwa.
Kwa lugha rahisi ya hati, inaweza kufikia moja kwa moja rasilimali za pembeni za ESP32-C3 (kama vile UART, SPI, na I2C) na vitendakazi vya mawasiliano (kama vile Wi-Fi na Bluetooth LE).
46 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
Hii hurahisisha mwingiliano wa maunzi. MicroPython, pamoja na maktaba ya kina ya uendeshaji wa hisabati ya Python, huwezesha utekelezaji wa algorithms changamano kwenye ESP32-C3, kuwezesha maendeleo ya programu zinazohusiana na AI. Kama lugha ya hati, hakuna haja ya mkusanyiko unaorudiwa; marekebisho yanaweza kufanywa na hati zinaweza kutekelezwa moja kwa moja.
NodeMCU: mkalimani wa lugha ya LUA aliyetengenezwa kwa chips mfululizo za ESP.
Inaauni karibu kazi zote za pembeni za chips za ESP na ni nyepesi kuliko MicroPython. Sawa na MicroPython, NodeMCU hutumia lugha ya hati, kuondoa hitaji la mkusanyiko unaorudiwa.
Zaidi ya hayo, ESP32-C3 pia inasaidia mifumo ya uendeshaji ya NuttX na Zephyr. NuttX ni mfumo endeshi wa wakati halisi ambao hutoa miingiliano inayooana na POSIX, inayoboresha uwezo wa kubebeka wa programu. Zephyr ni mfumo mdogo wa uendeshaji wa wakati halisi iliyoundwa mahsusi kwa programu za IoT. Inajumuisha maktaba nyingi za programu zinazohitajika katika ukuzaji wa IoT, hatua kwa hatua inabadilika kuwa mfumo wa ikolojia wa programu.
Kitabu hiki hakitoi maagizo ya kina ya usakinishaji kwa mazingira ya maendeleo yaliyotajwa hapo juu. Unaweza kusakinisha mazingira ya usanidi kulingana na mahitaji yako kwa kufuata nyaraka na maagizo husika.
4.3 Mfumo wa Ukusanyaji wa ESP-IDF
4.3.1 Dhana za Msingi za Mfumo wa Kukusanya
Mradi wa ESP-IDF ni mkusanyiko wa programu kuu iliyo na kazi ya kuingia na vipengele vingi vya kazi vinavyojitegemea. Kwa mfanoample, mradi unaodhibiti swichi za LED hasa unajumuisha programu kuu ya kuingia na sehemu ya kiendeshi inayodhibiti GPIO. Ikiwa unataka kutambua udhibiti wa kijijini wa LED, unahitaji pia kuongeza Wi-Fi, stack ya itifaki ya TCP/IP, nk.
Mfumo wa ujumuishaji unaweza kukusanya, kuunganisha, na kutoa inayoweza kutekelezwa files (.bin) kwa msimbo kupitia seti ya sheria za ujenzi. Mfumo wa ujumuishaji wa matoleo ya ESP-IDF v4.0 na matoleo ya juu unatokana na CMake kwa chaguo-msingi, na hati ya mkusanyiko CMakeLists.txt inaweza kutumika kudhibiti tabia ya utungaji wa msimbo. Mbali na kuunga mkono sintaksia ya msingi ya CMake, mfumo wa utungaji wa ESP-IDF pia unafafanua seti ya sheria za utungaji chaguomsingi na vitendaji vya CMake, na unaweza kuandika hati ya mkusanyo kwa taarifa rahisi.
4.3.2 Mradi File Muundo
Mradi ni folda ambayo ina programu kuu ya kuingia, vipengele vilivyoainishwa na mtumiaji, na fileinahitajika kuunda programu zinazoweza kutekelezwa, kama vile hati za mkusanyiko, usanidi
Sura ya 4. Kuweka Mazingira ya Maendeleo 47
files, majedwali ya kizigeu, n.k. Miradi inaweza kunakiliwa na kupitishwa, na kutekelezwa sawa file inaweza kukusanywa na kuzalishwa katika mashine zilizo na toleo sawa la mazingira ya maendeleo ya ESP-IDF. Mradi wa kawaida wa ESP-IDF file muundo umeonyeshwa kwenye Mchoro 4.14.
Kielelezo 4.14. Mradi wa kawaida wa ESP-IDF file muundo Kwa kuwa ESP-IDF inaauni chipsi nyingi za IoT kutoka Espressif, ikijumuisha ESP32, mfululizo wa ESP32-S, mfululizo wa ESP32-C, mfululizo wa ESP32-H, n.k., lengo linahitaji kubainishwa kabla ya kuunda msimbo. Lengwa ni kifaa cha maunzi kinachoendesha programu na shabaha ya muundo wa mfumo wa ujumuishaji. Kulingana na mahitaji yako, unaweza kubainisha lengo moja au zaidi la mradi wako. Kwa mfanoampna, kupitia amri idf.py set-target esp32c3, unaweza kuweka lengo la mkusanyo kwa ESP32-C3, wakati ambapo vigezo chaguo-msingi na njia ya msururu wa zana za ujumuishaji za ESP32C3 zitapakiwa. Baada ya kukusanywa, programu inayoweza kutekelezwa inaweza kuzalishwa kwa ajili ya ESP32C3. Unaweza pia kuendesha seti-lengo la amri tena ili kuweka lengo tofauti, na mfumo wa mkusanyiko utasafisha kiotomatiki na kusanidi upya. Vipengele
Vipengele katika ESP-IDF ni vitengo vya kanuni vya kawaida na huru vinavyosimamiwa ndani ya mfumo wa ujumuishaji. Zimepangwa kama folda, na jina la folda linalowakilisha jina la sehemu kwa chaguo-msingi. Kila sehemu ina hati yake ya mkusanyiko ambayo 48 ESP32-C3 Wireless Adventure: Mwongozo Kamili wa IoT.
inabainisha vigezo vya mkusanyiko wake na utegemezi. Wakati wa mchakato wa utungaji, vipengele vinakusanywa katika maktaba tofauti tuli (.a files) na hatimaye kuunganishwa na vipengele vingine kuunda programu ya maombi.
ESP-IDF hutoa utendakazi muhimu, kama vile mfumo wa uendeshaji, viendeshi vya pembeni, na mrundikano wa itifaki ya mtandao, katika mfumo wa vijenzi. Vipengele hivi vimehifadhiwa kwenye saraka ya vipengele iliyo ndani ya saraka ya mizizi ya ESP-IDF. Watengenezaji hawana haja ya kunakili vipengele hivi kwenye saraka ya vipengele vya myProject. Badala yake, wanahitaji tu kubainisha uhusiano wa utegemezi wa vipengele hivi katika CMakeLists.txt ya mradi file kwa kutumia REQUIRES au PRIV_REQUIRES maagizo. Mfumo wa ujumuishaji utapata moja kwa moja na kukusanya vipengele vinavyohitajika.
Kwa hiyo, saraka ya vipengele chini ya myProject sio lazima. Inatumika tu kujumuisha baadhi ya vipengele maalum vya mradi, ambavyo vinaweza kuwa maktaba za watu wengine au msimbo uliobainishwa na mtumiaji. Zaidi ya hayo, vipengele vinaweza kupatikana kutoka kwa saraka yoyote isipokuwa ESP-IDF au mradi wa sasa, kama vile kutoka kwa mradi wa chanzo huria uliohifadhiwa katika saraka nyingine. Katika kesi hii, unahitaji tu kuongeza njia ya sehemu kwa kuweka tofauti ya EXTRA_COMPONENT_DIRS katika CMakeLists.txt chini ya saraka ya mizizi. Saraka hii itabatilisha kipengele chochote cha ESP-IDF kilicho na jina sawa, kuhakikisha kipengele sahihi kinatumika.
Programu kuu ya programu Saraka kuu ndani ya mradi inafuata sawa file muundo kama vipengele vingine (kwa mfano, sehemu1). Walakini, ina umuhimu maalum kwani ni sehemu ya lazima ambayo lazima kiwepo katika kila mradi. Saraka kuu ina msimbo wa chanzo wa mradi na mahali pa kuingilia programu ya mtumiaji, kwa kawaida huitwa app_main. Kwa chaguo-msingi, utekelezaji wa programu ya mtumiaji huanza kutoka kwa hatua hii ya kuingia. Sehemu kuu pia inatofautiana kwa kuwa inategemea moja kwa moja vipengele vyote ndani ya njia ya utafutaji. Kwa hivyo, hakuna haja ya kuonyesha utegemezi kwa uwazi kwa kutumia maagizo ya REQUIRES au PRIV_REQUIRES katika CMakeLists.txt. file.
Usanidi file Saraka ya msingi ya mradi ina usanidi file inayoitwa sdkconfig, ambayo ina vigezo vya usanidi kwa vipengele vyote ndani ya mradi. Sdkconfig file inatolewa kiotomatiki na mfumo wa ujumuishaji na inaweza kurekebishwa na kufanywa upya kwa amri idf.py menuconfig. Chaguo za menuconfig hasa hutoka kwa Kconfig.projbuild ya mradi na Kconfig ya vipengele. Wasanidi wa vijenzi kwa ujumla huongeza vipengee vya usanidi katika Kconfig ili kufanya kijenzi kiwe rahisi na kusanidiwa.
Jenga saraka Kwa chaguo-msingi, saraka ya ujenzi ndani ya mradi huhifadhi kati files na fi-
Sura ya 4. Kuweka Mazingira ya Maendeleo 49
nal mipango inayoweza kutekelezwa inayotokana na idf.py kujenga amri. Kwa ujumla, si lazima kupata moja kwa moja yaliyomo kwenye saraka ya kujenga. ESP-IDF hutoa amri zilizoainishwa awali za kuingiliana na saraka, kama vile kutumia idf.py flash amri ili kupata kiotomatiki binary iliyokusanywa. file na kuiwasha kwa anwani maalum ya flash, au kutumia idf.py fullclean amri kusafisha saraka nzima ya ujenzi.
Jedwali la kugawa (partitions.csv) Kila mradi unahitaji jedwali la kugawanya ili kugawanya nafasi ya mweko na kubainisha ukubwa na anwani ya kuanzia ya programu inayoweza kutekelezwa na nafasi ya data ya mtumiaji. Amri idf.py flash au programu ya uboreshaji ya OTA itawasha firmware kwa anwani inayolingana kulingana na jedwali hili. ESP-IDF hutoa majedwali kadhaa ya kizigeu chaguo-msingi katika vipengele/jedwali_la sehemu, kama vile partitions_singleapp.csv na partitions_two_ ota.csv, ambazo zinaweza kuchaguliwa katika menuconfig.
Ikiwa jedwali la kizigeu chaguo-msingi la mfumo haliwezi kukidhi mahitaji ya mradi, partitions.csv maalum inaweza kuongezwa kwenye saraka ya mradi na kuchaguliwa katika menuconfig.
4.3.3 Kanuni Chaguomsingi za Muundo wa Mfumo wa Ukusanyaji
Sheria za kupindua vipengele vilivyo na jina moja Wakati wa mchakato wa utafutaji wa sehemu, mfumo wa mkusanyiko hufuata utaratibu maalum. Kwanza hutafuta vijenzi vya ndani vya ESP-IDF, kisha hutafuta vijenzi vya mradi wa mtumiaji, na hatimaye hutafuta vijenzi katika EXTRA_COMPONENT_DIRS. Katika hali ambapo saraka nyingi zina vijenzi vilivyo na jina moja, kijenzi kinachopatikana katika saraka ya mwisho kitabatilisha vipengee vilivyotangulia vilivyo na jina sawa. Sheria hii inaruhusu ubinafsishaji wa vipengee vya ESP-IDF ndani ya mradi wa mtumiaji, huku msimbo asili wa ESP-IDF ukiwa sawa.
Kanuni za kujumuisha vipengele vya kawaida kwa chaguo-msingi Kama ilivyotajwa katika sehemu ya 4.3.2, vijenzi vinahitaji kubainisha kwa uwazi utegemezi wao kwa vijenzi vingine katika CMakeLists.txt. Hata hivyo, vipengele vya kawaida kama vile freertos hujumuishwa kiotomatiki katika mfumo wa uundaji kwa chaguo-msingi, hata kama uhusiano wao wa utegemezi haujafafanuliwa kwa uwazi katika hati ya mkusanyo. Vipengele vya kawaida vya ESP-IDF ni pamoja na freertos, Newlib, lundo, log, soc, esp_rom, esp_common, xtensa/riscv, na cxx. Kutumia vipengele hivi vya kawaida huepuka kazi inayojirudia wakati wa kuandika CMakeLists.txt na kuifanya iwe mafupi zaidi.
Sheria za kubatilisha vipengee vya usanidi Wasanidi programu wanaweza kuongeza vigezo vya usanidi chaguo-msingi kwa kuongeza usanidi chaguo-msingi. file jina sdkconfig.defaults kwa mradi. Kwa mfanoample, na kuongeza CONFIG_LOG_
50 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
DEFAULT_LEVEL_NONE = y inaweza kusanidi kiolesura cha UART ili kutochapisha data ya kumbukumbu kwa chaguo-msingi. Zaidi ya hayo, ikiwa vigezo maalum vinahitaji kuwekwa kwa lengo fulani, usanidi file iliyopewa jina sdkconfig.defaults.TARGET_NAME inaweza kuongezwa, ambapo TARGET_NAME inaweza kuwa esp32s2, esp32c3, na kadhalika. Mipangilio hii files huingizwa kwenye sdkconfig wakati wa ujumuishaji, na usanidi wa kawaida wa chaguo-msingi file sdkconfig.defaults inaletwa kwanza, ikifuatiwa na usanidi maalum unaolengwa. file, kama vile sdkconfig.defaults.esp32c3. Katika hali ambapo kuna vitu vya usanidi na jina moja, usanidi wa mwisho file itabatilisha ya kwanza.
4.3.4 Utangulizi wa Hati ya Kukusanya
Wakati wa kuunda mradi kwa kutumia ESP-IDF, watengenezaji hawahitaji tu kuandika msimbo wa chanzo lakini pia wanahitaji kuandika CMakeLists.txt kwa mradi na vipengele. CMakeLists.txt ni maandishi file, pia inajulikana kama hati ya mkusanyo, ambayo inafafanua mfululizo wa vitu vya mkusanyo, vipengee vya usanidi wa mkusanyo, na amri za kuongoza mchakato wa ujumuishaji wa msimbo wa chanzo. Mfumo wa ujumuishaji wa ESP-IDF v4.3.2 unategemea CMake. Mbali na kuunga mkono vitendaji na maagizo asilia ya CMake, pia inafafanua mfululizo wa vitendaji maalum, na kuifanya iwe rahisi zaidi kuandika hati za mkusanyo.
Hati za mkusanyiko katika ESP-IDF zinajumuisha hati ya utungaji wa mradi na hati za ujumuishaji wa sehemu. CMakeLists.txt katika saraka ya msingi ya mradi inaitwa hati ya mkusanyiko wa mradi, ambayo huongoza mchakato wa ujumuishaji wa mradi mzima. Hati ya msingi ya ujumuishaji wa mradi kawaida inajumuisha mistari mitatu ifuatayo:
1. cmake_minimum_required(VERSION 3.5) 2. jumuisha($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Miongoni mwao, cmake_minimum_required (VERSION 3.5) lazima iwekwe kwenye mstari wa kwanza, ambao hutumiwa kuonyesha nambari ya chini ya toleo la CMake inayohitajika na mradi. Matoleo mapya zaidi ya CMake kwa ujumla yanaoana na matoleo ya zamani, kwa hivyo rekebisha nambari ya toleo ipasavyo unapotumia amri mpya zaidi za CMake ili kuhakikisha uoanifu.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) huingiza vipengee vya usanidi vilivyobainishwa awali na amri za mfumo wa utungaji wa ESP-IDF, ikijumuisha sheria chaguomsingi za uundaji wa mfumo wa utungaji uliofafanuliwa katika Sehemu ya 4.3.3. project(myProject) huunda mradi wenyewe na kutaja jina lake. Jina hili litatumika kama jozi ya mwisho ya pato file jina, yaani, myProject.elf na myProject.bin.
Mradi unaweza kuwa na vipengele vingi, ikiwa ni pamoja na sehemu kuu. Saraka ya kiwango cha juu ya kila sehemu ina CMakeLists.txt file, ambayo inaitwa hati ya mkusanyiko wa sehemu. Hati za ujumuishaji wa vijenzi hutumika hasa kubainisha vitegemezi vya vijenzi, vigezo vya usanidi, msimbo wa chanzo. files, na kujumuisha kichwa files kwa
Sura ya 4. Kuweka Mazingira ya Maendeleo 51
mkusanyiko. Na chaguo maalum la kukokotoa la ESP-IDF idf_component_register, kiwango cha chini zaidi cha msimbo kinachohitajika kwa hati ya ujumuishaji wa sehemu ni kama ifuatavyo:
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "pamoja na"
3.
INAHITAJI sehemu1)
Kigezo cha SRCS hutoa orodha ya chanzo files kwenye kijenzi, ikitenganishwa na nafasi ikiwa kuna nyingi files. Kigezo cha INCLUDE_DIRS hutoa orodha ya kichwa cha umma file saraka za kipengee, ambazo zitaongezwa kwenye njia ya utafutaji ya vipengele vingine vinavyotegemea kipengele cha sasa. Kigezo cha REQUIRES kinabainisha tegemezi za sehemu ya umma kwa kipengele cha sasa. Ni muhimu kwa vipengele kutaja kwa uwazi ni vipengele vipi vinavyotegemea, kama vile kipengele2 kulingana na kipengele1. Hata hivyo, kwa sehemu kuu, ambayo inategemea vipengele vyote kwa default, parameter REQUIRES inaweza kuachwa.
Kwa kuongeza, amri za asili za CMake pia zinaweza kutumika katika hati ya mkusanyiko. Kwa mfanoample, tumia seti ya amri kuweka vigeu, kama vile set(VARIABLE “VALUE”).
4.3.5 Utangulizi wa Amri za Kawaida
ESP-IDF hutumia CMake (zana ya usanidi wa mradi), Ninja (zana ya ujenzi wa mradi) na esptool (zana ya flash) katika mchakato wa uundaji wa msimbo. Kila chombo kina jukumu tofauti katika mchakato wa ujumuishaji, ujenzi, na flash, na pia inasaidia amri tofauti za uendeshaji. Ili kuwezesha utendakazi wa mtumiaji, ESP-IDF inaongeza idf.py ya mwisho iliyounganishwa ambayo inaruhusu amri zilizo hapo juu kuitwa haraka.
Kabla ya kutumia idf.py, hakikisha kwamba:
· Tofauti ya mazingira IDF_PATH ya ESP-IDF imeongezwa kwenye terminal ya sasa. · Saraka ya utekelezaji wa amri ni saraka ya msingi ya mradi, ambayo inajumuisha
hati ya mkusanyiko wa mradi CMakeLists.txt.
Amri za kawaida za idf.py ni kama ifuatavyo:
· idf.py -help: kuonyesha orodha ya amri na maagizo yao ya matumizi. · idf.py set-target : kuweka mkusanyiko taidf.py fullcleanrget, kama vile
kama kubadilisha na esp32c3. · idf.py menuconfig: kuzindua menuconfig, usanidi wa picha wa mwisho
chombo, ambacho kinaweza kuchagua au kurekebisha chaguzi za usanidi, na matokeo ya usanidi yanahifadhiwa kwenye sdkconfig. file. · idf.py build: kuanzisha mkusanyiko wa msimbo. Ya kati files na programu ya mwisho inayoweza kutekelezwa inayotokana na mkusanyiko itahifadhiwa kwenye saraka ya ujenzi wa mradi kwa chaguo-msingi. Mchakato wa ujumuishaji ni wa kuongezeka, ambayo inamaanisha kuwa ikiwa ni chanzo kimoja tu file imerekebishwa, iliyorekebishwa tu file itakusanywa wakati ujao.
52 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
· idf.py safi: kusafisha sehemu ya kati files yanayotokana na mkusanyiko wa mradi. Mradi mzima utalazimika kukusanywa katika mkusanyiko unaofuata. Kumbuka kuwa usanidi wa CMake na marekebisho ya usanidi yaliyofanywa na menuconfig hayatafutwa wakati wa kusafisha.
· idf.py fullclean: kufuta saraka nzima ya ujenzi, pamoja na matokeo yote ya usanidi wa CMake files. Wakati wa kuunda mradi tena, CMake itasanidi mradi kutoka mwanzo. Tafadhali kumbuka kuwa amri hii itafuta yote kwa kurudia files kwenye saraka ya ujenzi, kwa hivyo itumie kwa tahadhari, na usanidi wa mradi file haitafutwa.
· idf.py flash: kuangaza programu inayoweza kutekelezwa file inayotokana na kujenga kwa lengo la ESP32-C3. Chaguzi -p na -b hutumika kuweka jina la kifaa cha mlango wa mfululizo na kiwango cha baud cha kuwaka, mtawalia. Ikiwa chaguo hizi mbili hazijabainishwa, mlango wa serial utatambuliwa kiotomatiki na kiwango chaguo-msingi cha baud kitatumika.
· kifuatilizi cha idf.py: kinachoonyesha matokeo ya bandari ya mfululizo ya lengwa la ESP32-C3. Chaguo -p linaweza kutumika kubainisha jina la kifaa cha mlango wa mfululizo wa upande wa mwenyeji. Wakati wa uchapishaji wa mlango wa mfululizo, bonyeza mchanganyiko wa vitufe Ctrl+] ili kuondoka kwenye kifuatilizi.
Amri zilizo hapo juu zinaweza pia kuunganishwa kama inahitajika. Kwa mfanoampna, amri idf.py build flash monitor itafanya ujumuishaji wa msimbo, flash, na kufungua kichunguzi cha mlango wa mfululizo kwa mfuatano.
Unaweza kutembelea https://bookc3.espressif.com/build-system ili kujua zaidi kuhusu mfumo wa utungaji wa ESP-IDF.
4.4 Mazoezi: Kutunga Mfampna programu "Blink"
4.4.1 KutampUchambuzi
Sehemu hii itachukua programu ya Blink kama exampna kuchambua file muundo na sheria za utunzi wa mradi halisi kwa undani. Mpango wa Blink hutekelezea athari ya kupepesa kwa LED, na mradi uko kwenye saraka ya zamaniamples/get-start/blink, ambayo ina chanzo file, usanidi files, na maandishi kadhaa ya mkusanyiko.
Mradi wa mwanga mwema ulioletwa katika kitabu hiki unatokana na huyu mstaafuampprogramu le. Kazi zitaongezwa hatua kwa hatua katika sura za baadaye ili kukamilisha.
Msimbo wa chanzo Ili kuonyesha mchakato mzima wa usanidi, programu ya Blink imenakiliwa kwa esp32c3-iot-projects/device firmware/1 blink.
Muundo wa saraka ya mradi wa blink files imeonyeshwa kwenye Mchoro 4.15.
Mradi wa blink una saraka kuu moja tu, ambayo ni sehemu maalum ambayo
Sura ya 4. Kuweka Mazingira ya Maendeleo 53
Kielelezo cha 4.15. File muundo wa saraka ya mradi wa blink
lazima ijumuishwe kama ilivyoelezwa katika kifungu cha 4.3.2. Saraka kuu hutumiwa sana kuhifadhi utekelezaji wa kitendakazi cha app_main(), ambacho ni mahali pa kuingilia programu ya mtumiaji.Mradi wa blink haujumuishi saraka ya vipengele, kwa sababu ex hii.ample inahitaji tu kutumia vijenzi vinavyokuja na ESP-IDF na havihitaji vijenzi vya ziada. CMakeLists.txt iliyojumuishwa katika mradi wa blink inatumiwa kuongoza mchakato wa utungaji, huku Kconfig.projbuild inatumiwa kuongeza vipengee vya usanidi kwa ex hii.ampna programu katika menuconfig. Nyingine zisizo za lazima files haitaathiri ujumuishaji wa nambari, kwa hivyo hazitajadiliwa hapa. Utangulizi wa kina wa mradi wa blink files ni kama ifuatavyo.
1. /*blink.c inajumuisha kichwa kifuatacho files*/
2. #jumuisha
//Kichwa cha maktaba cha Kawaida C file
3. #jumuisha "freertos/freeRTOS.h" //Kichwa kikuu cha FreeRTOS file
4. #pamoja na "freertos/task.h"
// Kichwa cha Kazi cha FreeRTOS file
5. #jumuisha "sdkconfig.h"
// Kichwa cha usanidi file imetolewa na kconfig
6. #jumuisha "driver/gpio.h"
// Kichwa cha dereva cha GPIO file
Chanzo file blink.c ina mfululizo wa vichwa fileinalingana na tangazo la kazi-
tions. ESP-IDF kwa ujumla hufuata mpangilio wa kujumuisha kichwa cha kawaida cha maktaba files, BureR-
Kichwa cha TOS files, kichwa cha dereva files, kichwa cha sehemu nyingine files, na kichwa cha mradi files.
Mpangilio wa kichwa files ni pamoja na inaweza kuathiri matokeo ya mwisho ya mkusanyiko, kwa hivyo jaribu
kufuata kanuni za msingi. Ikumbukwe kwamba sdkconfig.h inazalishwa moja kwa moja
kwa kconfig na inaweza tu kusanidiwa kupitia amri idf.py menuconfig.
Marekebisho ya moja kwa moja ya kichwa hiki file itaandikwa upya.
1. /*Unaweza kuchagua GPIO inayolingana na LED katika idf.py menuconfig, na matokeo ya urekebishaji wa menuconfig ni kwamba thamani ya CONFIG_BLINK
_GPIO itabadilishwa. Unaweza pia kurekebisha moja kwa moja ufafanuzi wa jumla
hapa, na ubadilishe CONFIG_BLINK_GPIO hadi thamani isiyobadilika.*/ 2. #fafanua BLINK_GPIO CONFIG_BLINK_GPIO
3. utupu programu_kuu(batili)
4. {
5.
/*Sanidi IO kama chaguo-msingi la GPIO, wezesha hali ya kuvuta-juu, na
6.
Zima njia za kuingiza na kutoa */
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 Tukio Isiyo na Waya: Mwongozo wa Kina wa IoT
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*Weka GPIO iwe modi ya kutoa*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); wakati(1) {
/*Chapisha logi*/ printf(“Kuzima LEDn”); /*Zima LED (kiwango cha chini cha kutoa)*/ gpio_set_level(BLINK_GPIO, 0); /*Kuchelewa (ms 1000)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("Kuwasha LEDn"); /*Washa LED (kiwango cha juu cha kutoa)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Programu_main() kitendakazi katika Blink example program hutumika kama sehemu ya kuingilia kwa programu za watumiaji. Ni kazi rahisi isiyo na vigezo na thamani ya kurudi. Chaguo hili la kukokotoa huitwa baada ya mfumo kukamilisha uanzishaji, unaojumuisha kazi kama vile kuanzisha mlango wa mfululizo wa kumbukumbu, kusanidi msingi mmoja/mbili, na kusanidi mlinzi.
App_main() chaguo za kukokotoa huendesha katika muktadha wa kazi iliyopewa jina kuu. Saizi ya rafu na kipaumbele cha kazi hii inaweza kurekebishwa katika menyuconfig Componentconfig Common ESP inayohusiana.
Kwa kazi rahisi kama vile kupepesa LED, msimbo wote unaohitajika unaweza kutekelezwa moja kwa moja kwenye kitendakazi app_main(). Hii kawaida inajumuisha kuanzisha GPIO inayolingana na LED na kutumia kitanzi cha muda(1) kuwasha na kuzima LED. Vinginevyo, unaweza kutumia FreeRTOS API kuunda kazi mpya ambayo inashughulikia kufumba kwa LED. Mara tu kazi mpya imeundwa kwa ufanisi, unaweza kutoka kwa kitendakazi app_main().
Maudhui ya main/CMakeLists.txt file, ambayo inaongoza mchakato wa ujumuishaji wa sehemu kuu, ni kama ifuatavyo.
1. idf_component_register(SRCS “blink.c” INNCLUDE_DIRS “.” )
Miongoni mwao, main/CMakeLists.txt huita tu kitendakazi kimoja cha mfumo wa mkusanyo, hiyo ni idf_component_register. Sawa na CMakeLists.txt kwa vipengele vingine vingi, blink.c huongezwa kwa SRCS, na chanzo files zilizoongezwa kwa SRCS zitakusanywa. Wakati huo huo, ".", ambayo inawakilisha njia ambayo CMakeLists.txt iko, inapaswa kuongezwa kwa INCLUDE_DIRS kama saraka za utafutaji za vichwa. files. Maudhui ya CMakeLists.txt ni kama ifuatavyo:
1. #Bainisha v3.5 kama toleo la zamani zaidi la CMake linaloauniwa na mradi wa sasa wa 2. #Toleo la chini kuliko v3.5 lazima liboreshwe kabla ya ukusanyaji kuendelea 3. cmake_minimum_required(VERSION 3.5) 4. #Jumuisha usanidi chaguo-msingi wa CMake wa ESP - Mfumo wa mkusanyiko wa IDF
Sura ya 4. Kuweka Mazingira ya Maendeleo 55
5. jumuisha($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Unda mradi unaoitwa "blink" 7. project(myProject)
Miongoni mwao, CMakeLists.txt katika saraka ya mizizi inajumuisha hasa $ENV{IDF_ PATH}/tools/cmake/project.cmake, ambayo ni usanidi mkuu wa CMake. file zinazotolewa na ESP-IDF. Inatumika kwa con
Nyaraka / Rasilimali
![]() |
Mifumo ya Espressif ESP32-C3 Tukio Isiyo na Waya [pdf] Mwongozo wa Mtumiaji ESP32-C3 Wireless Adventure, ESP32-C3, Adventure Wireless, Adventure |