ESP32-C3 Avventura bla Fili

ESP32-C3 Avventura bla Fili

Gwida Komprensiva għall-IoT

Espressif Systems 12 ta’ Ġunju 2023

Speċifikazzjonijiet

  • Prodott: ESP32-C3 Wireless Adventure
  • Manifattur: Espressif Systems
  • Data: 12 ta’ Ġunju, 2023

Istruzzjonijiet għall-Użu tal-Prodott

Preparazzjoni

Qabel ma tuża l-ESP32-C3 Wireless Adventure, kun żgur li int
familjari mal-kunċetti u l-arkitettura tal-IoT. Dan se jgħin
tifhem kif l-apparat jidħol fl-ekosistema akbar tal-IoT
u l-applikazzjonijiet potenzjali tagħha fid-djar intelliġenti.

Introduzzjoni u Prattika ta' Proġetti IoT

F'din it-taqsima, titgħallem dwar proġetti tipiċi tal-IoT,
inklużi l-moduli bażiċi għal apparati IoT komuni, moduli bażiċi
ta' applikazzjonijiet tal-klijenti, u pjattaformi komuni tal-IoT cloud. Din se
jagħtuk pedament biex tifhem u toħloq tiegħek
proġetti IoT stess.

Prattika: Smart Light Project

F'dan il-proġett ta 'prattika, int se titgħallem kif toħloq smart
dawl bl-użu tal-ESP32-C3 Wireless Adventure. L-istruttura tal-proġett,
funzjonijiet, preparazzjoni tal-ħardwer, u proċess ta 'żvilupp se jkunu
spjegat fid-dettall.

Struttura tal-Proġett

Il-proġett jikkonsisti f'diversi komponenti, inkluż il-
ESP32-C3 Avventura bla Fili, LEDs, sensuri, u sħaba
backend.

Funzjonijiet tal-Proġett

Il-proġett tad-dawl intelliġenti jippermettilek tikkontrolla l-luminożità u
kulur tal-LEDs mill-bogħod permezz ta 'app mobbli jew web
interface.

Preparazzjoni tal-Ħardwer

Biex tipprepara għall-proġett, ser ikollok bżonn tiġbor il-
komponenti hardware meħtieġa, bħall-ESP32-C3 Wireless
Bord ta 'l-avventura, LEDs, resistors, u provvista ta' enerġija.

Proċess ta' Żvilupp

Il-proċess ta 'żvilupp jinvolvi t-twaqqif ta' l-iżvilupp
ambjent, kitba kodiċi biex tikkontrolla l-LEDs, konnessjoni mal-
sħaba backend, u l-ittestjar tal-funzjonalità tal-smart
dawl.

Introduzzjoni għall-ESP RainMaker

ESP RainMaker huwa qafas b'saħħtu għall-iżvilupp tal-IoT
apparat. F'din it-taqsima, titgħallem x'inhu ESP RainMaker u
kif tista’ tiġi implimentata fil-proġetti tiegħek.

X'inhu ESP RainMaker?

ESP RainMaker hija pjattaforma bbażata fuq sħab li tipprovdi sett ta '
għodod u servizzi għall-bini u l-ġestjoni ta’ apparati tal-IoT.

L-Implimentazzjoni ta 'ESP RainMaker

Din it-taqsima tispjega l-komponenti differenti involuti fihom
timplimenta ESP RainMaker, inkluż is-servizz tal-pretensjoni,
Aġent RainMaker, backend tas-sħab, u Klijent RainMaker.

Prattika: Punti Ewlenin għall-Iżvilupp bl-ESP RainMaker

F'din it-taqsima tal-prattika, int se titgħallem dwar il-punti ewlenin għalihom
tikkunsidra meta tiżviluppa bl-ESP RainMaker. Dan jinkludi l-apparat
pretensjoni, sinkronizzazzjoni tad-dejta, u ġestjoni tal-utenti.

Karatteristiċi ta 'ESP RainMaker

ESP RainMaker joffri diversi karatteristiċi għall-ġestjoni tal-utenti, tmiem
utenti, u amministraturi. Dawn il-karatteristiċi jippermettu mezz faċli
setup, kontroll mill-bogħod, u monitoraġġ.

Twaqqif ta' Ambjent ta' Żvilupp

Din it-taqsima tipprovdi overview tal-ESP-IDF (Espressif IoT
Qafas għall-Iżvilupp), li huwa l-qafas uffiċjali għall-iżvilupp
għal apparati bbażati fuq ESP32. Jispjega l-verżjonijiet differenti ta '
ESP-IDF u kif twaqqaf l-ambjent tal-iżvilupp.

Ħardwer u Żvilupp tas-Sewwieq

Disinn ta 'Hardware ta' Prodotti Smart Light ibbażat fuq ESP32-C3

Din it-taqsima tiffoka fuq id-disinn tal-ħardwer tad-dawl intelliġenti
prodotti bbażati fuq l-ESP32-C3 Wireless Adventure. Hija tkopri l-
karatteristiċi u l-kompożizzjoni tal-prodotti tad-dawl intelliġenti, kif ukoll il-
disinn tal-ħardwer tas-sistema tal-qalba ESP32-C3.

Karatteristiċi u Kompożizzjoni ta 'Prodotti Dawl Intelliġenti

Din is-subtaqsima tispjega l-karatteristiċi u l-komponenti li jagħmlu
sa prodotti tad-dawl intelliġenti. Jiddiskuti l-funzjonalitajiet differenti
u kunsiderazzjonijiet tad-disinn għall-ħolqien ta 'dwal intelliġenti.

Disinn tal-Hardware tas-Sistema tal-Qofol ESP32-C3

Id-disinn tal-ħardwer tas-sistema ċentrali ESP32-C3 jinkludi l-enerġija
provvista, sekwenza ta' tħaddim, reset tas-sistema, flash SPI, sors ta' arloġġ,
u konsiderazzjonijiet ta' RF u antenna. Din is-subtaqsima tipprovdi
informazzjoni dettaljata dwar dawn l-aspetti.

FAQ

Q: X'inhu ESP RainMaker?

A: ESP RainMaker hija pjattaforma bbażata fuq sħab li tipprovdi għodod
u servizzi għall-bini u l-ġestjoni ta’ apparati IoT. Jissimplifika
il-proċess ta 'żvilupp u jippermetti setup faċli ta' apparat, remot
kontroll, u monitoraġġ.

Q: Kif nista 'nwaqqaf l-ambjent ta' żvilupp għal
ESP32-C3?

A: Biex twaqqaf l-ambjent ta 'żvilupp għal ESP32-C3, għandek bżonn
biex tinstalla ESP-IDF (Espressif IoT Development Framework) u
kkonfiguraha skond l-istruzzjonijiet ipprovduti. ESP-IDF huwa l-
qafas ta' żvilupp uffiċjali għal apparati bbażati fuq ESP32.

Q: X'inhuma l-karatteristiċi ta 'ESP RainMaker?

A: ESP RainMaker joffri diversi karatteristiċi, inkluż l-utent
ġestjoni, karatteristiċi tal-utent finali, u karatteristiċi tal-amministrazzjoni. Ġestjoni tal-utenti
jippermetti rikjesta ta 'apparat faċli u sinkronizzazzjoni tad-dejta. Utent aħħari
karatteristiċi jippermettu kontroll mill-bogħod ta 'apparati permezz ta' app mobbli jew
web interface. Il-karatteristiċi tal-amministrazzjoni jipprovdu għodda għall-monitoraġġ tal-apparat
u l-ġestjoni.

ESP32-C3 Avventura bla Fili
Gwida Komprensiva għall-IoT
Espressif Systems 12 ta’ Ġunju 2023

Kontenut

I Preparazzjoni

1

1 Introduzzjoni għall-IoT

3

1.1 Arkitettura tal-IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Applikazzjoni IoT fi Djar Intelliġenti . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Introduzzjoni u Prattika ta' Proġetti IoT

9

2.1 Introduzzjoni għal Proġetti IoT Tipiċi . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Moduli Bażiċi għal Apparat IoT Komuni . . . . . . . . . . . . . . . . . 9

2.1.2 Moduli Bażiċi tal-Applikazzjonijiet tal-Klijent . . . . . . . . . . . . . . . . . . . 10

2.1.3 Introduzzjoni għall-Pjattaformi Komuni tal-IoT Cloud . . . . . . . . . . . . . . 11

2.2 Prattika: Smart Light Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Struttura tal-Proġett . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 Funzjonijiet tal-Proġett . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Preparazzjoni tal-Ħardwer . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 Proċess ta' Żvilupp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Introduzzjoni għall-ESP RainMaker

19

3.1 X'inhu ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 L-Implimentazzjoni ta' ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Servizz ta' Talba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 Aġent RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.3 Cloud Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.4 Klijent RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Prattika: Punti Ewlenin għall-Iżvilupp bl-ESP RainMaker . . . . . . . . . . . . 25

3.4 Karatteristiċi ta' ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 Ġestjoni tal-Utenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 Karatteristiċi tal-Utent Aħħar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 Karatteristiċi tal-Amministratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Twaqqif ta' Ambjent ta' Żvilupp

31

4.1 ESP-IDF Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 Verżjonijiet ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ESP-IDF Git Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Għażla ta' Verżjoni Adattata . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Fuqview tad-Direttorju ESP-IDF SDK . . . . . . . . . . . . . . . . . . . . 34 4.2 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF . . . . . . . . . . . . . . . . . 38 4.2.1 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF fuq Linux . . . . . . . . 38 4.2.2 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF fuq Windows . . . . . . 40 4.2.3 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF fuq Mac . . . . . . . . . 45 4.2.4 Installazzjoni tal-Kodiċi VS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Introduzzjoni għal Ambjenti ta' Żvilupp ta' Partijiet Terzi . . . . . . . . 46 4.3 Sistema ta' Kumpilazzjoni ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Kunċetti Bażiċi tas-Sistema ta' Kumpilazzjoni . . . . . . . . . . . . . . . . . . 47 4.3.2 Proġett File Struttura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Regoli tal-Bini Default tas-Sistema ta' Kumpilazzjoni . . . . . . . . . . . . . 50 4.3.4 Introduzzjoni għall-Iskrittura tal-Kompilazzjoni . . . . . . . . . . . . . . . . . . 51 4.3.5 Introduzzjoni għall-Kmandi Komuni . . . . . . . . . . . . . . . . . . . 52 4.4 Prattika: Kumpilazzjoni Eżample Programm “Blink” . . . . . . . . . . . . . . . . . . 53 4.4.1 Eżample Analiżi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Il-kumpilazzjoni tal-Programm Blink . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Teptip tal-Programm Blink . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Analiżi Serial Port Log tal-Programm Blink . . . . . . . . . . . . . . 60 4.5 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II Żvilupp ta' Hardware u Driver

65

5 Disinn ta 'Hardware ta' Prodotti Smart Light ibbażat fuq ESP32-C3

67

5.1 Karatteristiċi u Kompożizzjoni ta 'Prodotti Dawl Intelliġenti . . . . . . . . . . . . . . . 67

5.2 Disinn tal-Hardware tas-Sistema Ewwel ESP32-C3 . . . . . . . . . . . . . . . . . . . 70

5.2.1 Provvista tal-Enerġija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 Sekwenza ta' Xgħel u Reset tas-Sistema . . . . . . . . . . . . . . . . . . 74

5.2.3 SPI Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.4 Sors tal-Arloġġ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 RF u Antenna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 Pinnijiet tal-istrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 Kontrollur GPIO u PWM . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Prattika: Bini ta' Sistema ta' Dawl Intelliġenti b'ESP32-C3 . . . . . . . . . . . . . 80

5.3.1 Għażla ta' Moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 Konfigurazzjoni ta' GPIOs ta' Sinjali PWM . . . . . . . . . . . . . . . . . . . . 82

5.3.3 Tniżżil ta' Firmware u Interface ta' Debugging . . . . . . . . . . . . 82

5.3.4 Linji gwida għad-Disinn RF . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Linji Gwida għad-Disinn tal-Provvista tal-Enerġija . . . . . . . . . . . . . . . . . . . 86 5.4 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Żvilupp tas-sewwieq

87

6.1 Proċess ta' Żvilupp tas-Sewwieq . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 Applikazzjonijiet Periferali ESP32-C3 . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 Bażiku tas-Sewwieq LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 Spazji tal-Kulur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 Sewwieq LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 LED Dimming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 Introduzzjoni għall-PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 Żvilupp tas-sewwieq li jbaxxi l-LED. . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 Ħażna Mhux Volatili (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 Kontrollur PWM LED (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 Programmazzjoni LED PWM . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 Prattika: Żieda tas-Sewwieqa għall-Proġett tad-Dawl Intelliġenti . . . . . . . . . . . . . . . . . 103

6.5.1 Driver tal-buttuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 Sewwieq tad-Dimming LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III Komunikazzjoni u Kontroll bla Fili

109

7 Konfigurazzjoni u Konnessjoni tal-Wi-Fi

111

7.1 Bażi tal-Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Introduzzjoni għall-Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 Evoluzzjoni ta' IEEE 802.11. . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Kunċetti tal-Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Konnessjoni Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Bażi tal-Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 Introduzzjoni għall-Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 Kunċetti Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 Konnessjoni Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Konfigurazzjoni tan-Netwerk Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Gwida tal-Konfigurazzjoni tan-Netwerk Wi-Fi . . . . . . . . . . . . . . . . . . . . 131

7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.3 SmartConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.4 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7.3.5 Metodi oħra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 Programmazzjoni Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Komponenti Wi-Fi f'ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Eżerċizzju: Konnessjoni Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Eżerċizzju: Konnessjoni Smart Wi-Fi . . . . . . . . . . . . . . . . . . . . . 145
7.5 Prattika: Konfigurazzjoni Wi-Fi fi Smart Light Project . . . . . . . . . . . . . . . 156 7.5.1 Konnessjoni Wi-Fi fi Smart Light Project . . . . . . . . . . . . . . . . . 156 7.5.2 Konfigurazzjoni Smart Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 Kontroll Lokali

159

8.1 Introduzzjoni għall-Kontroll Lokali . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 Applikazzjoni ta' Kontroll Lokali . . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 Advantages tal-Kontroll Lokali. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 L-iskoperta ta' Apparat Ikkontrollat ​​permezz ta' Smartphones . . . . . . . . . . 161

8.1.4 Komunikazzjoni tad-Data Bejn Smartphones u Apparat . . . . . . . . 162

8.2 Metodi ta' Skoperta Lokali Komuni . . . . . . . . . . . . . . . . . . . . . . . . 162

8.2.1 Xandira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8.2.2 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

8.2.3 Tqabbil bejn Broadcast u Multicast . . . . . . . . . . . . . . 176

8.2.4 Protokoll ta' Applikazzjoni Multicast mDNS għal Skoperta Lokali . . . . . . . . 176

8.3 Protokolli ta' Komunikazzjoni Komuni għal Data Lokali . . . . . . . . . . . . . . . 179

8.3.1 Protokoll tal-Kontroll tat-Trażmissjoni (TCP) . . . . . . . . . . . . . . . . . . . 179

8.3.2 Protokoll ta' Trasferiment ta' HyperText (HTTP) . . . . . . . . . . . . . . . . . . . 185

8.3.3 Utent DatagProtokoll tal-muntun (UDP) . . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 Protokoll ta' Applikazzjoni Ristretta (CoAP) . . . . . . . . . . . . . . . . 192

8.3.5 Protokoll Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3.6 Sommarju tal-Protokolli tal-Komunikazzjoni tad-Data . . . . . . . . . . . . . . . 203

8.4 Garanzija tas-Sigurtà tad-Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 Introduzzjoni għas-Sigurtà tas-Saff tat-Trasport (TLS) . . . . . . . . . . . . . 207

8.4.2 Introduzzjoni għal DatagSigurtà tas-Saff tat-Trasport tal-muntun (DTLS) . . . . . . . 213

8.5 Prattika: Kontroll Lokali fi Smart Light Project . . . . . . . . . . . . . . . . . . 217

8.5.1 Il-ħolqien ta' Server ta' Kontroll Lokali bbażat fuq Wi-Fi . . . . . . . . . . . . . . . 217

8.5.2 Verifika tal-Funzjonalità tal-Kontroll Lokali bl-użu ta' Skripts . . . . . . . . . . . 221

8.5.3 Il-ħolqien ta' Server ta' Kontroll Lokali bbażat fuq Bluetooth . . . . . . . . . . . . 222

8.6 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9 Kontroll tas-Sħab

225

9.1 Introduzzjoni għall-Kontroll mill-bogħod . . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 Protokolli tal-Komunikazzjoni tad-Data Cloud . . . . . . . . . . . . . . . . . . . . . . 226

9.2.1 MQTT Introduzzjoni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Prinċipji MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 Format tal-Messaġġ MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Tqabbil tal-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Twaqqif ta' MQTT Broker fuq Linux u Windows . . . . . . . . . . . . 233 9.2.6 Twaqqif ta' Klijent MQTT Ibbażat fuq ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Żgurar tas-Sigurtà tad-Data MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Tifsira u Funzjoni taċ-Ċertifikati . . . . . . . . . . . . . . . . . . . 237 9.3.2 Ġenerazzjoni ta' Ċertifikati lokalment . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Konfigurazzjoni ta' MQTT Broker . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Konfigurazzjoni tal-Klijent MQTT . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Prattika: Kontroll mill-bogħod permezz ta' ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 Bażiku ta' ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Protokoll ta' Komunikazzjoni ta' Node u Cloud Backend . . . . . . . . . . . 244 9.4.3 Komunikazzjoni bejn Klijent u Cloud Backend . . . . . . . . . . . 249 9.4.4 Rwoli tal-Utent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Servizzi Bażiċi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Dawl Intelliġenti Eżample . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 App RainMaker u Integrazzjonijiet ta' Partijiet Terzi . . . . . . . . . . . . . . . 262 9.5 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 Żvilupp ta' App għall-Smartphone

269

10.1 Introduzzjoni għall-Iżvilupp ta' Apps ta' Smartphone . . . . . . . . . . . . . . . . . . 269

10.1.1 Fuqview tal-Iżvilupp tal-Apps tal-Smartphone. . . . . . . . . . . . . . . 270

10.1.2 Struttura tal-Proġett Android . . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 Struttura tal-Proġett iOS . . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Ċiklu tal-ħajja ta' Attività Android . . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 Iċ-ċiklu tal-ħajja tal-iOS ViewKontrollur . . . . . . . . . . . . . . . . . . . . . . 273

10.2 Ħolqien ta' Proġett Ġdid ta' App għal Smartphone . . . . . . . . . . . . . . . . . . . . . 275

10.2.1 Tħejjija għall-Iżvilupp ta' Android . . . . . . . . . . . . . . . . . . . 275

10.2.2 Il-ħolqien ta' Proġett Android Ġdid . . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 Żieda ta' Dipendenzi għal MyRainmaker . . . . . . . . . . . . . . . . . 276

10.2.4 Talba ta' Permess f'Android . . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 Tħejjija għall-Iżvilupp tal-iOS . . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 Ħolqien ta' Proġett iOS Ġdid . . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 Żieda ta' Dipendenzi għal MyRainmaker . . . . . . . . . . . . . . . . . 279

10.2.8 Talba ta' Permess fl-iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 Analiżi tar-Rekwiżiti Funzjonali tal-App . . . . . . . . . . . . . . . . . . 281

10.3.1 Analiżi tar-Rekwiżiti Funzjonali tal-Proġett . . . . . . . . . . . . 282

10.3.2 Analiżi tar-Rekwiżiti tal-Ġestjoni tal-Utenti . . . . . . . . . . . . . . . 282 10.3.3 Analiżi tal-Provvista ta' Apparat u Rekwiżiti Vinkolanti . . . . . . . 283 10.3.4 Analiżi tar-Rekwiżiti tal-Kontroll mill-Bogħod . . . . . . . . . . . . . . . . 283 10.3.5 Analiżi tar-Rekwiżiti tal-Iskedar . . . . . . . . . . . . . . . . . . . 284 10.3.6 Analiżi tar-Rekwiżiti taċ-Ċentru tal-Utenti . . . . . . . . . . . . . . . . . . 285 10.4 Żvilupp tal-Ġestjoni tal-Utenti . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Introduzzjoni għall-APIs RainMaker . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Nibdew Komunikazzjoni permezz ta' Smartphone . . . . . . . . . . . . . . . . 286 10.4.3 Reġistrazzjoni tal-Kont . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Login tal-Kont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Żvilupp tal-Provvista ta' Apparat . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Apparat għall-iskannjar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Apparat li jgħaqqad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Ġenerazzjoni ta' Ċwievet Sigrieti . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Getting Node ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Apparat għall-Provvista . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Żvilupp tal-Kontroll tal-Apparat . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 L-Irbit ta' Apparati ma' Kontijiet Cloud . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Ksib ta' Lista ta' Apparati . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Getting Status tat-Tagħmir . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Nibdlu l-Istatus tat-Tagħmir . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Żvilupp tal-Iskedar u taċ-Ċentru tal-Utenti . . . . . . . . . . . . . . . . . . . 313 10.7.1 Implimentazzjoni tal-Funzjoni ta' Skedar . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Implimentazzjoni taċ-Ċentru tal-Utenti . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Aktar Cloud APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 Aġġornament tal-Firmware u Ġestjoni tal-Verżjonijiet

321

11.1 Aġġornament tal-Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 Fuqview tat-Tabelli tal-Diviżorji. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 Proċess tal-Ibbutjar tal-Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 Fuqview tal-Mekkaniżmu OTA. . . . . . . . . . . . . . . . . . . . . 326

11.2 Ġestjoni tal-Verżjoni tal-Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 Firmware Marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 Rollback u Anti-Rollback . . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 Prattika: Over-the-air (OTA) Eżample . . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 Taġġorna Firmware Permezz ta' Host Lokali . . . . . . . . . . . . . . . . . 332

11.3.2 Aġġorna l-Firmware Permezz tal-ESP RainMaker . . . . . . . . . . . . . . . 335

11.4 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

IV Ottimizzazzjoni u Produzzjoni tal-Massa

343

12 Ġestjoni tal-Enerġija u Ottimizzazzjoni ta' Enerġija Baxxa

345

12.1 Ġestjoni tal-Enerġija ESP32-C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 Skala tal-Frekwenza Dinamika . . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 Konfigurazzjoni tal-Ġestjoni tal-Enerġija . . . . . . . . . . . . . . . . . . . . 348

12.2 Modalità ta' Enerġija Baxxa ESP32-C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

12.2.1 Modalità modem-sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12.2.2 Mod ta' rqad ħafif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 Modalità deep-sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 Konsum tal-kurrent f'modi ta' enerġija differenti . . . . . . . . . . . . . 358

12.3 Ġestjoni tal-Enerġija u Debugging b'Enerġija Baxxa . . . . . . . . . . . . . . . . . 359

12.3.1 Debugging tal-log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

12.3.2 Debugging GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

12.4 Prattika: Ġestjoni tal-Enerġija fil-Proġett tad-Dawl Intelliġenti . . . . . . . . . . . . . . . 363

12.4.1 Konfigurazzjoni ta' Karatteristika ta' Ġestjoni tal-Enerġija . . . . . . . . . . . . . . . . . 364

12.4.2 Uża Serraturi tal-Ġestjoni tal-Enerġija . . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 Verifika tal-Konsum tal-Enerġija . . . . . . . . . . . . . . . . . . . . . . . 366

12.5 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 Karatteristiċi ta' Sigurtà tal-Apparat Mtejba

369

13.1 Fuqview tas-Sigurtà tad-Data tal-Apparat IoT. . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 Għaliex Niżguraw id-Dejta tal-Apparat IoT? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 Rekwiżiti Bażiċi għas-Sigurtà tad-Dejta tal-Apparat IoT . . . . . . . . . . . . 371

13.2 Protezzjoni tal-Integrità tad-Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

13.2.1 Introduzzjoni għall-Metodu ta' Verifika tal-Integrità . . . . . . . . . . . . . . 372

13.2.2 Verifika tal-Integrità tad-Data tal-Firmware . . . . . . . . . . . . . . . . . . 373

13.2.3 Eżample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3 Protezzjoni tal- Kunfidenzjalità tad-Data . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3.1 Introduzzjoni għall-Encryption tad-Data . . . . . . . . . . . . . . . . . . . . . . 374

13.3.2 Introduzzjoni għall-Iskema ta' Encryption Flash . . . . . . . . . . . . . . . . . 376

13.3.3 Ħażna taċ-ċavetta ta' Encryption Flash . . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 Mod ta' Ħidma tal-Flash Encryption . . . . . . . . . . . . . . . . . . . . 380

13.3.5 Proċess ta' Encryption Flash . . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 Introduzzjoni għall-Encryption NVS . . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 Eżamples ta 'Flash Encryption u NVS Encryption. . . . . . . . . . . 384

13.4 Protezzjoni tal-Leġittimità tad-Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 Introduzzjoni għall-Firma Diġitali . . . . . . . . . . . . . . . . . . . . . 386

13.4.2 Fuqview ta' Secure Boot Scheme . . . . . . . . . . . . . . . . . . . . . 388

13.4.3 Introduzzjoni għal Software Secure Boot . . . . . . . . . . . . . . . . . . . 388 13.4.4 Introduzzjoni għal Hardware Secure Boot . . . . . . . . . . . . . . . . . . 390 13.4.5 Eżamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Prattika: Karatteristiċi tas-Sigurtà Fil-Produzzjoni tal-Massa . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash Encryption u Secure Boot . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Attivazzjoni tal-Flash Encryption u Secure Boot b'Blot Flash Tools . . 397 13.5.3 Attivazzjoni tal-Flash Encryption u Secure Boot fi Smart Light Project . . . 398 13.6 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 Firmware Ħruq u Ittestjar għall-Produzzjoni tal-Massa

399

14.1 Ħruq ta' Firmware fil-Produzzjoni tal-Massa . . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 Id-Definizzjoni tal-Ħitan tad-Data . . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 Ħruq tal-Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 Ittestjar tal-Produzzjoni tal-Massa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 Prattika: Data tal-Produzzjoni tal-Massa fi Smart Light Project . . . . . . . . . . . . . 404

14.4 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 ESP Insights: Pjattaforma ta' Monitoraġġ mill-bogħod

405

15.1 Introduzzjoni għal ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 Nibdew bl-ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 Nibdew bl-ESP Insights fil-Proġett esp-insights . . . . . . 409

15.2.2 Running Eżample fil-Proġett esp-intuwizzjonijiet. . . . . . . . . . . . . . . 411

15.2.3 Rappurtar ta' Informazzjoni Coredump . . . . . . . . . . . . . . . . . . . . . 411

15.2.4 Customizing Zkuk ta' Interess . . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 Raġuni tar-Reboot tar-Rappurtar . . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 Rappurtar ta' Metriċi Custom . . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 Prattika: L-użu ta' ESP Insights fi Smart Light Project . . . . . . . . . . . . . . . 416

15.4 Sommarju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

Introduzzjoni
ESP32-C3 huwa SoC mikrokontrollur Wi-Fi u Bluetooth 5 (LE) b'qalba waħda, ibbażat fuq l-arkitettura open-source RISC-V. Jolqot il-bilanċ it-tajjeb ta 'enerġija, kapaċitajiet I/O, u sigurtà, u b'hekk joffri l-aħjar soluzzjoni kost-effettiva għal apparati konnessi. Biex turi diversi applikazzjonijiet tal-familja ESP32-C3, dan il-ktieb ta' Espressif se jeħodkom fuq vjaġġ interessanti permezz tal-AIoT, li jibda mill-baŜi tal-iżvilupp tal-proġetti tal-IoT u s-setup tal-ambjent għal ex prattiku.amples. L-ewwel erba' kapitoli jitkellmu dwar IoT, ESP RainMaker u ESP-IDF. Kapitolu 5 u 6 qosor dwar id-disinn tal-ħardwer u l-iżvilupp tas-sewwieq. Hekk kif timxi 'l quddiem, inti ser tiskopri kif tikkonfigura l-proġett tiegħek permezz ta' netwerks Wi-Fi u Apps mobbli. Fl-aħħarnett, titgħallem tottimizza l-proġett tiegħek u tpoġġih fil-produzzjoni tal-massa.
Jekk inti inġinier f'oqsma relatati, perit tas-softwer, għalliem, student, jew xi ħadd li għandu interess fl-IoT, dan il-ktieb huwa għalik.
Tista' tniżżel il-kodiċi example użat f'dan il-ktieb mis-sit ta' Espressif fuq GitHub. Għall-aħħar informazzjoni dwar l-iżvilupp tal-IoT, jekk jogħġbok segwi l-kont uffiċjali tagħna.

Prefazju
Dinja Informatizzanti
Riding il-mewġa tal-Internet, l-Internet tal-Oġġetti (IoT) għamel id-debutt kbir tiegħu biex isir tip ġdid ta 'infrastruttura fl-ekonomija diġitali. Biex tressaq it-teknoloġija eqreb lejn il-pubbliku, Espressif Systems taħdem għall-viżjoni li żviluppaturi minn kull qasam tal-ħajja jistgħu jużaw l-IoT biex isolvu wħud mill-aktar problemi urġenti ta 'żminijietna. Dinja ta '"Netwerk Intelliġenti tal-Oġġetti Kollha" hija dak li qed nistennew mill-futur.
Id-disinn taċ-ċipep tagħna stess jagħmel komponent kritiku ta 'dik il-viżjoni. Għandha tkun maratona, li teħtieġ skoperti kostanti kontra l-konfini teknoloġiċi. Mill-"Game Changer" ESP8266 għas-serje ESP32 li tintegra l-konnettività Wi-Fi u Bluetoothr (LE), segwita minn ESP32-S3 mgħammra b'aċċelerazzjoni AI, Espressif qatt ma tieqaf tirriċerka u tiżviluppa prodotti għal soluzzjonijiet AIoT. Bis-softwer open-source tagħna, bħall-Qafas tal-Iżvilupp tal-IoT ESP-IDF, il-Qafas tal-Iżvilupp tal-malji ESP-MDF, u l-Pjattaforma tal-Konnettività tal-Apparat ESP RainMaker, ħloqna qafas indipendenti għall-bini tal-applikazzjonijiet AIoT.
Minn Lulju 2022, il-vjeġġi kumulattivi taċ-chipsets tal-IoT ta 'Espressif qabżu t-800 miljun, li wasslu fis-suq tal-Wi-Fi MCU u jħaddmu numru kbir ta' apparati konnessi madwar id-dinja. L-insegwiment għall-eċċellenza jagħmel kull prodott Espressif hit kbir għal-livell għoli ta 'integrazzjoni u kost-effiċjenza tiegħu. Ir-rilaxx ta 'ESP32-C3 jimmarka tragward sinifikanti tat-teknoloġija żviluppata minnha stess ta' Espressif. Huwa MCU b'qalba waħda, 32-bit, ibbażat fuq RISC-V b'400KB ta 'SRAM, li jista' jaħdem f'160MHz. Hija integrata 2.4 GHz Wi-Fi u Bluetooth 5 (LE) b'appoġġ fuq medda twila. Jolqot bilanċ fin ta 'enerġija, kapaċitajiet I/O, u sigurtà, u b'hekk joffri l-aħjar soluzzjoni kost-effettiva għal apparati konnessi. Ibbażat fuq ESP32-C3 tant qawwi, dan il-ktieb huwa maħsub biex jgħin lill-qarrejja jifhmu għarfien relatat mal-IoT b'illustrazzjoni dettaljata u ex prattika.amples.
Għaliex ktibna dan il-ktieb?
Espressif Systems hija aktar minn kumpanija tas-semikondutturi. Hija wkoll kumpanija tal-pjattaforma tal-IoT, li dejjem tistinka għal skoperti u innovazzjonijiet fil-qasam tat-teknoloġija. Fl-istess ħin, Espressif open-sourced u qasmet is-sistema operattiva u l-qafas tas-software żviluppata minnha nnifisha mal-komunità, li tifforma ekosistema unika. L-inġiniera, dawk li jfasslu, u d-dilettanti tat-teknoloġija jiżviluppaw b'mod attiv applikazzjonijiet ta 'softwer ġodda bbażati fuq il-prodotti ta' Espressif, jikkomunikaw liberament, u jaqsmu l-esperjenza tagħhom. Tista' tara l-ideat affaxxinanti tal-iżviluppaturi fuq diversi pjattaformi l-ħin kollu, bħal YouTube u GitHub. Il-popolarità tal-prodotti ta' Espressif stimulat numru dejjem jikber ta' awturi li pproduċew aktar minn 100 ktieb ibbażati fuq chipsets Espressif, f'aktar minn għaxar lingwi, inklużi l-Ingliż, iċ-Ċiniż, il-Ġermaniż, il-Franċiż u l-Ġappuniż.

Huwa l-appoġġ u l-fiduċja tal-imsieħba tal-komunità li jinkoraġġixxi l-innovazzjoni kontinwa ta 'Espressif. “Aħna nistinkaw biex nagħmlu ċ-ċipep, is-sistemi operattivi, l-oqfsa, is-soluzzjonijiet, il-Cloud, il-prattiċi tan-negozju, l-għodod, id-dokumentazzjoni, il-kitbiet, l-ideat, eċċ tagħna, dejjem aktar rilevanti għat-tweġibiet li jeħtieġu n-nies fl-aktar problemi urġenti tal-ħajja kontemporanja. Din hija l-ogħla ambizzjoni u kumpass morali ta’ Espressif.” qal is-Sur Teo Swee Ann, Fundatur u CEO ta’ Espressif.
Espressif valuri qari u ideat. Peress li l-aġġornament kontinwu tat-teknoloġija tal-IoT joħloq rekwiżiti ogħla fuq l-inġiniera, kif nistgħu ngħinu aktar nies biex jaħkmu malajr iċ-ċipep tal-IoT, is-sistemi operattivi, l-oqfsa tas-softwer, l-iskemi tal-applikazzjoni u l-prodotti tas-servizz tal-cloud? Kif jgħid il-qal, aħjar li tgħallem raġel jistad milli tagħtih ħut. F'sessjoni ta 'brainstorming, ġara lilna li nistgħu niktbu ktieb biex nissolvu b'mod sistematiku l-għarfien ewlieni tal-iżvilupp tal-IoT. Aħna laqtu, malajr ġabar grupp ta 'inġiniera anzjani, u għaqqad l-esperjenza tat-tim tekniku fl-ipprogrammar inkorporat, ħardwer IoT u żvilupp ta' softwer, kollha jikkontribwixxu għall-pubblikazzjoni ta 'dan il-ktieb. Fil-proċess tal-kitba, ippruvajna nagħmlu l-almu tagħna biex inkunu oġġettivi u ġusti, imqaxxra mill-cocoon, u nużaw espressjonijiet konċiżi biex ngħidu l-kumplessità u s-seħer tal-Internet tal-Oġġetti. Aħna ġabar fil-qosor bir-reqqa l-mistoqsijiet komuni, irreferajna għar-rispons u s-suġġerimenti tal-komunità, sabiex inwieġbu b'mod ċar il-mistoqsijiet li ltaqgħu magħhom fil-proċess ta 'żvilupp, u nipprovdu linji gwida prattiċi għall-iżvilupp tal-IoT għat-tekniċi rilevanti u dawk li jieħdu d-deċiżjonijiet.
Struttura tal-Ktieb
Dan il-ktieb jieħu perspettiva ċċentrata fuq l-inġinier u jesponi l-għarfien meħtieġ għall-iżvilupp tal-proġett IoT pass pass. Huwa magħmul minn erba' partijiet, kif ġej:
· Tħejjija (Kapitolu 1): Din il-parti tintroduċi l-arkitettura tal-IoT, qafas ta 'proġett tipiku tal-IoT, il-pjattaforma tas-sħab ESP RainMakerr, u l-ambjent tal-iżvilupp ESP-IDF, sabiex tistabbilixxi pedament sod għall-iżvilupp tal-proġett IoT.
· Żvilupp tal-ħardwer u tas-sewwieq (Kapitolu 5): Ibbażat fuq iċ-chipset ESP6-C32, din il-parti telabora fuq is-sistema minima tal-ħardwer u l-iżvilupp tas-sewwieq, u timplimenta l-kontroll tad-dimming, il-gradazzjoni tal-kulur, u l-komunikazzjoni mingħajr fili.
· Komunikazzjoni u Kontroll mingħajr Fili (Kapitolu 7): Din il-parti tispjega l-iskema ta 'konfigurazzjoni Wi-Fi intelliġenti bbażata fuq ċippa ESP11-C32, protokolli ta' kontroll lokali u sħab, u kontroll lokali u remot ta 'apparati. Jipprovdi wkoll skemi għall-iżvilupp ta’ apps għall-ismartphone, upgrade tal-firmware, u ġestjoni tal-verżjoni.
· Ottimizzazzjoni u Produzzjoni tal-Massa (Kapitolu 12-15): Din il-parti hija maħsuba għal applikazzjonijiet IoT avvanzati, li tiffoka fuq l-ottimizzazzjoni ta 'prodotti fil-ġestjoni tal-enerġija, ottimizzazzjoni ta' enerġija baxxa, u sigurtà msaħħa. Tintroduċi wkoll il-ħruq u l-ittestjar tal-firmware fil-produzzjoni tal-massa, u kif jiġu djanjostikati l-istatus tat-tħaddim u r-reġistri tal-firmware tal-apparat permezz tal-pjattaforma ta 'monitoraġġ remot ESP Insights.

Dwar il-Kodiċi Sors
Qarrejja jistgħu jmexxu l-example programmi f'dan il-ktieb, jew billi ddaħħal il-kodiċi manwalment jew billi tuża l-kodiċi tas-sors li jakkumpanja l-ktieb. Aħna nenfasizzaw il-kombinazzjoni ta 'teorija u prattika, u b'hekk nistabbilixxu taqsima Prattika bbażata fuq il-proġett Smart Light fi kważi kull kapitolu. Il-kodiċijiet kollha huma open source. Il-qarrejja huma mistiedna jniżżlu l-kodiċi tas-sors u jiddiskutuh fit-taqsimiet relatati ma 'dan il-ktieb fuq GitHub u l-forum uffiċjali tagħna esp32.com. Il-kodiċi open-source ta' dan il-ktieb huwa soġġett għat-termini tal-Liċenzja Apache 2.0.
Nota tal-Awtur
Dan il-ktieb huwa prodott uffiċjalment minn Espressif Systems u huwa miktub mill-inġiniera anzjani tal-kumpanija. Huwa adattat għal maniġers u persunal ta 'R&D f'industriji relatati mal-IoT, għalliema u studenti ta' kumpanniji prinċipali relatati, u dilettanti fil-qasam tal-Internet tal-Oġġetti. Nittamaw li dan il-ktieb jista’ jservi bħala manwal tax-xogħol, referenza, u ktieb fuq il-komodina, biex ikun bħal tutur u ħabib tajjeb.
Waqt il-kumpilazzjoni ta’ dan il-ktieb, irreferejna għal xi riżultati ta’ riċerka rilevanti ta’ esperti, studjużi u tekniċi f’pajjiżhom u barra, u għamilna l-almu tagħna biex niċċitawhom skont in-normi akkademiċi. Madankollu, huwa inevitabbli li jkun hemm xi ommissjonijiet, għalhekk hawnhekk nixtiequ nesprimu r-rispett profond u l-gratitudni tagħna lill-awturi rilevanti kollha. Barra minn hekk, ikkwotajna informazzjoni mill-Internet, għalhekk nixtiequ nirringrazzjaw lill-awturi u l-pubblikaturi oriġinali u niskużaw ruħna li ma nistgħux nindikaw is-sors ta’ kull biċċa informazzjoni.
Sabiex nipproduċu ktieb ta 'kwalità għolja, organizzajna rawnds ta' diskussjonijiet interni, u tgħallimna mis-suġġerimenti u r-rispons tal-qarrejja tal-prova u edituri tal-pubblikaturi. Hawnhekk, nixtiequ nirringrazzjawkom mill-ġdid għall-għajnuna tagħkom li kollha kkontribwew għal dan ix-xogħol ta' suċċess.
L-aħħar, iżda l-aktar importanti, grazzi lil kulħadd fl-Espressif li tant ħadem għat-twelid u l-popolarizzazzjoni tal-prodotti tagħna.
L-iżvilupp ta 'proġetti IoT jinvolvi firxa wiesgħa ta' għarfien. Limitati għat-tul tal-ktieb, kif ukoll il-livell u l-esperjenza tal-awtur, ommissjonijiet huma inevitabbli. Għalhekk, ġentilment nitolbu li l-esperti u l-qarrejja jikkritikaw u jikkoreġu l-iżbalji tagħna. Jekk għandek xi suġġerimenti għal dan il-ktieb, jekk jogħġbok ikkuntattjana fuq book@espressif.com. Aħna ħerqana għall-feedback tiegħek.

Kif tuża dan il-ktieb?
Il-kodiċi tal-proġetti f'dan il-ktieb ġie open source. Tista' tniżżlu mir-repożitorju GitHub tagħna u taqsam il-ħsibijiet u l-mistoqsijiet tiegħek fuq il-forum uffiċjali tagħna. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Matul il-ktieb, se jkun hemm partijiet enfasizzati kif muri hawn taħt.
Kodiċi tas-sors F'dan il-ktieb, aħna nenfasizzaw il-kombinazzjoni tat-teorija u l-prattika, u b'hekk nistabbilixxu taqsima Prattika dwar il-proġett Smart Light fi kważi kull kapitolu. Il-passi korrispondenti u l-paġna tas-sors se jiġu mmarkati bejn żewġ linji li jibdew bil- tag Kodiċi tas-sors.
NOTA/SUĠIRRI Dan huwa fejn tista' ssib xi informazzjoni kritika u tfakkira biex tiddibaggja b'suċċess il-programm tiegħek. Se jkunu mmarkati bejn żewġ linji ħoxnin li jibdew bil- tag NOTA jew TIPS.
Ħafna mill-kmandi f'dan il-ktieb huma esegwiti taħt Linux, imqanqla mill-karattru "$". Jekk il-kmand jeħtieġ privileġġi ta 'superuser biex tesegwixxi, il-pront jiġi sostitwit b' "#". Il-pront tal-kmand fuq sistemi Mac huwa “%”, kif użat fit-Taqsima 4.2.3 Installazzjoni ta’ ESP-IDF fuq Mac.
It-test tal-korp f'dan il-ktieb se jiġi stampat fi Charter, filwaqt li l-kodiċi examples, komponenti, funzjonijiet, varjabbli, kodiċi file ismijiet, direttorji tal-kodiċi, u strings se jkunu f'Courier New.
Kmandi jew testi li jeħtieġ li jiddaħħlu mill-utent, u kmandi li jistgħu jiddaħħlu billi tagħfas il-buttuna "Enter" se jiġu stampati b'tipa grassa Courier New. Zkuk u blokki tal-kodiċi se jiġu ppreżentati f'kaxxi blu ċar.
Example:
It-tieni, uża esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py biex tiġġenera l-partizzjoni binarja NVS file fuq l-ospitant tal-iżvilupp bil-kmand li ġej:
$ python $IDF PATH/komponenti/nvs flash/nvs partition generator/nvs partition gen.py –input mass prod.csv –output mass prod.bin –size NVS PARTITION SIZE

Kapitolu 1

Introduzzjoni

biex

IoT

Fl-aħħar tas-seklu 20, biż-żieda tan-netwerks tal-kompjuter u t-teknoloġiji tal-komunikazzjoni, l-Internet integrat malajr fil-ħajja tan-nies. Hekk kif it-teknoloġija tal-Internet tkompli timmatura, twieldet l-idea tal-Internet tal-Oġġetti (IoT). Litteralment, IoT tfisser Internet fejn l-affarijiet huma konnessi. Filwaqt li l-Internet oriġinali jkisser il-limiti tal-ispazju u l-ħin u jnaqqas id-distanza bejn "persuna u persuna", l-IoT jagħmel "l-affarijiet" parteċipant importanti, u jġib "nies" u "affarijiet" eqreb flimkien. Fil-futur prevedibbli, l-IoT huwa stabbilit li jsir il-forza li tmexxi l-industrija tal-informazzjoni.
Allura, x'inhu l-Internet tal-Oġġetti?
Huwa diffiċli li tiddefinixxi b'mod preċiż l-Internet tal-Oġġetti, peress li t-tifsira u l-ambitu tiegħu qed jevolvu kontinwament. Fl-1995, Bill Gates qajjem għall-ewwel darba l-idea tal-IoT fil-ktieb tiegħu The Road Ahead. Fi kliem sempliċi, l-IoT jippermetti lill-oġġetti jiskambjaw informazzjoni bejniethom permezz tal-Internet. L-għan aħħari tiegħu huwa li jistabbilixxi "Internet ta' Kollox". Din hija interpretazzjoni bikrija tal-IoT, kif ukoll fantasija tat-teknoloġija futura. Tletin sena wara, bl-iżvilupp mgħaġġel tal-ekonomija u t-teknoloġija, il-fantasija qed tidħol f'realtà. Minn apparat intelliġenti, djar intelliġenti, bliet intelliġenti, Internet tal-Vetturi u apparat li jintlibes, sal-"metaverse" appoġġjat mit-teknoloġiji tal-IoT, kunċetti ġodda qed jitfaċċaw kontinwament. F'dan il-kapitolu, se nibdew bi spjegazzjoni tal-arkitettura tal-Internet tal-Oġġetti, u mbagħad nintroduċu l-aktar applikazzjoni komuni tal-IoT, id-dar intelliġenti, sabiex ngħinuk tikseb fehim ċar tal-IoT.
1.1 Arkitettura tal-IoT
L-Internet tal-Oġġetti jinvolvi teknoloġiji multipli li għandhom ħtiġijiet u forom ta' applikazzjoni differenti f'industriji differenti. Sabiex issolvi l-istruttura, it-teknoloġiji ewlenin u l-karatteristiċi tal-applikazzjoni tal-IoT, huwa meħtieġ li tiġi stabbilita arkitettura unifikata u sistema teknika standard. F'dan il-ktieb, l-arkitettura ta 'l-IoT hija sempliċement maqsuma f'erba' saffi: saff ta 'perċezzjoni u kontroll, saff tan-netwerk, saff ta' pjattaforma u saff ta 'applikazzjoni.
Perċezzjoni u Saff ta 'Kontroll Bħala l-aktar element bażiku tal-arkitettura tal-IoT, is-saff ta' perċezzjoni u kontroll huwa l-qalba biex tirrealizza s-sensing komprensiv tal-IoT. Il-funzjoni ewlenija tagħha hija li tiġbor, tidentifika u tikkontrolla l-informazzjoni. Tikkonsisti f'varjetà ta 'apparati bil-kapaċità ta' perċezzjoni,
3

identifikazzjoni, kontroll u eżekuzzjoni, u huwa responsabbli għall-irkupru u l-analiżi tad-dejta bħall-proprjetajiet tal-materjal, ix-xejriet tal-imġieba, u l-istatus tal-apparat. B'dan il-mod, l-IoT jasal biex jagħraf id-dinja fiżika reali. Barra minn hekk, is-saff huwa wkoll kapaċi jikkontrolla l-istatus tal-apparat.
L-aktar apparati komuni ta 'dan is-saff huma diversi sensuri, li għandhom rwol importanti fil-ġbir u l-identifikazzjoni ta' informazzjoni. Is-sensuri huma bħal organi sensorji tal-bniedem, bħal sensors fotosensittivi ugwali għall-vista, sensuri akustiċi għas-smigħ, sensuri tal-gass biex jinxtammu, u sensuri sensittivi għall-pressjoni u t-temperatura għall-mess. B'dawn l-"organi sensorji" kollha, l-oġġetti jsiru "ħajja" u kapaċi ta 'perċezzjoni, rikonoxximent u manipulazzjoni intelliġenti tad-dinja fiżika.
Saff tan-Netwerk Il-funzjoni ewlenija tas-saff tan-netwerk hija li tittrasmetti informazzjoni, inkluża data miksuba mis-saff ta 'perċezzjoni u kontroll għal mira speċifikata, kif ukoll kmandi maħruġa mis-saff ta' applikazzjoni lura għas-saff ta 'perċezzjoni u kontroll. Iservi bħala pont ta 'komunikazzjoni importanti li jgħaqqad saffi differenti ta' sistema IoT. Biex jitwaqqaf mudell bażiku tal-Internet tal-Oġġetti, jinvolvi żewġ passi biex jiġu integrati oġġetti f'netwerk: aċċess għall-Internet u trasmissjoni permezz tal-Internet.
L-aċċess għall-Internet tal-Internet jippermetti interkonnessjoni bejn persuna u persuna, iżda jonqos milli jinkludi l-affarijiet fil-familja kbira. Qabel il-miġja tal-IoT, il-biċċa l-kbira tal-affarijiet ma kinux "kapaċità tan-netwerk". Grazzi għall-iżvilupp kontinwu tat-teknoloġija, l-IoT jirnexxielu jgħaqqad l-affarijiet mal-Internet, u b'hekk jirrealizza l-interkonnessjoni bejn "nies u affarijiet", u "affarijiet u affarijiet". Hemm żewġ modi komuni biex tiġi implimentata l-konnessjoni tal-Internet: aċċess għan-netwerk bil-fili u aċċess għan-netwerk mingħajr fili.
Metodi ta 'aċċess għan-netwerk bil-fili jinkludu Ethernet, komunikazzjoni serjali (eż., RS-232, RS-485) u USB, filwaqt li l-aċċess għan-netwerk mingħajr fili jiddependi fuq komunikazzjoni mingħajr fili, li tista' tiġi maqsuma aktar f'komunikazzjoni mingħajr fili fuq medda qasira u komunikazzjoni mingħajr fili fuq medda twila.
Komunikazzjoni mingħajr fili fuq medda qasira tinkludi ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC), u Identifikazzjoni tal-Frekwenza tar-Radju (RFID). Il-komunikazzjoni mingħajr fili fuq medda twila tinkludi Komunikazzjoni Mtejba tat-Tip ta 'Magni (eMTC), LoRa, Internet tal-Oġġetti ta' Banda Dejqa (NB-IoT), 2G, 3G, 4G, 5G, eċċ.
Trażmissjoni permezz ta' l-Internet Metodi differenti ta' aċċess għall-Internet iwasslu għal link ta' trażmissjoni fiżika korrispondenti tad-data. Il-ħaġa li jmiss hija li tiddeċiedi liema protokoll ta 'komunikazzjoni tuża biex tittrasmetti d-data. Meta mqabbel mat-terminals tal-Internet, il-biċċa l-kbira tat-terminals tal-IoT bħalissa għandhom inqas
4 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

riżorsi disponibbli, bħall-prestazzjoni tal-ipproċessar, il-kapaċità tal-ħażna, ir-rata tan-netwerk, eċċ., Għalhekk huwa meħtieġ li tagħżel protokoll ta 'komunikazzjoni li jokkupa inqas riżorsi fl-applikazzjonijiet tal-IoT. Hemm żewġ protokolli ta' komunikazzjoni li jintużaw ħafna llum: Message Queuing Telemetry Transport (MQTT) u Constrained Application Protocol (CoAP).
Saff tal-Pjattaforma Is-saff tal-pjattaforma jirreferi prinċipalment għall-pjattaformi tas-sħab tal-IoT. Meta t-terminals kollha tal-IoT ikunu f'netwerk, id-dejta tagħhom trid tiġi aggregata fuq pjattaforma tal-cloud tal-IoT biex tiġi kkalkulata u maħżuna. Is-saff tal-pjattaforma jappoġġja prinċipalment applikazzjonijiet IoT biex jiffaċilitaw l-aċċess u l-ġestjoni ta 'apparati massivi. Huwa jgħaqqad terminali IoT mal-pjattaforma tas-sħab, jiġbor data tat-terminal, u joħroġ kmandi lit-terminals, sabiex jimplimenta kontroll mill-bogħod. Bħala servizz intermedju biex jassenja tagħmir għall-applikazzjonijiet tal-industrija, is-saff tal-pjattaforma għandu rwol ta 'konnessjoni fl-arkitettura IoT kollha, li jġorr loġika tan-negozju astratta u mudell standardizzat tad-dejta ċentrali, li mhux biss jista' jirrealizza aċċess rapidu ta 'apparati, iżda jipprovdi wkoll kapaċitajiet modulari qawwija biex tissodisfa diversi ħtiġijiet fix-xenarji ta 'applikazzjoni ta' l-industrija. Is-saff tal-pjattaforma jinkludi prinċipalment moduli funzjonali bħal aċċess għall-apparat, ġestjoni tal-apparat, ġestjoni tas-sigurtà, komunikazzjoni tal-messaġġi, tħaddim u manutenzjoni ta 'monitoraġġ, u applikazzjonijiet tad-dejta.
· Aċċess għall-apparat, li tirrealizza l-konnessjoni u l-komunikazzjoni bejn terminali u pjattaformi tal-cloud tal-IoT.
· Ġestjoni tal-apparat, inklużi funzjonijiet bħall-ħolqien tal-apparat, il-manutenzjoni tal-apparat, il-konverżjoni tad-dejta, is-sinkronizzazzjoni tad-dejta, u d-distribuzzjoni tal-apparat.
· Ġestjoni tas-sigurtà, li tiżgura s-sigurtà tat-trażmissjoni tad-dejta tal-IoT mill-perspettivi tal-awtentikazzjoni tas-sigurtà u s-sigurtà tal-komunikazzjoni.
· Komunikazzjoni tal-messaġġi, inklużi tliet direzzjonijiet ta 'trażmissjoni, jiġifieri, it-terminal jibgħat data lill-pjattaforma tas-sħab tal-IoT, il-pjattaforma tas-sħab tal-IoT tibgħat data lin-naħa tas-server jew pjattaformi oħra tas-sħab tal-IoT, u n-naħa tas-server tikkontrolla mill-bogħod apparati tal-IoT.
· Monitoraġġ O&M, li jinvolvi monitoraġġ u dijanjosi, upgrade tal-firmware, debugging onlajn, servizzi ta’ log, eċċ.
· Applikazzjonijiet tad-dejta, li jinvolvu l-ħażna, l-analiżi u l-applikazzjoni tad-dejta.
Saff ta 'Applikazzjoni Is-saff ta' applikazzjoni juża d-dejta mis-saff tal-pjattaforma biex jimmaniġġja l-applikazzjoni, jiffiltrahom u jipproċessahom b'għodod bħal databases u softwer ta 'analiżi. Id-dejta li tirriżulta tista’ tintuża għal applikazzjonijiet IoT fid-dinja reali bħal kura tas-saħħa intelliġenti, agrikoltura intelliġenti, djar intelliġenti u bliet intelliġenti.
Naturalment, l-arkitettura tal-IoT tista 'tiġi suddiviża f'aktar saffi, iżda tikkonsisti minn kemm saffi, il-prinċipju sottostanti jibqa' essenzjalment l-istess. Tagħlim
Kapitolu 1. Introduzzjoni għall-IoT 5

dwar l-arkitettura tal-IoT jgħin napprofondixxu l-fehim tagħna tat-teknoloġiji tal-IoT u nibnu proġetti tal-IoT kompletament funzjonali.
1.2 Applikazzjoni tal-IoT fi Djar Intelliġenti
L-IoT ippenetra fl-oqsma kollha tal-ħajja, u l-applikazzjoni tal-IoT l-aktar relatata mill-qrib magħna hija d-dar intelliġenti. Ħafna apparat tradizzjonali issa huma mgħammra b'apparat IoT wieħed jew aktar, u ħafna djar mibnija ġodda huma ddisinjati b'teknoloġiji IoT mill-bidu. Il-Figura 1.1 turi xi apparat tad-dar intelliġenti komuni.
Figura 1.1. Apparati tad-dar intelliġenti komuni L-iżvilupp tad-dar intelliġenti jista 'jkun sempliċiment maqsum fi prodott intelliġenti stage, interkonnessjoni tax-xena stage u intelliġenti stage, kif muri fil-Figura 1.2.
Figura 1.2. Żvilupp stage tad-dar intelliġenti 6 ESP32-C3 Avventura bla Fili: Gwida Komprensiva għall-IoT

L-ewwel stage hija dwar prodotti intelliġenti. Differenti minn djar tradizzjonali, fi djar intelliġenti, apparati IoT jirċievu sinjali b'sensors, u huma f'netwerk permezz ta 'teknoloġiji ta' komunikazzjoni mingħajr fili bħal Wi-Fi, Bluetooth LE u ZigBee. L-utenti jistgħu jikkontrollaw prodotti intelliġenti f'varjetà ta 'modi, bħal apps smartphone, assistenti tal-vuċi, kontroll intelliġenti tal-kelliem, eċċ. It-tieni stage tiffoka fuq l-interkonnessjoni tax-xena. F'dan is-stage, l-iżviluppaturi m'għadhomx jikkunsidraw li jikkontrollaw prodott intelliġenti wieħed, iżda jgħaqqdu żewġ prodotti intelliġenti jew aktar, awtomatizzati sa ċertu punt, u finalment jiffurmaw modalità xena tad-dwana. Per example, meta l-utent tagħfas kwalunkwe buttuna tal-modalità xena, id-dwal, il-purtieri, u l-arja kondizzjonata se jiġu adattati awtomatikament għall-presets. Naturalment, hemm il-prerekwiżit li l-loġika tal-kollegament tiġi stabbilita faċilment, inklużi l-kundizzjonijiet ta' attivazzjoni u l-azzjonijiet ta' eżekuzzjoni. Immaġina li l-modalità tat-tisħin tal-arja kondizzjonata tiġi attivata meta t-temperatura ta 'ġewwa tinżel taħt l-10 ° C; li fis-7 ta 'filgħodu, tindaqq mużika biex tqum lill-utent, jinfetħu purtieri intelliġenti, u l-cooker tar-ross jew toaster tal-ħobż jibda permezz ta' sokit intelliġenti; hekk kif l-utent iqum u jispiċċa jaħsel, il-kolazzjon huwa diġà serva, sabiex ma jkunx hemm dewmien biex tmur għax-xogħol. Kemm saret konvenjenti ħajjitna! It-tielet stage tmur għall-intelliġenza stage. Hekk kif aktar apparati tad-dar intelliġenti jiġu aċċessati, hekk ukoll it-tipi ta 'dejta ġġenerati. Bl-għajnuna ta 'cloud computing, big data u intelliġenza artifiċjali, huwa bħal "moħħ aktar intelliġenti" tħawwel fi djar intelliġenti, li m'għadhomx jeħtieġu kmandi frekwenti mill-utent. Jiġbru dejta minn interazzjonijiet preċedenti u jitgħallmu x-xejriet u l-preferenzi tal-imġiba tal-utent, sabiex awtomatizzaw l-attivitajiet, inkluż li jipprovdu rakkomandazzjonijiet għat-teħid tad-deċiżjonijiet. Bħalissa, ħafna djar intelliġenti huma fix-xena interkonnessjoni stage. Hekk kif ir-rata ta 'penetrazzjoni u l-intelliġenza ta' prodotti intelliġenti jiżdiedu, l-ostakli bejn il-protokolli ta 'komunikazzjoni qed jitneħħew. Fil-futur, djar intelliġenti huma marbuta li jsiru verament "intelliġenti", bħas-sistema AI Jarvis f'Iron Man, li mhux biss tista 'tgħin lill-utent jikkontrolla diversi apparati, jimmaniġġja l-affarijiet ta' kuljum, iżda għandu wkoll qawwa ta 'kompjuters super u kapaċità ta' ħsieb. Fl-intelliġenti stage, il-bnedmin se jirċievu servizzi aħjar kemm fil-kwantità kif ukoll fil-kwalità.
Kapitolu 1. Introduzzjoni għall-IoT 7

8 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Kapitolu Introduzzjoni u Prattika ta' 2 Proġetti IoT
Fil-Kapitolu 1, introduċejna l-arkitettura tal-IoT, u r-rwoli u l-interrelazzjonijiet tas-saff ta 'perċezzjoni u kontroll, saff tan-netwerk, saff ta' pjattaforma, u saff ta 'applikazzjoni, kif ukoll l-iżvilupp ta' dar intelliġenti. Madankollu, bħal meta nitgħallmu npinġu, li nkunu nafu l-għarfien teoretiku huwa 'l bogħod milli biżżejjed. Irridu "niħnu idejna" biex inpoġġu l-proġetti tal-IoT fil-prattika sabiex verament nikkontrollaw it-teknoloġija. Barra minn hekk, meta proġett jiċċaqlaq għall-produzzjoni tal-massa stage, huwa meħtieġ li jitqiesu aktar fatturi bħal konnessjoni tan-netwerk, konfigurazzjoni, interazzjoni tal-pjattaforma tas-sħab tal-IoT, ġestjoni u aġġornamenti tal-firmware, ġestjoni tal-produzzjoni tal-massa, u konfigurazzjoni tas-sigurtà. Allura, għal xiex għandna bżonn nagħtu attenzjoni meta niżviluppaw proġett komplet tal-IoT? Fil-Kapitolu 1, aħna semmejna li dar intelliġenti hija waħda mill-aktar xenarji komuni ta 'applikazzjoni IoT, u dwal intelliġenti huma wieħed mill-apparati l-aktar bażiċi u prattiċi, li jistgħu jintużaw fid-djar, lukandi, gyms, sptarijiet, eċċ. Għalhekk, f' dan il-ktieb, se nieħdu l-kostruzzjoni ta 'proġett ta' dawl intelliġenti bħala l-punt tat-tluq, nispjegaw il-komponenti u l-karatteristiċi tiegħu, u nipprovdu gwida dwar l-iżvilupp tal-proġett. Nittamaw li tista 'tiġbed inferenzi minn dan il-każ biex toħloq aktar applikazzjonijiet IoT.
2.1 Introduzzjoni għal Proġetti IoT Tipiċi
F'termini ta 'żvilupp, moduli funzjonali bażiċi ta' proġetti IoT jistgħu jiġu kklassifikati fi żvilupp ta 'softwer u ħardwer ta' apparati IoT, żvilupp ta 'applikazzjoni tal-klijenti, u żvilupp ta' pjattaforma ta 'sħab IoT. Huwa importanti li jiġu ċċarati l-moduli funzjonali bażiċi, li se jiġu deskritti aktar f'din it-taqsima.
2.1.1 Moduli Bażiċi għal Apparat IoT Komuni
L-iżvilupp tas-softwer u l-ħardwer tal-apparati tal-IoT jinkludu l-moduli bażiċi li ġejjin: Ġbir tad-dejta
Bħala s-saff tal-qiegħ tal-arkitettura tal-IoT, l-apparati tal-IoT tas-saff tal-perċezzjoni u l-kontroll jgħaqqdu sensuri u apparati permezz taċ-ċipep u l-periferali tagħhom biex jiksbu l-ġbir tad-dejta u l-kontroll tal-operat.
9

L-irbit tal-kont u l-konfigurazzjoni inizjali Għall-biċċa l-kbira tat-tagħmir IoT, l-irbit tal-kontijiet u l-konfigurazzjoni inizjali jitlestew fi proċess operattiv wieħed, pereżempjuample, konnessjoni apparati ma 'utenti billi tikkonfigura netwerk Wi-Fi.
Interazzjoni mal-pjattaformi tal-cloud tal-IoT Biex timmonitorja u tikkontrolla l-apparati tal-IoT, huwa wkoll meħtieġ li tgħaqqadhom mal-pjattaformi tal-cloud tal-IoT, sabiex tagħti kmandi u tirrapporta l-istatus permezz tal-interazzjoni bejn xulxin.
Kontroll tal-apparat Meta konness mal-pjattaformi tal-cloud tal-IoT, l-apparati jistgħu jikkomunikaw mal-cloud u jiġu rreġistrati, marbuta jew ikkontrollati. L-utenti jistgħu jitolbu l-istatus tal-prodott u jwettqu operazzjonijiet oħra fuq l-app tal-ismartphone permezz ta’ pjattaformi tal-cloud tal-IoT jew protokolli ta’ komunikazzjoni lokali.
Aġġornament tal-firmware L-apparati tal-IoT jistgħu wkoll jiksbu aġġornament tal-firmware ibbażat fuq il-ħtiġijiet tal-manifatturi. Billi tirċievi kmandi mibgħuta mill-cloud, l-aġġornament tal-firmware u l-ġestjoni tal-verżjoni jiġu realizzati. B'din il-karatteristika ta 'aġġornament tal-firmware, tista' kontinwament ittejjeb il-funzjonijiet tal-apparati tal-IoT, issolvi d-difetti, u ttejjeb l-esperjenza tal-utent.
2.1.2 Moduli Bażiċi tal-Applikazzjonijiet tal-Klijent
L-applikazzjonijiet tal-klijenti (eż., apps għall-ismartphone) jinkludu prinċipalment il-moduli bażiċi li ġejjin:
Sistema ta' kont u awtorizzazzjoni Jappoġġja awtorizzazzjoni ta' kont u apparat.
Kontroll tal-apparat Apps tal-ismartphone huma ġeneralment mgħammra b'funzjonijiet ta 'kontroll. L-utenti jistgħu faċilment jikkonnettjaw ma 'apparati IoT, u jimmaniġġjawhom f'kull ħin, kullimkien permezz ta' apps għall-ismartphone. F'dar intelliġenti fid-dinja reali, l-apparati huma l-aktar ikkontrollati permezz ta 'apps ta' smartphone, li mhux biss jippermettu ġestjoni intelliġenti ta 'apparati, iżda wkoll jiffrankaw l-ispiża tal-ħaddiema. Għalhekk, il-kontroll tal-apparat huwa essenzjali għall-applikazzjonijiet tal-klijenti, bħall-kontroll tal-attribut tal-funzjoni tal-apparat, il-kontroll tax-xena, l-iskedar, il-kontroll mill-bogħod, il-konnessjoni tal-apparat, eċċ Utenti tad-dar intelliġenti jistgħu wkoll jippersonalizzaw xeni skont il-ħtiġijiet personali, jikkontrollaw id-dawl, apparat domestiku, entratura , eċċ., Biex tagħmel il-ħajja tad-dar aktar komda u konvenjenti. Jistgħu ħin l-arja kondizzjonata, itfiha mill-bogħod, iqabbdu d-dawl tal-hallway awtomatikament ladarba l-bieb jinfetaħ, jew jaqilbu għall-modalità "teatru" b'buttuna waħda.
Notifika L-applikazzjonijiet tal-Klijent jaġġornaw l-istatus f'ħin reali tal-apparati tal-IoT, u jibagħtu twissijiet meta l-apparati jmorru anormali.
10 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Servizz tal-konsumatur ta 'wara l-bejgħ L-apps tal-ismartphone jistgħu jipprovdu servizzi ta' wara l-bejgħ għall-prodotti, biex isolvu problemi relatati mal-fallimenti tal-apparat tal-IoT u l-operazzjonijiet tekniċi fil-ħin.
Funzjonijiet dehru Biex jintlaħqu l-ħtiġijiet ta 'utenti differenti, jistgħu jiżdiedu funzjonijiet oħra, bħal Ħawwad, NFC, GPS, eċċ. Il-GPS jista' jgħin biex tissettja l-eżattezza tal-operazzjonijiet tax-xena skont il-post u d-distanza, filwaqt li l-funzjoni Ħawwad tippermetti lill-utenti jistabbilixxu l- kmandi li għandhom jiġu esegwiti għal apparat jew xena speċifika billi tħawwad.
2.1.3 Introduzzjoni għall-Pjattaformi Komuni tal-IoT Cloud
Il-pjattaforma tas-sħab tal-IoT hija pjattaforma all-in-one li tintegra funzjonijiet bħall-ġestjoni tal-apparat, il-komunikazzjoni tas-sigurtà tad-dejta u l-ġestjoni tan-notifika. Skont il-grupp fil-mira u l-aċċessibbiltà tagħhom, il-pjattaformi tal-cloud tal-IoT jistgħu jinqasmu fi pjattaformi tal-cloud tal-IoT pubbliċi (minn hawn 'il quddiem imsejħa "sħab pubbliku") u pjattaformi tal-cloud tal-IoT privati ​​(minn hawn 'il quddiem imsejħa "sħab privat").
Is-sħab pubbliku normalment jindika pjattaformi tal-cloud tal-IoT kondiviżi għal intrapriżi jew individwi, operati u miżmuma minn fornituri tal-pjattaformi, u kondiviżi permezz tal-Internet. Jista 'jkun b'xejn jew bi prezz baxx, u jipprovdi servizzi fin-netwerk pubbliku miftuħ kollu, bħal Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, eċċ. Bħala pjattaforma ta' appoġġ, sħab pubbliku jista' jintegra fornituri tas-servizz upstream u utenti finali downstream biex joħolqu katina ta' valur u ekosistema ġodda.
Cloud privat huwa mibni għall-użu tal-intrapriża biss, u b'hekk jiggarantixxi l-aħjar kontroll fuq id-dejta, is-sigurtà u l-kwalità tas-servizz. Is-servizzi u l-infrastruttura tiegħu jinżammu separatament mill-intrapriżi, u l-ħardwer u s-softwer ta 'appoġġ huma wkoll iddedikati għal utenti speċifiċi. L-intrapriżi jistgħu jippersonalizzaw is-servizzi tal-cloud biex jissodisfaw il-ħtiġijiet tan-negozju tagħhom. Fil-preżent, xi manifatturi tad-dar intelliġenti diġà kisbu pjattaformi privati ​​tas-sħab tal-IoT u żviluppaw applikazzjonijiet tad-dar intelliġenti bbażati fuqhom.
Sħab pubbliku u sħab privat għandhom l-avvanz tagħhom stesstages, li se tiġi spjegata aktar tard.
Biex tinkiseb konnettività tal-komunikazzjoni, huwa meħtieġ li jitlesta mill-inqas żvilupp inkorporat fuq in-naħa tal-apparat, flimkien ma 'servers tan-negozju, pjattaformi tas-sħab tal-IoT, u apps tal-ismartphone. Quddiem proġett daqshekk kbir, is-sħab pubbliku normalment jipprovdi kits ta' żvilupp ta' softwer għal apps fuq in-naħa tal-apparat u smartphone biex iħaffef il-proċess. Kemm il-cloud pubbliku kif ukoll dak privat jipprovdu servizzi li jinkludu aċċess għall-apparat, ġestjoni tal-apparat, shadow tal-apparat, u tħaddim u manutenzjoni.
Il-pjattaformi tal-cloud tal-IoT tal-aċċess għall-apparat jeħtieġ li jipprovdu mhux biss interfaces għall-aċċess tal-apparat li jużaw protokolli
Kapitolu 2. Introduzzjoni u Prattika ta’ Proġetti IoT 11

bħal MQTT, CoAP, HTTPS, u WebSocket, iżda wkoll il-funzjoni tal-awtentikazzjoni tas-sigurtà tal-apparat biex timblokka tagħmir falsifikat u illegali, tnaqqas b'mod effettiv ir-riskju li tiġi kompromessa. Tali awtentikazzjoni normalment tappoġġja mekkaniżmi differenti, għalhekk meta l-apparati huma prodotti bil-massa, huwa meħtieġ li jiġi assenjat minn qabel iċ-ċertifikat tal-apparat skont il-mekkaniżmu ta 'awtentikazzjoni magħżul u jinħaraq fil-mezzi.
Ġestjoni tal-apparat Il-funzjoni tal-ġestjoni tal-apparat ipprovduta mill-pjattaformi tas-sħab tal-IoT tista 'mhux biss tgħin lill-manifatturi jimmonitorjaw l-istatus tal-attivazzjoni u l-istatus onlajn tal-apparati tagħhom f'ħin reali, iżda tippermetti wkoll għażliet bħaż-żieda / it-tneħħija ta' apparati, l-irkupru, iż-żieda / it-tħassir ta 'gruppi, l-aġġornament tal-firmware , u l-ġestjoni tal-verżjoni.
Device shadow IoT cloud platforms jistgħu joħolqu verżjoni virtwali persistenti (device shadow) għal kull apparat, u l-istatus tad-dell tal-apparat jista 'jiġi sinkronizzat u miksub minn app smartphone jew apparat ieħor permezz ta' protokolli ta 'trażmissjoni tal-Internet. Device shadow jaħżen l-aħħar status irrappurtat u l-istatus mistenni ta 'kull apparat, u anki jekk l-apparat ikun offline, xorta jista' jikseb l-istatus billi jsejjaħ APIs. Device shadow jipprovdi APIs dejjem mixgħula, li jagħmilha aktar faċli biex jinbnew apps tal-ismartphone li jinteraġixxu mal-apparati.
Operazzjoni u manutenzjoni Il-funzjoni O&M tinkludi tliet aspetti: · Dimostrazzjoni ta' informazzjoni statistika dwar apparat u notifiki IoT. · Il-ġestjoni tal-log tippermetti l-irkupru ta 'informazzjoni dwar l-imġieba tal-apparat, il-fluss tal-messaġġ 'il fuq / 'l isfel, u l-kontenut tal-messaġġ. · Id-debugging tal-apparat jappoġġja t-twassil tal-kmand, l-aġġornament tal-konfigurazzjoni, u l-iċċekkjar tal-interazzjoni bejn il-pjattaformi tas-sħab tal-IoT u l-messaġġi tal-apparat.
2.2 Prattika: Proġett Dawl Intelliġenti
Wara l-introduzzjoni teoretika f’kull kapitlu, issib taqsima ta’ prattika relatata mal-proġett Smart Light biex tgħinek tikseb esperjenza prattika. Il-proġett huwa bbażat fuq iċ-ċippa ESP32-C3 ta 'Espressif u ESP RainMaker IoT Cloud Platform, u jkopri ħardwer tal-modulu mingħajr fili fi prodotti tad-dawl intelliġenti, softwer inkorporat għal apparati intelliġenti bbażati fuq ESP32C3, apps smartphone, u interazzjoni ESP RainMaker.
Kodiċi tas-sors Għal tagħlim aħjar u esperjenza ta' żvilupp, il-proġett f'dan il-ktieb ġie opensourced. Tista' tniżżel il-kodiċi tas-sors mir-repożitorju GitHub tagħna fuq https://github. com/espressif/book-esp32c3-iot-projects.
12 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

2.2.1 Struttura tal-Proġett
Il-proġett Smart Light jikkonsisti fi tliet partijiet: i. Apparat tad-dawl intelliġenti bbażat fuq ESP32-C3, responsabbli għall-interazzjoni mal-pjattaformi tas-sħab tal-IoT, u jikkontrolla l-iswiċċ, il-luminożità u t-temperatura tal-kulur tal-LED lamp żibeġ. ii. Apps għall-ismartphones (inklużi apps għall-pilloli li jaħdmu fuq Android u iOS), responsabbli għall-konfigurazzjoni tan-netwerk tal-prodotti tad-dawl intelliġenti, kif ukoll li jfittex u jikkontrolla l-istatus tagħhom.
iii. Pjattaforma sħaba tal-IoT ibbażata fuq ESP RainMaker. Għas-simplifikazzjoni, aħna nqisu l-pjattaforma tal-cloud tal-IoT u s-server tan-negozju kollu kemm hu f'dan il-ktieb. Dettalji dwar ESP RainMaker se jiġu pprovduti fil-Kapitolu 3.
Il-korrispondenza bejn l-istruttura tal-proġett Smart Light u l-arkitettura tal-IoT tidher fil-Figura 2.1.
Figura 2.1. Struttura ta 'proġett ta' dawl intelliġenti
2.2.2 Funzjonijiet tal-Proġett
Diviż skond l-istruttura, il-funzjonijiet ta 'kull parti huma kif ġej. Apparat tad-dawl intelliġenti
· Konfigurazzjoni u konnessjoni tan-netwerk. · Kontroll PWM LED, bħal swiċċ, luminożità, temperatura tal-kulur, eċċ. · Awtomazzjoni jew kontroll tax-xena, eż, swiċċ tal-ħin. · Encryption u boot sigur tal-Flash. · Aġġornament tal-firmware u ġestjoni tal-verżjoni.
Kapitolu 2. Introduzzjoni u Prattika ta’ Proġetti IoT 13

Apps tal-ismartphone · Konfigurazzjoni tan-netwerk u rbit tal-apparat. · Kontroll intelliġenti tal-prodott tad-dawl, bħal swiċċ, luminożità, temperatura tal-kulur, eċċ. · Awtomazzjoni jew settings tax-xena, eż, swiċċ tal-ħin. · Kontroll lokali/remot. · Reġistrazzjoni tal-utent, login, eċċ.
ESP RainMaker IoT cloud platform · Jippermettu aċċess għall-apparat IoT. · Jipprovdu APIs ta’ tħaddim ta’ apparat aċċessibbli għall-apps tal-ismartphone. · Aġġornament tal-firmware u ġestjoni tal-verżjoni.
2.2.3 Preparazzjoni tal-Hardware
Jekk interessat li tpoġġi l-proġett fil-prattika, ser ikollok bżonn ukoll il-ħardwer li ġej: dwal intelliġenti, smartphones, routers Wi-Fi, u kompjuter li jissodisfa r-rekwiżiti ta 'installazzjoni tal-ambjent tal-iżvilupp. Dwal intelliġenti
Id-dwal intelliġenti huma tip ġdid ta 'bozoz, li l-forma tagħhom hija l-istess bħall-bozza inkandexxenti ġenerali. Dawl intelliġenti huwa magħmul minn provvista ta 'enerġija regolata step-down tal-kapaċitatur, modulu mingħajr fili (b'ESP32-C3 inkorporat), kontrollur LED u matriċi LED RGB. Meta konness mal-enerġija, il-15 V DC voltagL-output e wara t-tnaqqis tal-kapaċitatur, ir-rettifika tad-dijodu, u r-regolamentazzjoni jipprovdi enerġija lill-kontrollur LED u l-matriċi LED. Il-kontrollur LED jista 'awtomatikament jibgħat livelli għoljin u baxxi f'ċerti intervalli, jaqleb il-matriċi LED RGB bejn magħluqa (dwal mixgħula) u miftuħa (dwal mitfija), sabiex ikun jista' jarmu cyan, isfar, aħdar, vjola, blu, aħmar, u dawl abjad. Il-modulu mingħajr fili huwa responsabbli għall-konnessjoni mar-router Wi-Fi, jirċievi u jirrapporta l-istatus ta 'dwal intelliġenti, u jibgħat kmandi biex jikkontrolla l-LED.
Figura 2.2. Dawl intelliġenti simulat
Fl-iżvilupp bikri stage, tista 'tissimula dawl intelliġenti billi tuża l-bord ESP32-C3DevKitM-1 konness ma' RGB LED lamp żibeġ (ara Figura 2.2). Imma għandek
14 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

innota li dan mhuwiex l-uniku mod biex tiġbor dawl intelliġenti. Id-disinn tal-ħardwer tal-proġett f'dan il-ktieb fih biss modulu mingħajr fili (b'ESP32-C3 inkorporat), iżda mhux disinn ta 'ħardwer tad-dawl intelliġenti komplut. Barra minn hekk, Espressif jipproduċi wkoll bord ta 'żvilupp awdjo bbażat fuq ESP32-C3 ESP32C3-Lyra għall-kontroll tad-dwal bl-awdjo. Il-bord għandu interfaces għal mikrofoni u kelliema u jista 'jikkontrolla strixxi LED. Jista 'jintuża għall-iżvilupp ta' xandara tal-awdjo bi prezz baxx u ta 'prestazzjoni għolja u strixxi tad-dawl tar-ritmu. Il-Figura 2.3 turi bord ESP32-C3Lyra marbut ma 'strixxa ta' 40 dawl LED.
Figura 2.3. ESP32-C3-Lyra marbuta ma 'strixxa ta' 40 dawl LED
Smartphones (Android/iOS) Il-proġett Smart Light jinvolvi l-iżvilupp ta’ app smartphone għat-twaqqif u l-kontroll ta’ prodotti tad-dawl intelliġenti.
Routers Wi-Fi Routers Wi-Fi jikkonvertu sinjali tan-netwerk bil-fili u sinjali tan-netwerk mobbli f'sinjali tan-netwerk mingħajr fili, għal kompjuters, smartphones, pilloli, u tagħmir ieħor mingħajr fili biex jgħaqqdu man-netwerk. Per example, il-broadband fid-dar jeħtieġ biss li jkun imqabbad ma 'router Wi-Fi biex jinkiseb netwerking mingħajr fili ta' apparati Wi-Fi. L-istandard tal-protokoll mainstream appoġġjat mir-routers Wi-Fi huwa IEEE 802.11n, b'TxRate medja ta '300 Mbps, jew 600 Mbps fil-massimu. Huma kompatibbli b'lura ma' IEEE 802.11b u IEEE 802.11g. Iċ-ċippa ESP32-C3 ta 'Espressif tappoġġja IEEE 802.11b/g/n, sabiex tkun tista' tagħżel router Wi-Fi b'banda waħda (2.4 GHz) jew doppju (2.4 GHz u 5 GHz).
Ambjent ta' Żvilupp tal-kompjuter (Linux/macOS/Windows) se jiġi introdott f'Kapitolu 4. Kapitolu 2. Introduzzjoni u Prattika ta' Proġetti IoT 15

2.2.4 Proċess ta' Żvilupp
Figura 2.4. Passi tal-iżvilupp tal-proġett Smart Light
Disinn tal-ħardwer Id-disinn tal-ħardwer tal-apparat tal-IoT huwa essenzjali għal proġett tal-IoT. Proġett sħiħ tad-dawl intelliġenti huwa maħsub biex jipproduċi alamp jaħdmu taħt provvista tal-mejn. Manifatturi differenti jipproduċu lamps ta 'stili differenti u tipi ta' sewwieq, iżda l-moduli mingħajr fili tagħhom huma ġeneralment ta 'l-istess funzjoni. Biex jissimplifika l-proċess ta 'żvilupp tal-proġett Smart Ligh, dan il-ktieb ikopri biss id-disinn tal-ħardwer u l-iżvilupp tas-softwer tal-moduli mingħajr fili.
Konfigurazzjoni tal-pjattaforma tas-sħab tal-IoT Biex tuża pjattaformi tas-sħab tal-IoT, trid tikkonfigura proġetti fuq il-backend, bħall-ħolqien ta 'prodotti, il-ħolqien ta' apparati, l-issettjar tal-proprjetajiet tal-apparat, eċċ.
Żvilupp ta 'softwer inkorporat għal apparati IoT Implimenta funzjonijiet mistennija b'ESP-IDF, l-SDK tal-apparat tal-Espressif, inkluż il-konnessjoni ma' pjattaformi tas-sħab tal-IoT, l-iżvilupp ta 'sewwieqa LED, u l-aġġornament tal-firmware.
Żvilupp tal-app tal-ismartphone Żviluppa apps tal-ismartphone għal sistemi Android u iOS biex tirrealizza r-reġistrazzjoni tal-utent u l-login, il-kontroll tal-apparat u funzjonijiet oħra.
Ottimizzazzjoni tal-apparat tal-IoT Ladarba jitlesta l-iżvilupp bażiku tal-funzjonijiet tal-apparat tal-IoT, tista' tirrikorri għal kompiti ta' ottimizzazzjoni, bħall-ottimizzazzjoni tal-enerġija.
Ittestjar tal-produzzjoni tal-massa Wettaq testijiet tal-produzzjoni tal-massa skont standards relatati, bħal test tal-funzjoni tat-tagħmir, test tat-tixjiħ, test RF, eċċ.
Minkejja l-passi elenkati hawn fuq, proġett Smart Light mhux neċessarjament suġġett għal tali proċedura peress li kompiti differenti jistgħu wkoll jitwettqu fl-istess ħin. Per example, softwer inkorporat u apps smartphone jistgħu jiġu żviluppati b'mod parallel. Xi passi jistgħu wkoll jeħtieġu li jiġu ripetuti, bħall-ottimizzazzjoni tal-apparat IoT u l-ittestjar tal-produzzjoni tal-massa.
16 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

2.3 Sommarju
F'dan il-kapitolu, l-ewwel spjegajna dwar il-komponenti bażiċi u l-moduli funzjonali ta 'proġett IoT, imbagħad introduċejna l-każ Smart Light għall-prattika, b'referenza għall-istruttura, il-funzjonijiet, il-preparazzjoni tal-ħardwer u l-proċess ta' żvilupp tiegħu. Il-qarrejja jistgħu jagħmlu inferenzi mill-prattika u jsiru kunfidenti biex iwettqu proġetti IoT bi żbalji minimi fil-futur.
Kapitolu 2. Introduzzjoni u Prattika ta’ Proġetti IoT 17

18 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Kapitolu 3

Introduzzjoni

biex

ESP

RainMaker

L-Internet tal-Oġġetti (IoT) joffri possibbiltajiet bla tarf biex jinbidel il-mod kif jgħixu n-nies, iżda l-iżvilupp tal-inġinerija tal-IoT huwa mimli sfidi. Bi sħab pubbliċi, il-manifatturi tat-terminals jistgħu jimplimentaw il-funzjonalità tal-prodott permezz tas-soluzzjonijiet li ġejjin:
Ibbażat fuq il-pjattaformi tas-sħab tal-fornituri tas-soluzzjoni B'dan il-mod, il-manifatturi tat-terminali jeħtieġu biss li jiddisinjaw il-ħardwer tal-prodott, imbagħad qabbad il-ħardwer mas-sħab bl-użu ta 'modulu ta' komunikazzjoni pprovdut, u kkonfigurat il-funzjonijiet tal-prodott wara l-linji gwida. Dan huwa approċċ effiċjenti peress li jelimina l-ħtieġa għal żvilupp u operazzjonijiet u manutenzjoni fuq in-naħa tas-server u l-applikazzjoni (O&M). Jippermetti lill-manifatturi tat-terminali jiffokaw fuq id-disinn tal-ħardwer mingħajr ma jkollhom għalfejn jikkunsidraw l-implimentazzjoni tas-sħab. Madankollu, soluzzjonijiet bħal dawn (eż. Firmware tal-apparat u App) ġeneralment mhumiex sors miftuħ, għalhekk il-funzjonijiet tal-prodott se jkunu limitati mill-pjattaforma tal-cloud tal-fornitur li ma tistax tiġi personalizzata. Sadanittant, id-dejta tal-utent u tal-apparat ukoll jappartjenu għall-pjattaforma tas-sħab.
Ibbażat fuq prodotti tas-sħab F'din is-soluzzjoni, wara li jlestu d-disinn tal-ħardwer, il-manifatturi tat-terminali mhux biss jeħtieġ li jimplimentaw funzjonijiet tas-sħab billi jużaw prodott tas-sħab wieħed jew aktar ipprovduti mill-cloud pubbliku, iżda jeħtieġ ukoll li jgħaqqdu l-ħardwer mal-sħaba. Per example, biex tikkonnettja mal-Amazon Web Servizzi (AWS), il-manifatturi tat-terminals jeħtieġ li jużaw prodotti AWS bħal Amazon API Gateway, AWS IoT Core, u AWS Lambda biex jippermettu aċċess għall-apparat, kontroll mill-bogħod, ħażna tad-dejta, ġestjoni tal-utent, u funzjonijiet bażiċi oħra. Mhux biss jitlob lill-manifatturi tat-terminali biex jużaw u jikkonfiguraw b'mod flessibbli prodotti sħaba b'fehim fil-fond u esperjenza rikka, iżda jeħtieġ ukoll li jqisu l-ispiża tal-kostruzzjoni u l-manutenzjoni għal s inizjali u aktar tard.tages Dan joħloq sfidi kbar għall-enerġija u r-riżorsi tal-kumpanija.
Meta mqabbel ma 'sħab pubbliċi, sħab privati ​​huma ġeneralment mibnija għal proġetti u prodotti speċifiċi. L-iżviluppaturi tal-cloud privati ​​jingħataw l-ogħla livell ta’ libertà fid-disinn tal-protokoll u l-implimentazzjoni tal-loġika tan-negozju. Il-manifatturi tat-terminals jistgħu jagħmlu prodotti u skemi tad-disinn kif riedu, u faċilment jintegraw u jagħtu s-setgħa lil data tal-utent. Li tgħaqqad is-sigurtà għolja, l-iskalabbiltà u l-affidabbiltà tal-cloud pubbliku mal-advantages tal-cloud privat, Espressif nieda ESP
19

RainMaker, soluzzjoni sħaba privata integrata profondament ibbażata fuq sħab ta 'Amazon. L-utenti jistgħu jużaw ESP RainMaker u jibnu cloud privat sempliċement b'kont AWS.
3.1 X'inhu ESP RainMaker?
ESP RainMaker hija pjattaforma AIoT kompluta mibnija bi prodotti AWS maturi multipli. Jipprovdi diversi servizzi meħtieġa għall-produzzjoni tal-massa bħal aċċess għall-sħab tal-apparat, aġġornament tal-apparat, ġestjoni backend, login ta 'parti terza, integrazzjoni tal-vuċi, u ġestjoni tal-utenti. Bl-użu tar-Repożitorju tal-Applikazzjoni Serverless (SAR) ipprovdut minn AWS, il-manifatturi tat-terminali jistgħu jużaw malajr ESP RainMaker fil-kontijiet AWS tagħhom, li huwa effiċjenti fil-ħin u faċli biex jitħaddem. Immexxi u miżmum minn Espressif, is-SAR użat minn ESP RainMaker jgħin lill-iżviluppaturi jnaqqsu l-ispejjeż tal-manutenzjoni tal-cloud u jaċċelleraw l-iżvilupp ta 'prodotti AIoT, u b'hekk jibnu soluzzjonijiet AIoT sikuri, stabbli u customizable. Figura 3.1 turi l-arkitettura ta' ESP RainMaker.
Figura 3.1. Arkitettura ta' ESP RainMaker
Is-server pubbliku ESP RainMaker minn Espressif huwa b'xejn għad-dilettanti, dawk li jfasslu u l-edukaturi ESP kollha għall-evalwazzjoni tas-soluzzjoni. L-iżviluppaturi jistgħu jidħlu fil-kontijiet Apple, Google, jew GitHub, u malajr jibnu l-prototipi tal-applikazzjoni tal-IoT tagħhom stess. Is-server pubbliku jintegra Alexa u Google Home, u jipprovdi servizzi ta 'kontroll tal-vuċi, li huma appoġġjati minn Alexa Skill u Google Actions. Il-funzjoni ta 'rikonoxximent semantiku tagħha hija mħaddma wkoll minn partijiet terzi. L-apparati RainMaker IoT jirrispondu biss għal azzjonijiet speċifiċi. Għal lista eżawrjenti ta 'kmandi tal-vuċi appoġġjati, jekk jogħġbok iċċekkja l-pjattaformi ta' partijiet terzi. Barra minn hekk, Espressif joffri RainMaker App pubblika għall-utenti biex jikkontrollaw il-prodotti permezz ta’ smartphones. 20 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

3.2 L-Implimentazzjoni tal-ESP RainMaker
Kif muri fil-Figura 3.2, ESP RainMaker jikkonsisti f'erba 'partijiet: · Servizz ta' Pretensjoni, li jippermetti lill-apparati RainMaker jiksbu ċertifikati b'mod dinamiku. · RainMaker Cloud (magħruf ukoll bħala cloud backend), li jipprovdi servizzi bħall-iffiltrar tal-messaġġi, il-ġestjoni tal-utenti, il-ħażna tad-dejta u l-integrazzjonijiet ta’ partijiet terzi. · RainMaker Agent, li jippermetti lill-apparati RainMaker jikkonnettjaw ma' RainMaker Cloud. · RainMaker Client (RainMaker App jew skripts CLI), għall-forniment, il-ħolqien tal-utent, l-assoċjazzjoni u l-kontroll tal-apparat, eċċ.
Figura 3.2. Struttura ta' ESP RainMaker
ESP RainMaker jipprovdi sett komplut ta 'għodod għall-iżvilupp tal-prodott u l-produzzjoni tal-massa, inkluż: RainMaker SDK
RainMaker SDK huwa bbażat fuq ESP-IDF u jipprovdi l-kodiċi tas-sors tal-aġent tan-naħa tal-apparat u C APIs relatati għall-iżvilupp tal-firmware. L-iżviluppaturi jeħtieġ biss jiktbu l-loġika tal-applikazzjoni u jħallu l-bqija għall-qafas RainMaker. Għal aktar informazzjoni dwar C APIs, jekk jogħġbok żur https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Il-verżjoni pubblika ta' RainMaker App tippermetti lill-iżviluppaturi jlestu l-forniment tal-apparat, u jikkontrollaw u jfittxu l-istatus tal-apparati (eż., prodotti tad-dawl intelliġenti). Huwa disponibbli kemm fuq ħwienet tal-app iOS kif ukoll Android. Għal aktar dettalji, jekk jogħġbok irreferi għall-Kapitolu 10. REST APIs REST APIs jgħinu lill-utenti jibnu l-applikazzjonijiet tagħhom stess simili għall-App RainMaker. Għal aktar informazzjoni, jekk jogħġbok żur https://swaggerapis.rainmaker.espressif.com/.
Kapitolu 3. Introduzzjoni għall-ESP RainMaker 21

Python APIs A CLI bbażata fuq Python, li tiġi mal-RainMaker SDK, hija pprovduta biex timplimenta l-funzjonijiet kollha simili għall-karatteristiċi tal-smartphone. Għal aktar informazzjoni dwar Python APIs, jekk jogħġbok żur https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, b'livell ogħla ta 'aċċess, huwa pprovdut għall-iskjerament privat ta' ESP RainMaker biex jiġġenera ċertifikati tal-apparat bl-ingrossa.
3.2.1 Servizz ta' Talba
Il-komunikazzjoni kollha bejn l-apparati RainMaker u l-backend tas-sħab titwettaq permezz ta’ MQTT+TLS. Fil-kuntest ta 'ESP RainMaker, "Claiming" huwa l-proċess li fih l-apparati jiksbu ċertifikati mis-Servizz ta' Talba biex jikkonnettjaw mal-backend tal-cloud. Innota li Claiming Service huwa applikabbli biss għas-servizz pubbliku RainMaker, filwaqt li għall-iskjerament privat, iċ-ċertifikati tal-apparat jeħtieġ li jiġu ġġenerati bl-ingrossa permezz tal-Admin CLI. ESP RainMaker jappoġġja tliet tipi ta’ Servizz ta’ Talba: Self Claiming
L-apparat innifsu jġib iċ-ċertifikati permezz ta’ ċavetta sigrieta ipprogrammata minn qabel f’eFuse wara li tikkonnettja mal-Internet. Ospitanti Driven Claiming Iċ-ċertifikati jinkisbu mill-host tal-iżvilupp bil-kont RainMaker. Talba Assistita Iċ-ċertifikati jinkisbu permezz ta' applikazzjonijiet ta' smartphone waqt il-forniment.
3.2.2 Aġent RainMaker
Figura 3.3. Struttura ta' RainMaker SDK Il-funzjoni primarja tar-RainMaker Agent hija li jipprovdi konnettività u jassisti lis-saff ta' l-applikazzjoni biex jipproċessa data tas-sħab uplink/downlink. Hija mibnija permezz tal-RainMaker SDK 22 ESP32-C3 Wireless Adventure: Gwida Komprensiva għall-IoT

u żviluppati bbażati fuq il-qafas ESP-IDF ippruvat, bl-użu ta 'komponenti ESP-IDF bħal RTOS, NVS, u MQTT. Il-Figura 3.3 turi l-istruttura tar-RainMaker SDK.
L-SDK RainMaker jinkludi żewġ karatteristiċi ewlenin.
Konnessjoni
i. Tikkoopera ma' Claiming Service biex tikseb ċertifikati tal-apparat.
ii. Il-konnessjoni mal-backend tas-sħab billi tuża l-protokoll MQTT sikur biex tipprovdi konnettività remota u timplimenta kontroll mill-bogħod, rappurtar ta’ messaġġi, ġestjoni tal-utenti, ġestjoni tal-apparat, eċċ. Juża l-komponent MQTT f’ESP-IDF b’mod awtomatiku u jipprovdi saff ta’ astrazzjoni għall-interface ma’ oħrajn. munzelli tal-protokoll.
iii. Jipprovdu komponent ta 'provvista ta' wifi għal konnessjoni u forniment Wi-Fi, speċjalment komponent https ota għal titjib OTA, u speċjalment komponent ctrl lokali għal skoperta u konnessjoni ta 'apparat lokali. Dawn l-għanijiet kollha jistgħu jintlaħqu permezz ta' konfigurazzjoni sempliċi.
Ipproċessar tad-dejta
i. Il-ħażna taċ-ċertifikati tal-apparat maħruġa minn Claiming Service u d-dejta meħtieġa meta taħdem RainMaker, b'mod awtomatiku billi tuża l-interface pprovduta mill-komponent flash nvs, u tipprovdi APIs għall-iżviluppaturi għall-użu dirett.
ii. Bl-użu tal-mekkaniżmu ta 'callback biex tipproċessa d-data tas-sħab ta' uplink/downlink u tiżblokka awtomatikament id-dejta għas-saff tal-applikazzjoni għal proċessar faċli mill-iżviluppaturi. Per example, il-RainMaker SDK jipprovdi interfaces sinjuri għall-istabbiliment tad-data TSL (Thing Specification Language), li huma meħtieġa biex jiddefinixxu mudelli TSL biex jiddeskrivu apparati IoT u jimplimentaw funzjonijiet bħal ħin, countdown, u kontroll tal-vuċi. Għal karatteristiċi interattivi bażiċi bħall-ħin, RainMaker SDK jipprovdi soluzzjoni ħielsa mill-iżvilupp li tista' tkun sempliċiment attivata meta jkun meħtieġ. Imbagħad, l-Aġent RainMaker jipproċessa direttament id-dejta, jibgħatha lill-cloud permezz tas-suġġett MQTT assoċjat, u jagħti lura l-bidliet tad-dejta fil-backend tal-cloud permezz tal-mekkaniżmu ta 'callback.
3.2.3 Cloud Backend
Il-backend tas-sħab huwa mibni fuq AWS Serverless Computing u miksub permezz ta’ AWS Cognito (sistema ta’ ġestjoni tal-identità), Amazon API Gateway, AWS Lambda (servizz tal-kompjuters mingħajr servers), Amazon DynamoDB (database NoSQL), AWS IoT Core (qalba tal-aċċess IoT li tipprovdi aċċess MQTT u filtrazzjoni tar-regoli), Amazon Simple Email Service (servizz ta’ posta sempliċi SES), Amazon CloudFront (netwerk ta’ kunsinna veloċi), Amazon Simple Queue Service (kju ta’ messaġġi SQS), u Amazon S3 (servizz ta’ ħażna ta’ barmil). Huwa mmirat li jottimizza l-iskalabbiltà u s-sigurtà. Bl-ESP RainMaker, l-iżviluppaturi jistgħu jimmaniġġjaw l-apparat mingħajr ma jkollhom għalfejn jiktbu l-kodiċi fil-cloud. Messaġġi rrappurtati mill-apparati huma trażmessi b'mod trasparenti lil
Kapitolu 3. Introduzzjoni għall-ESP RainMaker 23

klijenti tal-applikazzjoni jew servizzi oħra ta’ partijiet terzi. It-Tabella 3.1 turi l-prodotti u l-funzjonijiet tal-cloud tal-AWS użati fil-backend tal-cloud, b'aktar prodotti u karatteristiċi li qed jiġu żviluppati.
Tabella 3.1. Prodotti tal-cloud AWS u funzjonijiet użati mill-backend tal-cloud

Prodott AWS Cloud Użat minn RainMaker

Funzjoni

AWS Cognito

Il-ġestjoni tal-kredenzjali tal-utent u l-appoġġ ta’ logins ta’ partijiet terzi

AWS Lambda

L-implimentazzjoni tal-loġika tan-negozju prinċipali tal-backend tal-cloud

Amazon Timestream Il-ħażna tad-dejta tas-serje tal-ħin

Amazon DynamoDB Taħżen informazzjoni privata tal-klijenti

AWS IoT Core

Appoġġ għall-komunikazzjoni MQTT

Amazon SES

Provvista ta' servizzi ta' tibgħat email

Amazon CloudFront Tħaffef il-ġestjoni tal-backend webaċċess għas-sit

Amazon SQS

Trażmissjoni ta' messaġġi minn AWS IoT Core

3.2.4 Klijent RainMaker
Il-klijenti ta’ RainMaker, bħal App u CLI, jikkomunikaw mal-backend tal-cloud permezz ta’ REST APIs. Informazzjoni dettaljata u struzzjonijiet dwar REST APIs jistgħu jinstabu fid-dokumentazzjoni Swagger ipprovduta minn Espressif. Il-klijent tal-applikazzjoni mobbli ta' RainMaker huwa disponibbli kemm għas-sistemi iOS kif ukoll għal dawk Android. Jippermetti l-forniment, il-kontroll u l-kondiviżjoni tal-apparat, kif ukoll il-ħolqien u l-abilitazzjoni tal-kompiti tal-countdown u l-konnessjoni ma 'pjattaformi ta' partijiet terzi. Jista 'jtella awtomatikament l-UI u l-ikoni skont il-konfigurazzjoni rrappurtata mill-apparati u juri bis-sħiħ it-TSL tal-apparat.
Per example, jekk dawl intelliġenti huwa mibni fuq il-RainMaker SDK ipprovdut examples, l-ikona u l-UI tad-dawl tal-bozza jitgħabba awtomatikament meta jitlesta l-forniment. L-utenti jistgħu jibdlu l-kulur u l-luminożità tad-dawl permezz tal-interface u jiksbu kontroll minn parti terza billi jgħaqqdu Alexa Smart Home Skill jew Google Smart Home Actions mal-kontijiet ESP RainMaker tagħhom. Figura 3.4 turi l-ikona u l-UI examples tad-dawl tal-bozza rispettivament fuq Alexa, Google Home, u ESP RainMaker App.

24 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

(a) Eżample – Alexa

(b) Eżample – Google Home

(c) Eżample – ESP RainMaker
Figura 3.4. Eżamples ta 'ikona u UI tad-dawl tal-bozza fuq Alexa, Google Home, u ESP RainMaker App
3.3 Prattika: Punti Ewlenin għall-Iżvilupp bl-ESP RainMaker
Ladarba s-saff tas-sewwieq tal-apparat ikun tlesta, l-iżviluppaturi jistgħu jibdew joħolqu mudelli TSL u jipproċessaw data downlink billi jużaw l-APIs ipprovduti minn RainMaker SDK, u jippermettu s-servizzi bażiċi ESP RainMaker ibbażati fuq id-definizzjoni u r-rekwiżiti tal-prodott.
Kapitolu 3. Introduzzjoni għall-ESP RainMaker 25

It-Taqsima 9.4 ta 'dan il-ktieb se tispjega l-implimentazzjoni tad-dawl intelliġenti LED f'RainMaker. Waqt id-debugging, l-iżviluppaturi jistgħu jużaw l-għodod CLI fil-RainMaker SDK biex jikkomunikaw mad-dawl intelliġenti (jew iċemplu REST APIs minn Swagger).
Il-Kapitolu 10 se jelabora l-użu tal-APIs REST fl-iżvilupp tal-applikazzjonijiet tal-ismartphone. L-aġġornamenti tal-OTA tad-dwal intelliġenti LED se jkunu koperti fil-Kapitolu 11. Jekk l-iżviluppaturi ppermettew il-monitoraġġ remot ESP Insights, il-backend tal-ġestjoni ESP RainMaker se juri d-dejta tal-ESP Insights. Id-dettalji se jiġu ppreżentati fil-Kapitolu 15.
ESP RainMaker jappoġġja l-iskjerament privat, li huwa differenti mis-server pubbliku RainMaker fil-modi li ġejjin:
Servizz ta' Pretensjoni Biex tiġġenera ċertifikati fi skjeramenti privati, huwa meħtieġ li tuża l-CLI Admin ta' RainMaker minflok Claiming. B'server pubbliku, l-iżviluppaturi għandhom jingħataw drittijiet ta 'amministrazzjoni biex jimplimentaw aġġornament tal-firmware, iżda mhux mixtieq fl-iskjeramenti kummerċjali. Għalhekk, la servizz ta' awtentikazzjoni separat ma jista' jiġi pprovdut għal talba għal rasha, u lanqas drittijiet ta' amministrazzjoni għal pretensjoni mmexxija mill-host jew assistita.
Apps tat-telefon Fl-iskjeramenti privati, l-applikazzjonijiet iridu jiġu kkonfigurati u kkompilati separatament biex jiġi żgurat li s-sistemi tal-kontijiet ma jkunux interoperabbli.
Logins ta' partijiet terzi u integrazzjoni tal-vuċi L-iżviluppaturi jridu kkonfiguraw separatament permezz ta' kontijiet ta' Google u Apple Developer biex jippermettu logins ta' partijiet terzi, kif ukoll l-integrazzjoni ta' Alexa Skill u Google Voice Assistant.
TIPS Għal dettalji dwar l-iskjerament tal-cloud, jekk jogħġbok żur https://customer.rainmaker.espressif. com. F'termini ta 'firmware, il-migrazzjoni minn server pubbliku għal server privat teħtieġ biss is-sostituzzjoni taċ-ċertifikati tal-apparat, li ttejjeb ħafna l-effiċjenza tal-migrazzjoni u tnaqqas l-ispiża tal-migrazzjoni u l-debugging sekondarju.
3.4 Karatteristiċi ta' ESP RainMaker
Il-karatteristiċi tal-ESP RainMaker huma prinċipalment immirati lejn tliet aspetti - il-ġestjoni tal-utenti, l-utenti finali, u l-amministraturi. Il-karatteristiċi kollha huma appoġġjati kemm f'servers pubbliċi kif ukoll privati ​​sakemm ma jkunx iddikjarat mod ieħor.
3.4.1 Ġestjoni tal-Utenti
Il-karatteristiċi tal-ġestjoni tal-utenti jippermettu lill-utenti finali jirreġistraw, jidħlu, ibiddlu l-passwords, jirkupraw il-passwords, eċċ.
26 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Irreġistra u illoggja Il-metodi ta’ reġistrazzjoni u login appoġġjati minn RainMaker jinkludu: · Id-posta elettronika + Password · Numru tat-telefon + Password · Kont Google · Kont Apple · Kont GitHub (server pubbliku biss) · Kont Amazon (server privat biss)
NOTA Irreġistra billi tuża Google/Amazon taqsam l-indirizz elettroniku tal-utent ma' RainMaker. Irreġistra billi tuża Apple taqsam indirizz finta li Apple tassenja għall-utent speċifikament għas-servizz RainMaker. Kont RainMaker se jinħoloq awtomatikament għall-utenti li jiffirmaw b'kont ta' Google, Apple, jew Amazon għall-ewwel darba.
Ibdel il-password Validu biss għal logins ibbażati fuq id-Email/Numru tat-Telefon. Is-sessjonijiet attivi l-oħra kollha jiġu illoggjati wara li tinbidel il-password. Skont l-imġieba tal-AWS Cognito, is-sessjonijiet li illoggjaw jistgħu jibqgħu attivi sa siegħa.
Irkupra l-password Validu biss għall-logins ibbażati fuq l-id tal-Email/In-numru tat-telefon.
3.4.2 Karatteristiċi tal-Utent Aħħar
Karatteristiċi miftuħa għall-utenti finali jinkludu kontroll u monitoraġġ lokali u remot, skedar, grupp ta 'tagħmir, qsim ta' apparat, notifiki push, u integrazzjonijiet ta 'partijiet terzi.
Kontroll mill-bogħod u monitoraġġ · Konfigurazzjoni tal-mistoqsijiet, valuri tal-parametri, u stat ta 'konnessjoni għal apparat wieħed jew kollu. · Issettja l-parametri għal apparat wieħed jew multipli.
Kontroll u monitoraġġ lokali It-telefon ċellulari u l-apparat jeħtieġ li jkunu konnessi mal-istess netwerk għall-kontroll lokali.
Skedar · L-utenti jissettjaw minn qabel ċerti azzjonijiet f'ħin speċifiku. · L-ebda konnessjoni tal-Internet meħtieġa għall-apparat waqt li tesegwixxi l-iskeda. · Darba waħda jew irrepeti (billi tispeċifika jiem) għal apparat wieħed jew multipli.
Raggruppament tal-apparat Jappoġġja raggruppament astratt f'ħafna livelli Il-metadejta tal-grupp tista' tintuża biex tinħoloq struttura tal-Kamra tad-Dar.
Kapitolu 3. Introduzzjoni għall-ESP RainMaker 27

Kondiviżjoni tal-apparat Apparat wieħed jew aktar jistgħu jiġu kondiviżi ma' utent wieħed jew aktar.
Notifiki push L-utenti finali se jirċievu notifiki push għal avvenimenti bħal · Apparat(i) ġdid miżjud/imneħħi · Apparat konness mas-sħab · Apparat skonnettjat mis-sħab · Talbiet għall-kondiviżjoni tal-apparat maħluqa/aċċettati/irrifjutati · Messaġġi ta’ twissija rrappurtati mill-apparati
Integrazzjonijiet ta 'partijiet terzi Alexa u Google Voice Assistant huma appoġġjati biex jikkontrollaw apparati RainMaker, inklużi dwal, swiċċijiet, sokits, fannijiet, u sensuri tat-temperatura.
3.4.3 Karatteristiċi tal-Amministrazzjoni
Il-karatteristiċi tal-amministraturi jippermettu lill-amministraturi jimplimentaw reġistrazzjoni tal-apparat, raggruppament tal-apparat, u titjib tal-OTA, u għal view statistika u dejta ESP Insights.
Reġistrazzjoni tal-apparat Iġġenera ċertifikati tal-apparat u rreġistra mal-Admin CLI (server privat biss).
Raggruppament tal-apparat Oħloq gruppi astratti jew strutturati bbażati fuq informazzjoni tal-apparat (server privat biss).
Upgrades Over-the-Air (OTA) Itella' l-firmware ibbażat fuq il-verżjoni u l-mudell, għal apparat wieħed jew aktar jew grupp Tissorvelja, tikkanċella jew arkivja l-impjiegi OTA.
View statistika ViewL-istatistika kapaċi tinkludi: · Reġistrazzjonijiet tal-apparat (ċertifikati reġistrati mill-amministratur) · Attivazzjonijiet tal-apparat (apparat konness għall-ewwel darba) · Kontijiet tal-utent · Assoċjazzjoni tal-utent-apparat
View Dejta ESP Insights ViewDejta kapaċi ta' ESP Insights tinkludi: · Żbalji, twissijiet, u logs personalizzati · Rapporti u analiżi tal-ħabta · Raġunijiet ta' reboot · Metriċi bħall-użu tal-memorja, RSSI, eċċ. · Metriċi u varjabbli personalizzati
28 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

3.5 Sommarju
F'dan il-kapitolu, daħħalna xi differenzi ewlenin bejn l-iskjerament pubbliku ta' RainMaker u l-iskjerament privat. Is-soluzzjoni privata ESP RainMaker imnedija minn Espressif hija affidabbli ħafna u estensibbli. Iċ-ċipep kollha tas-serje ESP32 ġew konnessi u adattati għal AWS, li jnaqqas ħafna l-ispiża. L-iżviluppaturi jistgħu jiffokaw fuq il-verifika tal-prototip mingħajr ma jkollhom għalfejn jitgħallmu dwar il-prodotti tal-cloud AWS. Spjegajna wkoll l-implimentazzjoni u l-karatteristiċi ta 'ESP RainMaker, u xi punti ewlenin għall-iżvilupp bl-użu tal-pjattaforma.
Skennja biex tniżżel ESP RainMaker għal Android Skennja biex tniżżel ESP RainMaker għal iOS
Kapitolu 3. Introduzzjoni għall-ESP RainMaker 29

30 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Kapitolu Twaqqif 4 Ambjent għall-Iżvilupp
Dan il-kapitolu jiffoka fuq ESP-IDF, il-qafas uffiċjali għall-iżvilupp tas-softwer għall-ESP32-C3. Aħna ser nispjegaw kif twaqqaf l-ambjent fuq diversi sistemi operattivi, u nintroduċu l-istruttura tal-proġett u s-sistema tal-bini ta 'ESP-IDF, kif ukoll l-użu ta' għodod ta 'żvilupp relatati. Imbagħad aħna ser nippreżentaw il-proċess ta 'kompilazzjoni u tmexxija ta' example proġett, filwaqt li joffri spjegazzjoni dettaljata tal-ġurnal tal-produzzjoni f'kull stage.
4.1 ESP-IDF Overview
ESP-IDF (Espressif IoT Development Framework) huwa qafas ta 'żvilupp IoT one-stop ipprovdut minn Espressif Technology. Juża C/C++ bħala l-lingwa ewlenija tal-iżvilupp u jappoġġja l-kumpilazzjoni inkroċjata taħt sistemi operattivi mainstream bħal Linux, Mac u Windows. L-example programmi inklużi f'dan il-ktieb huma żviluppati bl-użu ESP-IDF, li joffri l-karatteristiċi li ġejjin: · SoC sewwieqa fil-livell tas-sistema. ESP-IDF jinkludi sewwieqa għal ESP32, ESP32-S2, ESP32-C3,
u ċipep oħra. Dawn is-sewwieqa jinkludu librerija periferali ta 'livell baxx (LL), librerija ta' saff ta 'astrazzjoni tal-ħardwer (HAL), appoġġ RTOS u softwer tas-sewwieq tas-saff ta' fuq, eċċ. · Komponenti essenzjali. ESP-IDF jinkorpora komponenti fundamentali meħtieġa għall-iżvilupp tal-IoT. Dan jinkludi munzelli multipli ta 'protokoll tan-netwerk bħal HTTP u MQTT, qafas ta' ġestjoni tal-enerġija b'modulazzjoni tal-frekwenza dinamika, u karatteristiċi bħal Flash Encryption u Secure Boot, eċċ. · Għodod ta 'żvilupp u produzzjoni. ESP-IDF jipprovdi għodod użati b'mod komuni għall-bini, flash, u debugging matul l-iżvilupp u l-produzzjoni tal-massa (ara l-Figura 4.1), bħas-sistema tal-bini bbażata fuq CMake, il-katina ta 'għodda ta' kompilazzjoni inkroċjata bbażata fuq GCC, u l-JTAG għodda tad-debugging ibbażata fuq OpenOCD, eċċ. Ta 'min jinnota li l-kodiċi ESP-IDF primarjament jaderixxi mal-liċenzja Apache 2.0 open-source. L-utenti jistgħu jiżviluppaw softwer personali jew kummerċjali mingħajr restrizzjonijiet filwaqt li jikkonformaw mat-termini tal-liċenzja open-source. Barra minn hekk, l-utenti jingħataw liċenzji tal-privattivi permanenti mingħajr ħlas, mingħajr l-obbligu li jiftħu kwalunkwe modifika li ssir lill-kodiċi tas-sors.
31

Figura 4.1.

Bini, flashing, u debug-

għodod għall-iżvilupp u l-produzzjoni tal-massa

4.1.1 Verżjonijiet ESP-IDF
Il-kodiċi ESP-IDF huwa ospitat fuq GitHub bħala proġett open-source. Bħalissa, hemm tliet verżjonijiet ewlenin disponibbli: v3, v4, u v5. Kull verżjoni ewlenija normalment fiha diversi subversions, bħal v4.2, v4.3, eċċ. Espressif Systems jiżgura appoġġ ta '30 xahar għal bug fixes u garża ta' sigurtà għal kull sub-verżjoni rilaxxata. Għalhekk, reviżjonijiet ta 'subversions huma wkoll rilaxxati regolarment, bħal v4.3.1, v4.2.2, eċċ Tabella 4.1 turi l-istatus ta' appoġġ ta 'verżjonijiet ESP-IDF differenti għal ċipep Espressif, li tindika jekk humiex f'preview stage (li toffri appoġġ għal preview verżjonijiet, li jistgħu ma jkollhomx ċerti karatteristiċi jew dokumentazzjoni) jew huma appoġġjati uffiċjalment.

Tabella 4.1. L-istatus ta 'appoġġ ta' verżjonijiet ESP-IDF differenti għal ċipep Espressif

Serje ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2

v4.1 appoġġjat

v4.2 appoġġjat appoġġjat

v4.3 appoġġjat appoġġjat appoġġjat

v4.4 supported supported supported supported
preview

v5.0 supported supported supported supported supported preview

32 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

L-iterazzjoni tal-verżjonijiet ewlenin ħafna drabi tinvolvi aġġustamenti għall-istruttura tal-qafas u aġġornamenti għas-sistema ta' kumpilazzjoni. Per example, il-bidla ewlenija minn v3.* għal v4.* kienet il-migrazzjoni gradwali tas-sistema tal-bini minn Make għal CMake. Min-naħa l-oħra, l-iterazzjoni ta 'verżjonijiet minuri tipikament tinvolvi ż-żieda ta' karatteristiċi ġodda jew appoġġ għal ċipep ġodda.
Huwa importanti li tiddistingwi u tifhem ir-relazzjoni bejn verżjonijiet stabbli u fergħat ta 'GitHub. Verżjonijiet immarkati bħala v*.* jew v*.*.* jirrappreżentaw verżjonijiet stabbli li għaddew minn testijiet interni kompluti minn Espressif. Ladarba jiġu ffissati, il-kodiċi, il-katina tal-għodda u d-dokumenti tar-rilaxx għall-istess verżjoni jibqgħu ma jinbidlux. Madankollu, il-fergħat ta' GitHub (eż., il-fergħa tar-rilaxx/v4.3) jgħaddu minn kommessi ta' kodiċi frekwenti, ħafna drabi fuq bażi ta' kuljum. Għalhekk, żewġ snippets tal-kodiċi taħt l-istess fergħa jistgħu jkunu differenti, u dan jeħtieġ li l-iżviluppaturi jaġġornaw il-kodiċi tagħhom minnufih.
4.1.2 Fluss tax-Xogħol tal-Git ESP-IDF
Espressif isegwi fluss tax-xogħol Git speċifiku għal ESP-IDF, deskritt kif ġej:
· Isiru bidliet ġodda fuq il-fergħa prinċipali, li sservi bħala l-fergħa ewlenija tal-iżvilupp. Il-verżjoni ESP-IDF fuq il-fergħa prinċipali dejjem iġorr -dev tag biex jindika li bħalissa qed jiġi żviluppat, bħal v4.3-dev. Bidliet fuq il-fergħa kaptan l-ewwel se jkunu mill-ġdidviewed u ttestjati fir-repożitorju intern ta 'Espressif, u mbagħad imbuttat lejn GitHub wara li jkun lest l-ittestjar awtomatizzat.
· Ladarba verżjoni ġdida tkun lestiet l-iżvilupp tal-karatteristiċi fuq il-fergħa prinċipali u laħqet il-kriterji biex tidħol fl-ittestjar beta, tgħaddi għal fergħa ġdida, bħal rilaxx/ v4.3. Barra minn hekk, din il-fergħa ġdida hija tagged bħala verżjoni qabel ir-rilaxx, bħal v4.3-beta1. L-iżviluppaturi jistgħu jirreferu għall-pjattaforma GitHub biex jaċċessaw il-lista sħiħa tal-fergħat u tags għall-ESP-IDF. Huwa importanti li wieħed jinnota li l-verżjoni beta (verżjoni ta 'qabel ir-rilaxx) xorta jista' jkollha numru sinifikanti ta 'kwistjonijiet magħrufa. Peress li l-verżjoni beta tgħaddi minn testijiet kontinwi, soluzzjoni tal-bugs huma miżjuda kemm ma 'din il-verżjoni kif ukoll mal-fergħa prinċipali simultanjament. Sadanittant, il-fergħa prinċipali tista 'diġà bdiet tiżviluppa karatteristiċi ġodda għall-verżjoni li jmiss. Meta l-ittestjar ikun kważi lest, tikketta tal-kandidat għar-rilaxx (rc) tiżdied mal-fergħa, li tindika li hija kandidat potenzjali għar-rilaxx uffiċjali, bħal v4.3-rc1. Fuq dan stage, il-fergħa tibqa 'verżjoni ta' qabel ir-rilaxx.
· Jekk ma jiġu skoperti jew rappurtati ebda bug maġġuri, il-verżjoni ta’ qabel ir-rilaxx eventwalment tirċievi tikketta tal-verżjoni ewlenija (eż., v5.0) jew tikketta tal-verżjoni minuri (eż., v4.3) u ssir verżjoni ta’ rilaxx uffiċjali, li hija dokumentata fil-paġna tan-noti tar-rilaxx. Sussegwentement, kwalunkwe bug identifikat f'din il-verżjoni huwa ffissat fuq il-fergħa tar-rilaxx. Wara li jitlesta l-ittestjar manwali, il-fergħa tiġi assenjata tikketta tal-verżjoni tal-bug-fix (eż., v4.3.2), li hija riflessa wkoll fuq il-paġna tan-noti tar-rilaxx.
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 33

4.1.3 Għażla ta' Verżjoni Adattata
Peress li l-ESP-IDF beda uffiċjalment jappoġġja ESP32-C3 mill-verżjoni v4.3, u v4.4 għadu ma ġiex rilaxxat uffiċjalment fil-ħin tal-kitba ta 'dan il-ktieb, il-verżjoni użata f'dan il-ktieb hija v4.3.2, li hija verżjoni riveduta ta' v4.3. Madankollu, huwa importanti li wieħed jinnota li sa meta taqra dan il-ktieb, v4.4 jew verżjonijiet aktar ġodda jistgħu jkunu diġà disponibbli. Meta tagħżel verżjoni, nirrakkomandaw dan li ġej:
· Għall-iżviluppaturi tal-livell tad-dħul, huwa rakkomandabbli li tagħżel il-verżjoni stabbli v4.3 jew il-verżjoni riveduta tagħha, li tallinja mal-example verżjoni użata f'dan il-ktieb.
· Għal skopijiet ta 'produzzjoni tal-massa, huwa rakkomandat li tuża l-aħħar verżjoni stabbli biex tibbenefika mill-appoġġ tekniku l-aktar aġġornat.
· Jekk għandek il-ħsieb li tesperimenta b'ċipep ġodda jew tesplora karatteristiċi ġodda tal-prodott, jekk jogħġbok uża l-fergħa kaptan. L-aħħar verżjoni fiha l-aħħar karatteristiċi kollha, iżda żomm f'moħħok li jista 'jkun hemm bugs magħrufa jew mhux magħrufa preżenti.
· Jekk il-verżjoni stabbli li qed tintuża ma tinkludix il-karatteristiċi ġodda mixtieqa u tixtieq timminimizza r-riskji assoċjati mal-fergħa prinċipali, ikkunsidra li tuża l-fergħa tar-rilaxx korrispondenti, bħall-fergħa tar-rilaxx/v4.4. Ir-repożitorju GitHub ta' Espressif l-ewwel se joħloq il-fergħa tar-rilaxx/v4.4 u sussegwentement jirrilaxxa l-verżjoni v4.4 stabbli bbażata fuq stampa storika speċifika ta' din il-fergħa, wara li jlesti l-iżvilupp u l-ittestjar tal-karatteristiċi kollha.
4.1.4 Fuqview tad-Direttorju ESP-IDF SDK
L-ESP-IDF SDK jikkonsisti f'żewġ direttorji ewlenin: esp-idf u .espressif. L-ewwel fih il-kodiċi tas-sors tar-repożitorju ESP-IDF files u skripts tal-kumpilazzjoni, filwaqt li l-aħħar prinċipalment jaħżnu ktajjen ta 'għodda ta' kumpilazzjoni u softwer ieħor. Il-familjarità ma’ dawn iż-żewġ direttorji tgħin lill-iżviluppaturi jagħmlu użu aħjar tar-riżorsi disponibbli u jħaffu l-proċess ta’ żvilupp. L-istruttura tad-direttorju tal-ESP-IDF hija deskritta hawn taħt:
(1) Direttorju tal-kodiċi tar-repożitorju ESP-IDF (/esp/esp-idf), kif muri fil-Figura 4.2.
a. Komponenti tad-direttorju tal-komponenti
Dan id-direttorju ewlieni jintegra bosta komponenti ta' softwer essenzjali ta' ESP-IDF. L-ebda kodiċi tal-proġett ma jista 'jiġi kkompilat mingħajr ma jiddependu fuq il-komponenti f'dan id-direttorju. Jinkludi appoġġ għas-sewwieq għal diversi ċipep Espressif. Mill-librerija LL u l-interfaces tal-librerija HAL għall-periferali għas-Sewwieq u Virtwali tal-livell ta 'fuq File Appoġġ tas-saff tas-Sistema (VFS), l-iżviluppaturi jistgħu jagħżlu l-komponenti xierqa f'livelli differenti għall-ħtiġijiet ta 'żvilupp tagħhom. ESP-IDF jappoġġja wkoll stacks multipli ta' protokolli tan-netwerk standard bħal TCP/IP, HTTP, MQTT, WebSocket, eċċ. L-iżviluppaturi jistgħu jutilizzaw interfaces familjari bħal Socket biex jibnu applikazzjonijiet tan-netwerk. Il-komponenti jipprovdu komprensjoni
34 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Figura 4.2. Direttorju tal-kodiċi tar-repożitorju ESP-IDF
funzjonalità kbira u jistgħu jiġu integrati faċilment fl-applikazzjonijiet, li jippermettu lill-iżviluppaturi jiffokaw biss fuq il-loġika tan-negozju. Xi komponenti komuni jinkludu: · sewwieq: Dan il-komponent fih programmi ta 'sewwieq periferali għal diversi Espressif
serje taċ-ċippa, bħal GPIO, I2C, SPI, UART, LEDC (PWM), eċċ. Il-programmi tas-sewwieq periferali f'dan il-komponent joffru interfaces astratti indipendenti miċ-ċippa. Kull periferali għandu header komuni file (bħal gpio.h), telimina l-ħtieġa li tittratta mistoqsijiet ta 'appoġġ differenti speċifiċi għaċ-ċippa. · esp_wifi: Wi-Fi, bħala periferali speċjali, huwa ttrattat bħala komponent separat. Jinkludi API multipli bħall-inizjalizzazzjoni ta 'diversi modi tas-sewwieq Wi-Fi, konfigurazzjoni tal-parametri, u pproċessar tal-avvenimenti. Ċerti funzjonijiet ta 'dan il-komponent huma pprovduti fil-forma ta' libreriji ta 'link statiċi. ESP-IDF jipprovdi wkoll dokumentazzjoni komprensiva tas-sewwieq għal faċilità ta 'użu.
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 35

· freertos: Dan il-komponent fih il-kodiċi sħiħ tal-FreeRTOS. Minbarra li pprovda appoġġ komprensiv għal din is-sistema operattiva, Espressif estendiet ukoll l-appoġġ tagħha għal ċipep dual-core. Għal ċipep dual-core bħal ESP32 u ESP32-S3, l-utenti jistgħu joħolqu kompiti fuq qlub speċifiċi.
b. Dokumenti tad-direttorju tad-dokumenti
Dan id-direttorju fih dokumenti ta’ żvilupp relatati mal-ESP-IDF, inklużi l-Gwida tal-Ibda, il-Manwal ta’ Referenza tal-API, il-Gwida tal-Iżvilupp, eċċ.
NOTA Wara li jkun miġbur minn għodod awtomatizzati, il-kontenut ta' dan id-direttorju jiġi skjerat fuq https://docs.espressif.com/projects/esp-idf. Jekk jogħġbok kun żgur li taqleb il-mira tad-dokument għal ESP32-C3 u agħżel il-verżjoni ESP-IDF speċifikata.
c. Għodda tal-għodda tal-iskript
Dan id-direttorju fih għodod ta' quddiem ta' kumpilazzjoni użati b'mod komuni bħal idf.py, u l-għodda tat-terminal tal-monitor idf_monitor.py, eċċ. Is-sottodirettorju cmake fih ukoll script ewlieni files tas-sistema ta ' kumpilazzjoni, li jservu bħala l-pedament għall-implimentazzjoni tar-regoli ta ' kumpilazzjoni ESP-IDF. Meta żżid il-varjabbli tal-ambjent, il-kontenuti fid-direttorju tal-għodod huma miżjuda mal-varjabbli tal-ambjent tas-sistema, li jippermetti li idf.py jiġi esegwit direttament taħt il-mogħdija tal-proġett.
d. Eżample direttorju tal-programm examples
Dan id-direttorju jinkludi ġabra vasta ta' ESP-IDF example programmi li juru l-użu ta 'APIs komponenti. L-exampil-le huma organizzati f'diversi sottodirettorji bbażati fuq il-kategoriji tagħhom:
· nibda: Dan is-sottodirettorju jinkludi ex-livell tad-dħulamples bħal "hello world" u "teptip" biex jgħinu lill-utenti jifhmu l-affarijiet bażiċi.
· Bluetooth: Tista 'ssib Bluetooth relatati examples hawn, inklużi Bluetooth LE Mesh, Bluetooth LE HID, BluFi, u aktar.
· wifi: Dan is-sub-direttorju jiffoka fuq Wi-Fi examples, inklużi programmi bażiċi bħal Wi-Fi SoftAP, Wi-Fi Station, espnow, kif ukoll protokoll ta' komunikazzjoni proprjetarju examples minn Espressif. Tinkludi wkoll saff ta 'applikazzjoni multipli examples ibbażati fuq Wi-Fi, bħal Iperf, Sniffer, u Smart Config.
· periferali: Dan is-sub-direttorju estensiv huwa aktar maqsum f'bosta subfolders ibbażati fuq ismijiet periferali. Fiha prinċipalment sewwieq periferali examples għal ċipep Espressif, b'kull example ikkaratterizzata minn diversi sub-examples. Pereżempju, is-sottodirettorju gpio jinkludi żewġ examples: GPIO u tastiera matriċi GPIO. Huwa importanti li wieħed jinnota li mhux kollha examples f'dan id-direttorju huma applikabbli għal ESP32-C3.
36 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Per example, l-examples f'usb/host huma applikabbli biss għal periferali b'ħardwer USB Host (bħal ESP32-S3), u ESP32-C3 m'għandux dan il-periferali. Is-sistema ta 'kumpilazzjoni tipikament tipprovdi prompts meta tistabbilixxi l-mira. Il-README file ta’ kull example jelenka ċ-ċipep appoġġjati. · protokolli: Dan is-sub-direttorju fih examples għal diversi protokolli ta 'komunikazzjoni, inklużi MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, li jkopru firxa wiesgħa ta' protokoll ta 'komunikazzjoni examples meħtieġa għall-iżvilupp tal-IoT. · provisioning: Hawnhekk, inti ser issib provisioning examples għal metodi differenti, bħall-provvista ta 'Wi-Fi u provvista ta' Bluetooth LE. · sistema: Dan is-sub-direttorju jinkludi debugging tas-sistema examples (eż., traċċar tal-munzell, traċċar tal-runtime, monitoraġġ tal-kompiti), ġestjoni tal-enerġija examples (eż., diversi modi sleep, ko-proċessuri), u examples relatati ma' komponenti tas-sistema komuni bħal terminali tal-console, loop tal-avvenimenti, u timer tas-sistema. · ħażna: Fi ħdan dan is-sub-direttorju, inti ser tiskopri examples ta 'kulħadd file sistemi u mekkaniżmi ta’ ħażna appoġġjati minn ESP-IDF (bħal qari u kitba ta’ Flash, karta SD u midja oħra ta’ ħażna), kif ukoll examples ta 'ħażna mhux volatili (NVS), FatFS, SPIFFS u oħrajn file operazzjonijiet tas-sistema. · sigurtà: Dan is-sub-direttorju fih examples relatati mal-kriptaġġ flash. (2) Direttorju tal-katina tal-għodda tal-kompilazzjoni ESP-IDF (/.espressif), kif muri fil-Figura 4.3.
Figura 4.3. Direttorju tal-katina tal-għodda tal-kumpilazzjoni ESP-IDF
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 37

a. Id-direttorju tad-distribuzzjoni tas-softwer dist
Il-katina tal-għodda ESP-IDF u softwer ieħor huma mqassma fil-forma ta 'pakketti kkompressati. Matul il-proċess ta 'installazzjoni, l-għodda ta' installazzjoni l-ewwel tniżżel il-pakkett ikkompressat fid-direttorju tad-dist, u mbagħad estrattih fid-direttorju speċifikat. Ladarba l-installazzjoni titlesta, il-kontenut f'dan id-direttorju jista' jitneħħa b'mod sikur.
b. Direttorju tal-ambjent virtwali Python python env
Verżjonijiet differenti ta' ESP-IDF jiddependu fuq verżjonijiet speċifiċi ta' pakketti Python. L-installazzjoni ta' dawn il-pakketti direttament fuq l-istess host tista' twassal għal kunflitti bejn il-verżjonijiet tal-pakketti. Biex tindirizza dan, ESP-IDF juża ambjenti virtwali Python biex jiżola verżjonijiet differenti tal-pakkett. B'dan il-mekkaniżmu, l-iżviluppaturi jistgħu jinstallaw verżjonijiet multipli ta 'ESP-IDF fuq l-istess ospitanti u faċilment jaqilbu bejniethom billi jimportaw varjabbli ambjentali differenti.
c. Għodod tad-direttorju tal-katina tal-għodda tal-kumpilazzjoni ESP-IDF
Dan id-direttorju fih prinċipalment għodod ta 'kumpilazzjoni inkroċjata meħtieġa biex jiġu kkompilati proġetti ESP-IDF, bħal għodod CMake, għodod tal-bini Ninja, u l-katina tal-għodda gcc li tiġġenera l-programm eżekutibbli finali. Barra minn hekk, dan id-direttorju jospita l-librerija standard tal-lingwa C/C++ flimkien mal-header korrispondenti files. Jekk programm jirreferi għal header tas-sistema file bħal #inkludi , il-katina tal-għodda tal-kumpilazzjoni se jillokalizza l-stdio.h file fi ħdan dan id-direttorju.
4.2 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF
L-ambjent ta 'żvilupp ESP-IDF jappoġġja sistemi operattivi mainstream bħal Windows, Linux, u macOS. Din it-taqsima se tintroduċi kif twaqqaf l-ambjent ta 'żvilupp fuq kull sistema. Huwa rakkomandat li tiġi żviluppata ESP32-C3 fuq is-sistema Linux, li se tiġi introdotta fid-dettall hawn. Ħafna struzzjonijiet huma applikabbli fuq il-pjattaformi minħabba x-xebh tal-għodod tal-iżvilupp. Għalhekk, huwa rakkomandat li taqra bir-reqqa l-kontenut ta 'din it-taqsima.
NOTA Tista' tirreferi għad-dokumenti onlajn disponibbli fuq https://bookc3.espressif.com/esp32c3, li jipprovdu l-kmandi msemmija f'din it-taqsima.
4.2.1 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF fuq Linux
L-għodod ta' żvilupp u debugging GNU meħtieġa għall-ambjent ta' żvilupp ESP-IDF huma indiġeni għas-sistema Linux. Barra minn hekk, it-terminal tal-linja tal-kmand fil-Linux huwa b'saħħtu u faċli għall-utent, u jagħmilha għażla ideali għall-iżvilupp ESP32-C3. Tista
38 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

agħżel id-distribuzzjoni preferuta tiegħek tal-Linux, iżda nirrakkomandaw li tuża Ubuntu jew sistemi oħra bbażati fuq Debian. Din it-taqsima tipprovdi gwida dwar it-twaqqif tal-ambjent tal-iżvilupp ESP-IDF fuq Ubuntu 20.04.
1. Installa l-pakketti meħtieġa
Iftaħ terminal ġdid u wettaq il-kmand li ġej biex tinstalla l-pakketti kollha meħtieġa. Il-kmand awtomatikament jaqbeż pakketti li huma diġà installati.
$ 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 Għandek bżonn tuża l-kont tal-amministratur u l-password għall-kmand ta’ hawn fuq. B'mod awtomatiku, l-ebda informazzjoni ma tintwera meta ddaħħal il-password. Sempliċement agħfas il-buttuna "Enter" biex tkompli l-proċedura.
Git hija għodda ewlenija għall-ġestjoni tal-kodiċi fl-ESP-IDF. Wara li twaqqaf b'suċċess l-ambjent ta 'żvilupp, tista' tuża l-kmand tal-ġurnal git biex view il-bidliet kollha fil-kodiċi li saru mill-ħolqien ta' ESP-IDF. Barra minn hekk, Git jintuża wkoll fl-ESP-IDF biex jikkonferma l-informazzjoni tal-verżjoni, li hija meħtieġa għall-installazzjoni tal-katina tal-għodda korretta li tikkorrispondi għal verżjonijiet speċifiċi. Flimkien ma 'Git, għodod oħra importanti tas-sistema jinkludu Python. ESP-IDF jinkorpora bosta skripts ta 'awtomazzjoni miktuba f'Python. Għodod bħal CMake, Ninja-build, u Ccache jintużaw ħafna fi proġetti C/C++ u jservu bħala l-kumpilazzjoni tal-kodiċi default u l-għodod tal-bini fl-ESP-IDF. libusb-1.0-0 u dfu-util huma s-sewwieqa ewlenin użati għall-komunikazzjoni serjali USB u l-ħruq tal-firmware. Ladarba l-pakketti tas-softwer huma installati, tista 'tuża l-ispettaklu apt kmand biex tikseb deskrizzjonijiet dettaljati ta 'kull pakkett. Per example, uża apt show git biex tipprintja l-informazzjoni tad-deskrizzjoni għall-għodda Git.
Q: X'għandek tagħmel jekk il-verżjoni Python ma tkunx appoġġjata? A: ESP-IDF v4.3 teħtieġ verżjoni Python li mhix inqas minn v3.6. Għal verżjonijiet anzjani ta 'Ubuntu, jekk jogħġbok tniżżel manwalment u installa verżjoni ogħla ta' Python u ssettja Python3 bħala l-ambjent Python default. Tista' ssib struzzjonijiet dettaljati billi tfittex il-keyword update-alternatives python.
2. Niżżel il-kodiċi tar-repożitorju ESP-IDF
Iftaħ terminal u oħloq folder imsejjaħ esp fid-direttorju tad-dar tiegħek billi tuża l-kmand mkdir. Tista' tagħżel isem differenti għall-folder jekk tippreferi. Uża l-kmand cd biex tidħol fil-folder.
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 39

$ mkdir -p /esp $ cd /esp
Uża l-kmand git clone biex tniżżel il-kodiċi tar-repożitorju ESP-IDF, kif muri hawn taħt:
$ git klonu -b v4.3.2 –recursive https://github.com/espressif/esp-idf.git
Fil-kmand ta 'hawn fuq, il-parametru -b v4.3.2 jispeċifika l-verżjoni li tniżżel (f'dan il-każ, verżjoni 4.3.2). Il-parametru –recursive jiżgura li s-subrepożitorji kollha tal-ESP-IDF jitniżżlu b'mod rikorsiv. Informazzjoni dwar sub-repożitorji tista' tinstab fil-.gitmodules file.
3. Installa l-katina tal-għodda tal-iżvilupp ESP-IDF
Espressif jipprovdi skript awtomatizzat install.sh biex tniżżel u tinstalla l-katina tal-għodda. Din l-iskrittura tiċċekkja l-verżjoni attwali tal-ESP-IDF u l-ambjent tas-sistema operattiva, u mbagħad tniżżel u tinstalla verżjoni xierqa ta 'pakketti ta' għodda Python u ktajjen ta 'għodda ta' kumpilazzjoni. Il-mogħdija tal-installazzjoni awtomatika għall-katina tal-għodda hija /.espressif. Kull ma trid tagħmel hu li tinnaviga fid-direttorju esp-idf u tħaddem install.sh.
$ cd /esp/esp-idf $ ./install.sh
Jekk tinstalla l-katina tal-għodda b'suċċess, it-terminal se juri:
Kollox lest!
F'dan il-punt, waqqaft b'suċċess l-ambjent ta 'żvilupp ESP-IDF.
4.2.2 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF fuq Windows
1. Niżżel l-installatur tal-għodda ESP-IDF
TIPS Huwa rakkomandat li twaqqaf l-ambjent ta 'żvilupp ESP-IDF fuq Windows 10 jew aktar. Tista' tniżżel l-installatur minn https://dl.espressif.com/dl/esp-idf/. L-installatur huwa wkoll softwer open-source, u l-kodiċi tas-sors tiegħu jista 'jkun viewed fuq https: //github.com/espressif/idf-installer.
· Installatur onlajn tal-għodod ESP-IDF
Dan l-installatur huwa relattivament żgħir, madwar 4 MB fid-daqs, u pakketti u kodiċi oħra se jitniżżlu matul il-proċess ta 'installazzjoni. L-avvanztagL-installatur onlajn huwa li mhux biss jistgħu jitniżżlu pakketti tas-softwer u kodiċi fuq talba waqt il-proċess ta 'installazzjoni, iżda jippermetti wkoll l-installazzjoni tar-rilaxxi kollha disponibbli ta' ESP-IDF u l-aħħar fergħa tal-kodiċi GitHub (bħall-fergħa prinċipali) . L-iżvantaġġtage hija li teħtieġ konnessjoni tan-netwerk matul il-proċess ta 'installazzjoni, li jista' jikkawża falliment ta 'installazzjoni minħabba problemi tan-netwerk.
40 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

· Offline ESP-IDF għodda installatur Dan l-installatur huwa akbar, madwar 1 GB fid-daqs, u fih il-pakketti tas-softwer kollha u l-kodiċi meħtieġa għall-ambjent stabbilit. Il-vantaġġ prinċipalitage tal-installatur offline huwa li jista 'jintuża fuq kompjuters mingħajr aċċess għall-Internet, u ġeneralment ikollu rata ogħla ta' suċċess ta 'installazzjoni. Għandu jiġi nnutat li l-installatur offline jista 'jinstalla biss rilaxxi stabbli ta' ESP-IDF identifikati minn v*.* jew v*.*.*.
2. Mexxi l-installatur tal-għodda ESP-IDF Wara li tniżżel verżjoni xierqa tal-installatur (ħu ESP-IDF Tools Offline 4.3.2 għal example hawn), ikklikkja darbtejn l-exe file biex tniedi l-interface tal-installazzjoni ESP-IDF. Dan li ġej juri kif tinstalla l-verżjoni stabbli tal-ESP-IDF v4.3.2 billi tuża l-installatur offline.
(1) Fl-interface "Agħżel il-lingwa tal-installazzjoni" murija fil-Figura 4.4, agħżel il-lingwa li għandha tintuża mil-lista li tinżel.
Figura 4.4. Interface "Agħżel il-lingwa tal-installazzjoni" (2) Wara li tagħżel il-lingwa, ikklikkja "OK" biex tfaċċa l-interface "Ftehim tal-liċenzja"
(ara l-Figura 4.5). Wara li taqra bir-reqqa l-ftehim tal-liċenzja tal-installazzjoni, agħżel "Naċċetta l-ftehim" u kklikkja "Li jmiss".
Figura 4.5. Interfaċċja “Ftehim ta’ liċenzja” Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 41

(3) Riview il-konfigurazzjoni tas-sistema fl-interface "Verifika tas-sistema ta' qabel l-installazzjoni" (ara Figura 4.6). Iċċekkja l-verżjoni tal-Windows u l-informazzjoni tas-software antivirus installat. Ikklikkja "Li jmiss" jekk l-oġġetti kollha tal-konfigurazzjoni huma normali. Inkella, tista 'tikklikkja "Full log" għal soluzzjonijiet ibbażati fuq oġġetti ewlenin.
Figura 4.6. "Verifika tas-sistema qabel l-installazzjoni" TIPS interface
Tista' tissottometti zkuk lil https://github.com/espressif/idf-installer/issues għall-għajnuna. (4) Agħżel id-direttorju tal-installazzjoni ESP-IDF. Hawnhekk, agħżel D:/.espressif, kif muri fi
Figura 4.7, u kklikkja "Li jmiss". Jekk jogħġbok innota li .espressif hawnhekk huwa direttorju moħbi. Wara li titlesta l-installazzjoni, tista ' view il-kontenut speċifiku ta’ dan id-direttorju billi tiftaħ il- file maniġer u wiri oġġetti moħbija.
Figura 4.7. Agħżel id-direttorju tal-installazzjoni ESP-IDF 42 ESP32-C3 Avventura bla Fili: Gwida Komprensiva għall-IoT

(5) Iċċekkja l-komponenti li jeħtieġ li jiġu installati, kif muri fil-Figura 4.8. Huwa rakkomandat li tuża l-għażla default, jiġifieri, tlesti l-installazzjoni, u mbagħad ikklikkja "Li jmiss".
Figura 4.8. Agħżel il-komponenti li trid tinstalla (6) Ikkonferma l-komponenti li jridu jiġu installati u kklikkja “Installa” biex tibda l-installazzjoni awtomatizzata.
proċess ta' stallazzjoni, kif muri fil-Figura 4.9. Il-proċess ta' installazzjoni jista' jdum għexieren ta' minuti u l-istrixxa tal-progress tal-proċess ta' installazzjoni tidher fil-Figura 4.10. Jekk jogħġbok stenna bil-paċenzja.
Figura 4.9. Tħejjija għall-installazzjoni (7) Wara li titlesta l-installazzjoni, huwa rakkomandat li tiċċekkja “Irreġistra l-ESP-IDF
Għodda eżekutibbli bħala esklużjonijiet tal-Windows Defender...” biex jipprevjenu softwer antivirus milli jitħassar files. Iż-żieda ta 'oġġetti ta' esklużjoni tista 'wkoll taqbeż skans frekwenti mill-antivirus
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 43

Figura 4.10. Installazzjoni progress bar software, ittejjeb ħafna l-effiċjenza tal-kompilazzjoni tal-kodiċi tas-sistema Windows. Ikklikkja "Finish" biex tlesti l-installazzjoni tal-ambjent tal-iżvilupp, kif muri fil-Figura 4.11. Tista 'tagħżel li tiċċekkja "Mexxi l-ambjent PowerShell ESP-IDF" jew "Mexxi l-pront tal-kmand ESP-IDF". Mexxi t-tieqa tal-kumpilazzjoni direttament wara l-installazzjoni biex tiżgura li l-ambjent tal-iżvilupp jiffunzjona b'mod normali.
Figura 4.11. Installazzjoni lesta (8) Iftaħ l-ambjent ta' żvilupp installat fil-lista tal-programmi (jew ESP-IDF 4.3
Terminal PowerShell CMD jew ESP-IDF 4.3, kif muri fil-Figura 4.12), u l-varjabbli tal-ambjent ESP-IDF se jiġu miżjuda awtomatikament meta taħdem fit-terminal. Wara dan, tista 'tuża l-kmand idf.py għall-operazzjonijiet. L-ESP-IDF 4.3 CMD miftuħ huwa muri fil-Figura 4.13. 44 ESP32-C3 Avventura bla Fili: Gwida Komprensiva għall-IoT

Figura 4.12. Ambjent ta 'żvilupp installat
Figura 4.13. ESP-IDF 4.3 CMD
4.2.3 Twaqqif ta' Ambjent ta' Żvilupp ESP-IDF fuq Mac
Il-proċess tal-installazzjoni tal-ambjent tal-iżvilupp ESP-IDF fuq sistema Mac huwa l-istess bħal dak fuq sistema Linux. Il-kmandi għat-tniżżil tal-kodiċi tar-repożitorju u l-installazzjoni tal-katina tal-għodda huma eżattament l-istess. Il-kmandi għall-installazzjoni ta' pakketti ta' dipendenza biss huma kemmxejn differenti. 1. Installa pakketti ta 'dipendenza Iftaħ terminal, u installa pip, l-għodda tal-ġestjoni tal-pakketti Python, billi tħaddem il-kmand li ġej:
% sudo easy install pip
Installa Homebrew, għodda għall-ġestjoni tal-pakketti għal macOS, billi tħaddem il-kmand li ġej:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Installa l-pakketti tad-dipendenza meħtieġa billi tħaddem il-kmand li ġej:
% brew python3 install cmake ninja ccache dfu-util
2. Niżżel il-kodiċi tar-repożitorju ESP-IDF Segwi l-istruzzjonijiet ipprovduti fit-taqsima 4.2.1 biex tniżżel il-kodiċi tar-repożitorju ESP-IDF. Il-passi huma l-istess bħal għat-tniżżil fuq sistema Linux.
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 45

3. Installa l-katina tal-għodda tal-iżvilupp ESP-IDF
Segwi l-istruzzjonijiet ipprovduti fit-taqsima 4.2.1 biex tinstalla l-katina tal-għodda tal-iżvilupp ESP-IDF. Il-passi huma l-istess bħal għall-installazzjoni fuq sistema Linux.
4.2.4 Installazzjoni tal-Kodiċi VS
B'mod awtomatiku, l-ESP-IDF SDK ma jinkludix għodda għall-editjar tal-kodiċi (għalkemm l-aħħar installatur ESP-IDF għall-Windows joffri l-għażla li jinstalla ESP-IDF Eclipse). Tista 'tuża kwalunkwe għodda ta' editjar tat-test tal-għażla tiegħek biex teditja l-kodiċi u mbagħad tikkumpilaha billi tuża kmandi tat-terminal.
Għodda popolari għall-editjar tal-kodiċi hija VS Code (Visual Studio Code), li huwa editur tal-kodiċi b'xejn u b'ħafna karatteristiċi b'interface faċli għall-utent. Hija toffri diversi plugins li jipprovdu funzjonalitajiet bħan-navigazzjoni tal-kodiċi, l-enfasi tas-sintassi, il-kontroll tal-verżjoni Git, u l-integrazzjoni tat-terminal. Barra minn hekk, Espressif żviluppat plugin dedikat imsejjaħ Espressif IDF għall-Kodiċi VS, li jissimplifika l-konfigurazzjoni u d-debugging tal-proġett.
Tista 'tuża l-kmand tal-kodiċi fit-terminal biex tiftaħ malajr il-folder attwali f'VS Code. Alternattivament, tista' tuża s-shortcut Ctrl+ biex tiftaħ il-console tat-terminal default tas-sistema fi ħdan VS Code.
TIPS Huwa rakkomandat li tuża VS Code għall-iżvilupp tal-kodiċi ESP32-C3. Niżżel u installa l-aħħar verżjoni tal-VS Code fuq https://code.visualstudio.com/.
4.2.5 Introduzzjoni għal Ambjenti ta' Żvilupp ta' Partijiet Terzi
Minbarra l-ambjent uffiċjali ta 'żvilupp ESP-IDF, li primarjament juża l-lingwa C, ESP32-C3 jappoġġja wkoll lingwi ta' programmazzjoni mainstream oħra u firxa wiesgħa ta 'ambjenti ta' żvilupp ta 'partijiet terzi. Xi għażliet notevoli jinkludu:
Arduino: pjattaforma open-source kemm għall-ħardwer kif ukoll għas-softwer, li tappoġġja diversi mikrokontrolluri, inkluż ESP32-C3.
Juża l-lingwa C++ u joffri API simplifikata u standardizzata, komunement imsejħa l-lingwa Arduino. Arduino huwa użat ħafna fl-iżvilupp tal-prototipi u l-kuntesti edukattivi. Jipprovdi pakkett ta 'softwer estensibbli u IDE li jippermetti kumpilazzjoni u jteptep faċli.
MicroPython: interpretu tal-lingwa Python 3 iddisinjat biex jaħdem fuq pjattaformi ta' mikrokontrolluri inkorporati.
B'lingwa b'kitba sempliċi, tista 'taċċessa direttament ir-riżorsi periferali ta' ESP32-C3 (bħal UART, SPI, u I2C) u funzjonijiet ta 'komunikazzjoni (bħal Wi-Fi u Bluetooth LE).
46 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

Dan jissimplifika l-interazzjoni tal-ħardwer. MicroPython, flimkien mal-librerija estensiva tal-operat matematiku ta 'Python, jippermetti l-implimentazzjoni ta' algoritmi kumplessi fuq ESP32-C3, li jiffaċilita l-iżvilupp ta 'applikazzjonijiet relatati mal-AI. Bħala lingwa b'kitba, m'hemmx bżonn ta' kumpilazzjoni ripetuta; modifiki jistgħu jsiru u skripts jistgħu jiġu esegwiti direttament.
NodeMCU: interpretu tal-lingwa LUA żviluppat għal ċipep tas-serje ESP.
Jappoġġja kważi l-funzjonijiet periferali kollha taċ-ċipep ESP u huwa eħfef minn MicroPython. Simili għal MicroPython, NodeMCU juża lingwa b'kitba, u jelimina l-ħtieġa għal kumpilazzjoni ripetuta.
Barra minn hekk, ESP32-C3 jappoġġja wkoll is-sistemi operattivi NuttX u Zephyr. NuttX hija sistema operattiva f'ħin reali li tipprovdi interfaces kompatibbli ma 'POSIX, li ttejjeb il-portabbiltà tal-applikazzjoni. Zephyr hija sistema operattiva żgħira f'ħin reali ddisinjata speċifikament għal applikazzjonijiet IoT. Jinkludi bosta libreriji tas-softwer meħtieġa fl-iżvilupp tal-IoT, li gradwalment jevolvu f'ekosistema ta' softwer komprensiva.
Dan il-ktieb ma jipprovdix struzzjonijiet dettaljati ta' installazzjoni għall-ambjenti ta' żvilupp imsemmija hawn fuq. Tista' tinstalla ambjent ta' żvilupp ibbażat fuq ir-rekwiżiti tiegħek billi ssegwi d-dokumentazzjoni u l-istruzzjonijiet rispettivi.
4.3 Sistema ta' Kumpilazzjoni ESP-IDF
4.3.1 Kunċetti Bażiċi tas-Sistema ta' Kumpilazzjoni
Proġett ESP-IDF huwa ġabra ta' programm ewlieni b'funzjoni ta' dħul u komponenti funzjonali indipendenti multipli. Per example, proġett li jikkontrolla swiċċijiet LED jikkonsisti prinċipalment minn programm ta 'dħul prinċipali u komponent tas-sewwieq li jikkontrolla GPIO. Jekk trid tirrealizza l-kontroll remot LED, għandek bżonn ukoll iżżid Wi-Fi, munzell ta 'protokoll TCP/IP, eċċ.
Is-sistema ta' kumpilazzjoni tista' tikkompila, tgħaqqad u tiġġenera eżekutibbli files (.bin) għall-kodiċi permezz ta 'sett ta' regoli tal-bini. Is-sistema ta 'kumpilazzjoni ta' ESP-IDF v4.0 u verżjonijiet ogħla hija bbażata fuq CMake awtomatikament, u l-iskrittura ta 'kompilazzjoni CMakeLists.txt tista' tintuża biex tikkontrolla l-imġieba ta 'kompilazzjoni tal-kodiċi. Minbarra li tappoġġja s-sintassi bażika ta 'CMake, is-sistema ta' kumpilazzjoni ESP-IDF tiddefinixxi wkoll sett ta 'regoli ta' kumpilazzjoni default u funzjonijiet CMake, u tista 'tikteb l-iskrittura ta' kumpilazzjoni b'dikjarazzjonijiet sempliċi.
4.3.2 Proġett File Struttura
Proġett huwa folder li fih programm tad-dħul prinċipali, komponenti definiti mill-utent, u files meħtieġa biex jibnu applikazzjonijiet eżekutibbli, bħal skripts ta ' kumpilazzjoni, konfigurazzjoni
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 47

files, tabelli diviżorji, eċċ Proġetti jistgħu jiġu kkupjati u mgħoddija, u l-istess eżekutibbli file jistgħu jiġu kkompilati u ġġenerati f'magni bl-istess verżjoni ta 'l-ambjent ta' żvilupp ESP-IDF. Proġett ESP-IDF tipiku file l-istruttura hija murija fil-Figura 4.14.
Figura 4.14. Proġett ESP-IDF tipiku file struttura Peress li l-ESP-IDF jappoġġja ċipep multipli IoT minn Espressif, inklużi ESP32, serje ESP32-S, serje ESP32-C, serje ESP32-H, eċċ., jeħtieġ li tiġi determinata mira qabel il-kompilazzjoni tal-kodiċi. Il-mira hija kemm l-apparat tal-ħardwer li jmexxi l-programm ta 'applikazzjoni kif ukoll il-mira tal-bini tas-sistema ta' kumpilazzjoni. Skont il-bżonnijiet tiegħek, tista' tispeċifika mira waħda jew aktar għall-proġett tiegħek. Per example, permezz ta 'kmand idf.py set-target esp32c3, tista' tissettja l-mira tal-kumpilazzjoni għal ESP32-C3, li matulha l-parametri awtomatiċi u l-mogħdija tal-katina tal-għodda tal-kumpilazzjoni għal ESP32C3 se jiġu mgħobbija. Wara l-kumpilazzjoni, programm eżekutibbli jista 'jiġi ġġenerat għal ESP32C3. Tista 'wkoll tmexxi l-kmand set-target mill-ġdid biex tissettja mira differenti, u s-sistema ta' kumpilazzjoni awtomatikament tnaddaf u tikkonfigura mill-ġdid. Komponenti
Il-komponenti fl-ESP-IDF huma unitajiet ta' kodiċi modulari u indipendenti ġestiti fi ħdan is-sistema ta' kumpilazzjoni. Huma organizzati bħala folders, bl-isem tal-folder jirrappreżenta l-isem tal-komponent awtomatikament. Kull komponent għandu l-iskript tal-kumpilazzjoni tiegħu stess li 48 ESP32-C3 Avventura bla Fili: Gwida Komprensiva għall-IoT

jispeċifika l-parametri tal-kumpilazzjoni u d-dipendenzi tiegħu. Matul il-proċess ta' kumpilazzjoni, il-komponenti jiġu kkompilati f'libreriji statiċi separati (.a files) u eventwalment magħquda ma 'komponenti oħra biex jiffurmaw il-programm ta' applikazzjoni.
ESP-IDF jipprovdi funzjonijiet essenzjali, bħas-sistema operattiva, sewwieqa periferali, u munzell ta 'protokoll tan-netwerk, fil-forma ta' komponenti. Dawn il-komponenti huma maħżuna fid-direttorju tal-komponenti li jinsab fid-direttorju tal-għeruq ESP-IDF. L-iżviluppaturi m'għandhomx għalfejn jikkupjaw dawn il-komponenti fid-direttorju tal-komponenti ta' myProject. Minflok, jeħtieġ biss li jispeċifikaw ir-relazzjonijiet ta' dipendenza ta' dawn il-komponenti fil-CMakeLists.txt tal-proġett. file bl-użu tad-direttivi REQUIRES jew PRIV_REQUIRES. Is-sistema ta' kumpilazzjoni awtomatikament issib u tikkumpila l-komponenti meħtieġa.
Għalhekk, id-direttorju tal-komponenti taħt myProject mhuwiex meħtieġ. Jintuża biss biex jinkludi xi komponenti tad-dwana tal-proġett, li jistgħu jkunu libreriji ta 'partijiet terzi jew kodiċi definit mill-utent. Barra minn hekk, il-komponenti jistgħu jinxtraw minn kwalunkwe direttorju għajr l-ESP-IDF jew il-proġett attwali, bħal minn proġett open-source salvat f'direttorju ieħor. F'dan il-każ, għandek bżonn biss li żżid il-mogħdija tal-komponent billi tistabbilixxi l-varjabbli EXTRA_COMPONENT_DIRS fil-CMakeLists.txt taħt id-direttorju tal-għeruq. Dan id-direttorju se jegħleb kull komponent ESP-IDF bl-istess isem, u jiżgura li jintuża l-komponent korrett.
Dħul programm prinċipali Id-direttorju prinċipali fi ħdan il-proġett isegwi l-istess file struttura bħala komponenti oħra (eż., komponent1). Madankollu, għandu sinifikat speċjali peress li huwa komponent obbligatorju li jrid jeżisti f'kull proġett. Id-direttorju ewlieni fih il-kodiċi tas-sors tal-proġett u l-punt tad-dħul tal-programm tal-utent, tipikament jismu app_main. B'mod awtomatiku, l-eżekuzzjoni tal-programm tal-utent tibda minn dan il-punt tad-dħul. Il-komponent ewlieni jvarja wkoll peress li awtomatikament jiddependi fuq il-komponenti kollha fi ħdan il-mogħdija tat-tfittxija. Għalhekk, m'hemmx bżonn li jiġu indikati b'mod espliċitu dipendenzi bl-użu tad-direttivi REQUIRES jew PRIV_REQUIRES fil-CMakeLists.txt file.
Konfigurazzjoni file Id-direttorju tal-għeruq tal-proġett fih konfigurazzjoni file imsejjaħ sdkconfig, li fih il-parametri tal-konfigurazzjoni għall-komponenti kollha fi ħdan il-proġett. L-sdkconfig file huwa ġġenerat awtomatikament mis-sistema ta 'kumpilazzjoni u jista' jiġi modifikat u riġenerat mill-kmand idf.py menuconfig. L-għażliet menuconfig joriġinaw prinċipalment mill-Kconfig.projbuild tal-proġett u l-Kconfig tal-komponenti. L-iżviluppaturi tal-komponenti ġeneralment iżidu oġġetti tal-konfigurazzjoni f'Kconfig biex jagħmlu l-komponent flessibbli u konfigurabbli.
Id-direttorju tal-bini B'mod awtomatiku, id-direttorju tal-bini fi ħdan il-proġett jaħżen intermedju files u l-fi-
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 49

programmi eżekutibbli finali ġġenerati mill-kmand tal-bini idf.py. B'mod ġenerali, mhux meħtieġ li taċċessa direttament il-kontenut tad-direttorju tal-bini. ESP-IDF jipprovdi kmandi predefiniti biex jinteraġixxu mad-direttorju, bħall-użu tal-kmand flash idf.py biex jillokalizza awtomatikament il-binarju kkumpilat file u flashha fl-indirizz tal-flash speċifikat, jew tuża l-kmand idf.py fullclean biex tnaddaf id-direttorju tal-bini kollu.
Tabella diviżorja (partitions.csv) Kull proġett jeħtieġ tabella diviżorja biex jaqsam l-ispazju tal-flash u tispeċifika d-daqs u l-indirizz tal-bidu tal-programm eżekutibbli u l-ispazju tad-dejta tal-utent. Kmand idf.py flash jew programm ta 'aġġornament OTA se jteptep il-firmware għall-indirizz korrispondenti skond din it-tabella. L-ESP-IDF jipprovdi diversi tabelli ta' partizzjoni default f'komponenti/partition_table, bħal partitions_singleapp.csv u partitions_two_ ota.csv, li jistgħu jintgħażlu fil-menuconfig.
Jekk it-tabella diviżorja default tas-sistema ma tistax tissodisfa r-rekwiżiti tal-proġett, partitions.csv tad-dwana jistgħu jiġu miżjuda mad-direttorju tal-proġett u jintgħażlu fil-menuconfig.
4.3.3 Regoli tal-Bini Default tas-Sistema ta' Kumpilazzjoni
Regoli għall-komponenti li jipprevalu bl-istess isem Matul il-proċess ta 'tfittxija tal-komponenti, is-sistema ta' kumpilazzjoni ssegwi ordni speċifika. L-ewwel ifittex komponenti interni ta' ESP-IDF, imbagħad ifittex komponenti tal-proġett tal-utent, u fl-aħħar ifittex komponenti f'EXTRA_COMPONENT_DIRS. F'każijiet fejn direttorji multipli fihom komponenti bl-istess isem, il-komponent misjub fl-aħħar direttorju jegħleb kwalunkwe komponenti preċedenti bl-istess isem. Din ir-regola tippermetti l-personalizzazzjoni tal-komponenti ESP-IDF fi ħdan il-proġett tal-utent, filwaqt li żżomm il-kodiċi ESP-IDF oriġinali intatt.
Regoli biex jiġu inklużi komponenti komuni awtomatikament Kif imsemmi fit-taqsima 4.3.2, il-komponenti jeħtieġ li jispeċifikaw b'mod espliċitu d-dipendenzi tagħhom fuq komponenti oħra fil-CMakeLists.txt. Madankollu, komponenti komuni bħal freertos huma awtomatikament inklużi fis-sistema tal-bini b'mod awtomatiku, anki jekk ir-relazzjonijiet ta 'dipendenza tagħhom mhumiex definiti b'mod espliċitu fl-iskrittura tal-kumpilazzjoni. Komponenti komuni ESP-IDF jinkludu freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, u cxx. L-użu ta 'dawn il-komponenti komuni jevita xogħol ripetittiv meta tikteb CMakeLists.txt u tagħmilha aktar konċiża.
Regoli għall-punti ta' konfigurazzjoni prevalenti L-iżviluppaturi jistgħu jżidu parametri ta' konfigurazzjoni default billi jżidu konfigurazzjoni default file jismu sdkconfig.defaults għall-proġett. Per example, żżid CONFIG_LOG_
50 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

DEFAULT_LEVEL_NONE = y tista 'tikkonfigura l-interface UART biex ma tipprintjax id-dejta tal-log b'mod awtomatiku. Barra minn hekk, jekk jeħtieġ li jiġu stabbiliti parametri speċifiċi għal mira partikolari, konfigurazzjoni file jismu sdkconfig.defaults.TARGET_NAME jista 'jiġi miżjud, fejn TARGET_NAME jista' jkun esp32s2, esp32c3, eċċ. Dawn il-konfigurazzjoni files huma importati fl-sdkconfig waqt il-kumpilazzjoni, bil-konfigurazzjoni default ġenerali file sdkconfig.defaults jiġu importati l-ewwel, segwiti mill-konfigurazzjoni speċifika għall-mira file, bħal sdkconfig.defaults.esp32c3. F'każijiet fejn hemm oġġetti ta 'konfigurazzjoni bl-istess isem, il-konfigurazzjoni tal-aħħar file se jegħleb l-ewwel.
4.3.4 Introduzzjoni għall-Iskrittura tal-Kompilazzjoni
Meta jiżviluppaw proġett bl-użu ta 'ESP-IDF, l-iżviluppaturi mhux biss jeħtieġ li jiktbu kodiċi tas-sors iżda jeħtieġ ukoll li jiktbu CMakeLists.txt għall-proġett u l-komponenti. CMakeLists.txt huwa test file, magħrufa wkoll bħala skript ta 'kumpilazzjoni, li jiddefinixxi serje ta' oġġetti ta 'kumpilazzjoni, oġġetti ta' konfigurazzjoni ta 'kumpilazzjoni, u kmandi biex jiggwidaw il-proċess ta' kumpilazzjoni tal-kodiċi tas-sors. Is-sistema ta' kumpilazzjoni ta' ESP-IDF v4.3.2 hija bbażata fuq CMake. Minbarra li tappoġġja l-funzjonijiet u l-kmandi CMake indiġeni, tiddefinixxi wkoll serje ta 'funzjonijiet tad-dwana, li tagħmilha ħafna aktar faċli biex tikteb skripts ta' kumpilazzjoni.
L-iskripts tal-kumpilazzjoni fl-ESP-IDF jinkludu prinċipalment l-iskript tal-kumpilazzjoni tal-proġett u l-iskripts tal-kompilazzjoni tal-komponenti. Il-CMakeLists.txt fid-direttorju tal-għeruq tal-proġett jissejjaħ l-iskrittura tal-kumpilazzjoni tal-proġett, li jiggwida l-proċess tal-kumpilazzjoni tal-proġett kollu. Skript bażiku ta' kumpilazzjoni ta' proġett tipikament jinkludi t-tliet linji li ġejjin:
1. cmake_minimum_required(VERŻJONI 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Fosthom, iċ-cmake_minimum_required (VERŻJONI 3.5) għandu jitqiegħed fuq l-ewwel linja, li tintuża biex tindika n-numru minimu tal-verżjoni CMake meħtieġ mill-proġett. Verżjonijiet aktar ġodda ta 'CMake huma ġeneralment kompatibbli b'lura ma' verżjonijiet eqdem, għalhekk aġġusta n-numru tal-verżjoni kif xieraq meta tuża kmandi CMake aktar ġodda biex tiżgura l-kompatibilità.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) timporta oġġetti ta' konfigurazzjoni definiti minn qabel u kmandi tas-sistema ta' kumpilazzjoni ESP-IDF, inklużi r-regoli ta' bini default tas-sistema ta' kumpilazzjoni deskritta fit-Taqsima 4.3.3. project(myProject) joħloq il-proġett innifsu u jispeċifika ismu. Dan l-isem se jintuża bħala l-output finali binarju file isem, jiġifieri, myProject.elf u myProject.bin.
Proġett jista' jkollu komponenti multipli, inkluż il-komponent ewlieni. Id-direttorju tal-ogħla livell ta' kull komponent fih CMakeLists.txt file, li tissejjaħ l-iskrittura tal-kompilazzjoni tal-komponenti. L-iskripts tal-kompilazzjoni tal-komponenti jintużaw prinċipalment biex jispeċifikaw id-dipendenzi tal-komponenti, il-parametri tal-konfigurazzjoni, il-kodiċi tas-sors files, u inklużi header files għal
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 51

kumpilazzjoni. Bil-funzjoni tad-dwana ta' ESP-IDF idf_component_register, il-kodiċi minimu meħtieġ għal script ta' kumpilazzjoni ta' komponenti huwa kif ġej:

1. idf_component_register(SRCS “src1.c”

2.

INCLUDE_DIRS "inkludi"

3.

TEĦTIEĠ komponent1)

Il-parametru SRCS jipprovdi lista tas-sors files fil-komponent, separati bi spazji jekk ikun hemm multipli files. Il-parametru INCLUDE_DIRS jipprovdi lista ta' header pubbliku file direttorji għall-komponent, li se jiġu miżjuda mal-mogħdija tat-tfittxija tal-inklużjoni għal komponenti oħra li jiddependu fuq il-komponent attwali. Il-parametru REQUIRES jidentifika d-dipendenzi tal-komponenti pubbliċi għall-komponent attwali. Huwa meħtieġ li l-komponenti jiddikjaraw b'mod espliċitu liema komponenti jiddependu fuqhom, bħal komponent2 skont il-komponent1. Madankollu, għall-komponent ewlieni, li jiddependi fuq il-komponenti kollha awtomatikament, il-parametru REQUIRES jista' jitħalla barra.

Barra minn hekk, il-kmandi CMake nattivi jistgħu jintużaw ukoll fl-iskrittura tal-kumpilazzjoni. Per example, uża s-sett tal-kmand biex tissettja varjabbli, bħal set(VARJABBLI "VALUR").

4.3.5 Introduzzjoni għall-Kmandi Komuni
ESP-IDF juża CMake (għodda tal-konfigurazzjoni tal-proġett), Ninja (għodda tal-bini tal-proġett) u esptool (għodda tal-flash) fil-proċess tal-kompilazzjoni tal-kodiċi. Kull għodda għandha rwol differenti fil-proċess ta 'kumpilazzjoni, bini u flash, u tappoġġja wkoll kmandi operattivi differenti. Biex tiffaċilita l-operat tal-utent, ESP-IDF iżid idf.py front-end unifikat li jippermetti li l-kmandi ta 'hawn fuq jissejħu malajr.
Qabel ma tuża idf.py, kun żgur li:
· Il-varjabbli ambjentali IDF_PATH ta 'ESP-IDF ġiet miżjuda mat-terminal attwali. · Id-direttorju tal-eżekuzzjoni tal-kmand huwa d-direttorju tal-għeruq tal-proġett, li jinkludi l-
skript tal-kumpilazzjoni tal-proġett CMakeLists.txt.
Il-kmandi komuni ta 'idf.py huma kif ġej:
· idf.py –help: turi lista ta’ kmandi u l-istruzzjonijiet għall-użu tagħhom. · idf.py issettja l-mira : jistabbilixxi l-kumpilazzjoni taidf.py fullcleanrget, tali
bħala sostituzzjoni b'esp32c3. · idf.py menuconfig: tnedija menuconfig, konfigurazzjoni grafika terminali
għodda, li tista 'tagħżel jew timmodifika l-għażliet ta' konfigurazzjoni, u r-riżultati tal-konfigurazzjoni jiġu ssejvjati fl-sdkconfig file. · idf.py build: bidu tal-kompilazzjoni tal-kodiċi. L-intermedjarju files u l-programm eżekutibbli finali ġġenerat mill-kumpilazzjoni se jiġu ffrankati fid-direttorju tal-bini tal-proġett b'mod awtomatiku. Il-proċess ta 'kompilazzjoni huwa inkrementali, li jfisser li jekk sors wieħed biss file huwa modifikat, il-modifikat biss file se jinġabru d-darba li jmiss.

52 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

· idf.py nadif: tindif tal-intermedjarju files iġġenerat mill-kumpilazzjoni tal-proġett. Il-proġett kollu se jkun sfurzat jikkompila fil-kumpilazzjoni li jmiss. Innota li l-konfigurazzjoni CMake u l-modifiki tal-konfigurazzjoni magħmula minn menuconfig mhux se jitħassru waqt it-tindif.
· idf.py fullclean: tħassar id-direttorju tal-bini kollu, inkluż l-output kollu tal-konfigurazzjoni CMake files. Meta tibni l-proġett mill-ġdid, CMake se tikkonfigura l-proġett mill-bidu. Jekk jogħġbok innota li dan il-kmand se jħassar kollox b'mod rikorsiv files fid-direttorju tal-bini, għalhekk użaha b'kawtela, u l-konfigurazzjoni tal-proġett file mhux se jitħassar.
· idf.py flash: li jteptep il-programm eżekutibbli binarju file iġġenerat mill-bini għall-mira ESP32-C3. L-għażliet -p u -b jintużaw biex jissettjaw l-isem tal-apparat tal-port tas-serje u r-rata baud għat-teptep, rispettivament. Jekk dawn iż-żewġ għażliet mhumiex speċifikati, il-port tas-serje jiġi skopert awtomatikament u tintuża r-rata baud default.
· idf.py monitor: juri l-output tal-port tas-serje tal-mira ESP32-C3. L-għażla -p tista 'tintuża biex tispeċifika l-isem tal-apparat tal-port tas-serje host-side. Waqt l-istampar tal-port tas-serje, agħfas il-kombinazzjoni taċ-ċwievet Ctrl+] biex toħroġ mill-monitor.
Il-kmandi ta 'hawn fuq jistgħu wkoll jiġu kkombinati kif meħtieġ. Per example, il-kmand idf.py build flash monitor se jwettaq il-kompilazzjoni tal-kodiċi, flash, u tiftaħ il-monitor tal-port tas-serje f'sekwenza.
Tista 'żżur https://bookc3.espressif.com/build-system biex tkun taf aktar dwar is-sistema ta' kumpilazzjoni ESP-IDF.
4.4 Prattika: Kumpilazzjoni Eżampil-Programm “Blink”
4.4.1 Eżample Analiżi
Din it-taqsima se tieħu l-programm Blink bħala example biex tanalizza l file struttura u regoli ta’ kodifikazzjoni ta’ proġett reali fid-dettall. Il-programm Blink jimplimenta l-effett teptip LED, u l-proġett jinsab fid-direttorju examples/get-started/blink, li fih sors file, konfigurazzjoni files, u skripts kumpilazzjoni diversi.
Il-proġett tad-dawl intelliġenti introdott f'dan il-ktieb huwa bbażat fuq dan l-example program. Funzjonijiet se jiżdiedu gradwalment f'kapitoli aktar tard biex finalment jitlesta.
Kodiċi tas-sors Sabiex jintwera l-proċess kollu ta 'żvilupp, il-programm Blink ġie kkupjat f'esp32c3-iot-projects/device firmware/1 blink.
L-istruttura tad-direttorju tal-proġett blink files huwa muri fil-Figura 4.15.
Il-proġett blink fih direttorju ewlieni wieħed biss, li huwa komponent speċjali li
Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 53

Figura 4.15. File struttura tad-direttorju tal-proġett blink

għandhom jiġu inklużi kif deskritt fit-taqsima 4.3.2. Id-direttorju ewlieni jintuża prinċipalment biex jaħżen l-implimentazzjoni tal-funzjoni app_main(), li hija l-punt tad-dħul għall-programm tal-utent. Il-proġett blink ma jinkludix id-direttorju tal-komponenti, minħabba li dan example jeħtieġ biss li tuża l-komponenti li jiġu mal-ESP-IDF u ma teħtieġx komponenti addizzjonali. Il-CMakeLists.txt inkluż fil-proġett blink jintuża biex jiggwida l-proċess ta 'kumpilazzjoni, filwaqt li Kconfig.projbuild jintuża biex iżżid oġġetti ta' konfigurazzjoni għal dan l-example program fil-menuconfig. Oħrajn bla bżonn files mhux se jaffettwa l-kumpilazzjoni tal-kodiċi, sabiex dawn mhux se jiġu diskussi hawn. Introduzzjoni dettaljata għall-proġett blink files huwa kif ġej.

1. /*blink.c jinkludi l-header li ġej files*/

2. #inkludi

//Intestatura tal-librerija Standard C file

3. #include “freertos/freeRTOS.h” //Header prinċipali ta’ FreeRTOS file

4. #inkludi “freertos/task.h”

//FreeRTOS Task header file

5. #inkludi “sdkconfig.h”

// Intestatura tal-konfigurazzjoni file iġġenerat minn kconfig

6. #inkludi “sewwieq/gpio.h”

//Intestatura tas-sewwieq GPIO file

Is-sors file blink.c fih serje ta' header files li jikkorrispondi għal dikjarazzjoni tal-funzjoni-

zjonijiet. L-ESP-IDF ġeneralment issegwi l-ordni li tinkludi header tal-librerija standard files, ĦielesR-

Header TOS files, header tas-sewwieq files, header komponent ieħor files, u header tal-proġett files.

L-ordni li fiha header files huma inklużi jistgħu jaffettwaw ir-riżultat tal-kumpilazzjoni finali, għalhekk ipprova

segwi r-regoli default. Għandu jiġi nnutat li sdkconfig.h huwa ġġenerat awtomatikament

minn kconfig u jistgħu jiġu kkonfigurati biss permezz tal-kmand idf.py menuconfig.

Modifika diretta ta' din l-intestatura file se jinkiteb fuqhom.

1. /* Tista 'tagħżel il-GPIO li jikkorrispondi għall-LED f'idf.py menuconfig, u r-riżultat tal-modifika ta' menuconfig huwa li l-valur ta 'CONFIG_BLINK

_GPIO se jinbidel. Tista 'wkoll timmodifika direttament id-definizzjoni makro

hawn, u ibdel CONFIG_BLINK_GPIO għal valur fiss.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO

3. null app_main(void)

4. {

5.

/* Ikkonfigura IO bħala l-funzjoni default GPIO, tippermetti l-modalità pull-up, u

6.

tiddiżattiva modi ta' input u output*/

7.

gpio_reset_pin(BLINK_GPIO);

54 Avventura bla Fili ESP32-C3: Gwida Komprensiva għall-IoT

8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }

/*Issettja GPIO għall-modalità tal-ħruġ*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); filwaqt li (1) {
/*Istampa log*/ printf(“Tfiq l-LEDn”); /* Itfi l-LED (output livell baxx)*/ gpio_set_level(BLINK_GPIO, 0); /*Dewmien (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf ("Xegħlu l-LEDn"); /* Ixgħel l-LED (output livell għoli)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }

Il-funzjoni app_main() fil-Blink example program iservi bħala l-punt tad-dħul għall-programmi tal-utent. Hija funzjoni sempliċi mingħajr parametri u mingħajr valur ta 'ritorn. Din il-funzjoni tissejjaħ wara li s-sistema tkun lestiet l-inizjalizzazzjoni, li tinkludi kompiti bħall-inizjalizzazzjoni tal-port tas-serje tal-log, il-konfigurazzjoni tal-qalba waħda/doppja, u l-konfigurazzjoni tal-watchdog.

Il-funzjoni app_main() taħdem fil-kuntest ta' kompitu msemmi main. Id-daqs tal-munzell u l-prijorità ta 'dan il-kompitu jistgħu jiġu aġġustati fil-menuconfig Componentconfig Komuni ESP relatat.

Għal ħidmiet sempliċi bħal teptip ta 'LED, il-kodiċi kollu meħtieġ jista' jiġi implimentat direttament fil-funzjoni app_main(). Dan tipikament jinvolvi l-inizjalizzazzjoni tal-GPIO li jikkorrispondi għall-LED u l-użu ta 'loop while(1) biex taqleb u jintefa' l-LED. Alternattivament, tista 'tuża FreeRTOS API biex toħloq kompitu ġdid li jimmaniġġja l-teptep LED. Ladarba l-kompitu l-ġdid jinħoloq b'suċċess, tista 'toħroġ mill-funzjoni app_main().

Il-kontenut ta' main/CMakeLists.txt file, li jiggwida l-proċess ta' kumpilazzjoni għall-komponent ewlieni, huwa kif ġej:

1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )

Fosthom, main/CMakeLists.txt isejjaħ biss funzjoni waħda tas-sistema ta' kumpilazzjoni, jiġifieri idf_component_register. Simili għall-CMakeLists.txt għall-biċċa l-kbira tal-komponenti l-oħra, blink.c huwa miżjud ma 'SRCS, u s-sors files miżjuda mal-SRCS se jiġu kkompilati. Fl-istess ħin, ".", li tirrappreżenta t-triq fejn jinsab CMakeLists.txt, għandha tiżdied ma' INCLUDE_DIRS bħala d-direttorji tat-tiftix għall-header files. Il-kontenut ta' CMakeLists.txt huwa kif ġej:
1. #Speċifika v3.5 bħala l-eqdem verżjoni CMake appoġġjata mill-proġett attwali 2. #Verżjonijiet inqas minn v3.5 għandhom jiġu aġġornati qabel ma tkompli l-kumpilazzjoni 3. cmake_minimum_required(VERŻJONI 3.5) 4. #Inkludi l-konfigurazzjoni default CMake tal-ESP -Sistema ta 'kumpilazzjoni IDF

Kapitolu 4. Twaqqif ta’ Ambjent ta’ Żvilupp 55

5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Oħloq proġett bl-isem “blink” 7. project(myProject)
Fosthom, il-CMakeLists.txt fid-direttorju tal-għerq jinkludi prinċipalment $ENV{IDF_ PATH}/tools/cmake/project.cmake, li hija l-konfigurazzjoni ewlenija CMake file ipprovdut minn ESP-IDF. Huwa użat biex kon

Dokumenti / Riżorsi

Espressif Systems ESP32-C3 Avventura bla Fili [pdfGwida għall-Utent
ESP32-C3 Avventura bla Fili, ESP32-C3, Avventura bla Fili, Avventura

Referenzi

Ħalli kumment

L-indirizz elettroniku tiegħek mhux se jiġi ppubblikat. L-oqsma meħtieġa huma mmarkati *