Мазмұны жасыру
2 ESP32-C3 сымсыз шытырман оқиғасы
2.1 IoT бойынша толық нұсқаулық

ESP32-C3 сымсыз шытырман оқиғасы

ESP32-C3 сымсыз шытырман оқиғасы

IoT бойынша толық нұсқаулық

Espressif жүйелері 12 жылғы 2023 маусым

Техникалық сипаттамалар

  • Өнім: ESP32-C3 Wireless Adventure
  • Өндіруші: Espressif Systems
  • Күні: 12 маусым 2023 жыл

Өнімді пайдалану нұсқаулары

Дайындық

ESP32-C3 Wireless Adventure қолданбасын пайдаланбас бұрын, бар екеніне көз жеткізіңіз
IoT концепцияларымен және архитектурасымен таныс. Бұл көмектеседі
құрылғының үлкенірек IoT экожүйесіне қалай сәйкес келетінін түсінесіз
және оның ақылды үйлердегі әлеуетті қолданбалары.

IoT жобаларын енгізу және тәжірибе

Бұл бөлімде сіз әдеттегі IoT жобалары туралы біле аласыз,
жалпы IoT құрылғыларына арналған негізгі модульдерді, негізгі модульдерді қоса алғанда
клиенттік қолданбалардың және жалпы IoT бұлттық платформаларының. Бұл болады
түсіну және құру үшін негіз береді
жеке IoT жобалары.

Тәжірибе: «Ақылды жарық» жобасы

Бұл тәжірибелік жобада сіз смарт жасауды үйренесіз
ESP32-C3 Wireless Adventure көмегімен жарық. Жобаның құрылымы,
функциялары, аппараттық құралдарды дайындау және әзірлеу процесі болады
егжей-тегжейлі түсіндірілді.

Жобаның құрылымы

Жоба бірнеше құрамдас бөліктерден тұрады, соның ішінде
ESP32-C3 Wireless Adventure, жарық диодтары, сенсорлар және бұлт
сервер.

Жоба функциялары

Ақылды жарық жобасы жарықтылықты басқаруға мүмкіндік береді және
мобильді қосымша арқылы диодтардың түсі қашықтан немесе web
интерфейс.

Аппараттық құралдарды дайындау

Жобаға дайындалу үшін сізге жинау керек
ESP32-C3 Wireless сияқты қажетті аппараттық құрамдас бөліктер
Шытырман оқиғалы тақта, жарықдиодты шамдар, резисторлар және қуат көзі.

Даму процесі

Даму процесі дамуды орнатуды қамтиды
орта, жарық диодтарын басқару үшін код жазу, қосу
бұлтты сервер және смарттың функционалдығын тексеру
жарық.

ESP RainMaker бағдарламасына кіріспе

ESP RainMaker - IoT дамытуға арналған қуатты негіз
құрылғылар. Бұл бөлімде сіз ESP RainMaker не екенін және не екенін білесіз
оны сіздің жобаларыңызға қалай енгізуге болады.

ESP RainMaker дегеніміз не?

ESP RainMaker – бұлтқа негізделген платформа, ол жиынтығын ұсынады
IoT құрылғыларын құруға және басқаруға арналған құралдар мен қызметтер.

ESP RainMaker бағдарламасын енгізу

Бұл бөлімде әртүрлі құрамдас бөліктер түсіндіріледі
ESP RainMaker, соның ішінде талап қою қызметін енгізу,
RainMaker агенті, бұлттық сервер және RainMaker клиенті.

Тәжірибе: ESP RainMaker көмегімен әзірлеуге арналған негізгі нүктелер

Бұл тәжірибе бөлімінде сіз негізгі тармақтармен танысасыз
ESP RainMaker көмегімен әзірлеу кезінде ескеріңіз. Бұған құрылғы кіреді
талап қою, деректерді синхрондау және пайдаланушыны басқару.

ESP RainMaker мүмкіндіктері

ESP RainMaker пайдаланушыны басқаруға арналған әр түрлі мүмкіндіктерді ұсынады
пайдаланушылар мен әкімшілер. Бұл мүмкіндіктер құрылғыны оңай пайдалануға мүмкіндік береді
орнату, қашықтан басқару және бақылау.

Даму ортасын орнату

Бұл бөлім аяқталу мүмкіндігін бередіview ESP-IDF (Espressif IoT
Даму шеңбері), бұл дамудың ресми негізі болып табылады
ESP32 негізіндегі құрылғылар үшін. Ол әртүрлі нұсқаларын түсіндіреді
ESP-IDF және әзірлеу ортасын орнату жолы.

Аппараттық құралдар мен драйверлерді әзірлеу

ESP32-C3 негізіндегі Smart Light өнімдерінің аппараттық дизайны

Бұл бөлім смарт жарықтың аппараттық дизайнына бағытталған
ESP32-C3 Wireless Adventure негізіндегі өнімдер. Ол қамтиды
смарт жарық өнімдерінің ерекшеліктері мен құрамы, сондай-ақ
ESP32-C3 негізгі жүйесінің аппараттық дизайны.

Smart Light өнімдерінің ерекшеліктері мен құрамы

Бұл бөлімде құрайтын мүмкіндіктер мен құрамдас бөліктер түсіндіріледі
ақылды жарық өнімдерін жоғарылатыңыз. Ол әртүрлі функцияларды талқылайды
және смарт шамдарды жасау үшін дизайнды қарастыру.

ESP32-C3 негізгі жүйесінің аппараттық дизайны

ESP32-C3 негізгі жүйесінің аппараттық дизайны қуатты қамтиды
жабдықтау, қосу реті, жүйені қалпына келтіру, SPI жарқылы, сағат көзі,
және радиожиілік және антенна туралы ойлар. Бұл бөлімше қарастырады
осы аспектілер бойынша толық ақпарат.

Жиі қойылатын сұрақтар

С: ESP RainMaker дегеніміз не?

A: ESP RainMaker – бұлтқа негізделген платформа, ол құралдарды ұсынады
және IoT құрылғыларын құру және басқару қызметтері. Ол жеңілдетеді
әзірлеу процесі және құрылғыны оңай орнатуға мүмкіндік береді, қашықтан
бақылау, бақылау.

С: әзірлеу ортасын қалай орнатуға болады?
ESP32-C3?

A: ESP32-C3 үшін әзірлеу ортасын орнату үшін сізге қажет
ESP-IDF (Espressif IoT Development Framework) орнату және
оны берілген нұсқауларға сәйкес конфигурациялаңыз. ESP-IDF - бұл
ESP32 негізіндегі құрылғылар үшін ресми әзірлеу негізі.

Q: ESP RainMaker мүмкіндіктері қандай?

A: ESP RainMaker әртүрлі мүмкіндіктерді, соның ішінде пайдаланушыны ұсынады
басқару, соңғы пайдаланушы мүмкіндіктері және әкімші мүмкіндіктері. Пайдаланушыны басқару
құрылғыны оңай талап етуге және деректерді синхрондауға мүмкіндік береді. Соңғы қолданушы
мүмкіндіктер мобильді қолданба немесе арқылы құрылғыларды қашықтан басқаруға мүмкіндік береді
web интерфейс. Әкімші мүмкіндіктері құрылғыны бақылауға арналған құралдарды қамтамасыз етеді
және басқару.

ESP32-C3 сымсыз шытырман оқиғасы
IoT бойынша толық нұсқаулық
Espressif жүйелері 12 жылғы 2023 маусым

Мазмұны

I Дайындық

1

1 IoT-ке кіріспе

3

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

1.2 Smart үйлердегі IoT қолданбасы. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 IoT жобаларын енгізу және тәжірибе

9

2.1 IoT типтік жобаларына кіріспе. . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Жалпы IoT құрылғыларына арналған негізгі модульдер. . . . . . . . . . . . . . . . . 9

2.1.2 Клиенттік қолданбалардың негізгі модульдері . . . . . . . . . . . . . . . . . . . 10

2.1.3 Жалпы IoT бұлтты платформаларына кіріспе. . . . . . . . . . . . . . 11

2.2 Тәжірибе: Smart Light жобасы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Жобаның құрылымы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 Жоба функциялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Аппараттық құралдарды дайындау . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 Әзірлеу процесі. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 ESP RainMaker бағдарламасына кіріспе

19

3.1 ESP RainMaker дегеніміз не? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 ESP RainMaker бағдарламасын енгізу. . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Шағым беру қызметі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 RainMaker агенті. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

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

3.2.4 RainMaker клиенті. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Тәжірибе: ESP RainMaker көмегімен әзірлеуге арналған негізгі нүктелер. . . . . . . . . . . . 25

3.4 ESP RainMaker мүмкіндіктері. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 Пайдаланушыны басқару. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 Соңғы пайдаланушы мүмкіндіктері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 Әкімші мүмкіндіктері . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Даму ортасын орнату

31

4.1 ESP-IDF аяқталдыview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 ESP-IDF нұсқалары . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ESP-IDF Git жұмыс процесі. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Сәйкес нұсқаны таңдау. . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Артықview ESP-IDF SDK каталогының . . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF әзірлеу ортасын орнату . . . . . . . . . . . . . . . . . 38 4.2.1 Linux жүйесінде ESP-IDF әзірлеу ортасын орнату . . . . . . . . 38 4.2.2 Windows жүйесінде ESP-IDF әзірлеу ортасын орнату . . . . . . 40 4.2.3 Mac жүйесінде ESP-IDF әзірлеу ортасын орнату . . . . . . . . . 45 4.2.4 VS кодын орнату . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Үшінші тарап әзірлеу орталарына кіріспе . . . . . . . . 46 4.3 ESP-IDF құрастыру жүйесі . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Компиляция жүйесінің негізгі түсініктері. . . . . . . . . . . . . . . . . . 47 4.3.2 Жоба File Құрылым . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Құрастыру жүйесінің әдепкі құрастыру ережелері . . . . . . . . . . . . . 50 4.3.4 Компиляция сценарийіне кіріспе. . . . . . . . . . . . . . . . . . 51 4.3.5 Жалпы пәрмендерге кіріспе. . . . . . . . . . . . . . . . . . . 52 4.4 Тәжірибе: Құрастыру Мысamp«Жыпылықтау» бағдарламасы. . . . . . . . . . . . . . . . . . 53 4.4.1 Мысample талдау. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Blink бағдарламасын құрастыру. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Жыпылықтау бағдарламасын жыпылықтау. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Blink бағдарламасының сериялық порт журналын талдау . . . . . . . . . . . . . . 60 4.5 Қорытынды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II Аппараттық құралдар мен драйверлерді әзірлеу

65

5 ESP32-C3 негізіндегі Smart Light өнімдерінің аппараттық дизайны

67

5.1 Smart Light өнімдерінің ерекшеліктері мен құрамы. . . . . . . . . . . . . . . 67

5.2 ESP32-C3 негізгі жүйесінің аппараттық дизайны. . . . . . . . . . . . . . . . . . . 70

5.2.1 Қуат көзі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 Қосылу реті және жүйені қалпына келтіру . . . . . . . . . . . . . . . . . . 74

5.2.3 SPI жарқылы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.4 Сағат көзі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 РЖ және антенна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 Бекіту түйреуіштері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 GPIO және PWM контроллері. . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Тәжірибе: ESP32-C3 көмегімен смарт жарық жүйесін құру . . . . . . . . . . . . . 80

5.3.1 Модульдерді таңдау. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 PWM сигналдарының GPIO конфигурациялау. . . . . . . . . . . . . . . . . . . . 82

5.3.3 Микробағдарламаны жүктеп алу және интерфейсті жөндеу . . . . . . . . . . . . 82

5.3.4 РЖ жобалау бойынша нұсқаулар . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Қуат көзін жобалау бойынша нұсқаулар . . . . . . . . . . . . . . . . . . . 86 5.4 Қорытынды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Драйверді дамыту

87

6.1 Драйверді әзірлеу процесі. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 ESP32-C3 перифериялық қолданбалар. . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 LED драйверінің негіздері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 Түс кеңістіктері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 Жарық диодты драйвер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 Жарық диодты күңгірттеу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 PWM-ге кіріспе. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 Жарық диодты күңгірттеу драйверін әзірлеу. . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 Ұшқыш емес сақтау (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 Жарық диодты PWM контроллері (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 LED PWM бағдарламалау. . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 Тәжірибе: Smart Light жобасына драйверлерді қосу . . . . . . . . . . . . . . . . . 103

6.5.1 Түйме драйвері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 Жарық диодты күңгірттеу драйвері. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III Сымсыз байланыс және басқару

109

7 Wi-Fi конфигурациясы және қосылымы

111

7.1 Wi-Fi негіздері . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Wi-Fi-ға кіріспе . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 IEEE 802.11 эволюциясы. . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Wi-Fi тұжырымдамалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Wi-Fi қосылымы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Bluetooth негіздері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 Bluetooth-ға кіріспе. . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 Bluetooth тұжырымдамалары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 Bluetooth қосылымы. . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Wi-Fi желісінің конфигурациясы . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Wi-Fi желісін конфигурациялау нұсқаулығы. . . . . . . . . . . . . . . . . . . . 131

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

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

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

7.3.5 Басқа әдістер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 Wi-Fi бағдарламалау . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF жүйесіндегі Wi-Fi құрамдастары . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Жаттығу: Wi-Fi қосылымы . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Жаттығу: Smart Wi-Fi қосылымы . . . . . . . . . . . . . . . . . . . . . 145
7.5 Тәжірибе: Smart Light жобасында Wi-Fi конфигурациясы. . . . . . . . . . . . . . . 156 7.5.1 Smart Light жобасындағы Wi-Fi қосылымы . . . . . . . . . . . . . . . . . 156 7.5.2 Smart Wi-Fi конфигурациясы . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 Жергілікті бақылау

159

8.1 Жергілікті басқаруға кіріспе. . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 Жергілікті бақылауды қолдану. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 АдванtagЖергілікті бақылау. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 Смартфондар арқылы басқарылатын құрылғыларды табу . . . . . . . . . . 161

8.1.4 Смартфондар мен құрылғылар арасындағы деректер байланысы. . . . . . . . 162

8.2 Жалпы жергілікті табу әдістері. . . . . . . . . . . . . . . . . . . . . . . . 162

8.2.1 Тарату. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8.2.2 Көп тарату. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

8.2.3 Таратылым мен көп тарату арасындағы салыстыру. . . . . . . . . . . . . . 176

8.2.4 Жергілікті табу үшін mDNS мультикаст қолданбасының протоколы. . . . . . . . 176

8.3 Жергілікті деректерге арналған ортақ байланыс хаттамалары. . . . . . . . . . . . . . . 179

8.3.1 Беруді басқару протоколы (TCP) . . . . . . . . . . . . . . . . . . . 179

8.3.2 Гипермәтінді тасымалдау протоколы (HTTP) . . . . . . . . . . . . . . . . . . . 185

8.3.3 Пайдаланушы DatagRAM протоколы (UDP). . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 Шектеулі қолдану хаттамасы (CoAP) . . . . . . . . . . . . . . . . 192

8.3.5 Bluetooth протоколы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3.6 Деректермен байланысу хаттамаларының қысқаша мазмұны. . . . . . . . . . . . . . . 203

8.4 Деректер қауіпсіздігінің кепілдігі. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 Транспорттық деңгей қауіпсіздігіне (TLS) кіріспе. . . . . . . . . . . . . 207

8.4.2 Да-ға кіріспеtagRAM Transport Layer Security (DTLS) . . . . . . . 213

8.5 Тәжірибе: Smart Light жобасында жергілікті басқару. . . . . . . . . . . . . . . . . . 217

8.5.1 Wi-Fi негізіндегі жергілікті басқару серверін жасау . . . . . . . . . . . . . . . 217

8.5.2 Сценарийлер арқылы жергілікті басқару функциясын тексеру . . . . . . . . . . . 221

8.5.3 Bluetooth негізіндегі жергілікті басқару серверін жасау. . . . . . . . . . . . 222

8.6 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9 Бұлтты басқару

225

9.1 Қашықтан басқару құралына кіріспе. . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 Бұлтты деректер байланысының хаттамалары. . . . . . . . . . . . . . . . . . . . . . 226

9.2.1 MQTT Кіріспе. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 MQTT принциптері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT хабарлама пішімі. . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Протоколды салыстыру . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Linux және Windows жүйелерінде MQTT брокерін орнату. . . . . . . . . . . . 233 9.2.6 ESP-IDF негізінде MQTT клиентін орнату . . . . . . . . . . . . . . . . 235 9.3 MQTT деректер қауіпсіздігін қамтамасыз ету. . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Сертификаттардың мәні мен қызметі. . . . . . . . . . . . . . . . . . . 237 9.3.2 Жергілікті жерде сертификаттарды жасау . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 MQTT брокерін теңшеу. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT клиентін теңшеу. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Тәжірибе: ESP RainMaker арқылы қашықтан басқару. . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker негіздері . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Түйін және бұлтты серверлік байланыс протоколы. . . . . . . . . . . 244 9.4.3 Клиент пен Cloud Backend арасындағы байланыс . . . . . . . . . . . 249 9.4.4 Пайдаланушы рөлдері . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Негізгі қызметтер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Exampле . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker қолданбасы және үшінші тарап интеграциялары . . . . . . . . . . . . . . . 262 9.5 Қорытынды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 Смартфон қолданбасын әзірлеу

269

10.1 Смартфон қолданбасын әзірлеуге кіріспе. . . . . . . . . . . . . . . . . . 269

10.1.1 Артықview Смартфон қолданбаларын әзірлеу. . . . . . . . . . . . . . . 270

10.1.2 Android жобасының құрылымы. . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 iOS жобасының құрылымы. . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Android әрекетінің өмірлік циклі. . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 iOS жүйесінің өмірлік циклі ViewКонтроллер. . . . . . . . . . . . . . . . . . . . . . 273

10.2 Жаңа смартфон қолданбасының жобасын жасау . . . . . . . . . . . . . . . . . . . . . 275

10.2.1 Android әзірлеуге дайындық . . . . . . . . . . . . . . . . . . . 275

10.2.2 Жаңа Android жобасын жасау. . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 MyRainmaker үшін тәуелділіктерді қосу. . . . . . . . . . . . . . . . . 276

10.2.4 Android жүйесінде рұқсат сұрауы. . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 iOS әзірлеуге дайындық . . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 Жаңа iOS жобасын жасау. . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 MyRainmaker үшін тәуелділіктерді қосу. . . . . . . . . . . . . . . . . 279

10.2.8 iOS жүйесінде рұқсат сұрауы. . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 Қолданбаның функционалдық талаптарын талдау . . . . . . . . . . . . . . . . . . 281

10.3.1 Жобаның функционалдық талаптарын талдау . . . . . . . . . . . . 282

10.3.2 Пайдаланушыны басқару талаптарын талдау. . . . . . . . . . . . . . . 282 10.3.3 Құрылғыны қамтамасыз ету және байланыстыру талаптарын талдау . . . . . . . 283 10.3.4 Қашықтан басқаруға қойылатын талаптарды талдау . . . . . . . . . . . . . . . . 283 10.3.5 Жоспарлау талаптарын талдау . . . . . . . . . . . . . . . . . . . 284 10.3.6 Пайдаланушы орталығының талаптарын талдау . . . . . . . . . . . . . . . . . . 285 10.4 Пайдаланушыларды басқаруды әзірлеу. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker API интерфейсіне кіріспе. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Смартфон арқылы байланысты бастау. . . . . . . . . . . . . . . . 286 10.4.3 Есептік жазбаны тіркеу . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Тіркелгіге кіру . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Құрылғыны қамтамасыз етуді әзірлеу . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Сканерлеу құрылғылары . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Құрылғыларды қосу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Құпия кілттерді жасау . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Түйін идентификаторын алу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Құрылғыларды дайындау . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Құрылғыны басқаруды әзірлеу . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Құрылғыларды бұлттық тіркелгілерге байланыстыру. . . . . . . . . . . . . . . . . . . . 303 10.6.2 Құрылғылар тізімін алу . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Құрылғы күйін алу . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Құрылғы күйін өзгерту . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Жоспарлау және пайдаланушы орталығын әзірлеу. . . . . . . . . . . . . . . . . . . 313 10.7.1 Жоспарлау функциясын орындау . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Пайдаланушы орталығын енгізу. . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Қосымша бұлттық API интерфейстері. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Қорытынды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 Микробағдарламаны жаңарту және нұсқаны басқару

321

11.1 Микробағдарламаны жаңарту . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 Артықview Бөлім кестелерінің. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 Микробағдарламаны жүктеу процесі. . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 Артықview OTA механизмінің. . . . . . . . . . . . . . . . . . . . . 326

11.2 Микробағдарлама нұсқасын басқару. . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 Микробағдарламаны таңбалау. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 Кері қайтару және кері қайтару. . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 Тәжірибе: ауада (OTA) Exampле . . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 Микробағдарламаны жергілікті хост арқылы жаңарту . . . . . . . . . . . . . . . . . 332

11.3.2 Микробағдарламаны ESP RainMaker арқылы жаңарту. . . . . . . . . . . . . . . 335

11.4 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

IV Оңтайландыру және жаппай өндіру

343

12 Қуатты басқару және төмен қуатты оңтайландыру

345

12.1 ESP32-C3 қуатты басқару. . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 Динамикалық жиілікті масштабтау. . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 Қуатты басқару конфигурациясы. . . . . . . . . . . . . . . . . . . . 348

12.2 ESP32-C3 төмен қуат режимі . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

12.2.1 Модем-ұйқы режимі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12.2.2 Жеңіл ұйқы режимі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 Терең ұйқы режимі . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 Әртүрлі қуат режимдеріндегі ток тұтынуы. . . . . . . . . . . . . 358

12.3 Қуатты басқару және аз қуатпен жөндеу . . . . . . . . . . . . . . . . . 359

12.3.1 Журналды жөндеу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

12.3.2 GPIO жөндеу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

12.4 Тәжірибе: Smart Light жобасында қуатты басқару. . . . . . . . . . . . . . . 363

12.4.1 Қуатты басқару мүмкіндігін конфигурациялау. . . . . . . . . . . . . . . . . 364

12.4.2 Қуатты басқару құлыптарын пайдаланыңыз. . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 Қуатты тұтынуды тексеру . . . . . . . . . . . . . . . . . . . . . . . 366

12.5 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 Жетілдірілген құрылғы қауіпсіздік мүмкіндіктері

369

13.1 Артықview IoT құрылғысының деректер қауіпсіздігі. . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 Неліктен IoT құрылғы деректерін қорғау керек? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 IoT құрылғысының деректер қауіпсіздігіне қойылатын негізгі талаптар. . . . . . . . . . . . 371

13.2 Деректер тұтастығын қорғау. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

13.2.1 Тұтастығын тексеру әдісіне кіріспе. . . . . . . . . . . . . . 372

13.2.2 Микробағдарлама деректерінің тұтастығын тексеру . . . . . . . . . . . . . . . . . . 373

13.2.3 Мысampле . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3 Деректердің құпиялылығын қорғау. . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3.1 Деректерді шифрлауға кіріспе. . . . . . . . . . . . . . . . . . . . . . 374

13.3.2 Flash шифрлау схемасына кіріспе. . . . . . . . . . . . . . . . . 376

13.3.3 Flash шифрлау кілтін сақтау. . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 Flash шифрлаудың жұмыс режимі. . . . . . . . . . . . . . . . . . . . 380

13.3.5 Flash шифрлау процесі . . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 NVS шифрлауына кіріспе. . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 МысampFlash шифрлау және NVS шифрлау. . . . . . . . . . . 384

13.4 Деректердің заңдылығын қорғау. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 Цифрлық қолтаңбаға кіріспе. . . . . . . . . . . . . . . . . . . . . 386

13.4.2 Артықview Қауіпсіз жүктеу схемасының. . . . . . . . . . . . . . . . . . . . . 388

13.4.3 Бағдарламалық құралды қауіпсіз жүктеуге кіріспе. . . . . . . . . . . . . . . . . . . 388 13.4.4 Аппараттық құралдарды қауіпсіз жүктеуге кіріспе . . . . . . . . . . . . . . . . . . 390 13.4.5 Мысamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Тәжірибе: Жаппай өндірістегі қауіпсіздік мүмкіндіктері . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash шифрлау және қауіпсіз жүктеу . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Flash шифрлауды және пакеттік Flash құралдарымен қауіпсіз жүктеуді қосу. . 397 13.5.3 Smart Light жобасында жарқылды шифрлауды және қауіпсіз жүктеуді қосу. . . 398 13.6 Қорытынды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 Микробағдарламаны жағу және жаппай өндіріске сынау

399

14.1 Микробағдарламаның жаппай өндірісте жануы . . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 Деректер бөлімдерін анықтау. . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 Микробағдарламаны жазу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 Жаппай өндірісті сынау. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 Тәжірибе: Smart Light жобасындағы жаппай өндіріс деректері. . . . . . . . . . . . . 404

14.4 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 ESP Insights: Қашықтан бақылау платформасы

405

15.1 ESP Insights бағдарламасына кіріспе. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 ESP Insights бағдарламасымен жұмысты бастау . . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 esp-insights жобасында ESP Insights бағдарламасымен жұмысты бастау . . . . . . 409

15.2.2 Іске қосу Example esp-insights жобасында. . . . . . . . . . . . . . . 411

15.2.3 Coredump ақпаратын беру. . . . . . . . . . . . . . . . . . . . . 411

15.2.4 Қызығушылықтар журналдарын теңшеу. . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 Қайта жүктеу себебін хабарлау. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 Теңшелетін көрсеткіштерді хабарлау . . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 Тәжірибе: Smart Light жобасында ESP Insights пайдалану . . . . . . . . . . . . . . . 416

15.4 Түйіндеме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

Кіріспе
ESP32-C3 – ашық бастапқы RISC-V архитектурасына негізделген бір ядролы Wi-Fi және Bluetooth 5 (LE) микроконтроллері SoC. Ол қуат, енгізу/шығару мүмкіндіктері мен қауіпсіздіктің дұрыс теңгеріміне қол жеткізеді, осылайша қосылған құрылғылар үшін оңтайлы үнемді шешім ұсынады. ESP32-C3 отбасының әртүрлі қолданбаларын көрсету үшін Espressif авторының бұл кітабы сізді IoT жобасын әзірлеу және ортаны орнату негіздерінен бастап практикалық тәжірибеге дейін AIoT арқылы қызықты саяхатқа апарады.amples. Алғашқы төрт тарауда IoT, ESP RainMaker және ESP-IDF туралы айтылады. Аппараттық құралдарды жобалау және драйверлерді әзірлеу туралы 5 және 6 тараулар қысқаша. Прогресс барысында жобаңызды Wi-Fi желілері және мобильді қолданбалар арқылы конфигурациялау жолын табасыз. Соңында сіз жобаңызды оңтайландыруды және оны жаппай өндіріске енгізуді үйренесіз.
Егер сіз сәйкес салалардағы инженер, бағдарламалық жасақтама сәулетшісі, мұғалім, студент немесе IoT-ге қызығушылық танытатын кез келген адам болсаңыз, бұл кітап сізге арналған.
Бұрынғы кодты жүктеп алуға боладыampБұл кітапта GitHub сайтындағы Espressif сайтынан пайдаланылған. IoT дамуы туралы соңғы ақпаратты алу үшін біздің ресми тіркелгімізге жазылыңыз.

Алғы сөз
Ақпараттандыру әлемі
Интернет толқынына мініп, Интернет заттары (IoT) цифрлық экономикадағы инфрақұрылымның жаңа түріне айналу үшін өзінің үлкен дебютін жасады. Технологияны жұртшылыққа жақындату үшін Espressif Systems өмірдің барлық салаларындағы әзірлеушілер қазіргі заманның кейбір өзекті мәселелерін шешу үшін IoT пайдалана алады деген көзқарас үшін жұмыс істейді. «Барлық заттардың интеллектуалды желісі» әлемі – біз болашақтан күтетін нәрсе.
Өзіміздің фишкаларымызды жобалау осы көзқарастың маңызды құрамдас бөлігі болып табылады. Бұл технологиялық шекараларға қарсы тұрақты серпілістерді қажет ететін марафон болуы керек. «Ойын ауыстырғышынан» ESP8266 бастап Wi-Fi және Bluetoothr (LE) қосылымын біріктіретін ESP32 сериясына дейін, одан кейін AI жеделдетуімен жабдықталған ESP32-S3, Espressif AIoT шешімдеріне арналған өнімдерді зерттеуді және әзірлеуді ешқашан тоқтатпайды. IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF және Device Connectivity Platform ESP RainMaker сияқты ашық бастапқы бағдарламалық жасақтамамен біз AIoT қолданбаларын құру үшін тәуелсіз негіз құрдық.
2022 жылдың шілде айындағы жағдай бойынша Espressif-тің IoT чипсеттерінің жиынтық жеткізілімі 800 миллионнан асты, бұл Wi-Fi MCU нарығында жетекші орынға ие және бүкіл әлем бойынша көптеген қосылған құрылғыларды қуаттайды. Мықтылыққа ұмтылу әрбір Espressif өнімін интеграцияның жоғары деңгейі мен үнемділігі үшін үлкен хитке айналдырады. ESP32-C3 шығарылымы Espressif компаниясының өзі әзірлеген технологиясының маңызды кезеңін білдіреді. Бұл бір ядролы, 32 биттік, RISC-V негізіндегі 400 КБ SRAM бар MCU, ол 160 МГц жиілікте жұмыс істей алады. Ол 2.4 ГГц Wi-Fi және Bluetooth 5 (LE) біріктірілген, ұзақ қашықтықтағы қолдауы бар. Ол қуаттың, енгізу/шығару мүмкіндіктерінің және қауіпсіздіктің тамаша теңгеріміне ие, осылайша қосылған құрылғылар үшін оңтайлы үнемді шешім ұсынады. Осындай қуатты ESP32-C3 негізінде бұл кітап оқырмандарға IoT-қа қатысты білімді егжей-тегжейлі иллюстрациямен және практикалық мысалмен түсінуге көмектесуге арналған.amples.
Бұл кітапты не үшін жаздық?
Espressif Systems жартылай өткізгіш компания емес. Бұл сонымен қатар әрқашан технология саласындағы серпілістер мен инновацияларға ұмтылатын IoT платформасы компаниясы. Сонымен қатар, Espressif бірегей экожүйені қалыптастыра отырып, ашық бастапқы кодқа ие болды және қоғамдастықпен өзі әзірлеген операциялық жүйе мен бағдарламалық қамтамасыз ету негізін бөлісті. Инженерлер, жасаушылар және технология энтузиастары Espressif өнімдері негізінде жаңа бағдарламалық қосымшаларды белсенді түрде әзірлейді, еркін сөйлеседі және тәжірибелерімен бөліседі. Әзірлеушілердің қызықты идеяларын YouTube және GitHub сияқты әртүрлі платформаларда үнемі көре аласыз. Espressif өнімдерінің танымалдығы оннан астам тілде, соның ішінде ағылшын, қытай, неміс, француз және жапон тілдерінде Espressif чипсеттері негізінде 100-ден астам кітап шығарған авторлардың көбеюіне түрткі болды.

Бұл Espressif-тің үздіксіз инновациясын ынталандыратын қауымдастық серіктестерінің қолдауы мен сенімі. «Біз чиптерді, операциялық жүйелерді, фреймворктарды, шешімдерді, бұлтты, іскерлік тәжірибелерді, құралдарды, құжаттамаларды, жазбаларды, идеяларды және т.б. адамдарды қазіргі өмірдің ең өзекті мәселелерінде қажет ететін жауаптарға көбірек сәйкес етуге тырысамыз. Бұл Espressif-тің ең жоғары амбициясы мен моральдық компасы». - деді Тео Суи Энн, Espressif негізін қалаушы және бас директоры.
Espressif оқу мен идеяларды бағалайды. IoT технологиясын үздіксіз жаңарту инженерлерге жоғары талаптар қоятындықтан, біз көбірек адамдарға IoT чиптерін, операциялық жүйелерді, бағдарламалық қамтамасыз ету құрылымдарын, қолданбалы схемаларды және бұлттық сервис өнімдерін жылдам меңгеруге қалай көмектесе аламыз? «Адамға балық бергенше, балық аулауды үйреткен жақсы» дегендей. Миға шабуыл сессиясында біз IoT дамуының негізгі білімдерін жүйелі түрде сұрыптау үшін кітап жаза аламыз деген ой келді. Біз оған қол жеткіздік, бір топ аға инженерлерді жинадық және техникалық топтың енгізілген бағдарламалау, IoT аппараттық құралдары мен бағдарламалық қамтамасыз етуді әзірлеу тәжірибесін біріктірдік, барлығы осы кітапты басып шығаруға үлес қосты. Жазу барысында біз объективті және әділ болуға тырыстық, коконнан арылып, Интернет желісінің күрделілігі мен сүйкімділігін айту үшін ықшам өрнектер қолдандық. Әзірлеу процесінде кездесетін сұрақтарға нақты жауап беру және тиісті техниктер мен шешім қабылдаушылар үшін IoT әзірлеу бойынша практикалық нұсқауларды беру үшін біз жалпы сұрақтарды мұқият қорытындыладық, қауымдастықтың пікірлері мен ұсыныстарына сілтеме жасадық.
Кітап құрылымы
Бұл кітап инженерге бағытталған перспективаны алады және IoT жобасын әзірлеу үшін қажетті білімді кезең-кезеңмен түсіндіреді. Ол келесідей төрт бөліктен тұрады:
· Дайындық (1-тарау): Бұл бөлім IoT жобасын әзірлеу үшін берік негіз қалау үшін IoT архитектурасын, типтік IoT жобасының негізін, ESP RainMakerr бұлттық платформасын және ESP-IDF әзірлеу ортасын ұсынады.
· Аппараттық құралдарды және драйверлерді әзірлеу (5-тарау): ESP6-C32 чипсетіне негізделген бұл бөлік ең аз аппараттық жүйе мен драйверді әзірлеуге арналған және күңгірттенуді, түс градациясын және сымсыз байланысты басқаруды жүзеге асырады.
· Сымсыз байланыс және басқару (7-тарау): Бұл бөлім ESP11-C32 чипіне, жергілікті және бұлтты басқару протоколдарына және құрылғыларды жергілікті және қашықтан басқаруға негізделген интеллектуалды Wi-Fi конфигурациясының схемасын түсіндіреді. Сондай-ақ ол смартфон қолданбаларын әзірлеу, микробағдарламаны жаңарту және нұсқаларды басқару схемаларын ұсынады.
· Оңтайландыру және жаппай өндіріс (12-15-тарау): Бұл бөлім қуатты басқарудағы өнімдерді оңтайландыруға, төмен қуатты оңтайландыруға және қауіпсіздікті арттыруға бағытталған озық IoT қолданбаларына арналған. Ол сонымен қатар микробағдарламаны жағуды және жаппай өндірісте тестілеуді, сондай-ақ ESP Insights қашықтан бақылау платформасы арқылы құрылғы микробағдарламасының жұмыс күйін және журналдарын диагностикалауды ұсынады.

Бастапқы код туралы
Оқырмандар бұрынғыны іске қоса аладыampКодты қолмен енгізу немесе кітаппен бірге келетін бастапқы кодты пайдалану арқылы осы кітаптағы бағдарламаларды ашыңыз. Біз теория мен тәжірибенің үйлесімін ерекше атап өтеміз, осылайша әр тарауда Smart Light жобасы негізінде Тәжірибе бөлімін орнатамыз. Барлық кодтар ашық бастапқы болып табылады. Оқырмандар бастапқы кодты жүктеп алып, оны GitHub сайтында және esp32.com ресми форумында осы кітапқа қатысты бөлімдерде талқылай алады. Бұл кітаптың ашық бастапқы коды Apache License 2.0 шарттарына бағынады.
Авторлық ескерту
Бұл кітапты ресми түрде Espressif Systems шығарған және оны компанияның аға инженерлері жазған. Ол IoT-мен байланысты салалардағы менеджерлер мен ҒЗТКЖ қызметкерлеріне, сәйкес мамандықтардың оқытушылары мен студенттеріне және Интернет заттары саласындағы энтузиастарға қолайлы. Бұл кітап жақсы тәрбиеші және дос болу үшін жұмыс нұсқаулығы, анықтамалық және төсек-орындық кітап ретінде қызмет ете алады деп үміттенеміз.
Бұл кітапты құрастыру барысында біз отандық және шетелдегі сарапшылардың, ғалымдардың және техниктердің кейбір өзекті зерттеу нәтижелеріне сілтеме жасадық және оларды академиялық нормаларға сәйкес келтіруге бар күшімізді салдық. Дегенмен, олқылықтардың болуы да мүмкін емес, сондықтан осы жерде біз барлық тиісті авторларға үлкен құрмет пен алғысымызды білдіргіміз келеді. Сонымен қатар, біз Интернеттен алынған мәліметтерді келтірдік, сондықтан түпнұсқа авторлар мен баспагерлерге алғыс айтамыз және әрбір ақпараттың көзін көрсете алмайтынымыз үшін кешірім сұраймыз.
Жоғары сапалы кітап шығару үшін біз ішкі пікірталастардың раундтарын ұйымдастырдық және сынақ оқырмандары мен баспа редакторларының ұсыныстары мен пікірлерін білдік. Осы сәтті жұмысқа көмектескен көмектеріңіз үшін тағы да алғысымызды білдіреміз.
Соңғысы, бірақ ең бастысы, біздің өнімдеріміздің дүниеге келуі және танымал болуы үшін көп жұмыс істеген Espressif-тегі барлығына рахмет.
IoT жобаларын әзірлеу білімнің кең ауқымын қамтиды. Кітаптың көлемімен, автордың деңгейі мен тәжірибесімен шектелгендіктен, олқылықтарға жол берілмейді. Сондықтан сарапшылар мен оқырмандардан қателіктерімізді сынап, түзетулерін сұраймыз. Осы кітапқа қатысты ұсыныстарыңыз болса, book@espressif.com мекенжайы бойынша бізге хабарласыңыз. Пікіріңізді күтеміз.

Бұл кітапты қалай пайдалануға болады?
Бұл кітаптағы жобалардың коды ашық болып табылады. Сіз оны GitHub репозиторийінен жүктеп алып, ресми форумымызда өз ойларыңызбен және сұрақтарыңызбен бөлісе аласыз. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Форум: https://www.esp32.com/bookc3 Кітапта төменде көрсетілгендей бөлектелген бөліктер болады.
Бастапқы код Бұл кітапта біз теория мен тәжірибенің үйлесімін атап өтеміз, осылайша әрбір тарауда Smart Light жобасы туралы Тәжірибе бөлімін орнатамыз. Сәйкес қадамдар мен бастапқы бет деп басталатын екі жол арасында белгіленеді tag Бастапқы код.
ЕСКЕРТПЕ/КЕҢЕСТЕР Бұл жерде сіз кейбір маңызды ақпаратты және бағдарламаңызды сәтті жөндеуге арналған ескертулерді таба аласыз. Олар деп басталатын екі қалың сызық арасында белгіленеді tag ЕСКЕРТПЕ немесе КЕҢЕСТЕР.
Бұл кітаптағы пәрмендердің көпшілігі «$» таңбасымен шақырылатын Linux жүйесінде орындалады. Егер пәрмен орындау үшін суперпайдаланушы артықшылықтарын талап етсе, шақыру «#» белгісіне ауыстырылады. Mac жүйелеріндегі пәрмен жолы 4.2.3 Mac жүйесінде ESP-IDF орнату бөлімінде қолданылғандай «%» болып табылады.
Бұл кітаптың негізгі мәтіні Хартияда, ал код бұрынғыamples, компоненттер, функциялар, айнымалылар, код file аттар, код каталогтары және жолдар Courier New ішінде болады.
Пайдаланушы енгізуі қажет пәрмендер немесе мәтіндер және «Enter» пернесін басу арқылы енгізуге болатын пәрмендер Courier New қалың шрифтпен басып шығарылады. Журналдар мен код блоктары ашық көк жолақтарда көрсетіледі.
Exampле:
Екіншіден, NVS екілік бөлімін жасау үшін esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py пайдаланыңыз. file әзірлеу хостында келесі пәрменмен:
$ python $IDF PATH/components/nvs flash/nvs бөлім генераторы/nvs бөлімі gen.py – кіріс массасы prod.csv – шығыс массасы өнімі.bin – өлшемі NVS БӨЛІМІ ӨЛШЕМІ

1-тарау

Кіріспе

дейін

IoT

20 ғасырдың аяғында компьютерлік желілер мен коммуникациялық технологиялардың өркендеуімен Интернет адамдар өміріне жылдам кірді. Интернет-технологиялар дамып келе жатқандықтан, заттар интернеті (IoT) идеясы пайда болды. Сөзбе-сөз айтқанда, IoT заттар қосылған Интернет дегенді білдіреді. Түпнұсқа интернет кеңістік пен уақыт шекарасын бұзып, «адам мен адам» арасындағы қашықтықты тарылтқанымен, IoT «адамдар» мен «заттарды» жақындата отырып, «заттарды» маңызды қатысушыға айналдырады. Жақын болашақта IoT ақпараттық индустрияның қозғаушы күшіне айналады.
Сонымен, заттардың интернеті дегеніміз не?
Заттар интернетін дәл анықтау қиын, өйткені оның мәні мен ауқымы үнемі дамып отырады. 1995 жылы Билл Гейтс өзінің «Алдағы жол» кітабында IoT идеясын алғаш рет көтерді. Қарапайым тілмен айтқанда, IoT объектілерге Интернет арқылы бір-бірімен ақпарат алмасуға мүмкіндік береді. Оның түпкі мақсаты – «Барлығының интернетін» құру. Бұл IoT-тің ерте түсіндірмесі, сондай-ақ болашақ технологияның қиялы. Отыз жылдан кейін экономика мен технологияның қарқынды дамуымен қиял шындыққа айналады. Смарт құрылғылардан, смарт үйлерден, ақылды қалалардан, көліктер интернеті мен киілетін құрылғылардан бастап IoT технологиялары қолдайтын «метавернеге» дейін үнемі жаңа концепциялар пайда болады. Бұл тарауда біз Интернет заттарының архитектурасын түсіндіруден бастаймыз, содан кейін IoT туралы нақты түсінік алуға көмектесу үшін ең көп таралған IoT қолданбасы, смарт үйді енгіземіз.
1.1 IoT архитектурасы
Интернет заттары әртүрлі салаларда әртүрлі қолдану қажеттіліктері мен пішіндері бар көптеген технологияларды қамтиды. IoT құрылымын, негізгі технологияларын және қолданбалы сипаттамаларын сұрыптау үшін бірыңғай архитектура мен стандартты техникалық жүйені құру қажет. Бұл кітапта IoT архитектурасы жай ғана төрт деңгейге бөлінген: қабылдау және басқару деңгейі, желілік деңгей, платформалық деңгей және қолданбалы деңгей.
Қабылдау және басқару деңгейі IoT архитектурасының ең негізгі элементі ретінде қабылдау және басқару деңгейі IoT жан-жақты сезінуін жүзеге асырудың өзегі болып табылады. Оның негізгі қызметі ақпаратты жинау, анықтау және бақылау болып табылады. Ол қабылдау қабілеті бар әртүрлі құрылғылардан тұрады,
3

сәйкестендіру, бақылау және орындау және материалдық сипаттар, мінез-құлық тенденциялары және құрылғы күйі сияқты деректерді шығарып алуға және талдауға жауапты. Осылайша, IoT нақты физикалық әлемді тани алады. Сонымен қатар, қабат құрылғының күйін басқара алады.
Бұл қабаттың ең көп тараған құрылғылары ақпаратты жинау мен анықтауда маңызды рөл атқаратын әртүрлі сенсорлар болып табылады. Датчиктер адамның сезім мүшелеріне ұқсайды, мысалы, көру қабілетіне тең фотосезімтал сенсорлар, естуге акустикалық сенсорлар, иіс сезу үшін газ датчиктері және тиюге арналған қысым мен температураға сезімтал сенсорлар. Барлық осы «сезім мүшелерімен» объектілер «тірі» болады және физикалық әлемді интеллектуалды қабылдауға, тануға және басқаруға қабілетті болады.
Желілік деңгей Желілік деңгейдің негізгі қызметі ақпаратты, оның ішінде қабылдау және басқару деңгейінен белгіленген мақсатқа алынған деректерді, сондай-ақ қолданбалы деңгейден қайта қабылдау және басқару деңгейіне берілген командаларды жіберу болып табылады. Ол IoT жүйесінің әртүрлі қабаттарын байланыстыратын маңызды байланыс көпірі ретінде қызмет етеді. Интернет заттарының негізгі моделін орнату үшін ол объектілерді желіге біріктірудің екі қадамын қамтиды: Интернетке кіру және Интернет арқылы жіберу.
Интернет Интернетке қол жеткізу адам мен адамның өзара байланысын қамтамасыз етеді, бірақ заттарды үлкен отбасына кіргізбейді. IoT пайда болғанға дейін көп нәрсе «желіге қабілетті» емес еді. Технологияның үздіксіз дамуының арқасында IoT заттарды Интернетке қосуға мүмкіндік береді, осылайша «адамдар мен заттар» және «заттар мен заттар» арасындағы өзара байланысты жүзеге асырады. Интернетке қосылудың екі жалпы жолы бар: сымды желіге қол жеткізу және сымсыз желіге кіру.
Сымды желіге қатынау әдістеріне Ethernet, сериялық байланыс (мысалы, RS-232, RS-485) және USB кіреді, ал сымсыз желіге қол жеткізу сымсыз байланысқа байланысты, оны одан әрі қысқа диапазондағы сымсыз байланыс және ұзақ ауқымды сымсыз байланыс деп бөлуге болады.
Қысқа ауқымдағы сымсыз байланысқа ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC) және Радиожиілік сәйкестендіру (RFID) кіреді. Ұзақ диапазондағы сымсыз байланысқа Enhanced Machine Type Communication (eMTC), LoRa, Тар жолақты заттардың интернеті (NB-IoT), 2G, 3G, 4G, 5G және т.б.
Интернет арқылы беру Интернетке кірудің әртүрлі әдістері деректерді сәйкес физикалық тасымалдау сілтемесіне әкеледі. Келесі нәрсе - деректерді беру үшін қандай байланыс протоколын қолдану керектігін шешу. Интернет терминалдарымен салыстырғанда, қазіргі уақытта IoT терминалдарының көпшілігінде азырақ
4 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

өңдеу өнімділігі, сақтау сыйымдылығы, желі жылдамдығы және т.б. сияқты қолжетімді ресурстар, сондықтан IoT қолданбаларында ресурстарды азырақ алатын байланыс протоколын таңдау қажет. Қазіргі кезде кеңінен қолданылатын екі байланыс протоколы бар: Message Queuing Telemetry Transport (MQTT) және Шектеулі қолданбалы протокол (CoAP).
Платформалық деңгей Платформалық деңгей негізінен IoT бұлттық платформаларына қатысты. Барлық IoT терминалдары желіге қосылған кезде, олардың деректерін есептеу және сақтау үшін IoT бұлттық платформасында біріктіру қажет. Платформа қабаты негізінен үлкен құрылғыларға қол жеткізуді және басқаруды жеңілдету үшін IoT қолданбаларын қолдайды. Ол IoT терминалдарын бұлттық платформаға қосады, терминал деректерін жинайды және қашықтан басқаруды жүзеге асыру үшін терминалдарға пәрмендер береді. Өнеркәсіптік қолданбаларға жабдықты тағайындау үшін аралық қызмет ретінде платформа қабаты абстрактілі бизнес логикасын және стандартталған негізгі деректер моделін алып, IoT архитектурасында байланыстырушы рөл атқарады, ол құрылғыларға жылдам қол жеткізуді жүзеге асырып қана қоймайды, сонымен қатар қуатты модульдік мүмкіндіктерді қамтамасыз етеді. салалық қолдану сценарийлеріндегі әртүрлі қажеттіліктерді қанағаттандыру. Платформалық деңгей негізінен құрылғыға қол жеткізу, құрылғыны басқару, қауіпсіздікті басқару, хабар алмасу, жұмыс пен техникалық қызмет көрсетуді бақылау және деректер қолданбалары сияқты функционалдық модульдерді қамтиды.
· Терминалдар мен IoT бұлттық платформалары арасындағы байланыс пен байланысты жүзеге асыратын құрылғыға қол жеткізу.
· Құрылғыны жасау, құрылғыға техникалық қызмет көрсету, деректерді түрлендіру, деректерді синхрондау және құрылғыны тарату сияқты функцияларды қамтитын құрылғыны басқару.
· Қауіпсіздікті басқару, қауіпсіздік аутентификациясы және байланыс қауіпсіздігі тұрғысынан IoT деректерін жіберу қауіпсіздігін қамтамасыз ету.
· Хабарлама байланысы, оның ішінде үш тасымалдау бағыты, яғни терминал деректерді IoT бұлттық платформасына жібереді, IoT бұлттық платформасы деректерді сервер жағына немесе басқа IoT бұлттық платформаларына жібереді, ал сервер жағы IoT құрылғыларын қашықтан басқарады.
· Мониторинг және диагностиканы, микробағдарламаны жаңартуды, онлайн күйін келтіруді, журнал қызметтерін және т.б. қамтитын O&M мониторингі.
· Деректерді сақтау, талдау және қолдануды қамтитын деректер қолданбалары.
Қолданба деңгейі Қолданбалы деңгей қолданбаны басқару, оларды дерекқорлар және талдау бағдарламалық құралы сияқты құралдармен сүзу және өңдеу үшін платформа деңгейіндегі деректерді пайдаланады. Алынған деректерді смарт денсаулық сақтау, смарт ауыл шаруашылығы, смарт үйлер және ақылды қалалар сияқты нақты әлемдегі IoT қолданбалары үшін пайдалануға болады.
Әрине, IoT архитектурасын одан да көп қабаттарға бөлуге болады, бірақ ол қанша қабаттан тұратынына қарамастан, негізгі принцип негізінен өзгеріссіз қалады. Үйрену
1-тарау. IoT 5-ке кіріспе

IoT архитектурасы туралы IoT технологиялары туралы түсінігімізді тереңдетуге және толық функционалды IoT жобаларын құруға көмектеседі.
1.2 Smart үйлердегі IoT қолданбасы
IoT өмірдің барлық салаларына еніп кетті және біз үшін ең жақын IoT қолданбасы - смарт үй. Көптеген дәстүрлі құрылғылар қазір бір немесе бірнеше IoT құрылғыларымен жабдықталған және көптеген жаңадан салынған үйлер басынан бастап IoT технологияларымен жобаланған. 1.1-суретте кейбір жалпы смарт үй құрылғылары көрсетілген.
1.1-сурет. Жалпы смарт үй құрылғылары Ақылды үйдің дамуын жай ғана смарт өнімге бөлуге боладыtage, көріністің өзара байланысы stage және интеллектуалды сtage, 1.2-суретте көрсетілгендей.
1.2-сурет. Даму сtage of smart home 6 ESP32-C3 Wireless Adventure: IoT бойынша кешенді нұсқаулық

Бірінші сtage смарт өнімдер туралы. Дәстүрлі үйлерден айырмашылығы, смарт үйлерде IoT құрылғылары сенсорлармен сигналдарды қабылдайды және Wi-Fi, Bluetooth LE және ZigBee сияқты сымсыз байланыс технологиялары арқылы желіге қосылған. Пайдаланушылар смартфон қолданбалары, дауыстық көмекшілер, смарт динамикті басқару және т.б. сияқты смарт өнімдерді әртүрлі жолдармен басқара алады. Екінші сtage көріністің өзара байланысына назар аударады. Бұл сtage, әзірлеушілер енді бір смарт өнімді басқаруды емес, екі немесе одан да көп смарт өнімді өзара байланыстыруды, белгілі бір дәрежеде автоматтандыруды және сайып келгенде теңшелетін көрініс режимін қалыптастыруды қарастыруда. Мысалыample, пайдаланушы кез келген көрініс режимі түймесін басқанда, шамдар, перделер және кондиционерлер алдын ала орнатылған параметрлерге автоматты түрде бейімделеді. Әрине, триггер жағдайлары мен орындау әрекеттерін қоса алғанда, байланыстыру логикасын оңай орнатудың алғы шарты бар. Үй ішіндегі температура 10°C төмен түскенде кондиционерді жылыту режимі іске қосылатынын елестетіңіз; таңғы сағат 7-де пайдаланушыны ояту үшін музыка ойналып, смарт перделер ашылып, смарт розетка арқылы күріш пеші немесе нан тостер іске қосылатыны; Пайдаланушы тұрып, жууды аяқтаған кезде, таңғы ас қазірдің өзінде берілді, сондықтан жұмысқа бару кешігуі болмайды. Біздің өміріміз қаншалықты ыңғайлы болды! Үшінші сtage барлау s барадыtage. Смарт үй құрылғыларына қол жеткізілген сайын, жасалатын деректер түрлері де көбейеді. Бұлтты есептеулердің, үлкен деректердің және жасанды интеллекттің көмегімен бұл пайдаланушыдан жиі командаларды қажет етпейтін смарт үйлерге «ақылдырақ ми» отырғызылған сияқты. Олар әрекеттерді автоматтандыру, соның ішінде шешім қабылдау үшін ұсыныстар беру үшін алдыңғы өзара әрекеттесулерден деректерді жинайды және пайдаланушының мінез-құлық үлгілері мен қалауларын үйренеді. Қазіргі уақытта смарт үйлердің көпшілігі оқиға орнында өзара байланыстаtage. Смарт өнімдердің ену жылдамдығы мен интеллектісі артқан сайын, байланыс хаттамалары арасындағы кедергілер жойылуда. Болашақта ақылды үйлер «Iron Man» фильміндегі Джарвис AI жүйесі сияқты шынымен де «ақылды» болады, ол пайдаланушыға әртүрлі құрылғыларды басқаруға, күнделікті істерді басқаруға көмектесіп қана қоймай, сонымен қатар өте есептеу қабілеті мен ойлау қабілетіне ие болады. Зиялы сtagе, адамдар саны жағынан да, сапасы жағынан да жақсырақ қызметтер алады.
1-тарау. IoT 7-ке кіріспе

8 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

2 IoT жобасының кіріспе және тәжірибесі тарауы
1-тарауда біз IoT архитектурасын, қабылдау және басқару деңгейінің, желілік деңгейдің, платформалық деңгейдің және қолданбалы деңгейдің рөлдері мен өзара байланыстарымен, сонымен қатар смарт үйдің дамуымен таныстырдық. Дегенмен, сурет салуды үйренгендей, теориялық білімді білу жеткіліксіз. Технологияны шынымен меңгеру үшін IoT жобаларын тәжірибеге енгізу үшін «қолымызды ластауымыз» керек. Сонымен қатар, жоба жаппай өндіріске көшкен кезде stage, желіге қосылу, конфигурация, IoT бұлттық платформасының өзара әрекеттесуі, микробағдарламаны басқару және жаңартулар, жаппай өндірісті басқару және қауіпсіздік конфигурациясы сияқты көбірек факторларды ескеру қажет. Сонымен, толық IoT жобасын әзірлеу кезінде не нәрсеге назар аударуымыз керек? 1-тарауда біз смарт үй IoT қолданбасының ең кең тараған сценарийлерінің бірі, ал смарт шамдар үйлерде, қонақүйлерде, спорт залдарында, ауруханаларда және т.б. пайдалануға болатын ең негізгі және практикалық құрылғылардың бірі екенін айттық. Бұл кітапта біз ақылды жарық жобасының құрылысын бастапқы нүкте ретінде аламыз, оның құрамдас бөліктері мен ерекшеліктерін түсіндіреміз және жобаны әзірлеу бойынша нұсқаулық береміз. Қосымша IoT қолданбаларын жасау үшін осы жағдайдан қорытынды жасай аласыз деп үміттенеміз.
2.1 IoT типтік жобаларына кіріспе
Әзірлеу тұрғысынан IoT жобаларының негізгі функционалдық модульдерін IoT құрылғыларының бағдарламалық және аппараттық құралдарын әзірлеуге, клиенттік қосымшаларды әзірлеуге және IoT бұлттық платформасын әзірлеуге жіктеуге болады. Бұл бөлімде әрі қарай сипатталатын негізгі функционалдық модульдерді нақтылау маңызды.
2.1.1 Жалпы IoT құрылғыларына арналған негізгі модульдер
IoT құрылғыларының бағдарламалық және аппараттық қамтамасыз етілуі келесі негізгі модульдерді қамтиды: Деректерді жинау
IoT архитектурасының төменгі қабаты ретінде қабылдау және басқару деңгейінің IoT құрылғылары деректерді жинауға және жұмысты басқаруға қол жеткізу үшін датчиктер мен құрылғыларды чиптері мен перифериялық құрылғылары арқылы қосады.
9

Тіркелгіні байланыстыру және бастапқы конфигурациялау IoT құрылғыларының көпшілігі үшін есептік жазбаны байланыстыру және бастапқы конфигурациялау бір операциялық процесте аяқталады, мысалы,ample, Wi-Fi желісін конфигурациялау арқылы құрылғыларды пайдаланушылармен қосу.
IoT бұлттық платформаларымен өзара әрекеттесу IoT құрылғыларын бақылау және басқару үшін бір-бірімен өзара әрекеттесу арқылы пәрмендер беру және есеп күйін беру үшін оларды IoT бұлттық платформаларына қосу қажет.
Құрылғыны басқару IoT бұлттық платформаларына қосылған кезде, құрылғылар бұлтпен байланысып, тіркелуі, байланыстырылуы немесе басқарылуы мүмкін. Пайдаланушылар IoT бұлттық платформалары немесе жергілікті байланыс протоколдары арқылы смартфон қолданбасында өнім күйін сұрап, басқа әрекеттерді орындай алады.
Микробағдарламаны жаңарту IoT құрылғылары да өндірушілердің қажеттіліктеріне негізделген микробағдарламаны жаңартуға қол жеткізе алады. Бұлт жіберген пәрмендерді алу арқылы микробағдарламаны жаңарту және нұсқаны басқару жүзеге асырылады. Бұл микробағдарламаны жаңарту мүмкіндігімен IoT құрылғыларының функцияларын үздіксіз жақсартуға, ақауларды түзетуге және пайдаланушы тәжірибесін жақсартуға болады.
2.1.2 Клиенттік қолданбалардың негізгі модульдері
Клиенттік қолданбалар (мысалы, смартфон қолданбалары) негізінен келесі негізгі модульдерді қамтиды:
Тіркелгі жүйесі және авторизация Ол тіркелгі мен құрылғы авторизациясын қолдайды.
Құрылғыны басқару Смартфон қолданбалары әдетте басқару функцияларымен жабдықталған. Пайдаланушылар IoT құрылғыларына оңай қосылып, оларды кез келген уақытта, кез келген жерде смартфон қолданбалары арқылы басқара алады. Нақты әлемдегі смарт үйде құрылғылар негізінен смартфон қолданбалары арқылы басқарылады, бұл құрылғыларды интеллектуалды басқаруға мүмкіндік беріп қана қоймайды, сонымен қатар жұмыс күшінің құнын үнемдейді. Сондықтан құрылғыны басқару құрылғы функциясы төлсипатын басқару, көріністі басқару, жоспарлау, қашықтан басқару пульті, құрылғыны байланыстыру және т.б. сияқты клиент қолданбалары үшін міндетті болып табылады. Ақылды үй пайдаланушылары сонымен қатар жарықтандыруды, тұрмыстық техниканы, кіреберісті басқара отырып, көріністерді жеке қажеттіліктерге сәйкес реттей алады. және т.б., үй өмірін ыңғайлы және ыңғайлы ету үшін. Олар кондиционердің уақытын реттей алады, оны қашықтан өшіре алады, есік құлпын ашқаннан кейін дәліз жарығын автоматты түрде қоса алады немесе бір түйме арқылы «театр» режиміне ауыса алады.
Notification Client қолданбалары IoT құрылғыларының нақты уақыттағы күйін жаңартады және құрылғылар дұрыс емес болған кезде ескертулер жібереді.
10 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

Сатудан кейінгі тұтынушыларға қызмет көрсету Смартфон қолданбалары IoT құрылғысының ақаулары мен техникалық операцияларға қатысты мәселелерді уақтылы шешу үшін өнімдерді сатудан кейінгі қызметтерді ұсына алады.
Таңдаулы функциялар Әртүрлі пайдаланушылардың қажеттіліктерін қанағаттандыру үшін Shake, NFC, GPS және т. шайқау арқылы белгілі бір құрылғы немесе көрініс үшін орындалатын пәрмендер.
2.1.3 Жалпы IoT бұлтты платформаларына кіріспе
IoT бұлттық платформасы – бұл құрылғыны басқару, деректер қауіпсіздігі байланысы және хабарландыруларды басқару сияқты функцияларды біріктіретін барлығы бір платформа. Мақсатты тобына және қол жетімділігіне сәйкес IoT бұлттық платформаларын жалпыға қолжетімді IoT бұлттық платформаларына (бұдан әрі – «жалпыға ортақ бұлт») және жеке IoT бұлттық платформаларына (бұдан әрі «жеке бұлт») бөлуге болады.
Қоғамдық бұлт әдетте кәсіпорындарға немесе жеке тұлғаларға арналған, платформа провайдерлері басқаратын және қолдайтын және Интернет арқылы ортақ пайдаланылатын IoT бұлттық платформаларын көрсетеді. Ол тегін немесе арзан болуы мүмкін және Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT және т. құнның жаңа тізбегі мен экожүйесін жасау үшін төменгі ағынды пайдаланушылар.
Жеке бұлт тек кәсіпорынның пайдалануына арналған, осылайша деректерді, қауіпсіздікті және қызмет сапасын жақсы бақылауға кепілдік береді. Оның қызметтері мен инфрақұрылымын кәсіпорындар бөлек ұстайды, қолдау көрсететін аппараттық және бағдарламалық қамтамасыз ету де нақты пайдаланушыларға арналған. Кәсіпорындар өз бизнесінің қажеттіліктерін қанағаттандыру үшін бұлттық қызметтерді теңшей алады. Қазіргі уақытта кейбір ақылды үй өндірушілері жеке IoT бұлттық платформаларына ие болды және олардың негізінде смарт үй қосымшаларын әзірледі.
Қоғамдық бұлт пен жеке бұлттың өз артықшылықтары барtages, бұл кейінірек түсіндіріледі.
Байланыс байланысына қол жеткізу үшін бизнес серверлерімен, IoT бұлттық платформаларымен және смартфон қолданбаларымен бірге құрылғы жағында кем дегенде ендірілген әзірлеуді аяқтау қажет. Осындай үлкен жобаға тап болған қоғамдық бұлт әдетте процесті жылдамдату үшін құрылғы және смартфон қолданбалары үшін бағдарламалық жасақтаманы әзірлеу жинақтарын ұсынады. Қоғамдық және жеке бұлт құрылғыларға кіруді, құрылғыны басқаруды, құрылғының көлеңкесін және пайдалану мен техникалық қызмет көрсетуді қамтитын қызметтерді ұсынады.
Құрылғыға қол жеткізу IoT бұлттық платформалары протоколдарды пайдалана отырып, құрылғыға кіруге арналған интерфейстерді ғана қамтамасыз етуі керек
2-тарау. IoT жобаларын енгізу және тәжірибе 11

мысалы, MQTT, CoAP, HTTPS және WebРозетка, сонымен қатар жалған және заңсыз құрылғыларды бұғаттау үшін құрылғының қауіпсіздік аутентификациясының функциясы бұзылу қаупін тиімді төмендетеді. Мұндай аутентификация әдетте әртүрлі механизмдерді қолдайды, сондықтан құрылғылар жаппай шығарылған кезде таңдалған аутентификация механизміне сәйкес құрылғы сертификатын алдын ала тағайындау және оны құрылғыларға жазу қажет.
Құрылғыны басқару IoT бұлттық платформалары ұсынатын құрылғыны басқару функциясы өндірушілерге нақты уақытта құрылғыларының белсендіру күйін және желілік күйін бақылауға көмектесіп қана қоймайды, сонымен қатар құрылғыларды қосу/жою, топтарды шығарып алу, қосу/жою, микробағдарламаны жаңарту сияқты опцияларға мүмкіндік береді. , және нұсқаны басқару.
Құрылғы көлеңкесі IoT бұлттық платформалары әрбір құрылғы үшін тұрақты виртуалды нұсқаны (құрылғы көлеңкесі) жасай алады, ал құрылғы көлеңкесінің күйін интернетті жіберу хаттамалары арқылы смартфон қолданбасы немесе басқа құрылғылар арқылы синхрондауға және алуға болады. Құрылғы көлеңкесі әрбір құрылғының соңғы хабарланған күйін және күтілетін күйін сақтайды, тіпті құрылғы желіден тыс болса да, API интерфейстерін шақыру арқылы күйді ала алады. Құрылғы көлеңкесі әрқашан қосулы API интерфейстерін қамтамасыз етеді, бұл құрылғылармен өзара әрекеттесетін смартфон қолданбаларын құруды жеңілдетеді.
Пайдалану және техникалық қызмет көрсету O&M функциясы үш аспектіні қамтиды: · IoT құрылғылары мен хабарландырулар туралы статистикалық ақпаратты көрсету. · Журналды басқару құрылғы әрекеті, жоғары/төмен хабар ағыны және хабар мазмұны туралы ақпаратты алуға мүмкіндік береді. · Құрылғыны жөндеу пәрменді жеткізуді, конфигурацияны жаңартуды және IoT бұлттық платформалары мен құрылғы хабарлары арасындағы өзара әрекетті тексеруді қолдайды.
2.2 Тәжірибе: Smart Light жобасы
Әрбір тарауда теориялық кіріспеден кейін практикалық тәжірибе алуға көмектесетін Smart Light жобасына қатысты тәжірибе бөлімін табасыз. Жоба Espressif компаниясының ESP32-C3 чипіне және ESP RainMaker IoT Cloud Platform платформасына негізделген және смарт-жарық өнімдеріндегі сымсыз модуль жабдығын, ESP32C3 негізіндегі смарт құрылғыларға арналған ендірілген бағдарламалық құралды, смартфон қолданбаларын және ESP RainMaker әрекеттестігін қамтиды.
Бастапқы код Жақсырақ үйрену және тәжірибені дамыту үшін осы кітаптағы жоба ашық дереккөз болып табылады. Бастапқы кодты https://github мекенжайындағы GitHub репозиторийінен жүктеп алуға болады. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

2.2.1 Жобаның құрылымы
Smart Light жобасы үш бөліктен тұрады: i. ESP32-C3 негізіндегі смарт жарық құрылғылары, IoT бұлттық платформаларымен өзара әрекеттесуге және LED l қосқышын, жарықтығын және түс температурасын басқаруға жауап береді.amp моншақтар. ii. Смарт-жарық өнімдерінің желілік конфигурациясына, сондай-ақ олардың күйін сұрауға және бақылауға жауапты смартфон қолданбалары (соның ішінде Android және iOS жүйелерінде жұмыс істейтін планшет қолданбалары).
iii. ESP RainMaker негізіндегі IoT бұлттық платформасы. Жеңілдету үшін біз осы кітапта IoT бұлттық платформасын және бизнес серверін тұтастай қарастырамыз. ESP RainMaker туралы мәліметтер 3-тарауда беріледі.
Smart Light жобасының құрылымы мен IoT архитектурасы арасындағы сәйкестік 2.1-суретте көрсетілген.
2.1-сурет. Ақылды жарық жобасының құрылымы
2.2.2 Жоба функциялары
Құрылымына қарай бөлінетін әрбір бөліктің қызметтері төмендегідей. Ақылды жарық құрылғылары
· Желі конфигурациясы және қосылу. · Жарық диодты PWM басқаруы, мысалы, қосқыш, жарықтық, түс температурасы және т.б. · Автоматтандыру немесе көріністі басқару, мысалы, уақыт қосқышы. · Flash-ті шифрлау және қауіпсіз жүктеу. · Микробағдарламаны жаңарту және нұсқаларды басқару.
2-тарау. IoT жобаларын енгізу және тәжірибе 13

Смартфон қолданбалары · Желі конфигурациясы және құрылғыны байланыстыру. · Ажыратқыш, жарықтық, түс температурасы және т.б. сияқты ақылды жарық өнімді басқару. · Автоматтандыру немесе көрініс параметрлері, мысалы, уақыт ауыстырғышы. · Жергілікті/қашықтан басқару. · Пайдаланушыны тіркеу, логин және т.б.
ESP RainMaker IoT бұлттық платформасы · IoT құрылғысына кіру мүмкіндігін қосу. · Смартфон қолданбаларына қолжетімді құрылғының API интерфейсін қамтамасыз ету. · Микробағдарламаны жаңарту және нұсқаларды басқару.
2.2.3 Аппараттық құралдарды дайындау
Жобаны іске асыруға қызығушылық танытсаңыз, сізге келесі жабдық қажет болады: смарт шамдар, смартфондар, Wi-Fi маршрутизаторлары және әзірлеу ортасының орнату талаптарына сәйкес келетін компьютер. Ақылды шамдар
Ақылды шамдар - бұл шамдардың жаңа түрі, олардың пішіні жалпы қыздыру шамымен бірдей. Смарт шам конденсаторды төмендететін реттелетін қуат көзінен, сымсыз модульден (ендірілген ESP32-C3 бар), жарық диодты контроллерден және RGB жарықдиодты матрицадан тұрады. Қуатқа қосылған кезде, 15 В тұрақты ток вольtage конденсаторды төмендету, диодты түзету және реттеуден кейін жарық диодты контроллер мен жарық диодты матрицаны қуатпен қамтамасыз етеді. Жарық диодты контроллер RGB жарықдиодты матрицасын жабық (шамдар қосулы) және ашық (шамдар өшірулі) арасында ауыстыра отырып, белгілі бір аралықтарда жоғары және төмен деңгейлерді автоматты түрде жібере алады, осылайша ол көгілдір, сары, жасыл, күлгін, көк, қызыл және ақ жарық. Сымсыз модуль Wi-Fi маршрутизаторына қосылуға, смарт шамдардың күйін қабылдауға және хабарлауға және жарық диодты басқару үшін пәрмендерді жіберуге жауап береді.
2.2-сурет. Симулирленген смарт шам
Ерте дамуда сtage, RGB LED l қосылған ESP32-C3DevKitM-1 тақтасын пайдаланып смарт шамды модельдеуге болады.amp моншақтар (2.2 суретті қараңыз). Бірақ керек
14 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

бұл смарт шамды жинаудың жалғыз жолы емес екенін ескеріңіз. Бұл кітаптағы жобаның аппараттық жасақтамасы тек сымсыз модульді (кіріктірілген ESP32-C3 бар) қамтиды, бірақ толық смарт жарық аппараттық дизайны емес. Сонымен қатар, Espressif сонымен қатар дыбыспен шамдарды басқаруға арналған ESP32-C3 негізіндегі ESP32C3-Lyra аудио әзірлеу тақтасын шығарады. Тақтада микрофондар мен динамиктерге арналған интерфейстер бар және жарықдиодты жолақтарды басқара алады. Оны өте арзан, жоғары өнімді аудио хабар таратушылар мен ырғақты жарық жолақтарын әзірлеу үшін пайдалануға болады. 2.3-суретте 32 жарықдиодты шамдар жолағымен байланыстырылған ESP3-C40Lyra тақтасы көрсетілген.
2.3-сурет. ESP32-C3-Lyra 40 жарықдиодты шамдар жолағымен байланысты
Смартфондар (Android/iOS) Smart Light жобасы смарт жарық өнімдерін орнатуға және басқаруға арналған смартфон қолданбасын әзірлеуді қамтиды.
Wi-Fi маршрутизаторлары Wi-Fi маршрутизаторлары сымды желі сигналдарын және ұялы желі сигналдарын желіге қосылу үшін компьютерлер, смартфондар, планшеттер және басқа сымсыз құрылғылар үшін сымсыз желі сигналдарына түрлендіреді. Мысалыample, Wi-Fi құрылғыларының сымсыз желісіне қол жеткізу үшін үйдегі кең жолақты желі тек Wi-Fi маршрутизаторына қосылуы керек. Wi-Fi маршрутизаторлары қолдайтын негізгі протокол стандарты IEEE 802.11n болып табылады, орташа TxRate 300 Мбит/с немесе максимум 600 Мбит/с. Олар IEEE 802.11b және IEEE 802.11g-мен кері үйлесімді. Espressif ұсынған ESP32-C3 чипі IEEE 802.11b/g/n қолдайды, сондықтан бір жолақты (2.4 ГГц) немесе қос жолақты (2.4 ГГц және 5 ГГц) Wi-Fi маршрутизаторын таңдауға болады.
Компьютер (Linux/macOS/Windows) әзірлеу ортасы 4-тарауда енгізіледі. 2-тарау. IoT жобаларының кіріспесі және тәжірибесі 15

2.2.4 Әзірлеу процесі
2.4-сурет. Smart Light жобасын әзірлеу қадамдары
Аппараттық дизайн IoT құрылғыларының аппараттық дизайны IoT жобасы үшін маңызды. Толық смарт жарық жобасы al шығаруға арналғанamp электр желісімен жұмыс істейді. Әртүрлі өндірушілер л шығарадыamps әртүрлі стильдер мен драйвер түрлері бар, бірақ олардың сымсыз модульдері әдетте бірдей функцияға ие. Smart Ligh жобасының әзірлеу процесін жеңілдету үшін бұл кітап тек сымсыз модульдердің аппараттық дизайны мен бағдарламалық жасақтамасын әзірлеуді қамтиды.
IoT бұлттық платформасының конфигурациясы IoT бұлттық платформаларын пайдалану үшін өнімдерді жасау, құрылғылар жасау, құрылғы сипаттарын орнату және т.б. сияқты сервердегі жобаларды конфигурациялау қажет.
IoT құрылғыларына арналған ендірілген бағдарламалық жасақтаманы әзірлеу ESP-IDF, Espressif құрылғы жағындағы SDK көмегімен күтілетін функцияларды, соның ішінде IoT бұлттық платформаларына қосылуды, жарық диодты драйверлерді әзірлеуді және микробағдарламаны жаңартуды жүзеге асырыңыз.
Смартфон қолданбасын жасау Пайдаланушыны тіркеу және кіру, құрылғыны басқару және басқа функцияларды жүзеге асыру үшін Android және iOS жүйелеріне арналған смартфон қолданбаларын жасаңыз.
IoT құрылғысын оңтайландыру IoT құрылғысының функцияларын негізгі әзірлеу аяқталғаннан кейін қуатты оңтайландыру сияқты оңтайландыру тапсырмаларына жүгінуге болады.
Жаппай өндіріс сынағы Жабдықтың жұмысын тексеру, қартаю сынағы, РЖ сынағы және т.б. сияқты тиісті стандарттарға сәйкес жаппай өндіріс сынақтарын орындаңыз.
Жоғарыда аталған қадамдарға қарамастан, Smart Light жобасы міндетті түрде мұндай процедураға бағынбайды, өйткені әртүрлі тапсырмаларды бір уақытта орындауға болады. Мысалыample, ендірілген бағдарламалық жасақтама мен смартфон қолданбаларын параллель әзірлеуге болады. IoT құрылғысын оңтайландыру және жаппай өндірісті тестілеу сияқты кейбір қадамдарды қайталау қажет болуы мүмкін.
16 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

2.3 Түйіндеме
Бұл тарауда біз алдымен IoT жобасының негізгі құрамдас бөліктері мен функционалдық модульдерін түсіндірдік, содан кейін оның құрылымына, функцияларына, аппараттық құралдарды дайындауға және әзірлеу процесіне сілтеме жасай отырып, тәжірибе үшін Smart Light корпусын таныстырдық. Оқырмандар тәжірибеден қорытынды жасай алады және болашақта IoT жобаларын ең аз қателермен жүзеге асыруға сенімді бола алады.
2-тарау. IoT жобаларын енгізу және тәжірибе 17

18 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

3-тарау

Кіріспе

дейін

ESP

RainMaker

Интернет заттары (IoT) адамдардың өмір сүру тәсілін өзгертуге шексіз мүмкіндіктер ұсынады, дегенмен IoT инженериясының дамуы қиындықтарға толы. Жалпыға қолжетімді бұлттармен терминал өндірушілері келесі шешімдер арқылы өнім функционалдығын жүзеге асыра алады:
Шешім жеткізушілерінің бұлттық платформаларына негізделген Осылайша, терминал өндірушілері тек өнімнің аппараттық құралын жобалауы керек, содан кейін жабдықты берілген байланыс модулі арқылы бұлтқа қосып, нұсқауларға сәйкес өнім функцияларын конфигурациялауы керек. Бұл тиімді тәсіл, өйткені ол серверлік және қолданбалы әзірлеуге және операциялар мен техникалық қызмет көрсетуге (O&M) қажеттілікті жояды. Бұл терминал өндірушілеріне бұлтты енгізуді қарастырмай-ақ аппараттық құралдарды жобалауға назар аударуға мүмкіндік береді. Дегенмен, мұндай шешімдер (мысалы, құрылғының микробағдарламасы және қолданбасы) әдетте ашық бастапқы коды болып табылмайды, сондықтан өнім функциялары провайдердің бұлттық платформасымен шектеледі, оны теңшеу мүмкін емес. Сонымен қатар, пайдаланушы мен құрылғы деректері де бұлттық платформаға жатады.
Бұлттық өнімдерге негізделген Бұл шешімде аппараттық дизайнды аяқтағаннан кейін терминал өндірушілері жалпыға қолжетімді бұлт ұсынатын бір немесе бірнеше бұлттық өнімдерді пайдаланып бұлттық функцияларды жүзеге асырып қана қоймай, сонымен қатар аппараттық құралды бұлтпен байланыстыруы керек. Мысалыample, Amazon желісіне қосылу үшін Web Қызметтер (AWS), терминал өндірушілері құрылғыға кіруді, қашықтан басқаруды, деректерді сақтауды, пайдаланушыны басқаруды және басқа да негізгі функцияларды қосу үшін Amazon API Gateway, AWS IoT Core және AWS Lambda сияқты AWS өнімдерін пайдалануы керек. Ол терминал өндірушілерінен терең түсінігі мен бай тәжірибесі бар бұлтты өнімдерді икемді түрде пайдалануды және конфигурациялауды сұрап қана қоймайды, сонымен қатар олардан бастапқы және кейінгі кезеңдерге арналған құрылыс және техникалық қызмет көрсету құнын ескеруді талап етеді.tages Бұл компанияның энергиясы мен ресурстарына үлкен қиындықтар туғызады.
Қоғамдық бұлттармен салыстырғанда, жеке бұлттар әдетте нақты жобалар мен өнімдер үшін құрастырылады. Жеке бұлтты әзірлеушілерге хаттамаларды жобалауда және бизнес логикасын жүзеге асыруда еркіндіктің ең жоғары деңгейі беріледі. Терминал өндірушілері өнімдер мен дизайн схемаларын өз қалауы бойынша жасай алады және пайдаланушы деректерін оңай біріктіріп, кеңейте алады. Қоғамдық бұлттың жоғары қауіпсіздігін, ауқымдылығын және сенімділігін адванмен біріктіруtagжеке бұлттың es, Espressif ESP іске қосты
19

RainMaker, Amazon бұлтына негізделген терең интеграцияланған жеке бұлттық шешім. Пайдаланушылар ESP RainMaker қолданбасын қолдана алады және AWS тіркелгісі арқылы жеке бұлтты құра алады.
3.1 ESP RainMaker дегеніміз не?
ESP RainMaker – көптеген жетілген AWS өнімдерімен жасалған толық AIoT платформасы. Ол құрылғының бұлтына қол жеткізу, құрылғыны жаңарту, серверді басқару, үшінші тараптың кіруі, дауысты біріктіру және пайдаланушыны басқару сияқты жаппай өндіріске қажетті әртүрлі қызметтерді ұсынады. AWS ұсынған серверсіз қолданбалар репозиторийін (SAR) пайдалану арқылы терминал өндірушілері уақытты үнемдейтін және оңай жұмыс істейтін ESP RainMaker бағдарламасын AWS тіркелгілеріне жылдам орналастыра алады. Espressif басқаратын және қолдайтын, ESP RainMaker пайдаланатын SAR әзірлеушілерге бұлтты техникалық қызмет көрсету шығындарын азайтуға және AIoT өнімдерін әзірлеуді жеделдетуге көмектеседі, осылайша қауіпсіз, тұрақты және теңшелетін AIoT шешімдерін жасайды. 3.1 суретте ESP RainMaker архитектурасы көрсетілген.
3.1-сурет. ESP RainMaker архитектурасы
Espressif ұсынған ESP RainMaker қоғамдық сервері шешімді бағалау үшін барлық ESP әуесқойлары, жасаушылар және оқытушылар үшін тегін. Әзірлеушілер Apple, Google немесе GitHub тіркелгілері арқылы жүйеге кіріп, IoT қолданбасының прототиптерін тез құрастыра алады. Қоғамдық сервер Alexa және Google Home біріктіреді және Alexa Skill және Google Actions қолдау көрсететін дауыспен басқару қызметтерін ұсынады. Оның семантикалық тану функциясын үшінші тараптар да қолданады. RainMaker IoT құрылғылары тек нақты әрекеттерге жауап береді. Қолдау көрсетілетін дауыстық пәрмендердің толық тізімін алу үшін үшінші тарап платформаларын тексеріңіз. Сонымен қатар, Espressif пайдаланушыларға смартфондар арқылы өнімдерді басқаруға арналған жалпыға қолжетімді RainMaker қолданбасын ұсынады. 20 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

3.2 ESP RainMaker енгізу
3.2-суретте көрсетілгендей, ESP RainMaker төрт бөліктен тұрады: · RainMaker құрылғыларына сертификаттарды динамикалық түрде алуға мүмкіндік беретін шағым қызметі. · Хабарларды сүзу, пайдаланушыны басқару, деректерді сақтау және үшінші тарап интеграциясы сияқты қызметтерді ұсынатын RainMaker Cloud (бұлтты сервер ретінде де белгілі). · RainMaker агенті, RainMaker құрылғыларына RainMaker бұлтына қосылуға мүмкіндік береді. · RainMaker клиенті (RainMaker қолданбасы немесе CLI сценарийлері), дайындау, пайдаланушыны жасау, құрылғыларды біріктіру және басқару және т.б.
3.2-сурет. ESP RainMaker құрылымы
ESP RainMaker өнімді әзірлеуге және жаппай өндіруге арналған құралдардың толық жинағын ұсынады, соның ішінде: RainMaker SDK
RainMaker SDK ESP-IDF негізінде жасалған және микробағдарламаны әзірлеу үшін құрылғы жағындағы агенттің бастапқы кодын және қатысты C API интерфейстерін қамтамасыз етеді. Әзірлеушілер тек қолданба логикасын жазып, қалғанын RainMaker құрылымына қалдыруы керек. C API интерфейстері туралы қосымша ақпарат алу үшін https://bookc3.espressif.com/rm/c-api-reference сайтына кіріңіз. RainMaker қолданбасы RainMaker қолданбасының жалпыға қолжетімді нұсқасы әзірлеушілерге құрылғыны дайындауды аяқтауға және құрылғылардың күйін бақылауға және сұрауға мүмкіндік береді (мысалы, смарт жарықтандыру өнімдері). Ол iOS және Android қолданбаларының дүкендерінде қолжетімді. Қосымша мәліметтер алу үшін 10-тарауды қараңыз. REST API интерфейстері REST API пайдаланушыларға RainMaker қолданбасына ұқсас өз қолданбаларын жасауға көмектеседі. Қосымша ақпарат алу үшін https://swaggerapis.rainmaker.espressif.com/ сайтына кіріңіз.
3-тарау. ESP RainMaker 21 бағдарламасына кіріспе

Python API интерфейстері RainMaker SDK бірге жеткізілетін Python негізіндегі CLI смартфон мүмкіндіктеріне ұқсас барлық функцияларды жүзеге асыру үшін қамтамасыз етілген. Python API интерфейстері туралы қосымша ақпарат алу үшін https://bookc3.espressif.com/rm/python-api-reference сайтына кіріңіз.
Әкімші CLI Әкімші CLI қол жеткізу деңгейі жоғары, құрылғы сертификаттарын жаппай жасау үшін ESP RainMaker жеке орналастыруы үшін қамтамасыз етілген.
3.2.1 Талап қою қызметі
RainMaker құрылғылары мен бұлттық сервер арасындағы барлық байланыс MQTT+TLS арқылы жүзеге асырылады. ESP RainMaker контекстінде «Шағым беру» құрылғылар бұлт серверіне қосылу үшін Талап қою қызметінен сертификаттар алатын процесс болып табылады. Шағым беру қызметі тек жалпыға қолжетімді RainMaker қызметіне ғана қолданылатынын ескеріңіз, ал жеке қолдану үшін құрылғы сертификаттары Admin CLI арқылы жаппай жасалуы керек. ESP RainMaker Талап қою қызметінің үш түрін қолдайды: Өзін-өзі талап ету
Құрылғының өзі Интернетке қосылғаннан кейін eFuse ішінде алдын ала бағдарламаланған құпия кілт арқылы сертификаттарды алады. Хостқа негізделген шағымдар Сертификаттар RainMaker тіркелгісі бар әзірлеу хостынан алынады. Көмекші талап қою Сертификаттар провизия жасау кезінде смартфон қолданбалары арқылы алынады.
3.2.2 RainMaker агенті
3.3-сурет. RainMaker SDK құрылымы RainMaker агентінің негізгі қызметі қосылымды қамтамасыз ету және қолданба деңгейіне жоғары/төмен сілтеме бұлт деректерін өңдеуге көмектесу болып табылады. Ол RainMaker SDK 22 ESP32-C3 сымсыз шытырман оқиғасы арқылы жасалған: IoT бойынша кешенді нұсқаулық

және RTOS, NVS және MQTT сияқты ESP-IDF құрамдастарын пайдаланып, дәлелденген ESP-IDF негізіне негізделген. 3.3 суретте RainMaker SDK құрылымы көрсетілген.
RainMaker SDK екі негізгі мүмкіндікті қамтиды.
Байланыс
мен. Құрылғы сертификаттарын алу үшін Claiming Service қызметімен ынтымақтасу.
ii. Қашықтан қосылымды қамтамасыз ету және қашықтан басқаруды, хабарды есепке алуды, пайдаланушыны басқаруды, құрылғыны басқаруды және т.б. жүзеге асыру үшін қауіпсіз MQTT протоколын пайдаланып бұлттық серверге қосылу. Ол әдепкі бойынша ESP-IDF ішіндегі MQTT құрамдасын пайдаланады және басқалармен интерфейс үшін абстракциялық деңгейді қамтамасыз етеді. протокол стектері.
iii. Wi-Fi қосылымы мен қамтамасыз ету үшін Wi-Fi қамтамасыз ету компонентін, OTA жаңартулары үшін esp https ota компонентін және жергілікті құрылғыны табу және қосу үшін жергілікті ctrl компонентін қамтамасыз ету. Барлық осы мақсаттарға қарапайым конфигурация арқылы қол жеткізуге болады.
Мәліметтерді өңдеу
мен. Claiming Service шығарған құрылғы сертификаттарын және RainMaker іске қосу кезінде қажетті деректерді әдепкі бойынша nvs flash компоненті қамтамасыз ететін интерфейсті пайдалану және тікелей пайдалану үшін әзірлеушілерге API қамтамасыз ету.
ii. Бұлт деректерін өңдеу үшін кері шақыру механизмін пайдалану және әзірлеушілер оңай өңдеу үшін қолданба деңгейіне деректерді автоматты түрде бұғаттаудан шығару. Мысалыample, RainMaker SDK IoT құрылғыларын сипаттау және уақыт, кері санақ және дауыспен басқару сияқты функцияларды жүзеге асыру үшін TSL үлгілерін анықтау үшін қажет TSL (Нәрсе спецификация тілі) деректерін орнату үшін бай интерфейстерді қамтамасыз етеді. Уақыт сияқты негізгі интерактивті мүмкіндіктер үшін RainMaker SDK қажет кезде жай ғана қосуға болатын әзірлеусіз шешімді ұсынады. Содан кейін, RainMaker агенті деректерді тікелей өңдейді, оны байланысты MQTT тақырыбы арқылы бұлтқа жібереді және кері шақыру механизмі арқылы бұлттық сервердегі деректер өзгерістерін қайтарады.
3.2.3 Cloud Backend
Бұлт сервері AWS Serverless Computing негізінде құрастырылған және AWS Cognito (жеке куәлікті басқару жүйесі), Amazon API Gateway, AWS Lambda (серверсіз есептеу қызметі), Amazon DynamoDB (NoSQL дерекқоры), AWS IoT Core (MQTT қатынасын қамтамасыз ететін IoT қол жеткізу ядросы) арқылы қол жеткізіледі. және ережелерді сүзу), Amazon Simple Email Service (SES қарапайым пошта қызметі), Amazon CloudFront (жылдам жеткізу желісі), Amazon Simple Queue Service (SQS хабарлама кезегі) және Amazon S3 (шелек сақтау қызметі). Ол ауқымдылық пен қауіпсіздікті оңтайландыруға бағытталған. ESP RainMaker көмегімен әзірлеушілер бұлтта код жазбай-ақ құрылғыларды басқара алады. Құрылғылар хабарлаған хабарлар мөлдір түрде жіберіледі
3-тарау. ESP RainMaker 23 бағдарламасына кіріспе

қолданба клиенттері немесе басқа үшінші тарап қызметтері. 3.1-кестеде бұлттық серверде пайдаланылатын AWS бұлттық өнімдері мен функциялары, әзірлену үстіндегі көбірек өнімдер мен мүмкіндіктер көрсетілген.
3.1-кесте. AWS бұлттық өнімдері мен бұлтты сервері пайдаланатын функциялар

RainMaker пайдаланатын AWS бұлттық өнімі

Функция

AWS Cognito

Пайдаланушы тіркелгі деректерін басқару және үшінші тарап кірулеріне қолдау көрсету

AWS Lambda

Бұлтты сервердің негізгі бизнес логикасын енгізу

Amazon Timestream Уақыт сериясының деректерін сақтау

Amazon DynamoDB тұтынушылардың жеке ақпаратын сақтау

AWS IoT Core

MQTT байланысын қолдау

Amazon SES

Электрондық поштаны жіберу қызметтерін ұсыну

Amazon CloudFront серверді басқаруды жеделдету webсайтқа кіру

Amazon SQS

AWS IoT Core хабарларын қайта бағыттау

3.2.4 RainMaker клиенті
App және CLI сияқты RainMaker клиенттері REST API интерфейстері арқылы бұлттық сервермен байланысады. REST API интерфейстері туралы толық ақпаратты және нұсқауларды Espressif ұсынған Swagger құжаттамасынан табуға болады. RainMaker мобильді қосымшасының клиенті iOS және Android жүйелері үшін қол жетімді. Ол құрылғыны қамтамасыз етуге, басқаруға және ортақ пайдалануға, сондай-ақ кері санақ тапсырмаларын жасауға және қосуға және үшінші тарап платформаларына қосылуға мүмкіндік береді. Ол құрылғылар хабарлаған конфигурацияға сәйкес UI мен белгішелерді автоматты түрде жүктей алады және құрылғының TSL-ін толығымен көрсете алады.
Мысалыample, егер смарт шам RainMaker SDK ұсынатын ескі құрылғыға салынған болсаamples, шам шамының белгішесі мен пайдаланушы интерфейсі қамтамасыз ету аяқталған кезде автоматты түрде жүктеледі. Пайдаланушылар интерфейс арқылы жарықтың түсі мен жарықтығын өзгерте алады және Alexa Smart Home Skill немесе Google Smart Home әрекеттерін ESP RainMaker тіркелгілеріне байланыстыру арқылы үшінші тарап бақылауына қол жеткізе алады. 3.4-суретте белгіше және UI эксampAlexa, Google Home және ESP RainMaker қолданбасында сәйкесінше шам шамының шамдары.

24 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

(а) Мысалыample – Alexa

(b) Мысample – Google Home

(c) Мысалыample – ESP RainMaker
Сурет 3.4. МысалыampAlexa, Google Home және ESP RainMaker қолданбасындағы шам шамының белгішесі мен UI интерфейсі
3.3 Тәжірибе: ESP RainMaker көмегімен әзірлеуге арналған негізгі нүктелер
Құрылғы драйверінің қабаты аяқталғаннан кейін әзірлеушілер RainMaker SDK ұсынатын API интерфейстерін пайдаланып TSL үлгілерін жасауға және төмен байланыс деректерін өңдеуге және өнім анықтамасы мен талаптарына негізделген ESP RainMaker негізгі қызметтерін қосуға болады.
3-тарау. ESP RainMaker 25 бағдарламасына кіріспе

Осы кітаптың 9.4-бөлімі RainMaker жүйесінде жарықдиодты смарт шамды енгізуді түсіндіреді. Түзету кезінде әзірлеушілер смарт шаммен байланысу үшін RainMaker SDK ішіндегі CLI құралдарын пайдалана алады (немесе Swagger-тен REST API-ге қоңырау шалыңыз).
10-тарауда смартфон қосымшаларын әзірлеуде REST API интерфейстерін пайдалану егжей-тегжейлі қарастырылады. Жарықдиодты смарт шамдардың OTA жаңартулары 11-тарауда қарастырылады. Егер әзірлеушілер ESP Insights қашықтан бақылауды қосқан болса, ESP RainMaker басқару сервері ESP Insights деректерін көрсетеді. Толық мәліметтер 15-тарауда беріледі.
ESP RainMaker жеке орналастыруды қолдайды, ол жалпы RainMaker серверінен келесі жолдармен ерекшеленеді:
Шағым жасау қызметі Жеке орналастыруларда куәліктерді жасау үшін, талап қоюдың орнына RainMaker әкімші CLI пайдалану қажет. Қоғамдық серверде әзірлеушілерге микробағдарламаны жаңартуды жүзеге асыру үшін әкімші құқықтары берілуі керек, бірақ коммерциялық орналастыруларда бұл қажет емес. Сондықтан, жеке аутентификация қызметі де өзін-өзі талап ету үшін, не хост басқаратын немесе көмекші шағымдар үшін әкімші құқықтарын қамтамасыз ете алмайды.
Телефон қолданбалары Жеке орналастыруларда тіркелгі жүйелерінің өзара әрекеттеспеуіне көз жеткізу үшін қолданбаларды конфигурациялау және бөлек құрастыру қажет.
Үшінші тарап логиндері және дауысты біріктіру. Үшінші тараптың кіруін, сондай-ақ Alexa Skill және Google Voice Assistant интеграциясын қосу үшін әзірлеушілер Google және Apple Developer тіркелгілері арқылы бөлек конфигурациялауы керек.
КЕҢЕСТЕР Бұлтты орналастыру туралы мәліметтер алу үшін https://customer.rainmaker.espressif сайтына кіріңіз. com. Микробағдарлама тұрғысынан жалпы серверден жеке серверге көшіру тек құрылғы сертификаттарын ауыстыруды талап етеді, бұл тасымалдау тиімділігін айтарлықтай жақсартады және тасымалдау мен қайталама жөндеу құнын азайтады.
3.4 ESP RainMaker мүмкіндіктері
ESP RainMaker мүмкіндіктері негізінен үш аспектіге бағытталған – пайдаланушыны басқару, соңғы пайдаланушылар және әкімшілер. Басқаша көрсетілмесе, барлық мүмкіндіктерге жалпы және жеке серверлерде қолдау көрсетіледі.
3.4.1 Пайдаланушыны басқару
Пайдаланушыны басқару мүмкіндіктері соңғы пайдаланушыларға тіркелуге, жүйеге кіруге, құпия сөздерді өзгертуге, құпия сөздерді алуға және т.б. мүмкіндік береді.
26 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

Тіркелу және кіру RainMaker қолдайтын тіркеу және кіру әдістеріне мыналар кіреді: · Электрондық пошта идентификаторы + Құпия сөз · Телефон нөмірі + Құпиясөз · Google тіркелгісі · Apple тіркелгісі · GitHub тіркелгісі (тек қоғамдық сервер) · Amazon тіркелгісі (тек жеке сервер)
ЕСКЕРТПЕ Google/Amazon көмегімен тіркелу пайдаланушының электрондық пошта мекенжайын RainMaker-пен бөліседі. Apple арқылы тіркелу Apple компаниясы пайдаланушыға арнайы RainMaker қызметі үшін тағайындайтын жалған мекенжайды бөліседі. Google, Apple немесе Amazon есептік жазбасымен алғаш рет кірген пайдаланушылар үшін RainMaker тіркелгісі автоматты түрде жасалады.
Құпия сөзді өзгерту Электрондық пошта идентификаторы/Телефон нөмірі негізіндегі кірулер үшін ғана жарамды. Құпия сөз өзгертілгеннен кейін барлық басқа белсенді сеанстар жүйеден шығады. AWS Cognito тәртібіне сәйкес жүйеден шыққан сеанстар 1 сағатқа дейін белсенді күйінде қалуы мүмкін.
Құпия сөзді шығарып алу Электрондық пошта идентификаторы/Телефон нөмірі негізіндегі кірулер үшін ғана жарамды.
3.4.2 Соңғы пайдаланушы мүмкіндіктері
Соңғы пайдаланушылар үшін ашық мүмкіндіктерге жергілікті және қашықтан басқару және бақылау, жоспарлау, құрылғыларды топтау, құрылғыны ортақ пайдалану, push хабарландырулары және үшінші тарап интеграциялары кіреді.
Қашықтан басқару және бақылау · Бір немесе барлық құрылғылар үшін конфигурацияны, параметр мәндерін және қосылым күйін сұрау. · Бір немесе бірнеше құрылғылар үшін параметрлерді орнату.
Жергілікті басқару және бақылау Жергілікті басқару үшін ұялы телефон мен құрылғы бір желіге қосылуы керек.
Жоспарлау · Пайдаланушылар белгілі бір уақытта белгілі бір әрекеттерді алдын ала орнатады. · Кестені орындау кезінде құрылғы үшін Интернет байланысы қажет емес. · Бір немесе бірнеше құрылғылар үшін бір рет немесе қайталау (күндерді көрсету арқылы).
Құрылғыларды топтастыру Көп деңгейлі дерексіз топтастыруды қолдайды Топтық метадеректер үй бөлмесінің құрылымын жасау үшін пайдаланылуы мүмкін.
3-тарау. ESP RainMaker 27 бағдарламасына кіріспе

Құрылғыны ортақ пайдалану Бір немесе бірнеше құрылғыны бір немесе бірнеше пайдаланушылармен бөлісуге болады.
Push хабарландырулары Соңғы пайдаланушылар қосылған/жойылған жаңа құрылғылар · Бұлтқа қосылған құрылғы · Құрылғы бұлттан ажыратылған · Құрылғыны ортақ пайдалану сұраулары жасалған/қабылданған/қабылданбаған · Құрылғылар хабарлаған ескерту хабарлары сияқты оқиғалар үшін push хабарландыруларын алады.
RainMaker құрылғыларын, соның ішінде шамдарды, ажыратқыштарды, розеткаларды, желдеткіштерді және температура сенсорларын басқару үшін Alexa және Google Voice Assistant үшінші тарап интеграцияларына қолдау көрсетіледі.
3.4.3 Әкімші мүмкіндіктері
Әкімші мүмкіндіктері әкімшілерге құрылғыны тіркеуді, құрылғыларды топтастыруды және OTA жаңартуларын жүзеге асыруға мүмкіндік береді view статистика және ESP Insights деректері.
Құрылғыны тіркеу Құрылғы сертификаттарын жасаңыз және Admin CLI (тек жеке сервер) арқылы тіркеліңіз.
Құрылғыларды топтау Құрылғы ақпараты негізінде дерексіз немесе құрылымдық топтар жасаңыз (тек жеке сервер).
Over-the-Air (OTA) жаңартулары Нұсқа мен үлгі негізінде микробағдарламаны бір немесе бірнеше құрылғыға немесе топқа жүктеп салыңыз.
View статистика Viewмүмкін болатын статистика мыналарды қамтиды: · Құрылғыны тіркеу (әкімші тіркеген куәліктер) · Құрылғыны белсендіру (құрылғы бірінші рет қосылған) · Пайдаланушы тіркелгілері · Пайдаланушы-құрылғы байланысы
View ESP Insights деректері Viewқабілетті ESP Insights деректеріне мыналар кіреді: · Қателер, ескертулер және реттелетін журналдар · Бұзылу есептері және талдау · Қайта жүктеу себептері · Жадты пайдалану, RSSI және т.б. сияқты көрсеткіштер · Теңшелетін көрсеткіштер мен айнымалылар
28 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

3.5 Түйіндеме
Бұл тарауда біз жалпыға қолжетімді RainMaker орналастыруы мен жеке орналастыру арасындағы кейбір негізгі айырмашылықтарды таныстырдық. Espressif іске қосқан жеке ESP RainMaker шешімі өте сенімді және кеңейтілген. Барлық ESP32 сериялы чиптері AWS жүйесіне қосылған және бейімделген, бұл шығындарды айтарлықтай төмендетеді. Әзірлеушілер AWS бұлттық өнімдері туралы білмей-ақ прототипті тексеруге назар аудара алады. Біз сондай-ақ ESP RainMaker-тің іске асырылуын және мүмкіндіктерін және платформаны пайдалану арқылы әзірлеудің кейбір негізгі сәттерін түсіндірдік.
Android жүйесіне арналған ESP RainMaker жүктеп алу үшін сканерлеңіз iOS жүйесіне арналған ESP RainMaker жүктеп алу үшін сканерлеңіз
3-тарау. ESP RainMaker 29 бағдарламасына кіріспе

30 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

4-тарау Орнату Даму ортасы
Бұл тарауда ESP-IDF, ESP32-C3 үшін бағдарламалық құралды әзірлеудің ресми негізіне назар аударылады. Біз әртүрлі операциялық жүйелерде ортаны қалай орнату керектігін түсіндіреміз және ESP-IDF жоба құрылымы мен құрастыру жүйесін, сондай-ақ қатысты әзірлеу құралдарын пайдалануды таныстырамыз. Содан кейін біз бұрынғы файлды құрастыру және іске қосу процесін ұсынамызample жоба, әр секундта шығыс журналының егжей-тегжейлі түсіндірмесін ұсына отырыпtage.
4.1 ESP-IDF аяқталдыview
ESP-IDF (Espressif IoT Development Framework) - Espressif Technology ұсынған IoT дамытудың бір терезе жүйесі. Ол C/C++ тілін негізгі әзірлеу тілі ретінде пайдаланады және Linux, Mac және Windows сияқты негізгі операциялық жүйелерде кросс-компиляцияны қолдайды. бұрынғыampОсы кітапқа енгізілген бағдарламалар келесі мүмкіндіктерді ұсынатын ESP-IDF көмегімен әзірленген: · SoC жүйелік деңгейдегі драйверлер. ESP-IDF ESP32, ESP32-S2, ESP32-C3,
және басқа чиптер. Бұл драйверлер перифериялық төмен деңгейлі (LL) кітапхананы, аппараттық абстракциялық деңгейдің (HAL) кітапханасын, RTOS қолдауын және жоғарғы деңгейдегі драйвер бағдарламалық құралын және т.б. қамтиды. · Маңызды құрамдас бөліктер. ESP-IDF IoT әзірлеуге қажетті негізгі құрамдастарды қамтиды. Бұған HTTP және MQTT сияқты бірнеше желілік протокол стектері, динамикалық жиілік модуляциясы бар қуатты басқару құрылымы және Flash шифрлау және қауіпсіз жүктеу сияқты мүмкіндіктер, т.б. кіреді. · Әзірлеу және өндіру құралдары. ESP-IDF CMake негізіндегі құрылыс жүйесі, GCC негізіндегі кросс-компиляция құралдары тізбегі және J сияқты әзірлеу және жаппай өндіру кезінде құру, жарқ ету және жөндеу үшін жиі қолданылатын құралдарды қамтамасыз етеді (4.1 суретті қараңыз).TAG OpenOCD негізіндегі жөндеу құралы және т. Пайдаланушылар ашық бастапқы лицензия шарттарын сақтай отырып, жеке немесе коммерциялық бағдарламалық құралды шектеусіз әзірлей алады. Сонымен қатар, пайдаланушыларға бастапқы кодқа енгізілген кез келген өзгертулерді ашық бастапқы кодқа енгізу міндеттемесінсіз тұрақты патенттік лицензиялар тегін беріледі.
31

4.1-сурет.

Құру, жыпылықтау және жөндеу-

әзірлеуге және жаппай өндіруге арналған құралдар

4.1.1 ESP-IDF нұсқалары
ESP-IDF коды GitHub сайтында ашық бастапқы жоба ретінде орналастырылған. Қазіргі уақытта үш негізгі нұсқа бар: v3, v4 және v5. Әрбір негізгі нұсқада әдетте v4.2, v4.3 және т.б. сияқты әртүрлі субверсиялар бар. Espressif Systems әрбір шығарылған қосалқы нұсқа үшін қателерді түзету және қауіпсіздік патчтары үшін 30 айлық қолдауды қамтамасыз етеді. Сондықтан, v4.3.1, v4.2.2, т.б. сияқты өзгертулердің түзетулері де жүйелі түрде шығарылады. 4.1-кесте Espressif чиптеріне арналған әртүрлі ESP-IDF нұсқаларының қолдау күйін көрсетеді, олардың алдын ала нұсқада бар-жоғын көрсетеді.view stage (алдын ала қолдауды ұсынадыview белгілі бір мүмкіндіктер немесе құжаттама болмауы мүмкін) немесе ресми түрде қолдау көрсетілетін нұсқалар.

4.1-кесте. Espressif чиптері үшін әртүрлі ESP-IDF нұсқаларының күйін қолдау

ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2 сериялары

v4.1 қолдау көрсетеді

v4.2 қолдауына қолдау көрсетіледі

v4.3 қолдау көрсетіледі қолдау көрсетіледі

v4.4 қолдау көрсетіледі қолдау көрсетіледі
алдын алаview

v5.0 нұсқасына қолдау көрсетіледіview

32 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

Негізгі нұсқалардың итерациясы жиі құрылымдық құрылымды түзетуді және компиляция жүйесін жаңартуды қамтиды. Мысалыample, v3.*-ден v4.*-ге негізгі өзгеріс құрастыру жүйесінің Make-тен CMake-ге біртіндеп көшуі болды. Екінші жағынан, кішігірім нұсқаларды қайталау әдетте жаңа мүмкіндіктерді қосуды немесе жаңа чиптерді қолдауды талап етеді.
Тұрақты нұсқалар мен GitHub филиалдары арасындағы байланысты ажырату және түсіну маңызды. v*.* немесе v*.*.* ретінде белгіленген нұсқалар Espressif арқылы толық ішкі сынақтан өткен тұрақты нұсқаларды білдіреді. Бекітілгеннен кейін бірдей нұсқаға арналған код, құралдар тізбегі және шығарылым құжаттары өзгеріссіз қалады. Дегенмен, GitHub филиалдары (мысалы, шығарылым/v4.3 тармағы) жиі күнделікті негізде жиі кодтаудан өтеді. Сондықтан бір тармақтың астындағы екі код үзінділері әртүрлі болуы мүмкін, бұл әзірлеушілерге өз кодын сәйкесінше тез арада жаңартуды қажет етеді.
4.1.2 ESP-IDF Git жұмыс процесі
Espressif келесідей сипатталған ESP-IDF үшін арнайы Git жұмыс процесін бақылайды:
· Негізгі даму тармағы ретінде қызмет ететін негізгі филиалға жаңа өзгерістер енгізілді. Негізгі тармақтағы ESP-IDF нұсқасында әрқашан -dev болады tag v4.3-dev сияқты қазіргі уақытта әзірлену үстінде екенін көрсету үшін. Негізгі бөлімдегі өзгерістер алдымен қайта боладыviewed және Espressif ішкі репозиторийінде сыналған, содан кейін автоматтандырылған тестілеу аяқталғаннан кейін GitHub жүйесіне жіберіледі.
· Жаңа нұсқа негізгі тармақта мүмкіндікті әзірлеуді аяқтағаннан кейін және бета-тестілеуге кіру критерийлеріне сай болғаннан кейін, ол шығарылым/v4.3 сияқты жаңа тармаққа ауысады. Сонымен қатар, бұл жаңа филиал болып табылады tagv4.3-beta1 сияқты алдын ала шығарылым нұсқасы ретінде ged. Әзірлеушілер филиалдардың толық тізіміне қол жеткізу үшін GitHub платформасына сілтеме жасай алады және tags ESP-IDF үшін. Бета-нұсқаның (шығарылым алдындағы нұсқасы) әлі де белгілі мәселелердің айтарлықтай саны болуы мүмкін екенін ескеру маңызды. Бета нұсқасы үздіксіз сынақтан өтетіндіктен, қателерді түзету осы нұсқаға да, негізгі бөлімге де бір уақытта қосылады. Сонымен қатар, негізгі филиал келесі нұсқа үшін жаңа мүмкіндіктерді әзірлеуді бастаған болуы мүмкін. Тестілеу аяқталуға жақын болғанда, филиалға шығарылым кандидаты (rc) белгісі қосылады, бұл оның v4.3-rc1 сияқты ресми шығарылымға ықтимал үміткер екенін көрсетеді. Бұл кезде сtage, филиал алдын ала шығарылым нұсқасы болып қалады.
· Ешқандай маңызды қателер табылмаса немесе хабарланбаса, шығарылым алдындағы нұсқасы ақырында негізгі нұсқа белгісін (мысалы, v5.0) немесе кіші нұсқа белгісін (мысалы, v4.3) алады және құжатталған ресми шығарылым нұсқасына айналады. шығарылым жазбалары бетінде. Кейіннен осы нұсқада анықталған қателер шығарылым тармағында түзетіледі. Қолмен тестілеу аяқталғаннан кейін филиалға қателерді түзету нұсқасының белгісі (мысалы, v4.3.2) тағайындалады, ол шығарылым жазбалары бетінде де көрсетіледі.
4-тарау. Даму ортасын орнату 33

4.1.3 Сәйкес нұсқаны таңдау
ESP-IDF ресми түрде ESP32-C3 нұсқасына v4.3 нұсқасынан қолдау көрсете бастағандықтан және v4.4 осы кітапты жазу кезінде әлі ресми түрде шығарылмағандықтан, бұл кітапта қолданылған нұсқа v4.3.2 болып табылады, ол қайта қаралған нұсқа болып табылады. v4.3. Дегенмен, сіз осы кітапты оқыған кезде v4.4 немесе жаңарақ нұсқалары әлдеқашан қолжетімді болуы мүмкін екенін ескеру маңызды. Нұсқаны таңдаған кезде келесіні ұсынамыз:
· Бастапқы деңгейдегі әзірлеушілер үшін тұрақты v4.3 нұсқасын немесе оның бұрынғы нұсқасына сәйкес келетін қайта қаралған нұсқасын таңдаған жөн.ample нұсқасы осы кітапта қолданылған.
· Жаппай өндіру мақсатында ең соңғы техникалық қолдауды пайдалану үшін ең соңғы тұрақты нұсқаны пайдалану ұсынылады.
· Жаңа чиптермен тәжірибе жасағыңыз келсе немесе өнімнің жаңа мүмкіндіктерін зерттегіңіз келсе, негізгі бөлімді пайдаланыңыз. Соңғы нұсқада барлық соңғы мүмкіндіктер бар, бірақ белгілі немесе белгісіз қателер болуы мүмкін екенін есте сақтаңыз.
· Қолданылатын тұрақты нұсқа қажетті жаңа мүмкіндіктерді қамтымаса және негізгі тармақпен байланысты тәуекелдерді азайтқыңыз келсе, шығарылым/v4.4 тармағы сияқты сәйкес шығарылым тармағын пайдалануды қарастырыңыз. Espressif GitHub репозиторийі алдымен шығарылым/v4.4 тармағын жасайды, содан кейін барлық мүмкіндіктерді әзірлеу мен тестілеуді аяқтағаннан кейін осы филиалдың белгілі бір тарихи суреті негізінде тұрақты v4.4 нұсқасын шығарады.
4.1.4 Артықview ESP-IDF SDK каталогының
ESP-IDF SDK екі негізгі каталогтан тұрады: esp-idf және .espressif. Біріншісінде ESP-IDF репозиторийінің бастапқы коды бар files және компиляция сценарийлері, ал соңғысы негізінен компиляция құралдарының тізбектерін және басқа бағдарламалық құралды сақтайды. Осы екі каталогпен танысу әзірлеушілерге қолжетімді ресурстарды жақсырақ пайдалануға және әзірлеу процесін жылдамдатуға көмектеседі. ESP-IDF каталогының құрылымы төменде сипатталған:
(1) 4.2-суретте көрсетілгендей ESP-IDF репозиторий кодының каталогы (/esp/esp-idf).
а. Компоненттер каталогының компоненттері
Бұл негізгі каталог ESP-IDF көптеген маңызды бағдарламалық құрал құрамдастарын біріктіреді. Ешбір жоба кодын осы каталогтағы құрамдас бөліктерге сүйенбей құрастыруға болмайды. Ол әртүрлі Espressif чиптеріне драйвер қолдауын қамтиды. Перифериялық құрылғыларға арналған LL кітапханасы мен HAL кітапханасының интерфейстерінен жоғарғы деңгейдегі драйверге және виртуалдыға дейін File Жүйе (VFS) деңгейін қолдау, әзірлеушілер өздерінің даму қажеттіліктері үшін әртүрлі деңгейлерде сәйкес компоненттерді таңдай алады. ESP-IDF сонымен қатар TCP/IP, HTTP, MQTT сияқты бірнеше стандартты желілік протокол стектерін қолдайды WebSocket, т.б. Әзірлеушілер желілік қолданбаларды құру үшін Socket сияқты таныс интерфейстерді пайдалана алады. Компоненттер түсінуді қамтамасыз етеді
34 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

4.2-сурет. ESP-IDF репозиторий кодының каталогы
функционалды және қолданбаларға оңай біріктірілуі мүмкін, бұл әзірлеушілерге тек бизнес логикасына назар аударуға мүмкіндік береді. Кейбір жалпы құрамдастарға мыналар жатады: · драйвер: Бұл құрамдас әр түрлі Espressif үшін перифериялық драйвер бағдарламаларын қамтиды
GPIO, I2C, SPI, UART, LEDC (PWM) және т.б. сияқты чип сериялары. Бұл компоненттегі перифериялық драйвер бағдарламалары чипке тәуелсіз дерексіз интерфейстерді ұсынады. Әрбір перифериялық құрылғының ортақ тақырыбы бар file (мысалы, gpio.h), әртүрлі чипке қатысты қолдау сұрақтарымен айналысу қажеттілігін жояды. · esp_wifi: Wi-Fi арнайы перифериялық құрылғы ретінде бөлек құрамдас ретінде қарастырылады. Ол әртүрлі Wi-Fi драйвер режимдерін инициализациялау, параметр конфигурациясы және оқиғаларды өңдеу сияқты бірнеше API қамтиды. Бұл компоненттің кейбір функциялары статикалық сілтеме кітапханалары түрінде қамтамасыз етілген. ESP-IDF сонымен қатар қолданудың қарапайымдылығы үшін жан-жақты драйвер құжаттамасын ұсынады.
4-тарау. Даму ортасын орнату 35

· freertos: Бұл құрамдас толық FreeRTOS кодын қамтиды. Осы операциялық жүйеге жан-жақты қолдау көрсетумен қатар, Espressif екі ядролы чиптерге де қолдауын кеңейтті. ESP32 және ESP32-S3 сияқты екі ядролы чиптер үшін пайдаланушылар нақты ядроларда тапсырмалар жасай алады.
б. Құжаттар каталогы құжаттар
Бұл каталог ESP-IDF қатысты әзірлеу құжаттарын қамтиды, соның ішінде Жұмысты бастау нұсқаулығы, API анықтамалық нұсқаулығы, әзірлеу жөніндегі нұсқаулық және т.б.
ЕСКЕРТПЕ Автоматтандырылған құралдармен құрастырылғаннан кейін бұл каталогтың мазмұны https://docs.espressif.com/projects/esp-idf мекенжайында орналастырылады. Құжат мақсатын ESP32-C3 түріне ауыстырып, көрсетілген ESP-IDF нұсқасын таңдаңыз.
в. Сценарий құралының құралдары
Бұл каталогта idf.py және idf_monitor.py монитор терминалы құралы, т.б. сияқты жиі қолданылатын компиляцияның алдыңғы жағындағы құралдар бар. cmake ішкі каталогында негізгі сценарий де бар. fileESP-IDF құрастыру ережелерін іске асыру үшін негіз ретінде қызмет ететін компиляция жүйесінің s. Ортаның айнымалы мәндерін қосқанда, құралдар каталогындағы мазмұн жүйелік ортаның айнымалы мәніне қосылады, бұл idf.py файлын жоба жолында тікелей орындауға мүмкіндік береді.
г. Мысалыampбағдарлама каталогы, мысалыamples
Бұл каталог ESP-IDF эксampқұрамдас API интерфейстерін пайдалануды көрсететін бағдарламалар. бұрынғыamples санаттары бойынша әртүрлі ішкі каталогтарға бөлінген:
· бастау: Бұл ішкі каталог бастапқы деңгейдегі эксampпайдаланушыларға негізгі ақпаратты түсінуге көмектесу үшін «сәлем әлем» және «жыпылықтау» сияқты.
· bluetooth: Bluetooth-ға қатысты мысалын таба аласызampBluetooth LE Mesh, Bluetooth LE HID, BluFi және т.б. қоса.
· wifi: Бұл ішкі каталог Wi-Fi бұрынғыға бағытталғанampWi-Fi SoftAP, Wi-Fi Station, espnow сияқты негізгі бағдарламаларды, сондай-ақ меншікті байланыс протоколын қоса алғанда.ampEspressif-тен. Ол сонымен қатар бірнеше қолданбалы қабаттарды қамтиды, мысалыampIperf, Sniffer және Smart Config сияқты Wi-Fi негізіндегі құрылғылар.
· перифериялық құрылғылар: Бұл ауқымды ішкі каталог одан әрі перифериялық атауларға негізделген көптеген ішкі қалталарға бөлінген. Ол негізінен перифериялық драйверді қамтидыampEspressif чиптеріне арналған les, әрбір бұрынғыample бірнеше суб-эксamples. Мысалы, gpio ішкі каталогында екі эксamples: GPIO және GPIO матрицалық пернетақта. Айта кету керек, бұрынғылардың бәрі бірдей емесampОсы каталогтағы файлдар ESP32-C3 үшін жарамды.
36 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

Мысалыampле, бұрынғыampusb/хосттағы les USB хост аппараттық құралы (ESP32-S3 сияқты) бар перифериялық құрылғыларға ғана қолданылады және ESP32-C3-те бұл перифериялық құрылғы жоқ. Компиляция жүйесі әдетте мақсатты орнату кезінде сұрауларды береді. README file әрбір бұрынғыample қолдау көрсетілетін чиптерді тізімдейді. · протоколдар: Бұл ішкі каталогта мысampMQTT, HTTP, HTTP сервері, PPPoS, Modbus, mDNS, SNTP сияқты әртүрлі байланыс протоколдарына арналған, мысалы, байланыс протоколының кең ауқымын қамтитынampIoT әзірлеу үшін қажет. · провизиялау: Мұнда сіз провизияны табасыз, мысалыampWi-Fi қамтамасыз ету және Bluetooth LE қамтамасыз ету сияқты әртүрлі әдістерге арналған. · жүйе: Бұл ішкі каталог жүйені жөндеуді қамтиды, мысалыamples (мысалы, стек қадағалау, орындалу уақытын бақылау, тапсырмаларды бақылау), қуатты басқару, мысалыamples (мысалы, әртүрлі ұйқы режимдері, бірлескен процессорлар) және мысалыampконсоль терминалы, оқиғалар циклі және жүйелік таймер сияқты жалпы жүйе құрамдастарына қатысты. · сақтау: Осы ішкі каталогта сіз бұрынғыampбәрінен де file ESP-IDF қолдайтын жүйелер мен сақтау механизмдері (мысалы, Flash, SD картасын және басқа сақтау құралдарын оқу және жазу), сондай-ақ бұрынғыampұшпа қоймалар (NVS), FatFS, SPIFFS және т.б file жүйелік операциялар. · қауіпсіздік: Бұл ішкі каталог, мысалыampфлэш шифрлаумен байланысты. (2) 4.3-суретте көрсетілгендей ESP-IDF құрастыру құралдарының тізбегі каталогы (/.espressif).
4.3-сурет. ESP-IDF құрастыру құралдары тізбегі каталогы
4-тарау. Даму ортасын орнату 37

а. Бағдарламалық құралды тарату каталогы дист
ESP-IDF құралдар тізбегі және басқа бағдарламалық қамтамасыз ету қысылған пакеттер түрінде таратылады. Орнату процесі кезінде орнату құралы алдымен қысылған буманы dist каталогына жүктеп алады, содан кейін оны көрсетілген каталогқа шығарады. Орнату аяқталғаннан кейін осы каталогтағы мазмұнды қауіпсіз жоюға болады.
б. Python виртуалды орта каталогы python env
ESP-IDF әртүрлі нұсқалары Python пакеттерінің нақты нұсқаларына сүйенеді. Бұл бумаларды бір хостқа тікелей орнату бума нұсқалары арасында қайшылықтарға әкелуі мүмкін. Мұны шешу үшін ESP-IDF әртүрлі бума нұсқаларын оқшаулау үшін Python виртуалды орталарын пайдаланады. Бұл механизм арқылы әзірлеушілер бір хостқа ESP-IDF бірнеше нұсқасын орната алады және әртүрлі орта айнымалыларын импорттау арқылы олардың арасында оңай ауыса алады.
в. ESP-IDF құрастыру құралдарының тізбегі каталог құралдары
Бұл каталогта негізінен CMake құралдары, Ninja құрастыру құралдары және соңғы орындалатын бағдарламаны жасайтын gcc құралдар тізбегі сияқты ESP-IDF жобаларын құрастыруға қажетті кросс компиляция құралдары бар. Сонымен қатар, бұл каталогта сәйкес тақырыппен бірге C/C++ тілінің стандартты кітапханасы бар fileс. Егер бағдарлама жүйе тақырыбына сілтеме жасаса file #include сияқты , құрастыру құралдары тізбегі stdio.h орнын анықтайды file осы каталог ішінде.
4.2 ESP-IDF әзірлеу ортасын орнату
ESP-IDF әзірлеу ортасы Windows, Linux және macOS сияқты негізгі операциялық жүйелерді қолдайды. Бұл бөлім әрбір жүйеде әзірлеу ортасын орнату жолын таныстырады. Мұнда егжей-тегжейлі енгізілетін Linux жүйесінде ESP32-C3 әзірлеу ұсынылады. Көптеген нұсқаулар әзірлеу құралдарының ұқсастығына байланысты платформаларда қолданылады. Сондықтан осы бөлімнің мазмұнын мұқият оқып шығу ұсынылады.
ЕСКЕРТПЕ https://bookc3.espressif.com/esp32c3 мекенжайында қолжетімді онлайн құжаттарға сілтеме жасай аласыз, олар осы бөлімде айтылған пәрмендерді қамтамасыз етеді.
4.2.1 Linux жүйесінде ESP-IDF әзірлеу ортасын орнату
ESP-IDF әзірлеу ортасы үшін қажетті GNU әзірлеу және жөндеу құралдары Linux жүйесіне тән. Оған қоса, Linux жүйесіндегі пәрмен жолы терминалы қуатты және пайдаланушыға ыңғайлы, бұл оны ESP32-C3 әзірлеу үшін тамаша таңдау етеді. Сен істе аласың
38 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

таңдаулы Linux дистрибутивін таңдаңыз, бірақ біз Ubuntu немесе басқа Debian негізіндегі жүйелерді пайдалануды ұсынамыз. Бұл бөлім Ubuntu 20.04 жүйесінде ESP-IDF әзірлеу ортасын орнату бойынша нұсқаулықты береді.
1. Қажетті бумаларды орнатыңыз
Жаңа терминалды ашыңыз және барлық қажетті бумаларды орнату үшін келесі пәрменді орындаңыз. Пәрмен орнатылған бумаларды автоматты түрде өткізіп жібереді.
$ sudo apt-get орнату git wget flex bizon gperf python3 python3-pip python3setuptools cmake ninja-Build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
КЕҢЕСТЕР Жоғарыдағы пәрмен үшін әкімші тіркелгісі мен құпия сөзді пайдалану керек. Әдепкі бойынша, құпия сөзді енгізу кезінде ешқандай ақпарат көрсетілмейді. Процедураны жалғастыру үшін жай ғана «Enter» пернесін басыңыз.
Git - ESP-IDF жүйесіндегі негізгі кодты басқару құралы. Әзірлеу ортасын сәтті орнатқаннан кейін сіз git log пәрменін пайдалана аласыз view ESP-IDF жасалғаннан бері жасалған барлық код өзгерістері. Сонымен қатар, Git нақты нұсқаларға сәйкес дұрыс құралдар тізбегін орнату үшін қажет нұсқа ақпаратын растау үшін ESP-IDF-де де қолданылады. Git-пен қатар басқа маңызды жүйелік құралдарға Python кіреді. ESP-IDF Python тілінде жазылған көптеген автоматтандыру сценарийлерін біріктіреді. CMake, Ninja-build және Ccache сияқты құралдар C/C++ жобаларында кеңінен қолданылады және ESP-IDF жүйесінде әдепкі кодты құрастыру және құру құралдары ретінде қызмет етеді. libusb-1.0-0 және dfu-util - USB сериялық байланысы және микробағдарламаны жазу үшін пайдаланылатын негізгі драйверлер. Бағдарламалық жасақтама пакеттері орнатылғаннан кейін сіз apt show қолданбасын пайдалана аласыз әрбір буманың егжей-тегжейлі сипаттамасын алу пәрмені. Мысалыample, Git құралының сипаттама ақпаратын басып шығару үшін apt show git пайдаланыңыз.
С: Python нұсқасына қолдау көрсетілмесе не істеу керек? A: ESP-IDF v4.3 v3.6 төмен емес Python нұсқасын қажет етеді. Ubuntu жүйесінің ескі нұсқалары үшін Python бағдарламасының жоғарырақ нұсқасын қолмен жүктеп алып, орнатыңыз және Python3 параметрін әдепкі Python ортасы ретінде орнатыңыз. Толық нұсқауларды update-alternatives python кілт сөзін іздеу арқылы таба аласыз.
2. ESP-IDF репозиторий кодын жүктеп алыңыз
Терминалды ашыңыз және mkdir пәрмені арқылы үй каталогында esp деп аталатын қалтаны жасаңыз. Қаласаңыз, қалта үшін басқа атауды таңдауға болады. Қалтаға кіру үшін cd пәрменін пайдаланыңыз.
4-тарау. Даму ортасын орнату 39

$ mkdir -p /esp $ cd /esp
Төменде көрсетілгендей ESP-IDF репозиторий кодын жүктеп алу үшін git clone пәрменін пайдаланыңыз:
$git clone -b v4.3.2 –рекурсивті https://github.com/espressif/esp-idf.git
Жоғарыдағы пәрменде -b v4.3.2 параметрі жүктеп алынатын нұсқаны көрсетеді (бұл жағдайда 4.3.2 нұсқасы). –recursive параметрі ESP-IDF барлық ішкі репозиторийлерінің рекурсивті түрде жүктелуін қамтамасыз етеді. Ішкі репозиторийлер туралы ақпаратты .gitmodules ішінен табуға болады file.
3. ESP-IDF әзірлеу құралдары тізбегін орнатыңыз
Espressif құралдар тізбегін жүктеп алу және орнату үшін install.sh автоматтандырылған сценарийін ұсынады. Бұл сценарий ағымдағы ESP-IDF нұсқасын және операциялық жүйе ортасын тексереді, содан кейін Python құралдар бумалары мен компиляция құралдары тізбектерінің сәйкес нұсқасын жүктеп алып, орнатады. Құралдар тізбегі үшін әдепкі орнату жолы /.espressif болып табылады. Сізге тек esp-idf каталогына өтіп, install.sh файлын іске қосу жеткілікті.
$ cd /esp/esp-idf $ ./install.sh
Құралдар тізбегін сәтті орнатсаңыз, терминал көрсетеді:
Барлығы орындалды!
Осы кезде сіз ESP-IDF әзірлеу ортасын сәтті орнаттыңыз.
4.2.2 Windows жүйесінде ESP-IDF әзірлеу ортасын орнату
1. ESP-IDF құралдарын орнату құралын жүктеп алыңыз
КЕҢЕСТЕР ESP-IDF әзірлеу ортасын Windows 10 немесе одан жоғары нұсқада орнату ұсынылады. Орнатқышты https://dl.espressif.com/dl/esp-idf/ сайтынан жүктеп алуға болады. Орнатушы да ашық бастапқы бағдарламалық құрал болып табылады және оның бастапқы коды болуы мүмкін viewed: https: //github.com/espressif/idf-installer.
· Онлайн ESP-IDF құралдарын орнату құралы
Бұл орнатушы салыстырмалы түрде кішкентай, өлшемі шамамен 4 МБ және орнату процесі кезінде басқа пакеттер мен код жүктеледі. АдванtagОнлайн орнатушының e мүмкіндігі - орнату процесі кезінде бағдарламалық жасақтама пакеттері мен кодты сұраныс бойынша жүктеп алуға ғана емес, сонымен қатар ESP-IDF-тің барлық қолжетімді шығарылымдарын және GitHub кодының соңғы тармағын (мысалы, негізгі бөлім) орнатуға мүмкіндік береді. . Кемшілікtage — орнату процесі кезінде желі қосылымын қажет етеді, бұл желі ақауларына байланысты орнату сәтсіздігін тудыруы мүмкін.
40 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

· Офлайн ESP-IDF құралдарын орнату құралы Бұл орнатушы үлкенірек, өлшемі шамамен 1 ГБ және қоршаған ортаны орнату үшін қажетті барлық бағдарламалық пакеттер мен кодты қамтиды. Негізгі артықшылықtagоффлайн орнатушының e мүмкіндігі оның Интернетке қосылу мүмкіндігі жоқ компьютерлерде пайдаланылуы және әдетте орнатудың жоғары табыстылығы болып табылады. Офлайн орнатушы тек v*.* немесе v*.*.* арқылы анықталған ESP-IDF тұрақты шығарылымдарын орната алатынын ескеру қажет.
2. ESP-IDF құралдарын орнатушысын іске қосыңыз Орнатушының қолайлы нұсқасын жүктеп алғаннан кейін (мысалы, ESP-IDF Tools Offline 4.3.2 нұсқасын алыңыз.ample мұнда), exe файлын екі рет басыңыз file ESP-IDF орнату интерфейсін іске қосу үшін. Төменде ESP-IDF тұрақты v4.3.2 нұсқасын желіден тыс орнатушы арқылы орнату жолы көрсетілген.
(1) 4.4-суретте көрсетілген «Орнату тілін таңдау» интерфейсінде ашылмалы тізімнен пайдаланылатын тілді таңдаңыз.
4.4-сурет. «Орнату тілін таңдау» интерфейсі (2) Тілді таңдағаннан кейін «Лицензиялық келісім» интерфейсін ашу үшін «OK» түймесін басыңыз.
(4.5-суретті қараңыз). Орнату лицензиялық келісімін мұқият оқып шыққаннан кейін «Мен келісімді қабылдаймын» опциясын таңдап, «Келесі» түймесін басыңыз.
4.5-сурет. «Лицензиялық келісім» интерфейсі 4-тарау. Әзірлеу ортасын орнату 41

(3) Қайтаview «Орнату алдындағы жүйені тексеру» интерфейсіндегі жүйе конфигурациясын (4.6-суретті қараңыз). Windows нұсқасын және орнатылған антивирустық бағдарламалық құрал туралы ақпаратты тексеріңіз. Барлық конфигурация элементтері қалыпты болса, «Келесі» түймесін басыңыз. Әйтпесе, негізгі элементтерге негізделген шешімдер үшін «Толық журнал» түймесін басуға болады.
4.6-сурет. «Орнату алдында жүйені тексеру» интерфейсі КЕҢЕСТЕР
Анықтама алу үшін журналдарды https://github.com/espressif/idf-installer/issues мекенжайына жіберуге болады. (4) ESP-IDF орнату каталогын таңдаңыз. Мұнда көрсетілгендей D:/.espressif таңдаңыз
4.7-сурет және «Келесі» түймесін басыңыз. Мұнда .espressif жасырын каталог екенін ескеріңіз. Орнату аяқталғаннан кейін сіз жасай аласыз view ашу арқылы осы каталогтың нақты мазмұны file басқару және жасырын элементтерді көрсету.
4.7-сурет. ESP-IDF орнату каталогын таңдаңыз 42 ESP32-C3 Wireless Adventure: IoT бойынша кешенді нұсқаулық

(5) 4.8-суретте көрсетілгендей орнату қажет құрамдастарды тексеріңіз. Әдепкі опцияны пайдалану ұсынылады, яғни орнатуды аяқтаңыз, содан кейін «Келесі» түймесін басыңыз.
4.8-сурет. Орнатылатын құрамдастарды таңдаңыз (6) Орнатылатын құрамдастарды растаңыз және автоматтандырылған енгізуді бастау үшін «Орнату» түймесін басыңыз.
4.9-суретте көрсетілгендей тоқтау процесі. Орнату процесі ондаған минутқа созылуы мүмкін және орнату процесінің орындалу жолағы 4.10-суретте көрсетілген. Сабырлықпен күтіңіз.
4.9-сурет. Орнатуға дайындық (7) Орнату аяқталғаннан кейін «ESP-IDF тіркеу
Антивирустық бағдарламалық құралдың жойылуын болдырмау үшін Windows Defender ерекшеліктері ретінде орындалатын құралдар…” fileс. Шектеу элементтерін қосу антивирус арқылы жиі сканерлеуді өткізіп жіберуі мүмкін
4-тарау. Даму ортасын орнату 43

4.10-сурет. Орнату барысы жолағы бағдарламалық жасақтамасы Windows жүйесінің кодты құрастыру тиімділігін айтарлықтай жақсартады. 4.11-суретте көрсетілгендей әзірлеу ортасын орнатуды аяқтау үшін «Аяқтау» түймесін басыңыз. «ESP-IDF PowerShell ортасын іске қосу» немесе «ESP-IDF пәрмен жолын іске қосу» құсбелгісін таңдауға болады. Әзірлеу ортасының қалыпты жұмыс істеуін қамтамасыз ету үшін орнатудан кейін құрастыру терезесін тікелей іске қосыңыз.
4.11-сурет. Орнату аяқталды (8) Бағдарламалар тізімінде орнатылған әзірлеу ортасын ашыңыз (ESP-IDF 4.3 немесе ESP-IDF).
CMD немесе ESP-IDF 4.3 PowerShell терминалы, 4.12-суретте көрсетілгендей) және ESP-IDF ортасының айнымалы мәні терминалда іске қосылған кезде автоматты түрде қосылады. Осыдан кейін операциялар үшін idf.py пәрменін пайдалануға болады. Ашылған ESP-IDF 4.3 CMD 4.13-суретте көрсетілген. 44 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

4.12-сурет. Әзірлеу ортасы орнатылған
4.13-сурет. ESP-IDF 4.3 CMD
4.2.3 Mac жүйесінде ESP-IDF әзірлеу ортасын орнату
Mac жүйесінде ESP-IDF әзірлеу ортасын орнату процесі Linux жүйесіндегімен бірдей. Репозиторий кодын жүктеп алу және құралдар тізбегін орнату пәрмендері дәл солай. Тек тәуелділік бумаларын орнату пәрмендері сәл өзгеше. 1. Тәуелділік бумаларын орнату Терминалды ашыңыз және келесі пәрменді орындау арқылы Python бумасын басқару құралын орнатыңыз:
% sudo оңай орнату пипі
Homebrew, MacOS жүйесіне арналған пакетті басқару құралын келесі пәрменді орындау арқылы орнатыңыз:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Келесі пәрменді орындау арқылы қажетті тәуелділік бумаларын орнатыңыз:
% Brew python3 орнату cmake ninja ccache dfu-util
2. ESP-IDF репозиторий кодын жүктеп алу ESP-IDF репозиторий кодын жүктеп алу үшін 4.2.1 бөлімінде берілген нұсқауларды орындаңыз. Қадамдар Linux жүйесінде жүктеп алумен бірдей.
4-тарау. Даму ортасын орнату 45

3. ESP-IDF әзірлеу құралдары тізбегін орнатыңыз
ESP-IDF әзірлеу құралдары тізбегін орнату үшін 4.2.1 бөлімінде берілген нұсқауларды орындаңыз. Қадамдар Linux жүйесінде орнатумен бірдей.
4.2.4 VS кодын орнату
Әдепкі бойынша, ESP-IDF SDK кодты өңдеу құралын қамтымайды (бірақ Windows жүйесіне арналған соңғы ESP-IDF орнатушысы ESP-IDF Eclipse орнату опциясын ұсынады). Кодты өңдеу үшін өзіңіз таңдаған кез келген мәтінді өңдеу құралын пайдалана аласыз, содан кейін оны терминал пәрмендері арқылы құрастыра аласыз.
Танымал кодты өңдеу құралдарының бірі VS Code (Visual Studio Code) болып табылады, ол пайдаланушыға ыңғайлы интерфейсі бар тегін және мүмкіндіктері мол код редакторы болып табылады. Ол әртүрлі ұсынады plugins кодты шарлау, синтаксисті бөлектеу, Git нұсқасын басқару және терминалды біріктіру сияқты функцияларды қамтамасыз етеді. Сонымен қатар, Espressif VS Code үшін Espressif IDF деп аталатын арнайы плагин әзірледі, ол жоба конфигурациясын және жөндеуді жеңілдетеді.
VS Code ішіндегі ағымдағы қалтаны жылдам ашу үшін терминалдағы код пәрменін пайдалануға болады. Сонымен қатар, VS Code ішінде жүйенің әдепкі терминал консолін ашу үшін Ctrl+ пернелер тіркесімін пайдалануға болады.
КЕҢЕСТЕР ESP32-C3 кодын әзірлеу үшін VS кодын пайдалану ұсынылады. VS кодының соңғы нұсқасын https://code.visualstudio.com/ сайтынан жүктеп алыңыз және орнатыңыз.
4.2.5 Үшінші тарап әзірлеу орталарына кіріспе
Негізінен Си тілін пайдаланатын ресми ESP-IDF әзірлеу ортасынан басқа, ESP32-C3 басқа негізгі бағдарламалау тілдерін және үшінші тарап әзірлеу орталарының кең ауқымын қолдайды. Кейбір көрнекті опциялар мыналарды қамтиды:
Arduino: әртүрлі микроконтроллерлерді, соның ішінде ESP32-C3-ті қолдайтын аппараттық және бағдарламалық қамтамасыз ету үшін ашық бастапқы платформа.
Ол C++ тілін пайдаланады және әдетте Arduino тілі деп аталатын жеңілдетілген және стандартталған API ұсынады. Arduino прототипті әзірлеуде және білім беру контекстінде кеңінен қолданылады. Ол кеңейтілетін бағдарламалық пакетті және оңай құрастыруға және жыпылықтауға мүмкіндік беретін IDE ұсынады.
MicroPython: ендірілген микроконтроллер платформаларында жұмыс істеуге арналған Python 3 тіл аудармашысы.
Қарапайым сценарий тілі арқылы ол ESP32-C3 перифериялық ресурстарына (UART, SPI және I2C сияқты) және байланыс функцияларына (Wi-Fi және Bluetooth LE сияқты) тікелей қол жеткізе алады.
46 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

Бұл аппараттық құралдармен өзара әрекеттесуді жеңілдетеді. MicroPython, Python кең ауқымды математикалық операциялар кітапханасымен біріктіріліп, AI-мен байланысты қосымшаларды әзірлеуді жеңілдете отырып, ESP32-C3 жүйесінде күрделі алгоритмдерді жүзеге асыруға мүмкіндік береді. Сценарий тілі болғандықтан, қайталап құрастырудың қажеті жоқ; өзгертулер енгізуге және сценарийлерді тікелей орындауға болады.
NodeMCU: ESP сериялы чиптері үшін әзірленген LUA тіл аудармашысы.
Ол ESP чиптерінің барлық дерлік перифериялық функцияларын қолдайды және MicroPython қарағанда жеңілірек. MicroPython сияқты, NodeMCU қайталанатын компиляция қажеттілігін жоққа шығаратын сценарий тілін пайдаланады.
Сонымен қатар, ESP32-C3 сонымен қатар NuttX және Zephyr операциялық жүйелерін қолдайды. NuttX - қолданбаның тасымалдануын жақсартатын POSIX-үйлесімді интерфейстерді қамтамасыз ететін нақты уақыттағы операциялық жүйе. Zephyr - бұл IoT қолданбалары үшін арнайы жасалған шағын нақты уақыттағы операциялық жүйе. Ол IoT әзірлеуге қажетті көптеген бағдарламалық жасақтама кітапханаларын қамтиды, біртіндеп кешенді бағдарламалық экожүйеге айналады.
Бұл кітапта жоғарыда аталған әзірлеу орталары үшін толық орнату нұсқаулары берілмейді. Сәйкес құжаттама мен нұсқауларды орындау арқылы талаптарыңызға негізделген әзірлеу ортасын орнатуға болады.
4.3 ESP-IDF компиляция жүйесі
4.3.1 Компиляция жүйесінің негізгі түсініктері
ESP-IDF жобасы – енгізу функциясы және бірнеше тәуелсіз функционалдық құрамдастары бар негізгі бағдарламаның жиынтығы. Мысалыample, жарықдиодты қосқыштарды басқаратын жоба негізінен енгізу бағдарламасының негізгі бөлігінен және GPIO-ны басқаратын драйвер компонентінен тұрады. Жарық диодты қашықтан басқару құралын іске асырғыңыз келсе, сонымен қатар Wi-Fi, TCP/IP протоколының стекін және т.б. қосу керек.
Компиляция жүйесі орындалатын файлды құрастыра, байланыстыра және жасай алады files (.bin) құрылыс ережелерінің жиынтығы арқылы код үшін. ESP-IDF v4.0 және одан жоғары нұсқалардың компиляция жүйесі әдепкі бойынша CMake-ге негізделген және CMakeLists.txt компиляция сценарийі кодтың құрастыру әрекетін басқару үшін пайдаланылуы мүмкін. CMake негізгі синтаксисін қолдаумен қатар, ESP-IDF компиляция жүйесі әдепкі құрастыру ережелері мен CMake функцияларының жинағын да анықтайды және құрастыру сценарийін қарапайым мәлімдемелермен жаза аласыз.
4.3.2 Жоба File Құрылымы
Жоба – бұл кіріс бағдарламасының негізгі, пайдаланушы анықтайтын құрамдастары және fileкомпиляция сценарийлері, конфигурация сияқты орындалатын қолданбаларды құру үшін қажет
4-тарау. Даму ортасын орнату 47

files, бөлім кестелері, т.б.. Жобаларды көшіруге және беруге болады және бірдей орындалатын файл file ESP-IDF әзірлеу ортасының бірдей нұсқасы бар машиналарда құрастырылуы және жасалуы мүмкін. Әдеттегі ESP-IDF жобасы file құрылымы 4.14-суретте көрсетілген.
4.14-сурет. Әдеттегі ESP-IDF жобасы file құрылым ESP-IDF бірнеше IoT чиптерін Espressif қолдайтындықтан, соның ішінде ESP32, ESP32-S сериялары, ESP32-C сериялары, ESP32-H сериялары, т.б., кодты құрастыру алдында мақсатты анықтау қажет. Мақсат қолданбалы бағдарламаны іске қосатын аппараттық құрылғы және компиляция жүйесінің құрастыру мақсаты болып табылады. Сіздің қажеттіліктеріңізге байланысты жобаңызға бір немесе бірнеше мақсатты көрсетуге болады. Мысалыample, idf.py set-target esp32c3 пәрмені арқылы компиляция мақсатын ESP32-C3 етіп орнатуға болады, оның барысында ESP32C3 үшін әдепкі параметрлер мен компиляция құралдарының тізбегі жолы жүктеледі. Компиляциядан кейін ESP32C3 үшін орындалатын бағдарламаны жасауға болады. Сондай-ақ, басқа мақсатты орнату үшін set-target пәрменін қайта іске қосуға болады, ал компиляция жүйесі автоматты түрде тазартылады және қайта конфигурацияланады. Құрамдас бөліктер
ESP-IDF құрамдастары компиляция жүйесінде басқарылатын модульдік және тәуелсіз код бірліктері болып табылады. Олар әдепкі бойынша құрамдас атауын білдіретін қалта атымен қалталар ретінде ұйымдастырылған. Әрбір құрамдастың 48 ESP32-C3 Wireless Adventure: IoT-ке арналған толық нұсқаулығы бар өзінің компиляция сценарийі бар.

оның құрастыру параметрлері мен тәуелділіктерін көрсетеді. Компиляция процесінде компоненттер жеке статикалық кітапханаларға жинақталады (.a files) және сайып келгенде қолданбалы бағдарламаны құру үшін басқа компоненттермен біріктіріледі.
ESP-IDF операциялық жүйе, перифериялық драйверлер және желілік протоколдар стегі сияқты маңызды функцияларды құрамдас түрінде қамтамасыз етеді. Бұл компоненттер ESP-IDF түбірлік каталогында орналасқан компоненттер каталогында сақталады. Әзірлеушілер бұл құрамдастарды myProject құрамдастары каталогына көшірудің қажеті жоқ. Оның орнына олар тек жобаның CMakeLists.txt файлында осы құрамдастардың тәуелділік қатынастарын көрсетуі керек. file REQUIRES немесе PRIV_REQUIRES директивалары арқылы. Компиляция жүйесі қажетті компоненттерді автоматты түрде тауып, құрастырады.
Сондықтан myProject астындағы компоненттер каталогы қажет емес. Ол үшінші тарап кітапханалары немесе пайдаланушы анықтайтын код болуы мүмкін жобаның кейбір теңшелетін құрамдастарын қосу үшін ғана пайдаланылады. Оған қоса, құрамдастарды ESP-IDF немесе ағымдағы жобадан басқа кез келген каталогтан, мысалы, басқа каталогта сақталған ашық бастапқы жобадан алуға болады. Бұл жағдайда тек түбірлік каталогтың астындағы CMakeLists.txt ішіндегі EXTRA_COMPONENT_DIRS айнымалы мәнін орнату арқылы құрамдас жолын қосу керек. Бұл каталог дұрыс құрамдастың пайдаланылуын қамтамасыз ете отырып, аттас кез келген ESP-IDF құрамдастарын қайта анықтайды.
Бағдарламаның негізгі кірісі Жобаның негізгі каталогы да солай болады file басқа құрамдас бөліктер сияқты құрылым (мысалы, компонент1). Дегенмен, ол әрбір жобада болуы керек міндетті компонент болғандықтан ерекше маңызға ие. Негізгі каталог жобаның бастапқы кодын және әдетте app_main деп аталатын пайдаланушы бағдарламасының кіру нүктесін қамтиды. Әдепкі бойынша, пайдаланушы бағдарламасының орындалуы осы енгізу нүктесінен басталады. Негізгі компонент сонымен қатар іздеу жолындағы барлық құрамдастарға автоматты түрде тәуелді болуымен ерекшеленеді. Сондықтан, CMakeLists.txt ішіндегі REQUIRES немесе PRIV_REQUIRES директивалары арқылы тәуелділіктерді нақты көрсетудің қажеті жоқ. file.
Конфигурация file Жобаның түбірлік каталогында конфигурация бар file sdkconfig деп аталады, ол жобадағы барлық құрамдастардың конфигурация параметрлерін қамтиды. sdkconfig file компиляция жүйесімен автоматты түрде жасалады және idf.py menuconfig пәрмені арқылы өзгертуге және қалпына келтіруге болады. menuconfig опциялары негізінен жобаның Kconfig.projbuild және құрамдастардың Kconfig ішінен шығады. Құрамдас әзірлеушілер құрамдас бөлікті икемді және конфигурацияланатын ету үшін әдетте Kconfig ішіне конфигурация элементтерін қосады.
Құрастыру каталогы Әдепкі бойынша, жоба ішіндегі құрастыру каталогы аралық деректерді сақтайды files және fi-
4-тарау. Даму ортасын орнату 49

idf.py құрастыру пәрменімен жасалған орындалатын бағдарламалар. Жалпы, құрастыру каталогының мазмұнына тікелей қол жеткізу қажет емес. ESP-IDF каталогпен өзара әрекеттесу үшін алдын ала анықталған пәрмендерді қамтамасыз етеді, мысалы, құрастырылған екілік файлды автоматты түрде табу үшін idf.py флэш пәрменін пайдалану file және оны көрсетілген флэш мекенжайына жыпылықтаңыз немесе бүкіл құрастыру каталогын тазалау үшін idf.py fullclean пәрменін пайдаланыңыз.
Бөлім кестесі (partitions.csv) Әрбір жоба флэш кеңістігін бөлу және орындалатын бағдарламаның өлшемі мен бастапқы мекенжайын және пайдаланушы деректер кеңістігін көрсету үшін бөлімдер кестесін қажет етеді. idf.py flash пәрмені немесе OTA жаңарту бағдарламасы микробағдарламаны осы кестеге сәйкес сәйкес мекенжайға жыпылықтайды. ESP-IDF menuconfig ішінде таңдауға болатын partitions_singleapp.csv және partitions_two_ ota.csv сияқты компоненттер/partition_table ішіндегі бірнеше әдепкі бөлім кестелерін қамтамасыз етеді.
Жүйенің әдепкі бөлімдер кестесі жобаның талаптарына сәйкес келмесе, пайдаланушы partitions.csv файлын жоба каталогына қосуға және menuconfig ішінде таңдауға болады.
4.3.3 Құрастыру жүйесінің әдепкі құрастыру ережелері
Бірдей атпен құрамдастарды қайта анықтау ережелері Құрамдастарды іздеу процесі кезінде компиляция жүйесі белгілі бір ретпен жүреді. Ол алдымен ESP-IDF ішкі құрамдастарын іздейді, содан кейін пайдаланушы жобасының құрамдастарын іздейді және соңында EXTRA_COMPONENT_DIRS ішіндегі құрамдастарды іздейді. Бірнеше каталогтар бірдей атаумен құрамдастарды қамтитын жағдайларда, соңғы каталогта табылған құрамдас аттас алдыңғы құрамдастардың барлығын қайта анықтайды. Бұл ереже ESP-IDF құрамдастарын бастапқы ESP-IDF кодын өзгеріссіз сақтай отырып, пайдаланушы жобасының ішінде теңшеуге мүмкіндік береді.
Әдепкі бойынша жалпы құрамдастарды қосу ережелері 4.3.2 бөлімінде айтылғандай, құрамдастар CMakeLists.txt файлындағы басқа құрамдастарға тәуелділіктерін анық көрсетуі керек. Дегенмен, фриртос сияқты жалпы құрамдас бөліктер компиляция сценарийінде олардың тәуелділік қатынастары анық анықталмаған болса да, әдепкі бойынша құрастыру жүйесіне автоматты түрде қосылады. ESP-IDF жалпы құрамдастарына freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv және cxx кіреді. Осы жалпы құрамдастарды пайдалану CMakeLists.txt файлын жазғанда қайталанатын жұмысты болдырмайды және оны қысқарақ етеді.
Конфигурация элементтерін қайта анықтау ережелері Әзірлеушілер әдепкі конфигурацияны қосу арқылы әдепкі конфигурация параметрлерін қоса алады. file жобаға sdkconfig.defaults деп аталады. Мысалыample, CONFIG_LOG_ қосу
50 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

DEFAULT_LEVEL_NONE = y әдепкі бойынша журнал деректерін басып шығармау үшін UART интерфейсін конфигурациялай алады. Сонымен қатар, белгілі бір мақсат үшін арнайы параметрлерді орнату қажет болса, конфигурация file sdkconfig.defaults.TARGET_NAME қосуға болады, мұнда TARGET_NAME esp32s2, esp32c3 және т.б. болуы мүмкін. Бұл конфигурация files жалпы әдепкі конфигурациямен компиляция кезінде sdkconfig ішіне импортталады file sdkconfig.defaults алдымен импортталады, содан кейін мақсатқа арналған конфигурация file, мысалы, sdkconfig.defaults.esp32c3. Бірдей атпен конфигурация элементтері болған жағдайда, соңғы конфигурация file бұрынғысын ауыстырады.
4.3.4 Компиляция сценарийіне кіріспе
ESP-IDF көмегімен жобаны әзірлеу кезінде әзірлеушілер бастапқы кодты жазып қана қоймай, сонымен қатар жоба мен құрамдас бөліктерге CMakeLists.txt жазуы керек. CMakeLists.txt — мәтін file, сонымен қатар компиляция нысандарының қатарын, компиляция конфигурациясының элементтерін және бастапқы кодты құрастыру процесін басқаруға арналған пәрмендерді анықтайтын компиляция сценарийі ретінде белгілі. ESP-IDF v4.3.2 компиляция жүйесі CMake негізінде жасалған. Түпнұсқа CMake функциялары мен пәрмендерін қолдаумен қатар, ол құрастыру сценарийлерін жазуды әлдеқайда жеңілдететін реттелетін функциялар қатарын анықтайды.
ESP-IDF компиляция сценарийлері негізінен жоба құрастыру сценарийін және құрамдас компиляция сценарийлерін қамтиды. Жобаның түбірлік каталогындағы CMakeLists.txt бүкіл жобаны құрастыру процесін басқаратын жоба құрастыру сценарийі деп аталады. Негізгі жоба құрастыру сценарийі әдетте келесі үш жолды қамтиды:
1. cmake_minimum_required(3.5 НҰСҚАУ) 2. қосу($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. жоба(myProject)
Олардың ішінде cmake_minimum_required (VERSION 3.5) бірінші жолға орналастырылуы керек, ол жоба талап ететін ең аз CMake нұсқасының нөмірін көрсету үшін пайдаланылады. CMake бағдарламасының жаңа нұсқалары әдетте ескі нұсқалармен кері үйлесімді, сондықтан үйлесімділікті қамтамасыз ету үшін жаңа CMake пәрмендерін пайдаланған кезде нұсқа нөмірін сәйкесінше реттеңіз.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) 4.3.3-бөлімде сипатталған компиляция жүйесінің әдепкі құрастыру ережелерін қоса, ESP-IDF компиляция жүйесінің алдын ала анықталған конфигурация элементтерін және пәрмендерін импорттайды. project(myProject) жобаның өзін жасайды және оның атын көрсетеді. Бұл атау соңғы екілік шығыс ретінде пайдаланылады file аты, яғни myProject.elf және myProject.bin.
Жобада бірнеше құрамдас, соның ішінде негізгі компонент болуы мүмкін. Әрбір құрамдастың жоғарғы деңгейлі каталогында CMakeLists.txt бар file, ол құрамдас құрастыру сценарийі деп аталады. Құрамдас компиляция сценарийлері негізінен құрамдас тәуелділіктерді, конфигурация параметрлерін, бастапқы кодты көрсету үшін пайдаланылады. files және тақырыпты қамтиды fileүшін
4-тарау. Даму ортасын орнату 51

құрастыру. ESP-IDF реттелетін idf_component_register функциясымен құрамдас құрастыру сценарийі үшін ең аз талап етілетін код келесідей:

1. idf_component_register(SRCS “src1.c”

2.

INCLUDE_DIRS «қосу»

3.

1-компонентті талап етеді)

SRCS параметрі көздің тізімін береді files құрамдастағы, егер бірнеше болса, бос орындармен бөлінген fileс. INCLUDE_DIRS параметрі жалпы тақырыптың тізімін береді file ағымдағы құрамдасқа тәуелді басқа құрамдастарды іздеу жолына қосылатын құрамдасқа арналған каталогтар. REQUIRES параметрі ағымдағы құрамдас үшін жалпы құрамдас тәуелділіктерді анықтайды. Компоненттерге олардың қай құрамдастарға тәуелді екенін анық көрсету қажет, мысалы, құрамдас2ге байланысты компонент1. Дегенмен, әдепкі бойынша барлық құрамдастарға тәуелді негізгі құрамдас үшін REQUIRES параметрін өткізіп жіберуге болады.

Сонымен қатар, түпнұсқа CMake пәрмендерін компиляция сценарийінде де пайдалануға болады. Мысалыample, жиынтық (VARIABLE “VALUE”) сияқты айнымалы мәндерді орнату үшін пәрмендер жиынын пайдаланыңыз.

4.3.5 Жалпы командаларға кіріспе
ESP-IDF кодты құрастыру процесінде CMake (жоба конфигурациялау құралы), Ninja (жоба құру құралы) және esptool (флеш құралы) пайдаланады. Әрбір құрал құрастыру, құрастыру және флэш процесінде әртүрлі рөл атқарады, сонымен қатар әртүрлі операциялық пәрмендерді қолдайды. Пайдаланушы жұмысын жеңілдету үшін ESP-IDF жоғарыдағы пәрмендерді жылдам шақыруға мүмкіндік беретін бірыңғай idf.py интерфейсін қосады.
Idf.py қолданбас бұрын мыналарды тексеріңіз:
· ESP-IDF ортасының IDF_PATH айнымалысы ағымдағы терминалға қосылды. · Пәрменді орындау каталогы – жобаның түбірлік каталогы, оның құрамына
жоба құрастыру сценарийі CMakeLists.txt.
idf.py жалпы командалары келесідей:
· idf.py –help: пәрмендер тізімін және оларды пайдалану нұсқауларын көрсету. · idf.py мақсатты орнату : taidf.py fullcleanrget компиляциясын орнату, мысалы
ауыстыру ретінде esp32c3 көмегімен. · idf.py menuconfig: menuconfig іске қосу, терминалдық графикалық конфигурация
конфигурация опцияларын таңдай немесе өзгерте алатын құрал және конфигурация нәтижелері sdkconfig ішінде сақталады. file. · idf.py құрастыру: кодты құрастыруды бастау. Аралық files және компиляция арқылы жасалған соңғы орындалатын бағдарлама әдепкі бойынша жобаның құрастыру каталогында сақталады. Компиляция процесі қадамдық болып табылады, яғни бір ғана көз file өзгертілген, тек өзгертілген file келесі жолы құрастырылады.

52 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

· idf.py clean: аралық өнімді тазалау files жоба компиляциясы арқылы жасалған. Бүкіл жоба келесі жинақта құрастыруға мәжбүр болады. CMake конфигурациясы мен menuconfig арқылы жасалған конфигурация модификациялары тазалау кезінде жойылмайтынын ескеріңіз.
· idf.py fullclean: бүкіл құрастыру каталогын, соның ішінде барлық CMake конфигурация шығысын жою fileс. Жобаны қайта құру кезінде CMake жобаны нөлден бастап конфигурациялайды. Бұл пәрменнің барлығын рекурсивті түрде жоятынын ескеріңіз files құрастыру каталогында, сондықтан оны сақтықпен және жоба конфигурациясын пайдаланыңыз file жойылмайды.
· idf.py жарқылы: екілік орындалатын бағдарламаның жыпылықтауы file мақсатты ESP32-C3 құрастыру арқылы жасалған. Опциялар -б және -б сәйкесінше сериялық порттың құрылғы атауын және жыпылықтау жылдамдығын орнату үшін пайдаланылады. Бұл екі опция көрсетілмесе, сериялық порт автоматты түрде анықталады және әдепкі беру жылдамдығы пайдаланылады.
· idf.py мониторы: мақсатты ESP32-C3 сериялық порт шығысын көрсету. -p опциясын хост тарапындағы сериялық порттың құрылғы атауын көрсету үшін пайдалануға болады. Сериялық портты басып шығару кезінде монитордан шығу үшін Ctrl+] пернелер тіркесімін басыңыз.
Жоғарыда келтірілген командаларды қажетінше біріктіруге болады. Мысалыample, idf.py құрастыру флэш мониторы пәрмені кодты құрастыруды орындайды, жыпылықтайды және сериялық порт мониторын ретімен ашады.
ESP-IDF компиляция жүйесі туралы көбірек білу үшін https://bookc3.espressif.com/build-system сайтына кіре аласыз.
4.4 Тәжірибе: Құрастыру Мысamp«Жыпылықтау» бағдарламасы
4.4.1 Мысample талдау
Бұл бөлім Blink бағдарламасын бұрынғы ретінде қабылдайдыampталдау үшін file нақты жобаның құрылымы мен кодтау ережелері егжей-тегжейлі. Blink бағдарламасы жарық диодты жыпылықтау әсерін жүзеге асырады, ал жоба ex каталогында орналасқанamples/get-started/blink, ол дереккөзді қамтиды file, конфигурация files және бірнеше компиляция сценарийлері.
Бұл кітапта ұсынылған смарт жарық жобасы осы бұрынғыға негізделгенampбағдарлама. Оны аяқтау үшін функциялар кейінгі тарауларға біртіндеп қосылады.
Бастапқы код Бүкіл әзірлеу процесін көрсету үшін Blink бағдарламасы esp32c3-iot-projects/құрылғы микробағдарламасына/1 жыпылықтауына көшірілді.
Blink жобасының каталог құрылымы files 4.15-суретте көрсетілген.
Blink жобасы тек бір негізгі каталогтан тұрады, ол арнайы құрамдас болып табылады
4-тарау. Даму ортасын орнату 53

4.15-сурет. File blink жобасының каталог құрылымы

4.3.2 бөлімінде сипатталғандай қосылуы керек. Негізгі каталог негізінен пайдаланушы бағдарламасына кіру нүктесі болып табылатын app_main() функциясының орындалуын сақтау үшін пайдаланылады. Blink жобасы компоненттер каталогын қамтымайды, себебі бұл бұрынғыampтек ESP-IDF-мен бірге келетін құрамдастарды пайдалану керек және қосымша құрамдастарды қажет етпейді. Жыпылықтау жобасына енгізілген CMakeLists.txt компиляция процесін бағыттау үшін пайдаланылады, ал Kconfig.projbuild осы бұрынғы конфигурация элементтерін қосу үшін пайдаланылады.ampмәзір конфигурациясындағы бағдарлама. Басқа қажетсіз files кодты құрастыруға әсер етпейді, сондықтан олар мұнда талқыланбайды. Blink жобасымен толық таныстыру files келесідей.

1. /*blink.c келесі тақырыпты қамтиды fileс*/

2. #қосу

//Стандартты C кітапханасының тақырыбы file

3. #include “freertos/freeRTOS.h” //FreeRTOS негізгі тақырыбы file

4. #“freertos/task.h” қосу

//FreeRTOS тапсырма тақырыбы file

5. #қосуға “sdkconfig.h”

//Конфигурация тақырыбы file kconfig арқылы жасалған

6. #“driver/gpio.h” қосу

//GPIO драйверінің тақырыбы file

Дереккөз file blink.c ішінде тақырыптар қатары бар fileфункция декларациясына сәйкес s

циялар. ESP-IDF әдетте стандартты кітапхана тақырыбын қосу ретін сақтайды files, FreeR-

TOS тақырыбы files, драйвер тақырыбы files, басқа компонент тақырыбы files және жоба тақырыбы files.

Тақырыптың реті files енгізілген соңғы компиляция нәтижесіне әсер етуі мүмкін, сондықтан көріңіз

әдепкі ережелерді орындаңыз. Айта кету керек, sdkconfig.h автоматты түрде жасалады

kconfig арқылы және тек idf.py menuconfig пәрмені арқылы конфигурациялауға болады.

Бұл тақырыптың тікелей модификациясы file қайта жазылады.

1. /*IDf.py menuconfig ішіндегі жарық диодыға сәйкес GPIO таңдай аласыз және menuconfig өзгерту нәтижесі CONFIG_BLINK мәні болып табылады.

_GPIO өзгертіледі. Сондай-ақ, макрос анықтамасын тікелей өзгертуге болады

осы жерде және CONFIG_BLINK_GPIO мәнін бекітілген мәнге өзгертіңіз.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO

3. void app_main(void)

4. {

5.

/*IO параметрін GPIO әдепкі функциясы ретінде конфигурациялаңыз, тарту режимін қосыңыз және

6.

енгізу және шығару режимдерін өшіру*/

7.

gpio_reset_pin(BLINK_GPIO);

54 ESP32-C3 Wireless Adventure: IoT бойынша толық нұсқаулық

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

/*GPIO шығыс режиміне орнату*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while(1) {
/*Журналды басып шығару*/ printf(“LEDn өшіру”); /*Жарық диодты өшіру (шығыстың төменгі деңгейі)*/ gpio_set_level(BLINK_GPIO, 0); /*Кідіріс (1000 мс)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf («LEDn қосу»); /*Жарық диодты қосу (шығыс жоғары деңгейі)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }

Blink ішіндегі app_main() функциясы бұрынғыample бағдарламасы пайдаланушы бағдарламалары үшін кіру нүктесі ретінде қызмет етеді. Бұл параметрлері және қайтарылатын мәні жоқ қарапайым функция. Бұл функция жүйе журналдың сериялық портын инициализациялау, бір/қос ядроны конфигурациялау және бақылаушыны теңшеу сияқты тапсырмаларды қамтитын инициализацияны аяқтағаннан кейін шақырылады.

app_main() функциясы main деп аталатын тапсырма контекстінде жұмыс істейді. Бұл тапсырманың стектің өлшемі мен басымдылығын menuconfig Componentconfig Common ESP-қа қатысты реттеуге болады.

Жарық диодты жыпылықтау сияқты қарапайым тапсырмалар үшін барлық қажетті кодты тікелей app_main() функциясында орындауға болады. Бұл әдетте жарық диодыға сәйкес GPIO инициализациясын және жарық диодты қосу және өшіру үшін while(1) циклін пайдалануды қамтиды. Сонымен қатар, жарық диоды жыпылықтауын өңдейтін жаңа тапсырма жасау үшін FreeRTOS API пайдалануға болады. Жаңа тапсырма сәтті жасалғаннан кейін app_main() функциясынан шығуға болады.

main/CMakeLists.txt мазмұны fileНегізгі құрамдас үшін құрастыру процесін басқаратын , келесідей:

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

Олардың ішінде main/CMakeLists.txt тек бір компиляция жүйесінің функциясын шақырады, яғни idf_component_register. Көптеген басқа құрамдастарға арналған CMakeLists.txt файлына ұқсас, blink.c SRCS және дереккөзге қосылады. fileSRCS-ке қосылған s құрастырылады. Сонымен қатар, CMakeLists.txt орналасқан жолды көрсететін «.» тақырыбын іздеу каталогтары ретінде INCLUDE_DIRS ішіне қосылуы керек. fileс. CMakeLists.txt мазмұны келесідей:
1. #v3.5 нұсқасын ағымдағы жоба қолдайтын ең ескі CMake нұсқасы ретінде көрсетіңіз 2. #V3.5-тен төмен нұсқаларды құрастыру жалғаспас бұрын жаңарту керек 3. cmake_minimum_required(НҰСҚА 3.5) 4. #ESP әдепкі CMake конфигурациясын қосыңыз -IDF компиляция жүйесі

4-тарау. Даму ортасын орнату 55

5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #“blink” атты жобаны жасаңыз 7. project(myProject)
Олардың ішінде түбірлік каталогтағы CMakeLists.txt негізінен $ENV{IDF_ PATH}/tools/cmake/project.cmake қамтиды, ол негізгі CMake конфигурациясы болып табылады. file ESP-IDF қамтамасыз етеді. Ол алдауға пайдаланылады

Құжаттар / Ресурстар

Espressif Systems ESP32-C3 Wireless Adventure [pdf] Пайдаланушы нұсқаулығы
ESP32-C3 Wireless Adventure, ESP32-C3, Wireless Adventure, Adventure

Анықтамалар

Пікір қалдырыңыз

Электрондық пошта мекенжайыңыз жарияланбайды. Міндетті өрістер белгіленген *