ESP32-C3 Simsiz Macəra

ESP32-C3 Simsiz Macəra

IoT üçün hərtərəfli bələdçi

Espressif Sistemləri 12 iyun 2023-cü il

Spesifikasiyalar

  • Məhsul: ESP32-C3 Wireless Adventure
  • İstehsalçı: Espressif Systems
  • Tarix: 12 iyun 2023-cü il

Məhsuldan İstifadə Təlimatları

Hazırlıq

ESP32-C3 Wireless Adventure istifadə etməzdən əvvəl əmin olun
IoT anlayışları və memarlığı ilə tanış. Bu kömək edəcək
cihazın daha böyük IoT ekosisteminə necə uyğunlaşdığını başa düşürsünüz
və onun ağıllı evlərdə potensial tətbiqləri.

IoT Layihələrinin Girişi və Təcrübəsi

Bu bölmədə siz tipik IoT layihələri,
ümumi IoT cihazları üçün əsas modullar, əsas modullar daxil olmaqla
müştəri proqramları və ümumi IoT bulud platformaları. Bu olacaq
anlamaq və yaratmaq üçün sizə zəmin təmin edir
öz IoT layihələri.

Təcrübə: Ağıllı İşıq Layihəsi

Bu təcrübə layihəsində siz ağıllı yaratmağı öyrənəcəksiniz
ESP32-C3 Wireless Adventure istifadə edərək işıq. Layihənin strukturu,
funksiyaları, aparat hazırlığı və inkişaf prosesi olacaq
ətraflı izah edilmişdir.

Layihənin strukturu

Layihə bir neçə komponentdən, o cümlədən
ESP32-C3 Wireless Adventure, LED-lər, sensorlar və bulud
arxa uç.

Layihə funksiyaları

Ağıllı işıq layihəsi parlaqlığı idarə etməyə imkan verir və
LED-lərin rəngini mobil proqram vasitəsilə uzaqdan və ya web
interfeys.

Aparat Hazırlığı

Layihəyə hazırlaşmaq üçün siz toplamalı olacaqsınız
ESP32-C3 Wireless kimi zəruri avadanlıq komponentləri
Macəra lövhəsi, LED-lər, rezistorlar və enerji təchizatı.

İnkişaf Prosesi

İnkişaf prosesi inkişafın qurulmasını əhatə edir
ətraf mühitə, kod yazaraq idarə etmək üçün LED-lərə bağlanır
bulud backend və smart-in funksionallığının sınaqdan keçirilməsi
işıq.

ESP RainMaker-ə giriş

ESP RainMaker IoT-nin inkişafı üçün güclü çərçivədir
cihazlar. Bu bölmədə siz ESP RainMaker-in nə olduğunu öyrənəcəksiniz
layihələrinizdə necə həyata keçirilə bilər.

ESP RainMaker nədir?

ESP RainMaker bir sıra təmin edən bulud əsaslı platformadır
IoT cihazlarını qurmaq və idarə etmək üçün alətlər və xidmətlər.

ESP RainMaker tətbiqi

Bu bölmədə iştirak edən müxtəlif komponentlər izah olunur
iddia xidməti daxil olmaqla ESP RainMaker tətbiqi,
RainMaker Agent, bulud backend və RainMaker Client.

Təcrübə: ESP RainMaker ilə inkişaf üçün əsas nöqtələr

Bu təcrübə bölməsində siz əsas məqamları öyrənəcəksiniz
ESP RainMaker ilə inkişaf etdirərkən nəzərə alın. Buraya cihaz daxildir
iddia, məlumatların sinxronizasiyası və istifadəçinin idarə edilməsi.

ESP RainMaker xüsusiyyətləri

ESP RainMaker istifadəçinin idarə edilməsi üçün müxtəlif funksiyalar təklif edir
istifadəçilər və idarəçilər. Bu xüsusiyyətlər cihazı asanlaşdırmağa imkan verir
quraşdırma, uzaqdan idarəetmə və monitorinq.

İnkişaf mühitinin qurulması

Bu bölmə bir bit təmin edirview ESP-IDF (Espressif IoT
İnkişaf Çərçivəsi), rəsmi inkişaf çərçivəsidir
ESP32 əsaslı cihazlar üçün. Müxtəlif versiyalarını izah edir
ESP-IDF və inkişaf mühitinin necə qurulacağı.

Aparat və Sürücülərin İnkişafı

ESP32-C3 əsasında Smart Light Məhsullarının Avadanlıq Dizaynı

Bu bölmə ağıllı işığın aparat dizaynına diqqət yetirir
ESP32-C3 Wireless Adventure-a əsaslanan məhsullar. əhatə edir
smart light məhsulların xüsusiyyətləri və tərkibi, eləcə də
ESP32-C3 əsas sisteminin aparat dizaynı.

Smart Light Məhsullarının Xüsusiyyətləri və Tərkibi

Bu alt bölmə onu yaradan xüsusiyyətləri və komponentləri izah edir
ağıllı işıq məhsulları. Müxtəlif funksiyaları müzakirə edir
və ağıllı işıqların yaradılması üçün dizayn mülahizələri.

ESP32-C3 Əsas Sisteminin Avadanlıq Dizaynı

ESP32-C3 əsas sisteminin aparat dizaynına güc daxildir
təchizatı, işə salınma ardıcıllığı, sistemin sıfırlanması, SPI flaşı, saat mənbəyi,
və RF və antenna mülahizələri. Bu alt bölmə təmin edir
bu aspektlər haqqında ətraflı məlumat.

Tez-tez verilən suallar

S: ESP RainMaker nədir?

A: ESP RainMaker alətlər təqdim edən bulud əsaslı platformadır
və IoT cihazlarının qurulması və idarə edilməsi üçün xidmətlər. Sadələşdirir
inkişaf prosesi və asan cihazın qurulmasına imkan verir, uzaqdan
nəzarət və monitorinq.

S: İnkişaf mühitini necə qura bilərəm?
ESP32-C3?

A: ESP32-C3 üçün inkişaf mühitini qurmaq üçün sizə lazımdır
ESP-IDF (Espressif IoT Development Framework) quraşdırmaq və
verilmiş təlimatlara uyğun olaraq konfiqurasiya edin. ESP-IDF-dir
ESP32 əsaslı cihazlar üçün rəsmi inkişaf çərçivəsi.

S: ESP RainMaker-in xüsusiyyətləri hansılardır?

A: ESP RainMaker istifadəçi də daxil olmaqla müxtəlif funksiyalar təklif edir
idarəetmə, son istifadəçi xüsusiyyətləri və admin xüsusiyyətləri. İstifadəçi idarəetməsi
asan cihaz iddiası və məlumat sinxronizasiyasına imkan verir. Son istifadəçi
xüsusiyyətləri mobil proqram və ya vasitəsilə cihazları uzaqdan idarə etməyə imkan verir
web interfeys. Admin xüsusiyyətləri cihazın monitorinqi üçün alətlər təqdim edir
və idarəetmə.

ESP32-C3 Simsiz Macəra
IoT üçün hərtərəfli bələdçi
Espressif Sistemləri 12 iyun 2023-cü il

İçindəkilər

I Hazırlıq

1

1 IoT-ə giriş

3

1.1 IoT arxitekturası. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Ağıllı Evlərdə IoT Tətbiqi. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 IoT Layihələrinin Girişi və Təcrübəsi

9

2.1 Tipik IoT Layihələrinə Giriş . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Ümumi IoT Cihazları üçün Əsas Modullar. . . . . . . . . . . . . . . . . 9

2.1.2 Müştəri Tətbiqlərinin Əsas Modulları. . . . . . . . . . . . . . . . . . . 10

2.1.3 Ümumi IoT Bulud Platformalarına Giriş. . . . . . . . . . . . . . 11

2.2 Təcrübə: Ağıllı İşıq Layihəsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Layihənin strukturu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 Layihənin funksiyaları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Avadanlığın hazırlanması. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 İnkişaf Prosesi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 ESP RainMaker-ə giriş

19

3.1 ESP RainMaker nədir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 ESP RainMaker tətbiqi. . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 İddia Xidməti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 RainMaker Agenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

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

3.2.4 RainMaker Müştərisi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Təcrübə: ESP RainMaker ilə inkişaf üçün əsas nöqtələr. . . . . . . . . . . . 25

3.4 ESP RainMaker xüsusiyyətləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 İstifadəçi İdarəetməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 Son İstifadəçi Xüsusiyyətləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 Admin Xüsusiyyətləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 İnkişaf mühitinin qurulması

31

4.1 ESP-IDF Bitdiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 ESP-IDF versiyaları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ESP-IDF Git İş axını . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Uyğun versiyanın seçilməsi . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Artıqview ESP-IDF SDK Directory. . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF İnkişaf Mühitinin Quraşdırılması . . . . . . . . . . . . . . . . . 38 4.2.1 Linux-da ESP-IDF İnkişaf Mühitinin qurulması . . . . . . . . 38 4.2.2 Windows-da ESP-IDF İnkişaf Mühitinin qurulması . . . . . . 40 4.2.3 Mac-da ESP-IDF İnkişaf Mühitinin qurulması . . . . . . . . . 45 4.2.4 VS Kodunun quraşdırılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Üçüncü Tərəfin İnkişaf Mühitlərinə Giriş . . . . . . . . 46 4.3 ESP-IDF Kompilyasiya Sistemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Kompilyasiya sisteminin əsas anlayışları. . . . . . . . . . . . . . . . . . 47 4.3.2 Layihə File Struktur. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Kompilyasiya Sisteminin Defolt Qurulma Qaydaları. . . . . . . . . . . . . 50 4.3.4 Kompilyasiya Skriptinə Giriş. . . . . . . . . . . . . . . . . . 51 4.3.5 Ümumi əmrlərə giriş. . . . . . . . . . . . . . . . . . . 52 4.4 Təcrübə: Kompilyasiya Məsamp"Blink" proqramı. . . . . . . . . . . . . . . . . . 53 4.4.1 Məsample Analiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Blink proqramının tərtib edilməsi. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Yanıb-söndürmə proqramının yanıb-sönməsi . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Blink proqramının Serial Port Log Analizi . . . . . . . . . . . . . . 60 4.5 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II Aparat və Sürücülərin İnkişafı

65

5 ESP32-C3 əsasında Smart Light Məhsullarının Avadanlıq Dizaynı

67

5.1 Smart Light Məhsullarının Xüsusiyyətləri və Tərkibi. . . . . . . . . . . . . . . 67

5.2 ESP32-C3 Əsas Sisteminin Avadanlıq Dizaynı. . . . . . . . . . . . . . . . . . . 70

5.2.1 Enerji təchizatı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 Yandırma ardıcıllığı və sistemin sıfırlanması . . . . . . . . . . . . . . . . . . 74

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

5.2.4 Saat Mənbəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 RF və Antenna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 Bağlama sancaqları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 GPIO və PWM Nəzarətçisi. . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Təcrübə: ESP32-C3 ilə Ağıllı İşıq Sisteminin qurulması. . . . . . . . . . . . . 80

5.3.1 Modulların seçilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 PWM siqnallarının GPIO-larının konfiqurasiyası. . . . . . . . . . . . . . . . . . . . 82

5.3.3 Mikroproqramın yüklənməsi və sazlama interfeysi . . . . . . . . . . . . 82

5.3.4 RF Dizaynı üçün Təlimatlar. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Enerji təchizatının layihələndirilməsi üçün təlimatlar. . . . . . . . . . . . . . . . . . . 86 5.4 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Sürücü inkişafı

87

6.1 Sürücü İnkişaf Prosesi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 ESP32-C3 Periferik Tətbiqlər. . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 LED Sürücünün Əsasları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 Rəng Məkanları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 LED Sürücü. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 LED qaralması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 PWM-ə giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 LED Karartma Sürücüsünün İnkişafı . . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 Qeyri-Uçucu Saxlama (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 LED PWM Nəzarətçi (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 LED PWM Proqramlaşdırma . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 Təcrübə: Sürücülərin Smart Light Layihəsinə əlavə edilməsi. . . . . . . . . . . . . . . . . 103

6.5.1 Düymə Sürücüsü. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 LED Qaralma Sürücüsü. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III Simsiz Rabitə və İdarəetmə

109

7 Wi-Fi Konfiqurasiyası və Bağlantısı

111

7.1 Wi-Fi əsasları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Wi-Fi-a giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 IEEE 802.11-in təkamülü. . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Wi-Fi konsepsiyaları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Wi-Fi bağlantısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Bluetooth-un əsasları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 Bluetooth-a giriş. . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 Bluetooth konsepsiyaları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 Bluetooth bağlantısı. . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Wi-Fi Şəbəkəsinin Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Wi-Fi Şəbəkəsinin Konfiqurasiyası Bələdçisi. . . . . . . . . . . . . . . . . . . . 131

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

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

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

7.3.5 Digər üsullar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 Wi-Fi Proqramlaşdırma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF-də Wi-Fi Komponentləri . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Məşq: Wi-Fi bağlantısı . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Məşq: Ağıllı Wi-Fi Bağlantısı . . . . . . . . . . . . . . . . . . . . . 145
7.5 Təcrübə: Smart Light Layihəsində Wi-Fi Konfiqurasiyası. . . . . . . . . . . . . . . 156 7.5.1 Ağıllı İşıq Layihəsində Wi-Fi Bağlantısı . . . . . . . . . . . . . . . . . 156 7.5.2 Ağıllı Wi-Fi Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 Yerli Nəzarət

159

8.1 Yerli nəzarətə giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 Yerli nəzarətin tətbiqi. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 AdvantagYerli Nəzarət es. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 Smartfonlar vasitəsilə idarə olunan cihazların aşkar edilməsi. . . . . . . . . . 161

8.1.4 Smartfonlar və Cihazlar Arasında Məlumat Əlaqəsi. . . . . . . . 162

8.2 Ümumi Yerli Kəşfetmə Metodları. . . . . . . . . . . . . . . . . . . . . . . . 162

8.2.1 Yayım. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

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

8.2.3 Yayım və Çoxyayım Arasında Müqayisə. . . . . . . . . . . . . . 176

8.2.4 Yerli Kəşf üçün Multicast Tətbiq Protokolu mDNS . . . . . . . . 176

8.3 Yerli Məlumatlar üçün Ümumi Rabitə Protokolları. . . . . . . . . . . . . . . 179

8.3.1 Transmissiya İdarəetmə Protokolu (TCP) . . . . . . . . . . . . . . . . . . . 179

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

8.3.3 İstifadəçi Datagram Protokolu (UDP). . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 Məhdud Tətbiq Protokolu (CoAP) . . . . . . . . . . . . . . . . 192

8.3.5 Bluetooth Protokolu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3.6 Məlumatların Kommunikasiya Protokollarının xülasəsi. . . . . . . . . . . . . . . 203

8.4 Məlumat Təhlükəsizliyi Zəmanəti. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 Nəqliyyat Layerinin Təhlükəsizliyinə (TLS) giriş. . . . . . . . . . . . . 207

8.4.2 Da-ya giriştagram Transport Layer Security (DTLS) . . . . . . . 213

8.5 Təcrübə: Ağıllı İşıq Layihəsində Yerli İdarəetmə . . . . . . . . . . . . . . . . . . 217

8.5.1 Wi-Fi əsaslı Yerli İdarəetmə Serverinin yaradılması . . . . . . . . . . . . . . . 217

8.5.2 Skriptlərdən istifadə edərək Yerli İdarəetmə Funksionallığının yoxlanılması. . . . . . . . . . . 221

8.5.3 Bluetooth əsaslı Yerli İdarəetmə Serverinin yaradılması . . . . . . . . . . . . 222

8.6 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9 Bulud Nəzarəti

225

9.1 Uzaqdan idarəetməyə giriş. . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 Bulud Məlumat Kommunikasiya Protokolları. . . . . . . . . . . . . . . . . . . . . . 226

9.2.1 MQTT Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 MQTT Prinsipləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT Mesaj Formatı . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Protokolun müqayisəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Linux və Windows sistemlərində MQTT Brokerinin qurulması . . . . . . . . . . . . 233 9.2.6 ESP-IDF əsasında MQTT Müştərisinin qurulması . . . . . . . . . . . . . . . . 235 9.3 MQTT Məlumat Təhlükəsizliyinin təmin edilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Sertifikatların mənası və funksiyası. . . . . . . . . . . . . . . . . . . 237 9.3.2 Sertifikatların yerli olaraq yaradılması. . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 MQTT Brokerinin konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT Müştərisinin Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Təcrübə: ESP RainMaker vasitəsilə uzaqdan idarəetmə. . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker Əsasları . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Node və Cloud Backend Rabitə Protokolu. . . . . . . . . . . 244 9.4.3 Müştəri və Bulud Backend arasında əlaqə. . . . . . . . . . . 249 9.4.4 İstifadəçi Rolları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Əsas xidmətlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Ağıllı İşıq Məsample . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker Tətbiqi və Üçüncü Tərəf İnteqrasiyaları . . . . . . . . . . . . . . . 262 9.5 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 Smartphone Proqramının İnkişafı

269

10.1 Smartfon Tətbiqinin İnkişafına Giriş. . . . . . . . . . . . . . . . . . 269

10.1.1 Artıqview Smartfon Tətbiqinin İnkişafı. . . . . . . . . . . . . . . 270

10.1.2 Android Layihəsinin strukturu. . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 iOS Layihəsinin strukturu. . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Android Fəaliyyətinin Həyat Dövrü . . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 iOS-un həyat dövrü ViewNəzarətçi. . . . . . . . . . . . . . . . . . . . . . 273

10.2 Yeni Smartfon Tətbiqi Layihəsinin yaradılması. . . . . . . . . . . . . . . . . . . . . 275

10.2.1 Android İnkişafına Hazırlıq . . . . . . . . . . . . . . . . . . . 275

10.2.2 Yeni Android Layihəsinin yaradılması. . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 MyRainmaker üçün asılılıqların əlavə edilməsi. . . . . . . . . . . . . . . . . 276

10.2.4 Android-də İcazə Sorğusu. . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 iOS İnkişafına Hazırlıq . . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 Yeni iOS Layihəsinin yaradılması . . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 MyRainmaker üçün asılılıqların əlavə edilməsi. . . . . . . . . . . . . . . . . 279

10.2.8 iOS-da İcazə Sorğusu. . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 Proqramın Funksional Tələblərinin Təhlili . . . . . . . . . . . . . . . . . . 281

10.3.1 Layihənin Funksional Tələblərinin Təhlili. . . . . . . . . . . . 282

10.3.2 İstifadəçi İdarəetmə Tələblərinin Təhlili. . . . . . . . . . . . . . . 282 10.3.3 Cihazın Təminatı və Məcburi Tələblərin Təhlili. . . . . . . 283 10.3.4 Uzaqdan İdarəetmə Tələblərinin Təhlili . . . . . . . . . . . . . . . . 283 10.3.5 Planlaşdırma Tələblərinin Təhlili. . . . . . . . . . . . . . . . . . . 284 10.3.6 İstifadəçi Mərkəzi Tələblərinin Təhlili. . . . . . . . . . . . . . . . . . 285 10.4 İstifadəçilərin idarə edilməsinin inkişafı. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker API-lərinə giriş . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Smartfon vasitəsilə əlaqənin başlanması . . . . . . . . . . . . . . . . 286 10.4.3 Hesabın qeydiyyatı. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Hesaba Giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Cihaz təminatının inkişafı. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Skan cihazları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Qurğuları birləşdirən . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Gizli açarların yaradılması. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Node ID-nin əldə edilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Təminat Qurğuları. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Cihazın İdarə Edilməsinin İnkişafı . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Cihazların Bulud Hesablarına Bağlanması . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Cihazların siyahısının əldə edilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Cihaz statusunun əldə edilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Cihaz statusunun dəyişdirilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Planlaşdırma və İstifadəçi Mərkəzinin inkişafı. . . . . . . . . . . . . . . . . . . 313 10.7.1 Planlaşdırma funksiyasının həyata keçirilməsi. . . . . . . . . . . . . . . . . . . . 313 10.7.2 İstifadəçi Mərkəzinin tətbiqi. . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Daha çox Bulud API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 Firmware Təkmilləşdirmə və Versiya İdarəetmə

321

11.1 Mikroproqramın Təkmilləşdirilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 Artıqview Bölmə Cədvəlləri. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 Mikroproqramın Yükləmə Prosesi. . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 Artıqview OTA Mexanizmi. . . . . . . . . . . . . . . . . . . . . 326

11.2 Mikroproqram Versiyasının İdarə Edilməsi . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 Mikroproqramın İşarələnməsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 Geriyə qayıtma və geri çəkilmə əleyhinə . . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 Təcrübə: Havadan (OTA) Məsample . . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 Mikroproqramı Yerli Host vasitəsilə təkmilləşdirin. . . . . . . . . . . . . . . . . 332

11.3.2 Mikroproqramı ESP RainMaker vasitəsilə təkmilləşdirin. . . . . . . . . . . . . . . 335

11.4 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

IV Optimallaşdırma və Kütləvi İstehsal

343

12 Güc İdarəetmə və Aşağı Güc Optimizasiyası

345

12.1 ESP32-C3 Güc İdarəetmə . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 Dinamik tezlik miqyası. . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 Güc İdarəetmə Konfiqurasiyası . . . . . . . . . . . . . . . . . . . . 348

12.2 ESP32-C3 Aşağı Güc Rejimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

12.2.1 Modem-yuxu rejimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12.2.2 Yüngül yuxu rejimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 Dərin yuxu rejimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 Müxtəlif Güc Rejimlərində Cari İstehlak. . . . . . . . . . . . . 358

12.3 Güc İdarəetmə və Aşağı Güclü Sazlama . . . . . . . . . . . . . . . . . 359

12.3.1 Qeydlərin Sazlanması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

12.3.2 GPIO Sazlama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

12.4 Təcrübə: Ağıllı İşıq Layihəsində Güc İdarəetmə . . . . . . . . . . . . . . . 363

12.4.1 Güc İdarəetmə Xüsusiyyətinin Konfiqurasiyası . . . . . . . . . . . . . . . . . 364

12.4.2 Güc İdarəetmə Kilidlərindən istifadə edin. . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 Enerji sərfiyyatının yoxlanılması. . . . . . . . . . . . . . . . . . . . . . . 366

12.5 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 Təkmilləşdirilmiş Cihaz Təhlükəsizlik Xüsusiyyətləri

369

13.1 Artıqview IoT Cihazı Məlumat Təhlükəsizliyi. . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 Nə üçün IoT Cihazı Məlumatlarının Təhlükəsizliyi? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 IoT Cihazı Məlumat Təhlükəsizliyi üçün Əsas Tələblər. . . . . . . . . . . . 371

13.2 Məlumatların bütövlüyünün qorunması. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

13.2.1 Dürüstlüyün Yoxlanması Metoduna Giriş. . . . . . . . . . . . . . 372

13.2.2 Mikroproqram məlumatlarının bütövlüyünün yoxlanılması. . . . . . . . . . . . . . . . . . 373

13.2.3 Çıxışample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3 Məlumatların məxfiliyinin qorunması. . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3.1 Məlumatların Şifrələnməsinə Giriş. . . . . . . . . . . . . . . . . . . . . . 374

13.3.2 Flash Şifrələmə Sxeminə Giriş . . . . . . . . . . . . . . . . . 376

13.3.3 Flash Şifrələmə Açarının Yaddaşı. . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 Flash Şifrələmənin İş Rejimi. . . . . . . . . . . . . . . . . . . . 380

13.3.5 Flash Şifrələmə Prosesi. . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 NVS Şifrələməsinə Giriş. . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 ÇıxışampFlash Şifrələmə və NVS Şifrələmə. . . . . . . . . . . 384

13.4 Məlumatların Legitimliyinin Mühafizəsi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 Rəqəmsal İmzaya Giriş. . . . . . . . . . . . . . . . . . . . . 386

13.4.2 Artıqview Təhlükəsiz Yükləmə Sxeminin. . . . . . . . . . . . . . . . . . . . . 388

13.4.3 Proqram təminatının təhlükəsiz açılışına giriş. . . . . . . . . . . . . . . . . . . 388 13.4.4 Hardware Secure Boot-a giriş. . . . . . . . . . . . . . . . . . 390 13.4.5 Məsamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Təcrübə: Kütləvi İstehsalda Təhlükəsizlik Xüsusiyyətləri . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash Şifrələmə və Təhlükəsiz Yükləmə . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Flash Şifrələmə və Batch Flash Alətləri ilə Təhlükəsiz Yükləmənin Aktivləşdirilməsi . . 397 13.5.3 Smart Light Layihəsində Flash Şifrələmə və Təhlükəsiz Yükləmənin Aktivləşdirilməsi . . . 398 13.6 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 Kütləvi istehsal üçün proqram təminatının yandırılması və sınaqdan keçirilməsi

399

14.1 Kütləvi İstehsalda Mikroproqramın Yanması . . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 Məlumat bölmələrinin müəyyən edilməsi. . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 Mikroproqramın yandırılması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 Kütləvi istehsal sınaqları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 Təcrübə: Smart Light Layihəsində Kütləvi İstehsal Məlumatları. . . . . . . . . . . . . 404

14.4 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 ESP Insights: Uzaqdan Monitorinq Platforması

405

15.1 ESP Insights-a giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 ESP Insights ilə işə başlamaq. . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 esp-insights Layihəsində ESP Insights ilə işə başlamaq. . . . . . 409

15.2.2 Qaçış Məsample esp-insights Layihəsində. . . . . . . . . . . . . . . 411

15.2.3 Coredump Məlumatının Hesabatlanması. . . . . . . . . . . . . . . . . . . . . 411

15.2.4 Maraq qeydlərinin fərdiləşdirilməsi. . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 Yenidən işə salınma səbəbinin bildirilməsi. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 Fərdi Metriklərin Hesabatı. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 Təcrübə: Smart Light Layihəsində ESP Insights-dan istifadə . . . . . . . . . . . . . . . 416

15.4 Xülasə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

Giriş
ESP32-C3 açıq mənbəli RISC-V arxitekturasına əsaslanan bir nüvəli Wi-Fi və Bluetooth 5 (LE) mikro nəzarətçi SoC-dir. O, düzgün güc balansını, giriş/çıxış imkanlarını və təhlükəsizliyi təmin edir, beləliklə, qoşulmuş cihazlar üçün optimal qənaətli həll təklif edir. ESP32-C3 ailəsinin müxtəlif tətbiqlərini göstərmək üçün Espressif-in bu kitabı sizi IoT layihəsinin hazırlanması və ətraf mühitin qurulmasının əsaslarından tutmuş praktik təcrübəyə qədər AIoT vasitəsilə maraqlı səyahətə aparacaq.amples. İlk dörd fəsil IoT, ESP RainMaker və ESP-IDF haqqında danışır. 5 və 6-cı fəsillər aparat dizaynı və sürücünün inkişafı haqqında qısa məlumat. Siz irəlilədikcə layihənizi Wi-Fi şəbəkələri və mobil proqramlar vasitəsilə necə konfiqurasiya edəcəyinizi kəşf edəcəksiniz. Nəhayət, layihənizi optimallaşdırmağı və onu kütləvi istehsala qoymağı öyrənəcəksiniz.
Əgər siz əlaqəli sahələrdə mühəndissinizsə, proqram təminatı memarı, müəllim, tələbə və ya IoT ilə maraqlanan hər kəssinizsə, bu kitab sizin üçündür.
Siz kodu yükləyə bilərsiniz example bu kitabda Espressif-in GitHub-dakı saytından istifadə edilmişdir. IoT inkişafı ilə bağlı ən son məlumat üçün rəsmi hesabımızı izləyin.

Ön söz
İnformasiyalaşan Dünya
İnternet dalğasına minən Əşyaların İnterneti (IoT) rəqəmsal iqtisadiyyatda yeni bir infrastruktur növü olmaq üçün möhtəşəm debüt etdi. Texnologiyanı ictimaiyyətə yaxınlaşdırmaq üçün Espressif Systems həyatın bütün təbəqələrindən olan tərtibatçıların dövrümüzün ən aktual problemlərini həll etmək üçün IoT-dən istifadə edə bilməsi üçün çalışır. Gələcəkdən gözlədiyimiz “Hər Şeyin İntellektual Şəbəkəsi” dünyasıdır.
Öz çiplərimizin dizaynı bu vizyonun mühüm tərkib hissəsidir. Bu, texnoloji sərhədlərə qarşı davamlı irəliləyişlər tələb edən bir marafon olmalıdır. “Oyun Dəyişdiricisi” ESP8266-dan tutmuş Wi-Fi və Bluetoothr (LE) bağlantısını birləşdirən ESP32 seriyasına, ardınca AI sürətləndirilməsi ilə təchiz olunmuş ESP32-S3-ə qədər Espressif heç vaxt AIoT həlləri üçün məhsulların tədqiqini və inkişafını dayandırmır. IoT İnkişaf Çərçivəsi ESP-IDF, Mesh İnkişaf Çərçivəsi ESP-MDF və Cihaz Bağlantı Platforması ESP RainMaker kimi açıq mənbə proqram təminatımızla biz AIoT tətbiqlərini qurmaq üçün müstəqil çərçivə yaratdıq.
2022-ci ilin iyul ayına olan məlumata görə, Espressif-in IoT çipsetlərinin məcmu tədarükləri 800 milyonu ötüb, bu da Wi-Fi MCU bazarında liderlik edir və bütün dünyada çoxlu sayda qoşulmuş cihazları gücləndirir. Mükəmməllik axtarışı hər bir Espressif məhsulunu yüksək səviyyəli inteqrasiya və sərfəli qiymətə görə böyük hit edir. ESP32-C3-ün buraxılışı Espressif-in özünün inkişaf etdirdiyi texnologiyasının mühüm mərhələsini qeyd edir. Bu, 32 MHz tezliyində işləyə bilən 400 KB SRAM ilə bir nüvəli, 160 bitli, RISC-V əsaslı MCU-dur. O, 2.4 GHz Wi-Fi və uzun məsafəli dəstəyi ilə Bluetooth 5 (LE) ilə inteqrasiya edib. O, enerji, giriş/çıxış imkanları və təhlükəsizlik arasında incə balans yaradır və beləliklə, qoşulmuş cihazlar üçün sərfəli optimal həlli təklif edir. Belə güclü ESP32-C3 əsasında, bu kitab oxuculara ətraflı təsvir və praktiki nümunə ilə IoT ilə bağlı bilikləri anlamağa kömək etmək üçün nəzərdə tutulub.amples.
Bu kitabı niyə yazdıq?
Espressif Systems yarımkeçirici şirkət deyil. O, eyni zamanda daim texnologiya sahəsində irəliləyişlərə və yeniliklərə can atan IoT platforma şirkətidir. Eyni zamanda, Espressif özünəməxsus ekosistemi formalaşdırmaqla, açıq mənbə əldə etdi və özünün inkişaf etdirdiyi əməliyyat sistemini və proqram təminatı çərçivəsini cəmiyyətlə paylaşdı. Mühəndislər, istehsalçılar və texnologiya həvəskarları Espressif-in məhsulları əsasında fəal şəkildə yeni proqram təminatı işləyib hazırlayır, sərbəst ünsiyyət qurur və təcrübələrini bölüşürlər. Siz YouTube və GitHub kimi müxtəlif platformalarda hər zaman tərtibatçıların maraqlı ideyalarını görə bilərsiniz. Espressif məhsullarının populyarlığı Espressif çipsetləri əsasında ondan çox dildə, o cümlədən ingilis, çin, alman, fransız və yapon dillərində 100-dən çox kitab hazırlayan müəlliflərin sayının artmasına təkan verdi.

Espressif-in davamlı innovasiyasını təşviq edən icma tərəfdaşlarının dəstəyi və etibarıdır. “Biz çiplərimizi, əməliyyat sistemlərimizi, çərçivələrimizi, həllərimizi, Buludumuzu, biznes təcrübələrimizi, alətlərimizi, sənədlərimizi, yazılarımızı, ideyalarımızı və s. insanların müasir həyatın ən aktual problemlərində ehtiyac duyduqları cavablara daha uyğun olmasına çalışırıq. Bu, Espressif-in ən yüksək ambisiyası və mənəvi kompasıdır”. Espressif-in təsisçisi və baş direktoru cənab Teo Svi Ann dedi.
Espressif oxumağa və ideyalara dəyər verir. Əşyaların İnterneti texnologiyasının davamlı təkmilləşdirilməsi mühəndislər üçün daha yüksək tələblər qoyduğundan, biz daha çox insana IoT çiplərini, əməliyyat sistemlərini, proqram çərçivələrini, tətbiq sxemlərini və bulud xidməti məhsullarını tez mənimsəməyə necə kömək edə bilərik? Necə deyərlər, insana balıq verməkdənsə, balıq tutmağı öyrətmək daha yaxşıdır. Beyin fırtınası sessiyasında ağlımıza gəldi ki, IoT inkişafı ilə bağlı əsas bilikləri sistematik şəkildə çeşidləmək üçün kitab yaza bilərik. Biz buna nail olduq, tez bir zamanda bir qrup yüksək səviyyəli mühəndisi topladıq və texniki komandanın daxili proqramlaşdırma, IoT aparat və proqram təminatının işlənməsi üzrə təcrübəsini birləşdirdik və bunların hamısı bu kitabın nəşrinə töhfə verdi. Yazı prosesində əlimizdən gələni etdik ki, obyektiv və ədalətli olaq, baramadan əl çəkək və Əşyaların İnternetinin mürəkkəbliyini və cazibəsini izah etmək üçün yığcam ifadələrdən istifadə etdik. Biz ümumi sualları diqqətlə ümumiləşdirdik, inkişaf prosesində rast gəlinən suallara aydın cavab vermək və müvafiq texniki işçilər və qərar qəbul edənlər üçün praktiki IoT inkişaf qaydaları təqdim etmək üçün icmanın rəy və təkliflərinə istinad etdik.
Kitab strukturu
Bu kitab mühəndis mərkəzli perspektivi götürür və IoT layihəsinin inkişafı üçün lazımi bilikləri addım-addım izah edir. Aşağıdakı kimi dörd hissədən ibarətdir:
· Hazırlıq (Fəsil 1): Bu hissə IoT layihəsinin inkişafı üçün möhkəm zəmin yaratmaq üçün IoT arxitekturasını, tipik IoT layihə çərçivəsini, ESP RainMakerr bulud platformasını və ESP-IDF inkişaf mühitini təqdim edir.
· Avadanlıq və Sürücülərin İnkişafı (Fəsil 5): ESP6-C32 çipsetinə əsaslanaraq, bu hissə minimum aparat sistemi və drayverin işlənib hazırlanmasını təfərrüatlandırır və tündləşdirmə, rəngin təsnifatı və simsiz rabitəyə nəzarəti həyata keçirir.
· Simsiz Rabitə və İdarəetmə (Fəsil 7): Bu hissə ESP11-C32 çipinə, yerli və bulud idarəetmə protokollarına və cihazların yerli və uzaqdan idarə edilməsinə əsaslanan ağıllı Wi-Fi konfiqurasiya sxemini izah edir. O, həmçinin smartfon proqramlarının hazırlanması, proqram təminatının təkmilləşdirilməsi və versiyanın idarə edilməsi üçün sxemləri təqdim edir.
· Optimallaşdırma və Kütləvi İstehsal (Fəsil 12-15): Bu hissə enerjinin idarə edilməsində məhsulların optimallaşdırılması, aşağı enerjinin optimallaşdırılması və gücləndirilmiş təhlükəsizliyə yönəldilmiş qabaqcıl IoT tətbiqləri üçün nəzərdə tutulub. O, həmçinin kütləvi istehsalda proqram təminatının yandırılmasını və sınaqdan keçirilməsini, ESP Insights uzaqdan monitorinq platforması vasitəsilə cihazın proqram təminatının işləmə vəziyyətini və qeydlərini necə diaqnostika etməyi təqdim edir.

Mənbə kodu haqqında
Oxucular keçmişi işlədə bilərlərampkodu əl ilə daxil etməklə və ya kitabla birlikdə gələn mənbə kodundan istifadə etməklə bu kitabdakı proqramlar. Biz nəzəriyyə və təcrübənin birləşməsini vurğulayırıq və beləliklə, demək olar ki, hər fəsildə Smart Light layihəsi əsasında Təcrübə bölməsi təyin edirik. Bütün kodlar açıq mənbəlidir. Oxucular mənbə kodunu yükləyə və GitHub-da və esp32.com rəsmi forumumuzda bu kitabla əlaqəli bölmələrdə müzakirə edə bilərlər. Bu kitabın açıq mənbə kodu Apache License 2.0 şərtlərinə tabedir.
Müəllif qeydi
Bu kitab rəsmi olaraq Espressif Systems tərəfindən hazırlanmışdır və şirkətin yüksək səviyyəli mühəndisləri tərəfindən yazılmışdır. IoT ilə əlaqəli sənayelərdə menecerlər və AR-GE işçiləri, əlaqəli ixtisasların müəllimləri və tələbələri və Əşyaların İnterneti sahəsində həvəskarlar üçün uyğundur. Ümid edirik ki, bu kitab yaxşı tərbiyəçi və dost olmaq üçün iş təlimatı, istinad və yataq dəftəri kimi xidmət edə bilər.
Bu kitabı tərtib edərkən biz ölkə daxilində və xaricdə olan ekspertlərin, alimlərin və texniki işçilərin bəzi müvafiq tədqiqat nəticələrinə istinad etdik və akademik normalara uyğun olaraq sitat gətirmək üçün əlimizdən gələni etdik. Bununla belə, bəzi nöqsanların olması qaçınılmazdır, ona görə də burada bütün müvafiq müəlliflərə dərin hörmət və minnətdarlığımızı bildirmək istərdik. Bundan əlavə, biz internetdən məlumatları sitat gətirmişik, ona görə də orijinal müəlliflərə və nəşriyyatçılara təşəkkür edirik və hər bir məlumatın mənbəyini göstərə bilməyəcəyimiz üçün üzr istəyirik.
Yüksək keyfiyyətli kitab hazırlamaq üçün biz daxili müzakirələr raundları təşkil etdik və sınaq oxucularının və nəşriyyat redaktorlarının təklif və rəylərindən öyrəndik. Burada, bu uğurlu işə töhfə verən köməyinizə görə sizə bir daha təşəkkür etmək istərdik.
Sonuncu, lakin ən əsası, məhsullarımızın yaranması və populyarlaşması üçün çox çalışmış Espressif-də hər kəsə təşəkkür edirik.
IoT layihələrinin inkişafı geniş bilik spektrini əhatə edir. Kitabın uzunluğu, eləcə də müəllifin səviyyəsi və təcrübəsi ilə məhdudlaşdıqda, nöqsanlar qaçılmazdır. Odur ki, ekspertlərdən və oxuculardan xahiş edirik ki, səhvlərimizi tənqid etsinlər və düzəltsinlər. Bu kitabla bağlı hər hansı təklifləriniz varsa book@espressif.com ünvanından bizimlə əlaqə saxlayın. Biz sizin rəyinizi gözləyirik.

Bu kitabdan necə istifadə etmək olar?
Bu kitabdakı layihələrin kodu açıq mənbəlidir. Siz onu GitHub anbarımızdan yükləyə və öz fikir və suallarınızı rəsmi forumumuzda paylaşa bilərsiniz. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Forum: https://www.esp32.com/bookc3 Kitab boyu aşağıda göstərildiyi kimi vurğulanan hissələr olacaq.
Mənbə kodu Bu kitabda biz nəzəriyyə və təcrübənin birləşməsini vurğulayırıq və beləliklə, demək olar ki, hər fəsildə Smart Light layihəsi haqqında Təcrübə bölməsi təyin edirik. Müvafiq addımlar və mənbə səhifəsi ilə başlayan iki sətir arasında qeyd olunacaq tag Mənbə kodu.
QEYD/MƏSLƏHƏTLƏR Burada bəzi kritik məlumatları və proqramınızı uğurla sazlamaq üçün xatırladıcı məlumatları tapa bilərsiniz. ilə başlayan iki qalın xətt arasında qeyd olunacaqlar tag QEYD və ya MƏSLƏHƏTLƏR.
Bu kitabdakı əmrlərin əksəriyyəti “$” simvolu ilə verilən Linux altında icra olunur. Əmr icra etmək üçün super istifadəçi imtiyazları tələb edirsə, sorğu “#” ilə əvəz olunacaq. Mac sistemlərində əmr əmri Bölmə 4.2.3 Mac-da ESP-IDF quraşdırılmasında istifadə edildiyi kimi “%”dir.
Bu kitabdakı əsas mətn Xartiyada çap olunacaq, kod isə keçmişamples, komponentlər, funksiyalar, dəyişənlər, kod file adlar, kod kataloqları və sətirlər Courier New-də olacaq.
İstifadəçi tərəfindən daxil edilməli olan əmrlər və ya mətnlər və “Enter” düyməsini sıxmaqla daxil edilə bilən əmrlər Courier New qalın şriftlə çap olunacaq. Qeydlər və kod blokları açıq mavi qutularda təqdim olunacaq.
Example:
İkincisi, NVS bölməsinin binarını yaratmaq üçün esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py istifadə edin. file aşağıdakı komanda ilə inkişaf hostunda:
$ python $IDF PATH/komponentlər/nvs flash/nvs bölmə generatoru/nvs bölmə gen.py –giriş kütləsi prod.csv –çıxış kütləsi prod.bin –ölçüsü NVS PARTITION SIZE

Fəsil 1

Giriş

üçün

IoT

20-ci əsrin sonlarında kompüter şəbəkələrinin və kommunikasiya texnologiyalarının yüksəlişi ilə İnternet insanların həyatına sürətlə inteqrasiya etdi. İnternet texnologiyası inkişaf etməyə davam etdikcə Əşyaların İnterneti (IoT) ideyası yarandı. Hərfi mənada, IoT, əşyaların birləşdiyi İnternet deməkdir. Orijinal İnternet məkan və zaman sərhədlərini pozaraq “insan və insan” arasındakı məsafəni daraltsa da, IoT “insanları” və “əşyaları” bir-birinə yaxınlaşdıraraq “əşyaları” mühüm iştirakçıya çevirir. Yaxın gələcəkdə IoT informasiya sənayesinin hərəkətverici qüvvəsinə çevriləcək.
Beləliklə, Əşyaların İnterneti nədir?
Əşyaların İnternetini dəqiq müəyyənləşdirmək çətindir, çünki onun mənası və əhatə dairəsi daim inkişaf edir. 1995-ci ildə Bill Gates ilk dəfə “The Road Ahead” kitabında IoT ideyasını gündəmə gətirdi. Sadəcə olaraq, IoT obyektlərin İnternet vasitəsilə bir-biri ilə məlumat mübadiləsinə imkan verir. Onun əsas məqsədi “Hər şeyin İnterneti” yaratmaqdır. Bu, IoT-nin erkən təfsiri, həm də gələcək texnologiyanın fantaziyasıdır. Otuz ildən sonra iqtisadiyyatın və texnologiyanın sürətli inkişafı ilə fantaziya gerçəkləşir. Ağıllı cihazlardan, ağıllı evlərdən, ağıllı şəhərlərdən, Nəqliyyat vasitələri İnternetindən və geyilə bilən cihazlardan tutmuş, IoT texnologiyaları tərəfindən dəstəklənən “metaverse”ə qədər daim yeni konsepsiyalar ortaya çıxır. Bu fəsildə biz Əşyaların İnternetinin arxitekturasının izahı ilə başlayacağıq və daha sonra sizə Əşyaların İnterneti haqqında aydın təsəvvür əldə etməyə kömək etmək üçün ən çox yayılmış IoT tətbiqini, ağıllı evi təqdim edəcəyik.
1.1 Əşyaların İnterneti Memarlığı
Əşyaların İnterneti müxtəlif sənayelərdə müxtəlif tətbiq ehtiyacları və formaları olan çoxsaylı texnologiyaları əhatə edir. IoT-nin strukturunu, əsas texnologiyalarını və tətbiq xüsusiyyətlərini çeşidləmək üçün vahid arxitektura və standart texniki sistem yaratmaq lazımdır. Bu kitabda IoT-nin arxitekturası sadəcə olaraq dörd təbəqəyə bölünür: qavrayış və idarəetmə səviyyəsi, şəbəkə səviyyəsi, platforma qatı və tətbiq səviyyəsi.
Qavrayış və Nəzarət Layeri IoT arxitekturasının ən əsas elementi kimi qavrayış və nəzarət təbəqəsi IoT-nin hərtərəfli tədqiqini həyata keçirmək üçün əsasdır. Onun əsas funksiyası məlumat toplamaq, müəyyən etmək və nəzarət etməkdir. Qavrama qabiliyyətinə malik müxtəlif cihazlardan ibarətdir,
3

identifikasiya, nəzarət və icra və material xassələri, davranış meylləri və cihaz statusu kimi məlumatların əldə edilməsi və təhlilinə cavabdehdir. Beləliklə, IoT real fiziki dünyanı tanıyır. Bundan əlavə, təbəqə cihazın vəziyyətini də idarə edə bilir.
Bu təbəqənin ən çox yayılmış cihazları informasiyanın toplanması və identifikasiyasında mühüm rol oynayan müxtəlif sensorlardır. Sensorlar insanın duyğu orqanlarına bənzəyir, məsələn, görməyə bərabər olan fotohəssas sensorlar, eşitməyə akustik sensorlar, qoxuya qarşı qaz sensorları və toxunmaya qarşı təzyiq və temperatura həssas sensorlar. Bütün bu “hiss orqanları” ilə cisimlər “canlı” olur və fiziki aləmi ağılla qavramaq, tanımaq və manipulyasiya etmək qabiliyyətinə malikdir.
Şəbəkə səviyyəsi Şəbəkə səviyyəsinin əsas funksiyası məlumatı, o cümlədən qavrayış və idarəetmə səviyyəsindən əldə edilən məlumatları müəyyən hədəfə, həmçinin tətbiq səviyyəsindən verilən əmrləri qavrayış və idarəetmə səviyyəsinə ötürməkdir. O, IoT sisteminin müxtəlif təbəqələrini birləşdirən mühüm kommunikasiya körpüsü rolunu oynayır. Əşyaların İnternetinin əsas modelini qurmaq üçün o, obyektləri şəbəkəyə inteqrasiya etmək üçün iki addımı əhatə edir: İnternetə çıxış və İnternet vasitəsilə ötürülmə.
İnternet İnternetə çıxış insanla insan arasında əlaqə yaratmağa imkan verir, lakin əşyaları böyük ailəyə daxil edə bilmir. IoT-nin meydana çıxmasından əvvəl, əksər şeylər "şəbəkəyə uyğun" deyildi. Texnologiyanın davamlı inkişafı sayəsində IoT əşyaları İnternetə qoşmağı bacarır və bununla da “insanlar və əşyalar” və “şeylər və əşyalar” arasında qarşılıqlı əlaqəni həyata keçirir. İnternetə qoşulmağın iki ümumi yolu var: simli şəbəkəyə giriş və simsiz şəbəkəyə giriş.
Simli şəbəkəyə daxil olmaq üsullarına Ethernet, serial rabitə (məsələn, RS-232, RS-485) və USB daxildir, simsiz şəbəkəyə giriş isə simsiz rabitədən asılıdır ki, bu da daha çox qısa diapazonlu simsiz rabitə və uzun məsafəli simsiz rabitəyə bölünə bilər.
Qısa diapazonlu simsiz rabitəyə ZigBee, Bluetoothr, Wi-Fi, Yaxın Sahə Rabitəsi (NFC) və Radio Tezlik İdentifikasiyası (RFID) daxildir. Uzun məsafəli simsiz rabitəyə Təkmilləşdirilmiş Maşın Tipi Rabitə (eMTC), LoRa, Dar Band İnterneti (NB-IoT), 2G, 3G, 4G, 5G və s.
İnternet vasitəsilə ötürülmə İnternetə çıxışın müxtəlif üsulları məlumatların müvafiq fiziki ötürülməsi əlaqəsinə gətirib çıxarır. Növbəti şey məlumatların ötürülməsi üçün hansı rabitə protokolunun istifadə ediləcəyinə qərar verməkdir. İnternet terminalları ilə müqayisədə, əksər IoT terminalları hazırda daha azdır
4 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

emal performansı, saxlama qabiliyyəti, şəbəkə sürəti və s. kimi mövcud resurslar, buna görə də IoT tətbiqlərində daha az resurs tutan rabitə protokolunu seçmək lazımdır. Bu gün geniş istifadə olunan iki rabitə protokolu var: Message Queuing Telemetry Transport (MQTT) və Constrained Application Protocol (CoAP).
Platforma qatı Platforma təbəqəsi əsasən IoT bulud platformalarına aiddir. Bütün IoT terminalları şəbəkəyə qoşulduqda, onların məlumatlarının hesablanması və saxlanması üçün IoT bulud platformasında birləşdirilməsi lazımdır. Platforma təbəqəsi kütləvi cihazların girişini və idarə olunmasını asanlaşdırmaq üçün əsasən IoT tətbiqlərini dəstəkləyir. O, IoT terminallarını bulud platformasına bağlayır, terminal məlumatlarını toplayır və uzaqdan idarəetməni həyata keçirmək üçün terminallara əmrlər verir. Avadanlıqların sənaye tətbiqlərinə təyin edilməsi üçün aralıq xidmət kimi platforma təbəqəsi bütün IoT arxitekturasında birləşdirici rol oynayır, mücərrəd biznes məntiqi və standartlaşdırılmış əsas məlumat modelini daşıyır və bu, nəinki cihazların sürətli çıxışını həyata keçirə bilər, həm də güclü modul imkanları təmin edir. sənaye tətbiqi ssenarilərində müxtəlif ehtiyacları qarşılamaq. Platforma səviyyəsinə əsasən cihaz girişi, cihazın idarə edilməsi, təhlükəsizliyin idarə edilməsi, mesaj rabitəsi, əməliyyat və texniki xidmətin monitorinqi və məlumat proqramları kimi funksional modullar daxildir.
· Terminallar və IoT bulud platformaları arasında əlaqə və əlaqəni həyata keçirən cihaz girişi.
· Cihazın yaradılması, cihaza texniki qulluq, məlumatın konvertasiyası, məlumatların sinxronlaşdırılması və cihazın paylanması kimi funksiyalar daxil olmaqla, cihazın idarə edilməsi.
· Təhlükəsizliyin idarə edilməsi, təhlükəsizliyin autentifikasiyası və rabitə təhlükəsizliyi perspektivlərindən IoT məlumat ötürülməsinin təhlükəsizliyinin təmin edilməsi.
· Mesaj rabitəsi, o cümlədən üç ötürmə istiqaməti, yəni terminal məlumatları IoT bulud platformasına göndərir, IoT bulud platforması məlumatları server tərəfinə və ya digər IoT bulud platformalarına göndərir, server tərəfi isə IoT cihazlarını uzaqdan idarə edir.
· Monitorinq və diaqnostika, proqram təminatının təkmilləşdirilməsi, onlayn sazlama, log xidmətləri və s.
· Məlumatların saxlanması, təhlili və tətbiqi ilə bağlı məlumat proqramları.
Tətbiq Layeri Tətbiq səviyyəsi tətbiqi idarə etmək, verilənlər bazası və analiz proqramı kimi alətlərlə onları süzgəcdən keçirmək və emal etmək üçün platforma səviyyəsindəki məlumatlardan istifadə edir. Əldə edilən məlumatlar ağıllı səhiyyə, ağıllı kənd təsərrüfatı, ağıllı evlər və ağıllı şəhərlər kimi real dünyada IoT tətbiqləri üçün istifadə edilə bilər.
Əlbəttə ki, IoT-nin arxitekturası daha çox təbəqəyə bölünə bilər, lakin onun neçə təbəqədən ibarət olmasından asılı olmayaraq, əsas prinsip mahiyyətcə eyni qalır. Öyrənmək
Fəsil 1. Əşyaların İnterneti 5-ə giriş

IoT-nin memarlığı haqqında məlumat IoT texnologiyaları haqqında anlayışımızı dərinləşdirməyə və tam funksional IoT layihələri qurmağa kömək edir.
1.2 Ağıllı Evlərdə IoT Tətbiqi
IoT həyatın bütün sahələrinə nüfuz etdi və bizim üçün ən yaxın IoT tətbiqi ağıllı evdir. Bir çox ənənəvi cihazlar indi bir və ya daha çox IoT cihazı ilə təchiz olunub və bir çox yeni tikilmiş evlər əvvəldən IoT texnologiyaları ilə dizayn edilib. Şəkil 1.1 bəzi ümumi ağıllı ev cihazlarını göstərir.
Şəkil 1.1. Ümumi ağıllı ev cihazları Ağıllı evin inkişafı sadəcə olaraq ağıllı məhsullara bölünə bilərtage, səhnə qarşılıqlı əlaqəsi stage və ağıllı stage, Şəkil 1.2-də göstərildiyi kimi.
Şəkil 1.2. İnkişaf stage of smart home 6 ESP32-C3 Wireless Adventure: IoT üçün hərtərəfli bələdçi

İlk stage ağıllı məhsullar haqqındadır. Ənənəvi evlərdən fərqli olaraq, ağıllı evlərdə IoT cihazları sensorlarla siqnal qəbul edir və Wi-Fi, Bluetooth LE və ZigBee kimi simsiz rabitə texnologiyaları vasitəsilə şəbəkəyə qoşulur. İstifadəçilər ağıllı məhsulları müxtəlif yollarla idarə edə bilərlər, məsələn, smartfon proqramları, səs köməkçiləri, ağıllı dinamik nəzarəti və s. İkinci s.tage səhnənin qarşılıqlı əlaqəsinə diqqət yetirir. Bu stage, tərtibatçılar artıq tək ağıllı məhsula nəzarət etməyi deyil, iki və ya daha çox ağıllı məhsulu bir-birinə bağlamağı, müəyyən dərəcədə avtomatlaşdırmağı və nəhayət, xüsusi səhnə rejimi yaratmağı düşünürlər. məsələnample, istifadəçi hər hansı səhnə rejimi düyməsini basdıqda, işıqlar, pərdələr və kondisionerlər avtomatik olaraq ilkin parametrlərə uyğunlaşdırılacaq. Əlbəttə ki, tetikleyici şərtlər və icra hərəkətləri daxil olmaqla, əlaqə məntiqinin asanlıqla qurulması üçün ilkin şərt var. Təsəvvür edin ki, kondisionerin isitmə rejimi daxili temperatur 10°C-dən aşağı düşdükdə işə salınır; səhər saat 7-də istifadəçini oyatmaq üçün musiqi səsləndiyini, ağıllı pərdələrin açıldığını, düyü bişirən və ya çörək bişirən maşının smart rozetkadan işə salındığını; istifadəçi ayağa qalxıb yuyunduqdan sonra səhər yeməyi artıq verilir ki, işə getməkdə gecikmə olmasın. Həyatımız nə qədər rahat oldu! Üçüncü stage kəşfiyyata gedirtage. Daha çox ağıllı ev cihazlarına giriş əldə olunduqca, yaradılan məlumatların növləri də artacaq. Bulud hesablamaları, böyük verilənlər və süni intellektin köməyi ilə bu, artıq istifadəçidən tez-tez əmr tələb etməyən ağıllı evlərə “daha ​​ağıllı beyin” əkilmiş kimidir. Fəaliyyətləri avtomatlaşdırmaq, o cümlədən qərar qəbul etmək üçün tövsiyələr vermək üçün onlar əvvəlki qarşılıqlı əlaqələrdən məlumat toplayır və istifadəçinin davranış nümunələrini və üstünlüklərini öyrənirlər. Hal-hazırda, ən ağıllı evlər interconnection hadisə yerindədirtage. Ağıllı məhsulların nüfuzetmə dərəcəsi və intellekt səviyyəsi artdıqca, rabitə protokolları arasındakı maneələr aradan qaldırılır. Gələcəkdə ağıllı evlər, Dəmir Adamdakı Jarvis süni intellekt sistemi kimi, həqiqətən də “ağıllı” olacaq, bu sistem istifadəçiyə müxtəlif cihazları idarə etməyə, gündəlik işləri idarə etməyə kömək etməklə yanaşı, həm də super hesablama gücünə və düşünmə qabiliyyətinə malikdir. Ağıllı stage, insanlar həm kəmiyyət, həm də keyfiyyət baxımından daha yaxşı xidmətlər alacaqlar.
Fəsil 1. Əşyaların İnterneti 7-ə giriş

8 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Fəsil Giriş və 2 IoT Layihəsinin Təcrübəsi
1-ci fəsildə biz IoT-nin arxitekturasını, qavrayış və idarəetmə səviyyəsinin, şəbəkə qatının, platforma qatının və tətbiq səviyyəsinin rollarını və qarşılıqlı əlaqələrini, həmçinin ağıllı evin inkişafını təqdim etdik. Ancaq rəsm çəkməyi öyrəndiyimiz kimi, nəzəri bilikləri bilmək kifayət deyil. Texnologiyanı həqiqətən mənimsəmək üçün IoT layihələrini tətbiq etmək üçün "əllərimizi çirkləndirməliyik". Bundan əlavə, bir layihə kütləvi istehsala keçdikdə stage, şəbəkə bağlantısı, konfiqurasiya, IoT bulud platforması ilə qarşılıqlı əlaqə, proqram təminatının idarə edilməsi və yeniləmələri, kütləvi istehsalın idarə edilməsi və təhlükəsizlik konfiqurasiyası kimi daha çox amilləri nəzərə almaq lazımdır. Beləliklə, tam IoT layihəsini hazırlayarkən nələrə diqqət etməliyik? 1-ci fəsildə biz qeyd etdik ki, ağıllı ev ən çox yayılmış IoT tətbiqi ssenarilərindən biridir və ağıllı işıqlar evlərdə, otellərdə, idman zallarında, xəstəxanalarda və s. kimi yerlərdə istifadə oluna bilən ən əsas və praktik cihazlardan biridir. Bu kitabda biz başlanğıc nöqtəsi olaraq ağıllı işıq layihəsinin tikintisini götürəcəyik, onun komponentlərini və xüsusiyyətlərini izah edəcəyik və layihənin inkişafı ilə bağlı təlimat verəcəyik. Ümid edirik ki, daha çox IoT tətbiqi yaratmaq üçün bu işdən nəticə çıxara bilərsiniz.
2.1 Tipik IoT Layihələrinə Giriş
İnkişaf baxımından IoT layihələrinin əsas funksional modulları IoT cihazlarının proqram təminatı və aparat təminatının inkişafı, müştəri tətbiqlərinin inkişafı və IoT bulud platformasının inkişafı kimi təsnif edilə bilər. Bu bölmədə daha ətraflı təsvir ediləcək əsas funksional modulları aydınlaşdırmaq vacibdir.
2.1.1 Ümumi IoT Cihazları üçün Əsas Modullar
IoT cihazlarının proqram təminatı və aparat təminatının hazırlanmasına aşağıdakı əsas modullar daxildir: Məlumatların toplanması
IoT arxitekturasının alt təbəqəsi olaraq, qavrayış və idarəetmə səviyyəsinin IoT cihazları məlumatların toplanması və əməliyyat nəzarətinə nail olmaq üçün sensorları və cihazları çipləri və periferiyaları vasitəsilə birləşdirir.
9

Hesabın bağlanması və ilkin konfiqurasiyası Əksər IoT cihazları üçün hesab bağlaması və ilkin konfiqurasiya bir əməliyyat prosesində tamamlanır, məsələnample, Wi-Fi şəbəkəsini konfiqurasiya etməklə cihazları istifadəçilərlə birləşdirmək.
Əşyaların İnterneti bulud platformaları ilə qarşılıqlı əlaqə Əşyaların İnterneti cihazlarını izləmək və idarə etmək üçün bir-biri ilə qarşılıqlı əlaqə vasitəsilə əmrlər və hesabat statusu vermək üçün onları IoT bulud platformalarına qoşmaq da lazımdır.
Cihaz nəzarəti IoT bulud platformalarına qoşulduqda cihazlar buludla əlaqə saxlaya və qeydiyyata alına, bağlana və ya idarə oluna bilər. İstifadəçilər IoT bulud platformaları və ya yerli rabitə protokolları vasitəsilə smartfon proqramında məhsulun vəziyyətini sorğulaya və digər əməliyyatları həyata keçirə bilərlər.
Mikro proqram təminatının təkmilləşdirilməsi IoT cihazları istehsalçıların ehtiyaclarına əsasən proqram təminatının təkmilləşdirilməsinə nail ola bilər. Bulud tərəfindən göndərilən əmrləri almaqla, proqram təminatının təkmilləşdirilməsi və versiyanın idarə edilməsi həyata keçiriləcək. Bu proqram təminatının təkmilləşdirilməsi xüsusiyyəti ilə siz IoT cihazlarının funksiyalarını davamlı olaraq təkmilləşdirə, qüsurları düzəldə və istifadəçi təcrübəsini təkmilləşdirə bilərsiniz.
2.1.2 Müştəri Tətbiqlərinin Əsas Modulları
Müştəri proqramları (məsələn, smartfon proqramları) əsasən aşağıdakı əsas modulları əhatə edir:
Hesab sistemi və avtorizasiya O, hesab və cihaz avtorizasiyasını dəstəkləyir.
Cihaza nəzarət Smartfon proqramları adətən nəzarət funksiyaları ilə təchiz olunur. İstifadəçilər asanlıqla IoT cihazlarına qoşula və onları istənilən vaxt, istənilən yerdə smartfon proqramları vasitəsilə idarə edə bilərlər. Həqiqi dünyadakı ağıllı evdə cihazlar əsasən smartfon proqramları vasitəsilə idarə olunur ki, bu da təkcə cihazların ağıllı idarə edilməsinə imkan vermir, həm də işçi qüvvəsi xərclərinə qənaət edir. Buna görə də cihaza nəzarət müştəri proqramları üçün zəruridir, məsələn, cihaz funksiyası atributuna nəzarət, səhnə nəzarəti, planlaşdırma, uzaqdan idarəetmə, cihaz əlaqəsi və s. və s., ev həyatını daha rahat və rahat etmək üçün. Onlar kondisionerin vaxtını təyin edə, uzaqdan söndürə, qapının kilidi açıldıqdan sonra dəhliz işığını avtomatik yandıra və ya bir düymə ilə “teatr” rejiminə keçə bilərlər.
Bildiriş Müştəri proqramları IoT cihazlarının real vaxt statusunu yeniləyir və cihazlar anormal vəziyyətdə olduqda xəbərdarlıq göndərir.
10 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Satışdan sonrakı müştəri xidməti Smartfon proqramları IoT cihazlarının nasazlığı və texniki əməliyyatlarla bağlı problemləri vaxtında həll etmək üçün məhsullar üçün satış sonrası xidmətlər göstərə bilər.
Seçilmiş funksiyalar Müxtəlif istifadəçilərin ehtiyaclarını ödəmək üçün Shake, NFC, GPS və s. kimi digər funksiyalar əlavə edilə bilər. GPS məkan və məsafəyə görə səhnə əməliyyatlarının dəqiqliyini təyin etməyə kömək edə bilər, Shake funksiyası isə istifadəçilərə xüsusi cihaz və ya səhnə üçün silkələməklə yerinə yetiriləcək əmrlər.
2.1.3 Ümumi IoT Bulud Platformalarına Giriş
IoT bulud platforması cihaz idarəçiliyi, məlumat təhlükəsizliyi rabitəsi və bildirişlərin idarə edilməsi kimi funksiyaları birləşdirən hamısı bir yerdə platformadır. Hədəf qrupuna və əlçatanlığına görə, IoT bulud platformaları ictimai IoT bulud platformalarına (bundan sonra “ictimai bulud” adlandırılacaq) və özəl IoT bulud platformalarına (bundan sonra “özəl bulud” adlandırılacaq) bölünə bilər.
İctimai bulud adətən müəssisələr və ya şəxslər üçün paylaşılan IoT bulud platformalarını göstərir, platforma provayderləri tərəfindən idarə olunur və saxlanılır və İnternet vasitəsilə paylaşılır. O, pulsuz və ya ucuz ola bilər və Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT və s. kimi açıq ictimai şəbəkədə xidmətlər təqdim edir. Dəstəkləyici platforma kimi ictimai bulud yuxarı xidmət təminatçılarını və yeni dəyər zənciri və ekosistem yaratmaq üçün aşağı axın son istifadəçiləri.
Şəxsi bulud yalnız müəssisə istifadəsi üçün qurulub, beləliklə, məlumat, təhlükəsizlik və xidmət keyfiyyəti üzərində ən yaxşı nəzarəti təmin edir. Onun xidmətləri və infrastrukturu müəssisələr tərəfindən ayrıca saxlanılır və dəstəkləyici aparat və proqram təminatı da xüsusi istifadəçilərə həsr olunub. Müəssisələr öz bizneslərinin ehtiyaclarını ödəmək üçün bulud xidmətlərini fərdiləşdirə bilərlər. Hazırda bəzi ağıllı ev istehsalçıları artıq şəxsi IoT bulud platformalarına sahib olublar və onların əsasında ağıllı ev proqramları hazırlayıblar.
İctimai bulud və şəxsi buludun öz üstünlükləri vartages, daha sonra izah ediləcək.
Rabitə bağlantısına nail olmaq üçün biznes serverləri, IoT bulud platformaları və smartfon proqramları ilə yanaşı, ən azı cihaz tərəfində quraşdırılmış inkişafı tamamlamaq lazımdır. Belə nəhəng layihə ilə üzləşən ictimai bulud prosesi sürətləndirmək üçün adətən cihaz və smartfon proqramları üçün proqram inkişaf dəstləri təqdim edir. Həm ictimai, həm də özəl bulud cihaz girişi, cihazın idarə edilməsi, cihaz kölgəsi, əməliyyat və texniki xidmət daxil olmaqla xidmətlər təqdim edir.
Cihaz girişi IoT bulud platformaları yalnız protokollardan istifadə edərək cihaza giriş üçün interfeys təmin etməməlidir
Fəsil 2. IoT Layihələrinin Girişi və Təcrübəsi 11

MQTT, CoAP, HTTPS və kimi WebSoket, həm də saxta və qeyri-qanuni cihazları bloklamaq üçün cihazın təhlükəsizlik identifikasiyası funksiyası, təhlükəyə məruz qalma riskini effektiv şəkildə azaldır. Belə autentifikasiya adətən müxtəlif mexanizmləri dəstəkləyir, ona görə də cihazlar kütləvi istehsal edildikdə, seçilmiş autentifikasiya mexanizminə uyğun olaraq cihazın sertifikatını əvvəlcədən təyin etmək və onu cihazlarda yandırmaq lazımdır.
Cihazın idarə edilməsi IoT bulud platformaları tərəfindən təmin edilən cihazın idarə edilməsi funksiyası istehsalçılara nəinki real vaxt rejimində aktivləşdirmə statusunu və cihazlarının onlayn statusunu izləməyə kömək edə bilər, həm də cihazların əlavə edilməsi/çıxarılması, qrupların axtarışı, əlavə edilməsi/silinməsi, proqram təminatının təkmilləşdirilməsi kimi seçimlərə imkan verir. , və versiyanın idarə edilməsi.
Cihaz kölgəsi IoT bulud platformaları hər bir cihaz üçün davamlı virtual versiya (cihaz kölgəsi) yarada bilər və cihazın kölgəsinin statusu internet ötürmə protokolları vasitəsilə smartfon proqramı və ya digər cihazlar tərəfindən sinxronlaşdırıla və əldə edilə bilər. Cihaz kölgəsi hər bir cihazın ən son bildirilmiş statusunu və gözlənilən statusunu saxlayır və hətta cihaz oflayn olsa belə, API-lərə zəng etməklə statusu əldə edə bilər. Cihaz kölgəsi həmişə aktiv olan API təmin edir, bu da cihazlarla qarşılıqlı əlaqədə olan smartfon proqramlarının yaradılmasını asanlaşdırır.
Əməliyyat və texniki xidmət O&M funksiyasına üç aspekt daxildir: · IoT cihazları və bildirişlər haqqında statistik məlumatların nümayiş etdirilməsi. · Qeydlərin idarə edilməsi cihazın davranışı, yuxarı/aşağı mesaj axını və mesaj məzmunu haqqında məlumat əldə etməyə imkan verir. · Cihazın sazlanması əmrlərin çatdırılmasını, konfiqurasiyanın yenilənməsini və IoT bulud platformaları və cihaz mesajları arasında qarşılıqlı əlaqənin yoxlanılmasını dəstəkləyir.
2.2 Təcrübə: Ağıllı İşıq Layihəsi
Hər fəsildə nəzəri girişdən sonra siz praktiki təcrübə əldə etməyə kömək etmək üçün Smart Light layihəsi ilə bağlı təcrübə bölməsi tapa bilərsiniz. Layihə Espressif-in ESP32-C3 çipinə və ESP RainMaker IoT Cloud Platformasına əsaslanır və ağıllı işıq məhsullarında simsiz modul aparatını, ESP32C3 əsasında ağıllı cihazlar üçün quraşdırılmış proqram təminatını, smartfon proqramlarını və ESP RainMaker qarşılıqlı əlaqəsini əhatə edir.
Mənbə kodu Daha yaxşı öyrənmə və təcrübə inkişaf etdirmək üçün bu kitabdakı layihə açıq mənbə ilə təchiz edilmişdir. Mənbə kodunu https://github ünvanından GitHub depomuzdan yükləyə bilərsiniz. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

2.2.1 Layihənin strukturu
Smart Light layihəsi üç hissədən ibarətdir: i. IoT bulud platformaları ilə qarşılıqlı əlaqəyə və LED l-in keçidinə, parlaqlığına və rəng istiliyinə nəzarət üçün cavabdeh olan ESP32-C3 əsasında ağıllı işıq cihazlarıamp muncuq. ii. Ağıllı işıq məhsullarının şəbəkə konfiqurasiyasına cavabdeh olan smartfon proqramları (o cümlədən Android və iOS-da işləyən planşet proqramları), həmçinin onların statusunu sorğulamaq və nəzarət etmək.
iii. ESP RainMaker əsasında IoT bulud platforması. Sadələşdirmə üçün bu kitabda IoT bulud platformasını və biznes serverini bütövlükdə nəzərdən keçiririk. ESP RainMaker haqqında təfərrüatlar Fəsil 3-də təqdim olunacaq.
Smart Light layihəsinin strukturu ilə IoT-nin arxitekturası arasındakı uyğunluq Şəkil 2.1-də göstərilmişdir.
Şəkil 2.1. Ağıllı işıq layihəsinin strukturu
2.2.2 Layihənin funksiyaları
Quruluşa görə bölünən hər bir hissənin funksiyaları aşağıdakılardır. Ağıllı işıq cihazları
· Şəbəkə konfiqurasiyası və qoşulması. · LED PWM nəzarəti, məsələn, keçid, parlaqlıq, rəng temperaturu və s. · Avtomatlaşdırma və ya səhnəyə nəzarət, məsələn, vaxt keçidi. · Şifrələmə və Flashın təhlükəsiz açılışı. · Mikroproqramın təkmilləşdirilməsi və versiyanın idarə edilməsi.
Fəsil 2. IoT Layihələrinin Girişi və Təcrübəsi 13

Smartfon proqramları · Şəbəkə konfiqurasiyası və cihazın bağlanması. · Açar, parlaqlıq, rəng temperaturu və s. kimi ağıllı işıq məhsuluna nəzarət. · Avtomatlaşdırma və ya səhnə parametrləri, məsələn, vaxt dəyişdiricisi. · Yerli/uzaqdan idarəetmə. · İstifadəçi qeydiyyatı, giriş və s.
ESP RainMaker IoT bulud platforması · IoT cihazına girişin aktivləşdirilməsi. · Smartfon proqramları üçün əlçatan olan cihaz əməliyyat API-lərinin təmin edilməsi. · Mikroproqramın təkmilləşdirilməsi və versiyanın idarə edilməsi.
2.2.3 Avadanlığın hazırlanması
Layihəni həyata keçirməkdə maraqlısınızsa, sizə aşağıdakı avadanlıq da lazımdır: ağıllı işıqlar, smartfonlar, Wi-Fi marşrutlaşdırıcıları və inkişaf mühitinin quraşdırma tələblərinə cavab verən kompüter. Ağıllı işıqlar
Ağıllı işıqlar, forması ümumi közərmə lampası ilə eyni olan yeni növ lampalardır. Ağıllı işıq kondansatörlə tənzimlənən enerji təchizatı, simsiz modul (daxili ESP32-C3 ilə), LED nəzarətçi və RGB LED matrisindən ibarətdir. Enerjiyə qoşulduqda, 15 V DC voltage kondansatör aşağı salındıqdan, diodun düzəldilməsindən və tənzimlənməsindən sonra çıxış LED nəzarətçi və LED matrisini enerji ilə təmin edir. LED nəzarətçisi avtomatik olaraq müəyyən intervallarla yüksək və aşağı səviyyələr göndərə bilər, RGB LED matrisini qapalı (işıqlar yanır) və açıq (işıqlar sönür) arasında dəyişir ki, mavi, sarı, yaşıl, bənövşəyi, mavi, qırmızı və ağ işıq. Simsiz modul Wi-Fi marşrutlaşdırıcısına qoşulmaq, smart işıqların vəziyyətini qəbul etmək və bildirmək və LED-i idarə etmək üçün əmrlər göndərmək üçün cavabdehdir.
Şəkil 2.2. Simulyasiya edilmiş ağıllı işıq
Erkən inkişafda stage, RGB LED l ilə birləşdirilmiş ESP32-C3DevKitM-1 lövhəsindən istifadə edərək ağıllı işığı simulyasiya edə bilərsiniz.amp boncuklar (bax Şəkil 2.2). Amma etməlisən
14 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Qeyd edək ki, bu ağıllı işığı yığmağın yeganə yolu deyil. Bu kitabdakı layihənin aparat dizaynı yalnız simsiz moduldan ibarətdir (daxili ESP32-C3 ilə), lakin tam ağıllı işıq aparat dizaynı deyil. Bundan əlavə, Espressif həmçinin işıqları audio ilə idarə etmək üçün ESP32-C3 əsaslı audio inkişaf lövhəsi ESP32C3-Lyra istehsal edir. Lövhə mikrofonlar və dinamiklər üçün interfeyslərə malikdir və LED zolaqlarını idarə edə bilir. Bu, ultra aşağı qiymətli, yüksək performanslı audio yayımçıların və ritm işıq zolaqlarının hazırlanması üçün istifadə edilə bilər. Şəkil 2.3-də 32 LED işıqdan ibarət bir zolaqla birləşdirilmiş ESP3-C40Lyra lövhəsi göstərilir.
Şəkil 2.3. ESP32-C3-Lyra 40 LED işıqdan ibarət bir zolaqla birləşdirilir
Smartfonlar (Android/iOS) Smart Light layihəsi ağıllı işıq məhsullarının qurulması və idarə edilməsi üçün smartfon proqramının hazırlanmasını nəzərdə tutur.
Wi-Fi marşrutlaşdırıcıları Wi-Fi marşrutlaşdırıcıları simli şəbəkə siqnallarını və mobil şəbəkə siqnallarını şəbəkəyə qoşulmaq üçün kompüterlər, smartfonlar, planşetlər və digər simsiz cihazlar üçün simsiz şəbəkə siqnallarına çevirir. məsələnample, Wi-Fi cihazlarının simsiz şəbəkəsinə nail olmaq üçün evdə genişzolaqlı internet yalnız Wi-Fi marşrutlaşdırıcısına qoşulmalıdır. Wi-Fi marşrutlaşdırıcıları tərəfindən dəstəklənən əsas protokol standartı IEEE 802.11n-dir, orta TxRate 300 Mbps və ya maksimum 600 Mbps-dir. Onlar IEEE 802.11b və IEEE 802.11g ilə geriyə uyğundur. Espressif-in ESP32-C3 çipi IEEE 802.11b/g/n standartını dəstəkləyir, beləliklə siz tək diapazonlu (2.4 GHz) və ya iki diapazonlu (2.4 GHz və 5 GHz) Wi-Fi marşrutlaşdırıcısı seçə bilərsiniz.
Kompüter (Linux/macOS/Windows) İnkişaf mühiti 4-cü Fəsildə təqdim ediləcək. Fəsil 2. IoT Layihələrinin Girişi və Təcrübəsi 15

2.2.4 İnkişaf Prosesi
Şəkil 2.4. Smart Light layihəsinin inkişaf mərhələləri
Avadanlıq dizaynı IoT cihazlarının aparat dizaynı IoT layihəsi üçün vacibdir. Tam bir smart işıq layihəsi al istehsal etmək üçün nəzərdə tutulmuşduramp elektrik təchizatı altında işləyir. Müxtəlif istehsalçılar l istehsal edirləramps müxtəlif üslub və drayver növlərinə malikdir, lakin onların simsiz modulları adətən eyni funksiyaya malikdir. Smart Ligh layihəsinin inkişaf prosesini sadələşdirmək üçün bu kitab yalnız simsiz modulların hardware dizaynını və proqram təminatının işlənməsini əhatə edir.
IoT bulud platformasının konfiqurasiyası IoT bulud platformalarından istifadə etmək üçün siz məhsulların yaradılması, cihazların yaradılması, cihazın xassələrinin təyin edilməsi və s. kimi arxa planda layihələri konfiqurasiya etməlisiniz.
IoT cihazları üçün quraşdırılmış proqram təminatının inkişafı ESP-IDF, Espressif-in cihaz tərəfi SDK ilə gözlənilən funksiyaları həyata keçirin, o cümlədən IoT bulud platformalarına qoşulun, LED sürücülərinin işlənib hazırlanması və proqram təminatının təkmilləşdirilməsi.
Smartfon proqramlarının hazırlanması İstifadəçilərin qeydiyyatı və daxil olması, cihaza nəzarət və digər funksiyaları həyata keçirmək üçün Android və iOS sistemləri üçün smartfon proqramları hazırlayın.
IoT cihazının optimallaşdırılması IoT cihazı funksiyalarının əsas inkişafı tamamlandıqdan sonra siz enerjinin optimallaşdırılması kimi optimallaşdırma tapşırıqlarına müraciət edə bilərsiniz.
Kütləvi istehsal sınağı Avadanlıq funksiyası testi, yaşlanma testi, RF testi və s. kimi müvafiq standartlara uyğun olaraq kütləvi istehsal sınaqlarını həyata keçirin.
Yuxarıda sadalanan addımlara baxmayaraq, Ağıllı İşıq layihəsi mütləq belə prosedura tabe deyil, çünki eyni zamanda müxtəlif tapşırıqlar da yerinə yetirilə bilər. məsələnample, quraşdırılmış proqram təminatı və smartfon proqramları paralel olaraq inkişaf etdirilə bilər. IoT cihazının optimallaşdırılması və kütləvi istehsal testi kimi bəzi addımların da təkrarlanması tələb oluna bilər.
16 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

2.3 Xülasə
Bu fəsildə biz əvvəlcə IoT layihəsinin əsas komponentləri və funksional modullarını izah etdik, sonra onun strukturu, funksiyaları, aparat hazırlığı və inkişaf prosesinə istinad edərək təcrübə üçün Smart Light korpusunu təqdim etdik. Oxucular təcrübədən nəticə çıxara və gələcəkdə minimal səhvlərlə IoT layihələrini həyata keçirməyə əmin ola bilərlər.
Fəsil 2. IoT Layihələrinin Girişi və Təcrübəsi 17

18 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Fəsil 3

Giriş

üçün

ESP

RainMaker

Əşyaların İnterneti (IoT) insanların həyat tərzini dəyişdirmək üçün sonsuz imkanlar təklif edir, lakin IoT mühəndisliyinin inkişafı çətinliklərlə doludur. İctimai buludlarla terminal istehsalçıları məhsulun funksionallığını aşağıdakı həllər vasitəsilə həyata keçirə bilərlər:
Həll təminatçılarının bulud platformalarına əsaslanaraq Bu yolla, terminal istehsalçıları yalnız məhsulun avadanlığını dizayn etməli, sonra təchiz edilmiş rabitə modulundan istifadə edərək aparatı buludla birləşdirməli və təlimatlara uyğun olaraq məhsul funksiyalarını konfiqurasiya etməlidir. Bu, səmərəli yanaşmadır, çünki o, server tərəfi və tətbiq tərəfi inkişafı və əməliyyatlar və texniki xidmət (O&M) ehtiyacını aradan qaldırır. O, terminal istehsalçılarına bulud tətbiqini nəzərə almadan, hardware dizaynına diqqət yetirməyə imkan verir. Bununla belə, bu cür həllər (məsələn, cihaz proqram təminatı və Tətbiq) ümumiyyətlə açıq mənbə deyil, ona görə də məhsulun funksiyaları provayderin bulud platforması ilə məhdudlaşdırılacaq və onu fərdiləşdirmək mümkün deyil. Eyni zamanda, istifadəçi və cihaz məlumatları da bulud platformasına aiddir.
Bulud məhsulları əsasında Bu həlldə, aparat dizaynını tamamladıqdan sonra terminal istehsalçıları ictimai bulud tərəfindən təmin edilən bir və ya bir neçə bulud məhsulundan istifadə edərək bulud funksiyalarını həyata keçirməli deyil, həm də avadanlığı buludla əlaqələndirməlidirlər. məsələnample, Amazon-a qoşulmaq üçün Web Xidmətlər (AWS), terminal istehsalçıları cihaza giriş, uzaqdan idarəetmə, məlumatların saxlanması, istifadəçi idarəetməsi və digər əsas funksiyaları aktivləşdirmək üçün Amazon API Gateway, AWS IoT Core və AWS Lambda kimi AWS məhsullarından istifadə etməlidirlər. O, terminal istehsalçılarından dərin anlayışa və zəngin təcrübəyə malik bulud məhsullarından çevik şəkildə istifadə etməyi və konfiqurasiya etməyi xahiş etmir, həm də onlardan ilkin və sonrakı dövrlər üçün tikinti və texniki xidmət xərclərini nəzərə almağı tələb edir.tages Bu, şirkətin enerji və resursları üçün böyük problemlər yaradır.
İctimai buludlarla müqayisədə özəl buludlar adətən konkret layihələr və məhsullar üçün qurulur. Şəxsi bulud tərtibatçılarına protokol dizaynında və biznes məntiqinin həyata keçirilməsində ən yüksək səviyyədə sərbəstlik verilir. Terminal istehsalçıları istədikləri kimi məhsullar və dizayn sxemləri yarada, istifadəçi məlumatlarını asanlıqla birləşdirə və gücləndirə bilərlər. İctimai buludun yüksək təhlükəsizliyini, miqyasını və etibarlılığını advan ilə birləşdirməktagŞəxsi buludda Espressif ESP-ni işə saldı
19

RainMaker, Amazon buluduna əsaslanan dərin inteqrasiya olunmuş şəxsi bulud həlli. İstifadəçilər sadəcə AWS hesabı ilə ESP RainMaker tətbiq edə və şəxsi bulud qura bilərlər.
3.1 ESP RainMaker nədir?
ESP RainMaker çoxsaylı yetkin AWS məhsulları ilə qurulmuş tam AIoT platformasıdır. O, cihaz buluduna giriş, cihazı təkmilləşdirmək, arxa uçun idarə edilməsi, üçüncü tərəfin girişi, səs inteqrasiyası və istifadəçi idarəetməsi kimi kütləvi istehsal üçün tələb olunan müxtəlif xidmətləri təqdim edir. AWS tərəfindən təmin edilən Serversiz Tətbiq Repozitoriyasından (SAR) istifadə etməklə, terminal istehsalçıları vaxta qənaətcil və istifadəsi asan olan ESP RainMaker-i öz AWS hesablarına tez yerləşdirə bilərlər. Espressif tərəfindən idarə olunan və saxlanılan, ESP RainMaker tərəfindən istifadə edilən SAR, tərtibatçılara bulud xidmət xərclərini azaltmağa və AIoT məhsullarının inkişafını sürətləndirməyə kömək edir, beləliklə, təhlükəsiz, sabit və fərdiləşdirilə bilən AIoT həlləri yaradır. Şəkil 3.1 ESP RainMaker arxitekturasını göstərir.
Şəkil 3.1. ESP RainMaker arxitekturası
Espressif tərəfindən ESP RainMaker ictimai serveri həllin qiymətləndirilməsi üçün bütün ESP həvəskarları, istehsalçıları və müəllimləri üçün pulsuzdur. Tərtibatçılar Apple, Google və ya GitHub hesabları ilə daxil ola və tez bir zamanda öz IoT tətbiqi prototiplərini qura bilərlər. İctimai server Alexa və Google Home-u birləşdirir və Alexa Skill və Google Actions tərəfindən dəstəklənən səsli idarəetmə xidmətləri təqdim edir. Onun semantik tanınma funksiyası da üçüncü tərəflər tərəfindən təmin edilir. RainMaker IoT cihazları yalnız xüsusi hərəkətlərə cavab verir. Dəstəklənən səs əmrlərinin tam siyahısı üçün üçüncü tərəf platformalarını yoxlayın. Bundan əlavə, Espressif istifadəçilərə smartfonlar vasitəsilə məhsulları idarə etmək üçün ictimai RainMaker Tətbiqini təklif edir. 20 ESP32-C3 Simsiz Macəra: IoT üçün hərtərəfli bələdçi

3.2 ESP RainMaker proqramının tətbiqi
Şəkil 3.2-də göstərildiyi kimi, ESP RainMaker dörd hissədən ibarətdir: · İddia Xidməti, RainMaker cihazlarına sertifikatları dinamik şəkildə əldə etməyə imkan verir. · RainMaker Cloud (həmçinin bulud backend kimi tanınır), mesajların filtrasiyası, istifadəçinin idarə edilməsi, məlumatların saxlanması və üçüncü tərəf inteqrasiyası kimi xidmətlər təqdim edir. · RainMaker Agent, RainMaker cihazlarına RainMaker Cloud-a qoşulmağa imkan verir. · RainMaker Müştərisi (RainMaker Tətbiqi və ya CLI skriptləri), təchizat, istifadəçi yaratmaq, cihaz birləşməsi və nəzarəti və s.
Şəkil 3.2. ESP RainMaker-in strukturu
ESP RainMaker məhsulun inkişafı və kütləvi istehsal üçün tam alətlər dəstini təqdim edir, o cümlədən: RainMaker SDK
RainMaker SDK ESP-IDF-ə əsaslanır və proqram təminatının inkişafı üçün cihaz tərəfi agentinin mənbə kodunu və müvafiq C API-lərini təmin edir. Tərtibatçılar yalnız proqram məntiqini yazmalı və qalanını RainMaker çərçivəsinə buraxmalıdırlar. C API-ləri haqqında ətraflı məlumat üçün https://bookc3.espressif.com/rm/c-api-reference saytına daxil olun. RainMaker Tətbiqi RainMaker Tətbiqinin ictimai versiyası tərtibatçılara cihazın təminatını tamamlamağa və cihazların (məsələn, ağıllı işıqlandırma məhsulları) statusuna nəzarət etmək və sorğulamaq imkanı verir. Həm iOS, həm də Android proqram mağazalarında mövcuddur. Ətraflı məlumat üçün 10-cu Fəsilə baxın. REST API-ləri REST API-ləri istifadəçilərə RainMaker Tətbiqinə bənzər öz proqramlarını yaratmağa kömək edir. Əlavə məlumat üçün https://swaggerapis.rainmaker.espressif.com/ saytına daxil olun.
Fəsil 3. ESP RainMaker 21-ə giriş

Python API-ləri RainMaker SDK ilə birlikdə gələn Python əsaslı CLI smartfon xüsusiyyətlərinə bənzər bütün funksiyaları həyata keçirmək üçün təmin edilmişdir. Python API-ləri haqqında ətraflı məlumat üçün https://bookc3.espressif.com/rm/python-api-reference saytına daxil olun.
Daha yüksək səviyyəli girişə malik Admin CLI Admin CLI, toplu şəkildə cihaz sertifikatlarını yaratmaq üçün ESP RainMaker özəl yerləşdirilməsi üçün təmin edilmişdir.
3.2.1 İddia Xidməti
RainMaker cihazları və bulud arxa ucu arasında bütün əlaqə MQTT+TLS vasitəsilə həyata keçirilir. ESP RainMaker kontekstində “İddia” cihazların bulud arxasına qoşulmaq üçün İddia Xidmətindən sertifikatlar alması prosesidir. Nəzərə alın ki, İddia Xidməti yalnız ictimai RainMaker xidmətinə şamil edilir, özəl yerləşdirmə üçün isə cihaz sertifikatları Admin CLI vasitəsilə toplu şəkildə yaradılmalıdır. ESP RainMaker üç növ İddia Xidmətini dəstəkləyir: Özünə İddia
Cihazın özü internetə qoşulduqdan sonra eFuse-da əvvəlcədən proqramlaşdırılmış məxfi açar vasitəsilə sertifikatları alır. Host Driven Claiming Sertifikatlar RainMaker hesabı ilə inkişaf hostundan əldə edilir. Yardımlı İddia Sertifikatlar təminat zamanı smartfon proqramları vasitəsilə əldə edilir.
3.2.2 RainMaker Agenti
Şəkil 3.3. RainMaker SDK-nın strukturu RainMaker Agentinin əsas funksiyası əlaqə təmin etmək və yuxarı/aşağı keçid bulud məlumatlarını emal etmək üçün proqram qatına kömək etməkdir. O, RainMaker SDK 22 ESP32-C3 Wireless Adventure vasitəsilə qurulmuşdur: IoT üçün hərtərəfli bələdçi

və RTOS, NVS və MQTT kimi ESP-IDF komponentlərindən istifadə edərək sübut edilmiş ESP-IDF çərçivəsi əsasında hazırlanmışdır. Şəkil 3.3 RainMaker SDK-nın strukturunu göstərir.
RainMaker SDK iki əsas xüsusiyyəti ehtiva edir.
Əlaqə
i. Cihaz sertifikatlarını əldə etmək üçün İddia Xidməti ilə əməkdaşlıq.
ii. Uzaqdan əlaqə təmin etmək və uzaqdan idarəetmə, mesaj hesabatı, istifadəçi idarəçiliyi, cihazın idarə edilməsi və s. həyata keçirmək üçün təhlükəsiz MQTT protokolundan istifadə edərək bulud arxasına qoşulma. O, standart olaraq ESP-IDF-də MQTT komponentindən istifadə edir və digərləri ilə interfeys üçün abstraksiya qatını təmin edir. protokol yığınları.
iii. Wi-Fi bağlantısı və təminat üçün wifi təminat komponenti, OTA təkmilləşdirmələri üçün esp https ota komponenti və yerli cihazın kəşfi və qoşulması üçün yerli ctrl komponenti təmin edilir. Bütün bu məqsədlərə sadə konfiqurasiya ilə nail olmaq olar.
Məlumatların emalı
i. İddia Xidməti tərəfindən verilmiş cihaz sertifikatlarının və RainMaker işlədərkən lazım olan məlumatların saxlanması, standart olaraq, nvs flash komponenti tərəfindən təmin edilən interfeysdən istifadə etməklə və birbaşa istifadə üçün tərtibatçılar üçün API təmin etmək.
ii. Uplink/downlink bulud məlumatlarını emal etmək üçün geri çağırış mexanizmindən istifadə etmək və tərtibatçılar tərəfindən asan işlənmək üçün verilənlərin tətbiq səviyyəsinə avtomatik blokdan çıxarılması. məsələnample, RainMaker SDK TSL (Thing Specification Language) məlumatlarının yaradılması üçün zəngin interfeyslər təqdim edir ki, bunlar IoT cihazlarını təsvir etmək üçün TSL modellərini müəyyən etmək və vaxt, geri sayım və səs nəzarəti kimi funksiyaları həyata keçirmək üçün tələb olunur. Zamanlama kimi əsas interaktiv xüsusiyyətlər üçün RainMaker SDK ehtiyac duyulduqda sadəcə aktivləşdirilə bilən inkişafdan azad bir həll təqdim edir. Sonra, RainMaker Agent məlumatları birbaşa emal edəcək, əlaqəli MQTT mövzusu vasitəsilə buluda göndərəcək və geri çağırış mexanizmi vasitəsilə bulud backendindəki məlumat dəyişikliklərini geri qaytaracaq.
3.2.3 Cloud Backend
Bulud backend AWS Serverless Computing üzərində qurulub və AWS Cognito (identifikasiya idarəetmə sistemi), Amazon API Gateway, AWS Lambda (serversiz hesablama xidməti), Amazon DynamoDB (NoSQL verilənlər bazası), AWS IoT Core (MQTT girişini təmin edən IoT giriş nüvəsi) vasitəsilə əldə edilir. və qayda filtrləmə), Amazon Sadə E-poçt Xidməti (SES sadə poçt xidməti), Amazon CloudFront (sürətli çatdırılma şəbəkəsi), Amazon Simple Queue Service (SQS mesaj növbəsi) və Amazon S3 (baxça saxlama xidməti). Bu, miqyaslılığı və təhlükəsizliyi optimallaşdırmaq məqsədi daşıyır. ESP RainMaker ilə tərtibatçılar buludda kod yazmadan cihazları idarə edə bilərlər. Cihazlar tərəfindən bildirilən mesajlar şəffaf şəkildə ötürülür
Fəsil 3. ESP RainMaker 23-ə giriş

proqram müştəriləri və ya digər üçüncü tərəf xidmətləri. Cədvəl 3.1-də daha çox məhsul və funksiyalar işlənmə mərhələsində olan bulud backendində istifadə olunan AWS bulud məhsulları və funksiyaları göstərilir.
Cədvəl 3.1. AWS bulud məhsulları və bulud backend tərəfindən istifadə edilən funksiyalar

RainMaker tərəfindən istifadə edilən AWS Bulud Məhsulu

Funksiya

AWS Cognito

İstifadəçi etimadnamələrinin idarə edilməsi və üçüncü tərəf girişlərinin dəstəklənməsi

AWS Lambda

Bulud backendinin əsas biznes məntiqinin həyata keçirilməsi

Amazon Timestream Zaman seriyası məlumatlarını saxlayır

Amazon DynamoDB Müştərilərin şəxsi məlumatlarının saxlanması

AWS IoT Core

MQTT rabitəsini dəstəkləyir

Amazon SES

E-poçt göndərmə xidmətlərinin göstərilməsi

Amazon CloudFront Backend idarəsini sürətləndirir websayta giriş

Amazon SQS

AWS IoT Core-dan mesajların yönləndirilməsi

3.2.4 RainMaker Müştərisi
Tətbiq və CLI kimi RainMaker müştəriləri REST API-ləri vasitəsilə buludla əlaqə qurur. REST API-ləri haqqında ətraflı məlumat və təlimatlar Espressif tərəfindən təqdim olunan Swagger sənədlərində tapıla bilər. RainMaker-in mobil proqram müştərisi həm iOS, həm də Android sistemləri üçün əlçatandır. O, cihazı təmin etməyə, idarə etməyə və paylaşmağa, həmçinin geri sayım tapşırıqlarını yaratmağa və işə salmağa və üçüncü tərəf platformalarına qoşulmağa imkan verir. Cihazlar tərəfindən bildirilən konfiqurasiyaya uyğun olaraq UI və nişanları avtomatik yükləyə və cihazın TSL-ni tam olaraq göstərə bilər.
məsələnample, ağıllı işıq RainMaker SDK-da qurulursa, exampTəminat tamamlandıqda, lampa işığının simvolu və UI avtomatik olaraq yüklənəcək. İstifadəçilər interfeys vasitəsilə işığın rəngini və parlaqlığını dəyişə və Alexa Smart Home Skill və ya Google Smart Home Actions-ı ESP RainMaker hesablarına birləşdirərək üçüncü tərəfin nəzarətinə nail ola bilərlər. Şəkil 3.4 simvolu və keçmiş UI-ni göstərirampAlexa, Google Home və ESP RainMaker Tətbiqində müvafiq olaraq lampa işığının işıqlandırılması.

24 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

(a) Məsample - Alexa

(b) Məsample - Google Əsas səhifə

(c) Məsample - ESP RainMaker
Şəkil 3.4. MəsələnampAlexa, Google Home və ESP RainMaker Tətbiqində ampul işığının simvolu və istifadəçi interfeysi
3.3 Təcrübə: ESP RainMaker ilə inkişaf üçün əsas nöqtələr
Cihaz drayveri təbəqəsi tamamlandıqdan sonra tərtibatçılar RainMaker SDK tərəfindən təmin edilən API-lərdən istifadə edərək TSL modelləri yaratmağa və aşağı əlaqə məlumatlarını emal etməyə başlaya və məhsulun tərifi və tələbləri əsasında ESP RainMaker əsas xidmətlərini aktivləşdirə bilərlər.
Fəsil 3. ESP RainMaker 25-ə giriş

Bu kitabın 9.4-cü bölməsi RainMaker-də LED ağıllı işığın tətbiqini izah edəcək. Sazlama zamanı tərtibatçılar ağıllı işıqla əlaqə saxlamaq üçün RainMaker SDK-da CLI alətlərindən istifadə edə bilərlər (və ya Swagger-dən REST API-lərinə zəng edin).
10-cu fəsil smartfon proqramlarının işlənib hazırlanmasında REST API-lərinin istifadəsini izah edəcək. LED smart işıqlarının OTA təkmilləşdirmələri 11-ci Fəsildə əhatə olunacaq. Əgər tərtibatçılar ESP Insights uzaqdan monitorinqini aktivləşdiriblərsə, ESP RainMaker idarəetmə arxa hissəsi ESP Insights məlumatlarını göstərəcək. Təfərrüatlar 15-ci Fəsildə təqdim olunacaq.
ESP RainMaker, ictimai RainMaker serverindən aşağıdakı üsullarla fərqlənən şəxsi yerləşdirməni dəstəkləyir:
İddia Xidməti Şəxsi yerləşdirmələrdə sertifikatlar yaratmaq üçün İddia etmək əvəzinə RainMaker Admin CLI-dən istifadə etmək tələb olunur. İctimai serverlə proqram təminatının təkmilləşdirilməsini həyata keçirmək üçün tərtibatçılara admin hüquqları verilməlidir, lakin kommersiya tətbiqlərində bu arzuolunmazdır. Buna görə də, nə öz-özünə iddia etmək üçün ayrıca autentifikasiya xidməti, nə də ev sahibi tərəfindən idarə olunan və ya yardımlı iddia üçün admin hüquqları təmin edilə bilməz.
Telefon proqramları Şəxsi yerləşdirmələrdə hesab sistemlərinin qarşılıqlı fəaliyyət göstərməməsini təmin etmək üçün proqramlar ayrıca konfiqurasiya edilməli və tərtib edilməlidir.
3-cü tərəf girişləri və səs inteqrasiyası Tərtibatçılar 3-cü tərəf girişlərini, həmçinin Alexa Skill və Google Voice Assistant inteqrasiyasını aktivləşdirmək üçün Google və Apple Developer hesabları vasitəsilə ayrıca konfiqurasiya etməlidirlər.
TÖVSİYƏLƏR Bulud tətbiqi ilə bağlı təfərrüatlar üçün https://customer.rainmaker.espressif ünvanına daxil olun. com. Mikroproqram baxımından, ictimai serverdən şəxsi serverə miqrasiya yalnız cihaz sertifikatlarının dəyişdirilməsini tələb edir ki, bu da miqrasiya səmərəliliyini əhəmiyyətli dərəcədə yaxşılaşdırır və miqrasiya və ikincili sazlama xərclərini azaldır.
3.4 ESP RainMaker-in xüsusiyyətləri
ESP RainMaker xüsusiyyətləri əsasən üç aspektə yönəldilir - istifadəçi idarəetməsi, son istifadəçilər və adminlər. Əksi göstərilmədiyi təqdirdə bütün xüsusiyyətlər həm ictimai, həm də özəl serverlərdə dəstəklənir.
3.4.1 İstifadəçi İdarəetmə
İstifadəçi idarəetmə xüsusiyyətləri son istifadəçilərə qeydiyyatdan keçmək, daxil olmaq, parolları dəyişmək, parolları əldə etmək və s. imkan verir.
26 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Qeydiyyatdan keçin və daxil olun RainMaker tərəfindən dəstəklənən qeydiyyat və giriş üsullarına aşağıdakılar daxildir: · E-poçt id + Parol · Telefon nömrəsi + Parol · Google hesabı · Apple hesabı · GitHub hesabı (yalnız ictimai server) · Amazon hesabı (yalnız şəxsi server)
QEYD Google/Amazon istifadə edərək qeydiyyatdan keçin, istifadəçinin e-poçt ünvanını RainMaker ilə paylaşır. Apple-ın istifadəçi üçün xüsusi olaraq RainMaker xidməti üçün təyin etdiyi saxta ünvanı paylaşaraq qeydiyyatdan keçin. Google, Apple və ya Amazon hesabı ilə ilk dəfə daxil olan istifadəçilər üçün avtomatik olaraq RainMaker hesabı yaradılacaq.
Parolun dəyişdirilməsi Yalnız E-poçt id/Telefon nömrəsinə əsaslanan girişlər üçün etibarlıdır. Parol dəyişdirildikdən sonra bütün digər aktiv seanslar sistemdən çıxacaq. AWS Cognito davranışına əsasən, sistemdən çıxmış sessiyalar 1 saata qədər aktiv qala bilər.
Parolun bərpası Yalnız E-poçt id/Telefon nömrəsinə əsaslanan girişlər üçün etibarlıdır.
3.4.2 Son İstifadəçi Xüsusiyyətləri
Son istifadəçilər üçün açıq olan xüsusiyyətlərə yerli və uzaqdan idarəetmə və monitorinq, planlaşdırma, cihazların qruplaşdırılması, cihaz paylaşımı, təkan bildirişləri və üçüncü tərəf inteqrasiyaları daxildir.
Uzaqdan idarəetmə və monitorinq · Bir və ya bütün cihazlar üçün konfiqurasiya, parametr dəyərləri və əlaqə statusu sorğusu. · Tək və ya bir neçə cihaz üçün parametrləri təyin edin.
Yerli nəzarət və monitorinq Mobil telefon və cihaz yerli nəzarət üçün eyni şəbəkəyə qoşulmalıdır.
Planlaşdırma · İstifadəçilər müəyyən vaxtda müəyyən hərəkətləri əvvəlcədən təyin edirlər. · Cədvəli icra edərkən cihaz üçün İnternet bağlantısı tələb olunmur. · Tək və ya çoxlu cihazlar üçün bir dəfə və ya təkrar (günlər göstərilməklə).
Cihaz qruplaşdırılması Çoxsəviyyəli mücərrəd qruplaşdırmanı dəstəkləyir Qrup metadatası Ev Otağı strukturu yaratmaq üçün istifadə edilə bilər.
Fəsil 3. ESP RainMaker 27-ə giriş

Cihaz paylaşımı Bir və ya daha çox cihaz bir və ya bir neçə istifadəçi ilə paylaşıla bilər.
Push bildirişləri Son istifadəçilər · Yeni cihaz(lar) əlavə edilmiş/çıxarılmış · Cihaz buluda qoşulmuş · Cihaz buludla əlaqəsi kəsilmiş · Cihaz paylaşma sorğuları yaradılmış/qəbul edilmiş/rədd edilmiş · Cihazlar tərəfindən bildirilmiş xəbərdarlıq mesajları kimi hadisələr üçün push bildirişləri alacaqlar.
Üçüncü tərəf inteqrasiyaları Alexa və Google Voice Assistant işıqlar, açarlar, rozetkalar, fanatlar və temperatur sensorları daxil olmaqla RainMaker cihazlarını idarə etmək üçün dəstəklənir.
3.4.3 Admin Xüsusiyyətləri
Admin xüsusiyyətləri administratorlara cihazın qeydiyyatını, cihaz qruplaşdırılmasını və OTA təkmilləşdirmələrini həyata keçirməyə imkan verir view statistika və ESP Insights məlumatları.
Cihazın qeydiyyatı Cihaz sertifikatları yaradın və Admin CLI ilə qeydiyyatdan keçin (yalnız şəxsi server).
Cihazın qruplaşdırılması Cihaz məlumatı əsasında mücərrəd və ya strukturlaşdırılmış qruplar yaradın (yalnız şəxsi server).
Over-the-Air (OTA) təkmilləşdirmələri Versiya və model əsasında proqram təminatını bir və ya bir neçə cihaza və ya qrupa yükləyin, OTA işlərini izləyin, ləğv edin və ya arxivləşdirin.
View statistika Viewmümkün statistikaya daxildir: · Cihaz qeydiyyatları (admin tərəfindən qeydə alınmış sertifikatlar) · Cihazın aktivləşdirilməsi (cihaz ilk dəfə qoşulmuşdur) · İstifadəçi hesabları · İstifadəçi-cihaz assosiasiyası
View ESP Insights məlumatları Viewbacarıqlı ESP Insights datasına aşağıdakılar daxildir: · Səhvlər, xəbərdarlıqlar və fərdi qeydlər · Qəza hesabatları və təhlillər · Yenidən yükləmə səbəbləri · Yaddaş istifadəsi, RSSI və s. · Xüsusi ölçülər və dəyişənlər
28 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

3.5 Xülasə
Bu fəsildə biz ictimai RainMaker yerləşdirməsi ilə şəxsi yerləşdirmə arasında bəzi əsas fərqləri təqdim etdik. Espressif tərəfindən təqdim edilən özəl ESP RainMaker həlli yüksək etibarlı və genişləndirilə biləndir. Bütün ESP32 seriyalı çiplər birləşdirilib və AWS-ə uyğunlaşdırılıb ki, bu da xərcləri xeyli azaldır. Tərtibatçılar AWS bulud məhsulları haqqında məlumat almadan prototipin yoxlanılmasına diqqət yetirə bilərlər. Biz həmçinin ESP RainMaker-in tətbiqi və xüsusiyyətlərini və platformadan istifadə edərək inkişaf üçün bəzi əsas məqamları izah etdik.
Android üçün ESP RainMaker-i yükləmək üçün skan edin iOS üçün ESP RainMaker-i endirmək üçün skan edin
Fəsil 3. ESP RainMaker 29-ə giriş

30 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Fəsil 4 İnkişaf mühitinin qurulması
Bu fəsil ESP32-C3 üçün rəsmi proqram təminatının işlənib hazırlanması çərçivəsi olan ESP-IDF-ə diqqət yetirir. Biz müxtəlif əməliyyat sistemlərində mühitin necə qurulacağını izah edəcəyik və ESP-IDF-nin layihə strukturu və qurma sistemini, eləcə də müvafiq inkişaf alətlərindən istifadəni təqdim edəcəyik. Sonra keçmişin tərtibi və işləmə prosesini təqdim edəcəyikample layihə, hər s-də çıxış jurnalının ətraflı izahatını təklif edərkəntage.
4.1 ESP-IDF Bitdiview
ESP-IDF (Espressif IoT İnkişaf Çərçivəsi) Espressif Texnologiyası tərəfindən təmin edilən tək pəncərəli IoT inkişaf çərçivəsidir. O, əsas inkişaf dili kimi C/C++ istifadə edir və Linux, Mac və Windows kimi əsas əməliyyat sistemləri altında çarpaz kompilyasiyanı dəstəkləyir. keçmişampBu kitaba daxil olan proqramlar aşağıdakı funksiyaları təklif edən ESP-IDF-dən istifadə etməklə hazırlanmışdır: · SoC sistem səviyyəli drayverlər. ESP-IDF ESP32, ESP32-S2, ESP32-C3,
və digər çiplər. Bu drayverlər periferik aşağı səviyyəli (LL) kitabxananı, aparat abstraksiya qatının (HAL) kitabxanasını, RTOS dəstəyini və yuxarı səviyyəli sürücü proqramını və s. əhatə edir. · Əsas komponentlər. ESP-IDF IoT inkişafı üçün tələb olunan əsas komponentləri özündə birləşdirir. Bura HTTP və MQTT kimi çoxsaylı şəbəkə protokolu yığınları, dinamik tezlik modulyasiyası ilə güc idarəetmə çərçivəsi və Flash Şifrələmə və Təhlükəsiz Yükləmə kimi funksiyalar və s. daxildir. · İnkişaf və istehsal alətləri. ESP-IDF CMake-ə əsaslanan tikinti sistemi, GCC-yə əsaslanan çarpaz tərtib alətlər zənciri və J kimi inkişaf və kütləvi istehsal zamanı tikinti, flaş və sazlama üçün ümumi istifadə olunan alətləri təmin edir (Şəkil 4.1-ə baxın).TAG OpenOCD əsasında sazlama aləti və s. Qeyd etmək lazımdır ki, ESP-IDF kodu ilk növbədə Apache 2.0 açıq mənbə lisenziyasına uyğundur. İstifadəçilər açıq mənbəli lisenziyanın şərtlərinə əməl etməklə məhdudiyyətsiz şəxsi və ya kommersiya proqram təminatını inkişaf etdirə bilərlər. Bundan əlavə, istifadəçilərə mənbə koduna edilən hər hansı dəyişiklikləri açıq mənbədən istifadə etmə öhdəliyi olmadan pulsuz olaraq daimi patent lisenziyaları verilir.
31

Şəkil 4.1.

Quraşdırma, yanıb-sönmə və sazlama-

inkişaf və kütləvi istehsal üçün ging alətləri

4.1.1 ESP-IDF versiyaları
ESP-IDF kodu GitHub-da açıq mənbəli layihə kimi yerləşdirilib. Hazırda üç əsas versiya mövcuddur: v3, v4 və v5. Hər bir əsas versiya adətən v4.2, v4.3 və s. kimi müxtəlif təxribatlar ehtiva edir. Espressif Systems hər buraxılmış alt versiya üçün səhvlərin düzəldilməsi və təhlükəsizlik yamaları üçün 30 aylıq dəstəyi təmin edir. Buna görə də, v4.3.1, v4.2.2 və s. kimi təxribatların reviziyaları da müntəzəm olaraq buraxılır. Cədvəl 4.1-də Espressif çipləri üçün müxtəlif ESP-IDF versiyalarının dəstək statusu göstərilir və onların əvvəlki versiyada olub-olmaması göstərilir.view stage (əvvəlcədən dəstək təklif edirview müəyyən funksiyalar və ya sənədləri olmayan versiyalar) və ya rəsmi olaraq dəstəklənir.

Cədvəl 4.1. Espressif çipləri üçün müxtəlif ESP-IDF versiyalarının dəstək statusu

ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2 seriyası

v4.1 dəstəklənir

v4.2 dəstəklənir

v4.3 dəstəklənir dəstəklənir dəstəklənir

v4.4 dəstəklənir dəstəklənir dəstəklənir dəstəklənir
əvvəlview

v5.0 dəstəklənir dəstəklənir dəstəklənir dəstəklənir dəstəklənir dəstəklənir preview

32 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Əsas versiyaların təkrarlanması çox vaxt çərçivə strukturuna düzəlişlər və kompilyasiya sistemində yenilikləri əhatə edir. məsələnample, v3.*-dən v4.*-ə əsas dəyişiklik quraşdırma sisteminin Make-dən CMake-ə tədricən miqrasiyası oldu. Digər tərəfdən, kiçik versiyaların təkrarlanması adətən yeni funksiyaların əlavə edilməsini və ya yeni çiplərin dəstəklənməsini tələb edir.
Stabil versiyalar və GitHub filialları arasındakı əlaqəni ayırd etmək və anlamaq vacibdir. v*.* və ya v*.*.* kimi etiketlənmiş versiyalar Espressif tərəfindən tam daxili sınaqdan keçmiş stabil versiyaları təmsil edir. Sabitləndikdən sonra eyni versiya üçün kod, alət silsiləsi və buraxılış sənədləri dəyişməz qalır. Bununla belə, GitHub filialları (məsələn, buraxılış/v4.3 filialı) tez-tez gündəlik olaraq, tez-tez kod icrasına məruz qalır. Buna görə də, eyni filialın altındakı iki kod parçası fərqli ola bilər, bu da tərtibatçıların öz kodlarına uyğun olaraq təcili olaraq yeniləmələrini tələb edir.
4.1.2 ESP-IDF Git İş axını
Espressif ESP-IDF üçün aşağıdakı kimi təsvir edilən xüsusi Git iş axını izləyir:
· Əsas inkişaf şöbəsi kimi xidmət edən master filialında yeni dəyişikliklər edilir. Master filialında ESP-IDF versiyası həmişə -dev daşıyır tag v4.3-dev kimi hal-hazırda inkişaf mərhələsində olduğunu göstərmək üçün. Master filialında dəyişikliklər əvvəlcə yenidən olacaqviewed və Espressif-in daxili deposunda sınaqdan keçirilir və avtomatlaşdırılmış sınaq tamamlandıqdan sonra GitHub-a ötürülür.
· Yeni versiya master filialda funksiyaların işlənib hazırlanmasını başa vurduqdan və beta testinə daxil olmaq üçün kriteriyalara cavab verdikdən sonra o, buraxılış/v4.3 kimi yeni bölməyə keçir. Bundan əlavə, bu yeni şöbədir tagv4.3-beta1 kimi ilkin buraxılış versiyası kimi ged. Tərtibatçılar filialların tam siyahısına daxil olmaq üçün GitHub platformasına müraciət edə bilərlər və tags ESP-IDF üçün. Qeyd etmək vacibdir ki, beta versiyada (relizdən əvvəl versiya) hələ də xeyli sayda məlum problemlər ola bilər. Beta versiyası davamlı sınaqdan keçirildiyi üçün eyni vaxtda həm bu versiyaya, həm də master filialına səhv düzəlişləri əlavə edilir. Bu arada, master filial artıq növbəti versiya üçün yeni funksiyalar hazırlamağa başlamış ola bilər. Sınaq demək olar ki, tamamlandıqda filiala buraxılış namizədi (rc) etiketi əlavə edilir və bu, onun v4.3-rc1 kimi rəsmi buraxılış üçün potensial namizəd olduğunu göstərir. Bu stage, filial pre-reliz versiyası olaraq qalır.
· Heç bir əsas səhv aşkar edilmədikdə və ya bildirilmədikdə, buraxılışdan əvvəlki versiya nəhayət əsas versiya etiketini (məsələn, v5.0) və ya kiçik versiya etiketini (məsələn, v4.3) alır və sənədləşdirilmiş rəsmi buraxılış versiyasına çevrilir. buraxılış qeydləri səhifəsində. Sonradan, bu versiyada müəyyən edilmiş hər hansı səhvlər buraxılış filialında düzəldilir. Əl ilə sınaq başa çatdıqdan sonra filiala səhvləri aradan qaldıran versiya etiketi (məsələn, v4.3.2) təyin edilir, bu da buraxılış qeydləri səhifəsində əks olunur.
Fəsil 4. İnkişaf mühitinin qurulması 33

4.1.3 Uyğun versiyanın seçilməsi
ESP-IDF rəsmi olaraq ESP32-C3-ü v4.3 versiyasından dəstəkləməyə başladığından və v4.4 bu kitabı yazarkən hələ rəsmi olaraq buraxılmadığından, bu kitabda istifadə edilən versiya yenidən işlənmiş versiya olan v4.3.2-dir. v4.3. Bununla belə, qeyd etmək vacibdir ki, siz bu kitabı oxuyan zaman v4.4 və ya daha yeni versiyalar artıq mövcud ola bilər. Versiya seçərkən aşağıdakıları tövsiyə edirik:
· Başlanğıc səviyyəli tərtibatçılar üçün stabil v4.3 versiyasını və ya əvvəlki versiyaya uyğun gələn onun işlənmiş versiyasını seçmək məsləhətdir.ampBu kitabda istifadə olunan versiya.
· Kütləvi istehsal məqsədləri üçün ən müasir texniki dəstəkdən faydalanmaq üçün ən son stabil versiyadan istifadə etmək tövsiyə olunur.
· Əgər siz yeni çiplərlə sınaqdan keçirmək və ya yeni məhsul xüsusiyyətlərini araşdırmaq niyyətindəsinizsə, lütfən, master filialından istifadə edin. Ən son versiya bütün ən son funksiyaları ehtiva edir, lakin yadda saxlayın ki, məlum və ya naməlum səhvlər ola bilər.
· İstifadə olunan stabil versiyada arzu olunan yeni funksiyalar yoxdursa və siz əsas bölmə ilə bağlı riskləri minimuma endirmək istəyirsinizsə, buraxılış/v4.4 filialı kimi müvafiq buraxılış qolundan istifadə etməyi düşünün. Espressif-in GitHub repozitoriyası əvvəlcə buraxılış/v4.4 filialını yaradacaq və daha sonra bütün funksiyaların işlənib hazırlanması və sınaqdan keçirilməsini başa vurduqdan sonra bu filialın xüsusi tarixi snapshotına əsaslanaraq stabil v4.4 versiyasını buraxacaq.
4.1.4 Artıqview ESP-IDF SDK Directory
ESP-IDF SDK iki əsas kataloqdan ibarətdir: esp-idf və .espressif. Birincisi ESP-IDF repozitoriyasının mənbə kodunu ehtiva edir files və kompilyasiya skriptlərini, ikincisi isə əsasən tərtib alətləri zəncirlərini və digər proqram təminatını saxlayır. Bu iki kataloqla tanışlıq tərtibatçılara mövcud resurslardan daha yaxşı istifadə etməyə və inkişaf prosesini sürətləndirməyə kömək edəcək. ESP-IDF-nin kataloq strukturu aşağıda təsvir edilmişdir:
(1) Şəkil 4.2-də göstərildiyi kimi ESP-IDF depo kod kataloqu (/esp/esp-idf).
a. Komponent kataloqu komponentləri
Bu əsas kataloq ESP-IDF-in çoxsaylı əsas proqram komponentlərini birləşdirir. Heç bir layihə kodu bu kataloqda olan komponentlərə etibar etmədən tərtib edilə bilməz. Buraya müxtəlif Espressif çipləri üçün sürücü dəstəyi daxildir. Ətraf qurğular üçün LL kitabxanası və HAL kitabxana interfeyslərindən tutmuş yuxarı səviyyəli Sürücü və Virtuala qədər File Sistem (VFS) qat dəstəyi, tərtibatçılar inkişaf ehtiyacları üçün müxtəlif səviyyələrdə uyğun komponentləri seçə bilərlər. ESP-IDF həmçinin TCP/IP, HTTP, MQTT, WebSoket və s. Tərtibatçılar şəbəkə proqramları yaratmaq üçün Socket kimi tanış interfeyslərdən istifadə edə bilərlər. Komponentlər anlayışı təmin edir
34 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Şəkil 4.2. ESP-IDF depo kodu kataloqu
sive funksionallıq və asanlıqla proqramlara inteqrasiya oluna bilər ki, bu da tərtibatçılara yalnız biznes məntiqinə diqqət yetirməyə imkan verir. Bəzi ümumi komponentlərə aşağıdakılar daxildir: · sürücü: Bu komponent müxtəlif Espressif üçün periferik sürücü proqramlarını ehtiva edir
GPIO, I2C, SPI, UART, LEDC (PWM) və s. kimi çip seriyaları. Bu komponentdə olan periferik sürücü proqramları çipdən müstəqil mücərrəd interfeyslər təklif edir. Hər bir periferiyanın ümumi başlığı var file (məsələn, gpio.h), müxtəlif çip üçün xüsusi dəstək sualları ilə məşğul olmaq ehtiyacını aradan qaldırır. · esp_wifi: Wi-Fi, xüsusi periferiya kimi, ayrıca komponent kimi qəbul edilir. O, müxtəlif Wi-Fi sürücü rejimlərinin işə salınması, parametr konfiqurasiyası və hadisənin işlənməsi kimi çoxsaylı API-ləri ehtiva edir. Bu komponentin müəyyən funksiyaları statik keçid kitabxanaları şəklində təqdim olunur. ESP-IDF həmçinin istifadə rahatlığı üçün hərtərəfli sürücü sənədlərini təqdim edir.
Fəsil 4. İnkişaf mühitinin qurulması 35

· freertos: Bu komponent tam FreeRTOS kodunu ehtiva edir. Bu əməliyyat sistemi üçün hərtərəfli dəstək verməklə yanaşı, Espressif dəstəyini iki nüvəli çiplərə də genişləndirmişdir. ESP32 və ESP32-S3 kimi iki nüvəli çiplər üçün istifadəçilər xüsusi nüvələrdə tapşırıqlar yarada bilərlər.
b. Sənəd kataloqu sənədlər
Bu kataloq ESP-IDF ilə əlaqəli inkişaf sənədlərini, o cümlədən Başlanğıc Bələdçisini, API İstinad Təlimatını, İnkişaf Bələdçisini və s.
QEYD Avtomatlaşdırılmış alətlər tərəfindən tərtib edildikdən sonra bu kataloqun məzmunu https://docs.espressif.com/projects/esp-idf ünvanında yerləşdirilir. Lütfən, sənəd hədəfini ESP32-C3-ə dəyişdiyinizə əmin olun və göstərilən ESP-IDF versiyasını seçin.
c. Skript aləti alətləri
Bu qovluqda idf.py kimi tez-tez istifadə olunan kompilyasiya alətləri və monitor terminalı aləti idf_monitor.py və s. var. Cmake alt kataloqu həmçinin əsas skripti ehtiva edir. fileESP-IDF tərtib qaydalarının həyata keçirilməsi üçün əsas kimi xidmət edən kompilyasiya sisteminin s. Mühit dəyişənlərini əlavə edərkən, alətlər kataloqunun içindəki məzmunlar sistem mühiti dəyişəninə əlavə edilir və idf.py-nin birbaşa layihə yolu altında icrasına imkan verir.
d. Məsample proqram kataloqu examples
Bu kataloq ESP-IDF-in geniş kolleksiyasından ibarətdirampkomponent API-lərinin istifadəsini nümayiş etdirən proqramlar. keçmişamples kateqoriyalarına görə müxtəlif alt kataloqlara bölünür:
· işə başlayın: Bu alt kataloqa giriş səviyyəli keçmiş daxildirampistifadəçilərə əsasları başa düşməyə kömək etmək üçün “salam dünya” və “yanıb-sönmək” kimi.
· bluetooth: Siz Bluetooth ilə əlaqəli məsələn tapa bilərsinizampBluetooth LE Mesh, Bluetooth LE HID, BluFi və s. daxil olmaqla burada.
· wifi: Bu alt qovluq Wi-Fi-a fokuslanırampWi-Fi SoftAP, Wi-Fi Station, espnow kimi əsas proqramlar, o cümlədən xüsusi rabitə protokoluampEspressif-dən les. Buraya çoxlu proqram qatı daxildir, məsələnampIperf, Sniffer və Smart Config kimi Wi-Fi-a əsaslanır.
· periferik qurğular: Bu geniş alt kataloq əlavə olaraq periferik adlara əsasən çoxsaylı alt qovluqlara bölünür. O, əsasən periferik sürücüdən ibarətdirampEspressif çipləri üçün les, hər bir köhnə iləample bir neçə sub-ex featuringamples. Məsələn, gpio alt kataloqu iki ex daxildiramples: GPIO və GPIO matris klaviaturası. Qeyd etmək vacibdir ki, hamısı keçmiş deyilampbu qovluqdakı məlumatlar ESP32-C3 üçün uyğundur.
36 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

məsələnample, keçmişampusb/host-dakı les yalnız USB Host avadanlığı (ESP32-S3 kimi) olan periferiya qurğularına tətbiq edilir və ESP32-C3-də bu periferiya yoxdur. Kompilyasiya sistemi adətən hədəfi təyin edərkən göstərişlər verir. README file hər keçmişdənample dəstəklənən çipləri sadalayır. · protokollar: Bu alt-kataloqda məsampMQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP daxil olmaqla, müxtəlif kommunikasiya protokolları üçün les.ampIoT inkişafı üçün tələb olunur. · təminat: Burada, məsələn, təminat tapa bilərsinizampWi-Fi təminatı və Bluetooth LE təminatı kimi müxtəlif üsullar üçün. · sistem: Bu alt kataloqa sistemin sazlanması daxildir, məsələnamples (məsələn, yığının izlənməsi, iş vaxtının izlənməsi, tapşırıqların monitorinqi), gücün idarə edilməsi, məsələnamples (məsələn, müxtəlif yuxu rejimləri, birgə prosessorlar) və sampkonsol terminalı, hadisə dövrəsi və sistem taymeri kimi ümumi sistem komponentləri ilə əlaqədardır. · saxlama: Bu alt-kataloqda siz examphamısından les file ESP-IDF tərəfindən dəstəklənən sistemlər və saxlama mexanizmləri (məsələn, Flash, SD kart və digər yaddaş daşıyıcılarının oxunması və yazılması), eləcə də s.ampuçucu olmayan saxlama (NVS), FatFS, SPIFFS və s file sistem əməliyyatları. · təhlükəsizlik: Bu alt kataloq məsələn, ehtiva edirampflaş şifrələməsi ilə əlaqəli. (2) Şəkil 4.3-də göstərildiyi kimi ESP-IDF tərtib alətləri zənciri kataloqu (/.espressif).
Şəkil 4.3. ESP-IDF tərtib alətləri zənciri kataloqu
Fəsil 4. İnkişaf mühitinin qurulması 37

a. Proqram paylama kataloqu dist
ESP-IDF alətlər silsiləsi və digər proqram təminatı sıxılmış paketlər şəklində paylanır. Quraşdırma prosesi zamanı quraşdırma aləti əvvəlcə sıxılmış paketi dist qovluğuna yükləyir, sonra isə onu göstərilən qovluğa çıxarır. Quraşdırma tamamlandıqdan sonra bu kataloqdakı məzmunlar təhlükəsiz şəkildə silinə bilər.
b. Python virtual mühit kataloqu python env
ESP-IDF-nin müxtəlif versiyaları Python paketlərinin xüsusi versiyalarına əsaslanır. Bu paketləri birbaşa eyni hostda quraşdırmaq paket versiyaları arasında ziddiyyətlərə səbəb ola bilər. Bunu həll etmək üçün ESP-IDF müxtəlif paket versiyalarını təcrid etmək üçün Python virtual mühitlərindən istifadə edir. Bu mexanizmlə tərtibatçılar ESP-IDF-nin bir neçə versiyasını eyni hostda quraşdıra və müxtəlif mühit dəyişənlərini idxal etməklə onlar arasında asanlıqla keçid edə bilərlər.
c. ESP-IDF tərtib aləti zəncir kataloqu alətləri
Bu kataloq əsasən CMake alətləri, Ninja qurma alətləri və son icra edilə bilən proqramı yaradan gcc alətlər silsiləsi kimi ESP-IDF layihələrini tərtib etmək üçün tələb olunan çarpaz tərtib alətlərini ehtiva edir. Bundan əlavə, bu kataloq müvafiq başlıq ilə birlikdə C/C++ dilinin standart kitabxanasını ehtiva edir files. Proqram sistem başlığına istinad edirsə file kimi #daxil et , kompilyasiya alətləri silsiləsi stdio.h-ni tapacaq file bu kataloq daxilində.
4.2 ESP-IDF İnkişaf Mühitinin qurulması
ESP-IDF inkişaf mühiti Windows, Linux və macOS kimi əsas əməliyyat sistemlərini dəstəkləyir. Bu bölmə hər bir sistemdə inkişaf mühitinin necə qurulacağını təqdim edəcək. Burada ətraflı şəkildə təqdim ediləcək Linux sistemində ESP32-C3-ün hazırlanması tövsiyə olunur. İnkişaf alətlərinin oxşarlığına görə bir çox təlimat platformalarda tətbiq oluna bilər. Buna görə də bu bölmənin məzmununu diqqətlə oxumaq tövsiyə olunur.
QEYD Bu bölmədə qeyd olunan əmrləri təmin edən https://bookc3.espressif.com/esp32c3 ünvanında mövcud olan onlayn sənədlərə müraciət edə bilərsiniz.
4.2.1 Linux-da ESP-IDF İnkişaf Mühitinin qurulması
ESP-IDF inkişaf mühiti üçün tələb olunan GNU inkişaf etdirmə və sazlama alətləri Linux sisteminə doğmadır. Bundan əlavə, Linux-da komanda xətti terminalı güclü və istifadəçi dostudur, bu da onu ESP32-C3 inkişafı üçün ideal seçim edir. Bacararsan
38 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

üstünlük verdiyiniz Linux paylanması seçin, lakin biz Ubuntu və ya digər Debian-based sistemlərdən istifadə etməyi tövsiyə edirik. Bu bölmə Ubuntu 20.04-də ESP-IDF inkişaf mühitinin qurulmasına dair təlimat təqdim edir.
1. Tələb olunan paketləri quraşdırın
Yeni terminal açın və bütün lazımi paketləri quraşdırmaq üçün aşağıdakı əmri yerinə yetirin. Komanda artıq quraşdırılmış paketləri avtomatik olaraq atlayacaq.
$ sudo apt-get install git wget flex bizon gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
MƏSLƏHƏTLƏR Yuxarıdakı əmr üçün administrator hesabı və paroldan istifadə etməlisiniz. Varsayılan olaraq, parol daxil edilərkən heç bir məlumat göstərilməyəcək. Proseduru davam etdirmək üçün sadəcə "Enter" düyməsini sıxın.
Git ESP-IDF-də əsas kod idarəetmə vasitəsidir. İnkişaf mühitini uğurla qurduqdan sonra git log əmrindən istifadə edə bilərsiniz view ESP-IDF yaradıldıqdan sonra edilən bütün kod dəyişiklikləri. Bundan əlavə, Git ESP-IDF-də xüsusi versiyalara uyğun düzgün alət zəncirinin quraşdırılması üçün lazım olan versiya məlumatlarını təsdiqləmək üçün də istifadə olunur. Git ilə yanaşı, digər mühüm sistem alətlərinə Python da daxildir. ESP-IDF, Python-da yazılmış çoxsaylı avtomatlaşdırma skriptlərini özündə birləşdirir. CMake, Ninja-build və Ccache kimi alətlər C/C++ layihələrində geniş istifadə olunur və ESP-IDF-də standart kod tərtibi və tikinti alətləri kimi xidmət edir. libusb-1.0-0 və dfu-util USB serial rabitəsi və proqram təminatının yandırılması üçün istifadə olunan əsas drayverlərdir. Proqram paketləri quraşdırıldıqdan sonra apt show-dan istifadə edə bilərsiniz hər bir paketin ətraflı təsvirini əldə etmək əmri. məsələnample, Git aləti üçün təsvir məlumatını çap etmək üçün apt show git istifadə edin.
S: Python versiyası dəstəklənmirsə nə etməli? A: ESP-IDF v4.3 v3.6-dan aşağı olmayan Python versiyasını tələb edir. Ubuntu-nun köhnə versiyaları üçün lütfən, Python-un daha yüksək versiyasını əl ilə endirib quraşdırın və Python3-ü defolt Python mühiti kimi təyin edin. Ətraflı təlimatları update-alternatives python açar sözünü axtararaq tapa bilərsiniz.
2. ESP-IDF repozitor kodunu yükləyin
Terminal açın və mkdir əmrindən istifadə edərək ev kataloqunuzda esp adlı qovluq yaradın. İstəyirsinizsə, qovluq üçün başqa ad seçə bilərsiniz. Qovluğa daxil olmaq üçün cd əmrindən istifadə edin.
Fəsil 4. İnkişaf mühitinin qurulması 39

$ mkdir -p /esp $ cd /esp
Aşağıda göstərildiyi kimi ESP-IDF repozitor kodunu yükləmək üçün git clone əmrindən istifadə edin:
$ git clone -b v4.3.2 -rekursiv https://github.com/espressif/esp-idf.git
Yuxarıdakı komandada -b v4.3.2 parametri yüklənəcək versiyanı təyin edir (bu halda 4.3.2 versiyası). Parametr –rekursiv ESP-IDF-nin bütün alt-repozitoriyalarının rekursiv şəkildə endirilməsini təmin edir. Alt-repozitoriyalar haqqında məlumatı .gitmodullarında tapmaq olar file.
3. ESP-IDF inkişaf alətləri zəncirini quraşdırın
Espressif alətlər zəncirini endirmək və quraşdırmaq üçün install.sh avtomatlaşdırılmış skriptini təqdim edir. Bu skript cari ESP-IDF versiyasını və əməliyyat sistemi mühitini yoxlayır, sonra Python alət paketlərinin və tərtib alət zəncirlərinin müvafiq versiyasını yükləyir və quraşdırır. Alət zənciri üçün standart quraşdırma yolu /.espressif-dir. Sizə lazım olan tək şey esp-idf qovluğuna getmək və install.sh proqramını işə salmaqdır.
$ cd /esp/esp-idf $ ./install.sh
Alət zəncirini uğurla quraşdırsanız, terminal aşağıdakıları göstərəcək:
Hamısı hazırdır!
Bu nöqtədə siz ESP-IDF inkişaf mühitini uğurla qurdunuz.
4.2.2 Windows-da ESP-IDF İnkişaf Mühitinin qurulması
1. ESP-IDF alətləri quraşdırıcısını yükləyin
MƏSLƏHƏTLƏR ESP-IDF inkişaf mühitini Windows 10 və ya daha yuxarı sistemlərdə qurmaq tövsiyə olunur. Quraşdırıcını https://dl.espressif.com/dl/esp-idf/ saytından yükləyə bilərsiniz. Quraşdırıcı həm də açıq mənbəli proqramdır və onun mənbə kodu ola bilər viewed https://github.com/espressif/idf-installer.
· Onlayn ESP-IDF alətləri quraşdırıcısı
Bu quraşdırıcı nisbətən kiçikdir, təxminən 4 MB ölçüsündədir və quraşdırma prosesi zamanı digər paketlər və kodlar endiriləcək. AdvantagOnlayn quraşdırıcının e xüsusiyyəti ondan ibarətdir ki, quraşdırma prosesi zamanı nəinki proqram paketləri və kodu tələb olunarsa yükləmək olar, həm də ESP-IDF-nin bütün mövcud buraxılışlarını və GitHub kodunun ən son filialını (məsələn, master filialı) quraşdırmağa imkan verir. . Dezavantajtage, quraşdırma prosesi zamanı şəbəkə bağlantısı tələb edir ki, bu da şəbəkə problemləri səbəbindən quraşdırma uğursuzluğuna səbəb ola bilər.
40 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

· Oflayn ESP-IDF alətləri quraşdırıcı Bu quraşdırıcı daha böyükdür, təxminən 1 GB ölçüsündədir və ətraf mühitin qurulması üçün tələb olunan bütün proqram paketlərini və kodu ehtiva edir. Əsas üstünlüktagoflayn quraşdırıcının e üstünlüyü ondan ibarətdir ki, o, İnternetə çıxışı olmayan kompüterlərdə istifadə edilə bilər və ümumiyyətlə daha yüksək quraşdırma müvəffəqiyyət dərəcəsinə malikdir. Qeyd etmək lazımdır ki, oflayn quraşdırıcı yalnız v*.* və ya v*.*.* ilə müəyyən edilmiş ESP-IDF-in stabil buraxılışlarını quraşdıra bilər.
2. ESP-IDF alətləri quraşdırıcısını işə salın Quraşdırıcının uyğun versiyasını yüklədikdən sonra (məsələn, ESP-IDF Tools Offline 4.3.2-ni götürün)ample burada), exe-yə iki dəfə klikləyin file ESP-IDF quraşdırma interfeysini işə salmaq üçün. Aşağıda oflayn quraşdırıcıdan istifadə edərək ESP-IDF stabil v4.3.2 versiyasının necə qurulacağı nümayiş etdirilir.
(1) Şəkil 4.4-də göstərilən “Select quraşdırma dili” interfeysində açılan siyahıdan istifadə olunacaq dili seçin.
Şəkil 4.4. “Quraşdırma dilini seçin” interfeysi (2) Dili seçdikdən sonra “Lisenziya müqaviləsi” interfeysini açmaq üçün “OK” düyməsini sıxın.
(Şəkil 4.5-ə baxın). Quraşdırma lisenziyası müqaviləsini diqqətlə oxuduqdan sonra "Mən müqaviləni qəbul edirəm" seçin və "Növbəti" düyməsini basın.
Şəkil 4.5. “Lisenziya müqaviləsi” interfeysi Fəsil 4. İnkişaf mühitinin qurulması 41

(3) Review “Quraşdırmadan əvvəl sistemin yoxlanılması” interfeysində sistem konfiqurasiyası (bax Şəkil 4.6). Windows versiyasını və quraşdırılmış antivirus proqramını yoxlayın. Bütün konfiqurasiya elementləri normaldırsa, "Növbəti" düyməsini basın. Əks halda, əsas maddələrə əsaslanan həllər üçün “Tam jurnal” üzərinə klikləyə bilərsiniz.
Şəkil 4.6. “Quraşdırmadan əvvəl sistemin yoxlanılması” interfeysi İPUCU
Siz kömək üçün https://github.com/espressif/idf-installer/issues ünvanına qeydlər göndərə bilərsiniz. (4) ESP-IDF quraşdırma kataloqunu seçin. Burada göstərildiyi kimi D:/.espressif seçin
Şəkil 4.7 və "Sonrakı" düyməsini basın. Nəzərə alın ki, .espressif burada gizli kataloqdur. Quraşdırma tamamlandıqdan sonra edə bilərsiniz view açaraq bu kataloqun xüsusi məzmunu file menecer və gizli elementləri göstərir.
Şəkil 4.7. ESP-IDF quraşdırma kataloqunu seçin 42 ESP32-C3 Wireless Adventure: IoT üçün Kompleks Bələdçi

(5) Şəkil 4.8-də göstərildiyi kimi quraşdırılmalı olan komponentləri yoxlayın. Standart seçimdən istifadə etmək tövsiyə olunur, yəni quraşdırmanı tamamlayın və sonra "Sonrakı" düyməsini basın.
Şəkil 4.8. Quraşdırılacaq komponentləri seçin (6) Quraşdırılacaq komponentləri təsdiqləyin və avtomatlaşdırılmış quraşdırmaya başlamaq üçün “Quraşdır” düyməsini klikləyin.
Şəkil 4.9-da göstərildiyi kimi dayanma prosesi. Quraşdırma prosesi on dəqiqələrlə davam edə bilər və quraşdırma prosesinin gedişat paneli Şəkil 4.10-da göstərilmişdir. Səbirlə gözləyin.
Şəkil 4.9. Quraşdırmaya hazırlıq (7) Quraşdırma tamamlandıqdan sonra “ESP-IDF-ni qeydiyyatdan keçirin” yoxlamaq tövsiyə olunur.
Windows Defender istisnaları kimi icra olunan alətlər…” antivirus proqramının silinməsinin qarşısını almaq üçün files. İstisna elementlərinin əlavə edilməsi antivirus tərəfindən tez-tez edilən skanlardan da keçə bilər
Fəsil 4. İnkişaf mühitinin qurulması 43

Şəkil 4.10. Windows sisteminin kod tərtibinin səmərəliliyini əhəmiyyətli dərəcədə yaxşılaşdıran quraşdırma tərəqqi çubuğu proqramı. Şəkil 4.11-də göstərildiyi kimi inkişaf mühitinin quraşdırılmasını başa çatdırmaq üçün “Finish” düyməsini sıxın. “ESP-IDF PowerShell mühitini işə salın” və ya “ESP-IDF əmr sorğusunu işə salın” seçimini seçə bilərsiniz. İnkişaf mühitinin normal işləməsini təmin etmək üçün quraşdırma pəncərəsini birbaşa quraşdırmadan sonra işə salın.
Şəkil 4.11. Quraşdırma tamamlandı (8) Proqram siyahısında quraşdırılmış inkişaf mühitini açın (yaxud ESP-IDF 4.3
CMD və ya ESP-IDF 4.3 PowerShell terminalı, Şəkil 4.12-də göstərildiyi kimi) və ESP-IDF mühit dəyişəni terminalda işləyərkən avtomatik olaraq əlavə olunacaq. Bundan sonra əməliyyatlar üçün idf.py əmrindən istifadə edə bilərsiniz. Açılan ESP-IDF 4.3 CMD Şəkil 4.13-də göstərilmişdir. 44 ESP32-C3 Simsiz Macəra: IoT üçün hərtərəfli bələdçi

Şəkil 4.12. İnkişaf mühiti quraşdırılmışdır
Şəkil 4.13. ESP-IDF 4.3 CMD
4.2.3 Mac-da ESP-IDF İnkişaf Mühitinin qurulması
Mac sistemində ESP-IDF inkişaf mühitinin quraşdırılması prosesi Linux sistemindəki ilə eynidir. Repozitor kodunu yükləmək və alətlər zəncirini quraşdırmaq üçün əmrlər tamamilə eynidır. Yalnız asılılıq paketlərini quraşdırmaq üçün əmrlər bir qədər fərqlidir. 1. Asılılıq paketlərini quraşdırın Terminal açın və aşağıdakı əmri işlətməklə Python paket idarəetmə aləti olan pip-i quraşdırın:
% sudo asan quraşdırma pip
MacOS üçün paket idarəetmə vasitəsi olan Homebrew-i aşağıdakı əmri işlətməklə quraşdırın:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Aşağıdakı əmri işlətməklə tələb olunan asılılıq paketlərini quraşdırın:
% brew python3 cmake ninja ccache dfu-util quraşdırın
2. ESP-IDF repozitor kodunu yükləyin ESP-IDF repozitor kodunu yükləmək üçün 4.2.1 bölməsində verilmiş təlimatlara əməl edin. Addımlar Linux sistemində yükləmə ilə eynidir.
Fəsil 4. İnkişaf mühitinin qurulması 45

3. ESP-IDF inkişaf alətləri zəncirini quraşdırın
ESP-IDF inkişaf alətləri zəncirini quraşdırmaq üçün bölmə 4.2.1-də verilmiş təlimatlara əməl edin. Addımlar Linux sistemində quraşdırma ilə eynidir.
4.2.4 VS Kodunun quraşdırılması
Varsayılan olaraq, ESP-IDF SDK kodu redaktə alətini ehtiva etmir (baxmayaraq ki, Windows üçün ən son ESP-IDF quraşdırıcısı ESP-IDF Eclipse quraşdırmaq seçimini təklif edir). Siz kodu redaktə etmək və sonra onu terminal əmrləri ilə tərtib etmək üçün istədiyiniz hər hansı mətn redaktə alətindən istifadə edə bilərsiniz.
Populyar kod redaktə alətlərindən biri istifadəçi dostu interfeysi olan pulsuz və zəngin xüsusiyyətli kod redaktoru olan VS Kodudur (Visual Studio Code). Müxtəlif təklif edir plugins kod naviqasiyası, sintaksisin vurğulanması, Git versiyasına nəzarət və terminal inteqrasiyası kimi funksiyaları təmin edən. Bundan əlavə, Espressif VS Kodu üçün Espressif IDF adlı xüsusi plagin hazırlamışdır ki, bu da layihənin konfiqurasiyasını və sazlamanı asanlaşdırır.
VS Kodunda cari qovluğu tez açmaq üçün terminaldakı kod əmrindən istifadə edə bilərsiniz. Alternativ olaraq, VS Kodu daxilində sistemin standart terminal konsolunu açmaq üçün Ctrl+ qısa yolundan istifadə edə bilərsiniz.
TÖVSİYƏLƏR ESP32-C3 kodunu hazırlamaq üçün VS kodundan istifadə etmək tövsiyə olunur. VS Kodunun ən son versiyasını https://code.visualstudio.com/ ünvanından yükləyin və quraşdırın.
4.2.5 Üçüncü Tərəfin İnkişaf Mühitlərinə Giriş
Əsasən C dilindən istifadə edən rəsmi ESP-IDF inkişaf mühitinə əlavə olaraq, ESP32-C3 digər əsas proqramlaşdırma dillərini və üçüncü tərəfin inkişaf mühitlərinin geniş spektrini də dəstəkləyir. Bəzi diqqətəlayiq variantlara aşağıdakılar daxildir:
Arduino: ESP32-C3 də daxil olmaqla müxtəlif mikrokontrollerləri dəstəkləyən həm aparat, həm də proqram təminatı üçün açıq mənbə platformasıdır.
O, C++ dilindən istifadə edir və adətən Arduino dili kimi adlandırılan sadələşdirilmiş və standartlaşdırılmış API təklif edir. Arduino prototiplərin hazırlanmasında və təhsil kontekstlərində geniş istifadə olunur. O, genişləndirilə bilən proqram paketi və asan tərtib etməyə və yanıb-sönməyə imkan verən IDE təqdim edir.
MicroPython: quraşdırılmış mikrokontroller platformalarında işləmək üçün nəzərdə tutulmuş Python 3 dil tərcüməçisi.
Sadə skript dili ilə o, birbaşa ESP32-C3-ün periferik resurslarına (UART, SPI və I2C kimi) və rabitə funksiyalarına (Wi-Fi və Bluetooth LE kimi) daxil ola bilər.
46 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

Bu, hardware qarşılıqlı əlaqəsini asanlaşdırır. MicroPython, Python-un geniş riyazi əməliyyat kitabxanası ilə birlikdə ESP32-C3-də mürəkkəb alqoritmlərin həyata keçirilməsinə imkan verir və süni intellektlə əlaqəli tətbiqlərin işlənib hazırlanmasını asanlaşdırır. Skript dili olaraq təkrar tərtib etməyə ehtiyac yoxdur; dəyişikliklər edilə bilər və skriptlər birbaşa icra edilə bilər.
NodeMCU: ESP seriyalı çiplər üçün hazırlanmış LUA dil tərcüməçisi.
O, ESP çiplərinin demək olar ki, bütün periferik funksiyalarını dəstəkləyir və MicroPython-dan daha yüngüldür. MicroPython kimi, NodeMCU təkrar kompilyasiya ehtiyacını aradan qaldıran skript dilindən istifadə edir.
Bundan əlavə, ESP32-C3 NuttX və Zephyr əməliyyat sistemlərini də dəstəkləyir. NuttX real vaxt rejimində POSIX-ə uyğun interfeyslər təmin edən və tətbiqlərin daşınmasını gücləndirən əməliyyat sistemidir. Zephyr, IoT tətbiqləri üçün xüsusi olaraq hazırlanmış kiçik real vaxt əməliyyat sistemidir. Buraya IoT inkişafında tələb olunan, tədricən hərtərəfli proqram ekosisteminə çevrilən çoxsaylı proqram kitabxanaları daxildir.
Bu kitab yuxarıda qeyd olunan inkişaf mühitləri üçün ətraflı quraşdırma təlimatlarını təqdim etmir. Siz müvafiq sənədlərə və təlimatlara əməl etməklə tələblərinizə əsaslanan inkişaf mühitini quraşdıra bilərsiniz.
4.3 ESP-IDF Kompilyasiya Sistemi
4.3.1 Kompilyasiya sisteminin əsas anlayışları
ESP-IDF layihəsi giriş funksiyası və çoxsaylı müstəqil funksional komponentləri olan əsas proqram toplusudur. məsələnample, LED açarlarını idarə edən bir layihə, əsasən giriş proqramı əsas və GPIO-ya nəzarət edən sürücü komponentindən ibarətdir. Əgər siz LED pultunu həyata keçirmək istəyirsinizsə, həmçinin Wi-Fi, TCP/IP protokol yığını və s. əlavə etməlisiniz.
Kompilyasiya sistemi icra edilə bilənləri tərtib edə, əlaqələndirə və yarada bilər files (.bin) tikinti qaydaları dəsti vasitəsilə kod üçün. ESP-IDF v4.0 və yuxarı versiyalarının kompilyasiya sistemi standart olaraq CMake-ə əsaslanır və CMakeLists.txt kompilyasiya skripti kodun kompilyasiya davranışına nəzarət etmək üçün istifadə edilə bilər. CMake-in əsas sintaksisini dəstəkləməklə yanaşı, ESP-IDF kompilyasiya sistemi də bir sıra standart tərtib qaydaları və CMake funksiyalarını müəyyən edir və siz sadə ifadələrlə tərtib skriptini yaza bilərsiniz.
4.3.2 Layihə File Struktur
Layihə giriş proqramının əsas, istifadəçi tərəfindən müəyyən edilmiş komponentləri və daxil olan qovluqdur files tərtib skriptləri, konfiqurasiya kimi icra edilə bilən proqramlar yaratmaq üçün tələb olunur
Fəsil 4. İnkişaf mühitinin qurulması 47

files, bölmə cədvəlləri və s. Layihələr kopyalana və ötürülə bilər və eyni icra edilə bilən file ESP-IDF inkişaf mühitinin eyni versiyası olan maşınlarda tərtib edilə və yaradıla bilər. Tipik bir ESP-IDF layihəsi file strukturu Şəkil 4.14-də göstərilmişdir.
Şəkil 4.14. Tipik ESP-IDF layihəsi file struktur ESP-IDF, ESP32, ESP32-S seriyası, ESP32-C seriyası, ESP32-H seriyası və s. daxil olmaqla, Espressif-dən çoxsaylı IoT çiplərini dəstəklədiyi üçün kodu tərtib etməzdən əvvəl hədəf müəyyən edilməlidir. Hədəf həm proqram proqramını işlədən aparat cihazı, həm də kompilyasiya sisteminin qurma hədəfidir. Ehtiyaclarınızdan asılı olaraq, layihəniz üçün bir və ya bir neçə hədəf təyin edə bilərsiniz. məsələnample, idf.py set-target esp32c3 əmri ilə siz kompilyasiya hədəfini ESP32-C3-ə təyin edə bilərsiniz, bu müddət ərzində ESP32C3 üçün standart parametrlər və tərtib aləti zənciri yolu yüklənəcək. Kompilyasiyadan sonra ESP32C3 üçün icra edilə bilən proqram yaradıla bilər. Siz həmçinin başqa bir hədəf təyin etmək üçün set-target əmrini yenidən işlədə bilərsiniz və kompilyasiya sistemi avtomatik olaraq təmizlənəcək və yenidən konfiqurasiya ediləcək. Komponentlər
ESP-IDF-dəki komponentlər kompilyasiya sistemi daxilində idarə olunan modul və müstəqil kod vahidləridir. Onlar qovluqlar kimi təşkil olunub, qovluq adı standart olaraq komponent adını təmsil edir. Hər bir komponentin 48 ESP32-C3 Wireless Adventure: IoT üçün Kompleks Bələdçi olan öz tərtib skripti var.

onun kompilyasiya parametrlərini və asılılıqlarını müəyyən edir. Kompilyasiya prosesi zamanı komponentlər ayrıca statik kitabxanalara (.a files) və nəticədə tətbiq proqramını yaratmaq üçün digər komponentlərlə birləşdirilir.
ESP-IDF əməliyyat sistemi, periferik drayverlər və şəbəkə protokolu yığını kimi əsas funksiyaları komponentlər şəklində təmin edir. Bu komponentlər ESP-IDF kök kataloqunda yerləşən komponentlər kataloqunda saxlanılır. Tərtibatçılara bu komponentləri myProject-in komponentlər kataloquna köçürməyə ehtiyac yoxdur. Bunun əvəzinə, onlar yalnız layihənin CMakeLists.txt faylında bu komponentlərin asılılıq əlaqələrini müəyyən etməlidirlər. file REQUIRES və ya PRIV_REQUIRES direktivlərindən istifadə etməklə. Kompilyasiya sistemi avtomatik olaraq tələb olunan komponentləri tapacaq və tərtib edəcəkdir.
Buna görə də, myProject altında komponentlər kataloqu lazım deyil. O, yalnız üçüncü tərəf kitabxanaları və ya istifadəçi tərəfindən müəyyən edilmiş kod ola bilən layihənin bəzi fərdi komponentlərini daxil etmək üçün istifadə olunur. Əlavə olaraq, komponentlər ESP-IDF və ya cari layihədən başqa istənilən kataloqdan, məsələn, başqa kataloqda saxlanılan açıq mənbəli layihədən əldə edilə bilər. Bu halda, yalnız kök kataloqunun altındakı CMakeLists.txt-də EXTRA_COMPONENT_DIRS dəyişənini təyin etməklə komponentin yolunu əlavə etməlisiniz. Bu kataloq düzgün komponentin istifadə olunmasını təmin edərək, eyni adlı istənilən ESP-IDF komponentini ləğv edəcək.
Giriş proqramı əsas Layihə daxilindəki əsas kataloq eyni şeyi izləyir file digər komponentlər kimi struktur (məsələn, komponent1). Bununla belə, hər bir layihədə mövcud olan məcburi komponent olduğu üçün xüsusi əhəmiyyət kəsb edir. Əsas kataloq layihənin mənbə kodunu və adətən app_main adlı istifadəçi proqramının giriş nöqtəsini ehtiva edir. Varsayılan olaraq, istifadəçi proqramının icrası bu giriş nöqtəsindən başlayır. Əsas komponent həm də onunla fərqlənir ki, o, avtomatik olaraq axtarış yolunda bütün komponentlərdən asılıdır. Buna görə də, CMakeLists.txt-də REQUIRES və ya PRIV_REQUIRES direktivlərindən istifadə edərək asılılıqları açıq şəkildə göstərməyə ehtiyac yoxdur. file.
Konfiqurasiya file Layihənin kök kataloqu konfiqurasiyadan ibarətdir file layihə daxilindəki bütün komponentlər üçün konfiqurasiya parametrlərini ehtiva edən sdkconfig adlanır. Sdkconfig file kompilyasiya sistemi tərəfindən avtomatik olaraq yaradılır və idf.py menuconfig əmri ilə dəyişdirilə və bərpa edilə bilər. Menyu konfiqurasiya seçimləri əsasən layihənin Kconfig.projbuild-dən və komponentlərin Kconfig-dən qaynaqlanır. Komponent tərtibatçıları komponenti çevik və konfiqurasiya edilə bilən etmək üçün ümumiyyətlə Kconfig-ə konfiqurasiya elementləri əlavə edirlər.
Quraşdırma kataloqu Defolt olaraq, layihə daxilindəki qurma kataloqu aralıqda saxlanılır files və fi-
Fəsil 4. İnkişaf mühitinin qurulması 49

idf.py qurma əmri ilə yaradılan icra edilə bilən proqramlar. Ümumiyyətlə, qurma kataloqunun məzmununa birbaşa daxil olmaq lazım deyil. ESP-IDF, tərtib edilmiş ikili faylı avtomatik tapmaq üçün idf.py flash əmrindən istifadə etmək kimi kataloqla qarşılıqlı əlaqə yaratmaq üçün əvvəlcədən təyin edilmiş əmrləri təmin edir. file və onu müəyyən edilmiş flaş ünvana keçirin və ya idf.py fullclean əmrindən istifadə edərək bütün qurma kataloqunu təmizləyin.
Bölmə cədvəli (partitions.csv) Hər bir layihə flash məkanını bölmək və icra olunan proqramın ölçüsünü və başlanğıc ünvanını və istifadəçi məlumat sahəsini təyin etmək üçün bölmə cədvəli tələb edir. Əmr idf.py flash və ya OTA təkmilləşdirmə proqramı mikroproqramı bu cədvələ uyğun olaraq müvafiq ünvana göndərəcək. ESP-IDF, menyu konfiqurasiyasında seçilə bilən partitions_singleapp.csv və partitions_two_ ota.csv kimi komponentlərdə/partition_table-da bir neçə standart bölmə cədvəlini təmin edir.
Sistemin standart bölmə cədvəli layihənin tələblərinə cavab verə bilmirsə, layihə qovluğuna xüsusi partitions.csv əlavə edilə və menuconfig-də seçilə bilər.
4.3.3 Kompilyasiya Sisteminin Defolt Quraşdırma Qaydaları
Eyni ada malik komponentləri ləğv etmək qaydaları Komponentlərin axtarışı zamanı kompilyasiya sistemi müəyyən bir sıraya əməl edir. O, əvvəlcə ESP-IDF-in daxili komponentlərini axtarır, sonra istifadəçi layihəsinin komponentlərini axtarır və nəhayət, EXTRA_COMPONENT_DIRS-də komponentləri axtarır. Bir neçə qovluqda eyni adlı komponentlər olduğu hallarda, sonuncu kataloqda tapılan komponent eyni adlı əvvəlki komponentləri ləğv edəcəkdir. Bu qayda orijinal ESP-IDF kodunu toxunulmaz saxlamaqla istifadəçi layihəsi daxilində ESP-IDF komponentlərinin fərdiləşdirilməsinə imkan verir.
Defolt olaraq ümumi komponentlərin daxil edilməsi qaydaları 4.3.2-ci bölmədə qeyd edildiyi kimi, komponentlər CMakeLists.txt-də digər komponentlərdən asılılıqlarını açıq şəkildə göstərməlidirlər. Bununla belə, freertos kimi ümumi komponentlər, onların asılılıq əlaqələri kompilyasiya skriptində açıq şəkildə müəyyən edilməsə belə, avtomatik olaraq qurma sisteminə daxil edilir. ESP-IDF ümumi komponentlərinə freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv və cxx daxildir. Bu ümumi komponentlərdən istifadə CMakeLists.txt-ni yazarkən təkrarlanan işlərin qarşısını alır və onu daha yığcam edir.
Konfiqurasiya elementlərini ləğv etmək qaydaları Tərtibatçılar defolt konfiqurasiya əlavə etməklə defolt konfiqurasiya parametrlərini əlavə edə bilərlər. file layihəyə sdkconfig.defaults adlı. məsələnample, CONFIG_LOG_ əlavə edilir
50 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

DEFAULT_LEVEL_NONE = y standart olaraq jurnal məlumatlarını çap etməmək üçün UART interfeysini konfiqurasiya edə bilər. Bundan əlavə, müəyyən bir hədəf üçün xüsusi parametrlər təyin etmək lazımdırsa, konfiqurasiya file adlı sdkconfig.defaults.TARGET_NAME əlavə edilə bilər, burada TARGET_NAME esp32s2, esp32c3 və s. ola bilər. Bu konfiqurasiya files ümumi standart konfiqurasiya ilə kompilyasiya zamanı sdkconfig-ə idxal olunur file sdkconfig.defaults əvvəlcə idxal olunur, ardınca hədəfə xüsusi konfiqurasiya file, məsələn, sdkconfig.defaults.esp32c3. Eyni adlı konfiqurasiya elementlərinin olduğu hallarda, sonuncu konfiqurasiya file əvvəlkini əvəz edəcək.
4.3.4 Kompilyasiya Skriptinə Giriş
ESP-IDF-dən istifadə edərək layihə hazırlayarkən, tərtibatçılar təkcə mənbə kodu yazmalı deyil, həm də layihə və komponentlər üçün CMakeLists.txt yazmalıdırlar. CMakeLists.txt mətndir file, həm də bir sıra tərtib obyektlərini, kompilyasiya konfiqurasiya elementlərini və mənbə kodunun tərtibi prosesinə rəhbərlik etmək üçün əmrləri təyin edən tərtib skripti kimi tanınır. ESP-IDF v4.3.2 kompilyasiya sistemi CMake-ə əsaslanır. Doğma CMake funksiyalarını və əmrlərini dəstəkləməklə yanaşı, o, həm də bir sıra xüsusi funksiyaları müəyyən edir və kompilyasiya skriptlərinin yazılmasını xeyli asanlaşdırır.
ESP-IDF-də tərtib skriptlərinə əsasən layihə tərtibi skripti və komponent tərtib skriptləri daxildir. Layihənin kök qovluğunda olan CMakeLists.txt faylı layihənin tərtibi skripti adlanır və bütün layihənin tərtibi prosesini istiqamətləndirir. Əsas layihə tərtibi skripti adətən aşağıdakı üç sətirdən ibarətdir:
1. cmake_minimum_required(VERSION 3.5) 2. daxildir($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. layihə(myProject)
Onların arasında cmake_minimum_required (VERSION 3.5) birinci sətirdə yerləşdirilməlidir ki, bu da layihənin tələb etdiyi minimum CMake versiya nömrəsini göstərmək üçün istifadə olunur. CMake-in daha yeni versiyaları ümumiyyətlə köhnə versiyalarla geriyə uyğundur, ona görə də uyğunluğu təmin etmək üçün daha yeni CMake əmrlərindən istifadə edərkən versiya nömrəsini müvafiq olaraq tənzimləyin.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) Bölmə 4.3.3-də təsvir edilmiş kompilyasiya sisteminin standart qurma qaydaları da daxil olmaqla, ESP-IDF kompilyasiya sisteminin əvvəlcədən müəyyən edilmiş konfiqurasiya elementlərini və əmrlərini idxal edir. project(myProject) layihənin özünü yaradır və adını müəyyən edir. Bu ad son çıxış binar kimi istifadə olunacaq file ad, yəni myProject.elf və myProject.bin.
Layihə əsas komponent də daxil olmaqla bir neçə komponentdən ibarət ola bilər. Hər bir komponentin yuxarı səviyyəli kataloqunda CMakeLists.txt var file, bu komponent kompilyasiya skripti adlanır. Komponent kompilyasiya skriptləri əsasən komponent asılılıqlarını, konfiqurasiya parametrlərini, mənbə kodunu təyin etmək üçün istifadə olunur. files və başlıq daxildir files üçün
Fəsil 4. İnkişaf mühitinin qurulması 51

tərtib. ESP-IDF-in idf_component_register xüsusi funksiyası ilə komponent tərtib skripti üçün minimum tələb olunan kod aşağıdakı kimidir:

1. idf_component_register(SRCS “src1.c”

2.

INCLUDE_DIRS “daxil et”

3.

Komponent 1) TƏLƏB EDİR

SRCS parametri mənbə siyahısını təqdim edir files komponentdə çoxlu olduqda boşluqlarla ayrılır files. INCLUDE_DIRS parametri ictimai başlığın siyahısını təqdim edir file cari komponentdən asılı olan digər komponentlər üçün axtarış yoluna əlavə olunacaq komponent üçün kataloqlar. REQUIRES parametri cari komponent üçün ictimai komponent asılılıqlarını müəyyən edir. Komponentlərin hansı komponentlərdən asılı olduqlarını, məsələn komponent2-dən asılı olan komponent1 kimi açıq şəkildə bildirmələri lazımdır. Bununla belə, standart olaraq bütün komponentlərdən asılı olan əsas komponent üçün REQUIRES parametri buraxıla bilər.

Bundan əlavə, yerli CMake əmrləri də tərtib skriptində istifadə edilə bilər. məsələnample, set(VARIABLE “VALUE”) kimi dəyişənləri təyin etmək üçün komanda dəstindən istifadə edin.

4.3.5 Ümumi əmrlərə giriş
ESP-IDF kodun tərtibi prosesində CMake (layihə konfiqurasiya aləti), Ninja (layihə qurma aləti) və esptool (flash alət) istifadə edir. Hər bir alət tərtib, tikinti və flash prosesində fərqli rol oynayır və həmçinin müxtəlif əməliyyat əmrlərini dəstəkləyir. İstifadəçinin işini asanlaşdırmaq üçün ESP-IDF yuxarıdakı əmrləri tez bir zamanda çağırmağa imkan verən vahid ön idf.py əlavə edir.
idf.py istifadə etməzdən əvvəl əmin olun:
· ESP-IDF-in IDF_PATH mühit dəyişəni cari terminala əlavə edilmişdir. · Əmrlərin icrası kataloqu layihənin kök kataloqudur və bu kataloqa
layihə tərtib skripti CMakeLists.txt.
idf.py-nin ümumi əmrləri aşağıdakılardır:
· idf.py –help: əmrlərin siyahısını və onların istifadə təlimatlarını göstərmək. · idf.py təyin edilmiş hədəf : kompilyasiya taidf.py fullcleanrget qurulması, məsələn
əvəz edən kimi esp32c3 ilə. · idf.py menuconfig: terminal qrafik konfiqurasiyası olan menuconfig-in işə salınması
konfiqurasiya seçimlərini seçə və ya dəyişdirə bilən alətdir və konfiqurasiya nəticələri sdkconfig-də saxlanılır. file. · idf.py build: kodun tərtibinə başlamaq. Aralıq files və kompilyasiya tərəfindən yaradılan son icra edilə bilən proqram standart olaraq layihənin qurma kataloqunda saxlanacaqdır. Kompilyasiya prosesi artımlıdır, yəni yalnız bir mənbə varsa file dəyişdirilir, yalnız dəyişdirilmişdir file növbəti dəfə tərtib olunacaq.

52 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

· idf.py təmiz: ara məhsulun təmizlənməsi files layihənin tərtibi ilə yaradılmışdır. Bütün layihəni növbəti kompilyasiyada toplamaq məcburiyyətində qalacaq. Nəzərə alın ki, CMake konfiqurasiyası və menuconfig tərəfindən edilən konfiqurasiya dəyişiklikləri təmizləmə zamanı silinməyəcək.
· idf.py fullclean: bütün CMake konfiqurasiya çıxışı daxil olmaqla bütün qurma qovluğunun silinməsi files. Layihəni yenidən qurarkən, CMake layihəni sıfırdan konfiqurasiya edəcək. Nəzərə alın ki, bu əmr rekursiv olaraq hamısını siləcək files qurmaq kataloqundadır, ona görə də ehtiyatla istifadə edin və layihə konfiqurasiyası file silinməyəcək.
· idf.py flash: ikili icra olunan proqramın yanıb-sönməsi file hədəf ESP32-C3-ə qurmaqla yaradılıb. Seçimlər - səh və -b sıra portunun cihaz adını və yanıb-sönmək üçün ötürmə sürətini təyin etmək üçün istifadə olunur. Bu iki seçim göstərilmədikdə, serial port avtomatik aşkarlanacaq və standart ötürmə sürətindən istifadə ediləcək.
· idf.py monitoru: hədəf ESP32-C3-ün seriya port çıxışını göstərir. -p seçimi host tərəfindəki serial portun cihaz adını təyin etmək üçün istifadə edilə bilər. Serial port çapı zamanı monitordan çıxmaq üçün Ctrl+] düymələr kombinasiyasını basın.
Yuxarıdakı əmrlər də lazım olduqda birləşdirilə bilər. məsələnample, idf.py build flash monitor əmri kod tərtibini yerinə yetirəcək, flaş edəcək və ardıcıl port monitorunu açacaq.
ESP-IDF kompilyasiya sistemi haqqında daha çox bilmək üçün https://bookc3.espressif.com/build-system səhifəsinə daxil ola bilərsiniz.
4.4 Təcrübə: Kompilyasiya Məsamp"Blink" proqramı
4.4.1 Çıxışample Analiz
Bu bölmə Blink proqramını keçmiş kimi qəbul edəcəkamptəhlil etmək file real layihənin strukturu və kodlaşdırma qaydalarını ətraflı şəkildə. Blink proqramı LED yanıb-sönən effekti həyata keçirir və layihə ex qovluğunda yerləşirampmənbə ehtiva edən les/get-started/blink file, konfiqurasiya files və bir neçə tərtib skripti.
Bu kitabda təqdim olunan ağıllı işıq layihəsi bu keçmişə əsaslanırampproqram. Nəhayət onu tamamlamaq üçün funksiyalar sonrakı fəsillərdə tədricən əlavə olunacaq.
Mənbə kodu Bütün inkişaf prosesini nümayiş etdirmək üçün Blink proqramı esp32c3-iot-projects/cihazın proqram təminatı/1 yanıb-sönməsinə kopyalanıb.
Blink layihəsinin kataloq strukturu files Şəkil 4.15-də göstərilmişdir.
Blink layihəsi yalnız bir əsas kataloqdan ibarətdir ki, bu da xüsusi bir komponentdir
Fəsil 4. İnkişaf mühitinin qurulması 53

Şəkil 4.15. File blink layihəsinin kataloq strukturu

bölmə 4.3.2-də göstərildiyi kimi daxil edilməlidir. Əsas kataloq əsasən istifadəçi proqramına giriş nöqtəsi olan app_main() funksiyasının həyata keçirilməsini saxlamaq üçün istifadə olunur. Blink layihəsi komponentlər kataloqunu əhatə etmir, çünki bu keçmişample yalnız ESP-IDF ilə gələn komponentlərdən istifadə etməlidir və əlavə komponentlər tələb etmir. Yanıb-söndürmə layihəsinə daxil olan CMakeLists.txt kompilyasiya prosesinə rəhbərlik etmək üçün istifadə olunur, Kconfig.projbuild isə bu keçmiş üçün konfiqurasiya elementlərini əlavə etmək üçün istifadə olunur.ampMenyu konfiqurasiyasında proqram. Digər lazımsız files kodun tərtibinə təsir etməyəcək, ona görə də onlar burada müzakirə edilməyəcək. Blink layihəsinə ətraflı giriş files aşağıdakı kimidir.

1. /*blink.c aşağıdakı başlığı ehtiva edir files*/

2. #daxil et

//Standart C kitabxanasının başlığı file

3. #daxil edin “freertos/freeRTOS.h” //FreeRTOS əsas başlığı file

4. # “freertos/task.h” daxil edin

//FreeRTOS Tapşırıq başlığı file

5. # "sdkconfig.h" daxil edin

//Konfiqurasiya başlığı file kconfig tərəfindən yaradılmışdır

6. # "driver/gpio.h" daxil edin

//GPIO sürücü başlığı file

Mənbə file blink.c bir sıra başlıqdan ibarətdir files funksiya bəyannaməsinə uyğundur

s. ESP-IDF ümumiyyətlə standart kitabxana başlığının daxil edilməsi qaydasına əməl edir files, FreeR-

TOS başlığı files, sürücü başlığı files, digər komponent başlığı files və layihə başlığı files.

Başlığın sırası files daxil edilir son tərtib nəticə təsir edə bilər, belə ki, cəhd edin

standart qaydalara əməl edin. Qeyd etmək lazımdır ki, sdkconfig.h avtomatik olaraq yaradılır

kconfig tərəfindən və yalnız idf.py menuconfig əmri ilə konfiqurasiya edilə bilər.

Bu başlığın birbaşa dəyişdirilməsi file üzərinə yazılacaq.

1. /*Siz idf.py menuconfig-də LED-ə uyğun GPIO-nu seçə bilərsiniz və menuconfig-in modifikasiya nəticəsi CONFIG_BLINK dəyərinin olmasıdır.

_GPIO dəyişdiriləcək. Siz həmçinin makro tərifini birbaşa dəyişə bilərsiniz

burada və CONFIG_BLINK_GPIO-nu sabit dəyərə dəyişin.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO

3. tətbiqin əsasını ləğv edin (etibarsız)

4. {

5.

/*IO-nu GPIO defolt funksiyası kimi konfiqurasiya edin, açılma rejimini aktivləşdirin və

6.

giriş və çıxış rejimlərini söndürün*/

7.

gpio_reset_pin(BLINK_GPIO);

54 ESP32-C3 Simsiz Macəra: Əşyaların İnterneti üçün Kompleks Bələdçi

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

/*GPIO-nu çıxış rejiminə təyin edin*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while(1) {
/*Çap jurnalı*/ printf(“LEDn söndürülür”); /*LED-i söndürün (aşağı səviyyə çıxışı)*/ gpio_set_level(BLINK_GPIO, 0); /*Gecikmə (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("LEDn yandırılır"); /*LED-i yandırın (yüksək səviyyəli çıxış)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay (1000 / portTICK_PERIOD_MS); }

Blink-də app_main() funksiyası example proqramı istifadəçi proqramları üçün giriş nöqtəsi kimi xidmət edir. Parametrləri və qaytarılma dəyəri olmayan sadə bir funksiyadır. Bu funksiya sistem giriş seriyası portunun işə salınması, tək/iki nüvənin konfiqurasiyası və gözətçi itinin konfiqurasiyası kimi tapşırıqları özündə cəmləşdirən başlanğıclaşdırmanı tamamladıqdan sonra çağırılır.

app_main() funksiyası main adlı tapşırıq kontekstində işləyir. Yığın ölçüsü və bu tapşırığın prioriteti menuconfig Componentconfig Common ESP ilə əlaqəli şəkildə tənzimlənə bilər.

LED-in yanıb-sönməsi kimi sadə tapşırıqlar üçün bütün lazımi kod birbaşa app_main() funksiyasında həyata keçirilə bilər. Bu, adətən, LED-ə uyğun GPIO-nun işə salınmasını və LED-i yandırıb-söndürmək üçün bir müddət(1) dövrəsindən istifadə etməyi əhatə edir. Alternativ olaraq, LED-in yanıb-sönməsini idarə edən yeni tapşırıq yaratmaq üçün FreeRTOS API-dən istifadə edə bilərsiniz. Yeni tapşırıq uğurla yaradıldıqdan sonra siz app_main() funksiyasından çıxa bilərsiniz.

main/CMakeLists.txt məzmunu file, əsas komponent üçün tərtib prosesini istiqamətləndirən aşağıdakı kimidir:

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

Onların arasında main/CMakeLists.txt yalnız bir kompilyasiya sistemi funksiyasını çağırır, yəni idf_component_register. Əksər digər komponentlər üçün CMakeLists.txt faylına bənzər, blink.c SRCS-ə əlavə edilir və mənbə fileSRCS-ə əlavə edilənlər tərtib olunacaq. Eyni zamanda, CMakeLists.txt-nin yerləşdiyi yolu təmsil edən “.”, başlıq üçün axtarış qovluqları kimi INCLUDE_DIRS-ə əlavə edilməlidir. files. CMakeLists.txt məzmunu aşağıdakı kimidir:
1. #V3.5-i cari layihə tərəfindən dəstəklənən ən köhnə CMake versiyası kimi göstərin 2. #v3.5-dən aşağı versiyalar kompilyasiya davam etməzdən əvvəl təkmilləşdirilməlidir 3. cmake_minimum_required(VERSION 3.5) 4. #ESP-nin defolt CMake konfiqurasiyasını daxil edin -IDF kompilyasiya sistemi

Fəsil 4. İnkişaf mühitinin qurulması 55

5. daxil edin($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #“blink” adlı layihə yaradın 7. layihə(myProject)
Onların arasında, kök kataloqdakı CMakeLists.txt, əsasən, əsas CMake konfiqurasiyası olan $ENV{IDF_ PATH}/tools/cmake/project.cmake daxildir. file ESP-IDF tərəfindən təmin edilir. Aldatmaq üçün istifadə olunur

Sənədlər / Resurslar

Espressif Sistemləri ESP32-C3 Simsiz Macəra [pdf] İstifadəçi təlimatı
ESP32-C3 Simsiz Macəra, ESP32-C3, Simsiz Macəra, Macəra

İstinadlar

Şərh buraxın

E-poçt ünvanınız dərc olunmayacaq. Tələb olunan sahələr qeyd olunub *