ESP32-C3 þráðlaust ævintýri

ESP32-C3 þráðlaust ævintýri

Alhliða handbók um IoT

Espressif Systems 12. júní 2023

Tæknilýsing

  • Vara: ESP32-C3 Wireless Adventure
  • Framleiðandi: Espressif Systems
  • Dagsetning: 12. júní 2023

Notkunarleiðbeiningar fyrir vöru

Undirbúningur

Áður en þú notar ESP32-C3 Wireless Adventure skaltu ganga úr skugga um að þú sért það
þekki hugtök og arkitektúr IoT. Þetta mun hjálpa
þú skilur hvernig tækið passar inn í stærra IoT vistkerfið
og hugsanlega notkun þess á snjallheimilum.

Kynning og framkvæmd IoT-verkefna

Í þessum hluta muntu læra um dæmigerð IoT verkefni,
þar á meðal grunneiningar fyrir algeng IoT tæki, grunneiningar
af viðskiptavinaforritum og algengum IoT skýjapöllum. Þetta mun
veita þér grunn til að skilja og skapa þitt
eigin IoT verkefni.

Æfing: Smart Light Project

Í þessu æfingaverkefni lærir þú hvernig á að búa til snjall
ljós með því að nota ESP32-C3 Wireless Adventure. Uppbygging verkefnisins,
aðgerðir, undirbúningur vélbúnaðar og þróunarferli verða
útskýrt ítarlega.

Uppbygging verkefnis

Verkefnið samanstendur af nokkrum þáttum, þar á meðal
ESP32-C3 þráðlaust ævintýri, LED, skynjarar og ský
bakenda.

Verkefnaaðgerðir

Snjallljósaverkefnið gerir þér kleift að stjórna birtustigi og
litur ljósdíóða fjarstýrt í gegnum farsímaforrit eða web
viðmót.

Undirbúningur vélbúnaðar

Til að undirbúa verkefnið þarftu að safna saman
nauðsynlegir vélbúnaðaríhlutir, eins og ESP32-C3 Wireless
Ævintýraborð, LED, viðnám og aflgjafi.

Þróunarferli

Þróunarferlið felur í sér að setja upp þróunina
umhverfi, skrifa kóða til að stjórna LED, tengja við
skýjabakendi og prófa virkni snjallsins
ljós.

Kynning á ESP RainMaker

ESP RainMaker er öflugur rammi til að þróa IoT
tæki. Í þessum hluta muntu læra hvað ESP RainMaker er og
hvernig hægt er að útfæra það í verkefnum þínum.

Hvað er ESP RainMaker?

ESP RainMaker er skýjabyggður vettvangur sem býður upp á sett af
verkfæri og þjónustu til að byggja og stjórna IoT-tækjum.

Innleiðing ESP RainMaker

Þessi hluti útskýrir mismunandi þætti sem taka þátt í
innleiða ESP RainMaker, þar á meðal kröfuþjónustuna,
RainMaker Agent, skýjabakendi og RainMaker Client.

Æfing: Lykilatriði fyrir þróun með ESP RainMaker

Í þessum æfingakafla muntu læra um lykilatriðin í
íhugaðu þegar þú þróar með ESP RainMaker. Þetta felur í sér tæki
kröfugerð, gagnasamstillingu og notendastjórnun.

Eiginleikar ESP RainMaker

ESP RainMaker býður upp á ýmsa eiginleika fyrir notendastjórnun, enda
notendur og stjórnendur. Þessir eiginleikar gera kleift að auðvelda tæki
uppsetningu, fjarstýringu og eftirlit.

Uppsetning þróunarumhverfis

Þessi hluti veitir yfirview af ESP-IDF (Espressif IoT
Development Framework), sem er opinber þróunarrammi
fyrir ESP32-undirstaða tæki. Það útskýrir mismunandi útgáfur af
ESP-IDF og hvernig á að setja upp þróunarumhverfið.

Þróun vélbúnaðar og bílstjóra

Vélbúnaðarhönnun snjallljósavara byggða á ESP32-C3

Þessi hluti fjallar um vélbúnaðarhönnun snjallljósa
vörur byggðar á ESP32-C3 Wireless Adventure. Það nær yfir
eiginleikar og samsetning snjallljósavara, svo og
vélbúnaðarhönnun ESP32-C3 kjarnakerfisins.

Eiginleikar og samsetning snjallljósavara

Þessi undirkafli útskýrir eiginleika og íhluti sem búa til
upp smart light vörur. Það fjallar um mismunandi virkni
og hönnunarsjónarmið við að búa til snjallljós.

Vélbúnaðarhönnun ESP32-C3 kjarnakerfis

Vélbúnaðarhönnun ESP32-C3 kjarnakerfisins inniheldur afl
framboð, kveikja röð, kerfi endurstilla, SPI flass, klukkugjafi,
og RF og loftnetssjónarmið. Þessi undirkafli kveður á um
nákvæmar upplýsingar um þessa þætti.

Algengar spurningar

Sp.: Hvað er ESP RainMaker?

A: ESP RainMaker er skýjabyggður vettvangur sem býður upp á verkfæri
og þjónustu við smíði og stjórnun IoT-tækja. Það einfaldar
þróunarferlið og gerir kleift að auðvelda uppsetningu tækja, fjarstýringu
eftirlit og eftirlit.

Sp.: Hvernig get ég sett upp þróunarumhverfið fyrir
ESP32-C3?

A: Til að setja upp þróunarumhverfi fyrir ESP32-C3 þarftu
að setja upp ESP-IDF (Espressif IoT Development Framework) og
stilla það í samræmi við leiðbeiningarnar sem fylgja með. ESP-IDF er
opinber þróunarrammi fyrir ESP32-undirstaða tæki.

Sp.: Hverjir eru eiginleikar ESP RainMaker?

A: ESP RainMaker býður upp á ýmsa eiginleika, þar á meðal notanda
stjórnun, notendaeiginleikar og stjórnunareiginleikar. Notendastjórnun
gerir kleift að gera tilkall til tækja og samstillingu gagna auðveldlega. Endanotandi
eiginleikar leyfa fjarstýringu tækja í gegnum farsímaforrit eða
web viðmót. Stjórnunareiginleikar veita verkfæri til að fylgjast með tækjum
og stjórnun.

ESP32-C3 þráðlaust ævintýri
Alhliða handbók um IoT
Espressif Systems 12. júní 2023

Innihald

I Undirbúningur

1

1 Kynning á IoT

3

1.1 Arkitektúr IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 IoT forrit í snjallheimilum. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Kynning og framkvæmd IoT-verkefna

9

2.1 Kynning á dæmigerðum IoT-verkefnum . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Grunneiningar fyrir algeng IoT tæki . . . . . . . . . . . . . . . . . 9

2.1.2 Grunneiningar viðskiptavinaforrita . . . . . . . . . . . . . . . . . . . 10

2.1.3 Kynning á algengum IoT skýjapöllum . . . . . . . . . . . . . . 11

2.2 Practice: Smart Light Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Uppbygging verkefna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 Verkefnaaðgerðir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Undirbúningur vélbúnaðar . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 Þróunarferli . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Kynning á ESP RainMaker

19

3.1 Hvað er ESP RainMaker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Innleiðing ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Kröfuþjónusta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 RainMaker Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

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

3.2.4 RainMaker viðskiptavinur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Æfing: Lykilatriði fyrir þróun með ESP RainMaker . . . . . . . . . . . . 25

3.4 Eiginleikar ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 Notendastjórnun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 Notendaeiginleikar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 Stjórnunareiginleikar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Uppsetning þróunarumhverfis

31

4.1 ESP-IDF lokiðview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 ESP-IDF útgáfur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ESP-IDF Git vinnuflæði . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Val á viðeigandi útgáfu . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Yfirview af ESP-IDF SDK skránni . . . . . . . . . . . . . . . . . . . . 34 4.2 Uppsetning ESP-IDF þróunarumhverfis . . . . . . . . . . . . . . . . . 38 4.2.1 Uppsetning ESP-IDF þróunarumhverfis á Linux . . . . . . . . 38 4.2.2 Uppsetning ESP-IDF þróunarumhverfis á Windows . . . . . . 40 4.2.3 Uppsetning ESP-IDF þróunarumhverfis á Mac . . . . . . . . . 45 4.2.4 Uppsetning VS kóða . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Kynning á þróunarumhverfi þriðja aðila . . . . . . . . 46 4.3 ESP-IDF safnkerfi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Grunnhugtök safnkerfis . . . . . . . . . . . . . . . . . . 47 4.3.2 Verkefni File Uppbygging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Sjálfgefnar byggingarreglur safnkerfisins . . . . . . . . . . . . . 50 4.3.4 Inngangur að safnforritinu . . . . . . . . . . . . . . . . . . 51 4.3.5 Kynning á algengum skipunum . . . . . . . . . . . . . . . . . . . 52 4.4 Æfing: Samsetning Exampforritið „Blink“. . . . . . . . . . . . . . . . . . 53 4.4.1 Dæmiample Greining. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Samsetning blikkforritsins . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Blikkunarforritið blikkað . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Serial Port Log Greining á blikkforritinu . . . . . . . . . . . . . . 60 4.5 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II Þróun vélbúnaðar og ökumanna

65

5 Vélbúnaðarhönnun snjallljósavara byggða á ESP32-C3

67

5.1 Eiginleikar og samsetning snjallljósavara . . . . . . . . . . . . . . . 67

5.2 Vélbúnaðarhönnun ESP32-C3 kjarnakerfis . . . . . . . . . . . . . . . . . . . 70

5.2.1 Aflgjafi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 Röð ræsingar og endurstilling kerfis . . . . . . . . . . . . . . . . . . 74

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

5.2.4 Klukkuheimild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 RF og loftnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 Festingarpinnar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 GPIO og PWM stjórnandi . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Æfing: Byggja upp snjallljósakerfi með ESP32-C3 . . . . . . . . . . . . . 80

5.3.1 Val á einingar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 Stilling GPIOs PWM merkja . . . . . . . . . . . . . . . . . . . . 82

5.3.3 Fastbúnaðar niðurhal og villuleitarviðmót . . . . . . . . . . . . 82

5.3.4 Leiðbeiningar um RF hönnun . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Leiðbeiningar um hönnun aflgjafa . . . . . . . . . . . . . . . . . . . 86 5.4 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Þróun ökumanns

87

6.1 Þróunarferli ökumanns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 ESP32-C3 jaðarforrit . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 Grunnatriði LED bílstjóra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 Litarými . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 LED bílstjóri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 LED dimming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 Kynning á PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 LED dimming bílstjóri þróun. . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 Órokgjarn geymsla (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 LED PWM stjórnandi (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 LED PWM forritun . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 Æfing: Bæta ökumönnum við Smart Light Project . . . . . . . . . . . . . . . . . 103

6.5.1 Hnappabílstjóri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 LED dimmandi bílstjóri. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III Þráðlaus samskipti og stjórnun

109

7 Wi-Fi stillingar og tenging

111

7.1 Grunnatriði Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Kynning á Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 Þróun IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Wi-Fi hugtök . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Wi-Fi tenging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Grunnatriði Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 Kynning á Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 Bluetooth-hugtök . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 Bluetooth-tenging . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Wi-Fi netstillingar . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Leiðbeiningar um stillingar Wi-Fi nets . . . . . . . . . . . . . . . . . . . . 131

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

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

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

7.3.5 Aðrar aðferðir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 Wi-Fi forritun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Wi-Fi íhlutir í ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Æfing: Wi-Fi tenging . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Æfing: Snjall Wi-Fi tenging . . . . . . . . . . . . . . . . . . . . . 145
7.5 Æfing: Wi-Fi stillingar í Smart Light Project . . . . . . . . . . . . . . . 156 7.5.1 Wi-Fi tenging í Smart Light Project . . . . . . . . . . . . . . . . . 156 7.5.2 Smart Wi-Fi stillingar . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 Staðbundið eftirlit

159

8.1 Inngangur að staðbundnu eftirliti . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 Beiting staðbundins eftirlits . . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 Advantages staðbundins eftirlits. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 Uppgötvun stjórnaðra tækja í gegnum snjallsíma . . . . . . . . . . 161

8.1.4 Gagnasamskipti milli snjallsíma og tækja . . . . . . . . 162

8.2 Algengar staðbundnar uppgötvunaraðferðir . . . . . . . . . . . . . . . . . . . . . . . . 162

8.2.1 Útsending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8.2.2 Fjölvarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

8.2.3 Samanburður á milli útvarps og fjölvarps . . . . . . . . . . . . . . 176

8.2.4 Multicast forritabókun mDNS fyrir staðbundna uppgötvun . . . . . . . . 176

8.3 Algengar samskiptareglur fyrir staðbundin gögn . . . . . . . . . . . . . . . 179

8.3.1 Transmission Control Protocol (TCP) . . . . . . . . . . . . . . . . . . . 179

8.3.2 HyperText Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . 185

8.3.3 Notandi Datagram bókun (UDP). . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 Constrained Application Protocol (CoAP) . . . . . . . . . . . . . . . . 192

8.3.5 Bluetooth-samskiptareglur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3.6 Yfirlit yfir gagnasamskiptareglur . . . . . . . . . . . . . . . 203

8.4 Ábyrgð á gagnaöryggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 Inngangur að flutningslagaöryggi (TLS) . . . . . . . . . . . . . 207

8.4.2 Inngangur að Datagram Transport Layer Security (DTLS) . . . . . . . 213

8.5 Practice: Local Control in Smart Light Project . . . . . . . . . . . . . . . . . . 217

8.5.1 Búa til Wi-Fi-byggðan staðbundinn stýriþjón . . . . . . . . . . . . . . . 217

8.5.2 Staðfesta virkni staðbundinnar stýringar með forskriftum. . . . . . . . . . . 221

8.5.3 Búa til Bluetooth-byggðan staðbundinn stýriþjón . . . . . . . . . . . . 222

8.6 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9 Skýstýring

225

9.1 Kynning á fjarstýringu . . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 Skýgagnasamskiptareglur . . . . . . . . . . . . . . . . . . . . . . 226

9.2.1 MQTT Inngangur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 MQTT meginreglur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT skilaboðasnið . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Samanburður bókunar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Uppsetning MQTT miðlara á Linux og Windows . . . . . . . . . . . . 233 9.2.6 Uppsetning MQTT biðlara byggt á ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Að tryggja MQTT gagnaöryggi . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Merking og virkni skírteina . . . . . . . . . . . . . . . . . . . 237 9.3.2 Búa til skírteini á staðnum . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Stilling MQTT miðlara . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Stilling MQTT biðlara . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Æfing: Fjarstýring í gegnum ESP RainMaker . . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker Grunnatriði . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Samskiptareglur hnúta og skýjabakenda . . . . . . . . . . . 244 9.4.3 Samskipti milli viðskiptavinar og skýjastuðnings . . . . . . . . . . . 249 9.4.4 Notendahlutverk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Grunnþjónusta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker app og samþættingar þriðja aðila . . . . . . . . . . . . . . . 262 9.5 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 Þróun snjallsímaforrita

269

10.1 Kynning á þróun snjallsímaforrita . . . . . . . . . . . . . . . . . . 269

10.1.1 Lokiðview af þróun snjallsímaforrita. . . . . . . . . . . . . . . 270

10.1.2 Uppbygging Android verkefnisins . . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 Uppbygging iOS verkefnisins . . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Lífsferill Android virkni . . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 Lífsferill iOS ViewStjórnandi . . . . . . . . . . . . . . . . . . . . . . 273

10.2 Að búa til nýtt snjallsímaforritsverkefni . . . . . . . . . . . . . . . . . . . . . 275

10.2.1 Undirbúningur fyrir Android þróun . . . . . . . . . . . . . . . . . . . 275

10.2.2 Nýtt Android verkefni búið til . . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 Bæta við ósjálfstæði fyrir MyRainmaker . . . . . . . . . . . . . . . . . 276

10.2.4 Leyfisbeiðni í Android . . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 Undirbúningur fyrir iOS þróun . . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 Nýtt iOS verkefni búið til . . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 Bæta við ósjálfstæði fyrir MyRainmaker . . . . . . . . . . . . . . . . . 279

10.2.8 Leyfisbeiðni í iOS . . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 Greining á virknikröfum appsins . . . . . . . . . . . . . . . . . . 281

10.3.1 Greining á virknikröfum verkefnisins . . . . . . . . . . . . 282

10.3.2 Greining á kröfum notendastjórnunar . . . . . . . . . . . . . . . 282 10.3.3 Greining á útvegun tækja og bindandi kröfum . . . . . . . 283 10.3.4 Greining á kröfum um fjarstýringu . . . . . . . . . . . . . . . . 283 10.3.5 Greining á áætlunarkröfum . . . . . . . . . . . . . . . . . . . 284 10.3.6 Greining á kröfum notendamiðstöðvar . . . . . . . . . . . . . . . . . . 285 10.4 Þróun notendastjórnunar . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Kynning á RainMaker API . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Upphaf samskipta í gegnum snjallsíma . . . . . . . . . . . . . . . . 286 10.4.3 Reikningsskráning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Innskráning reiknings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Þróun tækjaútvegunar . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Skannatæki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Tæki tengd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Búa til leynilykla . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Að fá hnútauðkenni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Úthlutunartæki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Þróun tækjastýringar . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Binding tæki við skýjareikninga . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Að fá lista yfir tæki . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Að fá stöðu tækis . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Breyting á stöðu tækis . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Þróun tímasetningar og notendamiðstöðvar . . . . . . . . . . . . . . . . . . . 313 10.7.1 Framkvæmd tímasetningaraðgerðar . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Innleiðing notendamiðstöðvar . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Fleiri skýjaforritaskil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 Fastbúnaðaruppfærsla og útgáfustjórnun

321

11.1 Fastbúnaðaruppfærsla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 Lokiðview af skiptingartöflum. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 Uppsetningarferli fastbúnaðar . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 Lokiðview OTA kerfisins. . . . . . . . . . . . . . . . . . . . . 326

11.2 Útgáfustjórnun fastbúnaðar . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 Fastbúnaðarmerking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 Afturköllun og afturköllun . . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 Æfing: Í lofti (OTA) Dæmiample . . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 Uppfærsla fastbúnaðar í gegnum staðbundinn gestgjafa . . . . . . . . . . . . . . . . . 332

11.3.2 Uppfærsla fastbúnaðar í gegnum ESP RainMaker . . . . . . . . . . . . . . . 335

11.4 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

IV Hagræðing og fjöldaframleiðsla

343

12 Orkustýring og hagræðing með litlum afli

345

12.1 ESP32-C3 orkustjórnun . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 Dynamic Frequency Scaling . . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 Stillingar orkustjórnunar . . . . . . . . . . . . . . . . . . . . 348

12.2 ESP32-C3 Lágkraftsstilling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

12.2.1 Mótaldsvefnhamur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12.2.2 Létt svefnstilling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 Djúpsvefnhamur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 Straumnotkun í mismunandi aflstillingum . . . . . . . . . . . . . 358

12.3 Orkustýring og aflusnúningur með litlum krafti . . . . . . . . . . . . . . . . . 359

12.3.1 Kembiforrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

12.3.2 GPIO kembiforrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

12.4 Practice: Power Management in Smart Light Project . . . . . . . . . . . . . . . 363

12.4.1 Stilla orkustjórnunareiginleika . . . . . . . . . . . . . . . . . 364

12.4.2 Nota orkustjórnunarlása . . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 Staðfesta orkunotkun . . . . . . . . . . . . . . . . . . . . . . . 366

12.5 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 Auknir öryggiseiginleikar tækja

369

13.1 Lokiðview af IoT tæki gagnaöryggi. . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 Af hverju að tryggja IoT tækisgögn? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 Grunnkröfur fyrir gagnaöryggi IoT tækis . . . . . . . . . . . . 371

13.2 Gagnavernd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

13.2.1 Inngangur að aðferð til að sannprófa heiðarleika . . . . . . . . . . . . . . 372

13.2.2 Heildarsannprófun fastbúnaðargagna . . . . . . . . . . . . . . . . . . 373

13.2.3 Dæmiample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3 Gagnavernd . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3.1 Inngangur að dulkóðun gagna . . . . . . . . . . . . . . . . . . . . . . 374

13.3.2 Kynning á Flash dulkóðunarkerfi . . . . . . . . . . . . . . . . . 376

13.3.3 Flash dulkóðunarlyklageymsla . . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 Vinnuhamur Flash-dulkóðunar . . . . . . . . . . . . . . . . . . . . 380

13.3.5 Flash dulkóðunarferli . . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 Kynning á NVS dulkóðun . . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 Dæmiamples af Flash dulkóðun og NVS dulkóðun. . . . . . . . . . . 384

13.4 Lögmæti gagnavernd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 Kynning á stafrænni undirskrift . . . . . . . . . . . . . . . . . . . . . 386

13.4.2 Lokiðview af Secure Boot Scheme. . . . . . . . . . . . . . . . . . . . . 388

13.4.3 Kynning á öruggri ræsingu hugbúnaðar . . . . . . . . . . . . . . . . . . . 388 13.4.4 Kynning á öruggri ræsingu vélbúnaðar . . . . . . . . . . . . . . . . . . 390 13.4.5 Dvamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Æfing: Öryggiseiginleikar í fjöldaframleiðslu . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash dulkóðun og örugg ræsing . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Virkja Flash dulkóðun og örugga ræsingu með Batch Flash verkfærum . . 397 13.5.3 Virkja Flash dulkóðun og örugga ræsingu í Smart Light Project . . . 398 13.6 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 Fastbúnaðarbrennsla og prófun fyrir fjöldaframleiðslu

399

14.1 Fastbúnaðarbrennsla í fjöldaframleiðslu . . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 Skilgreining gagnasneiða . . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 Fastbúnaðarbrennsla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 Fjöldaframleiðsluprófanir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 Practice: Massaframleiðslugögn í Smart Light Project . . . . . . . . . . . . . 404

14.4 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 ESP Insights: Fjareftirlitsvettvangur

405

15.1 Kynning á ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 Að byrja með ESP Insights . . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 Að byrja með ESP Insights í esp-insights verkefninu . . . . . . 409

15.2.2 Running Example í esp-insights Project . . . . . . . . . . . . . . . 411

15.2.3 Tilkynning um Coredump upplýsingar . . . . . . . . . . . . . . . . . . . . . 411

15.2.4 Sérsníða hagsmunaskrár . . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 Tilkynning um ástæðu endurræsingar . . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 Tilkynning um sérsniðnar mælingar . . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 Æfing: Notkun ESP Insights í Smart Light Project . . . . . . . . . . . . . . . 416

15.4 Samantekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

Inngangur
ESP32-C3 er einkjarna Wi-Fi og Bluetooth 5 (LE) örstýringur SoC, byggður á opnum uppspretta RISC-V arkitektúr. Það nær réttu jafnvægi af krafti, inn/út-getu og öryggi og býður þannig upp á hagkvæmustu lausnina fyrir tengd tæki. Til að sýna ýmis forrit ESP32-C3 fjölskyldunnar mun þessi bók eftir Espressif taka þig í áhugaverða ferð í gegnum AIoT, frá grunnatriðum IoT verkefnaþróunar og umhverfisuppsetningar til hagnýtrar fyrrverandiamples. Fyrstu fjórir kaflarnir fjalla um IoT, ESP RainMaker og ESP-IDF. Kafli 5 og 6 stutt um hönnun vélbúnaðar og þróun ökutækja. Þegar lengra líður muntu uppgötva hvernig á að stilla verkefnið þitt í gegnum Wi-Fi net og farsímaforrit. Að lokum munt þú læra að hagræða verkefninu þínu og setja það í fjöldaframleiðslu.
Ef þú ert verkfræðingur á skyldum sviðum, hugbúnaðararkitekt, kennari, nemandi eða einhver sem hefur áhuga á IoT, þá er þessi bók fyrir þig.
Þú getur halað niður kóðanum tdampLe notað í þessari bók frá síðu Espressif á GitHub. Fyrir nýjustu upplýsingar um IoT þróun, vinsamlegast fylgdu opinbera reikningnum okkar.

Formáli
Upplýsingaheimur
Internet of Things (IoT) reið á bylgju internetsins og gerði frumraun sína til að verða ný tegund innviða í stafrænu hagkerfi. Til að færa tæknina nær almenningi vinnur Espressif Systems að þeirri framtíðarsýn að forritarar úr öllum áttum geti notað IoT til að leysa nokkur af brýnustu vandamálum okkar tíma. Heimur „Intelligent Network of All Things“ er það sem við erum að búast við frá framtíðinni.
Að hanna eigin flís er mikilvægur þáttur í þeirri sýn. Það á að vera maraþon sem krefst stöðugra byltinga gegn tæknilegum mörkum. Allt frá „Game Changer“ ESP8266 til ESP32 seríunnar sem samþættir Wi-Fi og Bluetoothr (LE) tengingu, á eftir ESP32-S3 búin gervigreindarhröðun, Espressif hættir aldrei að rannsaka og þróa vörur fyrir AIoT lausnir. Með opnum hugbúnaði okkar, eins og IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF og Device Connectivity Platform ESP RainMaker, höfum við búið til sjálfstæðan ramma til að byggja upp AIoT forrit.
Frá og með júlí 2022 hafa uppsafnaðar sendingar af IoT flísum Espressif farið yfir 800 milljónir, leiðandi á Wi-Fi MCU markaðnum og virkjað gríðarlegan fjölda tengdra tækja um allan heim. Leit að ágæti gerir sérhverja Espressif vöru að miklu höggi fyrir mikla samþættingu og kostnaðarhagkvæmni. Útgáfa ESP32-C3 markar mikilvægan áfanga í sjálfþróaðri tækni Espressif. Það er einkjarna, 32-bita, RISC-V-undirstaða MCU með 400KB af SRAM, sem getur keyrt á 160MHz. Það hefur samþætt 2.4 GHz Wi-Fi og Bluetooth 5 (LE) með langdrægum stuðningi. Það nær fínu jafnvægi af krafti, I/O getu og öryggi og býður þannig upp á hagkvæmustu lausnina fyrir tengd tæki. Byggt á svo öflugum ESP32-C3, er þessari bók ætlað að hjálpa lesendum að skilja IoT-tengda þekkingu með ítarlegum myndskreytingum og hagnýtu dæmi.amples.
Hvers vegna skrifuðum við þessa bók?
Espressif Systems er meira en hálfleiðarafyrirtæki. Það er líka IoT vettvangsfyrirtæki sem leitast alltaf við byltingar og nýjungar á sviði tækni. Á sama tíma hefur Espressif opið og deilt sjálfþróuðu stýrikerfi sínu og hugbúnaðarramma með samfélaginu og myndað einstakt vistkerfi. Verkfræðingar, framleiðendur og tækniáhugamenn þróa virkan ný hugbúnaðarforrit byggð á vörum Espressif, eiga frjáls samskipti og deila reynslu sinni. Þú getur séð heillandi hugmyndir þróunaraðila á ýmsum kerfum allan tímann, eins og YouTube og GitHub. Vinsældir vara Espressif hafa örvað aukinn fjölda höfunda sem hafa framleitt yfir 100 bækur byggðar á Espressif flísum, á meira en tíu tungumálum, þar á meðal ensku, kínversku, þýsku, frönsku og japönsku.

Það er stuðningur og traust samstarfsaðila samfélagsins sem hvetur til stöðugrar nýsköpunar Espressif. „Við leitumst við að gera flísina okkar, stýrikerfi, ramma, lausnir, ský, viðskiptahætti, verkfæri, skjöl, skrif, hugmyndir osfrv., sífellt viðeigandi fyrir svörin sem fólk þarfnast í brýnustu vandamálum samtímans. Þetta er æðsti metnaður og siðferðilegur áttaviti Espressif.“ sagði herra Teo Swee Ann, stofnandi og forstjóri Espressif.
Espressif metur lestur og hugmyndir. Þar sem stöðug uppfærsla á IoT tækni gerir meiri kröfur til verkfræðinga, hvernig getum við hjálpað fleirum að ná fljótt tökum á IoT flísum, stýrikerfum, hugbúnaðarramma, forritakerfum og skýjaþjónustuvörum? Eins og orðatiltækið segir, það er betra að kenna manni að veiða en að gefa honum fisk. Í hugarflugi datt okkur í hug að við gætum skrifað bók til að flokka kerfisbundið lykilþekkingu á IoT þróun. Við slóst í gegn, söfnuðum fljótt saman hópi yfirverkfræðinga og sameinuðum reynslu tækniteymisins í innbyggðri forritun, IoT vélbúnaði og hugbúnaðarþróun, sem allt stuðlaði að útgáfu þessarar bókar. Í ritunarferlinu reyndum við eftir fremsta megni að vera málefnaleg og sanngjörn, svipt af hýðinu og nota hnitmiðaða orðatiltæki til að segja frá margbreytileika og sjarma Internet of Things. Við tókum vandlega saman algengar spurningar, vísuðum í endurgjöf og ábendingar samfélagsins, til að svara skýrum spurningum sem upp komu í þróunarferlinu, og útvegum hagnýtar IoT þróunarleiðbeiningar fyrir viðeigandi tæknimenn og ákvarðanatökumenn.
Uppbygging bóka
Þessi bók tekur verkfræðingamiðaða sjónarhorni og útskýrir nauðsynlega þekkingu fyrir þróun IoT verkefna skref fyrir skref. Það er samsett úr fjórum hlutum, sem hér segir:
· Undirbúningur (kafli 1): Þessi hluti kynnir arkitektúr IoT, dæmigerður IoT verkefnaramma, ESP RainMakerr skýjapallinn og þróunarumhverfið ESP-IDF, til að leggja traustan grunn að þróun IoT verkefna.
· Þróun vélbúnaðar og ökumanns (kafli 5): Byggt á ESP6-C32 kubbasettinu, er þessi hluti útfærður um lágmarksþróun vélbúnaðarkerfis og ökumanns, og útfærir stjórn á deyfingu, litaflokkun og þráðlausum samskiptum.
· Þráðlaus samskipti og stjórnun (kafli 7): Þessi hluti útskýrir greindar Wi-Fi stillingarkerfi sem byggir á ESP11-C32 flís, staðbundnum og skýjastýringarsamskiptareglum og staðbundinni og fjarstýringu tækja. Það býður einnig upp á kerfi til að þróa snjallsímaforrit, uppfærslu fastbúnaðar og útgáfustjórnun.
· Hagræðing og fjöldaframleiðsla (kafli 12-15): Þessi hluti er ætlaður fyrir háþróaða IoT forrit, með áherslu á hagræðingu á vörum í orkustýringu, hagræðingu með litlum afli og aukið öryggi. Það kynnir einnig vélbúnaðarbrennslu og prófun í fjöldaframleiðslu og hvernig á að greina hlaupandi stöðu og skrár á fastbúnaði tækisins í gegnum fjareftirlitsvettvanginn ESP Insights.

Um frumkóðann
Lesendur geta keyrt fyrrverandiampforritin í þessari bók, annað hvort með því að slá kóðann inn handvirkt eða með því að nota frumkóðann sem fylgir bókinni. Við leggjum áherslu á samsetningu kenninga og iðkunar og setjum þannig æfingahluta sem byggir á Smart Light verkefninu í næstum hverjum kafla. Allir kóðar eru opnir. Lesendum er velkomið að hlaða niður frumkóðann og ræða hann í köflum sem tengjast þessari bók á GitHub og opinberu spjallborðinu okkar esp32.com. Opinn uppspretta kóða þessarar bókar er háður skilmálum Apache License 2.0.
Athugasemd höfundar
Þessi bók er formlega framleidd af Espressif Systems og er skrifuð af yfirverkfræðingum fyrirtækisins. Það hentar stjórnendum og R&D starfsfólki í IoT-tengdum iðnaði, kennurum og nemendum tengdum aðalgreinum og áhugafólki á sviði Internet of Things. Við vonum að þessi bók geti þjónað sem vinnuhandbók, tilvísun og náttborðsbók, til að vera eins og góður kennari og vinur.
Við gerð þessarar bókar vísuðum við í nokkrar viðeigandi rannsóknarniðurstöður sérfræðinga, fræðimanna og tæknimanna heima og erlendis og gerðum okkar besta til að vitna í þær samkvæmt fræðilegum viðmiðum. Það er hins vegar óhjákvæmilegt að sleppa einhverju og því viljum við hér koma á framfæri djúpri virðingu og þakklæti til allra hlutaðeigandi höfunda. Að auki höfum við vitnað í upplýsingar af netinu, svo við viljum þakka upprunalegum höfundum og útgefendum og biðjumst velvirðingar á því að við getum ekki gefið upp hvaðan hverja upplýsingagjöf er.
Til að búa til hágæða bók höfum við skipulagt innri umræður og lært af ábendingum og endurgjöf prufulesenda og ritstjóra útgefenda. Hér viljum við þakka þér aftur fyrir hjálpina sem öll stuðlaði að þessu farsæla starfi.
Síðast en síðast en ekki síst, takk til allra hjá Espressif sem hafa lagt svo hart að sér fyrir fæðingu og útbreiðslu vörunnar okkar.
Þróun IoT-verkefna felur í sér fjölbreytta þekkingu. Takmarkað við lengd bókarinnar, sem og stig og reynslu höfundar, er óhjákvæmilegt að sleppa því. Því óskum við vinsamlega eftir því að sérfræðingar og lesendur gagnrýni og leiðrétti mistök okkar. Ef þú hefur einhverjar tillögur um þessa bók, vinsamlegast hafðu samband við okkur á book@espressif.com. Við hlökkum til álits þíns.

Hvernig á að nota þessa bók?
Kóðinn fyrir verkefnin í þessari bók hefur verið opinn. Þú getur halað því niður frá GitHub geymslunni okkar og deilt hugsunum þínum og spurningum á opinberu spjallborðinu okkar. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Í gegnum bókina verða hlutar auðkenndir eins og sýnt er hér að neðan.
Heimildarkóði Í þessari bók leggjum við áherslu á samsetningu kenninga og framkvæmda og settum þannig æfingahluta um Smart Light verkefnið í næstum hverjum kafla. Samsvarandi skref og upprunasíða verða merkt á milli tveggja lína sem byrja á tag Upprunakóði.
ATHUGIÐ/ÁBENDINGAR Þetta er þar sem þú gætir fundið mikilvægar upplýsingar og áminningar um að villuleit á forritinu þínu hafi tekist. Þau verða merkt á milli tveggja þykkra lína sem byrja á tag ATH eða ÁBENDINGAR.
Flestar skipanirnar í þessari bók eru keyrðar undir Linux, beðið um með stafnum „$“. Ef skipunin krefst ofurnotandaréttinda til að framkvæma, verður hvetjunni skipt út fyrir "#". Skipanalínan á Mac kerfum er "%", eins og hún er notuð í kafla 4.2.3 Uppsetning ESP-IDF á Mac.
Megintextinn í þessari bók verður prentaður í sáttmála en kóðinn tdamples, íhlutir, aðgerðir, breytur, kóða file nöfn, kóðaskrár og strengir verða í Courier New.
Skipanir eða textar sem notandinn þarf að setja inn, og skipanir sem hægt er að slá inn með því að ýta á „Enter“ takkann verða prentaðar með Courier New feitletrað. Logs og kóðablokkir verða sýndir í ljósbláum reitum.
Example:
Í öðru lagi, notaðu esp-idf/components/nvs flash/nvs skipting generator/nvs skipting gen.py til að búa til NVS skipting tvöfaldan file á þróunarhýslinum með eftirfarandi skipun:
$ python $IDF PATH/components/nvs flash/nvs skipting rafall/nvs skipting gen.py –inntaksmassi prod.csv –úttaksmassi prod.bin –stærð NVS SKÝRINGSTÆRÐ

1. kafli

Inngangur

til

IoT

Í lok 20. aldar, með uppgangi tölvuneta og samskiptatækni, sameinaðist internetið hratt inn í líf fólks. Þegar nettæknin heldur áfram að þroskast fæddist hugmyndin um Internet of Things (IoT). Bókstaflega þýðir IoT internet þar sem hlutirnir eru tengdir. Þó að upprunalega internetið rjúfi takmörk rúms og tíma og þrengi fjarlægðina milli „manneskju og manneskju“, gerir IoT „hluti“ að mikilvægum þátttakanda og færir „fólk“ og „hluti“ nær saman. Í fyrirsjáanlegri framtíð mun IoT verða drifkraftur upplýsingaiðnaðarins.
Svo, hvað er Internet of Things?
Það er erfitt að skilgreina internet hlutanna nákvæmlega þar sem merking þess og umfang eru í stöðugri þróun. Árið 1995 kom Bill Gates fyrst með hugmyndina um IoT í bók sinni The Road Ahead. Einfaldlega sagt, IoT gerir hlutum kleift að skiptast á upplýsingum sín á milli í gegnum internetið. Endanlegt markmið þess er að koma á „Interneti alls“. Þetta er snemma túlkun á IoT, sem og ímyndunarafl um framtíðartækni. Þrjátíu árum síðar, með hraðri þróun hagkerfis og tækni, er fantasían að verða að veruleika. Allt frá snjalltækjum, snjallheimilum, snjallborgum, Interneti farartækja og klæðanlegum tækjum, til „metaverse“ sem studd er af IoT tækni, eru stöðugt að koma fram nýjar hugmyndir. Í þessum kafla munum við byrja á að útskýra arkitektúr Internet of Things og kynna síðan algengasta IoT forritið, snjallheimilið, til að hjálpa þér að öðlast skýran skilning á IoT.
1.1 Arkitektúr IoT
Internet of Things felur í sér margvíslega tækni sem hefur mismunandi umsóknarþarfir og form í mismunandi atvinnugreinum. Til þess að raða út uppbyggingu, lykiltækni og notkunareiginleikum IoT er nauðsynlegt að koma á sameinuðum arkitektúr og staðlað tæknikerfi. Í þessari bók er arkitektúr IoT einfaldlega skipt í fjögur lög: skynjun og stjórnunarlag, netlag, vettvangslag og forritslag.
Skynjun og stjórnunarlag Sem grunnþáttur IoT arkitektúrsins er skynjun og stjórnunarlag kjarninn til að átta sig á alhliða skynjun á IoT. Meginhlutverk þess er að safna, bera kennsl á og stjórna upplýsingum. Það samanstendur af ýmsum tækjum með getu til skynjunar,
3

auðkenningu, eftirliti og framkvæmd og ber ábyrgð á því að sækja og greina gögn eins og efniseiginleika, hegðunarþróun og stöðu tækja. Þannig fær IoT að viðurkenna hinn raunverulega líkamlega heim. Að auki er lagið einnig fær um að stjórna stöðu tækisins.
Algengustu tæki þessa lags eru ýmsir skynjarar, sem gegna mikilvægu hlutverki við upplýsingaöflun og auðkenningu. Skynjarar eru eins og skynfæri manna, eins og ljósnæmir skynjarar sem jafnast á við sjón, hljóðnemar fyrir heyrn, gasskynjarar fyrir lykt og þrýstings- og hitanæma skynjara við snertingu. Með öllum þessum „skynfærum“ verða hlutir „lifandi“ og færir um skynjun, greiningu og meðferð á efnisheiminum.
Netlag Meginhlutverk netlagsins er að senda upplýsingar, þar á meðal gögn sem fengin eru úr skynjunar- og stjórnlaginu til tiltekins marks, svo og skipanir sem gefnar eru út frá forritalaginu aftur til skynjunar- og stjórnunarlagsins. Það þjónar sem mikilvæg samskiptabrú sem tengir mismunandi lög IoT kerfis. Til að setja upp grunnlíkan af Internet of Things, felur það í sér tvö skref til að samþætta hluti í net: aðgangur að internetinu og sending í gegnum internetið.
Aðgangur að internetinu gerir kleift að tengja mann og mann, en nær ekki hlutum inn í stórfjölskylduna. Áður en IoT kom til sögunnar var flest ekki „nethæft“. Þökk sé stöðugri tækniþróun nær IoT að tengja hluti við internetið og átta sig þannig á samtengingu milli „fólks og hlutanna“ og „hlutanna og hlutanna“. Það eru tvær algengar leiðir til að innleiða nettengingu: þráðlausan netaðgang og þráðlausan netaðgang.
Aðferðir með þráðlausum netaðgangi eru meðal annars Ethernet, raðsamskipti (td RS-232, RS-485) og USB, en aðgangur að þráðlausu neti er háður þráðlausum samskiptum, sem má skipta frekar í þráðlaus fjarskipti og langdræg þráðlaus samskipti.
Þráðlaus skammdræg samskipti innihalda ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC) og Radio Frequency Identification (RFID). Langdræg þráðlaus samskipti innihalda Enhanced Machine Type Communication (eMTC), LoRa, Narrow Band Internet of Things (NB-IoT), 2G, 3G, 4G, 5G osfrv.
Sending í gegnum internetið Mismunandi aðferðir við netaðgang leiða til samsvarandi líkamlegrar sendingartengingar gagna. Næsta hlutur er að ákveða hvaða samskiptareglur á að nota til að senda gögnin. Í samanburði við netstöðvar hafa flestar IoT skautanna færri
4 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

tiltæk úrræði, eins og vinnsluafköst, geymslugeta, nethraði o.s.frv., þannig að það er nauðsynlegt að velja samskiptareglur sem taka færri auðlindir í IoT forritum. Það eru tvær samskiptareglur sem eru mikið notaðar í dag: Message Queuing Telemetry Transport (MQTT) og Constrained Application Protocol (CoAP).
Palllag Palllagið vísar aðallega til IoT skýjapalla. Þegar allar IoT útstöðvar eru nettengdar þarf að safna gögnum þeirra saman á IoT skýjapallur til að reikna út og geyma. Palllagið styður aðallega IoT forrit til að auðvelda aðgang og stjórnun stórfelldra tækja. Það tengir IoT skautanna við skýjapallinn, safnar flugstöðvargögnum og gefur út skipanir til skautanna til að útfæra fjarstýringu. Sem milliþjónusta til að úthluta búnaði til iðnaðarforrita, gegnir pallalagið tengihlutverki í allri IoT arkitektúrnum, með óhlutbundinni viðskiptarökfræði og stöðluðu kjarnagagnalíkani, sem getur ekki aðeins gert sér grein fyrir skjótum aðgangi tækja, heldur einnig veitt öfluga mát til að mæta ýmsum þörfum í atburðarásum í iðnaði. Palllagið inniheldur aðallega hagnýtar einingar eins og tækjaaðgang, tækjastjórnun, öryggisstjórnun, skilaboðasamskipti, eftirlit með rekstri og viðhaldi og gagnaforrit.
· Tækjaaðgangur, gerir sér grein fyrir tengingu og samskiptum milli útstöðva og IoT skýjapalla.
· Tækjastjórnun, þar á meðal aðgerðir eins og gerð tækja, viðhald tækja, gagnabreytingar, gagnasamstillingu og dreifingu tækja.
· Öryggisstjórnun, sem tryggir öryggi IoT gagnaflutnings frá sjónarhóli öryggisvottunar og samskiptaöryggis.
· Skilaboðasamskipti, þar á meðal þrjár sendingaráttir, það er að flugstöðin sendir gögn á IoT skýjapallinn, IoT skýjapallur sendir gögn á netþjónahlið eða aðra IoT skýjapalla og miðlarahlið fjarstýrir IoT tækjum.
· Eftirlit með rekstri og notkun, sem felur í sér eftirlit og greiningu, uppfærslu fastbúnaðar, villuleit á netinu, logþjónustu osfrv.
· Gagnaforrit, sem felur í sér geymslu, greiningu og beitingu gagna.
Forritslag Forritslagið notar gögnin úr pallalaginu til að stjórna forritinu, sía og vinna úr þeim með verkfærum eins og gagnagrunnum og greiningarhugbúnaði. Gögnin sem myndast er hægt að nota fyrir raunveruleg IoT forrit eins og snjalla heilsugæslu, snjöllan landbúnað, snjöll heimili og snjallborgir.
Auðvitað er hægt að skipta arkitektúr IoT niður í fleiri lög, en sama hversu mörgum lögum hann samanstendur af, er undirliggjandi meginreglan í meginatriðum sú sama. Að læra
Kafli 1. Inngangur að IoT 5

um arkitektúr IoT hjálpar til við að dýpka skilning okkar á IoT tækni og byggja upp fullkomlega hagnýt IoT verkefni.
1.2 IoT forrit í snjallheimilum
IoT hefur slegið í gegn á öllum sviðum samfélagsins og IoT-forritið sem er nátengdast okkur er snjallheimilið. Mörg hefðbundin tæki eru nú búin einu eða fleiri IoT tækjum og mörg nýbyggð hús eru hönnuð með IoT tækni frá upphafi. Mynd 1.1 sýnir nokkur algeng snjallheimilistæki.
Mynd 1.1. Algeng snjallheimilistæki Þróun snjallheimila má einfaldlega skipta í snjallvörurtage, vettvangstenging stage og greindur stage, eins og sýnt er á mynd 1.2.
Mynd 1.2. Þróun stage of smart home 6 ESP32-C3 Wireless Adventure: Alhliða handbók um IoT

Fyrsta stage snýst um snjallvörur. Ólíkt hefðbundnum heimilum, á snjallheimilum, fá IoT tæki merki með skynjurum og eru tengd í gegnum þráðlausa samskiptatækni eins og Wi-Fi, Bluetooth LE og ZigBee. Notendur geta stjórnað snjallvörum á margvíslegan hátt, svo sem snjallsímaforrit, raddaðstoðarmenn, snjallhátalarastýringu osfrv. Seinni s.tage leggur áherslu á samtengingu vettvangs. Í þessu stage, þróunaraðilar eru ekki lengur að íhuga að stjórna einni snjallvöru heldur tengja tvær eða fleiri snjallvörur saman, gera sjálfvirkan að vissu marki og að lokum mynda sérsniðna senuham. Til dæmisampÞegar notandi ýtir á einhvern umhverfisstillingarhnapp, verða ljósin, gluggatjöldin og loftkælingin sjálfkrafa aðlöguð að forstillingunum. Auðvitað er forsenda þess að tengingarrökfræðin sé auðveldlega sett upp, þar á meðal kveikjuskilyrði og framkvæmdaraðgerðir. Ímyndaðu þér að upphitunarstilling loftkælingarinnar sé ræst þegar hitastig innanhúss fer niður fyrir 10°C; að klukkan 7 á morgnana er spiluð tónlist til að vekja notandann, snjallgardínur eru opnaðar og hrísgrjónaeldavélin eða brauðristin fer í gang í gegnum snjallinnstunguna; Þegar notandinn stendur á fætur og lýkur þvotti er morgunmaturinn þegar borinn fram, þannig að engin töf verður á að fara í vinnuna. Hversu þægilegt er líf okkar orðið! Þriðja stage fer í njósnir stage. Eftir því sem fleiri snjallheimilistæki eru notuð, verða þær tegundir gagna sem myndast einnig. Með hjálp tölvuskýja, stórra gagna og gervigreindar er eins og „snjallari heili“ hafi verið plantað inn í snjallheimili, sem þurfa ekki lengur tíðar skipanir frá notandanum. Þeir safna gögnum frá fyrri samskiptum og læra hegðunarmynstur og óskir notandans, til að gera starfsemi sjálfvirkan, þar á meðal að veita ráðleggingar um ákvarðanatöku. Eins og er, eru flest snjallheimili á vettvangi samtengingar stage. Eftir því sem skarpskyggni og upplýsingaöflun snjallvara eykst er verið að fjarlægja hindranir milli samskiptareglur. Í framtíðinni hljóta snjöll heimili að verða virkilega „snjöll“, rétt eins og gervigreindarkerfið Jarvis í Iron Man, sem getur ekki aðeins hjálpað notandanum að stjórna ýmsum tækjum, sinna daglegum málum, heldur einnig með frábæra tölvugetu og hugsunargetu. Í greindum stage, manneskjur fá betri þjónustu bæði að magni og gæðum.
Kafli 1. Inngangur að IoT 7

8 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Kafli Inngangur og framkvæmd 2 IoT-verkefna
Í 1. kafla kynntum við arkitektúr IoT og hlutverk og innbyrðis tengsl skynjunar- og stjórnunarlags, netlags, vettvangslags og forritslags, svo og þróun snjallheimilis. Hins vegar, rétt eins og þegar við lærum að mála, er fjarri því að þekkja fræðilega þekkingu. Við verðum að „skíta okkur“ til að koma IoT-verkefnum í framkvæmd til að ná tökum á tækninni. Að auki, þegar verkefni færist í fjöldaframleiðslu stage, það er nauðsynlegt að huga að fleiri þáttum eins og nettengingu, uppsetningu, samskiptum IoT skýjapalls, vélbúnaðarstjórnun og uppfærslur, fjöldaframleiðslustjórnun og öryggisstillingar. Svo, hvað þurfum við að borga eftirtekt til þegar við þróum fullkomið IoT verkefni? Í 1. kafla nefndum við að snjallheimili er ein algengasta atburðarás IoT forritsins og snjallljós eru eitt af grunn- og hagnýtustu tækjunum sem hægt er að nota á heimilum, hótelum, líkamsræktarstöðvum, sjúkrahúsum o.s.frv. Í þessari bók munum við taka byggingu snjallljósaverkefnis sem útgangspunkt, útskýra íhluti þess og eiginleika og veita leiðbeiningar um þróun verkefnisins. Við vonum að þú getir dregið ályktanir af þessu máli til að búa til fleiri IoT forrit.
2.1 Kynning á dæmigerðum IoT-verkefnum
Hvað varðar þróun er hægt að flokka helstu hagnýtar einingar IoT verkefna í hugbúnaðar- og vélbúnaðarþróun IoT tækja, þróun viðskiptavinaforrita og þróun IoT skýjapalls. Mikilvægt er að skýra helstu virknieiningarnar, sem verður nánar lýst í þessum kafla.
2.1.1 Grunneiningar fyrir algeng IoT tæki
Hugbúnaðar- og vélbúnaðarþróun IoT-tækja felur í sér eftirfarandi grunneiningar: Gagnasöfnun
Sem neðsta lag IoT arkitektúrsins, tengja IoT tæki skynjunar- og stjórnunarlagsins skynjara og tæki í gegnum flís og jaðartæki til að ná gagnasöfnun og rekstrarstýringu.
9

Reikningsbinding og upphafsstilling Fyrir flest IoT tæki er reikningsbindingu og upphaflegri stillingu lokið í einu rekstrarferli, t.d.ample, tengja tæki við notendur með því að stilla Wi-Fi net.
Samskipti við IoT skýjapalla Til að fylgjast með og stjórna IoT tækjum er einnig nauðsynlegt að tengja þau við IoT skýjapalla, til að gefa skipanir og tilkynna stöðu með samskiptum sín á milli.
Tækjastýring Þegar þau eru tengd við IoT skýjapalla geta tæki átt samskipti við skýið og verið skráð, bundin eða stjórnað. Notendur geta spurt vörustöðu og framkvæmt aðrar aðgerðir á snjallsímaforritinu í gegnum IoT skýjapalla eða staðbundnar samskiptareglur.
Fastbúnaðaruppfærsla IoT tæki geta einnig náð fastbúnaðaruppfærslu byggt á þörfum framleiðenda. Með því að taka á móti skipunum sem sendar eru af skýinu verður uppfærsla fastbúnaðar og útgáfustjórnunar að veruleika. Með þessum vélbúnaðaruppfærslueiginleika geturðu stöðugt bætt virkni IoT tækja, lagað galla og bætt notendaupplifun.
2.1.2 Grunneiningar viðskiptavinaforrita
Viðskiptavinaforrit (td snjallsímaforrit) innihalda aðallega eftirfarandi grunneiningar:
Reikningskerfi og heimild Það styður reiknings- og tækjaheimild.
Tækjastýring Snjallsímaforrit eru venjulega búin stýriaðgerðum. Notendur geta auðveldlega tengst IoT-tækjum og stjórnað þeim hvenær sem er og hvar sem er í gegnum snjallsímaforrit. Í raunverulegu snjallheimili er tækjum að mestu stjórnað í gegnum snjallsímaforrit, sem gerir ekki aðeins kleift að stjórna tækjum með skynsamlegum hætti, heldur sparar einnig mannaflakostnað. Þess vegna er tækjastýring nauðsynleg fyrir forrit viðskiptavina, svo sem eiginleikastýringu tækjaaðgerða, vettvangsstýringu, tímasetningu, fjarstýringu, tengingu tækja osfrv. Snjallheimilanotendur geta einnig sérsniðið senur í samræmi við persónulegar þarfir, stjórnað lýsingu, heimilistækjum, inngangi o.s.frv., til að gera heimilislífið þægilegra og þægilegra. Þeir geta tímasett loftkælingu, slökkt á henni fjarstýrt, kveikt á gangsljósinu sjálfkrafa þegar hurðin er ólæst eða skipt yfir í „leikhús“ stillingu með einum hnappi.
Tilkynningaviðskiptavinaforrit uppfæra rauntímastöðu IoT tækja og senda viðvaranir þegar tæki verða óeðlileg.
10 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Þjónusta eftir sölu Snjallsímaforrit geta veitt eftirsöluþjónustu fyrir vörur, til að leysa vandamál sem tengjast IoT tæki bilunum og tæknilegum rekstri tímanlega.
Valdar aðgerðir Til að mæta þörfum mismunandi notenda er hægt að bæta öðrum aðgerðum við, svo sem hristing, NFC, GPS o.s.frv. GPS getur hjálpað til við að stilla nákvæmni sviðsaðgerða í samræmi við staðsetningu og fjarlægð, en hristaaðgerðin gerir notendum kleift að stilla skipanir sem á að framkvæma fyrir tiltekið tæki eða atriði með því að hrista.
2.1.3 Kynning á algengum IoT skýjapöllum
IoT skýjapallur er allt-í-einn vettvangur sem samþættir aðgerðir eins og tækjastjórnun, gagnaöryggissamskipti og tilkynningastjórnun. Í samræmi við markhóp þeirra og aðgengi er hægt að skipta IoT skýjapöllum í opinbera IoT skýjapalla (hér eftir nefnt „opinbert ský“) og einka IoT skýjapalla (hér eftir nefnt „einkaský“).
Opinbert ský gefur venjulega til kynna sameiginlega IoT skýjapalla fyrir fyrirtæki eða einstaklinga, rekin og viðhaldið af vettvangsveitum og deilt í gegnum internetið. Það getur verið ókeypis eða ódýrt og veitir þjónustu um allt opna almenningsnetið, eins og Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, o.s.frv. Sem stuðningsvettvangur getur almenningsský samþætt uppstreymisþjónustuveitur og niðurstreymis notendur til að búa til nýja virðiskeðju og vistkerfi.
Einkaskýið er eingöngu byggt fyrir fyrirtækisnotkun og tryggir þannig bestu stjórn á gögnum, öryggi og þjónustugæðum. Þjónustu þess og innviðum er viðhaldið sérstaklega af fyrirtækjum og stuðningur vélbúnaður og hugbúnaður er einnig tileinkaður tilteknum notendum. Fyrirtæki geta sérsniðið skýjaþjónustu til að mæta þörfum fyrirtækisins. Sem stendur hafa sumir framleiðendur snjallheima þegar fengið einka IoT skýjapalla og þróað snjallheimaforrit byggð á þeim.
Opinbert ský og einkaský hafa sína eigin kostitages, sem síðar verður gerð grein fyrir.
Til að ná samskiptatengingu er nauðsynlegt að ljúka að minnsta kosti innbyggðri þróun á tækjahliðinni, ásamt viðskiptaþjónum, IoT skýjapöllum og snjallsímaforritum. Opinbera skýið stendur frammi fyrir svo risastóru verkefni og útvegar venjulega hugbúnaðarþróunarsett fyrir tækjahlið og snjallsímaforrit til að flýta fyrir ferlinu. Bæði almenningsský og einkaský veita þjónustu þar á meðal tækisaðgang, tækjastjórnun, tækjaskugga og rekstur og viðhald.
Tækjaaðgangur IoT skýjapallar þurfa ekki aðeins að bjóða upp á tengi fyrir tækisaðgang með samskiptareglum
Kafli 2. Inngangur og framkvæmd IoT-verkefna 11

eins og MQTT, CoAP, HTTPS og WebInnstunga, en einnig virkni öryggisauðkenningar tækis til að loka fyrir fölsuð og ólögleg tæki, sem dregur í raun úr hættu á að vera í hættu. Slík auðkenning styður venjulega mismunandi kerfi, þannig að þegar tæki eru fjöldaframleidd er nauðsynlegt að fyrirframúthluta tækisvottorðinu í samræmi við valið auðkenningarkerfi og brenna það inn í tækin.
Tækjastjórnun Tækjastjórnunaraðgerðin sem IoT skýjapallar bjóða upp á getur ekki aðeins hjálpað framleiðendum að fylgjast með virkjunarstöðu og netstöðu tækja sinna í rauntíma, heldur gerir hún einnig kleift að bæta við / fjarlægja tæki, sækja, bæta við / eyða hópum, uppfærslu á fastbúnaði , og útgáfustjórnun.
Tækjaskuggi IoT skýjapallar geta búið til viðvarandi sýndarútgáfu (tækjaskugga) fyrir hvert tæki og hægt er að samstilla stöðu tækjaskuggans og fá hana með snjallsímaforriti eða öðrum tækjum í gegnum netflutningssamskiptareglur. Tækjaskuggi geymir nýjustu tilkynnta stöðuna og væntanlega stöðu hvers tækis og jafnvel þótt tækið sé ótengd getur það samt fengið stöðuna með því að hringja í API. Tækjaskuggi býður upp á API sem eru alltaf á, sem gerir það auðveldara að smíða snjallsímaforrit sem hafa samskipti við tæki.
Rekstur og viðhald O&M aðgerðin felur í sér þrjá þætti: · Sýna tölfræðilegar upplýsingar um IoT tæki og tilkynningar. · Logstjórnun gerir kleift að sækja upplýsingar um hegðun tækis, upp/niður skilaboðaflæði og innihald skilaboða. · Tækjakembiforrit styður sendingu skipana, uppfærslu á stillingum og athugun á samspili milli IoT skýjapalla og tækjaskilaboða.
2.2 Practice: Smart Light Project
Eftir fræðilegan inngang í hverjum kafla finnurðu æfingahluta sem tengist Smart Light verkefninu til að hjálpa þér að fá praktíska reynslu. Verkefnið er byggt á ESP32-C3 flís frá Espressif og ESP RainMaker IoT Cloud Platform og nær yfir þráðlausan eininga vélbúnað í snjallljósavörum, innbyggðan hugbúnað fyrir snjalltæki byggð á ESP32C3, snjallsímaöppum og ESP RainMaker samskiptum.
Heimildarkóði Til að læra betur og þróa reynslu hefur verkefnið í þessari bók verið opið. Þú getur halað niður frumkóðann frá GitHub geymslunni okkar á https://github. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

2.2.1 Verkefnauppbygging
Smart Light verkefnið samanstendur af þremur hlutum: i. Snjallljósatæki byggð á ESP32-C3, sem bera ábyrgð á samskiptum við IoT skýjapalla og stjórna rofanum, birtustigi og litahita LED lamp perlur. ii. Snjallsímaforrit (þar á meðal spjaldtölvuforrit sem keyra á Android og iOS), sem bera ábyrgð á netstillingu snjallljósavara, auk þess að spyrjast fyrir um og stjórna stöðu þeirra.
iii. IoT skýjapallur byggður á ESP RainMaker. Til einföldunar lítum við á IoT skýjapallinn og viðskiptaþjóninn í heild sinni í þessari bók. Upplýsingar um ESP RainMaker verða veittar í kafla 3.
Samsvörunin milli Smart Light verkefnisins og arkitektúrs IoT er sýnd á mynd 2.1.
Mynd 2.1. Uppbygging snjallljósaverkefnis
2.2.2 Verkefnaaðgerðir
Skipt í samræmi við uppbyggingu, aðgerðir hvers hluta eru sem hér segir. Snjallljósatæki
· Netstillingar og tengingar. · LED PWM-stýring, svo sem rofi, birtustig, litahitastig, osfrv. · Sjálfvirkni eða umhverfisstýring, td tímarofi. · Dulkóðun og örugg ræsing Flash. · Fastbúnaðaruppfærsla og útgáfustjórnun.
Kafli 2. Inngangur og framkvæmd IoT-verkefna 13

Snjallsímaforrit · Netstillingar og tækjabinding. · Snjallljós vörustýring, svo sem rofi, birtustig, litahitastig osfrv. · Sjálfvirkni eða umhverfisstillingar, td tímarofi. · Staðbundin/fjarstýring. · Notendaskráning, innskráning o.fl.
ESP RainMaker IoT skýjapallur · Gerir aðgang að IoT tæki. · Að útvega forritaskil fyrir rekstur tækis sem eru aðgengileg snjallsímaforritum. · Fastbúnaðaruppfærsla og útgáfustjórnun.
2.2.3 Undirbúningur vélbúnaðar
Ef þú hefur áhuga á að koma verkefninu í framkvæmd þarftu einnig eftirfarandi vélbúnað: Snjallljós, snjallsíma, Wi-Fi beinar og tölvu sem uppfyllir uppsetningarkröfur þróunarumhverfisins. Snjöll ljós
Snjallljós eru ný tegund af perum sem hafa sömu lögun og almennar glóperur. Snjallt ljós er samsett úr þétta aflgjafa, þráðlausri einingu (með innbyggðum ESP32-C3), LED stjórnanda og RGB LED fylki. Þegar það er tengt við rafmagn mun 15 V DC voltage framleiðsla eftir að þétta lækkar, díóða leiðrétting og stjórnun veitir LED stjórnandi og LED fylki orku. LED stjórnandi getur sjálfkrafa sent hátt og lágt gildi með ákveðnu millibili og skipt RGB LED fylkinu á milli lokaðs (ljós kveikt) og opið (ljós slökkt), þannig að það getur gefið frá sér bláleitur, gulur, grænn, fjólublár, blár, rauður og hvítt ljós. Þráðlausa einingin ber ábyrgð á að tengjast Wi-Fi beininum, taka á móti og tilkynna um stöðu snjallljósa og senda skipanir til að stjórna LED.
Mynd 2.2. Hermt snjallljós
Í fyrstu þróun stage, þú getur hermt eftir snjallljósi með því að nota ESP32-C3DevKitM-1 borðið tengt við RGB LED lamp perlur (sjá mynd 2.2). En þú ættir
14 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

athugaðu að þetta er ekki eina leiðin til að setja saman snjallljós. Vélbúnaðarhönnun verkefnisins í þessari bók inniheldur aðeins þráðlausa einingu (með innbyggðri ESP32-C3), en ekki fullkomna snjallljós vélbúnaðarhönnun. Að auki framleiðir Espressif einnig ESP32-C3 byggt hljóðþróunarborð ESP32C3-Lyra til að stjórna ljósum með hljóði. Stjórnin er með tengi fyrir hljóðnema og hátalara og getur stjórnað LED ræmum. Það er hægt að nota til að þróa afkastamikil hljóðvarpstæki og hrynjandi ljósræmur. Mynd 2.3 sýnir ESP32-C3Lyra borð sem er tengt við ræma af 40 LED ljósum.
Mynd 2.3. ESP32-C3-Lyra tengt við ræma af 40 LED ljósum
Snjallsímar (Android/iOS) Smart Light verkefnið felur í sér þróun snjallsímaapps til að setja upp og stjórna snjallljósavörum.
Wi-Fi beinar Wi-Fi beinar breyta hlerunarnetsmerkjum og farsímanetsmerkjum í þráðlaust netmerki, fyrir tölvur, snjallsíma, spjaldtölvur og önnur þráðlaus tæki til að tengjast netinu. Til dæmisampLe, breiðband á heimilinu þarf aðeins að vera tengt við Wi-Fi bein til að ná þráðlausu neti fyrir Wi-Fi tæki. Almennur samskiptastaðall sem studdur er af Wi-Fi beinum er IEEE 802.11n, með að meðaltali TxRate 300 Mbps, eða 600 Mbps að hámarki. Þeir eru afturábak samhæfðir við IEEE 802.11b og IEEE 802.11g. ESP32-C3 flísinn frá Espressif styður IEEE 802.11b/g/n, þannig að þú getur valið einbands (2.4 GHz) eða tvíbands (2.4 GHz og 5 GHz) Wi-Fi bein.
Tölva (Linux/macOS/Windows) Þróunarumhverfi verður kynnt í kafla 4. Kafli 2. Inngangur og framkvæmd IoT-verkefna 15

2.2.4 Þróunarferli
Mynd 2.4. Þróun Smart Light verkefnisins
Vélbúnaðarhönnun Vélbúnaðarhönnun IoT tækja er nauðsynleg fyrir IoT verkefni. Fullkomið snjallljósaverkefni er ætlað að framleiða alamp vinna undir rafmagni. Mismunandi framleiðendur framleiða lamps af mismunandi stílum og gerðum ökumanns, en þráðlausar einingar þeirra eru venjulega með sömu virkni. Til að einfalda þróunarferlið Smart Ligh verkefnisins, fjallar þessi bók aðeins um vélbúnaðarhönnun og hugbúnaðarþróun þráðlausra eininga.
Stillingar IoT skýjapalla Til að nota IoT skýjapalla þarftu að stilla verkefni á bakendanum, eins og að búa til vörur, búa til tæki, stilla eiginleika tækisins o.s.frv.
Innbyggð hugbúnaðarþróun fyrir IoT tæki Innleiða væntanlegar aðgerðir með ESP-IDF, SDK Espressif tækishliðar, þar á meðal að tengjast IoT skýjapöllum, þróa LED rekla og uppfæra fastbúnað.
Þróun snjallsímaforrita Þróaðu snjallsímaforrit fyrir Android og iOS kerfi til að gera sér grein fyrir skráningu notenda og innskráningu, tækjastýringu og öðrum aðgerðum.
Fínstilling IoT tækja Þegar grunnþróun aðgerða IoT tækja er lokið geturðu snúið þér að hagræðingarverkefnum, svo sem orkuhagræðingu.
Fjöldaframleiðslupróf Framkvæma fjöldaframleiðslupróf í samræmi við tengda staðla, svo sem virkniprófun búnaðar, öldrunarpróf, RF próf osfrv.
Þrátt fyrir skrefin sem talin eru upp hér að ofan er Smart Light verkefni ekki endilega háð slíkri málsmeðferð þar sem einnig er hægt að framkvæma mismunandi verkefni á sama tíma. Til dæmisample, innbyggðan hugbúnað og snjallsímaforrit er hægt að þróa samhliða. Sum skref gætu einnig þurft að endurtaka, svo sem hagræðingu IoT tækja og fjöldaframleiðsluprófun.
16 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

2.3 Samantekt
Í þessum kafla útskýrðum við fyrst grunnhluti og hagnýtar einingar IoT verkefnis, kynntum síðan Smart Light tilfellið til æfinga, með vísan til uppbyggingar þess, virkni, undirbúnings vélbúnaðar og þróunarferlis. Lesendur geta dregið ályktanir af æfingunni og orðið öruggir um að framkvæma IoT verkefni með lágmarks mistökum í framtíðinni.
Kafli 2. Inngangur og framkvæmd IoT-verkefna 17

18 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

3. kafli

Inngangur

til

ESP

RainMaker

Internet of Things (IoT) býður upp á endalausa möguleika til að breyta því hvernig fólk lifir, samt er þróun IoT verkfræði full af áskorunum. Með almenningsskýjum geta framleiðendur flugstöðva innleitt vöruvirkni með eftirfarandi lausnum:
Byggt á skýjapöllum lausnaveitenda. Á þennan hátt þurfa framleiðendur útstöðva aðeins að hanna vélbúnað vörunnar, tengja síðan vélbúnaðinn við skýið með því að nota samskiptaeininguna sem fylgir með og stilla vöruaðgerðirnar í samræmi við leiðbeiningarnar. Þetta er skilvirk nálgun þar sem hún útilokar þörfina fyrir þróun á netþjónahlið og forritahlið og rekstur og viðhald (O&M). Það gerir flugstöðvaframleiðendum kleift að einbeita sér að vélbúnaðarhönnun án þess að þurfa að huga að skýjaútfærslu. Hins vegar eru slíkar lausnir (td vélbúnaðar tækis og app) almennt ekki opinn uppspretta, þannig að virkni vörunnar verður takmörkuð af skýjapalli veitunnar sem ekki er hægt að aðlaga. Á sama tíma tilheyra notenda- og tækisgögnum einnig skýjapallinn.
Byggt á skýjavörum Í þessari lausn, eftir að hafa lokið vélbúnaðarhönnun, þurfa flugstöðvarframleiðendur ekki aðeins að innleiða skýjaaðgerðir með því að nota eina eða fleiri skýjavörur sem almenningsskýið býður upp á, heldur þurfa þeir einnig að tengja vélbúnaðinn við skýið. Til dæmisample, til að tengjast Amazon Web Þjónusta (AWS), framleiðendur útstöðva þurfa að nota AWS vörur eins og Amazon API Gateway, AWS IoT Core og AWS Lambda til að gera tækisaðgang, fjarstýringu, gagnageymslu, notendastjórnun og aðrar grunnaðgerðir kleift. Það biður ekki aðeins framleiðendur flugstöðva um að nota og stilla skýjavörur á sveigjanlegan hátt með ítarlegum skilningi og ríkri reynslu, heldur krefst það einnig þess að þeir hugi að byggingar- og viðhaldskostnaði fyrir fyrstu og síðari tíma.tages Þetta skapar miklar áskoranir fyrir orku og auðlindir fyrirtækisins.
Í samanburði við opinber ský eru einkaský venjulega smíðuð fyrir tiltekin verkefni og vörur. Einkaskýjaframleiðendum er gefið mesta frelsi í samskiptahönnun og innleiðingu viðskiptarökfræði. Framleiðendur flugstöðva geta búið til vörur og hönnunarkerfi að vild og auðveldlega samþætt og styrkt notendagögn. Að sameina mikið öryggi, sveigjanleika og áreiðanleika almenningsskýja með forskotinutagEspressif hleypti af stokkunum ESP í einkaskýinu
19

RainMaker, djúpt samþætt einkaskýjalausn byggð á Amazon skýi. Notendur geta notað ESP RainMaker og smíðað einkaský einfaldlega með AWS reikningi.
3.1 Hvað er ESP RainMaker?
ESP RainMaker er fullkominn AIoT vettvangur byggður með mörgum þroskuðum AWS vörum. Það veitir ýmsa þjónustu sem krafist er fyrir fjöldaframleiðslu eins og skýjaaðgang tækja, uppfærslu tækja, stjórnun á bakhlið, innskráningu þriðja aðila, raddsamþættingu og notendastjórnun. Með því að nota Serverless Application Repository (SAR) sem AWS býður upp á, geta flugstöðvarframleiðendur fljótt sett ESP RainMaker á AWS reikninga sína, sem er tímahagkvæmt og auðvelt í notkun. Stjórnað og viðhaldið af Espressif, SAR sem ESP RainMaker notar hjálpar forriturum að draga úr skýviðhaldskostnaði og flýta fyrir þróun AIoT vara og byggja þannig upp öruggar, stöðugar og sérhannaðar AIoT lausnir. Mynd 3.1 sýnir arkitektúr ESP RainMaker.
Mynd 3.1. Arkitektúr ESP RainMaker
ESP RainMaker almenningsþjónninn frá Espressif er ókeypis fyrir alla ESP áhugamenn, framleiðendur og kennara fyrir mat á lausnum. Hönnuðir geta skráð sig inn með Apple, Google eða GitHub reikningum og smíðað fljótt sínar eigin IoT forrita frumgerðir. Opinberi netþjónninn samþættir Alexa og Google Home og veitir raddstýringarþjónustu, sem er studd af Alexa Skill og Google Actions. Merkingargreiningaraðgerð þess er einnig knúin af þriðja aðila. RainMaker IoT tæki bregðast aðeins við ákveðnum aðgerðum. Til að fá tæmandi lista yfir studdar raddskipanir, vinsamlegast athugaðu vettvang þriðja aðila. Að auki býður Espressif opinbert RainMaker app fyrir notendur til að stjórna vörunum í gegnum snjallsíma. 20 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

3.2 Innleiðing ESP RainMaker
Eins og sýnt er á mynd 3.2, samanstendur ESP RainMaker af fjórum hlutum: · Tilkallaþjónusta, sem gerir RainMaker tækjum kleift að fá skilríki á virkan hátt. · RainMaker Cloud (einnig þekkt sem skýjabakendi), sem veitir þjónustu eins og skilaboðasíun, notendastjórnun, gagnageymslu og samþættingu þriðja aðila. · RainMaker Agent, sem gerir RainMaker tækjum kleift að tengjast RainMaker Cloud. · RainMaker Client (RainMaker App eða CLI forskriftir), fyrir úthlutun, sköpun notenda, tengingu og stjórnun tækja o.s.frv.
Mynd 3.2. Uppbygging ESP RainMaker
ESP RainMaker býður upp á fullkomið sett af verkfærum fyrir vöruþróun og fjöldaframleiðslu, þar á meðal: RainMaker SDK
RainMaker SDK er byggt á ESP-IDF og veitir frumkóða umboðsmanns tækishliðar og tengdum C API fyrir vélbúnaðarþróun. Hönnuðir þurfa aðeins að skrifa forritsrökfræðina og láta afganginn eftir RainMaker ramma. Fyrir frekari upplýsingar um C API, vinsamlegast farðu á https://bookc3.espressif.com/rm/c-api-reference. RainMaker App Opinbera útgáfan af RainMaker App gerir forriturum kleift að klára útvegun tækja og stjórna og spyrjast fyrir um stöðu tækja (td snjallljósavörur). Það er fáanlegt í bæði iOS og Android app verslunum. Nánari upplýsingar er að finna í kafla 10. REST API REST API hjálpa notendum að byggja upp sín eigin forrit sem líkjast RainMaker appinu. Fyrir frekari upplýsingar, vinsamlegast farðu á https://swaggerapis.rainmaker.espressif.com/.
Kafli 3. Kynning á ESP RainMaker 21

Python API A Python byggt CLI, sem kemur með RainMaker SDK, er til staðar til að útfæra allar aðgerðir svipaðar snjallsímaeiginleikum. Fyrir frekari upplýsingar um Python API, vinsamlegast farðu á https://bookc3.espressif.com/rm/python-api-reference.
Admin CLI Admin CLI, með hærra aðgangsstigi, er veitt fyrir einkauppsetningu ESP RainMaker til að búa til tækjavottorð í lausu.
3.2.1 Kröfuþjónusta
Öll samskipti milli RainMaker tækja og skýjabakendans fara fram í gegnum MQTT+TLS. Í samhengi við ESP RainMaker er „Claiming“ ferlið þar sem tæki fá vottorð frá kröfuþjónustunni til að tengjast skýjabakkanum. Athugaðu að tilkallaþjónustan á aðeins við um opinbera RainMaker þjónustuna, en fyrir einkauppsetningu þarf að búa til skírteini tækisins í lausu í gegnum Admin CLI. ESP RainMaker styður þrjár gerðir af kröfuþjónustu: Sjálfkrafa
Tækið sækir sjálft skírteinin í gegnum leynilykil sem er fyrirfram forritaður í eFuse eftir tengingu við internetið. Hýsingardrifin krafa Skírteinin eru fengin frá þróunarhýslinum með RainMaker reikningnum. Aðstoðarkröfur Skírteinin eru fengin í gegnum snjallsímaforrit meðan á úthlutun stendur.
3.2.2 RainMaker Agent
Mynd 3.3. Uppbygging RainMaker SDK Aðalhlutverk RainMaker Agent er að veita tengingu og aðstoða forritalagið við að vinna upp/niðurtengil skýjagögn. Það er byggt í gegnum RainMaker SDK 22 ESP32-C3 Wireless Adventure: Alhliða handbók um IoT

og þróað á grundvelli sannaðs ESP-IDF ramma, með því að nota ESP-IDF íhluti eins og RTOS, NVS og MQTT. Mynd 3.3 sýnir uppbyggingu RainMaker SDK.
RainMaker SDK inniheldur tvo helstu eiginleika.
Tenging
i. Samstarf við tilkallaþjónustu til að fá tækjavottorð.
ii. Tengist við bakenda skýsins með því að nota örugga MQTT samskiptareglur til að veita fjartengingu og innleiða fjarstýringu, skilaboðaskýrslur, notendastjórnun, tækjastjórnun o.s.frv. Það notar MQTT íhlutinn í ESP-IDF sjálfgefið og veitir abstraktlag til að tengjast öðrum siðareglur stafla.
iii. Að útvega Wi-Fi úthlutunarhluta fyrir Wi-Fi tengingu og útvegun, sérstaklega https ota íhlut fyrir OTA uppfærslur, og sérstaklega staðbundinn ctrl íhlut fyrir staðbundið tæki uppgötvun og tengingu. Öllum þessum markmiðum er hægt að ná með einfaldri uppsetningu.
Gagnavinnsla
i. Að geyma tækisvottorð sem gefin eru út af Claiming Service og gögnin sem þarf þegar RainMaker er keyrt, sjálfgefið með því að nota viðmótið sem nvs flash íhluturinn býður upp á og útvega API fyrir forritara til beinnar notkunar.
ii. Að nota afturhringingarbúnaðinn til að vinna upp/niðurtengla skýjagögn og opna sjálfkrafa gögnin fyrir forritalagið til að auðvelda vinnslu fyrir þróunaraðila. Til dæmisampLe, RainMaker SDK býður upp á mikið viðmót til að koma á TSL (Thing Specification Language) gögnum, sem þarf til að skilgreina TSL líkön til að lýsa IoT tækjum og innleiða aðgerðir eins og tímasetningu, niðurtalningu og raddstýringu. Fyrir grunn gagnvirka eiginleika eins og tímasetningu, býður RainMaker SDK upp á þróunarlausa lausn sem einfaldlega er hægt að virkja þegar þörf krefur. Þá mun RainMaker umboðsmaðurinn vinna beint úr gögnunum, senda þau í skýið í gegnum tilheyrandi MQTT efni og endurnýja gagnabreytingar í skýjabakhlutanum með svarhringingarkerfi.
3.2.3 Cloud Backend
Skýjastuðningurinn er byggður á AWS Serverless Computing og náð í gegnum AWS Cognito (auðkennisstjórnunarkerfi), Amazon API Gateway, AWS Lambda (miðlaralaus tölvuþjónusta), Amazon DynamoDB (NoSQL gagnagrunnur), AWS IoT Core (IoT aðgangskjarni sem veitir MQTT aðgang og reglusíun), Amazon Simple Email Service (SES einföld póstþjónusta), Amazon CloudFront (hraðafhendingarnet), Amazon Simple Queue Service (SQS skilaboðaröð) og Amazon S3 (fötugeymsluþjónusta). Það er ætlað að hámarka sveigjanleika og öryggi. Með ESP RainMaker geta verktaki stjórnað tækjum án þess að þurfa að skrifa kóða í skýið. Skilaboð sem tilkynnt er um af tækjum eru send á gagnsæjan hátt til
Kafli 3. Kynning á ESP RainMaker 23

forritaviðskiptavinum eða annarri þjónustu þriðja aðila. Tafla 3.1 sýnir AWS skýjavörur og aðgerðir sem notaðar eru í skýjabakkanum, með fleiri vörum og eiginleikum í þróun.
Tafla 3.1. AWS skýjavörur og aðgerðir sem skýjabakkinn notar

AWS Cloud vara notuð af RainMaker

Virka

AWS Cognito

Umsjón með notendaskilríkjum og stuðningur við innskráningu þriðja aðila

AWS Lambda

Innleiðing kjarnaviðskiptarökfræði skýjabakendans

Amazon Timestream Geymir gögn um tímaraðir

Amazon DynamoDB Geymir einkaupplýsingar viðskiptavina

AWS IoT kjarna

Styður MQTT samskipti

Amazon SES

Að veita tölvupóstsendingarþjónustu

Amazon CloudFront flýtir fyrir stjórnun bakenda webaðgangur að síðu

Amazon SQS

Framsenda skilaboð frá AWS IoT Core

3.2.4 RainMaker viðskiptavinur
RainMaker viðskiptavinir, eins og App og CLI, hafa samskipti við skýjabakendann í gegnum REST API. Ítarlegar upplýsingar og leiðbeiningar um REST API er að finna í Swagger skjölunum sem Espressif gefur. RainMaker farsímaforritsbiðlarinn er fáanlegur fyrir bæði iOS og Android kerfi. Það gerir úthlutun, stjórn og samnýtingu tækis kleift, auk þess að búa til og virkja niðurtalningarverkefni og tengjast vettvangi þriðja aðila. Það getur sjálfkrafa hlaðið notendaviðmóti og táknum í samræmi við uppsetninguna sem tækin tilkynntu og birt TSL tækisins að fullu.
Til dæmisample, ef snjallljós er byggt á RainMaker SDK-útgáfu examples, táknið og notendaviðmót peruljóssins hlaðast sjálfkrafa þegar úthlutun er lokið. Notendur geta breytt lit og birtustigi ljóssins í gegnum viðmótið og náð stjórn þriðja aðila með því að tengja Alexa Smart Home Skill eða Google Smart Home Actions við ESP RainMaker reikninga sína. Mynd 3.4 sýnir táknið og notendaviðmótið tdamples af peruljósinu á Alexa, Google Home og ESP RainMaker appinu.

24 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

(a) Dæmiample - Alexa

(b) Dæmiample – Google Home

(c) Dæmiample – ESP RainMaker
Mynd 3.4. Dæmiamples af tákni og notendaviðmóti peruljóssins á Alexa, Google Home og ESP RainMaker appinu
3.3 Æfing: Lykilatriði fyrir þróun með ESP RainMaker
Þegar ökumannslag tækisins hefur verið lokið geta verktaki byrjað að búa til TSL líkön og vinna úr niðurtenglagögnum með því að nota API sem RainMaker SDK býður upp á, og virkja ESP RainMaker grunnþjónustu byggt á vöruskilgreiningu og kröfum.
Kafli 3. Kynning á ESP RainMaker 25

Hluti 9.4 í þessari bók mun útskýra útfærslu LED snjallljóssins í RainMaker. Við villuleit geta verktaki notað CLI verkfærin í RainMaker SDK til að hafa samskipti við snjallljósið (eða hringt í REST API frá Swagger).
Kafli 10 mun útfæra notkun REST API við þróun snjallsímaforrita. Farið verður yfir OTA uppfærslur á LED snjallljósum í kafla 11. Ef þróunaraðilar hafa virkjað ESP Insights fjarvöktun, mun ESP RainMaker stjórnunarbakendi sýna ESP Insights gögnin. Nánar verður greint í kafla 15.
ESP RainMaker styður einkauppsetningu, sem er frábrugðin opinberum RainMaker netþjóni á eftirfarandi hátt:
Krafaþjónusta Til að búa til vottorð í einkauppfærslum er nauðsynlegt að nota RainMaker Admin CLI í stað þess að gera tilkall. Með opinberum miðlara verða forritarar að fá stjórnandaréttindi til að innleiða uppfærslu á fastbúnaðarbúnaði, en það er óæskilegt í auglýsingum. Þess vegna er hvorki hægt að veita sérstaka auðkenningarþjónustu fyrir sjálfkrafa, né stjórnandaréttindi fyrir hýsingarstýrð eða aðstoðað tilkall.
Símaforrit Í einkauppsetningum þarf að stilla og setja saman forrit sérstaklega til að tryggja að reikningskerfin séu ekki samhæfð.
Þriðja aðila innskráningu og raddsamþættingu Hönnuðir verða að stilla sérstaklega í gegnum Google og Apple Developer reikninga til að virkja þriðju aðila innskráningu, sem og Alexa Skill og Google Voice Assistant samþættingu.
ÁBENDINGAR Fyrir frekari upplýsingar um skýjauppsetningu, vinsamlegast farðu á https://customer.rainmaker.espressif. com. Hvað varðar fastbúnað, þá þarf flutningur frá opinberum netþjóni til einkaþjóns aðeins að skipta um tækisvottorð, sem bætir flutningsskilvirkni til muna og dregur úr kostnaði við flutning og auka villuleit.
3.4 Eiginleikar ESP RainMaker
ESP RainMaker eiginleikar eru aðallega miðaðar að þremur þáttum - notendastjórnun, endanotendum og stjórnendum. Allir eiginleikar eru studdir bæði á opinberum og einkaþjónum nema annað sé tekið fram.
3.4.1 Notendastjórnun
Notendastjórnunareiginleikarnir gera endanotendum kleift að skrá sig, skrá sig inn, breyta lykilorðum, sækja lykilorð o.s.frv.
26 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Skráðu þig og skráðu þig inn Skráningar- og innskráningaraðferðirnar sem RainMaker styður eru meðal annars: · Netfang + lykilorð · Símanúmer + lykilorð · Google reikningur · Apple reikningur · GitHub reikningur (aðeins opinber miðlari) · Amazon reikningur (aðeins einkaþjónn)
ATH. Skráðu þig með Google/Amazon deilir netfangi notandans með RainMaker. Skráðu þig með því að nota Apple deilir dummy heimilisfangi sem Apple úthlutar notandanum sérstaklega fyrir RainMaker þjónustuna. RainMaker reikningur verður sjálfkrafa búinn til fyrir notendur sem skrá sig inn með Google, Apple eða Amazon reikningi í fyrsta skipti.
Breyta lykilorði Gildir aðeins fyrir innskráningar sem byggjast á tölvupósti/símanúmerum. Allar aðrar virkar lotur verða skráðar út eftir að lykilorði er breytt. Samkvæmt AWS Cognito hegðun geta útskráningarloturnar verið virkar í allt að 1 klukkustund.
Sækja lykilorð Gildir aðeins fyrir innskráningu sem byggir á tölvupósti/símanúmeri.
3.4.2 Notendaeiginleikar
Eiginleikar sem eru opnir notendum eru staðbundin og fjarstýring og eftirlit, tímasetningar, flokkun tækja, deilingu tækja, tilkynningar um ýtt og samþættingu þriðja aðila.
Fjarstýring og eftirlit · Fyrirspurnir um stillingar, færibreytugildi og tengingarstöðu fyrir eitt eða öll tæki. · Stilltu breytur fyrir stök eða mörg tæki.
Staðbundin stjórnun og eftirlit Farsíminn og tækið þurfa að vera tengd við sama net fyrir staðbundna stjórn.
Tímasetning · Notendur forstilla ákveðnar aðgerðir á tilteknum tíma. · Engin internettenging er nauðsynleg fyrir tækið meðan á áætluninni stendur. · Einu sinni eða endurtaka (með því að tilgreina daga) fyrir stök eða mörg tæki.
Tækjaflokkun Styður ágripsflokkun á mörgum stigum Hægt er að nota lýsigögn hópa til að búa til heimaherbergi.
Kafli 3. Kynning á ESP RainMaker 27

Samnýting tækis Hægt er að deila einu eða fleiri tækjum með einum eða fleiri notendum.
Þrýstitilkynningar Endir notendur munu fá tilkynningar um viðburði eins og · Nýtt tæki bætt við/fjarlægt · Tæki tengt við ský · Tæki aftengt skýi · Deilingarbeiðnir tækis búnar til/samþykktar/hafnar · Viðvörunarskilaboð sem tilkynnt var af tækjum
Samþættingar þriðja aðila Alexa og Google Voice Assistant eru studdar til að stjórna RainMaker tækjum, þar á meðal ljósum, rofum, innstungum, viftum og hitaskynjara.
3.4.3 Stjórnunareiginleikar
Admin eiginleikar gera stjórnendum kleift að innleiða tækjaskráningu, tækjaflokkun og OTA uppfærslur og til view tölfræði og ESP Insights gögn.
Tækjaskráning Búðu til tækjavottorð og skráðu þig hjá Admin CLI (aðeins einkaþjónn).
Tækjaflokkun Búðu til óhlutbundna eða skipulagða hópa byggða á upplýsingum um tæki (aðeins einkaþjónn).
Loftuppfærslur (OTA) Hladdu upp fastbúnaði byggða á útgáfu og gerð, í eitt eða fleiri tæki eða hóp. Fylgstu með, hættu við eða geymdu OTA störf.
View tölfræði Viewhægt tölfræði felur í sér: · Tækjaskráningar (vottorð skráð af stjórnanda) · Tækjavirkjun (tæki tengt í fyrsta skipti) · Notendareikningar · Tenging notenda og tækis
View ESP Insights gögn Viewfær ESP Insights gögn innihalda: · Villur, viðvaranir og sérsniðnar annálar · Hrunskýrslur og greining · Endurræsingarástæður · Mælingar eins og minnisnotkun, RSSI osfrv. · Sérsniðnar mælingar og breytur
28 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

3.5 Samantekt
Í þessum kafla kynntum við nokkur lykilmun á opinberri RainMaker uppsetningu og einkauppsetningu. Einka ESP RainMaker lausnin sem Espressif hleypti af stokkunum er mjög áreiðanleg og stækkanleg. Allir ESP32 röð flísar hafa verið tengdir og aðlagaðir að AWS, sem dregur verulega úr kostnaði. Hönnuðir geta einbeitt sér að sannprófun frumgerða án þess að þurfa að læra um AWS skýjavörur. Við útskýrðum einnig útfærslu og eiginleika ESP RainMaker og nokkur lykilatriði fyrir þróun með því að nota pallinn.
Skannaðu til að hlaða niður ESP RainMaker fyrir Android Skannaðu til að hlaða niður ESP RainMaker fyrir iOS
Kafli 3. Kynning á ESP RainMaker 29

30 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Kafli Uppsetning 4 Þróunarumhverfi
Þessi kafli fjallar um ESP-IDF, opinbera hugbúnaðarþróunarramma fyrir ESP32-C3. Við munum útskýra hvernig á að setja upp umhverfið á ýmsum stýrikerfum og kynna verkefnisskipulag og smíðakerfi ESP-IDF, sem og notkun tengdra þróunartækja. Síðan munum við kynna samantekt og keyrsluferli fyrrverandiampLe verkefnið, á sama tíma og það býður upp á nákvæma útskýringu á framleiðsluskránni á hverju stage.
4.1 ESP-IDF lokiðview
ESP-IDF (Espressif IoT Development Framework) er einn stöðva IoT þróunarrammi sem Espressif Technology veitir. Það notar C/C++ sem aðalþróunarmál og styður krosssamsetningu undir almennum stýrikerfum eins og Linux, Mac og Windows. FyrrverandiampLe forritin sem eru í þessari bók eru þróuð með ESP-IDF, sem býður upp á eftirfarandi eiginleika: · SoC kerfisrekla. ESP-IDF inniheldur rekla fyrir ESP32, ESP32-S2, ESP32-C3,
og aðrar franskar. Þessir reklar ná yfir útlægt lágstigs (LL) bókasafn, vélbúnaðarútdráttslaga (HAL) bókasafn, RTOS stuðning og efri lag ökumannshugbúnaðar osfrv. · Nauðsynlegir hlutir. ESP-IDF inniheldur grundvallarþætti sem þarf til að þróa IoT. Þetta felur í sér marga netsamskiptastafla eins og HTTP og MQTT, orkustjórnunarramma með kraftmikilli tíðnimótun og eiginleika eins og Flash dulkóðun og öruggt ræsi osfrv. · Þróunar- og framleiðslutæki. ESP-IDF býður upp á almennt notuð verkfæri til að smíða, flassa og kemba við þróun og fjöldaframleiðslu (sjá mynd 4.1), eins og byggingarkerfið byggt á CMake, krosssamsetningarverkfærakeðjuna sem byggir á GCC og JTAG villuleitarverkfæri byggt á OpenOCD o.s.frv. Vert er að hafa í huga að ESP-IDF kóðinn fylgir fyrst og fremst Apache 2.0 opnum leyfinu. Notendur geta þróað persónulegan eða viðskiptahugbúnað án takmarkana á meðan þeir fara að skilmálum opins leyfis. Að auki fá notendur varanleg einkaleyfisleyfi án endurgjalds, án skyldu til að opna allar breytingar sem gerðar eru á frumkóðanum.
31

Mynd 4.1.

Byggja, blikka og kemba-

verkfæri fyrir þróun og fjöldaframleiðslu

4.1.1 ESP-IDF útgáfur
ESP-IDF kóðinn er hýstur á GitHub sem opið verkefni. Eins og er eru þrjár helstu útgáfur í boði: v3, v4 og v5. Hver meiriháttar útgáfa inniheldur venjulega ýmsar undirróður, eins og v4.2, v4.3, og svo framvegis. Espressif Systems tryggir 30 mánaða stuðning fyrir villuleiðréttingar og öryggisplástra fyrir hverja útgefna undirútgáfu. Þess vegna eru endurskoðanir á subversions einnig gefnar út reglulega, svo sem v4.3.1, v4.2.2, o.s.frv. Tafla 4.1 sýnir stuðningsstöðu mismunandi ESP-IDF útgáfur fyrir Espressif flís, sem gefur til kynna hvort þær séu í formiview stage (bjóða stuðning fyrir preview útgáfur, sem kunna að vanta ákveðna eiginleika eða skjöl) eða eru opinberlega studdar.

Tafla 4.1. Stuðningur við stöðu mismunandi ESP-IDF útgáfur fyrir Espressif flís

Röð ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2

v4.1 studd

v4.2 studd studd

v4.3 studd studd studd

v4.4 studd studd studd studd
fyrirview

v5.0 studd studd studd studd studd forview

32 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Endurtekning á helstu útgáfum felur oft í sér lagfæringar á rammaskipan og uppfærslur á samantektarkerfinu. Til dæmisample, helsta breytingin frá v3.* í v4.* var smám saman flutningur byggingarkerfisins frá Make til CMake. Á hinn bóginn, endurtekning á minni útgáfum felur venjulega í sér að bæta við nýjum eiginleikum eða stuðningi við nýjar flís.
Það er mikilvægt að greina og skilja sambandið milli stöðugra útgáfur og GitHub útibúa. Útgáfur merktar sem v*.* eða v*.*.* tákna stöðugar útgáfur sem hafa staðist fullkomnar innri prófanir hjá Espressif. Þegar það hefur verið lagað haldast kóðinn, verkfærakeðjan og útgáfuskjölin fyrir sömu útgáfu óbreytt. Hins vegar, GitHub útibú (td útgáfu/v4.3 útibú) gangast undir tíðar kóðaskuldbindingar, oft á hverjum degi. Þess vegna geta tveir kóðabútar undir sama útibúi verið mismunandi, sem þarfnast þróunaraðila til að uppfæra kóðann sinn tafarlaust í samræmi við það.
4.1.2 ESP-IDF Git vinnuflæði
Espressif fylgir sérstöku Git vinnuflæði fyrir ESP-IDF, lýst sem hér segir:
· Nýjar breytingar eru gerðar á meistaraútibúi sem þjónar sem aðalþróunargrein. ESP-IDF útgáfan á aðalútibúinu er alltaf með -dev tag til að gefa til kynna að það sé í þróun eins og v4.3-dev. Breytingar á aðalútibúi verða fyrst tilhviewed og prófuð í innri geymslu Espressif, og síðan ýtt á GitHub eftir að sjálfvirk prófun er lokið.
· Þegar ný útgáfa hefur lokið við þróun eiginleika á aðalútibúinu og uppfyllt skilyrðin til að fara í beta prófun, fer hún yfir í nýja grein, eins og útgáfu/v4.3. Auk þess er þetta nýja útibú tagged sem forútgáfu, eins og v4.3-beta1. Hönnuðir geta vísað til GitHub vettvangsins til að fá aðgang að heildarlistanum yfir útibú og tags fyrir ESP-IDF. Það er mikilvægt að hafa í huga að beta útgáfan (forútgáfa) gæti enn haft umtalsverðan fjölda þekktra vandamála. Þar sem beta útgáfan er í stöðugri prófun er villuleiðréttingum bætt við bæði þessa útgáfu og aðalútibúið samtímis. Á sama tíma gæti aðalútibúið þegar byrjað að þróa nýja eiginleika fyrir næstu útgáfu. Þegar prófun er næstum því lokið, er útgáfuefni (rc) merki bætt við útibúið, sem gefur til kynna að það sé hugsanlegur umsækjandi fyrir opinberu útgáfuna, eins og v4.3-rc1. Á þessu stage, útibúið er áfram forútgáfa.
· Ef engar meiriháttar villur finnast eða tilkynnt, fær forútgáfuútgáfan að lokum aðalútgáfumerki (td v5.0) eða minniútgáfumerki (td v4.3) og verður opinber útgáfuútgáfa, sem er skjalfest á útgáfuskýringasíðunni. Í kjölfarið eru allar villur sem eru auðkenndar í þessari útgáfu lagaðar á útgáfugreininni. Eftir að handvirkum prófunum er lokið er útibúinu úthlutað merki um villuleiðréttingu (td v4.3.2), sem endurspeglast einnig á útgáfuskýringasíðunni.
Kafli 4. Uppsetning þróunarumhverfis 33

4.1.3 Að velja viðeigandi útgáfu
Þar sem ESP-IDF byrjaði opinberlega að styðja ESP32-C3 frá útgáfu v4.3, og v4.4 hefur ekki enn verið opinberlega gefin út þegar þessi bók er skrifuð, er útgáfan sem notuð er í þessari bók v4.3.2, sem er endurskoðuð útgáfa af v4.3. Hins vegar er mikilvægt að hafa í huga að þegar þú lest þessa bók gæti v4.4 eða nýrri útgáfur þegar verið tiltækar. Þegar þú velur útgáfu mælum við með eftirfarandi:
· Fyrir upphafshönnuði er ráðlegt að velja stöðugu v4.3 útgáfuna eða endurskoðaða útgáfu hennar, sem er í takt við fyrrverandiampútgáfan sem notuð er í þessari bók.
· Í fjöldaframleiðslu er mælt með því að nota nýjustu stöðugu útgáfuna til að njóta góðs af nýjustu tækniaðstoðinni.
· Ef þú ætlar að gera tilraunir með nýjar flögur eða kanna nýja vörueiginleika, vinsamlegast notaðu master útibúið. Nýjasta útgáfan inniheldur alla nýjustu eiginleikana, en hafðu í huga að það kunna að vera þekktar eða óþekktar villur til staðar.
· Ef stöðuga útgáfan sem er notuð inniheldur ekki nýja eiginleika sem óskað er eftir og þú vilt lágmarka áhættuna sem tengist aðalútibúinu skaltu íhuga að nota samsvarandi útgáfugrein, eins og útgáfu/v4.4 greinina. GitHub geymsla Espressif mun fyrst búa til útgáfu/v4.4 útibúið og gefa síðan út stöðugu v4.4 útgáfuna sem byggir á ákveðnu sögulegu skyndimynd af þessari grein, eftir að hafa lokið allri þróun og prófun eiginleika.
4.1.4 Lokiðview af ESP-IDF SDK skránni
ESP-IDF SDK samanstendur af tveimur aðalmöppum: esp-idf og .espressif. Hið fyrra inniheldur frumkóða ESP-IDF geymslunnar files og safnforskriftir, en hið síðarnefnda geymir aðallega safnverkfærakeðjur og annan hugbúnað. Þekking á þessum tveimur möppum mun hjálpa forriturum að nýta betur tiltæk úrræði og flýta fyrir þróunarferlinu. Möppuuppbyggingu ESP-IDF er lýst hér að neðan:
(1) ESP-IDF geymslukóðaskrá (/esp/esp-idf), eins og sýnt er á mynd 4.2.
a. Hluti íhlutaskrár
Þessi kjarnaskrá samþættir marga nauðsynlega hugbúnaðarhluta ESP-IDF. Enginn verkkóða er hægt að setja saman án þess að treysta á íhlutina í þessari möppu. Það felur í sér stuðning við ökumenn fyrir ýmsa Espressif-flögur. Frá LL bókasafni og HAL bókasafnsviðmótum fyrir jaðartæki til efri stigs Driver og Virtual File Kerfisstuðningur (VFS) lag, verktaki getur valið viðeigandi íhluti á mismunandi stigum fyrir þróunarþarfir þeirra. ESP-IDF styður einnig marga staðlaða netsamskiptareglur eins og TCP/IP, HTTP, MQTT, WebSocket osfrv. Hönnuðir geta notað kunnugleg viðmót eins og Socket til að byggja netforrit. Íhlutir veita skilning-
34 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Mynd 4.2. ESP-IDF geymslukóðaskrá
sive virkni og auðvelt er að samþætta það inn í forrit, sem gerir forriturum kleift að einbeita sér eingöngu að viðskiptarökfræðinni. Sumir algengir þættir eru: · bílstjóri: Þessi hluti inniheldur útlæga rekilforrit fyrir ýmis Espressif
flísaröð, eins og GPIO, I2C, SPI, UART, LEDC (PWM), o.s.frv. Jaðarbúnaðarforritin í þessum íhlut bjóða upp á flísóháð abstrakt tengi. Hvert jaðartæki hefur sameiginlegan haus file (eins og gpio.h), sem útilokar þörfina á að takast á við mismunandi flís-sértækar stuðningsspurningar. · esp_wifi: Wi-Fi, sem sérstakt jaðartæki, er meðhöndlað sem sérstakan íhlut. Það felur í sér mörg API eins og frumstilling á ýmsum Wi-Fi ökumannsstillingum, stillingu breytu og vinnslu atburða. Ákveðnar aðgerðir þessa íhluta eru veittar í formi kyrrstæðra tenglasafna. ESP-IDF veitir einnig yfirgripsmikil ökumannsskjöl til að auðvelda notkun.
Kafli 4. Uppsetning þróunarumhverfis 35

· freeertos: Þessi hluti inniheldur allan FreeRTOS kóðann. Fyrir utan að veita alhliða stuðning við þetta stýrikerfi, hefur Espressif einnig útvíkkað stuðning sinn við tvíkjarna flís. Fyrir tvíkjarna flís eins og ESP32 og ESP32-S3 geta notendur búið til verkefni á tilteknum kjarna.
b. Skjalaskrá skjöl
Þessi skrá inniheldur ESP-IDF tengd þróunarskjöl, þar á meðal Byrjaðu handbókina, API tilvísunarhandbók, þróunarhandbók o.s.frv.
ATHUGIÐ Eftir að hafa verið sett saman með sjálfvirkum verkfærum er innihald þessarar möppu sett á https://docs.espressif.com/projects/esp-idf. Gakktu úr skugga um að skipta skjalmarkmiðinu yfir í ESP32-C3 og veldu tilgreinda ESP-IDF útgáfu.
c. Handritaverkfæri
Þessi mappa inniheldur almennt notuð samansafn framhliðarverkfæri eins og idf.py, og skjástöðvunartólið idf_monitor.py, osfrv. Undirskrárinn cmake inniheldur einnig kjarnaskriftu files af samantektarkerfinu, sem þjónar sem grunnur að innleiðingu ESP-IDF samantektarreglum. Þegar umhverfisbreytum er bætt við er innihaldinu í verkfæraskránni bætt við kerfisumhverfisbreytuna, sem gerir kleift að keyra idf.py beint undir verkslóðinni.
d. Fyrrverandiample forritaskrá tdamples
Þessi skrá inniheldur mikið safn af ESP-IDF example forrit sem sýna fram á notkun íhluta API. Fyrrverandiamplesum er raðað í ýmsar undirmöppur út frá flokkum þeirra:
· byrja: Þessi undirskrá inniheldur tdamples eins og „halló heimur“ og „blikka“ til að hjálpa notendum að skilja grunnatriðin.
· Bluetooth: Þú getur fundið Bluetooth tengt tdamples hér, þar á meðal Bluetooth LE Mesh, Bluetooth LE HID, BluFi og fleira.
· WiFi: Þessi undirskrá einbeitir sér að Wi-Fi tdamples, þar á meðal grunnforrit eins og Wi-Fi SoftAP, Wi-Fi Station, espnow, sem og sérsamskiptareglur td.amples frá Espressif. Það inniheldur einnig mörg umsóknarlag tdamples byggð á Wi-Fi, eins og Iperf, Sniffer og Smart Config.
· jaðartæki: Þessi umfangsmikla undirskrá er frekar skipt í fjölmargar undirmöppur byggðar á jaðarnöfnum. Það inniheldur aðallega jaðartæki tdamples fyrir Espressif-flögur, með hverju example með nokkrum undir-examples. Til dæmis inniheldur gpio undirskráin tvö tdamples: GPIO og GPIO fylkislyklaborð. Það er mikilvægt að hafa í huga að ekki eru allir fyrrvampLesin í þessari skrá eiga við um ESP32-C3.
36 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Til dæmisample, fyrrverandiamples í usb/host eiga aðeins við um jaðartæki með USB Host vélbúnaði (eins og ESP32-S3), og ESP32-C3 er ekki með þetta jaðartæki. Safnkerfið veitir venjulega leiðbeiningar þegar markmiðið er stillt. README file af hverju example listar studdu flögurnar. · samskiptareglur: Þessi undirskrá inniheldur tdamples fyrir ýmsar samskiptareglur, þar á meðal MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, sem nær yfir margs konar samskiptareglur td.ampLesa sem krafist er fyrir IoT þróun. · úthlutun: Hér finnur þú úthlutun tdamples fyrir mismunandi aðferðir, svo sem Wi-Fi útvegun og Bluetooth LE úthlutun. · kerfi: Þessi undirskrá inniheldur kerfisvillu tdamples (td staflarakningu, keyrslutímarakningu, verkefnaeftirlit), orkustjórnun tdamples (td ýmsar svefnstillingar, meðvinnsluvélar) og tdamples sem tengjast algengum kerfishlutum eins og stjórnborðsútstöð, viðburðarlykkju og kerfistímamæli. · geymsla: Innan þessarar undirmöppu muntu uppgötva tdamples af öllum file kerfi og geymslukerfi studd af ESP-IDF (svo sem lestur og ritun á Flash, SD korti og öðrum geymslumiðlum), sem og td.amples af óstöðug geymslu (NVS), FatFS, SPIFFS og annað file kerfisrekstur. · öryggi: Þessi undirskrá inniheldur tdamples sem tengjast flash dulkóðun. (2) ESP-IDF safntól keðjuskrá (/.espressif), eins og sýnt er á mynd 4.3.
Mynd 4.3. ESP-IDF samansafn tól keðjuskrá
Kafli 4. Uppsetning þróunarumhverfis 37

a. Dreifingarskrá hugbúnaðar dist
ESP-IDF verkfærakeðjan og öðrum hugbúnaði er dreift í formi þjappaðra pakka. Meðan á uppsetningarferlinu stendur hleður uppsetningartólið niður þjappaða pakkanum í dist möppuna og dregur hann síðan út í tilgreinda möppu. Þegar uppsetningunni er lokið er hægt að fjarlægja innihaldið í þessari möppu á öruggan hátt.
b. Python sýndarumhverfisskrá python env
Mismunandi útgáfur af ESP-IDF treysta á sérstakar útgáfur af Python pakka. Að setja þessa pakka upp beint á sama vél getur leitt til árekstra milli pakkaútgáfu. Til að bregðast við þessu notar ESP-IDF Python sýndarumhverfi til að einangra mismunandi pakkaútgáfur. Með þessu fyrirkomulagi geta forritarar sett upp margar útgáfur af ESP-IDF á sama vélinni og skipt auðveldlega á milli þeirra með því að flytja inn mismunandi umhverfisbreytur.
c. ESP-IDF samantektarverkfæri keðjuskrárverkfæri
Þessi mappa inniheldur aðallega krosssamsetningarverkfæri sem þarf til að setja saman ESP-IDF verkefni, svo sem CMake verkfæri, Ninja smíðaverkfæri og gcc verkfærakeðjuna sem býr til loka keyranlega forritið. Að auki hýsir þessi mappa venjulegt bókasafn C/C++ tungumálsins ásamt samsvarandi haus files. Ef forrit vísar í kerfishaus file eins og #include , mun safnverkfærakeðjan finna stdio.h file í þessari möppu.
4.2 Uppsetning ESP-IDF þróunarumhverfis
ESP-IDF þróunarumhverfið styður almenn stýrikerfi eins og Windows, Linux og macOS. Í þessum hluta verður kynnt hvernig eigi að setja upp þróunarumhverfið á hverju kerfi. Mælt er með því að þróa ESP32-C3 á Linux kerfi, sem verður kynnt í smáatriðum hér. Margar leiðbeiningar eiga við á milli kerfa vegna líkinda þróunarverkfæranna. Þess vegna er ráðlagt að lesa vandlega innihald þessa hluta.
ATH Þú getur vísað í netskjölin sem eru fáanleg á https://bookc3.espressif.com/esp32c3, sem veita skipanirnar sem nefndar eru í þessum hluta.
4.2.1 Uppsetning ESP-IDF þróunarumhverfis á Linux
GNU þróunar- og villuleitartækin sem krafist er fyrir ESP-IDF þróunarumhverfið eru innfædd í Linux kerfinu. Að auki er skipanalínustöðin í Linux öflug og notendavæn, sem gerir hana að kjörnum vali fyrir ESP32-C3 þróun. Þú getur
38 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

veldu uppáhalds Linux dreifingu þína, en við mælum með að nota Ubuntu eða önnur Debianbased kerfi. Þessi hluti veitir leiðbeiningar um uppsetningu ESP-IDF þróunarumhverfisins á Ubuntu 20.04.
1. Settu upp nauðsynlega pakka
Opnaðu nýja flugstöð og keyrðu eftirfarandi skipun til að setja upp alla nauðsynlega pakka. Skipunin mun sjálfkrafa sleppa pökkum sem eru þegar uppsettir.
$ 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 Þú þarft að nota stjórnandareikninginn og lykilorðið fyrir skipunina hér að ofan. Sjálfgefið er að engar upplýsingar birtast þegar lykilorðið er slegið inn. Ýttu einfaldlega á „Enter“ takkann til að halda áfram ferlinu.
Git er lykilkóðastjórnunartæki í ESP-IDF. Eftir að hafa sett upp þróunarumhverfið með góðum árangri geturðu notað git log skipunina til að view allar kóðabreytingar sem gerðar hafa verið frá stofnun ESP-IDF. Að auki er Git einnig notað í ESP-IDF til að staðfesta útgáfuupplýsingar, sem eru nauðsynlegar til að setja upp rétta verkfærakeðju sem samsvarar tilteknum útgáfum. Ásamt Git eru önnur mikilvæg kerfisverkfæri Python. ESP-IDF inniheldur fjölda sjálfvirkniforskrifta sem eru skrifuð í Python. Verkfæri eins og CMake, Ninja-build og Ccache eru mikið notuð í C/C++ verkefnum og þjóna sem sjálfgefin kóða samantekt og byggingarverkfæri í ESP-IDF. libusb-1.0-0 og dfu-util eru aðal reklarnir sem notaðir eru fyrir USB raðsamskipti og vélbúnaðarbrennslu. Þegar hugbúnaðarpakkarnir hafa verið settir upp geturðu notað viðeigandi sýningu skipun til að fá nákvæmar lýsingar á hverjum pakka. Til dæmisample, notaðu apt show git til að prenta lýsingarupplýsingarnar fyrir Git tólið.
Sp.: Hvað á að gera ef Python útgáfan er ekki studd? A: ESP-IDF v4.3 krefst Python útgáfu sem er ekki lægri en v3.6. Fyrir eldri útgáfur af Ubuntu, vinsamlegast hlaðið niður og settu upp hærri útgáfu af Python handvirkt og stilltu Python3 sem sjálfgefið Python umhverfi. Þú getur fundið nákvæmar leiðbeiningar með því að leita að lykilorðinu update-alternatives python.
2. Sæktu ESP-IDF geymslukóða
Opnaðu flugstöð og búðu til möppu sem heitir esp í heimaskránni þinni með því að nota mkdir skipunina. Þú getur valið annað nafn fyrir möppuna ef þú vilt. Notaðu cd skipunina til að fara inn í möppuna.
Kafli 4. Uppsetning þróunarumhverfis 39

$ mkdir -p /esp $ cd /esp
Notaðu git clone skipunina til að hlaða niður ESP-IDF geymslukóðanum, eins og sýnt er hér að neðan:
$ git klón -b v4.3.2 – endurkvæmt https://github.com/espressif/esp-idf.git
Í skipuninni hér að ofan tilgreinir færibreytan -b v4.3.2 útgáfuna sem á að hlaða niður (í þessu tilviki, útgáfa 4.3.2). Færibreytan – endurkvæmt tryggir að öllum undirgeymslum ESP-IDF sé hlaðið niður afturkvæmt. Upplýsingar um undirgeymslur má finna í .gitmodules file.
3. Settu upp ESP-IDF þróunarverkfærakeðjuna
Espressif veitir sjálfvirkt handrit install.sh til að hlaða niður og setja upp verkfærakeðjuna. Þetta handrit athugar núverandi ESP-IDF útgáfu og stýrikerfisumhverfi, og hleður síðan niður og setur upp viðeigandi útgáfu af Python verkfærapökkum og safnverkfærakeðjum. Sjálfgefin uppsetningarleið fyrir verkfærakeðjuna er /.espressif. Allt sem þú þarft að gera er að fara í esp-idf skrána og keyra install.sh.
$ cd /esp/esp-idf $ ./install.sh
Ef þú setur upp verkfærakeðjuna með góðum árangri mun flugstöðin sýna:
Allt búið!
Á þessum tímapunkti hefur þú sett upp ESP-IDF þróunarumhverfið með góðum árangri.
4.2.2 Uppsetning ESP-IDF þróunarumhverfis á Windows
1. Sæktu uppsetningarforrit ESP-IDF verkfæra
ÁBENDINGAR Mælt er með því að setja upp ESP-IDF þróunarumhverfið á Windows 10 eða nýrri. Þú getur halað niður uppsetningarforritinu frá https://dl.espressif.com/dl/esp-idf/. Uppsetningarforritið er einnig opinn hugbúnaður og frumkóði þess getur verið viewútgáfa á https: //github.com/espressif/idf-installer.
· Online ESP-IDF verkfæri uppsetningarforrit
Þetta uppsetningarforrit er tiltölulega lítið, um 4 MB að stærð, og öðrum pakka og kóða verður hlaðið niður meðan á uppsetningarferlinu stendur. Advaninntage af uppsetningarforritinu á netinu er að ekki aðeins er hægt að hlaða niður hugbúnaðarpakka og kóða eftir beiðni meðan á uppsetningarferlinu stendur, heldur gerir það einnig kleift að setja upp allar tiltækar útgáfur af ESP-IDF og nýjustu útibú GitHub kóða (eins og aðalútibúið) . Ókosturinntage er að það krefst nettengingar meðan á uppsetningarferlinu stendur, sem getur valdið bilun í uppsetningu vegna netvandamála.
40 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

· Ótengdur ESP-IDF verkfæri uppsetningarforrit Þetta uppsetningarforrit er stærra, um 1 GB að stærð, og inniheldur alla hugbúnaðarpakka og kóða sem þarf til að setja upp umhverfi. Helsti advantagEitt af uppsetningarforritinu án nettengingar er að það er hægt að nota það á tölvum án netaðgangs og hefur almennt hærra uppsetningargengi. Það skal tekið fram að offline uppsetningarforritið getur aðeins sett upp stöðugar útgáfur af ESP-IDF sem auðkenndar eru með v*.* eða v*.*.*.
2. Keyrðu ESP-IDF verkfæri uppsetningarforritið Eftir að hafa hlaðið niður viðeigandi útgáfu af uppsetningarforritinu (taktu ESP-IDF Tools Offline 4.3.2 til dæmisample hér), tvísmelltu á exe file til að ræsa ESP-IDF uppsetningarviðmótið. Eftirfarandi sýnir hvernig á að setja upp ESP-IDF stöðuga útgáfu v4.3.2 með því að nota offline uppsetningarforritið.
(1) Í „Veldu uppsetningartungumál“ viðmótið sem sýnt er á mynd 4.4, veldu tungumálið sem á að nota af fellilistanum.
Mynd 4.4. „Veldu uppsetningartungumál“ viðmót (2) Eftir að hafa valið tungumálið skaltu smella á „Í lagi“ til að opna „Leyfissamningur“ viðmótið
(sjá mynd 4.5). Eftir að hafa lesið uppsetningarleyfissamninginn vandlega skaltu velja „Ég samþykki samninginn“ og smelltu á „Næsta“.
Mynd 4.5. „Leyfissamningur“ tengi Kafli 4. Uppsetning þróunarumhverfis 41

(3) Review kerfisstillingu í viðmótinu „Foruppsetning kerfisskoðun“ (sjá mynd 4.6). Athugaðu Windows útgáfuna og upplýsingar um uppsettan vírusvarnarhugbúnað. Smelltu á „Næsta“ ef öll stillingaratriðin eru eðlileg. Annars geturðu smellt á „Full log“ fyrir lausnir byggðar á lykilatriðum.
Mynd 4.6. „Kerfisskoðun fyrir uppsetningu“ tengi Ábendingar
Þú getur sent inn annála á https://github.com/espressif/idf-installer/issues til að fá aðstoð. (4) Veldu ESP-IDF uppsetningarskrána. Hér skaltu velja D:/.espressif, eins og sýnt er í
Mynd 4.7 og smelltu á „Næsta“. Vinsamlegast athugaðu að .espressif hér er falin skrá. Eftir að uppsetningunni er lokið geturðu view sérstakt innihald þessarar möppu með því að opna file stjórnanda og sýna falda hluti.
Mynd 4.7. Veldu ESP-IDF uppsetningarskrána 42 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT

(5) Athugaðu íhlutina sem þarf að setja upp, eins og sýnt er á mynd 4.8. Mælt er með því að nota sjálfgefna valmöguleikann, það er að ljúka uppsetningunni, og smelltu síðan á „Næsta“.
Mynd 4.8. Veldu íhlutina sem á að setja upp (6) Staðfestu íhlutina sem á að setja upp og smelltu á „Setja upp“ til að hefja sjálfvirka inn-
stöðvunarferli, eins og sýnt er á mynd 4.9. Uppsetningarferlið getur varað í tugi mínútna og framvindustika uppsetningarferlisins er sýnd á mynd 4.10. Vinsamlegast bíddu þolinmóður.
Mynd 4.9. Undirbúningur fyrir uppsetningu (7) Eftir að uppsetningu er lokið er mælt með því að haka við „Skráðu ESP-IDF
Verkfæri keyrð sem Windows Defender útilokanir…” til að koma í veg fyrir að vírusvarnarhugbúnaður eyðist files. Með því að bæta við útilokunaratriðum geturðu einnig sleppt tíðum skannum með vírusvarnarefni
Kafli 4. Uppsetning þróunarumhverfis 43

Mynd 4.10. Uppsetningarframvindustikuhugbúnaður, bætir til muna skilvirkni kóðasamsetningar Windows kerfisins. Smelltu á „Ljúka“ til að ljúka uppsetningu þróunarumhverfisins, eins og sýnt er á mynd 4.11. Þú getur valið að haka við „Run ESP-IDF PowerShell environment“ eða „Run ESP-IDF command prompt“. Keyrðu safngluggann beint eftir uppsetningu til að tryggja að þróunarumhverfið virki eðlilega.
Mynd 4.11. Uppsetningu lokið (8) Opnaðu uppsett þróunarumhverfi í forritalistanum (annaðhvort ESP-IDF 4.3
CMD eða ESP-IDF 4.3 PowerShell flugstöð, eins og sýnt er á mynd 4.12), og ESP-IDF umhverfisbreytunni verður sjálfkrafa bætt við þegar keyrt er í flugstöðinni. Eftir það geturðu notað idf.py skipunina fyrir aðgerðir. Opnaða ESP-IDF 4.3 CMD er sýnt á mynd 4.13. 44 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Mynd 4.12. Þróunarumhverfi sett upp
Mynd 4.13. ESP-IDF 4.3 CMD
4.2.3 Uppsetning ESP-IDF þróunarumhverfis á Mac
Ferlið við að setja upp ESP-IDF þróunarumhverfið á Mac kerfi er það sama og á Linux kerfi. Skipanirnar til að hlaða niður geymslukóðanum og setja upp verkfærakeðjuna eru nákvæmlega þær sömu. Aðeins skipanirnar til að setja upp ósjálfstæðispakka eru aðeins öðruvísi. 1. Settu upp ósjálfstæðispakka Opnaðu flugstöð og settu upp pip, Python pakkastjórnunartólið, með því að keyra eftirfarandi skipun:
% sudo auðvelt að setja upp pip
Settu upp Homebrew, pakkastjórnunartól fyrir macOS, með því að keyra eftirfarandi skipun:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)“
Settu upp nauðsynlega ósjálfstæðispakka með því að keyra eftirfarandi skipun:
% brugga python3 setja upp cmake ninja ccache dfu-util
2. Hlaða niður ESP-IDF geymslukóða Fylgdu leiðbeiningunum í kafla 4.2.1 til að hlaða niður ESP-IDF geymslukóðanum. Skrefin eru þau sömu og fyrir niðurhal á Linux kerfi.
Kafli 4. Uppsetning þróunarumhverfis 45

3. Settu upp ESP-IDF þróunarverkfærakeðjuna
Fylgdu leiðbeiningunum í kafla 4.2.1 til að setja upp ESP-IDF þróunarverkfærakeðjuna. Skrefin eru þau sömu og fyrir uppsetningu á Linux kerfi.
4.2.4 Uppsetning VS kóða
Sjálfgefið er að ESP-IDF SDK inniheldur ekki kóðavinnslutól (þó nýjasta ESP-IDF uppsetningarforritið fyrir Windows bjóði upp á möguleika á að setja upp ESP-IDF Eclipse). Þú getur notað hvaða textavinnslutæki sem þú vilt til að breyta kóðanum og setja hann síðan saman með flugstöðvaskipunum.
Eitt vinsælt tól til að breyta kóða er VS Code (Visual Studio Code), sem er ókeypis og eiginleikaríkur kóðaritari með notendavænu viðmóti. Það býður upp á ýmislegt plugins sem veita virkni eins og kóðaleiðsögn, auðkenningu á setningafræði, Git útgáfustýringu og samþættingu flugstöðva. Að auki hefur Espressif þróað sérstakt viðbót sem heitir Espressif IDF fyrir VS kóða, sem einfaldar uppsetningu og villuleit verkefnisins.
Þú getur notað kóðaskipunina í flugstöðinni til að fljótt opna núverandi möppu í VS kóða. Að öðrum kosti geturðu notað flýtileiðina Ctrl+ til að opna sjálfgefna flugstöðvatölvu kerfisins innan VS kóða.
ÁBENDINGAR Mælt er með því að nota VS kóða fyrir þróun ESP32-C3 kóða. Sæktu og settu upp nýjustu útgáfuna af VS Code á https://code.visualstudio.com/.
4.2.5 Kynning á þróunarumhverfi þriðja aðila
Til viðbótar við opinbera ESP-IDF þróunarumhverfið, sem notar aðallega C tungumálið, styður ESP32-C3 einnig önnur almenn forritunarmál og margs konar þróunarumhverfi þriðja aðila. Sumir athyglisverðir valkostir eru:
Arduino: opinn vettvangur fyrir bæði vélbúnað og hugbúnað, sem styður ýmsa örstýringa, þar á meðal ESP32-C3.
Það notar C++ tungumálið og býður upp á einfaldað og staðlað API, almennt nefnt Arduino tungumálið. Arduino er mikið notað í frumgerð og fræðslusamhengi. Það býður upp á teygjanlegan hugbúnaðarpakka og IDE sem gerir kleift að safna saman og blikka.
MicroPython: Python 3 tungumálatúlkur hannaður til að keyra á innbyggðum örstýringarpöllum.
Með einföldu forskriftarmáli getur það beint aðgang að jaðarauðlindum ESP32-C3 (svo sem UART, SPI og I2C) og samskiptaaðgerðum (eins og Wi-Fi og Bluetooth LE).
46 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

Þetta einfaldar vélbúnaðarsamskipti. MicroPython, ásamt víðtæku stærðfræðilegu aðgerðasafni Python, gerir kleift að innleiða flókna reiknirit á ESP32-C3, sem auðveldar þróun gervigreindartengdra forrita. Sem handritsmál er engin þörf á endurtekinni samantekt; Hægt er að gera breytingar og hægt er að framkvæma forskriftir beint.
NodeMCU: LUA tungumálatúlkur þróaður fyrir ESP röð flísar.
Það styður næstum allar jaðaraðgerðir ESP-flaga og er léttari en MicroPython. Svipað og MicroPython notar NodeMCU skriftumál, sem útilokar þörfina á endurtekinni samantekt.
Ennfremur styður ESP32-C3 einnig NuttX og Zephyr stýrikerfin. NuttX er rauntíma stýrikerfi sem veitir POSIX-samhæft viðmót, sem eykur færanleika forrita. Zephyr er lítið rauntíma stýrikerfi sem er sérstaklega hannað fyrir IoT forrit. Það inniheldur fjölmörg hugbúnaðarsöfn sem krafist er í IoT þróun, og þróast smám saman í alhliða hugbúnaðarvistkerfi.
Þessi bók veitir ekki nákvæmar uppsetningarleiðbeiningar fyrir áðurnefnt þróunarumhverfi. Þú getur sett upp þróunarumhverfi byggt á þörfum þínum með því að fylgja viðkomandi skjölum og leiðbeiningum.
4.3 ESP-IDF safnkerfi
4.3.1 Grunnhugtök safnkerfis
ESP-IDF verkefni er safn af aðalforriti með inngangsaðgerð og mörgum sjálfstæðum virkum hlutum. Til dæmisample, verkefni sem stýrir LED rofa samanstendur aðallega af inngangsforriti aðal og bílstjóri hluti sem stjórnar GPIO. Ef þú vilt átta þig á LED fjarstýringunni þarftu líka að bæta við Wi-Fi, TCP/IP samskiptareglum o.s.frv.
Söfnunarkerfið getur sett saman, tengt og búið til keyrslu files (.bin) fyrir kóðann í gegnum sett af byggingarreglum. Safnkerfi ESP-IDF v4.0 og yfir útgáfum er sjálfgefið byggt á CMake og hægt er að nota safnskriftina CMakeLists.txt til að stjórna samantektarhegðun kóðans. Auk þess að styðja við grunnsetningafræði CMake, skilgreinir ESP-IDF safnkerfið einnig sett af sjálfgefnum samantektarreglum og CMake aðgerðum og þú getur skrifað samantektarforritið með einföldum yfirlýsingum.
4.3.2 Verkefni File Uppbygging
Verkefni er mappa sem inniheldur færsluforrit aðal, notendaskilgreinda íhluti og fileþarf til að byggja keyranleg forrit, svo sem safnforskriftir, stillingar
Kafli 4. Uppsetning þróunarumhverfis 47

files, skiptingartöflur, osfrv. Verkefni er hægt að afrita og senda á, og sama keyrslu file hægt að safna saman og búa til í vélum með sömu útgáfu af ESP-IDF þróunarumhverfi. Dæmigerð ESP-IDF verkefni file uppbygging er sýnd á mynd 4.14.
Mynd 4.14. Dæmigert ESP-IDF verkefni file uppbygging Þar sem ESP-IDF styður marga IoT flís frá Espressif, þar á meðal ESP32, ESP32-S röð, ESP32-C röð, ESP32-H röð, o.s.frv., þarf að ákvarða markmið áður en kóðann er settur saman. Markmiðið er bæði vélbúnaðartækið sem keyrir umsóknarforritið og byggingarmarkmið safnkerfisins. Það fer eftir þörfum þínum, þú getur tilgreint eitt eða fleiri markmið fyrir verkefnið þitt. Til dæmisample, með skipuninni idf.py set-target esp32c3, geturðu stillt söfnunarmarkmiðið á ESP32-C3, þar sem sjálfgefna færibreytur og keðjuslóð safnverkfæra fyrir ESP32C3 verða hlaðnar. Eftir samantekt er hægt að búa til keyranlegt forrit fyrir ESP32C3. Þú getur líka keyrt skipunina set-target aftur til að stilla annað markmið og þá mun safnkerfið sjálfkrafa hreinsa upp og endurstilla. Íhlutir
Íhlutir í ESP-IDF eru eininga og sjálfstæðar kóðaeiningar sem stjórnað er innan safnkerfisins. Þær eru skipulagðar sem möppur, þar sem möppuheitið táknar sjálfgefið heiti íhluta. Hver hluti hefur sitt eigið safnhandrit sem 48 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT

tilgreinir samantektarfæribreytur þess og ósjálfstæði. Í samantektarferlinu er íhlutum safnað saman í aðskilin kyrrstæð söfn (.a files) og að lokum sameinað öðrum hlutum til að mynda umsóknarforritið.
ESP-IDF býður upp á nauðsynlegar aðgerðir, svo sem stýrikerfi, jaðarrekla og netsamskiptareglur, í formi íhluta. Þessir íhlutir eru geymdir í íhlutaskránni sem er í ESP-IDF rótarskránni. Hönnuðir þurfa ekki að afrita þessa íhluti í íhlutaskrána í myProject. Þess í stað þurfa þeir aðeins að tilgreina ósjálfstæðistengsl þessara hluta í CMakeLists.txt verkefnisins file með því að nota REQUIRES eða PRIV_REQUIRES tilskipanirnar. Söfnunarkerfið mun sjálfkrafa finna og setja saman nauðsynlega hluti.
Þess vegna er íhlutaskráin undir myProject ekki nauðsynleg. Það er aðeins notað til að innihalda nokkra sérsniðna hluti af verkefninu, sem geta verið þriðja aðila bókasöfn eða notendaskilgreindur kóði. Að auki er hægt að fá íhluti úr hvaða möppu sem er önnur en ESP-IDF eða núverandi verkefni, svo sem frá opnu verkefni sem er vistað í annarri möppu. Í þessu tilfelli þarftu aðeins að bæta við slóð hlutans með því að setja EXTRA_COMPONENT_DIRS breytuna í CMakeLists.txt undir rótarskránni. Þessi mappa mun hnekkja öllum ESP-IDF íhlutum með sama nafni og tryggja að réttur hluti sé notaður.
Aðgangsforrit aðal Aðalskráin innan verkefnisins fylgir því sama file uppbygging sem aðrir þættir (td hluti 1). Hins vegar hefur það sérstaka þýðingu þar sem það er skylduþáttur sem verður að vera til staðar í hverju verkefni. Aðalskráin inniheldur frumkóða verkefnisins og inngangspunkt notendaforritsins, venjulega kallaður app_main. Sjálfgefið er að keyrsla notendaforritsins byrjar frá þessum inngangsstað. Aðalhlutinn er einnig frábrugðinn að því leyti að hann fer sjálfkrafa eftir öllum hlutum innan leitarslóðarinnar. Þess vegna er engin þörf á að tilgreina ósjálfstæði með REQUIRES eða PRIV_REQUIRES tilskipunum í CMakeLists.txt file.
Stillingar file Rótarskrá verkefnisins inniheldur stillingar file kallað sdkconfig, sem inniheldur stillingarfæribreytur fyrir alla íhluti í verkefninu. sdkconfig file er sjálfkrafa búið til af samantektarkerfinu og hægt er að breyta og endurskapa með skipuninni idf.py menuconfig. Valmöguleikarnir í menuconfig koma aðallega frá Kconfig.projbuild verkefnisins og Kconfig íhlutanna. Íhlutahönnuðir bæta almennt við stillingaratriðum í Kconfig til að gera íhlutinn sveigjanlegan og stillanlegan.
Byggingarskrá Sjálfgefið er að byggingarskráin innan verkefnisins geymir millistig files og fi-
Kafli 4. Uppsetning þróunarumhverfis 49

endanleg keyranleg forrit búin til með idf.py build skipuninni. Almennt séð er ekki nauðsynlegt að hafa beinan aðgang að innihaldi byggingarskrárinnar. ESP-IDF veitir fyrirfram skilgreindar skipanir til að hafa samskipti við möppuna, svo sem að nota idf.py flash skipunina til að finna sjálfkrafa samansetta tvöfaldann file og flassaðu því á tilgreint flash vistfang, eða notaðu idf.py fullclean skipunina til að hreinsa alla byggingarskrána.
Skiptingtafla (partitions.csv) Hvert verkefni krefst skiptingartöflu til að deila rými flash og tilgreina stærð og upphafsvistfang keyrsluforritsins og notendagagnarými. Skipun idf.py flash eða OTA uppfærsluforrit mun blikka fastbúnaðinum á samsvarandi heimilisfang samkvæmt þessari töflu. ESP-IDF býður upp á nokkrar sjálfgefnar skiptingartöflur í íhlutum/ partition_table, svo sem partitions_singleapp.csv og partitions_two_ ota.csv, sem hægt er að velja í menuconfig.
Ef sjálfgefin skiptingartafla kerfisins getur ekki uppfyllt kröfur verkefnisins er hægt að bæta sérsniðnu partitions.csv við verkefnaskrána og velja hana í menuconfig.
4.3.3 Sjálfgefnar byggingarreglur safnkerfisins
Reglur um að hnekkja íhlutum með sama nafni Við íhlutaleitarferli fylgir samantektarkerfið ákveðinni röð. Það leitar fyrst að innri íhlutum ESP-IDF, leitar síðan að íhlutum notendaverkefnisins og að lokum leitar það að íhlutum í EXTRA_COMPONENT_DIRS. Í tilfellum þar sem margar möppur innihalda íhluti með sama nafni mun íhluturinn sem finnast í síðustu möppu hnekkja öllum fyrri íhlutum með sama nafni. Þessi regla gerir kleift að sérsníða ESP-IDF íhluti innan notendaverkefnisins, á sama tíma og upprunalega ESP-IDF kóðann er ósnortinn.
Reglur fyrir sjálfgefið að innihalda algenga íhluti Eins og getið er um í kafla 4.3.2, þurfa íhlutir að tilgreina sérstaklega ósjálfstæði þeirra á öðrum íhlutum í CMakeLists.txt. Hins vegar eru algengir þættir eins og freertos sjálfkrafa innifalin í byggingarkerfinu sjálfgefið, jafnvel þótt ósjálfstæðistengsl þeirra séu ekki skýrt skilgreind í samantektarforritinu. ESP-IDF algengir hlutir innihalda freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv og cxx. Notkun þessara algengu íhluta kemur í veg fyrir endurtekna vinnu við ritun CMakeLists.txt og gerir það hnitmiðaðra.
Reglur um að hnekkja stillingarhlutum Hönnuðir geta bætt við sjálfgefnum stillingarbreytum með því að bæta við sjálfgefnum stillingum file nefndi sdkconfig.defaults við verkefnið. Til dæmisample, bætir CONFIG_LOG_ við
50 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

DEFAULT_LEVEL_NONE = y getur stillt UART viðmótið til að prenta ekki annálsgögn sjálfgefið. Ennfremur, ef stilla þarf sérstakar breytur fyrir tiltekið markmið, stillingar file sem heitir sdkconfig.defaults.TARGET_NAME er hægt að bæta við, þar sem TARGET_NAME getur verið esp32s2, esp32c3, og svo framvegis. Þessar stillingar files eru flutt inn í sdkconfig meðan á samantekt stendur, með almennu sjálfgefna stillingunni file sdkconfig.defaults er fyrst flutt inn og síðan marksértæka stillingu file, eins og sdkconfig.defaults.esp32c3. Í þeim tilvikum þar sem það eru stillingaratriði með sama nafni, síðarnefnda stillingin file mun yfirbuga hið fyrra.
4.3.4 Kynning á safnforritinu
Þegar verkefni er þróað með því að nota ESP-IDF þurfa verktaki ekki aðeins að skrifa frumkóða heldur þurfa þeir einnig að skrifa CMakeLists.txt fyrir verkefnið og íhlutina. CMakeLists.txt er texti file, einnig þekkt sem safnforskrift, sem skilgreinir röð safnhluta, safnstillingarhluta og skipanir til að leiðbeina söfnunarferli frumkóðans. Safnkerfi ESP-IDF v4.3.2 er byggt á CMake. Auk þess að styðja innfæddar CMake aðgerðir og skipanir, skilgreinir það einnig röð sérsniðinna aðgerða, sem gerir það miklu auðveldara að skrifa safnforskriftir.
Söfnunarforritin í ESP-IDF innihalda aðallega verkefnasöfnunarforritið og íhlutasamsetningarforritin. CMakeLists.txt í rótarskrá verkefnisins er kallað verkefnissamsetningarforritið, sem stýrir samantektarferli alls verkefnisins. Grunnrit til að safna saman verkefnum inniheldur venjulega eftirfarandi þrjár línur:
1. cmake_minimum_required(ÚTGÁFA 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Meðal þeirra þarf að setja cmake_minimum_required (VERSION 3.5) á fyrstu línu, sem er notuð til að gefa til kynna lágmarks CMake útgáfunúmer sem verkefnið krefst. Nýrri útgáfur af CMake eru almennt afturábak samhæfar við eldri útgáfur, svo stilltu útgáfunúmerið í samræmi við það þegar nýrri CMake skipanir eru notaðar til að tryggja eindrægni.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) flytur inn fyrirfram skilgreinda uppsetningarhluti og skipanir ESP-IDF safnkerfis, þar á meðal sjálfgefnar byggingarreglur safnkerfisins sem lýst er í kafla 4.3.3. project(myProject) býr til verkefnið sjálft og tilgreinir nafn þess. Þetta nafn verður notað sem endanleg úttaks tvíundir file nafn, þ.e. myProject.elf og myProject.bin.
Verkefni getur haft marga hluti, þar á meðal aðalþáttinn. Efsta möppu hvers íhluta inniheldur CMakeLists.txt file, sem er kallað component compilation script. Íhlutasamsetningarforskriftir eru aðallega notaðar til að tilgreina ósjálfstæði íhluta, stillingarfæribreytur, frumkóða files, og meðfylgjandi haus files fyrir
Kafli 4. Uppsetning þróunarumhverfis 51

samantekt. Með sérsniðinni aðgerð ESP-IDF idf_component_register er lágmarkskóði sem þarf fyrir íhlutasamsetningarforrit sem hér segir:

1. idf_component_register(SRCS „src1.c“

2.

INCLUDE_DIRS „innihalda“

3.

Krefst component1)

SRCS færibreytan gefur upp lista yfir uppruna files í íhlutnum, aðskilin með bilum ef þau eru mörg files. INCLUDE_DIRS færibreytan veitir lista yfir opinberan haus file möppur fyrir íhlutinn, sem verður bætt við innihaldsleitarslóðina fyrir aðra hluti sem eru háðir núverandi íhlut. REQUIRES færibreytan auðkennir opinberar íhlutir ósjálfstæði fyrir núverandi íhlut. Nauðsynlegt er að íhlutir taki skýrt fram hvaða íhlutir þeir eru háðir, eins og component2 fer eftir component1. Hins vegar, fyrir aðalþáttinn, sem er sjálfgefið háður öllum íhlutum, er hægt að sleppa færibreytunni REQUIRES.

Að auki er einnig hægt að nota innfæddar CMake skipanir í safnskriftinni. Til dæmisample, notaðu skipanasettið til að stilla breytur, svo sem set(VIÐRÆÐI „VALUE“).

4.3.5 Kynning á algengum skipunum
ESP-IDF notar CMake (verkefnisstillingarverkfæri), Ninja (verkefnabyggingartól) og esptool (flash tól) í því ferli að safna saman kóða. Hvert tól gegnir öðru hlutverki í samantekt, byggingu og flassferli, og styður einnig mismunandi stjórnunarskipanir. Til að auðvelda notkun notenda bætir ESP-IDF við sameinuðu framenda idf.py sem gerir kleift að kalla ofangreindar skipanir fljótt.
Áður en þú notar idf.py skaltu ganga úr skugga um að:
· Umhverfisbreytunni IDF_PATH ESP-IDF hefur verið bætt við núverandi flugstöð. · Framkvæmdarskrá skipana er rótarskrá verkefnisins, sem inniheldur
verkefnasamsetningarhandrit CMakeLists.txt.
Algengar skipanir idf.py eru sem hér segir:
· idf.py –hjálp: sýnir lista yfir skipanir og notkunarleiðbeiningar. · idf.py setja markmið : setja samantekt taidf.py fullcleanrget, svo
sem skipta með esp32c3. · idf.py menuconfig: ræsir menuconfig, grafíska uppsetningu flugstöðvar
tól, sem getur valið eða breytt stillingarvalkostum, og stillingarniðurstöðurnar eru vistaðar í sdkconfig file. · idf.py smíði: hefja kóðasöfnun. Millistigið files og endanlegt keyranlegt forrit sem myndast við samantektina verður sjálfgefið vistað í byggingarskrá verkefnisins. Safnferlið er stigvaxandi, sem þýðir að ef aðeins ein heimild file er breytt, aðeins hið breytta file verður tekin saman næst.

52 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

· idf.py hreinn: að þrífa millistigið files mynda af verkefnasöfnuninni. Allt verkefnið neyðist til að taka saman í næstu samantekt. Athugaðu að CMake stillingum og stillingum sem gerðar eru með menuconfig verður ekki eytt meðan á hreinsun stendur.
· idf.py fullclean: eyðir allri byggingarskránni, þar með talið allri CMake stillingarúttakinu files. Þegar verkefnið er byggt aftur mun CMake stilla verkefnið frá grunni. Vinsamlegast athugaðu að þessi skipun mun endurtekið eyða öllum files í byggingarskránni, svo notaðu hana með varúð og verkstillingar file verður ekki eytt.
· idf.py glampi: blikkar executable program binary file búið til með því að byggja að markinu ESP32-C3. Valmöguleikarnir -bls og -b eru notuð til að stilla heiti tækisins á raðtengi og flutningshraða fyrir blikk, í sömu röð. Ef þessir tveir valkostir eru ekki tilgreindir mun raðtengi finnast sjálfkrafa og sjálfgefna flutningshraðinn verður notaður.
· idf.py skjár: sýnir úttak raðtengis ESP32-C3 miða. Hægt er að nota valkostinn -p til að tilgreina tækisheiti raðtengis á hýsilhliðinni. Meðan á raðtengisprentun stendur, ýttu á takkasamsetninguna Ctrl+] til að fara úr skjánum.
Einnig er hægt að sameina ofangreindar skipanir eftir þörfum. Til dæmisample, skipunin idf.py build flash monitor mun framkvæma kóðasöfnun, flassa og opna raðtengisskjáinn í röð.
Þú getur heimsótt https://bookc3.espressif.com/build-system til að vita meira um ESP-IDF safnkerfi.
4.4 Æfing: Samsetning Exampforritið "Blink"
4.4.1 Dæmiample Greining
Þessi hluti mun taka forritið Blink sem fyrrverandiample til að greina file uppbyggingu og kóðunarreglur raunverulegs verkefnis í smáatriðum. Blink forritið útfærir LED blikkandi áhrifin og verkefnið er staðsett í möppunni tdamples/get-started/blink, sem inniheldur heimild file, stillingar files, og nokkur safnforrit.
Snjallljósaverkefnið sem kynnt er í þessari bók er byggt á þessu tdample forritið. Aðgerðum verður bætt við smám saman í síðari köflum til að ljúka því loksins.
Frumkóði Til að sýna fram á allt þróunarferlið hefur Blink forritið verið afritað í esp32c3-iot-projects/device firmware/1 blink.
Möppuuppbygging blink verkefnisins files er sýnt á mynd 4.15.
Blink verkefnið inniheldur aðeins eina aðalskrá, sem er sérstakur hluti sem
Kafli 4. Uppsetning þróunarumhverfis 53

Mynd 4.15. File möppuuppbygging blink verkefnisins

skal fylgja með eins og lýst er í kafla 4.3.2. Aðalskráin er aðallega notuð til að geyma útfærslu app_main() aðgerðarinnar, sem er inngangsstaður notendaforritsins. Blink verkefnið inniheldur ekki íhlutaskrána, því þetta td.ample þarf aðeins að nota íhlutina sem fylgja ESP-IDF og krefst ekki viðbótaríhluta. CMakeLists.txt sem er innifalið í blink verkefninu er notað til að leiðbeina samansafninu, en Kconfig.projbuild er notað til að bæta við stillingarhlutum fyrir þetta ex.ampforritið í menuconfig. Annað óþarft files mun ekki hafa áhrif á samantekt kóðans, svo þeir verða ekki ræddir hér. Ítarleg kynning á blink verkefninu files er sem hér segir.

1. /*blink.c inniheldur eftirfarandi haus files*/

2. #innihalda

//Standard C bókasafnshaus file

3. #include “freertos/freeRTOS.h” //FreeRTOS aðalhaus file

4. #include „freertos/task.h“

//FreeRTOS Verkefnahaus file

5. #include “sdkconfig.h”

// Stillingarhaus file búið til af kconfig

6. #include “driver/gpio.h”

//GPIO bílstjóri haus file

Uppspretta file blink.c inniheldur röð af hausum files sem samsvarar fallyfirlýsingu-

tjónum. ESP-IDF fylgir almennt þeirri röð að innihalda staðlaða bókasafnshaus files, FrjálsR-

TOS haus files, haus ökumanns files, annar hluti haus files, og verkefnishaus files.

Röð sem haus files eru innifalin geta haft áhrif á endanlega samantekt niðurstöðu, svo reyndu að

fylgja sjálfgefnum reglum. Það skal tekið fram að sdkconfig.h er sjálfkrafa búið til

með kconfig og er aðeins hægt að stilla það með skipuninni idf.py menuconfig.

Bein breyting á þessum haus file verður skrifað yfir.

1. /*Þú getur valið GPIO sem samsvarar ljósdíóðunni í idf.py menuconfig, og niðurstaðan af menuconfig er sú að gildið CONFIG_BLINK

_GPIO verður breytt. Þú getur líka beint breytt þjóðhagsskilgreiningunni

hér og breyttu CONFIG_BLINK_GPIO í fast gildi.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO

3. ógilt app_main(void)

4. {

5.

/* Stilltu IO sem sjálfgefna GPIO aðgerð, virkjaðu uppdráttarstillingu og

6.

slökkva á inntaks- og úttaksstillingum*/

7.

gpio_reset_pin(BLINK_GPIO);

54 ESP32-C3 þráðlaust ævintýri: Alhliða handbók um IoT

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

/*Stilltu GPIO á úttaksham*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); á meðan (1) {
/*Prent log*/ printf(“Slökkt á LEDn”); /*Slökktu á ljósdíóðunni (framleiðsla lágt stig)*/ gpio_set_level(BLINK_GPIO, 0); /*Töf (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf ("Kveikir á LEDn"); /*Kveiktu á LED (hátt úttak)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }

App_main() fallið í Blink exampLe program þjónar sem inngangspunktur fyrir notendaforrit. Það er einföld aðgerð án breytu og ekkert skilgildi. Þessi aðgerð er kölluð eftir að kerfið hefur lokið frumstillingu, sem felur í sér verkefni eins og að frumstilla raðtengi logsins, stilla einn/tvífaldan kjarna og stilla varðhundinn.

App_main() aðgerðin keyrir í samhengi við verkefni sem heitir main. Staflastærð og forgang þessa verkefnis er hægt að breyta í menuconfig Componentconfig Common ESP-tengt.

Fyrir einföld verkefni eins og að blikka LED er hægt að útfæra allan nauðsynlegan kóða beint í app_main() aðgerðinni. Þetta felur venjulega í sér að frumstilla GPIO sem samsvarar LED og nota while(1) lykkju til að kveikja og slökkva á LED. Að öðrum kosti geturðu notað FreeRTOS API til að búa til nýtt verkefni sem sér um að LED blikka. Þegar nýja verkefnið hefur verið búið til, geturðu lokað app_main() aðgerðinni.

Innihald main/CMakeLists.txt file, sem stýrir samantektarferlinu fyrir aðalþáttinn, er sem hér segir:

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

Meðal þeirra kallar main/CMakeLists.txt aðeins á eina virkni söfnunarkerfisins, það er idf_component_register. Svipað og CMakeLists.txt fyrir flesta aðra hluti, er blink.c bætt við SRCS og upprunanum files bætt við SRCS verður sett saman. Á sama tíma ætti „.“, sem táknar slóðina þar sem CMakeLists.txt er staðsett, að bæta við INCLUDE_DIRS sem leitarmöppur fyrir haus files. Innihald CMakeLists.txt er sem hér segir:
1. #Tilgreindu v3.5 sem elstu CMake útgáfuna sem studd er af núverandi verkefni 2. #Versions lægri en v3.5 verður að uppfæra áður en samantekt heldur áfram 3. cmake_minimum_required(VERSION 3.5) 4. #Includes the default CMake stillingar ESP -IDF samantektarkerfi

Kafli 4. Uppsetning þróunarumhverfis 55

5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Búðu til verkefni sem heitir “blink” 7. project(myProject)
Meðal þeirra inniheldur CMakeLists.txt í rótarskránni aðallega $ENV{IDF_ PATH}/tools/cmake/project.cmake, sem er aðal CMake uppsetningin file veitt af ESP-IDF. Það er notað til að samþ

Skjöl / auðlindir

Espressif Systems ESP32-C3 þráðlaust ævintýri [pdfNotendahandbók
ESP32-C3 þráðlaust ævintýri, ESP32-C3, þráðlaust ævintýri, ævintýri

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *