Мундариҷа пинҳон
2 Саргузашти бесими ESP32-C3
2.1 Дастури мукаммал оид ба IoT

Саргузашти бесими ESP32-C3

Саргузашти бесими ESP32-C3

Дастури мукаммал оид ба IoT

Системаҳои Espressif 12 июни соли 2023

Мушаххасоти

  • Маҳсулот: Adventure Wireless ESP32-C3
  • Истеҳсолкунанда: Espressif Systems
  • Сана: 12 июни соли 2023

Дастурҳои истифодаи маҳсулот

Тайёрӣ

Пеш аз истифодаи ESP32-C3 Wireless Adventure, боварӣ ҳосил кунед, ки шумо ҳастед
бо консепсияҳо ва меъмории IoT шинос. Ин кӯмак хоҳад кард
шумо мефаҳмед, ки чӣ гуна дастгоҳ ба экосистемаи калонтари IoT мувофиқат мекунад
ва барномаҳои эҳтимолии он дар хонаҳои интеллектуалӣ.

Муқаддима ва амалияи лоиҳаҳои IoT

Дар ин бахш шумо дар бораи лоиҳаҳои маъмулии IoT маълумот хоҳед гирифт,
аз ҷумла модулҳои асосӣ барои дастгоҳҳои умумии IoT, модулҳои асосӣ
барномаҳои муштарӣ ва платформаҳои абрии умумии IoT. Ин хохад
ба шумо барои фаҳмидан ва эҷод кардани шумо замина фароҳам меорад
лоиҳаҳои IoT.

Амал: Лоиҳаи Light Light

Дар ин лоиҳаи таҷрибавӣ, шумо мефаҳмед, ки чӣ тавр эҷод кардани интеллектуалӣ
нур бо истифода аз Adventure Wireless ESP32-C3. Сохтори лоиҳа,
вазифаҳо, омодасозии сахтафзор ва раванди таҳия хоҳад буд
муфассал шарҳ дода шудааст.

Сохтори лоиҳа

Лоиҳа аз якчанд ҷузъҳо иборат аст, аз ҷумла
Adventure бесими ESP32-C3, LEDҳо, сенсорҳо ва абр
пушти сар.

Функсияҳои лоиҳа

Лоиҳаи нури интеллектуалӣ ба шумо имкон медиҳад, ки равшанӣ ва
ранги LEDs ба таври фосилавӣ тавассути барномаи мобилӣ ё web
интерфейс.

Омодасозии таҷҳизот

Барои омодагӣ ба лоиҳа, шумо бояд ҷамъ кунед
ҷузъҳои сахтафзори зарурӣ, ба монанди ESP32-C3 Wireless
Шӯрои саёҳатҳо, LEDҳо, резисторҳо ва таъминоти барқ.

Раванди рушд

Раванди рушд ташкили рушдро дар бар мегирад
муҳити зист, навиштани код барои назорати LEDs, пайвастшавӣ ба
пуштибонии абрӣ ва санҷиши фаъолияти интеллектуалӣ
нур.

Муқаддима ба ESP RainMaker

ESP RainMaker як чаҳорчӯбаи пурқувват барои рушди IoT мебошад
дастгоҳҳо. Дар ин бахш шумо мефаҳмед, ки ESP RainMaker чист ва
Онро дар лоиҳаҳои шумо чӣ гуна татбиқ кардан мумкин аст.

ESP RainMaker чист?

ESP RainMaker як платформаи абрӣ аст, ки маҷмӯи
асбобҳо ва хидматҳо барои сохтан ва идоракунии дастгоҳҳои IoT.

Татбиқи ESP RainMaker

Ин бахш ҷузъҳои мухталиферо, ки ба онҳо дохил мешаванд, шарҳ медиҳад
татбиқи ESP RainMaker, аз ҷумла хидмати даъво,
Агенти RainMaker, пуштибонии абрӣ ва муштарии RainMaker.

Амал: Нуқтаҳои асосӣ барои таҳия бо ESP RainMaker

Дар ин фасли таҷриба, шумо дар бораи нуктаҳои калидӣ маълумот хоҳед гирифт
ҳангоми таҳияи ESP RainMaker ба назар гиред. Ин дастгоҳро дар бар мегирад
даъво, ҳамоҳангсозии маълумот ва идоракунии корбар.

Хусусиятҳои ESP RainMaker

ESP RainMaker хусусиятҳои гуногунро барои идоракунии корбар пешниҳод мекунад
истифодабарандагон ва маъмурон. Ин хусусиятҳо барои дастгоҳи осон имкон медиҳанд
танзим, идоракунии дурдаст ва назорат.

Муайян кардани муҳити рушд

Ин бахш бартарӣ медиҳадview ESP-IDF (Espressif IoT
Чаҳорчӯбаи рушд), ки чаҳорчӯбаи расмии рушд мебошад
барои дастгоҳҳои асоси ESP32. Он версияҳои гуногуни онро шарҳ медиҳад
ESP-IDF ва чӣ гуна сохтани муҳити рушд.

Таҳияи таҷҳизот ва драйверҳо

Тарҳрезии сахтафзори маҳсулоти Smart Light дар асоси ESP32-C3

Ин бахш ба тарҳрезии сахтафзори нури интеллектуалӣ тамаркуз мекунад
маҳсулот дар асоси Adventure Wireless ESP32-C3. Он фаро мегирад
хусусиятҳо ва таркиби маҳсулоти нури интеллектуалӣ, инчунин
тарҳи сахтафзор системаи асосии ESP32-C3.

Хусусиятҳо ва таркиби маҳсулоти Smart Light

Ин зерфасл хусусиятҳо ва ҷузъҳои онро шарҳ медиҳад
то маҳсулоти нури интеллектуалӣ. Он функсияҳои гуногунро муҳокима мекунад
ва мулоҳизаҳои тарҳрезӣ барои эҷоди чароғҳои интеллектуалӣ.

Тарҳрезии сахтафзори системаи асосии ESP32-C3

Тарҳи сахтафзори системаи асосии ESP32-C3 дорои қувваи барқ ​​аст
таъминот, пайдарпаии фаъолкунӣ, барқароркунии система, флеши SPI, манбаи соат,
ва мулоҳизаҳои RF ва антенна. Ин зерфасл пешбинӣ мекунад
маълумоти муфассал оид ба ин ҷиҳатҳо.

Саволҳои зиёд такрормешуда

Савол: ESP RainMaker чист?

A: ESP RainMaker платформаи абрӣ аст, ки асбобҳоро таъмин мекунад
ва хидматҳо барои сохтан ва идоракунии дастгоҳҳои IoT. Он содда мекунад
раванди таҳия ва имкон медиҳад, ки дастгоҳ осон насб, дурдаст
назорат, назорат.

Савол: Чӣ тавр ман метавонам муҳити рушдро барои
ESP32-C3?

A: Барои таъсиси муҳити таҳия барои ESP32-C3, ба шумо лозим аст
барои насб кардани ESP-IDF (Espressif IoT Development Framework) ва
онро мувофиқи дастурҳои додашуда танзим кунед. ESP-IDF аст
чаҳорчӯбаи расмии таҳияи дастгоҳҳои ESP32.

Савол: Хусусиятҳои ESP RainMaker кадомҳоянд?

A: ESP RainMaker хусусиятҳои гуногун, аз ҷумла корбарро пешниҳод мекунад
идоракунӣ, хусусиятҳои корбари ниҳоӣ ва хусусиятҳои администратор. Идоракунии корбар
барои даъвои осони дастгоҳ ва ҳамоҳангсозии маълумот имкон медиҳад. Истифодабарандаи ниҳоӣ
хусусиятҳо имкон медиҳанд, ки тавассути барномаи мобилӣ ё
web интерфейс. Хусусиятҳои маъмурӣ асбобҳоро барои мониторинги дастгоҳ таъмин мекунанд
ва идоракунй.

Саргузашти бесими ESP32-C3
Дастури мукаммал оид ба IoT
Системаҳои Espressif 12 июни соли 2023

Мундариҷа

I Тайёрй

1

1 Муқаддима ба IoT

3

1.1 Архитектураи IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Барномаи IoT дар хонаҳои интеллектуалӣ. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Муқаддима ва амалияи лоиҳаҳои IoT

9

2.1 Муқаддима ба лоиҳаҳои маъмулии IoT. . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Модулҳои асосӣ барои дастгоҳҳои умумии IoT. . . . . . . . . . . . . . . . . 9

2.1.2 Модулҳои асосии барномаҳои муштарӣ. . . . . . . . . . . . . . . . . . . 10

2.1.3 Муқаддима ба платформаҳои умумии абрии IoT. . . . . . . . . . . . . . 11

2.2 Амал: Лоиҳаи Light Light. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Сохтори лоиҳа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 Вазифаҳои лоиҳа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Омодасозии таҷҳизот. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 Раванди рушд. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Муқаддима ба ESP RainMaker

19

3.1 ESP RainMaker чист? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Амалисозии ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Хадамоти даъво. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 Агенти RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

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

3.2.4 Мизоҷи RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Амал: Нуқтаҳои асосӣ барои таҳия бо ESP RainMaker. . . . . . . . . . . . 25

3.4 Хусусиятҳои ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 Идоракунии корбарон. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 Хусусиятҳои корбари ниҳоӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 Хусусиятҳои маъмурӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Таъсиси муҳити рушд

31

4.1 ESP-IDF гузаштаастview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 Версияҳои ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 Ҷараёни кории ESP-IDF Git. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Интихоби версияи мувофиқ. . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Зиёдаview Феҳристи ESP-IDF SDK . . . . . . . . . . . . . . . . . . . . 34 4.2 Таъсиси муҳити рушди ESP-IDF . . . . . . . . . . . . . . . . . 38 4.2.1 Насб кардани муҳити рушди ESP-IDF дар Linux. . . . . . . . 38 4.2.2 Насб кардани муҳити рушди ESP-IDF дар Windows . . . . . . 40 4.2.3 Танзими муҳити рушди ESP-IDF дар Mac. . . . . . . . . 45 4.2.4 Насбкунии VS Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Муқаддима ба муҳити рушди тарафи сеюм. . . . . . . . 46 4.3 Системаи мураттабсозии ESP-IDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Мафҳумҳои асосии системаи компилятсионӣ. . . . . . . . . . . . . . . . . . 47 4.3.2 Лоиҳа File Сохтор. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Қоидаҳои сохтани пешфарзии системаи компиляция . . . . . . . . . . . . . 50 4.3.4 Муқаддима ба скрипти компилятсионӣ. . . . . . . . . . . . . . . . . . 51 4.3.5 Муқаддима ба Фармонҳои умумӣ. . . . . . . . . . . . . . . . . . . 52 4.4 Амал: Тартиб додани Форсample Барномаи "Миллак". . . . . . . . . . . . . . . . . . 53 4.4.1 Мисample Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Тартиб додани барномаи Blink . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Дурахш задани барномаи мижа. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Таҳлили портҳои силсилавии барномаи Blink. . . . . . . . . . . . . . 60 4.5 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II Таҳияи сахтафзор ва драйверҳо

65

5 Тарҳрезии сахтафзори маҳсулоти Smart Light дар асоси ESP32-C3

67

5.1 Хусусиятҳо ва таркиби маҳсулоти Smart Light. . . . . . . . . . . . . . . 67

5.2 Тарҳрезии сахтафзори системаи асосии ESP32-C3. . . . . . . . . . . . . . . . . . . 70

5.2.1 Таъмини барқ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 Пайдарпайии фаъолкунӣ ва барқароркунии система. . . . . . . . . . . . . . . . . . 74

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

5.2.4 Манбаи соат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 РБ ва Антенна. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 Пайвасткунакҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 Назоратчии GPIO ва PWM. . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Амал: Сохтани системаи равшании интеллектуалӣ бо ESP32-C3. . . . . . . . . . . . . 80

5.3.1 Интихоби модулҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 Танзими GPIO-ҳои сигналҳои PWM. . . . . . . . . . . . . . . . . . . . 82

5.3.3 Зеркашии нармафзор ва интерфейси ислоҳи хатогиҳо. . . . . . . . . . . . 82

5.3.4 Дастур оид ба тарҳрезии RF. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Дастур оид ба тарҳрезии таъминоти барқ. . . . . . . . . . . . . . . . . . . 86 5.4 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Рушди ронандагон

87

6.1 Раванди рушди ронандагон. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 Барномаҳои периферии ESP32-C3. . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 Асосҳои драйвери LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 Фазои рангҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 Ронандаи LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 Кам кардани LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 Муқаддима ба PWM. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 Рушди ронандагии LED Dimming. . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 Нигоҳдории ғайридавлатӣ (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 Назоратчии LED PWM (LEDC). . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 Барномасозии LED PWM. . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 Амал: Илова кардани ронандагон ба лоиҳаи Smart Light. . . . . . . . . . . . . . . . . 103

6.5.1 Ронандаи тугмаҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 Ронандаи хиракунии LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III Алоқа ва назорати бесим

109

7 Конфигуратсия ва пайвасти Wi-Fi

111

7.1 Асосҳои Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Муқаддима ба Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 Эволютсияи IEEE 802.11. . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Консепсияҳои Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Пайвасти Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Асосҳои Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 Муқаддима ба Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 Консепсияҳои Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 Пайвастагии Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Танзимоти шабакаи Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Дастури конфигуратсияи шабакаи Wi-Fi . . . . . . . . . . . . . . . . . . . . 131

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

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

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

7.3.5 Усулҳои дигар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 Барномасозии Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Унсурҳои Wi-Fi дар ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Машқ: Пайвастшавӣ ба Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Машқ: Пайвасти интеллектуалии Wi-Fi. . . . . . . . . . . . . . . . . . . . . 145
7.5 Амал: Конфигуратсияи Wi-Fi дар лоиҳаи Smart Light. . . . . . . . . . . . . . . 156 7.5.1 Пайвасти Wi-Fi дар Лоиҳаи Smart Light. . . . . . . . . . . . . . . . . 156 7.5.2 Конфигуратсияи Smart Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 Назорати маҳаллӣ

159

8.1 Муқаддима ба назорати маҳаллӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 Истифодаи назорати маҳаллӣ. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 Адванtages назорати маҳаллӣ. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 Кашф кардани дастгоҳҳои идорашаванда тавассути смартфонҳо. . . . . . . . . . 161

8.1.4 Алоқаи маълумот байни смартфонҳо ва дастгоҳҳо. . . . . . . . 162

8.2 Усулҳои умумии кашфи маҳаллӣ. . . . . . . . . . . . . . . . . . . . . . . . 162

8.2.1 Пахш. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

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

8.2.3 Муқоисаи байни пахши барномаҳо ва бисёрҷанбаҳо. . . . . . . . . . . . . . 176

8.2.4 Протоколи Multicast Application mDNS барои кашфи маҳаллӣ. . . . . . . . 176

8.3 Протоколҳои умумии муошират барои маълумоти маҳаллӣ. . . . . . . . . . . . . . . 179

8.3.1 Протоколи назорати интиқол (TCP) . . . . . . . . . . . . . . . . . . . 179

8.3.2 Протоколи интиқоли гиперматн (HTTP) . . . . . . . . . . . . . . . . . . . 185

8.3.3 Корбар ДаtagПротоколи ram (UDP). . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 Протоколи дархости маҳдуд (CoAP) . . . . . . . . . . . . . . . . 192

8.3.5 Протоколи Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3.6 Хулосаи протоколҳои иртиботи маълумот. . . . . . . . . . . . . . . 203

8.4 Кафолати амнияти маълумот. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 Муқаддима ба амнияти қабати нақлиёт (TLS) . . . . . . . . . . . . . 207

8.4.2 Муқаддима ба ДаtagАмнияти қабати интиқоли ram (DTLS). . . . . . . 213

8.5 Амал: Назорати маҳаллӣ дар лоиҳаи Smart Light. . . . . . . . . . . . . . . . . . 217

8.5.1 Эҷоди сервери назорати маҳаллӣ дар асоси Wi-Fi . . . . . . . . . . . . . . . 217

8.5.2 Санҷиши функсияҳои идоракунии маҳаллӣ бо истифода аз скриптҳо. . . . . . . . . . . 221

8.5.3 Эҷоди сервери идоракунии маҳаллӣ дар асоси Bluetooth . . . . . . . . . . . . 222

8.6 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9 Назорати абрӣ

225

9.1 Муқаддима ба идоракунии дурдаст. . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 Протоколҳои иртиботи абрии маълумот. . . . . . . . . . . . . . . . . . . . . . 226

9.2.1 Муқаддимаи MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 Принсипҳои MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 Формати паёми MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Муқоисаи протокол. . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Насб кардани брокери MQTT дар Linux ва Windows. . . . . . . . . . . . 233 9.2.6 Насб кардани муштарии MQTT дар асоси ESP-IDF . . . . . . . . . . . . . . . . 235 9.3 Таъмини амнияти маълумоти MQTT. . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Маъно ва вазифаи сертификатҳо. . . . . . . . . . . . . . . . . . . 237 9.3.2 Ташкили сертификатҳо ба таври маҳаллӣ. . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Танзими брокери MQTT. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Танзими муштарии MQTT. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Амал: Идоракунии дурдаст тавассути ESP RainMaker. . . . . . . . . . . . . . . . 243 9.4.1 Асосҳои ESP RainMaker. . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Протоколи иртиботи гиреҳ ва абрии пушти сар. . . . . . . . . . . 244 9.4.3 Муошират байни мизоҷ ва пушти абрӣ. . . . . . . . . . . 249 9.4.4 Нақшҳои корбар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Хидматҳои асосӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Exampле. . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 Барномаҳои RainMaker ва ҳамгироии ҷонибҳои сеюм. . . . . . . . . . . . . . . 262 9.5 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 Таҳияи Барномаҳои Смартфон

269

10.1 Муқаддима ба таҳияи барномаҳои смартфон. . . . . . . . . . . . . . . . . . 269

10.1.1 Бештарview таҳияи Барномаҳои Смартфон. . . . . . . . . . . . . . . 270

10.1.2 Сохтори лоиҳаи Android. . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 Сохтори лоиҳаи iOS. . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Давраи ҳаёти фаъолияти Android. . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 Давраи ҳаёти iOS ViewНазоратчӣ. . . . . . . . . . . . . . . . . . . . . . 273

10.2 Эҷоди лоиҳаи нави барномаи Смартфон. . . . . . . . . . . . . . . . . . . . . 275

10.2.1 Омодагӣ ба таҳияи Android. . . . . . . . . . . . . . . . . . . 275

10.2.2 Эҷоди лоиҳаи нави Android. . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 Илова кардани вобастагӣ барои MyRainmaker. . . . . . . . . . . . . . . . . 276

10.2.4 Дархости иҷозат дар Android. . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 Омодагӣ барои таҳияи iOS . . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 Эҷоди лоиҳаи нави iOS. . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 Илова кардани вобастагӣ барои MyRainmaker. . . . . . . . . . . . . . . . . 279

10.2.8 Дархости иҷозат дар iOS. . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 Таҳлили талаботи функсионалии барнома. . . . . . . . . . . . . . . . . . 281

10.3.1 Таҳлили талаботи функсионалии лоиҳа. . . . . . . . . . . . 282

10.3.2 Таҳлили талаботи идоракунии корбарон. . . . . . . . . . . . . . . 282 10.3.3 Таҳлили талаботи таъмини дастгоҳ ва ҳатмӣ. . . . . . . 283 10.3.4 Таҳлили талаботҳои идоракунии дурдаст . . . . . . . . . . . . . . . . 283 10.3.5 Таҳлили талаботи банақшагирӣ. . . . . . . . . . . . . . . . . . . 284 10.3.6 Таҳлили талаботи Маркази корбарон. . . . . . . . . . . . . . . . . . 285 10.4 Рушди идоракунии корбарон. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 Муқаддима ба API-ҳои RainMaker. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Оғози муошират тавассути смартфон. . . . . . . . . . . . . . . . 286 10.4.3 Бақайдгирии ҳисоб. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Воридшавӣ ба ҳисоб . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Таҳияи таъминоти дастгоҳ. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Дастгоҳҳои сканкунӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Пайваст кардани дастгоҳҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Эҷоди калидҳои махфӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Гирифтани ID гиреҳ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Дастгоҳҳои таъминотӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Таҳияи назорати дастгоҳ. . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Пайваст кардани дастгоҳҳо ба ҳисобҳои абрӣ. . . . . . . . . . . . . . . . . . . . 303 10.6.2 Гирифтани рӯйхати дастгоҳҳо. . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Гирифтани ҳолати дастгоҳ. . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Тағйир додани ҳолати дастгоҳ. . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Таҳияи Маркази банақшагирӣ ва корбар. . . . . . . . . . . . . . . . . . . 313 10.7.1 Иҷрои вазифаи банақшагирӣ. . . . . . . . . . . . . . . . . . . . 313 10.7.2 Амалисозии Маркази корбар . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 APIҳои абрии бештар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 Навсозии нармафзор ва идоракунии версия

321

11.1 Навсозии нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 Бештарview Ҷадвалҳои тақсимкунӣ. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 Раванди боркунии нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 Бештарview Механизми OTA. . . . . . . . . . . . . . . . . . . . . 326

11.2 Идоракунии версияи нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 Нишондиҳии нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 Бозгашт ва зидди бозгашт. . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 Амал: Ҳаво (OTA) Мисampле. . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 Навсозии нармафзор тавассути хости маҳаллӣ. . . . . . . . . . . . . . . . . 332

11.3.2 Навсозии нармафзор тавассути ESP RainMaker. . . . . . . . . . . . . . . 335

11.4 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

IV оптимизатсия ва истеҳсоли оммавӣ

343

12 Идоракунии қувваи барқ ​​ва оптимизатсияи қувваи кам

345

12.1 Идоракунии нерӯи ESP32-C3. . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 Миқёси басомади динамикӣ. . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 Танзимоти идоракунии нерӯ. . . . . . . . . . . . . . . . . . . . 348

12.2 Ҳолати камқуввати ESP32-C3. . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

12.2.1 Ҳолати хоби модем. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12.2.2 Ҳолати хоби сабук. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 Ҳолати хоби амиқ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 Истеъмоли ҷорӣ дар режимҳои гуногуни нерӯи барқ. . . . . . . . . . . . . 358

12.3 Идоракунии нерӯ ва ислоҳи камқувват. . . . . . . . . . . . . . . . . 359

12.3.1 Барқарорсозии гузоришҳо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

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

12.4 Амал: Идоракунии нерӯ дар лоиҳаи Smart Light. . . . . . . . . . . . . . . 363

12.4.1 Танзими хусусияти идоракунии нерӯ. . . . . . . . . . . . . . . . . 364

12.4.2 Қулфҳои идоракунии нерӯро истифода баред. . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 Санҷиши масрафи қувваи барқ. . . . . . . . . . . . . . . . . . . . . . . 366

12.5 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 Хусусиятҳои мукаммали амнияти дастгоҳ

369

13.1 Бештарview Амнияти маълумоти IoT дастгоҳ. . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 Чаро эмин кардани маълумоти дастгоҳи IoT? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 Талаботи асосӣ барои амнияти иттилооти дастгоҳи IoT. . . . . . . . . . . . 371

13.2 Ҳифзи тамомияти маълумот. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

13.2.1 Муқаддима ба усули тафтиши якпорчагӣ. . . . . . . . . . . . . . 372

13.2.2 Санҷиши якпорчагии маълумотҳои нармафзори миёнаравӣ. . . . . . . . . . . . . . . . . . 373

13.2.3 Мисолampле. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3 Ҳимояи махфияти маълумот. . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3.1 Муқаддима ба рамзгузории маълумот. . . . . . . . . . . . . . . . . . . . . . 374

13.3.2 Муқаддима ба схемаи рамзгузории Flash. . . . . . . . . . . . . . . . . 376

13.3.3 Захираи калидҳои рамзгузории Flash. . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 Усули кории рамзгузории Flash. . . . . . . . . . . . . . . . . . . . 380

13.3.5 Раванди рамзгузории Flash. . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 Муқаддима ба рамзгузории NVS. . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 МисолampFlash Encryption ва NVS Encryption. . . . . . . . . . . 384

13.4 Ҳифзи қонунии маълумот. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 Муқаддима ба имзои рақамӣ. . . . . . . . . . . . . . . . . . . . . 386

13.4.2 Бештарview Схемаи пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . 388

13.4.3 Муқаддима ба нармафзори пурборкунии бехатар. . . . . . . . . . . . . . . . . . . 388 13.4.4 Муқаддима ба сахтафзор пурборкунии бехатар . . . . . . . . . . . . . . . . . . 390 13.4.5 Мисamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Амал: Хусусиятҳои амниятӣ дар истеҳсолоти оммавӣ. . . . . . . . . . . . . . . . . . 396 13.5.1 Рамзгузории Flash ва пурборкунии бехатар. . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Фаъолсозии рамзгузории Flash ва пурборкунии бехатар бо абзорҳои партияи Flash. . 397 13.5.3 Фаъолсозии рамзгузории Flash ва пурборкунии бехатар дар лоиҳаи Smart Light. . . 398 13.6 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 Сӯзондан ва озмоиши нармафзор барои истеҳсоли оммавӣ

399

14.1 Сӯхтани нармафзор дар истеҳсоли оммавӣ. . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 Муайян кардани қисмҳои додаҳо. . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 Сӯхтани нармафзор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 Санҷиши истеҳсоли оммавӣ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 Амал: Маълумот оид ба истеҳсоли оммавӣ дар лоиҳаи Smart Light. . . . . . . . . . . . . 404

14.4 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 Insights ESP: Платформаи мониторинги дурдаст

405

15.1 Муқаддима ба ESP Insights. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 Оғози кор бо ESP Insights. . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 Оғози кор бо ESP Insights дар лоиҳаи esp-insights . . . . . . 409

15.2.2 Давидан Example дар Лоиҳаи esp-Insights. . . . . . . . . . . . . . . 411

15.2.3 Гузориши иттилооти Coredump. . . . . . . . . . . . . . . . . . . . . 411

15.2.4 Мутобиқсозии гузоришҳои таваҷҷӯҳ. . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 Гузориш дар бораи азнавборкунӣ. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 Гузориши метрикаи фармоишӣ. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 Амал: Истифодаи ESP Insights дар лоиҳаи Smart Light. . . . . . . . . . . . . . . 416

15.4 Хулоса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

Муқаддима
ESP32-C3 як ядроии Wi-Fi ва Bluetooth 5 (LE) микроконтроллерҳои SoC мебошад, ки ба меъмории кушодаи RISC-V асос ёфтааст. Он мувозинати дурусти нерӯ, қобилиятҳои вуруд / баромад ва амниятро ба вуҷуд меорад ва ба ин васила ҳалли оптималии камхарҷро барои дастгоҳҳои пайвастшуда пешниҳод мекунад. Барои нишон додани замимаҳои гуногуни оилаи ESP32-C3, ин китоби Espressif шуморо ба саёҳати ҷолиб тавассути AIoT, аз асосҳои таҳияи лоиҳаи IoT ва танзими муҳити зист сар карда то таҷрибаи амалӣ мебарад.amples. Дар чор боби аввал дар бораи IoT, ESP RainMaker ва ESP-IDF сухан меравад. Бобҳои 5 ва 6 мухтасар дар бораи тарҳрезии сахтафзор ва таҳияи драйверҳо. Ҳангоми пешрафт, шумо хоҳед фаҳмид, ки чӣ гуна лоиҳаи худро тавассути шабакаҳои Wi-Fi ва Барномаҳои мобилӣ танзим кунед. Ниҳоят, шумо оптимизатсия кардани лоиҳаи худро меомӯзед ва онро ба истеҳсоли оммавӣ гузоред.
Агар шумо муҳандис дар соҳаҳои дахлдор, меъмори нармафзор, муаллим, донишҷӯ ё касе бошед, ки ба IoT таваҷҷӯҳ дорад, ин китоб барои шумост.
Шумо метавонед рамзи собиқро зеркашӣ кунедample дар ин китоб аз сайти Espressif дар GitHub истифода шудааст. Барои маълумоти охирин дар бораи рушди IoT, лутфан ҳисоби расмии моро пайгирӣ кунед.

Сарсухан
Ҷаҳони иттилоотӣ
Дар мавҷи Интернет савор шуда, Internet of Things (IoT) аввалин намуди бузурги инфрасохтор дар иқтисоди рақамӣ гардид. Барои наздик кардани технология ба омма, Espressif Systems барои он кор мекунад, ки таҳиягарон аз тамоми қишрҳои ҳаёт метавонанд IoT-ро барои ҳалли баъзе мушкилоти мубрами замони мо истифода баранд. Ҷаҳони "Шабакаи интеллектуалии ҳама чиз" он чизест, ки мо аз оянда интизор ҳастем.
Тарҳрезии микросхемаҳои шахсии мо ҷузъи муҳими ин бинишро ташкил медиҳад. Ин як марафон аст, ки пешрафтҳои доимиро бар зидди сарҳадҳои технологӣ талаб мекунад. Аз "Тағйирдиҳандаи бозӣ" ESP8266 то силсилаи ESP32, ки пайвасти Wi-Fi ва Bluetoothr (LE) -ро муттаҳид мекунад ва пас аз ESP32-S3, ки бо суръатбахшии AI муҷаҳҳаз шудааст, Espressif ҳеҷ гоҳ таҳқиқот ва таҳияи маҳсулотро барои ҳалли AIoT қатъ намекунад. Бо нармафзори кушодаи мо, аз қабили IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF ва Platform Connectivity Device ESP RainMaker, мо чаҳорчӯбаи мустақилро барои сохтани барномаҳои AIoT эҷод кардем.
То моҳи июли соли 2022, интиқоли маҷмӯии чипсетҳои IoT-и Espressif аз 800 миллион гузашт, ки дар бозори Wi-Fi MCU пешсаф аст ва шумораи зиёди дастгоҳҳои пайвастшуда дар саросари ҷаҳонро фаъол мекунад. Ҷустуҷӯ барои аълосифат ҳар як маҳсулоти Espressif-ро барои сатҳи баланди ҳамгироӣ ва самаранокии хароҷот як зарбаи бузург мегардонад. Нашри ESP32-C3 як марҳилаи муҳими технологияи худи Espressif мебошад. Он як ядроӣ, 32-бит, RISC-V дар асоси MCU бо 400 КБ SRAM мебошад, ки метавонад дар 160 МГс кор кунад. Он 2.4 ГГц Wi-Fi ва Bluetooth 5 (LE) -ро бо дастгирии дурдаст муттаҳид кардааст. Он мувозинати хуби нерӯ, қобилиятҳои вуруд / баромад ва амниятро ба вуҷуд меорад ва ҳамин тариқ ҳалли оптималии камхарҷро барои дастгоҳҳои пайвастшуда пешниҳод мекунад. Дар асоси чунин пурқудрати ESP32-C3, ин китоб барои кӯмак расонидан ба хонандагон дар фаҳмидани донишҳои марбут ба IoT бо тасвири муфассал ва таҷрибаи амалӣ пешбинӣ шудааст.amples.
Чаро мо ин китобро навиштем?
Espressif Systems is more than a semiconductor company. It is also an IoT platform company, which always strives for breakthroughs and innovations in the field of technology. At the same time, Espressif has open-sourced and shared its self-developed operating system and software framework with the community, forming a unique ecosystem. Engineers, makers, and technology enthusiasts actively develop new software applications based on Espressif’s products, freely communicate, and share their experience. You can see developers’ fascinating ideas on various platforms all the time, such as YouTube and GitHub. The popularity of Espressif’s products has stimulated an increasing number of authors who have produced over 100 books based on Espressif chipsets, in more than ten languages, including English, Chinese, German, French, and Japanese.

Ин дастгирӣ ва эътимоди шарикони ҷомеа аст, ки навовариҳои пайвастаи Espressif-ро ҳавасманд мекунад. "Мо мекӯшем, ки чипҳо, системаҳои амалиётӣ, чаҳорчӯбаҳо, роҳҳои ҳалли абрӣ, таҷрибаҳои тиҷоратӣ, асбобҳо, ҳуҷҷатҳо, навиштаҳо, ғояҳо ва ғайраро ба ҷавобҳое, ки одамон дар мушкилоти мубрами ҳаёти муосир ниёз доранд, бештар мувофиқ созем. Ин баландтарин шӯҳратпарастӣ ва қутбнамои ахлоқии Espressif аст." гуфт ҷаноби Тео Сви Энн, муассис ва директори ширкати Espressif.
Espressif хондан ва ғояҳоро қадр мекунад. Азбаски такмили пайвастаи технологияи IoT дар назди муҳандисон талаботи баландтар мегузорад, чӣ гуна мо метавонем ба бештари одамон барои зуд азхуд кардани чипҳои IoT, системаҳои амалиётӣ, чаҳорчӯбаи нармафзор, схемаҳои барномавӣ ва маҳсулоти хидматрасонии абрӣ кӯмак расонем? Чунон ки дар урфият мегуянд, ба одам мохй додан бехтар аст аз додани мохй мохиро ёд додан. Дар як ҷаласаи ҳамлаи мағзи сар ба мо чунин омад, ки мо метавонем китобе нависем, то донишҳои калидии рушди IoT-ро мунтазам ҷудо кунем. Мо онро ба кор бурдем, зуд як гурӯҳи муҳандисони калонро ҷамъ овардем ва таҷрибаи дастаи техникӣ дар барномасозии воридшуда, сахтафзори IoT ва нармафзорро муттаҳид кардем, ки ҳама дар нашри ин китоб саҳм гузоштанд. Мо дар чараёни навиштан кушиш мекардем, ки холисона ва одилона бошем, аз пилла канда шуда, бо иборахои мухтасар мураккаб ва дилрабоии интернети ашёро баён кунем. Мо саволҳои умумиро бодиққат ҷамъбаст карда, ба фикру мулоҳизаҳо ва пешниҳодҳои ҷомеа муроҷиат кардем, то ба саволҳои дар раванди рушд дучоршуда ҷавоб диҳем ва дастурҳои амалии рушди IoT-ро барои техникҳо ва тасмимгирандагони дахлдор пешниҳод кунем.
Сохтори китоб
Ин китоб дурнамои муҳандисро дар бар мегирад ва донишҳои заруриро барои таҳияи лоиҳаи IoT зина ба зина баён мекунад. Он аз чаҳор қисм иборат аст, ба таври зерин:
· Омодагӣ (боби 1): Ин қисм меъмории IoT, чаҳорчӯбаи маъмулии лоиҳаи IoT, платформаи абрии ESP RainMakerr ва муҳити таҳияи ESP-IDF-ро муаррифӣ мекунад, то барои таҳияи лоиҳаи IoT заминаи мустаҳкам гузорад.
· Таҳияи сахтафзор ва драйверҳо (Боби 5): Дар асоси чипсети ESP6-C32, ин қисм ҳадди ақали системаи сахтафзор ва таҳияи драйверро муфассал шарҳ медиҳад ва назорати хиракунӣ, баҳодиҳии рангҳо ва иртиботи бесимро амалӣ мекунад.
· Алоқа ва идоракунии бесим (Боби 7): Ин қисм нақшаи конфигуратсияи интеллектуалии Wi-Fi-ро дар асоси чипи ESP11-C32, протоколҳои назорати маҳаллӣ ва абрӣ ва назорати маҳаллӣ ва дурдасти дастгоҳҳо шарҳ медиҳад. Он инчунин схемаҳоро барои таҳияи барномаҳои смартфон, навсозии нармафзор ва идоракунии версия пешниҳод мекунад.
· Оптимизатсия ва истеҳсоли оммавӣ (боби 12-15): Ин қисм барои барномаҳои пешрафтаи IoT пешбинӣ шудааст, ки ба оптимизатсияи маҳсулот дар идоракунии нерӯ, оптимизатсияи қувваи кам ва амнияти мукаммал нигаронида шудааст. Он инчунин сӯзондан ва озмоиши нармафзорро дар истеҳсоли оммавӣ муаррифӣ мекунад ва чӣ гуна ташхис кардани ҳолати кор ва сабтҳои нармафзори дастгоҳро тавассути платформаи мониторинги дурдасти ESP Insights муаррифӣ мекунад.

Дар бораи Кодекси манбаъ
Хонандагон метавонанд собиқро иҷро кунандampбарномаҳои le дар ин китоб, ё тавассути ворид кардани код дастӣ ё бо истифода аз рамзи сарчашма, ки ҳамроҳи китоб. Мо ба омезиши назария ва амалия таъкид менамоем ва аз ин рӯ, қариб дар ҳар боб як бахши Амалиро дар асоси лоиҳаи Smart Light муқаррар мекунем. Ҳама рамзҳо сарчашмаи кушода мебошанд. Хонандагон метавонанд рамзи сарчашмаро зеркашӣ кунанд ва онро дар бахшҳои марбут ба ин китоб дар GitHub ва форуми расмии мо esp32.com муҳокима кунанд. Рамзи кушодаи ин китоб ба шартҳои Литсензияи Apache 2.0 тобеъ аст.
Ёддошти муаллиф
Ин китоб расман аз ҷониби Espressif Systems истеҳсол шудааст ва аз ҷониби муҳандисони калони ширкат навишта шудааст. Он барои менеҷерҳо ва кормандони R&D дар соҳаҳои марбут ба IoT, муаллимон ва донишҷӯёни ихтисосҳои алоқаманд ва дӯстдорони соҳаи Интернети ашё мувофиқ аст. Умедворем, ки ин китоб метавонад ҳамчун дастури корӣ, маълумотнома ва китоби назди бистар хизмат кунад, то ҳамчун мураббии хуб ва дӯсти хуб бошад.
Зимни таълифи ин китоб мо ба баъзе натоиҷи пажӯҳишҳои дахлдори коршиносон, донишмандон ва техникҳо дар дохил ва хориҷи кишвар истинод кардем ва тамоми талошро ба харҷ додем, ки онҳоро аз рӯи меъёрҳои илмӣ истинод кунем. Вале ногузир аст, ки баъ-зе норасоихо чой дошта бошанд, аз ин ру, дар ин чо мехохем эхтироми амик ва миннатдории худро ба хамаи муаллифони дахлдор баён кунем. Илова бар ин, мо маълумотро аз интернет иқтибос овардаем, аз ин рӯ ба муаллифон ва ноширони аслӣ изҳори сипос мекунем ва узр мехоҳем, ки наметавонем манбаи ҳар як хабарро нишон диҳем.
Барои таҳияи китоби баландсифат, мо давраҳои баҳсҳои дохилӣ ташкил кардем ва аз пешниҳодҳо ва фикру мулоҳизаҳои хонандагони озмоишӣ ва муҳаррирони нашриёт фаҳмидем. Дар ин ҷо, мо мехоҳем бори дигар ба шумо барои кӯмакатон, ки ҳама дар ин кори муваффақ саҳм гузоштанд, ташаккур гӯем.
Ниҳоят, вале муҳимтар аз ҳама, ташаккур ба ҳама дар Espressif, ки барои тавлид ва маъруфияти маҳсулоти мо заҳмат кашидааст.
Таҳияи лоиҳаҳои IoT доираи васеи донишҳоро дар бар мегирад. Маҳдуд будани ҳаҷми китоб, инчунин сатҳ ва таҷрибаи муаллиф, камбудиҳо ногузиранд. Аз ин рӯ, аз коршиносон ва хонандагон хоҳиш мекунем, ки хатоҳои моро интиқод ва ислоҳ кунанд. Агар шумо барои ин китоб ягон пешниҳоде дошта бошед, лутфан бо мо дар тамос шавед book@espressif.com. Мо бесаброна фикру мулоҳизаҳои шуморо интизорем.

Чӣ тавр истифода бурдани ин китоб?
Рамзи лоиҳаҳои ин китоб сарчашмаи кушода шудааст. Шумо метавонед онро аз анбори GitHub-и мо зеркашӣ кунед ва фикру саволҳои худро дар форуми расмии мо мубодила кунед. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Форум: https://www.esp32.com/bookc3 Дар тамоми китоб қисмҳое ҳастанд, ки дар зер нишон дода шудаанд.
Рамзи манбаъ Дар ин китоб мо омезиши назария ва амалияро таъкид мекунем ва аз ин рӯ, қариб дар ҳар боб як бахши Амалиро дар бораи лоиҳаи Smart Light муқаррар мекунем. Қадамҳои мувофиқ ва саҳифаи манбаъ дар байни ду сатр сар карда мешавад tag Рамзи манбаъ.
ЭЗОҲ/МАСЛИҲАТ Дар ин ҷо шумо метавонед маълумоти муҳим ва ёдраскуниро барои ислоҳи бомуваффақияти барномаи худ пайдо кунед. Онҳо дар байни ду хати ғафс сар карда, ишора карда мешаванд tag ЭЗОҲ ё МАСЛИҲАТ.
Аксари фармонҳои ин китоб дар зери Linux иҷро мешаванд, ки бо аломати "$" дархост карда мешавад. Агар фармон барои иҷро имтиёзҳои суперкорбарро талаб кунад, дархост бо "#" иваз карда мешавад. Сатри фармон дар системаҳои Mac "%" аст, тавре ки дар фасли 4.2.3 Насб кардани ESP-IDF дар Mac истифода шудааст.
Матни асосии ин китоб дар Оиннома чоп карда мешавад, дар ҳоле ки рамзи собиқampLes, ҷузъҳо, функсияҳо, тағирёбандаҳо, код file номҳо, каталогҳои кодҳо ва сатрҳо дар Courier New хоҳанд буд.
Фармонҳо ё матнҳое, ки бояд аз ҷониби корбар ворид карда шаванд ва фармонҳое, ки тавассути пахш кардани тугмаи "Enter" ворид карда мешаванд, бо ранги Courier New ғафс чоп карда мешаванд. Гузоришҳо ва блокҳои рамзӣ дар қуттиҳои кабуди равшан пешниҳод карда мешаванд.
Exampле:
Дуюм, esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py -ро барои тавлиди бинарии тақсимоти NVS истифода баред file дар мизбони таҳия бо фармони зерин:
$ python $IDF PATH/components/nvs flash/nvs partition generator/nvs partition gen.py –prod mass input.csv –output mass prod.bin –андоза NVS PARTITION SIZE

Боби 1

Муқаддима

ба

IoT

Дар охири асри 20, бо афзоиши шабакаҳои компютерӣ ва технологияҳои коммуникатсионӣ, Интернет босуръат ба ҳаёти одамон ворид шуд. Вақте ки технологияи интернет ба камолот идома дорад, идеяи Интернети ашё (IoT) ба вуҷуд омад. Аслан, IoT маънои интернетест, ки дар он чизҳо пайвастанд. Дар ҳоле ки Интернети аслӣ маҳдудиятҳои фазо ва вақтро мешиканад ва масофаи байни "шахс ва шахсро танг мекунад", IoT "чизҳо" -ро як иштирокчии муҳим мегардонад ва "одамҳо" ва "чизҳоро" ба ҳам наздик мекунад. Дар ояндаи наздик IoT ба нерӯи пешбарандаи саноати иттилоот табдил меёбад.
Пас, Интернети ашё чист?
Муайян кардани Интернети ашё душвор аст, зеро маъно ва доираи он доимо инкишоф меёбанд. Дар соли 1995, Билл Гейтс бори аввал идеяи IoT-ро дар китоби худ "Роҳ ба пеш" овард. Оддӣ карда гӯем, IoT ба объектҳо имкон медиҳад, ки тавассути Интернет бо ҳамдигар маълумот мубодила кунанд. Ҳадафи ниҳоии он таъсиси "Интернети ҳама чиз" аст. Ин тафсири барвақти IoT ва инчунин фантазияи технологияи оянда аст. Пас аз XNUMX сол, бо суръати тез тараккй кардани иктисодиёт ва техника хаёл ба амал меояд. Аз дастгоҳҳои интеллектуалӣ, хонаҳои интеллектуалӣ, шаҳрҳои интеллектуалӣ, Интернети мошинҳо ва дастгоҳҳои фарсуда то "метавера", ки аз ҷониби технологияҳои IoT дастгирӣ мешаванд, консепсияҳои нав доимо пайдо мешаванд. Дар ин боб, мо бо шарҳи меъмории Интернети ашё оғоз мекунем ва сипас маъмултарин барномаи IoT - хонаи интеллектуалиро муаррифӣ мекунем, то ба шумо дар бораи IoT дарки равшан пайдо кунед.
1.1 Архитектураи IoT
Интернети ашё технологияҳои сершуморро дар бар мегирад, ки ниёзҳо ва шаклҳои гуногуни татбиқро дар соҳаҳои гуногун доранд. Барои ҷудо кардани сохтор, технологияҳои асосӣ ва хусусиятҳои татбиқи IoT, бояд як меъмории ягона ва системаи стандартии техникӣ таъсис дода шавад. Дар ин китоб меъмории IoT танҳо ба чаҳор қабат тақсим шудааст: қабати дарк ва назорат, қабати шабака, қабати платформа ва қабати барнома.
Қабати дарк ва назорат Ҳамчун унсури асосии меъмории IoT, қабати дарк ва назорат барои амалӣ кардани ҳассосияти ҳамаҷонибаи IoT мебошад. Вазифаи асосии он ҷамъоварӣ, муайян ва назорати иттилоот мебошад. Он аз дастгоҳҳои гуногун бо қобилияти дарк,
3

муайянкунӣ, назорат ва иҷро ва барои дарёфт ва таҳлили маълумот ба монанди хосиятҳои моддӣ, тамоюлҳои рафтор ва ҳолати дастгоҳ масъул аст. Бо ин роҳ, IoT ҷаҳони воқеии ҷисмониро эътироф мекунад. Ғайр аз он, қабат инчунин метавонад ҳолати дастгоҳро назорат кунад.
Дастгоҳҳои маъмултарини ин қабат сенсорҳои гуногун мебошанд, ки дар ҷамъоварӣ ва муайян кардани иттилоот нақши муҳим доранд. Датчикҳо ба узвҳои ҳассосии инсон монанданд, ба монанди сенсорҳои ҳассос ба рӯшноӣ, сенсорҳои акустикӣ барои шунавоӣ, сенсорҳои газ барои бӯй ва сенсорҳои ба фишор ва ҳарорат ҳассос ба ламс. Бо ҳамаи ин «узвҳои ҳиссиёт» ашёҳо «зинда» мешаванд ва қобилияти дарки оқилона, шинохтан ва идора кардани олами ҷисмонӣ мешаванд.
Қабати шабака Вазифаи асосии қабати шабака интиқоли иттилоот, аз ҷумла маълумоте, ки аз қабати дарк ва идоракунӣ ба ҳадафи муайян гирифта шудааст, инчунин фармонҳое, ки аз қабати барномавӣ ба қабати дарк ва назорат дода мешаванд, мебошад. Он ҳамчун пули муҳими иртиботӣ хидмат мекунад, ки қабатҳои гуногуни системаи IoT-ро мепайвандад. Барои таъсиси модели асосии Интернети ашё, он ду марҳиларо барои ҳамгироии объектҳо ба шабака дарбар мегирад: дастрасӣ ба Интернет ва интиқол тавассути Интернет.
Дастрасӣ ба Интернет ба Интернет имкон медиҳад, ки байни шахс ва шахс робитаи мутақобила дошта бошад, аммо чизҳоро ба оилаи калон дохил карда наметавонад. Пеш аз пайдоиши IoT, аксари чизҳо "шабака қобили истифода" набуданд. Ба шарофати рушди пайвастаи технология, IoT идора мекунад, ки чизҳоро ба Интернет пайваст кунад ва ба ин васила робитаи мутақобилан байни "одамҳо ва чизҳо" ва "чизҳо ва ашё" -ро амалӣ созад. Ду роҳи маъмули татбиқи пайвастшавӣ ба Интернет вуҷуд дорад: дастрасии шабакаи симӣ ва дастрасии шабакаи бесим.
Усулҳои дастрасии шабакаи симӣ Ethernet, иртиботи пайдарпай (масалан, RS-232, RS-485) ва USB-ро дар бар мегиранд, дар ҳоле ки дастрасии шабакаи бесим аз иртиботи бесим вобаста аст, ки минбаъд метавон ба алоқаи бесими кӯтоҳмуддат ва алоқаи бесими дароз тақсим кард.
Алоқаи бесими кӯтоҳмуддати ZigBee, Bluetoothr, Wi-Fi, алоқаи наздик (NFC) ва муайянкунии басомади радио (RFID) иборат аст. Алоқаи бесими дурдаст дорои алоқаи мукаммали навъи мошин (eMTC), LoRa, Интернети танги ашё (NB-IoT), 2G, 3G, 4G, 5G ва ғайраҳоро дар бар мегирад.
Интиқол тавассути Интернет. Усулҳои гуногуни дастрасии интернет ба пайванди мувофиқи интиқоли физикии маълумот оварда мерасонанд. Чизи навбатӣ ин қарор аст, ки кадом протоколи алоқа барои интиқоли маълумот истифода шавад. Дар муқоиса бо терминалҳои интернетӣ, аксари терминалҳои IoT дар айни замон камтаранд
4 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

захираҳои мавҷуда, ба монанди иҷрои коркард, иқтидори нигоҳдорӣ, суръати шабака ва ғайра, аз ин рӯ бояд протоколи иртиботиро интихоб кард, ки дар замимаҳои IoT захираҳои камтарро ишғол кунад. Ду протоколи иртиботӣ мавҷуданд, ки имрӯз васеъ истифода мешаванд: Message Queuing Telemetry Transport (MQTT) ва Protocol Application Constrained Application (CoAP).
Қабати платформаи қабати платформа асосан ба платформаҳои абрии IoT дахл дорад. Вақте ки ҳамаи терминалҳои IoT ба шабака пайваст карда мешаванд, маълумоти онҳо бояд дар платформаи абрии IoT ҷамъ карда шаванд, то ҳисоб ва нигоҳ дошта шаванд. Қабати платформа асосан барномаҳои IoT-ро барои осон кардани дастрасӣ ва идоракунии дастгоҳҳои азим дастгирӣ мекунад. Он терминалҳои IoT-ро ба платформаи абр мепайвандад, маълумоти терминалро ҷамъоварӣ мекунад ва ба терминалҳо фармон медиҳад, то идоракунии дурдастро амалӣ созад. Ҳамчун хидмати мобайнӣ барои таъини таҷҳизот ба барномаҳои саноатӣ, қабати платформа дар тамоми меъмории IoT нақши пайвасткунандаро мебозад, ки мантиқи абстрактии бизнес ва модели стандартии додаҳои асосиро дорад, ки на танҳо дастрасии босуръати дастгоҳҳоро амалӣ карда метавонад, балки инчунин қобилиятҳои пурқуввати модулиро таъмин кунад. барои қонеъ кардани ниёзҳои гуногун дар сенарияҳои татбиқи саноат. Қабати платформа асосан модулҳои функсионалӣ, аз қабили дастрасии дастгоҳ, идоракунии дастгоҳ, идоракунии амният, иртиботи паёмҳо, мониторинги амалиёт ва нигоҳдорӣ ва барномаҳои додаиро дар бар мегирад.
· Дастрасии дастгоҳ, амалӣ кардани пайвастшавӣ ва иртибот байни терминалҳо ва платформаҳои абрии IoT.
· Идоракунии дастгоҳ, аз ҷумла вазифаҳо ба монанди эҷоди дастгоҳ, нигоҳдории дастгоҳ, табдили додаҳо, ҳамоҳангсозии додаҳо ва тақсимоти дастгоҳ.
· Идоракунии амният, таъмини амнияти интиқоли додаҳои IoT аз нуқтаи назари аутентификатсияи амният ва амнияти коммуникатсионӣ.
· Муоширати паёмҳо, аз ҷумла се самти интиқол, яъне терминал маълумотро ба платформаи абрии IoT мефиристад, платформаи абрии IoT маълумотро ба тарафи сервер ё дигар платформаҳои абрии IoT мефиристад ва тарафи сервер дастгоҳҳои IoT-ро аз фосилаи дур назорат мекунад.
· Мониторинги O&M, бо дарназардошти мониторинг ва ташхис, навсозии нармафзор, ислоҳи онлайн, хидматрасонии сабт ва ғайра.
· Барномаҳои додаҳо, ки нигоҳдорӣ, таҳлил ва татбиқи додаҳоро дар бар мегиранд.
Қабати барнома Қабати барнома маълумотро аз қабати платформа барои идоракунии барнома, филтр ва коркарди онҳо бо абзорҳо ба монанди пойгоҳи додаҳо ва нармафзори таҳлилӣ истифода мебарад. Маълумоти натиҷавӣ метавонад барои барномаҳои воқеии IoT, аз қабили тандурустӣ, кишоварзии оқилона, хонаҳои интеллектуалӣ ва шаҳрҳои интеллектуалӣ истифода шавад.
Албатта, меъмории IoT-ро метавон ба қабатҳои бештар тақсим кард, аммо новобаста аз он ки он аз чанд қабат иборат аст, принсипи аслӣ аслан бетағйир боқӣ мемонад. Омӯзиш
Боби 1. Муқаддима ба IoT 5

дар бораи меъмории IoT ба амиқтар фаҳмиши мо дар бораи технологияҳои IoT ва сохтани лоиҳаҳои пурраи IoT кӯмак мекунад.
1.2 Барномаи IoT дар хонаҳои интеллектуалӣ
IoT ба тамоми қишрҳои ҳаёт ворид шудааст ва аз ҳама наздиктарин барномаи IoT барои мо ин хонаи оқил аст. Бисёре аз асбобҳои анъанавӣ ҳоло бо як ё якчанд дастгоҳҳои IoT муҷаҳҳаз шудаанд ва бисёре аз хонаҳои навсохт аз аввал бо технологияҳои IoT тарҳрезӣ шудаанд. Дар расми 1.1 баъзе дастгоҳҳои маъмули хонагии интеллектуалӣ нишон дода шудаанд.
Расми 1.1. Таҷҳизоти маъмулии хонагии интеллектуалӣ Рушди хонаи интеллектуалиро метавон танҳо ба маҳсулоти интеллектуалӣ тақсим кардtagд, пайвастшавии саҳна сtagд ва с интеллигенцияtagд, чунон ки дар расми 1.2 нишон дода шудааст.
Расми 1.2. Рушди сtage of home smart 6 Adventure Wireless ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Аввалин сtagд дар бораи маҳсулоти оқил аст. Тафовут аз хонаҳои анъанавӣ, дар хонаҳои интеллектуалӣ, дастгоҳҳои IoT сигналҳоро бо сенсорҳо қабул мекунанд ва тавассути технологияҳои алоқаи бесим ба монанди Wi-Fi, Bluetooth LE ва ZigBee ба шабака пайваст мешаванд. Истифодабарандагон метавонанд маҳсулоти интеллектуалиро бо роҳҳои гуногун идора кунанд, аз қабили барномаҳои смартфон, ёварҳои овозӣ, назорати баландгӯякҳои интеллектуалӣ ва ғайра.tagд ба пайвастшавии саҳна нигаронида шудааст. Дар ин сtagд, таҳиягарон дигар дар бораи назорати як маҳсулоти интеллектуалӣ фикр намекунанд, балки ду ё зиёда маҳсулоти интеллектуалиро ба ҳам пайваст мекунанд, то андозае автоматикунонӣ мекунанд ва дар ниҳоят як ҳолати саҳнавии фармоиширо ташкил медиҳанд. Барои мисолample, вақте ки корбар ягон тугмаи ҳолати саҳнаро пахш мекунад, чароғҳо, пардаҳо ва кондитсионерҳо ба таври худкор ба танзимоти пешакӣ мутобиқ карда мешаванд. Албатта, шарти ҳатмӣ вуҷуд дорад, ки мантиқи пайванд ба осонӣ танзим карда шавад, аз ҷумла шароити триггер ва амалҳои иҷро. Тасаввур кунед, ки режими гармидиҳии кондитсионер ҳангоми паст шудани ҳарорати дарунӣ аз 10°С оғоз мешавад; ки соати 7-и пагохй барои бедор кардани корбар мусикй садо медихад, пардахои интеллектуалй кушода шуда, ба воситаи розеткаи донопази биринчпаз ё тостер ба кор медарояд; вақте ки корбар аз ҷой бархезад ва шустанро анҷом медиҳад, субҳона аллакай пешкаш карда мешавад, то дар рафтан ба кор таъхир нашавад. Ҳаёти мо чӣ қадар қулай шудааст! Сеюм сtagд ба разведка меравадtagд. Тавре ки дастрасии бештари дастгоҳҳои хонагии интеллектуалӣ вуҷуд дорад, намудҳои маълумоти тавлидшуда низ ҳамин тавр хоҳанд шуд. Бо ёрии роёниши абрӣ, додаҳои калон ва зеҳни сунъӣ, он ба хонаҳои интеллектуалӣ монанд аст, ки "мағзи оқилона" шинонда шудааст, ки дигар фармонҳои зуд-зуд аз корбарро талаб намекунанд. Онҳо маълумотро аз муомилоти қаблӣ ҷамъоварӣ мекунанд ва намунаҳои рафтор ва афзалиятҳои корбарро меомӯзанд, то автоматикунонии фаъолиятҳо, аз ҷумла пешниҳоди тавсияҳо барои қабули қарор. Дар айни замон, аксари хонаҳои интеллектуалӣ дар ҷои ҳодиса пайвастшавӣ дорандtagд. Бо афзоиши сатҳи воридшавӣ ва зеҳни маҳсулоти интеллектуалӣ, монеаҳо байни протоколҳои иртиботӣ бартараф карда мешаванд. Дар оянда, хонаҳои интеллектуалӣ ҳатман ба мисли системаи AI дар Ҷарвис дар Iron Man, ки на танҳо ба корбар дар идора кардани дастгоҳҳои гуногун, идора кардани корҳои ҳаррӯза кӯмак карда метавонанд, балки қудрати ҳисоббарории олӣ ва қобилияти тафаккурро низ доранд, ҳатман "ақл" мешаванд. Дар интеллигенция Сtagд, одамон хам аз чихати микдор ва хам аз чихати сифат бехтар хизмат хоханд кард.
Боби 1. Муқаддима ба IoT 7

8 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Боби Муқаддима ва амалияи 2 лоиҳаи IoT
Дар боби 1, мо меъмории IoT, нақшҳо ва робитаҳои мутақобилаи қабати дарк ва назорат, қабати шабака, қабати платформа ва қабати барнома, инчунин рушди хонаи интеллектуалиро муаррифӣ кардем. Аммо, чунон ки вақте ки мо рассомиро меомӯзем, донистани донишҳои назариявӣ кофӣ нест. Мо бояд "дасти худро ифлос кунем" то лоиҳаҳои IoT-ро дар амал татбиқ кунем, то технологияро воқеан азхуд кунем. Гайр аз ин, вакте ки лоиха ба истехсолоти оммавй мегузарадtagд, зарур аст, ки омилҳои бештар ба монанди пайвастшавӣ ба шабака, конфигуратсия, ҳамкории платформаи абрии IoT, идоракунии нармафзор ва навсозӣ, идоракунии истеҳсоли оммавӣ ва конфигуратсияи амният. Пас, ҳангоми таҳияи лоиҳаи мукаммали IoT мо бояд ба чӣ диққат диҳем? Дар боби 1 мо зикр кардем, ки хонаи интеллектуалӣ яке аз маъмултарин сенарияҳои татбиқи IoT мебошад ва чароғҳои интеллектуалӣ яке аз асбобҳои асосӣ ва амалӣ мебошанд, ки онҳоро дар хонаҳо, меҳмонхонаҳо, толорҳои варзишӣ, беморхонаҳо ва ғайра истифода бурдан мумкин аст. Аз ин рӯ, дар ин китоб, мо сохтмони лоиҳаи нури интеллектуалиро ҳамчун нуқтаи ибтидоӣ мегирем, ҷузъҳо ва хусусиятҳои онро шарҳ медиҳем ва оид ба таҳияи лоиҳа роҳнамоӣ медиҳем. Мо умедворем, ки шумо метавонед аз ин қазия хулоса баровард, то барномаҳои бештари IoT эҷод кунед.
2.1 Муқаддима ба лоиҳаҳои маъмулии IoT
Дар робита ба рушд, модулҳои асосии функсионалии лоиҳаҳои IoT метавонанд ба таҳияи нармафзор ва сахтафзори дастгоҳҳои IoT, таҳияи замимаҳои муштарӣ ва таҳияи платформаи абрии IoT тасниф карда шаванд. Муҳим аст, ки модулҳои асосии функсионалӣ, ки минбаъд дар ин бахш тавсиф карда мешаванд, равшан карда шаванд.
2.1.1 Модулҳои асосӣ барои дастгоҳҳои умумии IoT
Таҳияи нармафзор ва сахтафзори дастгоҳҳои IoT модулҳои асосии зеринро дар бар мегирад: Ҷамъоварии маълумот
Ҳамчун қабати поёнии меъмории IoT, дастгоҳҳои IoT-и қабати дарк ва назорат сенсорҳо ва дастгоҳҳоро тавассути микросхемаҳо ва периферияҳои худ пайваст мекунанд, то ҷамъоварӣ ва назорати амалиётро ба даст оранд.
9

Ҳатмии ҳисоб ва конфигуратсияи ибтидоӣ Барои аксари дастгоҳҳои IoT, ҳатмии ҳисоб ва конфигуратсияи аввалия дар як раванди амалиётӣ анҷом дода мешавад, масаланample, пайваст кардани дастгоҳҳо бо корбарон тавассути танзими шабакаи Wi-Fi.
Ҳамкорӣ бо платформаҳои абрии IoT Барои назорат ва назорати дастгоҳҳои IoT, инчунин зарур аст, ки онҳоро ба платформаҳои абрии IoT пайваст кунед, то фармонҳо диҳад ва ҳолати гузориш тавассути ҳамкории байни ҳамдигар.
Назорати дастгоҳ Ҳангоми пайваст шудан бо платформаҳои абрии IoT, дастгоҳҳо метавонанд бо абр муошират кунанд ва ба қайд гирифта шаванд, баста шаванд ё назорат карда шаванд. Истифодабарандагон метавонанд ҳолати маҳсулотро пурсанд ва амалиёти дигарро дар замимаи смартфон тавассути платформаҳои абрии IoT ё протоколҳои алоқаи маҳаллӣ анҷом диҳанд.
Таҷҳизоти нармафзори IoT инчунин метавонанд дар асоси эҳтиёҷоти истеҳсолкунандагон навсозии нармафзорро ба даст оранд. Бо қабули фармонҳои аз абр фиристодашуда, такмилдиҳии нармафзор ва идоракунии версия амалӣ карда мешавад. Бо ин хусусияти навсозии нармафзор, шумо метавонед пайваста функсияҳои дастгоҳҳои IoT-ро такмил диҳед, камбудиҳоро ислоҳ кунед ва таҷрибаи корбарро беҳтар кунед.
2.1.2 Модулҳои асосии барномаҳои муштарӣ
Барномаҳои муштарӣ (масалан, барномаҳои смартфон) асосан модулҳои асосии зеринро дар бар мегиранд:
Системаи ҳисоб ва авторизатсия Он иҷозати ҳисоб ва дастгоҳро дастгирӣ мекунад.
Идоракунии дастгоҳ Барномаҳои смартфони маъмулан бо функсияҳои назоратӣ муҷаҳҳаз мебошанд. Истифодабарандагон метавонанд ба осонӣ ба дастгоҳҳои IoT пайваст шаванд ва онҳоро дар вақти дилхоҳ ва дар ҳама ҷо тавассути барномаҳои смартфон идора кунанд. Дар хонаи воқеии интеллектуалӣ, дастгоҳҳо асосан тавассути барномаҳои смартфон идора карда мешаванд, ки на танҳо идоракунии оқилонаи дастгоҳҳоро имкон медиҳад, балки хароҷоти қувваи кориро сарфа мекунад. Аз ин рӯ, назорати дастгоҳ барои барномаҳои муштарӣ, аз қабили назорати аттрибутҳои функсияи дастгоҳ, назорати саҳна, ҷадвалбандӣ, назорати дурдаст, пайвасти дастгоҳ ва ғайра ҳатмист. Корбарони хонагии интеллектуалӣ инчунин метавонанд саҳнаҳоро мувофиқи эҳтиёҷоти шахсӣ, назорати равшанӣ, асбобҳои хонагӣ, даромадгоҳ танзим кунанд. ва гайра, ки хаёти хонагиро бароҳаттар ва қулай гардонад. Онҳо метавонанд кондитсионерро вақт кунанд, онро аз фосилаи дур хомӯш кунанд, пас аз кушодани дар чароғи долонро ба таври худкор фурӯзон кунанд ё бо як тугма ба режими "театр" гузаранд.
Барномаҳои огоҳии муштарӣ ҳолати воқеии дастгоҳҳои IoT-ро навсозӣ мекунанд ва ҳангоми ғайримуқаррарӣ будани дастгоҳҳо огоҳӣ мефиристанд.
10 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Хизматрасонии муштариёни пас аз фурӯш Барномаҳои смартфон метавонанд хидматҳои пас аз фурӯшро барои маҳсулот пешниҳод кунанд, то мушкилоти марбут ба нокомии дастгоҳи IoT ва амалиёти техникиро сари вақт ҳал кунанд.
Функсияҳои пешниҳодшуда Барои қонеъ кардани эҳтиёҷоти корбарони гуногун метавонанд функсияҳои дигар илова карда шаванд, ба монанди Shake, NFC, GPS, ва ғайра. GPS метавонад дар танзими дақиқии амалиёти саҳна мувофиқи макон ва масофа кӯмак кунад, дар ҳоле ки функсияи ҷунбиш ба корбарон имкон медиҳад, ки фармонҳое, ки барои дастгоҳ ё саҳнаи мушаххас бо ларзиш иҷро мешаванд.
2.1.3 Муқаддима ба платформаҳои умумии абрии IoT
Платформаи абрии IoT як платформаи ҳамаҷониба аст, ки функсияҳоро ба монанди идоракунии дастгоҳ, иртиботи амнияти додаҳо ва идоракунии огоҳинома муттаҳид мекунад. Мувофиқи гурӯҳи мақсаднок ва дастрасии онҳо, платформаҳои абрии IoT метавонанд ба платформаҳои абрии ҷамъиятии IoT (минбаъд “абри ҷамъиятӣ”) ва платформаҳои абрии хусусии IoT (минбаъд “абри хусусӣ”) тақсим карда шаванд.
Абри ҷамъиятӣ одатан платформаҳои абрии муштараки IoT-ро барои корхонаҳо ё шахсони алоҳида нишон медиҳад, ки аз ҷониби провайдерҳои платформа идора ва нигоҳдорӣ мешаванд ва тавассути Интернет мубодила мешаванд. Он метавонад ройгон ё арзон бошад ва дар тамоми шабакаи кушодаи ҷамъиятӣ хидматҳо пешкаш мекунад, аз қабили Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT ва ғайра. Ҳамчун платформаи дастгирӣ, абри ҷамъиятӣ метавонад провайдерҳои хидматрасонии болоӣ ва истифодабарандагони ниҳоии поёноб барои эҷоди занҷири нави арзиш ва экосистема.
Абри хусусӣ танҳо барои истифодаи корхона сохта шудааст ва ҳамин тавр назорати беҳтаринро аз болои маълумот, амният ва сифати хидмат кафолат медиҳад. Хидматҳо ва инфрасохтори он аз ҷониби корхонаҳо алоҳида нигоҳ дошта мешавад ва сахтафзор ва нармафзори дастгирӣ низ ба корбарони мушаххас бахшида шудаанд. Корхонаҳо метавонанд хидматҳои абриро барои қонеъ кардани ниёзҳои тиҷорати худ танзим кунанд. Дар айни замон, баъзе истеҳсолкунандагони хонаҳои интеллектуалӣ аллакай платформаҳои абрии хусусии IoT доранд ва дар асоси онҳо барномаҳои хонагии интеллектуалӣ таҳия кардаанд.
Абри ҷамъиятӣ ва абри хусусӣ дорои афзалиятҳои худро дорандtages, ки баъдтар шарҳ дода мешавад.
Барои ноил шудан ба пайвасти муошират, бояд ҳадди аққал таҳияи дарунсохтро дар паҳлӯи дастгоҳ дар баробари серверҳои тиҷоратӣ, платформаҳои абрии IoT ва барномаҳои смартфон анҷом диҳед. Бо чунин як лоиҳаи азим рӯбарӯ шуда, абри ҷамъиятӣ одатан маҷмӯаҳои таҳияи нармафзорро барои барномаҳои паҳлӯи дастгоҳ ва смартфон барои суръат бахшидан ба раванд таъмин мекунад. Ҳам абрҳои ҷамъиятӣ ва ҳам хусусӣ хидматҳоро пешниҳод мекунанд, аз ҷумла дастрасии дастгоҳ, идоракунии дастгоҳ, сояи дастгоҳ ва истифода ва нигоҳдорӣ.
Платформаҳои абрии IoT ба дастгоҳ бояд на танҳо интерфейсҳоро барои дастрасии дастгоҳ бо истифода аз протоколҳо таъмин кунанд
Боби 2. Муқаддима ва амалияи лоиҳаҳои IoT 11

ба монанди MQTT, CoAP, HTTPS ва WebРозетка, балки инчунин функсияи аутентификатсияи амнияти дастгоҳ барои бастани дастгоҳҳои қалбакӣ ва ғайриқонунӣ, ба таври муассир коҳиш додани хатари осебпазирӣ. Чунин аутентификатсия одатан механизмҳои гуногунро дастгирӣ мекунад, аз ин рӯ ҳангоми истеҳсоли оммавӣ, сертификати дастгоҳро мувофиқи механизми аутентификатсияи интихобшуда пешакӣ таъин кардан ва онро дар дастгоҳҳо сӯзондан лозим аст.
Идоракунии дастгоҳ Функсияи идоракунии дастгоҳ, ки аз ҷониби платформаҳои абрии IoT таъмин карда мешавад, метавонад на танҳо ба истеҳсолкунандагон дар назорат кардани ҳолати фаъолсозӣ ва ҳолати онлайнии дастгоҳҳои худ дар вақти воқеӣ кӯмак кунад, балки инчунин имкон медиҳад, ки илова / хориҷ кардани дастгоҳҳо, ҷустуҷӯ, илова / нест кардани гурӯҳҳо, навсозии нармафзор , ва идоракунии версия.
Платформаҳои абрии IoT-и сояи дастгоҳ метавонанд барои ҳар як дастгоҳ версияи доимии виртуалӣ (сояи дастгоҳ) эҷод кунанд ва ҳолати сояи дастгоҳро тавассути барномаи смартфон ё дигар дастгоҳҳо тавассути протоколҳои интиқоли интернет ҳамоҳанг кардан ва ба даст овардан мумкин аст. Сояи дастгоҳ ҳолати охирини гузоришшуда ва ҳолати интизории ҳар як дастгоҳро нигоҳ медорад ва ҳатто агар дастгоҳ офлайн бошад ҳам, он метавонад бо занги APIҳо ин ҳолатро ба даст орад. Сояи дастгоҳ API-ҳои ҳамеша фаъолро таъмин мекунад, ки сохтани барномаҳои смартфонро, ки бо дастгоҳҳо ҳамкорӣ мекунанд, осонтар мекунад.
Истифода ва нигоҳдорӣ Функсияи O&M се ҷанбаро дар бар мегирад: · Намоиши маълумоти оморӣ дар бораи дастгоҳҳои IoT ва огоҳиномаҳо. · Идоракунии сабт имкон медиҳад, ки маълумотро дар бораи рафтори дастгоҳ, ҷараёни паёмҳои боло/поён ва мундариҷаи паём ҷустуҷӯ кунад. · Ислоҳсозии дастгоҳ расонидани фармон, навсозии конфигуратсия ва тафтиши ҳамкории байни платформаҳои абрии IoT ва паёмҳои дастгоҳро дастгирӣ мекунад.
2.2 Таҷриба: Лоиҳаи Smart Light
Пас аз муқаддимаи назариявӣ дар ҳар як боб, шумо як бахши амалияи марбут ба лоиҳаи Smart Light хоҳед ёфт, то ба шумо дар гирифтани таҷрибаи амалӣ кӯмак расонад. Лоиҳа ба чипи Espressif ESP32-C3 ва платформаи ESP RainMaker IoT Cloud асос ёфтааст ва сахтафзори модули бесимро дар маҳсулоти нури интеллектуалӣ, нармафзори воридшуда барои дастгоҳҳои интеллектуалӣ дар асоси ESP32C3, барномаҳои смартфон ва ҳамкории ESP RainMaker фаро мегирад.
Рамзи манбаъ Барои беҳтар омӯхтан ва инкишоф додани таҷриба, лоиҳаи ин китоб сарчашмаи кушода шудааст. Шумо метавонед рамзи сарчашмаро аз анбори GitHub мо дар https://github зеркашӣ кунед. com/espressif/book-esp32c3-iot-projects.
12 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

2.2.1 Сохтори лоиҳа
Лоиҳаи Smart Light аз се қисм иборат аст: i. Дастгоҳҳои равшании интеллектуалӣ дар асоси ESP32-C3, ки барои ҳамкорӣ бо платформаҳои абрии IoT масъуланд ва назорати гузариш, равшанӣ ва ҳарорати ранги LED lamp маҳтобӣ. ii. Барномаҳои смартфони (аз ҷумла барномаҳои планшетӣ, ки дар Android ва iOS кор мекунанд), барои конфигуратсияи шабакаи маҳсулоти нури интеллектуалӣ, инчунин пурсиш ва назорати ҳолати онҳо масъуланд.
iii. Платформаи абрии IoT дар асоси ESP RainMaker. Барои содда кардан, мо дар ин китоб платформаи абрии IoT ва сервери тиҷоратиро дар маҷмӯъ баррасӣ мекунем. Тафсилот дар бораи ESP RainMaker дар боби 3 оварда мешавад.
Мутобиқати байни сохтори лоиҳаи Smart Light ва меъмории IoT дар расми 2.1 нишон дода шудааст.
Расми 2.1. Сохтори лоиҳаи нури интеллектуалӣ
2.2.2 Вазифаҳои лоиҳа
Аз рӯи сохтор, вазифаҳои ҳар як қисм инҳоянд. Дастгоҳҳои равшании интеллектуалӣ
· Танзимоти шабака ва пайвастшавӣ. · Назорати LED PWM, ба монанди гузариш, равшанӣ, ҳарорати ранг ва ғайра. · Рамзгузорӣ ва пурборкунии бехатари Flash. · Навсозии нармафзор ва идоракунии версия.
Боби 2. Муқаддима ва амалияи лоиҳаҳои IoT 13

Барномаҳои смартфони · Танзимоти шабака ва пайвасти дастгоҳ. · Назорати маҳсулоти нури оқилона, ба монанди гузариш, равшанӣ, ҳарорати ранг ва ғайра. · Назорати маҳаллӣ/дурдаст. · Бақайдгирии корбар, воридшавӣ ва ғ.
Платформаи абрии ESP RainMaker IoT · Фаъолсозии дастрасии дастгоҳи IoT. · Таъмини API-ҳои амалиётии дастгоҳ, ки барои барномаҳои смартфон дастрасанд. · Навсозии нармафзор ва идоракунии версия.
2.2.3 Омодасозии таҷҳизот
Агар ба татбиқи лоиҳа таваҷҷӯҳ дошта бошед, ба шумо инчунин таҷҳизоти зерин лозим мешавад: чароғҳои интеллектуалӣ, смартфонҳо, роутерҳои Wi-Fi ва компютере, ки ба талаботи насби муҳити таҳия мувофиқат мекунад. Чароғҳои интеллектуалӣ
Чароғҳои интеллектуалӣ як навъи нави лампаҳо мебошанд, ки шаклашон бо лампаи лампаҳои умумӣ яксон аст. Нури интеллектуалӣ аз конденсаторҳо, ки аз таъминоти барқи танзимшавандаи поин, модули бесим (бо ESP32-C3 дарунсохт), контролери LED ва матритсаи RGB LED иборат аст. Ҳангоми пайвастшавӣ ба қувваи барқ, 15 В DC voltagбаромади e пас аз поён рафтани конденсатор, ислоҳи диод ва танзим энергияро ба контролери LED ва матритсаи LED таъмин мекунад. Назоратчии LED метавонад ба таври худкор дар фосилаҳои муайян сатҳҳои баланд ва паст фиристад, матритсаи RGB LED-ро байни пӯшида (чароғҳо фурӯзон) ва кушода (чароғҳо хомӯш) гузаронад, то он метавонад кабуд, зард, сабз, арғувон, кабуд, сурх ва нури сафед. Модули бесим барои пайвастшавӣ ба роутери Wi-Fi, қабул ва гузориш додани ҳолати чароғҳои интеллектуалӣ ва фиристодани фармонҳо барои идоракунии LED масъул аст.
Расми 2.2. Нури интеллектуалии симулятсияшуда
Дар ибтидои инкишофи сtagд, шумо метавонед як нури интеллектуалиро бо истифода аз тахтаи ESP32-C3DevKitM-1, ки бо RGB LED l пайваст шудааст, тақлид кунедamp маҳтобӣ (ниг. Расми 2.2). Аммо шумо бояд
14 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

қайд кунед, ки ин ягона роҳи ҷамъ кардани нури интеллектуалӣ нест. Тарҳи сахтафзори лоиҳа дар ин китоб танҳо як модули бесимро дар бар мегирад (бо ESP32-C3 дарунсохт), аммо тарҳи пурраи сахтафзори равшании интеллектуалӣ нест. Илова бар ин, Espressif инчунин як тахтаи таҳияи аудио дар асоси ESP32-C3 ESP32C3-Lyra барои идоракунии чароғҳо бо аудио истеҳсол мекунад. Раёсат дорои интерфейси микрофонҳо ва баландгӯякҳо мебошад ва метавонад тасмаҳои LED-ро идора кунад. Он метавонад барои таҳияи пахшкунандагони ултра камхарҷ, баландсуръати аудио ва тасмаҳои нури ритми истифода шавад. Дар расми 2.3 тахтаи ESP32-C3Lyra нишон дода шудааст, ки бо рахи 40 чароғҳои LED пайваст карда шудааст.
Расми 2.3. ESP32-C3-Lyra бо рахи 40 чароғҳои LED пайваст карда шудааст
Смартфонҳо (Android/iOS) Лоиҳаи Smart Light таҳияи як замимаи смартфонро барои насб ва назорати маҳсулоти нури интеллектуалӣ дар бар мегирад.
Роутерҳои Wi-Fi Роутерҳои Wi-Fi сигналҳои шабакаи симӣ ва сигналҳои шабакаи мобилиро ба сигналҳои шабакаи бесим барои компютерҳо, смартфонҳо, планшетҳо ва дигар дастгоҳҳои бесим барои пайвастшавӣ ба шабака табдил медиҳанд. Барои мисолample, фарохмаҷро дар хона танҳо лозим аст, ки ба як роутер Wi-Fi пайваст шавад барои ба даст овардани шабакаи бесими дастгоҳҳои Wi-Fi. Стандарти асосии протокол, ки аз ҷониби роутерҳои Wi-Fi дастгирӣ мешавад, IEEE 802.11n мебошад, ки TxRate миёнаи 300 Мбит / сония ё ҳадди аксар 600 Мбит / с мебошад. Онҳо бо IEEE 802.11b ва IEEE 802.11g ба ақиб мувофиқанд. Чипи ESP32-C3 аз ҷониби Espressif IEEE 802.11b/g/n-ро дастгирӣ мекунад, аз ин рӯ шумо метавонед роутери як-бандӣ (2.4 ГГц) ё дугонаи (2.4 ГГц ва 5 ГГц) Wi-Fi-ро интихоб кунед.
Муҳити таҳияи компютер (Linux/macOS/Windows) дар боби 4 муаррифӣ карда мешавад. Боби 2. Муқаддима ва амалияи лоиҳаҳои IoT 15

2.2.4 Раванди рушд
Расми 2.4. Қадамҳои таҳияи лоиҳаи Smart Light
Тарҳрезии сахтафзор Тарҳрезии сахтафзори дастгоҳҳои IoT барои лоиҳаи IoT муҳим аст. Лоиҳаи пурраи нури интеллектуалӣ барои истеҳсоли алamp дар зери таъминоти электр кор мекунанд. Истеҳсолкунандагони гуногун лamps дорои сабкҳо ва намудҳои гуногуни драйверҳо мебошанд, аммо модулҳои бесими онҳо одатан як вазифа доранд. Барои содда кардани раванди таҳияи лоиҳаи Smart Ligh, ин китоб танҳо тарҳрезии сахтафзор ва таҳияи нармафзори модулҳои бесимро дар бар мегирад.
Конфигуратсияи платформаи абрии IoT Барои истифодаи платформаҳои абрии IoT, ба шумо лозим аст, ки лоиҳаҳоро дар қафо конфигуратсия кунед, ба монанди эҷоди маҳсулот, сохтани дастгоҳҳо, танзими хосиятҳои дастгоҳ ва ғайра.
Таҳияи нармафзори дарунсохташуда барои дастгоҳҳои IoT Функсияҳои пешбинишударо бо ESP-IDF, SDK-и дастгоҳи Espressif, аз ҷумла пайвастшавӣ ба платформаҳои абрии IoT, таҳияи драйверҳои LED ва навсозии нармафзор иҷро кунед.
Таҳияи замимаҳои смартфон барои системаҳои Android ва iOS барномаҳои смартфонро таҳия кунед, то бақайдгирии корбарон ва воридшавӣ, назорати дастгоҳ ва дигар вазифаҳоро амалӣ созед.
Оптимизатсияи дастгоҳи IoT Пас аз ба итмом расидани таҳияи асосии функсияҳои дастгоҳи IoT, шумо метавонед ба вазифаҳои оптимизатсия, аз қабили оптимизатсияи нерӯ муроҷиат кунед.
Озмоиши истеҳсоли оммавӣ мутобиқи стандартҳои дахлдор санҷишҳои истеҳсоли оммавӣ, ба монанди санҷиши функсияи таҷҳизот, санҷиши пиршавӣ, санҷиши РБ ва ғайра гузаронед.
Сарфи назар аз қадамҳои дар боло номбаршуда, лоиҳаи Smart Light ҳатман ба чунин тартиб тобеъ нест, зеро вазифаҳои гуногунро ҳамзамон иҷро кардан мумкин аст. Барои мисолample, нармафзори дарунсохти ва барномаҳои смартфон метавонад дар баробари таҳия. Баъзе қадамҳо инчунин метавонанд такрор шаванд, ба монанди оптимизатсияи дастгоҳи IoT ва санҷиши истеҳсоли оммавӣ.
16 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

2.3 Хулоса
Дар ин боб, мо аввал ҷузъҳои асосӣ ва модулҳои функсионалии лоиҳаи IoT-ро шарҳ додем, сипас парвандаи Smart Lightро барои амалия бо ишора ба сохтор, вазифаҳо, омодасозии сахтафзор ва раванди таҳияи он муаррифӣ кардем. Хонандагон метавонанд аз таҷриба хулоса баранд ва боварӣ ҳосил кунанд, ки лоиҳаҳои IoT-ро бо хатогиҳои ҳадди ақал дар оянда амалӣ мекунанд.
Боби 2. Муқаддима ва амалияи лоиҳаҳои IoT 17

18 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Боби 3

Муқаддима

ба

ESP

RainMaker

Интернети чизҳо (IoT) имкониятҳои беохирро барои тағир додани тарзи зиндагии одамон пешкаш мекунад, аммо рушди муҳандисии IoT пур аз мушкилот аст. Бо абрҳои ҷамъиятӣ, истеҳсолкунандагони терминал метавонанд функсияҳои маҳсулотро тавассути ҳалли зерин амалӣ кунанд:
Дар асоси платформаҳои абрии провайдерҳои ҳалли ин роҳ, истеҳсолкунандагони терминал бояд танҳо таҷҳизоти маҳсулотро тарҳрезӣ кунанд, сипас сахтафзорро бо истифода аз модули иртиботи пешниҳодшуда ба абр пайваст кунанд ва вазифаҳои маҳсулотро мувофиқи дастурҳо танзим кунанд. Ин як равиши муассир аст, зеро он зарурати таҳияи паҳлӯи сервер ва барнома, амалиёт ва нигоҳдорӣ (O&M)-ро аз байн мебарад. Он ба истеҳсолкунандагони терминал имкон медиҳад, ки бидуни баррасии татбиқи абр ба тарроҳии сахтафзор тамаркуз кунанд. Аммо, чунин қарорҳо (масалан, нармафзори дастгоҳ ва Барнома) умуман манбаи кушода нестанд, аз ин рӯ, функсияҳои маҳсулот аз ҷониби платформаи абрии провайдер маҳдуд карда мешаванд, ки онро танзим кардан ғайриимкон аст. Дар ҳамин ҳол, маълумоти корбар ва дастгоҳ низ ба платформаи абр тааллуқ доранд.
Дар асоси маҳсулоти абрӣ Дар ин қарор, пас аз ба итмом расонидани тарҳи сахтафзор, истеҳсолкунандагони терминал на танҳо бояд вазифаҳои абрро бо истифода аз як ё якчанд маҳсулоти абрии аз ҷониби абри ҷамъиятӣ таъминшуда амалӣ кунанд, балки инчунин бояд сахтафзорро бо абр пайваст кунанд. Барои мисолample, барои пайваст шудан ба Amazon Web Хидматҳо (AWS), истеҳсолкунандагони терминал бояд маҳсулоти AWS ба монанди Amazon API Gateway, AWS IoT Core ва AWS Lambda-ро истифода баранд, то дастрасии дастгоҳ, назорати дурдаст, нигаҳдории маълумот, идоракунии корбар ва дигар вазифаҳои асосиро фаъол созанд. Он на танҳо аз истеҳсолкунандагони терминал хоҳиш мекунад, ки маҳсулоти абриро бо фаҳмиши амиқ ва таҷрибаи ғанӣ чандир истифода ва танзим кунанд, балки аз онҳо талаб мекунад, ки хароҷоти сохтмон ва нигоҳдории аввал ва баъдтарро баррасӣ кунанд.tages Ин дар назди энергия ва ресурсхои корхона душворихои калон мегузорад.
Дар муқоиса бо абрҳои ҷамъиятӣ, абрҳои хусусӣ одатан барои лоиҳаҳо ва маҳсулоти мушаххас сохта мешаванд. Ба таҳиягарони абрии хусусӣ дар тарҳрезии протокол ва татбиқи мантиқи тиҷорат сатҳи баландтарини озодӣ дода мешавад. Истеҳсолкунандагони терминал метавонанд бо хоҳиши худ маҳсулот ва нақшаҳои тарроҳиро созанд ва маълумоти корбаронро ба осонӣ муттаҳид ва тавонманд созанд. Омезиши амнияти баланд, миқёспазирӣ ва эътимоднокии абрҳои ҷамъиятӣ бо пешрафтаtages абри хусусӣ, Espressif ESP-ро оғоз кард
19

RainMaker, як ҳалли амиқ ҳамгирошудаи абрии хусусӣ дар асоси абри Amazon. Истифодабарандагон метавонанд ESP RainMaker-ро ҷойгир кунанд ва абрҳои хусусиро танҳо бо ҳисоби AWS созанд.
3.1 ESP RainMaker чист?
ESP RainMaker як платформаи мукаммали AIoT мебошад, ки бо якчанд маҳсулоти баркамол AWS сохта шудааст. Он хидматҳои гуногунеро, ки барои истеҳсоли оммавӣ заруранд, ба монанди дастрасии абрии дастгоҳ, такмилдиҳии дастгоҳ, идоракунии пуштибонӣ, воридшавии тарафи сеюм, ҳамгироии овоз ва идоракунии корбарро таъмин мекунад. Бо истифода аз анбори барномаҳои бе сервер (SAR), ки аз ҷониби AWS пешниҳод шудааст, истеҳсолкунандагони терминал метавонанд ба зудӣ ESP RainMaker-ро дар ҳисобҳои AWS-и худ ҷойгир кунанд, ки вақт камхарҷ ва осон кор мекунад. ҲДМ аз ҷониби Espressif идора ва нигоҳдорӣ мешавад, ки аз ҷониби ESP RainMaker истифода мешавад, ба таҳиягарон кӯмак мекунад, ки хароҷоти нигоҳдории абрро коҳиш диҳанд ва рушди маҳсулоти AIoT-ро суръат бахшанд ва ба ин васила ҳалли бехатар, устувор ва танзимшавандаи AIoT эҷод кунанд. Дар расми 3.1 меъмории ESP RainMaker нишон дода шудааст.
Расми 3.1. Архитектураи ESP RainMaker
Сервери ҷамъиятии ESP RainMaker аз ҷониби Espressif барои ҳама дӯстдорони ESP, истеҳсолкунандагон ва омӯзгорон барои арзёбии ҳалли онҳо ройгон аст. Таҳиягарон метавонанд бо ҳисобҳои Apple, Google ё GitHub ворид шаванд ва прототипҳои барномаҳои IoT-и худро зуд созанд. Сервери ҷамъиятӣ Alexa ва Google Home-ро муттаҳид мекунад ва хидматҳои назорати овозиро пешниҳод мекунад, ки аз ҷониби Alexa Skill ва Google Actions дастгирӣ мешаванд. Функсияи шинохти семантикии он инчунин аз ҷониби шахсони сеюм амалӣ карда мешавад. Дастгоҳҳои RainMaker IoT танҳо ба амалҳои мушаххас ҷавоб медиҳанд. Барои рӯйхати пурраи фармонҳои овозии дастгирӣшаванда, лутфан платформаҳои тарафи сеюмро тафтиш кунед. Илова бар ин, Espressif як барномаи оммавии RainMaker-ро барои корбарон пешниҳод мекунад, ки маҳсулотро тавассути смартфонҳо идора кунанд. 20 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

3.2 Татбиқи ESP RainMaker
Тавре ки дар расми 3.2 нишон дода шудааст, ESP RainMaker аз чор қисм иборат аст: · Хизматрасонии даъво, ки имкон медиҳад дастгоҳҳои RainMaker ба таври динамикӣ сертификатҳо гиранд. · RainMaker Cloud (инчунин бо номи backend абрӣ маълум аст), ки хидматрасониро ба монанди филтркунии паёмҳо, идоракунии корбар, нигоҳдории маълумот ва ҳамгироии тарафи сеюм пешниҳод мекунад. · Агенти RainMaker, имкон медиҳад, ки дастгоҳҳои RainMaker ба RainMaker Cloud пайваст шаванд. · Client RainMaker (RainMaker App ё скриптҳои CLI), барои таъмин, эҷоди корбар, ассотсиатсия ва назорати дастгоҳ ва ғайра.
Расми 3.2. Сохтори ESP RainMaker
ESP RainMaker маҷмӯи пурраи асбобҳоро барои таҳияи маҳсулот ва истеҳсоли оммавӣ таъмин мекунад, аз ҷумла: RainMaker SDK
RainMaker SDK ба ESP-IDF асос ёфтааст ва рамзи сарчашмаи агенти дастгоҳ ва API-ҳои марбути C-ро барои таҳияи нармафзор таъмин мекунад. Ба таҳиягарон танҳо лозим аст, ки мантиқи барномаро бинависанд ва боқимондаро ба чаҳорчӯбаи RainMaker гузоранд. Барои маълумоти бештар дар бораи C API, лутфан ба https://bookc3.espressif.com/rm/c-api-reference муроҷиат кунед. Барномаи RainMaker Версияи оммавии RainMaker App ба таҳиягарон имкон медиҳад, ки таъминоти дастгоҳро анҷом диҳанд ва ҳолати дастгоҳҳоро назорат ва пурсиш кунанд (масалан, маҳсулоти равшании интеллектуалӣ). Он ҳам дар мағозаҳои барномаҳои iOS ва Android дастрас аст. Барои тафсилоти бештар лутфан ба боби 10 муроҷиат кунед. API-ҳои REST REST ба корбарон кӯмак мекунанд, ки замимаҳои шахсии худро ба барномаи RainMaker монанд созанд. Барои маълумоти иловагӣ лутфан ба https://swaggerapis.rainmaker.espressif.com/ муроҷиат кунед.
Боби 3. Муқаддима ба ESP RainMaker 21

API-ҳои Python CLI дар асоси Python, ки бо RainMaker SDK меояд, барои иҷрои ҳама вазифаҳои шабеҳ ба хусусиятҳои смартфон пешбинӣ шудааст. Барои маълумоти бештар дар бораи API-ҳои Python, лутфан ба https://bookc3.espressif.com/rm/python-api-reference муроҷиат кунед.
Admin CLI Admin CLI бо сатҳи баландтари дастрасӣ барои ҷойгиркунии хусусии ESP RainMaker барои тавлиди сертификатҳои дастгоҳ ба таври оммавӣ таъмин карда мешавад.
3.2.1 Хадамоти даъво
Ҳама иртибот байни дастгоҳҳои RainMaker ва пуштибони абрӣ тавассути MQTT+TLS анҷом дода мешавад. Дар контексти ESP RainMaker, "Даъво" ин равандест, ки дар он дастгоҳҳо аз Хадамоти даъво барои пайвастшавӣ ба пушти абрӣ шаҳодатнома мегиранд. Дар хотир доред, ки Хадамоти даъво танҳо ба хидмати ҷамъиятии RainMaker татбиқ мешавад, дар ҳоле ки барои густариши хусусӣ, сертификатҳои дастгоҳ бояд ба таври оммавӣ тавассути Admin CLI тавлид карда шаванд. ESP RainMaker се намуди Хадамоти даъворо дастгирӣ мекунад: Худтаъминкунӣ
Худи дастгоҳ сертификатҳоро тавассути калиди махфии қаблан барномарезишуда дар eFuse пас аз пайвастшавӣ ба Интернет мегирад. Даъвои мизбон ба асос гирифташуда Шаҳодатномаҳо аз мизбони таҳия бо ҳисоби RainMaker гирифта мешаванд. Даъвои ёрирасон Шаҳодатномаҳо тавассути замимаҳои смартфон ҳангоми омодасозӣ ба даст оварда мешаванд.
3.2.2 Агенти RainMaker
Расми 3.3. Сохтори RainMaker SDK Вазифаи асосии Агенти RainMaker ин таъмини пайвастшавӣ ва кӯмак ба қабати барнома барои коркарди маълумоти абрии боло/поён мебошад. Он тавассути RainMaker SDK 22 ESP32-C3 Wireless Adventure сохта шудааст: Роҳнамои ҳамаҷонибаи IoT

ва дар асоси чаҳорчӯбаи исботшудаи ESP-IDF бо истифода аз ҷузъҳои ESP-IDF ба монанди RTOS, NVS ва MQTT таҳия шудааст. Дар расми 3.3 сохтори RainMaker SDK нишон дода шудааст.
RainMaker SDK ду хусусияти асосиро дар бар мегирад.
Пайвастшавӣ
i. Ҳамкорӣ бо Claiming Service барои гирифтани шаҳодатномаҳои дастгоҳ.
ii. Пайвастшавӣ ба қафои абр бо истифода аз протоколи бехатари MQTT барои таъмини пайвасти дурдаст ва амалисозии назорати дурдаст, гузоришдиҳии паёмҳо, идоракунии корбар, идоракунии дастгоҳ ва ғайра. Он ба таври нобаёнӣ ҷузъи MQTT-ро дар ESP-IDF истифода мебарад ва қабати абстраксияро барои интерфейс бо дигар таъмин мекунад стекҳои протокол.
iii. Таъмини ҷузъи таъмини Wi-Fi барои пайвастшавӣ ва таъминоти Wi-Fi, esp https ota барои такмилдиҳии OTA ва esp ҷузъи ctrl маҳаллӣ барои кашф ва пайвасти дастгоҳи маҳаллӣ. Ҳамаи ин ҳадафҳоро тавассути конфигуратсияи оддӣ ба даст овардан мумкин аст.
Коркарди маълумот
i. Нигоҳ доштани шаҳодатномаҳои дастгоҳ, ки аз ҷониби Claiming Service дода шудааст ва маълумоти лозимӣ ҳангоми кор дар RainMaker, ба таври нобаёнӣ бо истифода аз интерфейси аз ҷониби ҷузъи флеши nvs пешниҳодшуда ва пешниҳод кардани API барои таҳиягарон барои истифодаи мустақим.
ii. Истифодаи механизми бозгашт барои коркарди маълумоти абрии боло/поён ва ба таври худкор кушодани маълумот ба қабати барнома барои коркарди осон аз ҷониби таҳиягарон. Барои мисолample, RainMaker SDK интерфейсҳои бойро барои таъсиси маълумоти TSL (Thing Specification Language) таъмин мекунад, ки барои муайян кардани моделҳои TSL барои тавсифи дастгоҳҳои IoT ва иҷрои вазифаҳо ба монанди вақт, ҳисоб ва назорати овоз заруранд. Барои хусусиятҳои асосии интерактивӣ, ба монанди вақт, RainMaker SDK як ҳалли бидуни таҳияро пешниҳод мекунад, ки ҳангоми зарурат метавон онро фаъол кард. Сипас, агенти RainMaker маълумотро мустақиман коркард мекунад, онро тавассути мавзӯи алоқаманди MQTT ба абр мефиристад ва тағироти додаҳоро дар паси абр тавассути механизми бозхонд бармегардонад.
3.2.3 Cloud Backend
Бозгашти абрӣ дар AWS Serverless Computing сохта шудааст ва тавассути AWS Cognito (системаи идоракунии шахсият), Amazon API Gateway, AWS Lambda (хизмати компютерии бидуни сервер), Amazon DynamoDB (мазани маълумоти NoSQL), AWS IoT Core (асоси дастрасии IoT, ки дастрасии MQTT-ро таъмин мекунад) ба даст оварда мешавад. ва филтркунии қоида), Amazon Simple Email Service (хидмати почтаи оддии SES), Amazon CloudFront (шабакаи интиқоли зуд), Amazon Simple Queue Service (навбати паёмҳои SQS) ва Amazon S3 (хидмати нигаҳдории сатил). Он барои оптимизатсияи миқёспазирӣ ва амният нигаронида шудааст. Бо ESP RainMaker, таҳиягарон метавонанд дастгоҳҳоро бидуни навиштани код дар абр идора кунанд. Паёмҳои аз ҷониби дастгоҳҳо гузоришшуда ба таври шаффоф интиқол дода мешаванд
Боби 3. Муқаддима ба ESP RainMaker 23

муштариёни барнома ё дигар хидматҳои тарафи сеюм. Ҷадвали 3.1 маҳсулот ва вазифаҳои абрии AWS-ро нишон медиҳад, ки дар паси абр истифода мешаванд ва маҳсулот ва хусусиятҳои бештар дар ҳоли таҳия мебошанд.
Ҷадвали 3.1. Маҳсулоти абрии AWS ва вазифаҳое, ки аз ҷониби пуштибони абрӣ истифода мешаванд

Маҳсулоти AWS Cloud, ки аз ҷониби RainMaker истифода мешавад

Функсия

AWS Cognito

Идоракунии маълумоти корбар ва дастгирии воридшавии шахсони сеюм

AWS Lambda

Татбиқи мантиқи асосии тиҷоратии пушти абр

Amazon Timestream Нигоҳ доштани маълумотҳои силсилаи вақт

Amazon DynamoDB Нигоҳ доштани маълумоти шахсии муштариён

AWS IoT Core

Дастгирии алоқаи MQTT

Amazon SES

Таъмини хидматҳои ирсоли почтаи электронӣ

Amazon CloudFront Тезонидани идоракунии пуштибон webдастрасӣ ба сайт

Amazon SQS

Интиқоли паёмҳо аз AWS IoT Core

3.2.4 Мизоҷи RainMaker
Мизоҷони RainMaker, ба монанди App ва CLI, тавассути REST APIs бо пуштибони абрӣ муошират мекунанд. Маълумоти муфассал ва дастурҳоро дар бораи API-ҳои REST дар ҳуҷҷатҳои Swagger, ки Espressif пешниҳод кардааст, пайдо кардан мумкин аст. Муштарии замимаи мобилии RainMaker барои системаҳои iOS ва Android дастрас аст. Он имкон медиҳад, ки дастгоҳ таъмин, назорат ва мубодила, инчунин эҷод ва фаъол кардани вазифаҳои ҳисобкунӣ ва пайвастшавӣ ба платформаҳои тарафи сеюм. Он метавонад ба таври худкор UI ва нишонаҳоро мувофиқи конфигуратсияи аз ҷониби дастгоҳҳо гузоришшуда бор кунад ва TSL-и дастгоҳро пурра намоиш диҳад.
Барои мисолample, агар нури интеллектуалӣ дар бораи RainMaker SDK-таъмини собиқ сохтаampПас аз ба итмом расидани таъминот, нишона ва интерфейси лампаи лампа ба таври худкор бор карда мешавад. Истифодабарандагон метавонанд ранг ва равшании рӯшноиро тавассути интерфейс тағир диҳанд ва тавассути пайваст кардани Alexa Smart Home Skill ё Google Smart Home Actions ба ҳисобҳои ESP RainMaker-и худ назорати тарафи сеюмро ба даст оранд. Дар расми 3.4 нишона ва UI собиқ нишон дода шудаастampравшании лампаро мутаносибан дар Alexa, Google Home ва ESP RainMaker App.

24 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

(а) Масаланample - Alexa

(б) Мисолample - Google Home

(в) Мисолample - ESP RainMaker
Расми 3.4. Мисampтасвирҳо ва интерфейси UI чароғаки лампа дар Alexa, Google Home ва ESP RainMaker App
3.3 Амал: Нуқтаҳои асосӣ барои таҳия бо ESP RainMaker
Пас аз ба итмом расидани қабати драйвери дастгоҳ, таҳиягарон метавонанд ба эҷоди моделҳои TSL ва коркарди маълумот бо истифода аз API-ҳои аз ҷониби RainMaker SDK пешниҳодшуда оғоз кунанд ва хидматҳои асосии ESP RainMaker-ро дар асоси таъриф ва талаботҳои маҳсулот фаъол созанд.
Боби 3. Муқаддима ба ESP RainMaker 25

Қисми 9.4-и ин китоб татбиқи чароғи интеллектуалии LED-ро дар RainMaker шарҳ медиҳад. Ҳангоми ислоҳкунӣ, таҳиягарон метавонанд асбобҳои CLI-ро дар RainMaker SDK истифода баранд, то бо нури интеллектуалӣ муошират кунанд (ё REST API-ро аз Swagger занг зананд).
Боби 10 истифодаи REST API-ро дар таҳияи замимаҳои смартфон таҳия мекунад. Навсозии OTA-и чароғҳои интеллектуалии LED дар боби 11 баррасӣ карда мешавад. Агар таҳиягарон мониторинги дурдасти ESP Insights-ро фаъол карда бошанд, паси идоракунии ESP RainMaker маълумоти ESP Insights -ро намоиш медиҳад. Тафсилот дар боби 15 оварда мешавад.
ESP RainMaker густариши хусусиро дастгирӣ мекунад, ки аз сервери ҷамъиятии RainMaker бо роҳҳои зерин фарқ мекунад:
Хизматрасонии даъво Барои тавлиди сертификатҳо дар густариши хусусӣ, ба ҷои даъво истифода бурдани Admin RainMaker CLI лозим аст. Бо сервери ҷамъиятӣ, ба таҳиягарон бояд ҳуқуқҳои маъмурӣ барои татбиқи навсозии нармафзор дода шавад, аммо ин дар густариши тиҷоратӣ номатлуб аст. Аз ин рӯ, на хидмати аутентификатсияи алоҳида барои даъвои худ ва на ҳуқуқи администратор барои даъвои мизбон ё ёрирасон таъмин карда намешавад.
Барномаҳои телефонӣ Дар ҷойгиркунии хусусӣ, барномаҳо бояд алоҳида танзим ва тартиб дода шаванд, то боварӣ ҳосил кунанд, ки системаҳои ҳисоб бо ҳам корношоям нестанд.
Воридшавӣ аз тарафи сеюм ва ҳамгироии овоз Таҳиягарон бояд тавассути ҳисобҳои Google ва Apple Developer алоҳида танзим кунанд, то воридшавии тарафи сеюмро фаъол созанд, инчунин ҳамгироии Alexa Skill ва Google Voice Assistant.
Маслиҳатҳо Барои гирифтани тафсилот дар бораи ҷойгиркунии абр, лутфан ба https://customer.rainmaker.espressif муроҷиат кунед. com. Дар робита ба нармафзори миёнаравӣ, муҳоҷират аз сервери ҷамъиятӣ ба сервери хусусӣ танҳо иваз кардани сертификатҳои дастгоҳро талаб мекунад, ки самаранокии муҳоҷиратро хеле беҳтар мекунад ва хароҷоти муҳоҷират ва ислоҳи дуюмдараҷаро коҳиш медиҳад.
3.4 Хусусиятҳои ESP RainMaker
Хусусиятҳои ESP RainMaker асосан ба се ҷанба нигаронида шудаанд - идоракунии корбар, корбарони ниҳоӣ ва маъмурон. Ҳама хусусиятҳо дар серверҳои ҷамъиятӣ ва хусусӣ дастгирӣ мешаванд, агар тартиби дигаре пешбинӣ нашуда бошад.
3.4.1 Идоракунии корбар
Хусусиятҳои идоракунии корбарон ба корбарони ниҳоӣ имкон медиҳанд, ки сабти ном кунанд, ворид шаванд, паролҳоро иваз кунанд, паролҳоро гиранд ва ғайра.
26 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Сабти ном ва ворид шудан Усулҳои бақайдгирӣ ва воридшавӣ, ки аз ҷониби RainMaker дастгирӣ мешаванд, иборатанд аз: · ID-и почтаи электронӣ + Рамз + Рақами телефон + Рамз · Ҳисоби Google · Ҳисоби Apple · Ҳисоби GitHub (танҳо сервери ҷамъиятӣ) · Ҳисоби Amazon (танҳо сервери хусусӣ)
ЭЗОҲ Бо истифода аз Google/Amazon ба қайд гиред, суроғаи почтаи электронии корбарро бо RainMaker мубодила мекунад. Бо истифода аз Apple сабти ном кунед, ки Apple суроғаи ғамгинеро мубодила мекунад, ки Apple барои корбар махсус барои хидмати RainMaker таъин мекунад. Барои корбароне, ки бори аввал бо ҳисоби Google, Apple ё Amazon ворид мешаванд, ҳисоби RainMaker ба таври худкор эҷод карда мешавад.
Тағйир додани парол танҳо барои воридшавии почтаи электронӣ/рақами телефон эътибор дорад. Ҳама сессияҳои фаъоли дигар пас аз иваз кардани парол хориҷ мешаванд. Тибқи рафтори AWS Cognito, сессияҳои хориҷшуда метавонанд то 1 соат фаъол бошанд.
Гирифтани парол Танҳо барои воридшавии почтаи электронӣ/рақами телефон эътибор дорад.
3.4.2 Хусусиятҳои корбари ниҳоӣ
Хусусиятҳое, ки барои корбарони ниҳоӣ кушодаанд, дорои назорати маҳаллӣ ва дурдаст ва назорат, ҷадвалбандӣ, гурӯҳбандии дастгоҳҳо, мубодилаи дастгоҳ, огоҳиҳои push ва ҳамгироии тарафи сеюм мебошанд.
Назорати дурдаст ва назорат · Конфигуратсияи дархост, арзишҳои параметрҳо ва ҳолати пайвастшавӣ барои як ё ҳамаи дастгоҳҳо. · Параметрҳоро барои дастгоҳҳои як ё якчанд дастгоҳ таъин кунед.
Назорати маҳаллӣ ва мониторинг Телефони мобилӣ ва дастгоҳ барои назорати маҳаллӣ бояд ба як шабака пайваст карда шаванд.
Банақшагирӣ · Истифодабарандагон амалҳои муайянро дар вақти муайян пешакӣ муқаррар кардаанд. · Ҳангоми иҷрои ҷадвал барои дастгоҳ пайвасти интернет лозим нест. · Як маротиба ё такрор (бо муайян кардани рӯзҳо) барои дастгоҳҳои як ё якчанд.
Гурӯҳбандии дастгоҳҳо гурӯҳбандии абстрактии бисёрсатҳиро дастгирӣ мекунад Метамаълумоти гурӯҳро барои эҷоди сохтори утоқи хонагӣ истифода бурдан мумкин аст.
Боби 3. Муқаддима ба ESP RainMaker 27

Мубодилаи дастгоҳ Як ё якчанд дастгоҳро бо як ё якчанд корбар мубодила кардан мумкин аст.
Огоҳиҳои Push Истифодабарандагони ниҳоӣ дар бораи рӯйдодҳо огоҳиномаҳои push мегиранд, ба мисли · Дастгоҳ(ҳо)-и нав иловашуда/нестшуда · Дастгоҳ ба абр пайваст · Дастгоҳ аз абр ҷудо карда шудааст · Дархостҳои мубодилаи дастгоҳ эҷод/қабул/рад карда шудааст · Паёмҳои огоҳие, ки аз ҷониби дастгоҳҳо хабар дода шудаанд
Интегратсияҳои тарафи сеюм Alexa ва Google Voice Assistant барои идоракунии дастгоҳҳои RainMaker, аз ҷумла чароғҳо, коммутаторҳо, розеткаҳо, мухлисон ва сенсорҳои ҳарорат дастгирӣ карда мешаванд.
3.4.3 Хусусиятҳои маъмур
Хусусиятҳои маъмур ба маъмурон имкон медиҳанд, ки бақайдгирии дастгоҳ, гурӯҳбандии дастгоҳҳо ва такмилдиҳии OTA ва view омор ва маълумоти ESP Insights.
Бақайдгирии дастгоҳ Шаҳодатномаҳои дастгоҳро эҷод кунед ва дар Admin CLI сабти ном кунед (танҳо сервери хусусӣ).
Гурӯҳбандии дастгоҳҳо дар асоси маълумоти дастгоҳ гурӯҳҳои абстрактӣ ё сохториро эҷод кунед (танҳо сервери хусусӣ).
Такмилдиҳии Over-the-Air (OTA) Барномаҳои нармафзорро дар асоси версия ва модел ба як ё якчанд дастгоҳ ё гурӯҳ Монитор, бекор ё бойгонии корҳои OTA бор кунед.
View омор ViewОмори қобили қабул иборат аст аз: · Бақайдгирии дастгоҳ (шаҳодатномаҳои аз ҷониби маъмур ба қайд гирифташуда) · Фаъолсозии дастгоҳ (дастгоҳ бори аввал пайваст карда шудааст) · Ҳисобҳои корбар · Ассотсиатсияи дастгоҳҳои корбар
View Маълумоти ESP Insights ViewМаълумоти қобили қабули ESP Insights инҳоро дар бар мегирад: · Хатогиҳо, огоҳиҳо ва гузоришҳои фармоишӣ · Ҳисоботҳо ва таҳлили садамаҳо · Сабабҳои азнавборкунӣ · Метрикҳо ба монанди истифодаи хотира, RSSI ва ғайра. · Метрикҳо ва тағирёбандаҳои фармоишӣ
28 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

3.5 Хулоса
Дар ин боб, мо баъзе фарқиятҳои калидӣ байни ҷойгиркунии оммавии RainMaker ва густариши хусусиро муаррифӣ кардем. Ҳалли хусусии ESP RainMaker, ки аз ҷониби Espressif оғоз шудааст, хеле боэътимод ва васеъшаванда аст. Ҳама микросхемаҳои силсилаи ESP32 ба AWS пайваст ва мутобиқ карда шудаанд, ки ин хароҷотро хеле кам мекунад. Таҳиягарон метавонанд бидуни омӯхтани маҳсулоти абрии AWS ба санҷиши прототип таваҷҷӯҳ кунанд. Мо инчунин татбиқ ва хусусиятҳои ESP RainMaker ва баъзе нуктаҳои асосии рушдро бо истифода аз платформа шарҳ додем.
Барои зеркашии ESP RainMaker барои Android скан барои зеркашии ESP RainMaker барои iOS
Боби 3. Муқаддима ба ESP RainMaker 29

30 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Боби таъсиси 4 Муҳити рушд
Ин боб ба ESP-IDF, чаҳорчӯбаи расмии таҳияи нармафзор барои ESP32-C3 тамаркуз мекунад. Мо мефаҳмонем, ки чӣ тавр муҳити атрофро дар системаҳои гуногуни амалиётӣ таъсис додан, сохтори лоиҳа ва системаи сохтани ESP-IDF, инчунин истифодаи абзорҳои марбути рушдро муаррифӣ мекунем. Сипас, мо раванди тартиб додан ва иҷро кардани собиқро пешниҳод мекунемample лоиҳа, ҳангоми пешниҳоди шарҳи муфассали гузориши баромад дар ҳар як сtage.
4.1 ESP-IDF гузаштаастview
ESP-IDF (Espressif IoT Development Framework) як чаҳорчӯбаи рушди IoT мебошад, ки аз ҷониби Espressif Technology пешниҳод шудааст. Он C/C++-ро ҳамчун забони асосии рушд истифода мебарад ва компилясияи байниҳамдигариро дар системаҳои асосии амалиётӣ ба монанди Linux, Mac ва Windows дастгирӣ мекунад. собиқampБарномаҳои дар ин китоб дохилшуда бо истифода аз ESP-IDF таҳия шудаанд, ки хусусиятҳои зеринро пешниҳод мекунанд: · Драйверҳои сатҳи системаи SoC. ESP-IDF дорои драйверҳо барои ESP32, ESP32-S2, ESP32-C3,
ва дигар чипҳо. Ин драйверҳо китобхонаи сатҳи пасти периферӣ (LL), китобхонаи қабати абстраксияи сахтафзор (HAL), дастгирии RTOS ва нармафзори драйвери қабати болоӣ ва ғайраро дар бар мегиранд. · Ҷузъҳои муҳим. ESP-IDF ҷузъҳои бунёдии барои рушди IoT заруриро дар бар мегирад. Ба ин стекҳои сершумори протоколҳои шабакавӣ, аз қабили HTTP ва MQTT, чаҳорчӯбаи идоракунии нерӯ бо модулятсияи басомади динамикӣ ва хусусиятҳо ба монанди Flash Encryption ва Secure Boot ва ғайра дохил мешаванд. · Воситаҳои таҳия ва истеҳсолӣ. ESP-IDF абзорҳои маъмулан истифодашавандаро барои сохтан, флешдор кардан ва ислоҳ кардан ҳангоми таҳия ва истеҳсоли оммавӣ таъмин мекунад (ниг. Расми 4.1), ба монанди системаи сохтмонӣ дар асоси CMake, силсилаи абзорҳои байниҳамдигарии бар асоси GCC ва J.TAG абзори ислоҳи ислоҳ дар асоси OpenOCD ва ғайра. Бояд қайд кард, ки рамзи ESP-IDF пеш аз ҳама ба иҷозатномаи кушодаи Apache 2.0 мувофиқат мекунад. Истифодабарандагон метавонанд нармафзори шахсӣ ё тиҷоратиро бидуни маҳдудият ҳангоми риояи шартҳои иҷозатномаи кушодаасос таҳия кунанд. Илова бар ин, ба корбарон литсензияҳои доимии патентӣ ройгон дода мешаванд, бидуни ӯҳдадории кушодани ҳама гуна тағйироте, ки ба коди ибтидоӣ ворид карда шудаанд.
31

Расми 4.1.

Сохтмон, дурахш кардан ва ислоҳ кардан-

асбобҳои гин барои рушд ва истеҳсоли оммавӣ

4.1.1 Версияҳои ESP-IDF
Рамзи ESP-IDF дар GitHub ҳамчун лоиҳаи кушодаасос ҷойгир карда шудааст. Дар айни замон, се версияи асосӣ мавҷуданд: v3, v4 ва v5. Ҳар як версияи асосӣ одатан дорои таҳрирҳои гуногун, ба монанди v4.2, v4.3, ва ғайра. Espressif Systems дастгирии 30-моҳаро барои ислоҳи хатогиҳо ва часбҳои амниятӣ барои ҳар як зерверсияи баровардашуда таъмин мекунад. Аз ин рӯ, таҷдиди таҳрирҳо низ мунтазам нашр карда мешаванд, ба монанди v4.3.1, v4.2.2 ва ғайра. Ҷадвали 4.1 ҳолати дастгирии версияҳои гуногуни ESP-IDF-ро барои микросхемаҳои Espressif нишон медиҳад, ки оё онҳо дар ҳолати қаблӣ қарор доранд ё не.view stagд (пешниҳоди дастгирӣ барои пешview версияҳое, ки метавонанд хусусиятҳои муайян ё ҳуҷҷат надошта бошанд) ё расман дастгирӣ карда мешаванд.

Љадвали 4.1. Ҳолати дастгирии версияҳои гуногуни ESP-IDF барои микросхемаҳои Espressif

Силсилаи ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2

v4.1 дастгирӣ карда мешавад

v4.2 дастгирӣ карда мешавад

v4.3 дастгирӣ дастгирӣ дастгирӣ дастгирӣ

v4.4 дастгирӣ дастгирӣ дастгирӣ дастгирӣ дастгирӣ
пешview

v5.0 дастгирӣ карда мешавадview

32 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Итератсияи версияҳои асосӣ аксар вақт ислоҳоти сохтори чаҳорчӯба ва навсозии системаи компиляцияро дар бар мегирад. Барои мисолample, тағйироти асосӣ аз v3.* ба v4.* ин муҳоҷирати тадриҷии системаи сохтмон аз Make ба CMake буд. Аз тарафи дигар, такрори версияҳои хурд одатан илова кардани хусусиятҳои нав ё дастгирии микросхемаҳои навро дар бар мегирад.
Фарқ кардан ва фаҳмидани муносибати байни версияҳои устувор ва шохаҳои GitHub муҳим аст. Версияҳое, ки ҳамчун v*.* ё v*.*.* нишон дода шудаанд, версияҳои устувореро ифода мекунанд, ки аз санҷиши пурраи дохилии Espressif гузаштаанд. Пас аз ислоҳ, код, занҷири асбобҳо ва ҳуҷҷатҳои релиз барои як версия бетағйир мемонанд. Бо вуҷуди ин, филиалҳои GitHub (масалан, филиали релиз/v4.3) зуд-зуд иҷро кардани кодҳо, аксар вақт дар асоси ҳаррӯза мегузаранд. Аз ин рӯ, ду пораи код дар як шоха метавонанд фарқ кунанд, ки таҳиягаронро тақозо мекунад, ки коди худро мувофиқан зуд нав кунанд.
4.1.2 Ҷараёни кории ESP-IDF Git
Espressif ҷараёни кории мушаххаси Git-ро барои ESP-IDF пайгирӣ мекунад, ки ба таври зерин тавсиф шудааст:
· Тағйироти нав дар филиали асосӣ, ки ҳамчун шохаи асосии рушд хизмат мекунад, ворид карда мешаванд. Версияи ESP-IDF дар шохаи асосӣ ҳамеша як -dev дорад tag нишон диҳад, ки он дар ҳоли таҳия аст, ба монанди v4.3-dev. Тағирот дар филиали асосӣ аввал аз нав хоҳад будviewed ва дар анбори дохилии Espressif озмуда шуд ва пас аз анҷоми санҷиши автоматӣ ба GitHub интиқол дода шуд.
· Вақте ки версияи нав коркарди хусусиятҳоро дар шохаи асосӣ анҷом дод ва ба меъёрҳои воридшавӣ ба санҷиши бета мувофиқат кард, он ба шохаи нав мегузарад, ба монанди релиз/v4.3. Илова бар ин, ин филиали нав аст tagged ҳамчун версияи пеш аз нашр, ба монанди v4.3-beta1. Таҳиягарон метавонанд ба платформаи GitHub муроҷиат кунанд, то ба рӯйхати пурраи филиалҳо дастрасӣ пайдо кунанд ва tags барои ESP-IDF. Бояд қайд кард, ки версияи бета (версияи пеш аз нашр) метавонад шумораи зиёди масъалаҳои маълум дошта бошад. Азбаски версияи бета аз санҷиши пайваста мегузарад, ислоҳи хатогиҳо ҳам ба ин версия ва ҳам ба филиали асосӣ илова карда мешаванд. Дар ҳамин ҳол, филиали асосӣ шояд аллакай ба таҳияи хусусиятҳои нав барои версияи навбатӣ шурӯъ карда бошад. Вақте ки санҷиш қариб ба итмом мерасад, ба филиал тамғаи релиз (rc) илова карда мешавад, ки нишон медиҳад, ки он номзади эҳтимолӣ барои нашри расмӣ аст, ба монанди v4.3-rc1. Дар ин сtagд, филиал як нусхаи пеш аз нашр боқӣ мемонад.
· Агар ягон хатогиҳои асосӣ ошкор ё гузориш нашаванд, версияи пешазинтихоботӣ дар ниҳоят тамғаи версияи асосӣ (масалан, v5.0) ё тамғаи версияи хурд (масалан, v4.3) мегирад ва ба версияи расмии релиз табдил меёбад, ки ҳуҷҷатгузорӣ шудааст. дар саҳифаи ёддоштҳои нашр. Баъдан, ҳама хатогиҳои дар ин версия муайяншуда дар филиали релиз ислоҳ карда мешаванд. Пас аз анҷоми санҷиши дастӣ, ба филиал тамғаи версияи ислоҳи хатогӣ таъин карда мешавад (масалан, v4.3.2), ки он низ дар саҳифаи қайдҳои нашр инъикос ёфтааст.
Боби 4. Таъсиси муҳити рушд 33

4.1.3 Интихоби версияи мувофиқ
Азбаски ESP-IDF расман дастгирии ESP32-C3-ро аз версияи v4.3 оғоз кард ва v4.4 дар замони навиштани ин китоб расман нашр нашудааст, версияи дар ин китоб истифодашуда v4.3.2 мебошад, ки версияи ислоҳшуда мебошад аз v4.3. Бо вуҷуди ин, бояд қайд кард, ки вақте ки шумо ин китобро мехонед, версияҳои v4.4 ё навтар метавонанд аллакай дастрас бошанд. Ҳангоми интихоби версия, мо тавсия медиҳем, ки инҳоянд:
· Барои таҳиягарони сатҳи ибтидоӣ, тавсия дода мешавад, ки версияи устувори v4.3 ё версияи ислоҳшудаи онро, ки бо версияи қаблӣ мувофиқат мекунад, интихоб кунед.ampнусхаи le дар ин китоб истифода шудааст.
· Бо мақсади истеҳсоли оммавӣ, тавсия дода мешавад, ки версияи охирини устуворро истифода баред, то аз дастгирии техникии навтарин баҳра баред.
· Агар шумо ният доред, ки бо микросхемаҳои нав таҷриба кунед ё хусусиятҳои нави маҳсулотро кашф кунед, лутфан филиали усторо истифода баред. Версияи охирин дорои тамоми хусусиятҳои навтарин аст, аммо дар хотир доред, ки хатогиҳои маълум ё номаълум мавҷуданд.
· Агар версияи устувори истифодашаванда хусусиятҳои нави дилхоҳро дар бар нагирад ва шумо хоҳед, ки хатарҳои марбут ба филиали асосӣ кам карда шавад, истифода бурдани шохаи барориши мувофиқ, ба монанди шохаи релиз/v4.4-ро баррасӣ кунед. Анбори GitHub-и Espressif аввал филиали релиз/v4.4-ро эҷод мекунад ва баъдан версияи устувори v4.4-ро дар асоси акси мушаххаси таърихии ин филиал пас аз анҷоми тамоми таҳия ва санҷиши хусусиятҳо мебарорад.
4.1.4 Бештарview Феҳристи ESP-IDF SDK
ESP-IDF SDK аз ду директорияи асосӣ иборат аст: esp-idf ва .espressif. Дар аввал рамзи сарчашмаи анбори ESP-IDF мавҷуд аст files ва скриптҳои компилятсионӣ, дар ҳоле ки охирин асосан занҷирҳои абзорҳои компиляция ва дигар нармафзорҳоро нигоҳ медорад. Шинос шудан бо ин ду директория ба таҳиягарон кӯмак мекунад, ки захираҳои мавҷударо беҳтар истифода баранд ва раванди таҳияро суръат бахшанд. Сохтори феҳристи ESP-IDF дар зер тавсиф шудааст:
(1) Феҳристи рамзи анбори ESP-IDF (/esp/esp-idf), тавре ки дар расми 4.2 нишон дода шудааст.
а. Компонентҳои феҳристи ҷузъҳо
Ин феҳристи аслӣ ҷузъҳои зиёди нармафзори муҳими ESP-IDF-ро муттаҳид мекунад. Ягон рамзи лоиҳаро бидуни такя ба ҷузъҳои дохили ин феҳрист тартиб додан мумкин нест. Он дастгирии драйверҳоро барои микросхемаҳои гуногуни Espressif дар бар мегирад. Аз китобхонаи LL ва интерфейсҳои китобхонаи HAL барои дастгоҳҳои периферӣ то драйвери сатҳи болоӣ ва виртуалӣ File Дастгирии қабати система (VFS), таҳиягарон метавонанд ҷузъҳои мувофиқро дар сатҳҳои гуногун барои эҳтиёҷоти рушди худ интихоб кунанд. ESP-IDF инчунин якчанд стекҳои протоколҳои стандартии шабакаро дастгирӣ мекунад, ба монанди TCP/IP, HTTP, MQTT, WebСокет ва ғайра. Таҳиягарон метавонанд интерфейсҳои шиносро ба мисли Socket барои сохтани замимаҳои шабакавӣ истифода баранд. Компонентҳо фарогирро таъмин мекунанд
34 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Расми 4.2. Феҳристи рамзи анбори ESP-IDF
функсионалии пурқувват аст ва метавонад ба осонӣ ба барномаҳо ворид карда шавад, ки ба таҳиягарон имкон медиҳад, ки танҳо ба мантиқи тиҷорат тамаркуз кунанд. Баъзе ҷузъҳои маъмул иборатанд аз: · драйвер: Ин ҷузъ дорои барномаҳои периферии драйверҳо барои Espressif гуногун мебошад
силсилаи чипҳо, аз қабили GPIO, I2C, SPI, UART, LEDC (PWM) ва ғайра. Барномаҳои драйвери периферӣ дар ин ҷузъ интерфейсҳои абстрактии мустақили чипро пешниҳод мекунанд. Ҳар як дастгоҳ сарлавҳаи умумӣ дорад file (ба монанди gpio.h), аз байн бурдани зарурати мубориза бо саволҳои гуногуни дастгирии чипи мушаххас. · esp_wifi: Wi-Fi, ҳамчун периферии махсус, ҳамчун ҷузъи алоҳида баррасӣ карда мешавад. Он API-ҳои сершуморро дар бар мегирад, аз қабили оғоз кардани шеваҳои гуногуни драйвери Wi-Fi, конфигуратсияи параметрҳо ва коркарди рӯйдодҳо. Функсияҳои муайяни ин ҷузъ дар шакли китобхонаҳои истинодҳои статикӣ таъмин карда мешаванд. ESP-IDF инчунин ҳуҷҷатҳои мукаммали ронандаро барои осонии истифода пешниҳод мекунад.
Боби 4. Таъсиси муҳити рушд 35

· freertos: Ин ҷузъ рамзи пурраи FreeRTOS-ро дар бар мегирад. Илова ба дастгирии ҳамаҷонибаи ин системаи оператсионӣ, Espressif инчунин дастгирии худро ба микросхемаҳои дуҷониба васеъ кардааст. Барои микросхемаҳои дуҷониба монанди ESP32 ва ESP32-S3, корбарон метавонанд дар ядроҳои мушаххас вазифаҳо эҷод кунанд.
б. Ҳуҷҷатҳои феҳристи ҳуҷҷат
Ин феҳрист дорои ҳуҷҷатҳои марбут ба таҳияи ESP-IDF, аз ҷумла Дастури оғозёбӣ, дастури API, Дастури таҳия ва ғайра мебошад.
ЭЗОҲ Пас аз тартиб додани асбобҳои худкор, мундариҷаи ин директория дар https://docs.espressif.com/projects/esp-idf ҷойгир карда мешавад. Лутфан боварӣ ҳосил кунед, ки ҳадафи ҳуҷҷатро ба ESP32-C3 иваз кунед ва версияи муайяншудаи ESP-IDF-ро интихоб кунед.
в. Воситаҳои скрипт
Ин феҳрист дорои абзорҳои пешқадами маъмулан истифодашаванда, аз қабили idf.py ва абзори терминали монитор idf_monitor.py ва ғайра мебошад. Зердиректорияи cmake инчунин скрипти аслӣ дорад. files системаи компилятсионӣ, ки ҳамчун асос барои татбиқи қоидаҳои тартибдиҳии ESP-IDF хизмат мекунад. Ҳангоми илова кардани тағирёбандаҳои муҳити зист, мундариҷа дар феҳристи асбобҳо ба тағирёбандаи муҳити система илова карда мешавад, ки ба idf.py имкон медиҳад, ки бевосита дар зери роҳи лоиҳа иҷро карда шавад.
г. Мисолampфеҳристи барнома, собиқamples
Ин феҳрист маҷмӯи васеи ESP-IDF-ро дар бар мегирадample барномаҳое, ки истифодаи API-ҳои компонентро нишон медиҳанд. собиқamples аз рӯи категорияҳои худ ба зеркаталогҳои гуногун тақсим карда мешаванд:
· Оғози кор: Ин зеркаталог дорои сатҳи ибтидоӣ мебошадamples ба монанди "салом ҷаҳон" ва "мижа задан" барои кӯмак ба корбарон дар фаҳмидани асосҳо.
· bluetooth: Шумо метавонед пеш аз Bluetooth алоқамандро пайдо кунедamples дар ин ҷо, аз ҷумла Bluetooth LE Mesh, Bluetooth LE HID, BluFi, ва ғайра.
· wifi: Ин зеркаталог ба Wi-Fi собиқ тамаркуз мекунадamples, аз ҷумла барномаҳои асосӣ ба монанди Wi-Fi SoftAP, Wi-Fi Station, espnow, инчунин протоколи алоқаи хусусии собиқamples аз Espressif. Он инчунин қабатҳои сершумори барномаро дар бар мегирад, масаланamples дар асоси Wi-Fi, ба монанди Iperf, Sniffer ва Smart Config.
· дастгоҳҳои периферӣ: Ин зерпеҳристи васеъ минбаъд дар асоси номҳои периферӣ ба зерпапкаҳои сершумор тақсим карда мешавад. Он асосан дорои драйвери периферии собиқamples барои микросхемаҳои Espressif, бо ҳар як собиқample дорои якчанд зерсохторҳоampЛес. Масалан, зердиректорияи gpio ду собиқро дар бар мегирадamples: клавиатураи матритсаи GPIO ва GPIO. Бояд қайд кард, ки на ҳама собиқamples дар ин феҳрист ба ESP32-C3 татбиқ мешаванд.
36 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Барои мисолampле, собиқamples дар usb/host танҳо ба дастгоҳҳои канории дорои сахтафзори USB Host (ба монанди ESP32-S3) татбиқ мешаванд ва ESP32-C3 ин перифериро надорад. Системаи мураттабсозӣ одатан ҳангоми таъини ҳадаф дастурҳоро пешниҳод мекунад. README file аз ҳар як собиқample микросхемаҳои дастгирӣшударо номбар мекунад. · протоколҳо: Ин зеркаталог дорои собиқamples барои протоколҳои гуногуни иртиботӣ, аз ҷумла MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, ки доираи васеи протоколҳои иртиботиро дар бар мегиранд.ampбарои рушди IoT лозим аст. · Таъминкунӣ: Дар ин ҷо шумо провизияро пайдо мекунедamples барои усулҳои гуногун, аз қабили таъмини Wi-Fi ва таъмини Bluetooth LE. · система: Ин зеркаталог дар бар мегирад debugging система, собиқamples (масалан, пайгирии стек, пайгирии вақти корӣ, мониторинги вазифаҳо), идоракунии нерӯ, масаланamples (масалан, режимҳои гуногуни хоб, протсессори муштарак) ва собиқampчизҳои марбут ба ҷузъҳои умумии система ба монанди терминали консол, даври рӯйдодҳо ва таймери система. · нигаҳдорӣ: Дар дохили ин зеркаталог, шумо собиқampаз ҳама file системаҳо ва механизмҳои нигоҳдорӣ, ки аз ҷониби ESP-IDF дастгирӣ мешаванд (ба монанди хондан ва навиштани Flash, корти SD ва дигар воситаҳои нигоҳдорӣ), инчунинampнигоҳдории ғайримуқаррарӣ (NVS), FatFS, SPIFFS ва ғайра file амалиёти система. · амният: Ин зеркаталог дорои собиқamples марбут ба рамзгузории флеш. (2) Феҳристи силсилаи асбобҳои тартибдиҳии ESP-IDF (/.espressif), тавре ки дар расми 4.3 нишон дода шудааст.
Расми 4.3. Феҳристи силсилаи абзорҳои ESP-IDF
Боби 4. Таъсиси муҳити рушд 37

а. Феҳристи тақсимоти нармафзор dist
Занҷири асбобҳои ESP-IDF ва дигар нармафзорҳо дар шакли бастаҳои фишурда тақсим карда мешаванд. Ҳангоми насбкунӣ, асбоби насбкунӣ аввал бастаи фишурдашударо ба директорияи dist зеркашӣ мекунад ва сипас онро ба директорияи муайяншуда истихроҷ мекунад. Пас аз ба итмом расидани насб, мундариҷаи ин директорияро бехатар нест кардан мумкин аст.
б. Феҳристи муҳити виртуалии Python python env
Версияҳои гуногуни ESP-IDF ба версияҳои мушаххаси бастаҳои Python такя мекунанд. Насб кардани ин бастаҳо бевосита дар як ҳост метавонад боиси ихтилофи байни версияҳои бастаҳо гардад. Барои ҳалли ин, ESP-IDF муҳитҳои виртуалии Python-ро барои ҷудо кардани версияҳои гуногуни бастаҳо истифода мебарад. Бо ин механизм, таҳиягарон метавонанд версияҳои сершумори ESP-IDF-ро дар як ҳост насб кунанд ва тавассути ворид кардани тағирёбандаҳои гуногуни муҳити зист ба осонӣ байни онҳо гузаранд.
в. Воситаҳои феҳристи силсилаи абзорҳои ESP-IDF
Ин феҳрист асосан дорои абзорҳои байниҳамдигариро дар бар мегирад, ки барои таҳияи лоиҳаҳои ESP-IDF заруранд, ба монанди абзорҳои CMake, асбобҳои сохтани Ninja ва занҷири асбобҳои gcc, ки барномаи ниҳоии иҷрошавандаро тавлид мекунанд. Илова бар ин, дар ин феҳрист китобхонаи стандартии забони C/C++ бо сарлавҳаи мувофиқ ҷойгир аст fileс. Агар барнома ба сарлавҳаи система муроҷиат кунад file мисли #include , занҷири абзорҳои тартибдиҳӣ stdio.h-ро ҷойгир мекунад file дар дохили ин феҳрист.
4.2 Таъсиси муҳити рушди ESP-IDF
Муҳити таҳияи ESP-IDF системаҳои асосии амалиётиро ба монанди Windows, Linux ва macOS дастгирӣ мекунад. Ин бахш муаррифӣ хоҳад кард, ки чӣ гуна муҳити таҳияро дар ҳар як система таъсис додан мумкин аст. Тавсия дода мешавад, ки ESP32-C3 дар системаи Linux таҳия карда шавад, ки дар ин ҷо ба таври муфассал муаррифӣ карда мешавад. Бисёре аз дастурҳо аз сабаби шабоҳати асбобҳои таҳия дар саросари платформаҳо татбиқ мешаванд. Аз ин рӯ, тавсия дода мешавад, ки мундариҷаи ин бахшро бодиққат хонед.
ЭЗОҲ Шумо метавонед ба ҳуҷҷатҳои онлайн дар https://bookc3.espressif.com/esp32c3 муроҷиат кунед, ки фармонҳои дар ин бахш зикршударо таъмин мекунанд.
4.2.1 Ташкили муҳити рушди ESP-IDF дар Linux
Воситаҳои таҳия ва ислоҳи GNU, ки барои муҳити таҳияи ESP-IDF лозиманд, барои системаи Linux аслӣ мебошанд. Илова бар ин, терминали сатри фармон дар Linux пуриқтидор ва барои корбар дӯстона буда, онро интихоби беҳтарин барои таҳияи ESP32-C3 месозад. Ту метавонӣ
38 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

тақсимоти Linux-ро интихоб кунед, аммо мо тавсия медиҳем, ки Ubuntu ё дигар системаҳои Debian-ро истифода барем. Ин бахш дастур оид ба таъсиси муҳити таҳияи ESP-IDF дар Ubuntu 20.04 пешниҳод мекунад.
1. Бастаҳои лозимиро насб кунед
Терминали нав кушоед ва фармони зеринро барои насб кардани ҳама бастаҳои зарурӣ иҷро кунед. Фармон ба таври худкор бастаҳоеро, ки аллакай насб шудаанд, мегузаранд.
$ sudo apt-get насб кунед git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-сохтани ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Маслиҳатҳо Шумо бояд ҳисоби администратор ва паролро барои фармони боло истифода баред. Бо нобаёнӣ, ҳангоми ворид кардани парол ягон маълумот намоиш дода намешавад. Барои идома додани раванд танҳо тугмаи "Enter" -ро пахш кунед.
Git як воситаи калидии идоракунии код дар ESP-IDF мебошад. Пас аз бомуваффақият насб кардани муҳити рушд, шумо метавонед фармони git log -ро истифода баред view ҳама тағйироти код пас аз таъсиси ESP-IDF. Илова бар ин, Git инчунин дар ESP-IDF барои тасдиқи маълумоти версия истифода мешавад, ки барои насб кардани силсилаи асбобҳои мувофиқ ба версияҳои мушаххас зарур аст. Дар баробари Git, дигар абзорҳои муҳими системавӣ Python мебошанд. ESP-IDF скриптҳои сершумори автоматикунониро дар бар мегирад, ки дар Python навишта шудаанд. Асбобҳо ба монанди CMake, Ninja-build ва Ccache дар лоиҳаҳои C/C++ ба таври васеъ истифода мешаванд ва ҳамчун абзорҳои пешфарз тартиб додани код ва асбобҳои сохтани ESP-IDF хизмат мекунанд. libusb-1.0-0 ва dfu-util драйверҳои асосие мебошанд, ки барои иртиботи силсилавии USB ва сӯзондани нармафзор истифода мешаванд. Пас аз насб кардани бастаҳои нармафзор, шумо метавонед аз намоиши apt истифода баред фармон барои гирифтани тавсифи муфассали ҳар як баста. Барои мисолample, apt show git -ро барои чопи маълумоти тавсифӣ барои абзори Git истифода баред.
Савол: Чӣ бояд кард, агар версияи Python дастгирӣ нашавад? A: ESP-IDF v4.3 версияи Python-ро талаб мекунад, ки на камтар аз v3.6. Барои версияҳои кӯҳнаи Ubuntu, лутфан версияи баландтари Python-ро дастӣ зеркашӣ ва насб кунед ва Python3-ро ҳамчун муҳити пешфарзии Python насб кунед. Шумо метавонед дастурҳои муфассалро тавассути ҷустуҷӯи калимаи калидии update-alternatives python пайдо кунед.
2. Рамзи анбори ESP-IDF-ро зеркашӣ кунед
Терминалро кушоед ва бо истифода аз фармони mkdir дар феҳристи хонагии худ папкаеро бо номи esp созед. Агар хоҳед, шумо метавонед номи дигареро барои ҷузвдон интихоб кунед. Барои ворид кардани ҷузвдон фармони cd-ро истифода баред.
Боби 4. Таъсиси муҳити рушд 39

$ mkdir -p /esp $ cd /esp
Барои зеркашии рамзи анбори ESP-IDF фармони git clone -ро истифода баред, тавре ки дар зер нишон дода шудааст:
$ git clone -b v4.3.2 - рекурсивӣ https://github.com/espressif/esp-idf.git
Дар фармони боло, параметри -b v4.3.2 версияи зеркашӣро муайян мекунад (дар ин ҳолат, версияи 4.3.2). Параметри -рекурсивӣ кафолат медиҳад, ки ҳамаи зеранборҳои ESP-IDF ба таври рекурсивӣ бор карда мешаванд. Маълумотро дар бораи зер-анборҳо дар .gitmodules пайдо кардан мумкин аст file.
3. Занҷири асбобҳои таҳияи ESP-IDF-ро насб кунед
Espressif скрипти автоматии install.sh-ро барои зеркашӣ ва насби занҷири асбобҳо таъмин мекунад. Ин скрипт версияи ҷории ESP-IDF ва муҳити системаи амалиётиро месанҷад ва сипас версияи мувофиқи бастаҳои абзори Python ва занҷирҳои абзорҳои компиляцияро зеркашӣ ва насб мекунад. Роҳи насби пешфарз барои занҷири асбобҳо /.espressif аст. Ба шумо танҳо лозим аст, ки ба директорияи esp-idf гузаред ва install.sh -ро иҷро кунед.
$ cd /esp/esp-idf $ ./install.sh
Агар шумо занҷири асбобро бомуваффақият насб кунед, терминал нишон медиҳад:
Ҳама иҷро шуд!
Дар ин лаҳза, шумо муҳити таҳияи ESP-IDF-ро бомуваффақият таъсис додед.
4.2.2 Танзими муҳити рушди ESP-IDF дар Windows
1. Насбкунандаи асбобҳои ESP-IDF-ро зеркашӣ кунед
Маслиҳат Тавсия дода мешавад, ки муҳити таҳияи ESP-IDF-ро дар Windows 10 ё болотар насб кунед. Шумо метавонед насбкуниро аз https://dl.espressif.com/dl/esp-idf/ зеркашӣ кунед. Насбкунанда инчунин як нармафзори кушодаасос аст ва рамзи сарчашмаи он метавонад бошад viewнашр дар https: //github.com/espressif/idf-installer.
· Насбкунандаи асбобҳои онлайни ESP-IDF
Ин насбкунанда нисбатан хурд аст, андозаи тақрибан 4 МБ аст ва дар ҷараёни насб бастаҳо ва кодҳои дигар зеркашӣ карда мешаванд. Адвонtage аз насбкунандаи онлайн дар он аст, ки на танҳо метавонад бастаҳои нармафзор ва кодро мувофиқи дархост дар ҷараёни насб зеркашӣ кард, балки инчунин имкон медиҳад, ки ҳама релизҳои дастраси ESP-IDF ва шохаи охирини рамзи GitHub (ба монанди филиали асосӣ) насб карда шаванд. . Камбудӣtage ин аст, ки он дар ҷараёни насб пайвасти шабакаро талаб мекунад, ки метавонад бо сабаби мушкилоти шабака нокомии насбро ба бор орад.
40 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

· Насбкунандаи асбобҳои офлайнии ESP-IDF Ин насбкунанда калонтар буда, тақрибан 1 ГБ андоза дорад ва дорои тамоми бастаҳои нармафзор ва рамзи барои танзими муҳити зист лозим аст. Афзалияти асосйtage аз насбкунандаи офлайнӣ дар он аст, ки он метавонад дар компютерҳои бе дастрасӣ ба Интернет истифода шавад ва дар маҷмӯъ сатҳи муваффақияти насби баландтар дорад. Бояд қайд кард, ки насбкунандаи офлайнӣ метавонад танҳо версияҳои устувори ESP-IDF-ро насб кунад, ки аз ҷониби v*.* ё v*.*.* муайян шудааст.
2. Насбкунандаи асбобҳои ESP-IDF-ро иҷро кунед Пас аз зеркашии версияи мувофиқи насбкунанда (барои мисол ESP-IDF Tools Offline 4.3.2 -ро гиред.ample дар ин ҷо), exe-ро ду маротиба клик кунед file Барои оғоз кардани интерфейси насби ESP-IDF. Дар зер чӣ гуна насб кардани версияи устувори ESP-IDF v4.3.2 бо истифода аз насбкунандаи офлайн нишон медиҳад.
(1) Дар интерфейси "Интихоби забони насбкунӣ", ки дар расми 4.4 нишон дода шудааст, аз рӯйхати афтанда забони истифодашавандаро интихоб кунед.
Расми 4.4. Интерфейси "Забони насбкуниро интихоб кунед" (2) Пас аз интихоби забон, "OK" -ро пахш кунед, то интерфейси "Шартномаи литсензионӣ" -ро пайдо кунед
(ниг. ба расми 4.5). Пас аз бодиққат хондани шартномаи литсензионии насб, "Ман шартномаро қабул мекунам" -ро интихоб кунед ва "Оянда" -ро клик кунед.
Расми 4.5. Интерфейси "Шартномаи литсензионӣ" Боби 4. Таъсиси муҳити рушд 41

(3) Review конфигуратсияи система дар интерфейси "Тафтиши системаи пеш аз насб" (ниг. Расми 4.6). Версияи Windows ва маълумоти нармафзори антивируси насбшударо санҷед. Агар ҳамаи ҷузъҳои конфигуратсия муқаррарӣ бошанд, "Оянда" -ро клик кунед. Дар акси ҳол, шумо метавонед "Рӯйхати пурра" -ро барои ҳалли дар асоси ҷузъҳои асосӣ клик кунед.
Расми 4.6. Маслиҳатҳои интерфейси "Тафтиши система пеш аз насб"
Шумо метавонед гузоришҳоро ба https://github.com/espressif/idf-installer/issues барои кӯмак фиристед. (4) Феҳристи насби ESP-IDF-ро интихоб кунед. Дар ин ҷо, тавре ки дар нишон дода шудааст, D:/.espressif-ро интихоб кунед
Расми 4.7 ва тугмаи "Next" -ро пахш кунед. Лутфан қайд кунед, ки .espressif дар ин ҷо феҳристи пинҳон аст. Пас аз анҷом ёфтани насб, шумо метавонед view мундариҷаи мушаххаси ин феҳрист тавассути кушодани file менеҷер ва намоиш додани ашёи пинҳоншуда.
Расми 4.7. Феҳристи насби ESP-IDF-ро интихоб кунед 42 Adventure Wireless ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

(5) Ҷузъҳоеро, ки бояд насб карда шаванд, санҷед, ки дар расми 4.8 нишон дода шудааст. Тавсия дода мешавад, ки варианти пешфарзро истифода баред, яъне насбро анҷом диҳед ва сипас "Оянда" -ро клик кунед.
Расми 4.8. Компонентҳоро барои насб интихоб кунед (6) Компонентҳои насбшударо тасдиқ кунед ва "Насб" -ро клик кунед, то насби автоматиро оғоз кунед.
раванди қатъкунӣ, тавре ки дар расми 4.9 нишон дода шудааст. Раванди насб метавонад даҳҳо дақиқа давом кунад ва сатри пешрафти раванди насбкунӣ дар расми 4.10 нишон дода шудааст. Лутфан сабр кунед.
Расми 4.9. Омодагӣ ба насб (7) Пас аз анҷоми насб, тавсия дода мешавад, ки санҷед "Бақайдгирии ESP-IDF
Асбобҳои иҷрошаванда ҳамчун истисноҳои Windows Defender…” барои пешгирии нест кардани нармафзори антивирус fileс. Илова кардани ҷузъҳои истисно инчунин метавонад сканҳои зуд-зуд аз ҷониби антивирусро гузаронад
Боби 4. Таъсиси муҳити рушд 43

Расми 4.10. Нармафзори сатри пешрафти насб, ки самаранокии тартиб додани коди системаи Windows-ро хеле беҳтар мекунад. Барои анҷом додани насби муҳити таҳия, тавре ки дар расми 4.11 нишон дода шудааст, тугмаи "Анҷом" -ро клик кунед. Шумо метавонед интихоб кунед "Иҷро кардани муҳити ESP-IDF PowerShell" ё "Иҷроиши фармони ESP-IDF". Равзанаи компиляцияро мустақиман пас аз насб иҷро кунед, то боварӣ ҳосил кунед, ки муҳити таҳия муътадил кор мекунад.
Расми 4.11. Насб анҷом ёфт (8) Муҳити таҳияи насбшударо дар рӯйхати барнома кушоед (ё ESP-IDF 4.3
Терминали CMD ё ESP-IDF 4.3 PowerShell, тавре ки дар расми 4.12 нишон дода шудааст) ва тағирёбандаи муҳити ESP-IDF ҳангоми кор дар терминал ба таври худкор илова карда мешавад. Баъд аз ин, шумо метавонед фармони idf.py-ро барои амалиёт истифода баред. ESP-IDF 4.3 CMD кушодашуда дар расми 4.13 нишон дода шудааст. 44 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Расми 4.12. Муҳити рушд насб карда шудааст
Расми 4.13. ESP-IDF 4.3 CMD
4.2.3 Танзими муҳити рушди ESP-IDF дар Mac
Раванди насб кардани муҳити таҳияи ESP-IDF дар системаи Mac ҳамон тавре аст, ки дар системаи Linux. Фармонҳо барои зеркашии коди репозиторий ва насб кардани занҷири асбобҳо маҳз якхелаанд. Танҳо фармонҳо барои насб кардани бастаҳои вобастагӣ каме фарқ мекунанд. 1. Насб кардани бастаҳои вобастагӣ Терминалро кушоед ва pip, абзори идоракунии бастаи Python -ро бо иҷрои фармони зерин насб кунед:
% sudo pip насби осон
Homebrew, воситаи идоракунии бастаҳо барои macOS -ро бо иҷро кардани фармони зерин насб кунед:
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)"
Бо иҷрои фармони зерин бастаҳои вобастагии заруриро насб кунед:
% Brew python3 насб cmake ninja ccache dfu-util
2. Рамзи анбори ESP-IDF-ро зеркашӣ кунед Барои зеркашии рамзи анбори ESP-IDF дастурҳои дар фасли 4.2.1 овардашударо иҷро кунед. Қадамҳо бо зеркашии системаи Linux якхелаанд.
Боби 4. Таъсиси муҳити рушд 45

3. Занҷири асбобҳои таҳияи ESP-IDF-ро насб кунед
Барои насб кардани силсилаи асбобҳои таҳияи ESP-IDF, дастурҳои дар фасли 4.2.1 овардашударо иҷро кунед. Қадамҳо ҳамон тавре ки барои насб дар системаи Linux мебошанд.
4.2.4 Насб кардани рамзи VS
Бо нобаёнӣ, ESP-IDF SDK асбоби таҳрири кодро дар бар намегирад (гарчанде ки насбкунандаи охирини ESP-IDF барои Windows имконоти насб кардани ESP-IDF Eclipse-ро пешниҳод мекунад). Шумо метавонед ягон абзори таҳрири матни интихобкардаатонро истифода баред, то кодро таҳрир кунед ва сипас онро бо истифода аз фармонҳои терминал тартиб диҳед.
Яке аз асбобҳои маъмули таҳрири код VS Code (Visual Studio Code) мебошад, ки муҳаррири рамзи ройгон ва дорои хусусияти дорои интерфейси барои корбар аст. Он гуногунро пешниҳод мекунад plugins ки функсияҳоеро ба мисли навигатсияи код, равшансозии синтаксис, назорати версияи Git ва ҳамгироии терминал таъмин мекунанд. Илова бар ин, Espressif плагини махсусро бо номи Espressif IDF барои VS Code таҳия кардааст, ки конфигуратсия ва ислоҳи лоиҳаро осон мекунад.
Шумо метавонед фармони рамзро дар терминал истифода баред, то папкаи ҷорӣро дар VS Code зуд кушоед. Интихобан, шумо метавонед миёнабури Ctrl+-ро барои кушодани консоли терминали пешфарзии система дар дохили VS Code истифода баред.
Маслиҳат Тавсия дода мешавад, ки рамзи VS барои таҳияи рамзи ESP32-C3 истифода шавад. Версияи охирини VS Code-ро дар https://code.visualstudio.com/ зеркашӣ ва насб кунед.
4.2.5 Муқаддима ба муҳити рушди тарафи сеюм
Илова ба муҳити расмии таҳияи ESP-IDF, ки асосан забони C-ро истифода мебарад, ESP32-C3 инчунин дигар забонҳои асосии барномасозӣ ва доираи васеи муҳити таҳияи тарафи сеюмро дастгирӣ мекунад. Баъзе вариантҳои назаррас иборатанд аз:
Arduino: платформаи кушодаасос барои сахтафзор ва нармафзор, ки микроконтроллерҳои гуногун, аз ҷумла ESP32-C3-ро дастгирӣ мекунад.
Он забони C++-ро истифода мебарад ва API-и соддакардашуда ва стандартиро пешниҳод мекунад, ки маъмулан забони Arduino номида мешавад. Arduino дар таҳияи прототипҳо ва заминаҳои таълимӣ ба таври васеъ истифода мешавад. Он як бастаи васеъшавандаи нармафзор ва IDE-ро таъмин мекунад, ки барои тартиб додан ва дурахши осон имкон медиҳад.
MicroPython: тарҷумони забони Python 3, ки барои кор дар платформаҳои дарунсохташудаи микроконтроллер пешбинӣ шудааст.
Бо забони оддии скрипт, он метавонад мустақиман ба захираҳои периферии ESP32-C3 (ба монанди UART, SPI ва I2C) ва функсияҳои иртиботӣ (ба монанди Wi-Fi ва Bluetooth LE) дастрасӣ пайдо кунад.
46 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

Ин ҳамкории сахтафзорро содда мекунад. MicroPython, дар якҷоягӣ бо китобхонаи васеъи амалиёти математикии Python, имкон медиҳад, ки алгоритмҳои мураккаб дар ESP32-C3 амалӣ карда шаванд ва ба таҳияи барномаҳои марбут ба AI мусоидат кунанд. Ҳамчун забони скрипт, ба тартиб додани такрорӣ лозим нест; тағирот ворид кардан ва скриптҳоро мустақиман иҷро кардан мумкин аст.
NodeMCU: тарҷумони забони LUA барои микросхемаҳои силсилаи ESP таҳия шудааст.
Он қариб ҳама вазифаҳои периферии микросхемаҳои ESP-ро дастгирӣ мекунад ва нисбат ба MicroPython сабуктар аст. Ба монанди MicroPython, NodeMCU забони скриптро истифода мебарад, ки зарурати тартибдиҳии такрориро аз байн мебарад.
Ғайр аз он, ESP32-C3 инчунин системаҳои амалиётии NuttX ва Zephyr -ро дастгирӣ мекунад. NuttX як системаи оператсионии вақти воқеӣ мебошад, ки интерфейсҳои бо POSIX мувофиқро таъмин намуда, қобилияти интиқоли барномаҳоро беҳтар мекунад. Zephyr як системаи хурди оператсионии вақти воқеӣ аст, ки махсус барои барномаҳои IoT тарҳрезӣ шудааст. Он китобхонаҳои сершумори нармафзорро дар бар мегирад, ки барои таҳияи IoT заруранд, тадриҷан ба экосистемаи ҳамаҷонибаи нармафзор табдил меёбанд.
Ин китоб дастурҳои муфассали насбкуниро барои муҳитҳои таҳияи дар боло зикршуда пешниҳод намекунад. Шумо метавонед бо риояи ҳуҷҷатҳо ва дастурҳои мувофиқ дар асоси талаботи худ муҳити рушд насб кунед.
4.3 Системаи мураттабсозии ESP-IDF
4.3.1 Мафҳумҳои асосии системаи компилятсионӣ
Лоиҳаи ESP-IDF маҷмӯи барномаи асосӣ бо функсияи воридшавӣ ва ҷузъҳои сершумори функсионалии мустақил мебошад. Барои мисолample, лоиҳае, ки гузаргоҳҳои LED-ро идора мекунад, асосан аз барномаи асосии вуруд ва як ҷузъи драйвер, ки GPIO-ро назорат мекунад, иборат аст. Агар шумо хоҳед, ки идоракунии дурдасти LED-ро дарк кунед, шумо инчунин бояд Wi-Fi, протоколи TCP/IP ва ғайраро илова кунед.
Системаи компиляция метавонад иҷрошавандаро тартиб диҳад, пайванд кунад ва тавлид кунад fileс (.bin) барои рамзи тавассути маҷмӯи қоидаҳои сохтмон. Системаи компиляцияи версияҳои ESP-IDF v4.0 ва версияҳои болотар аз рӯи нобаёнӣ ба CMake асос ёфтааст ва скрипти компиляцияи CMakeLists.txt метавонад барои назорат кардани рафтори тартиб додани код истифода шавад. Илова ба дастгирии синтаксиси асосии CMake, системаи мураттабсозии ESP-IDF инчунин маҷмӯи қоидаҳои пешфарз ва функсияҳои CMake-ро муайян мекунад ва шумо метавонед скрипти компиляцияро бо изҳороти оддӣ нависед.
4.3.2 Лоиҳа File Сохтор
Лоиҳа папкаест, ки дорои ҷузъҳои асосии барномаи вурудӣ, ҷузъҳои аз ҷониби корбар муайяншуда ва fileс барои сохтани барномаҳои иҷрошаванда, ба монанди скриптҳои компиляция, конфигуратсия талаб карда мешавад
Боби 4. Таъсиси муҳити рушд 47

files, ҷадвалҳои тақсимкунӣ ва ғайра. Лоиҳаҳоро метавон нусхабардорӣ ва интиқол дод ва ҳамон як иҷрошаванда file метавонад дар мошинҳо бо як версияи муҳити таҳияи ESP-IDF таҳия ва тавлид карда шавад. Лоиҳаи маъмулии ESP-IDF file сохтор дар расми 4.14 нишон дода шудааст.
Расми 4.14. Лоиҳаи маъмулии ESP-IDF file сохтор Азбаски ESP-IDF микросхемаҳои сершумори IoT-ро аз Espressif дастгирӣ мекунад, аз ҷумла ESP32, ESP32-S, ESP32-C, ESP32-H ва ғайра, пеш аз тартиб додани код ҳадаф бояд муайян карда шавад. Ҳадаф ҳам дастгоҳи сахтафзорест, ки барномаи барномаро иҷро мекунад ва ҳадафи сохтани системаи компилятсионӣ. Вобаста ба ниёзҳои худ, шумо метавонед як ё якчанд ҳадафҳоро барои лоиҳаи худ муайян кунед. Барои мисолample, тавассути фармони idf.py set-target esp32c3, шумо метавонед ҳадафи компиляцияро ба ESP32-C3 таъин кунед, ки дар давоми он параметрҳои пешфарз ва роҳи занҷири абзори компиляция барои ESP32C3 бор карда мешаванд. Пас аз тартиб додан, барномаи иҷрошавандаро барои ESP32C3 тавлид кардан мумкин аст. Шумо инчунин метавонед фармони set-target-ро дубора иҷро кунед, то ҳадафи дигар таъин кунед ва системаи компиляция ба таври худкор тоза ва аз нав танзим мекунад. Компонентхо
Компонентҳо дар ESP-IDF воҳидҳои коди модулӣ ва мустақил мебошанд, ки дар дохили системаи компиляция идора карда мешаванд. Онҳо ҳамчун ҷузвдонҳо ташкил карда шудаанд, ки номи ҷузвдон бо нобаёнӣ номи ҷузъро ифода мекунад. Ҳар як ҷузъ скрипти маҷмӯаи худро дорад, ки 48 Adventure Wireless ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

параметрҳо ва вобастагии онро муайян мекунад. Дар ҷараёни тартибдиҳӣ ҷузъҳо ба китобхонаҳои алоҳидаи статикӣ (.a fileс) ва дар ниҳоят бо дигар ҷузъҳо барои ташкили барномаи барномавӣ якҷоя карда мешаванд.
ESP-IDF вазифаҳои муҳимро ба монанди системаи оператсионӣ, драйверҳои периферӣ ва стеки протоколҳои шабакавӣ дар шакли ҷузъҳо таъмин мекунад. Ин ҷузъҳо дар феҳристи ҷузъҳо, ки дар дохили директорияи решаи ESP-IDF ҷойгиранд, нигоҳ дошта мешаванд. Ба таҳиягарон лозим нест, ки ин ҷузъҳоро ба феҳристи ҷузъҳои myProject нусхабардорӣ кунанд. Ба ҷои ин, онҳо бояд танҳо муносибатҳои вобастагии ин ҷузъҳоро дар CMakeLists.txt лоиҳа муайян кунанд. file бо истифода аз дастурҳои REQUIRES ё PRIV_REQUIRES. Системаи компиляция ҷузъҳои лозимиро ба таври худкор ҷойгир ва тартиб медиҳад.
Аз ин рӯ, феҳристи ҷузъҳои зери myProject лозим нест. Он танҳо барои дохил кардани баъзе ҷузъҳои фармоишии лоиҳа истифода мешавад, ки метавонанд китобхонаҳои тарафи сеюм ё коди аз ҷониби корбар муайяншуда бошанд. Илова бар ин, ҷузъҳоро метавон аз ҳама гуна феҳристи ғайр аз ESP-IDF ё лоиҳаи ҷорӣ, масалан аз лоиҳаи кушодаасос, ки дар директорияи дигар захира шудааст, гирифтан мумкин аст. Дар ин ҳолат, шумо бояд танҳо роҳи ҷузъро бо гузоштани тағирёбандаи EXTRA_COMPONENT_DIRS дар CMakeLists.txt зери директорияи реша илова кунед. Ин феҳрист ҳама гуна ҷузъҳои ESP-IDF-ро бо ҳамон ном бекор мекунад ва истифодаи ҷузъи дурустро таъмин мекунад.
асосӣ Барномаи воридшавӣ Феҳристи асосӣ дар доираи лоиҳа ҳамин тавр аст file сохтор ҳамчун ҷузъҳои дигар (масалан, ҷузъи1). Аммо, он аҳамияти махсус дорад, зеро он ҷузъи ҳатмист, ки бояд дар ҳар як лоиҳа мавҷуд бошад. Феҳристи асосӣ рамзи сарчашмаи лоиҳа ва нуқтаи вуруди барномаи корбарро дар бар мегирад, ки маъмулан app_main ном дорад. Бо нобаёнӣ, иҷрои барномаи корбар аз ин нуқтаи вуруд оғоз мешавад. Ҷузъи асосӣ инчунин бо он фарқ мекунад, ки он ба таври худкор аз ҳама ҷузъҳои дохили роҳи ҷустуҷӯ вобаста аст. Аз ин рӯ, зарурати ба таври возеҳ нишон додани вобастагӣ бо истифода аз дастурҳои REQUIRES ё PRIV_REQUIRES дар CMakeLists.txt нест. file.
Конфигуратсия file Феҳристи решаи лоиҳа конфигуратсияро дар бар мегирад file sdkconfig ном дорад, ки параметрҳои конфигуратсияро барои ҳамаи ҷузъҳои лоиҳа дар бар мегирад. sdkconfig file аз ҷониби системаи компиляция ба таври худкор тавлид мешавад ва онро бо фармони idf.py menuconfig тағир додан ва барқарор кардан мумкин аст. Имконоти менюи конфигуратсия асосан аз Kconfig.projbuild лоиҳа ва Kconfig ҷузъҳо сарчашма мегиранд. Таҳиягарони ҷузъҳо одатан ҷузъҳои конфигуратсияро дар Kconfig илова мекунанд, то ҷузъро чандир ва танзимшаванда гардонанд.
Феҳристи сохтан Бо нобаёнӣ, директорияи сохта дар дохили лоиҳа миёнаравро нигоҳ медорад fileс ва фи-
Боби 4. Таъсиси муҳити рушд 49

Барномаҳои иҷрошаванда, ки аз ҷониби фармони сохтани idf.py тавлид мешаванд. Умуман, дастрасии мустақим ба мундариҷаи директорияи сохтмон шарт нест. ESP-IDF фармонҳои пешакӣ муайяншударо барои ҳамкорӣ бо директория таъмин мекунад, ба монанди истифодаи фармони флеши idf.py барои ба таври худкор ҷойгир кардани бинарии тартибдодашуда file ва онро ба суроғаи флеши муайяншуда дурахш кунед ё бо истифода аз фармони idf.py fullclean барои тоза кардани тамоми феҳристи сохтмон.
Ҷадвали тақсимот (partitions.csv) Ҳар як лоиҳа ҷадвали тақсимотро барои тақсим кардани фазои флеш ва муайян кардани андоза ва суроғаи ибтидоии барномаи иҷрошаванда ва фазои додаҳои корбар талаб мекунад. Фармони idf.py flash ё барномаи навсозии OTA нармафзорро ба суроғаи мувофиқ мувофиқи ин ҷадвал флеш медиҳад. ESP-IDF якчанд ҷадвалҳои тақсимоти пешфарзро дар ҷузъҳо/ partition_table таъмин мекунад, ба монанди partitions_singleapp.csv ва partitions_two_ ota.csv, ки онҳоро дар менюконфигуратсия интихоб кардан мумкин аст.
Агар ҷадвали тақсимоти пешфарзии система ба талаботи лоиҳа мувофиқат накунад, partitions.csv-и фармоишӣ метавонад ба директорияи лоиҳа илова карда шавад ва дар menuconfig интихоб карда шавад.
4.3.3 Қоидаҳои сохтани пешфарзии системаи компиляция
Қоидаҳои барҳам додани ҷузъҳои бо ҳамон ном Дар ҷараёни ҷустуҷӯи ҷузъҳо, системаи компиляция тартиби муайянро риоя мекунад. Он аввал ҷузъҳои дохилии ESP-IDF-ро меҷӯяд, баъд ҷузъҳои лоиҳаи корбарро меҷӯяд ва дар ниҳоят ҷузъҳоро дар EXTRA_COMPONENT_DIRS ҷустуҷӯ мекунад. Дар ҳолатҳое, ки дар якчанд директория ҷузъҳои як ном дошта бошанд, ҷузъе, ки дар директорияи охирин пайдо шудааст, ҳама ҷузъҳои қаблиро бо ҳамон ном бекор мекунад. Ин қоида имкон медиҳад, ки ҷузъҳои ESP-IDF дар доираи лоиҳаи корбар мутобиқ карда шавад ва дар ҳоле ки рамзи аслии ESP-IDF бетағйир нигоҳ дошта шавад.
Қоидаҳои дохил кардани ҷузъҳои умумӣ бо нобаёнӣ Тавре ки дар фасли 4.3.2 зикр шудааст, ҷузъҳо бояд вобастагии худро аз ҷузъҳои дигар дар CMakeLists.txt ба таври возеҳ муайян кунанд. Бо вуҷуди ин, ҷузъҳои умумӣ ба монанди freertos ба таври худкор ба системаи сохтмон дохил карда мешаванд, ҳатто агар муносибатҳои вобастагии онҳо дар скрипти компилятсионӣ ба таври возеҳ муайян карда нашуда бошанд. Ба ҷузъҳои маъмули ESP-IDF freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv ва cxx дохил мешаванд. Истифодаи ин ҷузъҳои умумӣ ҳангоми навиштани CMakeLists.txt аз кори такрорӣ канорагирӣ мекунад ва онро мухтасартар мекунад.
Қоидаҳои барҳам додани ҷузъҳои конфигуратсия Таҳиягарон метавонанд бо илова кардани конфигуратсияи пешфарз параметрҳои конфигуратсияи пешфарзро илова кунанд file номи sdkconfig.defaults ба лоиҳа. Барои мисолample, илова кардани CONFIG_LOG_
50 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

DEFAULT_LEVEL_NONE = y метавонад интерфейси UART-ро танзим кунад, то ба таври нобаёнӣ маълумоти гузоришро чоп накунад. Ғайр аз он, агар барои ҳадафи мушаххас параметрҳои мушаххас муқаррар карда шаванд, конфигуратсия file бо номи sdkconfig.defaults.TARGET_NAME метавонад илова карда шавад, ки дар он TARGET_NAME метавонад esp32s2, esp32c3 ва ғайра бошад. Ин конфигуратсия files бо конфигуратсияи умумии пешфарз ҳангоми тартибдиҳӣ ба sdkconfig ворид карда мешаванд file sdkconfig.defaults аввал ворид карда мешавад ва пас аз он конфигуратсияи мушаххаси ҳадаф file, ба монанди sdkconfig.defaults.esp32c3. Дар ҳолатҳое, ки ҷузъҳои конфигуратсия бо ҳамон ном мавҷуданд, конфигуратсияи охирин file пештараро бартарй медихад.
4.3.4 Муқаддима ба скрипти компилятсионӣ
Ҳангоми таҳияи лоиҳа бо истифода аз ESP-IDF, таҳиягарон на танҳо бояд рамзи сарчашмаро нависед, балки инчунин бояд CMakeLists.txt-ро барои лоиҳа ва ҷузъҳо нависед. CMakeLists.txt матн аст file, инчунин ҳамчун скрипти компилятсионӣ маълум аст, ки як қатор объектҳои компилятсионӣ, ҷузъҳои конфигуратсияи компиляция ва фармонҳоро барои роҳнамоии раванди таҳияи коди сарчашма муайян мекунад. Системаи мураттабсозии ESP-IDF v4.3.2 ба CMake асос ёфтааст. Илова ба дастгирии функсияҳо ва фармонҳои аслии CMake, он инчунин як қатор функсияҳои фармоиширо муайян мекунад, ки навиштани скриптҳои компиляцияро хеле осон мекунад.
Скриптҳои компилятсионӣ дар ESP-IDF асосан скрипти таҳияи лоиҳа ва скриптҳои компиляцияи ҷузъҳоро дар бар мегиранд. CMakeLists.txt дар феҳристи решаи лоиҳа скрипти таҳияи лоиҳа номида мешавад, ки раванди таҳияи тамоми лоиҳаро роҳнамоӣ мекунад. Скрипти асосии тарҳрезии лоиҳа одатан се сатри зеринро дар бар мегирад:
1. cmake_minimum_required(VERSION 3.5) 2. дохил кардан($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. лоиҳа(myProject)
Дар байни онҳо, cmake_minimum_required (VERSION 3.5) бояд дар сатри аввал ҷойгир карда шавад, ки он барои нишон додани рақами ҳадди ақали версияи CMake, ки лоиҳа талаб мекунад, истифода мешавад. Версияҳои навтари CMake умуман бо версияҳои кӯҳна ба ақиб мувофиқанд, аз ин рӯ ҳангоми истифодаи фармонҳои навтари CMake рақами версияро мувофиқан танзим кунед, то мутобиқатро таъмин кунед.
дохил ($ENV {IDF_PATH}/tools/cmake/project.cmake) ҷузъҳои конфигуратсияи пешакӣ муайяншуда ва фармонҳои системаи компиляцияи ESP-IDF, аз ҷумла қоидаҳои пешфарзии сохтани системаи компиляция, ки дар фасли 4.3.3 тавсиф шудаанд, ворид мекунад. project(myProject) худи лоиҳаро эҷод мекунад ва номи онро муайян мекунад. Ин ном ҳамчун бинарии ниҳоӣ истифода мешавад file ном, яъне, myProject.elf ва myProject.bin.
Лоиҳа метавонад ҷузъҳои сершумор дошта бошад, аз ҷумла ҷузъи асосӣ. Феҳристи сатҳи болоии ҳар як ҷузъ CMakeLists.txt-ро дар бар мегирад file, ки онро скрипти компиляцияи ҷузъӣ меноманд. Скриптҳои компиляцияи ҷузъҳо асосан барои муайян кардани вобастагии ҷузъҳо, параметрҳои конфигуратсия, рамзи манбаъ истифода мешаванд fileс, ва сарлавҳаро дар бар мегирад fileс барои
Боби 4. Таъсиси муҳити рушд 51

тартиб додан. Бо функсияи фармоишии ESP-IDF idf_component_register, ҳадди ақалли коди зарурӣ барои скрипти компиляцияи ҷузъҳо чунин аст:

1. idf_component_register(SRCS "src1.c"

2.

INCLUDE_DIRS "дохил кардан"

3.

Ҷузъи 1 ТАЛАБ МЕКУНАД

Параметри SRCS рӯйхати манбаъро пешниҳод мекунад files дар ҷузъе, ки бо фосила ҷудо карда мешавад, агар чанд бошад fileс. Параметри INCLUDE_DIRS рӯйхати сарлавҳаи ҷамъиятиро таъмин мекунад file директорияҳо барои ҷузъ, ки ба роҳи ҷустуҷӯ барои ҷузъҳои дигаре, ки аз ҷузъи ҷорӣ вобастаанд, илова карда мешаванд. Параметри REQUIRES вобастагии ҷузъҳои ҷамъиятиро барои ҷузъи ҷорӣ муайян мекунад. Зарур аст, ки ҷузъҳо ба таври возеҳ баён кунанд, ки онҳо аз кадом ҷузъҳо вобастаанд, ба монанди ҷузъи2 вобаста ба ҷузъ1. Аммо, барои ҷузъи асосӣ, ки ба таври нобаёнӣ аз ҳама ҷузъҳо вобаста аст, параметри REQUIRES-ро партофтан мумкин аст.

Илова бар ин, фармонҳои аслии CMake низ метавонанд дар скрипти компиляция истифода шаванд. Барои мисолample, маҷмӯи фармонро барои таъин кардани тағирёбандаҳо истифода баред, ба монанди set(VARIABLE "VALUE").

4.3.5 Муқаддима ба Фармонҳои умумӣ
ESP-IDF дар раванди тартиб додани код CMake (асбоби конфигуратсияи лоиҳа), Ninja (асбоби сохтани лоиҳа) ва esptool (асбоби флеш) -ро истифода мебарад. Ҳар як асбоб дар раванди таҳия, сохтан ва флешдор нақши гуногун мебозад ва инчунин фармонҳои гуногуни амалиётиро дастгирӣ мекунад. Барои осон кардани кори корбар, ESP-IDF як idf.py-и ягонаи фронтиро илова мекунад, ки имкон медиҳад фармонҳои боло зуд даъват карда шаванд.
Пеш аз истифодаи idf.py, боварӣ ҳосил кунед, ки:
Тағйирёбандаи муҳити зисти IDF_PATH аз ESP-IDF ба терминали ҷорӣ илова карда шудааст. · Феҳристи иҷрои фармон директорияи решаи лоиҳа мебошад, ки дар бар мегирад
скрипти тартиб додани лоиҳа CMakeLists.txt.
Фармонҳои умумии idf.py инҳоянд:
· idf.py –help: намоиш додани рӯйхати фармонҳо ва дастурҳои истифодаи онҳо. · idf.py таъиншуда : муқаррар намудани compilation taidf.py fullcleanrget, ба монанди
ҳамчун ивазкунанда бо esp32c3. · idf.py menuconfig: оғози menuconfig, конфигуратсияи графикии терминал
асбобе, ки метавонад имконоти конфигуратсияро интихоб ё тағир диҳад ва натиҷаҳои конфигуратсия дар sdkconfig захира карда мешаванд file. · idf.py сохтани: оғоз намудани тартиб додани код. Миёнарав files ва барномаи ниҳоии иҷрошавандае, ки аз ҷониби компиляция тавлид шудааст, ба таври нобаёнӣ дар директорияи сохтани лоиҳа захира карда мешавад. Раванди тартибдиҳӣ афзоянда аст, ки маънои онро дорад, ки агар танҳо як манбаъ file тағир дода мешавад, танҳо тағир дода шудааст file дафъаи оянда тартиб дода мешавад.

52 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

· idf.py тоза: тоза кардани миёнаравӣ files аз ҷониби маҷмӯаи лоиҳа тавлид шудааст. Тамоми лоиҳа маҷбур мешавад, ки дар маҷмӯаи навбатӣ ҷамъоварӣ карда шавад. Дар хотир доред, ки конфигуратсияи CMake ва тағироти конфигуратсияҳое, ки аз ҷониби menuconfig анҷом дода шудаанд, ҳангоми тозакунӣ нест карда намешаванд.
· idf.py fullclean: нест кардани тамоми феҳристи сохтмон, аз ҷумла ҳама баромади конфигуратсияи CMake fileс. Ҳангоми аз нав сохтани лоиҳа, CMake лоиҳаро аз сифр танзим мекунад. Лутфан қайд кунед, ки ин фармон ҳамаро ба таври рекурсивӣ нест мекунад files дар феҳристи сохтмон, бинобар ин онро бо эҳтиёт истифода баред ва конфигуратсияи лоиҳа file нест карда намешавад.
· флеши idf.py: дурахши дуӣ барномаи иҷрошаванда file аз ҷониби сохтан ба ҳадафи ESP32-C3 тавлид шудааст. Вариантҳо - саҳ ва -б барои танзими номи дастгоҳи порти силсилавӣ ва суръати интиқол барои дурахш истифода мешаванд. Агар ин ду интихоб муайян нашуда бошанд, порти силсилавӣ ба таври худкор муайян карда мешавад ва суръати интиқоли пешфарз истифода мешавад.
· Монитор idf.py: Намоиши баромади порти силсилавии ESP32-C3. Опсияи -p метавонад барои муайян кардани номи дастгоҳи порти силсилавии мизбон истифода шавад. Ҳангоми чопи порти силсилавӣ, барои баромадан аз монитор комбинатсияи калидҳои Ctrl+] -ро пахш кунед.
Фармонҳои дар боло зикршуда инчунин метавонанд ҳангоми зарурат якҷоя карда шаванд. Барои мисолample, фармони idf.py сохтани флеш монитор тартиб додани кодро иҷро мекунад, флешдор мекунад ва монитори порти силсилавии пайдарпайро мекушояд.
Шумо метавонед ба https://bookc3.espressif.com/build-system ташриф оред, то дар бораи системаи мураттабсозии ESP-IDF маълумоти бештар гиред.
4.4 Амал: Тартиб додани ExampБарномаи "Милтак"
4.4.1 Мисолample Таҳлил
Ин бахш барномаи Blink-ро ҳамчун собиқ мегирадampбарои тахлил кардан file сохтор ва қоидаҳои рамзгузории лоиҳаи воқеӣ ба таври муфассал. Барномаи Blink эффекти чашмакзании LED-ро амалӣ мекунад ва лоиҳа дар феҳристи собиқ ҷойгир астamples/get-started/blink, ки дорои манбаъ file, конфигуратсия files, ва якчанд скриптҳои тартибдиҳӣ.
Лоиҳаи нури интеллектуалӣ, ки дар ин китоб муаррифӣ шудааст, ба ин собиқ асос ёфтаастampбарнома. Функсияҳо тадриҷан дар бобҳои баъдӣ барои анҷом додани он илова карда мешаванд.
Рамзи манбаъ Барои нишон додани тамоми раванди таҳия, барномаи Blink ба esp32c3-iot-projects/programmware/device/1 blink нусхабардорӣ карда шуд.
Сохтори феҳристи лоиҳаи мижа fileс дар расми 4.15 нишон дода шудааст.
Лоиҳаи чашмак танҳо як феҳристи асосӣ дорад, ки ҷузъи махсусест, ки
Боби 4. Таъсиси муҳити рушд 53

Расми 4.15. File сохтори феҳристи лоиҳаи мижа

бояд тавре, ки дар боби 4.3.2 тавсиф шудааст, дохил карда шаванд. Феҳристи асосӣ асосан барои нигоҳ доштани амалисозии функсияи app_main() истифода мешавад, ки нуқтаи вуруд ба барномаи корбар аст. Лоиҳаи мижа феҳристи ҷузъҳоро дар бар намегирад, зеро ин собиқample танҳо бояд ҷузъҳои бо ESP-IDF омадаро истифода барад ва ҷузъҳои иловагӣ талаб намекунад. CMakeLists.txt, ки ба лоиҳаи мижа дохил карда шудааст, барои роҳнамоии раванди тартибдиҳӣ истифода мешавад, дар ҳоле ки Kconfig.projbuild барои илова кардани ҷузъҳои конфигуратсия барои ин пеш истифода мешавад.ampбарномаро дар менюи танзимот. Дигар нолозим files ба тартиб додани код таъсир намерасонад, бинобар ин онҳо дар ин ҷо муҳокима карда намешаванд. Муқаддимаи муфассал ба лоиҳаи мижа fileс чунин аст.

1. /*blink.c сарлавҳаи зеринро дар бар мегирад fileс*/

2. #дохил кардан

//Сарлавҳаи китобхонаи стандартии C file

3. #include "freertos/freeRTOS.h" //Сарлавҳаи асосии FreeRTOS file

4. # дохил кунед "freertos/task.h"

//Сарлавҳаи Вазифаи FreeRTOS file

5. #include "sdkconfig.h"

//Сарлавҳаи конфигуратсия file аз ҷониби kconfig тавлид шудааст

6. #include "driver/gpio.h"

//Сарлавҳаи драйвери GPIO file

Манбаъ file blink.c дорои як қатор сарлавҳа мебошад files мувофиқи деклара-функсия

цияхо. ESP-IDF одатан тартиби дохил кардани сарлавҳаи стандартии китобхонаро риоя мекунад fileс, FreeR-

Сарлавҳаи TOS fileс, сарлавҳаи ронанда files, сарлавҳаи ҷузъҳои дигар files, ва сарлавҳаи лоиҳа files.

Тартиби дар кадом сарлавҳа files дохил карда шудаанд, метавонанд ба натиҷаи ҷамъбасти ниҳоӣ таъсир расонанд, бинобар ин кӯшиш кунед

қоидаҳои пешфарзро риоя кунед. Бояд қайд кард, ки sdkconfig.h ба таври худкор тавлид мешавад

аз ҷониби kconfig ва танҳо тавассути фармони idf.py menuconfig танзим кардан мумкин аст.

Тағироти мустақими ин сарлавҳа file аз нав навишта мешавад.

1. /*Шумо метавонед GPIO-и мувофиқи LED-ро дар idf.py menuconfig интихоб кунед ва натиҷаи тағир додани menuconfig ин арзиши CONFIG_BLINK аст.

_GPIO тағир дода мешавад. Шумо инчунин метавонед бевосита таърифи макросро тағир диҳед

дар ин ҷо ва CONFIG_BLINK_GPIO-ро ба арзиши собит иваз кунед.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO

3. беэътибор кардани барнома_маън (боэътибор)

4. {

5.

/* IO-ро ҳамчун вазифаи пешфарз GPIO танзим кунед, ҳолати кашиданро фаъол созед ва

6.

режимҳои вуруд ва баромадро хомӯш кунед*/

7.

gpio_reset_pin(BLINK_GPIO);

54 Саргузашти бесими ESP32-C3: Роҳнамои ҳамаҷонибаи IoT

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

/* GPIO-ро ба ҳолати баромад насб кунед*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); дар ҳоле ки (1) {
/*Рӯҷати чоп*/ printf("Хомӯш кардани LEDn"); /* Хомӯш кардани LED (сатҳи пасти баромад)*/ gpio_set_level(BLINK_GPIO, 0); /*Таъхир (1000 мс)*/ vTaskDelay (1000 / portTICK_PERIOD_MS); printf (“Даргиронидани LEDn”); /* LED-ро даргиронед (сатҳи баланди баромад)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay (1000 / portTICK_PERIOD_MS); }

Функсияи app_main() дар Blink собиқampбарномаи le ҳамчун нуқтаи вуруд барои барномаҳои корбар хизмат мекунад. Ин як функсияи оддӣ аст, ки параметрҳо ва арзиши бозгашт надоранд. Ин функсия пас аз анҷом додани оғозкунии система даъват карда мешавад, ки он вазифаҳоро аз қабили оғоз кардани порти силсилавии гузоришҳо, конфигуратсияи якка/дугонаи аслӣ ва танзими назоратчӣ дар бар мегирад.

Функсияи app_main() дар контексти вазифаи бо номи main кор мекунад. Андозаи стек ва афзалияти ин вазифаро метавон дар menuconfig Componentconfig Common ESP марбут танзим кард.

Барои иҷрои вазифаҳои оддӣ, ба монанди чашмак задани LED, ҳама рамзи заруриро мустақиман дар функсияи app_main() амалӣ кардан мумкин аст. Ин маъмулан оғоз кардани GPIO-и ба LED мувофиқ ва истифодаи ҳалқаи while(1) барои фурӯзон ва хомӯш кардани LED дар бар мегирад. Интихобан, шумо метавонед FreeRTOS API-ро барои эҷоди вазифаи наве истифода баред, ки мижа задани LED-ро идора мекунад. Пас аз он ки вазифаи нав бомуваффақият офарида мешавад, шумо метавонед аз функсияи app_main() берун шавед.

Мундариҷаи main/CMakeLists.txt file, ки раванди таҳияи ҷузъи асосӣро роҳнамоӣ мекунад, чунин аст:

1. idf_component_register(SRCS "blink.c" INCLUDE_DIRS "." )

Дар байни онҳо main/CMakeLists.txt танҳо як функсияи системаи компиляцияро даъват мекунад, яъне idf_component_register. Монанди CMakeLists.txt барои аксари ҷузъҳои дигар, blink.c ба SRCS ва манбаъ илова карда мешавад fileҳо ба SRCS илова карда мешаванд. Ҳамзамон, ".", ки роҳеро, ки CMakeLists.txt ҷойгир аст, ифода мекунад, бояд ба INCLUDE_DIRS ҳамчун директорияҳои ҷустуҷӯ барои сарлавҳа илова карда шавад. fileс. Мундариҷаи CMakeLists.txt чунин аст:
1. #V3.5-ро ҳамчун қадимтарин версияи CMake муайян кунед, ки лоиҳаи ҷорӣ дастгирӣ мекунад 2. #Версияҳои камтар аз v3.5 бояд пеш аз идомаи тартиб такмил дода шаванд 3. cmake_minimum_required(VERSION 3.5) 4. #Конфигуратсияи пешфарзии CMake-и ESP-ро дохил кунед -Системаи мураттабсозии IDF

Боби 4. Таъсиси муҳити рушд 55

5. дохил кунед($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #Сохтани лоиҳа бо номи “blink” 7. project(myProject)
Дар байни онҳо, CMakeLists.txt дар феҳристи решавӣ асосан $ENV{IDF_ PATH}/tools/cmake/project.cmake-ро дар бар мегирад, ки конфигуратсияи асосии CMake мебошад. file аз ҷониби ESP-IDF таъмин карда шудааст. Он барои фиреб истифода мешавад

Ҳуҷҷатҳо / Сарчашмаҳо

Espressif Systems ESP32-C3 Adventure Wireless [pdf] Дастури корбар
Саргузашти бесими ESP32-C3, ESP32-C3, саргузашти бесим, саргузашт

Иқтибосҳо

Назари худро гузоред

Суроғаи почтаи электронии шумо нашр намешавад. Майдонҳои зарурӣ қайд карда шудаанд *