Садржај сакрити
2 ЕСП32-Ц3 бежична авантура
2.1 Свеобухватни водич за ИоТ

ЕСП32-Ц3 бежична авантура

ЕСП32-Ц3 бежична авантура

Свеобухватни водич за ИоТ

Еспрессиф Системс 12. јун 2023

Спецификације

  • Производ: ЕСП32-Ц3 Вирелесс Адвентуре
  • Произвођач: Еспрессиф Системс
  • Датум: 12

Упутства за употребу производа

Припрема

Пре употребе ЕСП32-Ц3 Вирелесс Адвентуре, уверите се да јесте
упознати са концептима и архитектуром интернета ствари. Ово ће помоћи
разумете како се уређај уклапа у већи ИоТ екосистем
и његове потенцијалне примене у паметним кућама.

Увод и пракса ИоТ пројеката

У овом одељку ћете научити о типичним ИоТ пројектима,
укључујући основне модуле за уобичајене ИоТ уређаје, основне модуле
клијентских апликација и уобичајених ИоТ платформи у облаку. Ово ће
пружити вам основу за разумевање и стварање вашег
сопствене ИоТ пројекте.

Пракса: Пројекат Смарт Лигхт

У овом практичном пројекту научићете како да креирате паметно
светло користећи ЕСП32-Ц3 Вирелесс Адвентуре. Структура пројекта,
функције, припрема хардвера и процес развоја ће бити
детаљно објашњено.

Структура пројекта

Пројекат се састоји од неколико компоненти, укључујући
ЕСП32-Ц3 бежична авантура, ЛЕД диоде, сензори и облак
бацкенд.

Функције пројекта

Пројекат паметног светла вам омогућава да контролишете осветљеност и
боја ЛЕД диода на даљину преко мобилне апликације или web
интерфејс.

Припрема хардвера

Да бисте се припремили за пројекат, мораћете да сакупите
неопходне хардверске компоненте, као што је ЕСП32-Ц3 Вирелесс
Адвентуре плоча, ЛЕД диоде, отпорници и напајање.

Развојни процес

Процес развоја укључује постављање развоја
окружење, писање кода за контролу ЛЕД диода, повезивање на
цлоуд бацкенд, и тестирање функционалности смарт
светлости.

Увод у ЕСП РаинМакер

ЕСП РаинМакер је моћан оквир за развој интернета ствари
уређаја. У овом одељку ћете научити шта је ЕСП РаинМакер и
како се може применити у вашим пројектима.

Шта је ЕСП РаинМакер?

ЕСП РаинМакер је платформа заснована на облаку која пружа скуп
алати и услуге за изградњу и управљање ИоТ уређајима.

Имплементација ЕСП РаинМакер-а

Овај одељак објашњава различите компоненте укључене у
имплементација ЕСП РаинМакер-а, укључујући услугу за полагање права,
РаинМакер агент, цлоуд бацкенд и РаинМакер клијент.

Вежбање: Кључне тачке за развој са ЕСП РаинМакер-ом

У овом одељку о пракси научићете о кључним тачкама за
узети у обзир када развијате са ЕСП РаинМакер-ом. Ово укључује уређај
полагање права, синхронизацију података и управљање корисницима.

Карактеристике ЕСП РаинМакер-а

ЕСП РаинМакер нуди разне функције за управљање корисницима, крај
корисника и администратора. Ове карактеристике омогућавају једноставан уређај
подешавање, даљинско управљање и надзор.

Постављање развојног окружења

Овај одељак пружа крајview од ЕСП-ИДФ (Еспрессиф ИоТ
Развојни оквир), који је званични развојни оквир
за уређаје засноване на ЕСП32. То објашњава различите верзије
ЕСП-ИДФ и како поставити развојно окружење.

Развој хардвера и драјвера

Дизајн хардвера Смарт Лигхт производа заснованих на ЕСП32-Ц3

Овај одељак се фокусира на хардверски дизајн паметног светла
производи засновани на ЕСП32-Ц3 Вирелесс Адвентуре. Покрива
карактеристике и састав паметних светлих производа, као и
хардверски дизајн система језгра ЕСП32-Ц3.

Карактеристике и састав Смарт Лигхт производа

Овај пододељак објашњава карактеристике и компоненте које чине
до паметних светлих производа. Разматра се различите функционалности
и разматрања дизајна за креирање паметних светала.

Дизајн хардвера ЕСП32-Ц3 Цоре Систем

Хардверски дизајн система језгра ЕСП32-Ц3 укључује напајање
напајање, секвенца укључивања, ресетовање система, СПИ блиц, извор такта,
и разматрања РФ и антене. Овај пододељак пружа
детаљне информације о овим аспектима.

ФАК

П: Шта је ЕСП РаинМакер?

О: ЕСП РаинМакер је платформа заснована на облаку која пружа алате
и услуге за изградњу и управљање ИоТ уређајима. То поједностављује
процес развоја и омогућава једноставно подешавање уређаја, даљински
контролу и праћење.

П: Како могу да подесим развојно окружење за
ЕСП32-Ц3?

О: Да бисте подесили развојно окружење за ЕСП32-Ц3, потребно вам је
да инсталирате ЕСП-ИДФ (Еспрессиф ИоТ развојни оквир) и
конфигуришите га према приложеним упутствима. ЕСП-ИДФ је
званични развојни оквир за уређаје засноване на ЕСП32.

П: Које су карактеристике ЕСП РаинМакер-а?

О: ЕСП РаинМакер нуди различите функције, укључујући корисничке
управљање, функције крајњег корисника и функције администратора. Управљање корисницима
омогућава лако тражење уређаја и синхронизацију података. Крајњи корисник
функције омогућавају даљинско управљање уређајима преко мобилне апликације или
web интерфејс. Функције администратора пружају алатке за праћење уређаја
и менаџмент.

ЕСП32-Ц3 бежична авантура
Свеобухватни водич за ИоТ
Еспрессиф Системс 12. јун 2023

Садржај

И Припрема

1

1 Увод у ИоТ

3

1.1 Архитектура интернета ствари. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Примена Интернета ствари у паметним домовима . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Увод и пракса ИоТ пројеката

9

2.1 Увод у типичне ИоТ пројекте . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Основни модули за уобичајене ИоТ уређаје . . . . . . . . . . . . . . . . . 9

2.1.2 Основни модули клијентских апликација . . . . . . . . . . . . . . . . . . . 10

2.1.3 Увод у заједничке ИоТ Цлоуд платформе . . . . . . . . . . . . . . 11

2.2 Вежбање: Пројекат паметног светла . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Структура пројекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 Функције пројекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 Припрема хардвера . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 Развојни процес . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Увод у ЕСП РаинМакер

19

3.1 Шта је ЕСП РаинМакер? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Имплементација ЕСП РаинМакер-а. . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Услуга подношења захтева . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 РаинМакер Агент. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.3 Цлоуд Бацкенд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.4 РаинМакер клијент . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Вежбање: Кључне тачке за развој са ЕСП РаинМакер-ом . . . . . . . . . . . . 25

3.4 Карактеристике ЕСП РаинМакер-а. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 Управљање корисницима . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 Карактеристике крајњег корисника . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 Админ функције . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Постављање развојног окружења

31

4.1 ЕСП-ИДФ Готовоview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 ЕСП-ИДФ верзије . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ЕСП-ИДФ Гит радни ток . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Избор одговарајуће верзије . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Прекоview ЕСП-ИДФ СДК директоријума . . . . . . . . . . . . . . . . . . . . 34 4.2 Постављање ЕСП-ИДФ развојног окружења . . . . . . . . . . . . . . . . . 38 4.2.1 Постављање ЕСП-ИДФ развојног окружења на Линук . . . . . . . . 38 4.2.2 Подешавање развојног окружења ЕСП-ИДФ на Виндовс . . . . . . 40 4.2.3 Постављање ЕСП-ИДФ развојног окружења на Мац . . . . . . . . . 45 4.2.4 Инсталирање ВС кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Увод у развојна окружења трећих страна . . . . . . . . 46 4.3 ЕСП-ИДФ систем компилације . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Прampле Аналисис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Састављање Блинк програма . . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Трептање програма Блинк . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Анализа дневника серијског порта програма Блинк . . . . . . . . . . . . . . 60 4.5 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

ИИ Развој хардвера и драјвера

65

5 Хардверски дизајн Смарт Лигхт производа заснованих на ЕСП32-Ц3

67

5.1 Карактеристике и састав Смарт Лигхт производа . . . . . . . . . . . . . . . 67

5.2 Дизајн хардвера основног система ЕСП32-Ц3 . . . . . . . . . . . . . . . . . . . 70

5.2.1 Напајање . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 Редослед укључивања и ресетовање система . . . . . . . . . . . . . . . . . . 74

5.2.3 СПИ Фласх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.4 Извор сата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 РФ и антена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 Игле за везивање . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 ГПИО и ПВМ контролер. . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Вежбање: Изградња система паметног осветљења са ЕСП32-Ц3 . . . . . . . . . . . . . 80

5.3.1 Одабир модула . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 Конфигурисање ГПИО ПВМ сигнала . . . . . . . . . . . . . . . . . . . . 82

5.3.3 Преузимање фирмвера и интерфејса за отклањање грешака. . . . . . . . . . . . 82

5.3.4 Смернице за РФ дизајн . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Смернице за пројектовање извора напајања . . . . . . . . . . . . . . . . . . . 86 5.4 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Развој драјвера

87

6.1 Процес развоја драјвера . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 ЕСП32-Ц3 периферне апликације . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 Основе ЛЕД драјвера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 Простори боја . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 ЛЕД драјвер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 Затамњење ЛЕД диода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 Увод у ПВМ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 Развој драјвера за ЛЕД затамњење . . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 Непроменљиво складиштење (НВС) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 ЛЕД ПВМ контролер (ЛЕДЦ) . . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 ЛЕД ПВМ програмирање . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 Вежбање: Додавање драјвера у пројекат Смарт Лигхт . . . . . . . . . . . . . . . . . 103

6.5.1 Управљачки програм дугмета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 Драјвер за ЛЕД затамњење . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

ИИИ Бежична комуникација и контрола

109

7 Ви-Фи конфигурација и веза

111

7.1 Основе Ви-Фи везе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Увод у Ви-Фи . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 Еволуција ИЕЕЕ 802.11. . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Ви-Фи концепти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Ви-Фи веза . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 Основе Блуетоотх-а . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 Увод у Блуетоотх . . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 Блуетоотх концепти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 Блуетоотх веза . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Конфигурација Ви-Фи мреже . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Водич за конфигурацију Ви-Фи мреже . . . . . . . . . . . . . . . . . . . . 131

7.3.2 СофтАП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.3 СмартЦонфиг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.4 Блуетоотх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7.3.5 Друге методе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 Ви-Фи програмирање . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 Ви-Фи компоненте у ЕСП-ИДФ . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Вежба: Ви-Фи веза . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Вежба: Паметна Ви-Фи веза . . . . . . . . . . . . . . . . . . . . . 145
7.5 Вежбање: Ви-Фи конфигурација у пројекту Смарт Лигхт . . . . . . . . . . . . . . . 156 7.5.1 Ви-Фи веза у Смарт Лигхт пројекту . . . . . . . . . . . . . . . . . 156 7.5.2 Смарт Ви-Фи конфигурација . . . . . . . . . . . . . . . . . . . . . . . . . 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 Мултицаст апликацијски протокол мДНС за локално откривање. . . . . . . . 176

8.3 Заједнички комуникациони протоколи за локалне податке . . . . . . . . . . . . . . . 179

8.3.1 Протокол контроле преноса (ТЦП) . . . . . . . . . . . . . . . . . . . 179

8.3.2 Протокол за пренос хипертекста (ХТТП) . . . . . . . . . . . . . . . . . . . 185

8.3.3 Корисник Даtagрам протокол (УДП) . . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 Протокол ограничене апликације (ЦоАП) . . . . . . . . . . . . . . . . 192

8.3.5 Блуетоотх протокол . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3.6 Резиме протокола за комуникацију података . . . . . . . . . . . . . . . 203

8.4 Гаранција безбедности података . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 Увод у безбедност транспортног слоја (ТЛС) . . . . . . . . . . . . . 207

8.4.2 Увод у Даtagрам Сигурност транспортног слоја (ДТЛС) . . . . . . . 213

8.5 Вежбање: Локална контрола у пројекту Смарт Лигхт . . . . . . . . . . . . . . . . . . 217

8.5.1 Креирање локалног контролног сервера заснованог на Ви-Фи . . . . . . . . . . . . . . . 217

8.5.2 Провера функционалности локалне контроле помоћу скрипти. . . . . . . . . . . 221

8.5.3 Креирање локалног контролног сервера заснованог на Блуетоотх-у . . . . . . . . . . . . 222

8.6 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9 Контрола облака

225

9.1 Увод у даљински управљач . . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 Протоколи за комуникацију података у облаку . . . . . . . . . . . . . . . . . . . . . . 226

9.2.1 МКТТ Увод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 МКТТ принципи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 МКТТ формат поруке . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Поређење протокола . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Подешавање МКТТ брокера на Линук и Виндовс . . . . . . . . . . . . 233 9.2.6 Подешавање МКТТ клијента на основу ЕСП-ИДФ . . . . . . . . . . . . . . . . 235 9.3 Обезбеђивање МКТТ безбедности података . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Значење и функција сертификата . . . . . . . . . . . . . . . . . . . 237 9.3.2 Локално генерисање сертификата . . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 Конфигурисање МКТТ брокера . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 Конфигурисање МКТТ клијента . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Вежбање: Даљинско управљање преко ЕСП РаинМакер-а . . . . . . . . . . . . . . . . 243 9.4.1 Основе ЕСП РаинМакер-а . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Позадински комуникациони протокол чворова и облака . . . . . . . . . . . 244 9.4.3 Комуникација између клијента и Цлоуд Бацкенда . . . . . . . . . . . 249 9.4.4 Улоге корисника . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Основне услуге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Смарт Лигхт Екampле . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 РаинМакер апликација и интеграције треће стране . . . . . . . . . . . . . . . 262 9.5 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 Развој апликација за паметне телефоне

269

10.1 Увод у развој апликација за паметне телефоне . . . . . . . . . . . . . . . . . . 269

10.1.1 Готовоview развоја апликација за паметне телефоне. . . . . . . . . . . . . . . 270

10.1.2 Структура Андроид пројекта . . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 Структура иОС пројекта . . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Животни циклус Андроид активности . . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 Животни циклус иОС-а ViewКонтролор . . . . . . . . . . . . . . . . . . . . . . 273

10.2 Креирање пројекта нове апликације за паметне телефоне . . . . . . . . . . . . . . . . . . . . . 275

10.2.1 Припрема за Андроид развој . . . . . . . . . . . . . . . . . . . 275

10.2.2 Креирање новог Андроид пројекта . . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 Додавање зависности за МиРаинмакер . . . . . . . . . . . . . . . . . 276

10.2.4 Захтев за дозволу у Андроиду. . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 Припрема за развој иОС-а . . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 Креирање новог иОС пројекта . . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 Додавање зависности за МиРаинмакер . . . . . . . . . . . . . . . . . 279

10.2.8 Захтев за дозволу у иОС-у. . . . . . . . . . . . . . . . . . . . . . . . . 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 Увод у РаинМакер АПИ-је . . . . . . . . . . . . . . . . . . . . . . 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 Више Цлоуд АПИ-ја . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 Надоградња фирмвера и управљање верзијама

321

11.1 Надоградња фирмвера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 Готовоview партиционих табела . . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 Процес покретања фирмвера . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 Готовоview ОТА механизма. . . . . . . . . . . . . . . . . . . . . 326

11.2 Управљање верзијом фирмвера . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 Означавање фирмвера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 Враћање и спречавање враћања . . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 Вежба: ОТА (Овер-тхе-аир) прampле . . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 Надоградња фирмвера преко локалног хоста. . . . . . . . . . . . . . . . . 332

11.3.2 Надоградња фирмвера преко ЕСП РаинМакер-а. . . . . . . . . . . . . . . 335

11.4 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

ИВ Оптимизација и масовна производња

343

12 Управљање напајањем и оптимизација ниске потрошње

345

12.1 ЕСП32-Ц3 Управљање напајањем . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 Динамичко скалирање фреквенције . . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 Конфигурација управљања напајањем . . . . . . . . . . . . . . . . . . . . 348

12.2 Режим ниске потрошње ЕСП32-Ц3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Отклањање грешака ГПИО . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

12.4 Вежбање: Управљање напајањем у пројекту Смарт Лигхт . . . . . . . . . . . . . . . 363

12.4.1 Конфигурисање функције управљања напајањем . . . . . . . . . . . . . . . . . 364

12.4.2 Коришћење закључавања управљања напајањем. . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 Провера потрошње енергије . . . . . . . . . . . . . . . . . . . . . . . 366

12.5 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 Побољшане безбедносне функције уређаја

369

13.1 Готовоview безбедности података ИоТ уређаја . . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 Зашто осигурати податке о ИоТ уређајима? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 Основни захтеви за безбедност података ИоТ уређаја . . . . . . . . . . . . 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 Увод у Фласх шему шифровања . . . . . . . . . . . . . . . . . 376

13.3.3 Складиштење кључева за флеш шифровање . . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 Радни режим Фласх енкрипције . . . . . . . . . . . . . . . . . . . . 380

13.3.5 Процес флеш шифровања . . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 Увод у НВС шифровање . . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 Докampлесови Фласх енкрипције и НВС енкрипције. . . . . . . . . . . 384

13.4 Заштита легитимитета података . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 Увод у дигитални потпис . . . . . . . . . . . . . . . . . . . . . 386

13.4.2 Готовоview схеме безбедног покретања. . . . . . . . . . . . . . . . . . . . . 388

13.4.3 Увод у софтверско безбедно покретање. . . . . . . . . . . . . . . . . . . 388 13.4.4 Увод у хардверско безбедно покретање . . . . . . . . . . . . . . . . . . 390 13.4.5 Прampлес . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Вежбање: Сигурносне карактеристике у масовној производњи . . . . . . . . . . . . . . . . . . 396 13.5.1 Фласх шифровање и безбедно покретање . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Омогућавање Фласх шифровања и безбедног покретања помоћу пакетних Фласх алата . . 397 13.5.3 Омогућавање флеш шифровања и безбедног покретања у Смарт Лигхт пројекту . . . 398 13.6 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 Нарезивање фирмвера и тестирање за масовну производњу

399

14.1 Нарезивање фирмвера у масовној производњи . . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 Дефинисање партиција података . . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 Нарезивање фирмвера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 Тестирање масовне производње . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 Вежбање: Подаци о масовној производњи у пројекту Смарт Лигхт . . . . . . . . . . . . . 404

14.4 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 ЕСП Инсигхтс: Платформа за даљинско праћење

405

15.1 Увод у ЕСП Инсигхтс . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 Почетак рада са ЕСП Инсигхтс . . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 Почетак рада са ЕСП Инсигхтс у пројекту есп-инсигхтс . . . . . . 409

15.2.2 Покретање прampле у пројекту есп-инсигхтс. . . . . . . . . . . . . . . 411

15.2.3 Извјештавање о информацијама Цоредумп . . . . . . . . . . . . . . . . . . . . . 411

15.2.4 Прилагођавање евиденције интересовања . . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 Пријављивање разлога поновног покретања. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 Извештавање о прилагођеним метрикама . . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 Вежбање: Коришћење ЕСП Инсигхтс у пројекту Смарт Лигхт . . . . . . . . . . . . . . . 416

15.4 Резиме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

Увод
ЕСП32-Ц3 је једнојезгарни Ви-Фи и Блуетоотх 5 (ЛЕ) микроконтролер СоЦ, заснован на РИСЦ-В архитектури отвореног кода. Постиже прави баланс снаге, И/О могућности и сигурности, нудећи на тај начин оптимално исплативо решење за повезане уређаје. Да бисте приказали различите примене породице ЕСП32-Ц3, ова књига Еспрессиф-а ће вас одвести на занимљиво путовање кроз АИоТ, почевши од основа развоја ИоТ пројеката и подешавања окружења до практичнихampлес. Прва четири поглавља говоре о Интернету ствари, ЕСП РаинМакер-у и ЕСП-ИДФ-у. Поглавље 5 и 6 укратко о дизајну хардвера и развоју драјвера. Како будете напредовали, открићете како да конфигуришете свој пројекат преко Ви-Фи мрежа и мобилних апликација. Коначно, научићете да оптимизујете свој пројекат и ставите га у масовну производњу.
Ако сте инжењер у сродним областима, софтверски архитекта, наставник, студент или било ко ко се интересује за Интернет ствари, ова књига је за вас.
Можете преузети код нпрampкоришћени у овој књизи са Еспрессифовог сајта на ГитХуб-у. За најновије информације о развоју ИоТ-а, пратите наш званични налог.

Предговор
Информатизирајући свет
Јашући на таласу интернета, Интернет ствари (ИоТ) је направио свој велики деби и постао нова врста инфраструктуре у дигиталној економији. Да би технологију приближио јавности, Еспрессиф Системс ради на визији да програмери из свих сфера живота могу да користе ИоТ за решавање неких од најхитнијих проблема нашег времена. Свет „Интелигентне мреже свих ствари“ је оно што очекујемо од будућности.
Дизајнирање сопствених чипова чини критичну компоненту те визије. То ће бити маратон, који захтева сталне продоре према технолошким границама. Од „Гаме Цхангер“ ЕСП8266 до серије ЕСП32 која интегрише Ви-Фи и Блуетоотхр (ЛЕ) повезивост, праћена ЕСП32-С3 опремљеним АИ убрзањем, Еспрессиф никада не престаје да истражује и развија производе за АИоТ решења. Са нашим софтвером отвореног кода, као што су ИоТ Девелопмент Фрамеворк ЕСП-ИДФ, Месх Девелопмент Фрамеворк ЕСП-МДФ и Девице Цоннецтивити Платформ ЕСП РаинМакер, направили смо независни оквир за изградњу АИоТ апликација.
Од јула 2022. године, кумулативне испоруке Еспрессиф-ових ИоТ чипсета су премашиле 800 милиона, што је водећи на тржишту Ви-Фи МЦУ и покреће огроман број повезаних уређаја широм света. Тежња за изврсношћу чини сваки Еспрессиф производ великим хитом због високог нивоа интеграције и економичности. Издавање ЕСП32-Ц3 означава значајну прекретницу Еспрессиф-ове саморазвијене технологије. То је једнојезгарни, 32-битни, РИСЦ-В базиран МЦУ са 400КБ СРАМ-а, који може да ради на 160МХз. Има интегрисан Ви-Фи од 2.4 ГХз и Блуетоотх 5 (ЛЕ) са подршком за дуги домет. Постиже фину равнотежу снаге, И/О могућности и сигурности, нудећи на тај начин оптимално исплативо решење за повезане уређаје. Заснована на тако моћном ЕСП32-Ц3, ова књига је намењена да помогне читаоцима да разумеју знање везано за интернет ствари са детаљним илустрацијама и практичним примерима.ampлес.
Зашто смо написали ову књигу?
Еспрессиф Системс је више од компаније за производњу полупроводника. То је такође компанија за ИоТ платформу, која увек тежи открићима и иновацијама у области технологије. У исто време, Еспрессиф је отворио и поделио свој сопствени оперативни систем и софтверски оквир са заједницом, формирајући јединствени екосистем. Инжењери, произвођачи и технолошки ентузијасти активно развијају нове софтверске апликације засноване на Еспрессифовим производима, слободно комуницирају и деле своја искуства. Све време можете видети фасцинантне идеје програмера на различитим платформама, као што су ИоуТубе и ГитХуб. Популарност Еспрессифових производа подстакла је све већи број аутора који су произвели преко 100 књига заснованих на Еспрессиф чипсетима, на више од десет језика, укључујући енглески, кинески, немачки, француски и јапански.

Подршка и поверење партнера у заједници је оно што подстиче Еспрессифове континуиране иновације. „Настојимо да наши чипови, оперативни системи, оквири, решења, облак, пословна пракса, алати, документација, списи, идеје итд. буду све релевантнији за одговоре који су људима потребни у најхитнијим проблемима савременог живота. Ово је Еспрессифова највећа амбиција и морални компас.” рекао је господин Тео Свее Анн, оснивач и извршни директор Еспрессифа.
Еспрессиф цени читање и идеје. Како континуирана надоградња ИоТ технологије поставља веће захтеве пред инжењере, како можемо помоћи већем броју људи да брзо савладају ИоТ чипове, оперативне системе, софтверске оквире, шеме апликација и производе за услуге у облаку? Како се каже, боље је научити човека да пеца него да му да рибу. Током сесије размишљања, пало нам је на памет да бисмо могли да напишемо књигу како бисмо систематски разврстали кључно знање о развоју интернета ствари. Успели смо, брзо окупили групу виших инжењера и комбиновали искуство техничког тима у уграђеном програмирању, развоју ИоТ хардвера и софтвера, што је све допринело објављивању ове књиге. У процесу писања, трудили смо се да будемо објективни и поштени, лишени чауре, и да користимо сажете изразе да испричамо сложеност и шарм Интернета ствари. Пажљиво смо сумирали уобичајена питања, упутили се на повратне информације и сугестије заједнице, како бисмо јасно одговорили на питања на која се сусрећу у процесу развоја, и пружили практичне смернице за развој ИоТ-а за релевантне техничаре и доносиоце одлука.
Боок Струцтуре
Ова књига има перспективу усредсређену на инжењера и излаже неопходна знања за развој ИоТ пројеката корак по корак. Састоји се из четири дела, и то:
· Припрема (Поглавље 1): Овај део представља архитектуру ИоТ-а, типичан оквир ИоТ пројекта, ЕСП РаинМакерр цлоуд платформу и развојно окружење ЕСП-ИДФ, како би се поставила чврста основа за развој ИоТ пројеката.
· Развој хардвера и драјвера (Поглавље 5): Засновано на ЕСП6-Ц32 чипсету, овај део елаборира минимални хардверски систем и развој драјвера, и имплементира контролу затамњивања, оцењивања боја и бежичне комуникације.
· Бежична комуникација и контрола (поглавље 7): Овај део објашњава интелигентну шему Ви-Фи конфигурације засновану на ЕСП11-Ц32 чипу, протоколима локалне и клауд контроле, као и локалној и даљинској контроли уређаја. Такође пружа шеме за развој апликација за паметне телефоне, надоградњу фирмвера и управљање верзијама.
· Оптимизација и масовна производња (Поглавље 12-15): Овај део је намењен напредним ИоТ апликацијама, фокусирајући се на оптимизацију производа у управљању напајањем, оптимизацију мале потрошње и побољшану безбедност. Такође уводи нарезивање и тестирање фирмвера у масовној производњи и начин дијагностиковања статуса покретања и евиденције фирмвера уређаја преко платформе за даљинско праћење ЕСП Инсигхтс.

О изворном коду
Читаоци могу покренути екampпрограма у овој књизи, било ручним уносом кода или коришћењем изворног кода који прати књигу. Наглашавамо комбинацију теорије и праксе и тако у скоро свако поглавље постављамо део Пракса заснован на пројекту Смарт Лигхт. Сви кодови су отвореног кода. Читаоци су добродошли да преузму изворни код и дискутују о њему у одељцима који се односе на ову књигу на ГитХубу и нашем званичном форуму есп32.цом. Отворени код ове књиге подлеже условима Апацхе лиценце 2.0.
Напомена аутора
Ову књигу званично производи Еспрессиф Системс, а написали су је виши инжењери компаније. Погодан је за менаџере и особље за истраживање и развој у индустријама везаним за интернет ствари, наставнике и студенте сродних смерова и ентузијасте у области Интернета ствари. Надамо се да ова књига може послужити као приручник за рад, референца и књига поред кревета, да будемо као добар учитељ и пријатељ.
Приликом састављања ове књиге осврнули смо се на неке релевантне резултате истраживања стручњака, научника и техничара у земљи и иностранству и потрудили смо се да их цитирамо у складу са академским нормама. Међутим, неизбежно је да буде неких пропуста, па овим путем желимо да изразимо дубоко поштовање и захвалност свим релевантним ауторима. Осим тога, цитирали смо информације са интернета, па се захваљујемо оригиналним ауторима и издавачима и извињавамо се што не можемо навести извор сваке информације.
Да бисмо произвели књигу високог квалитета, организовали смо рунде интерних дискусија и учили из сугестија и повратних информација пробних читалаца и уредника издавача. Ево, желимо да Вам се још једном захвалимо на помоћи која је све допринела овом успешном раду.
На крају, али најважније, хвала свима у Еспрессифу који су се толико трудили на рођењу и популаризацији наших производа.
Развој ИоТ пројеката укључује широк спектар знања. Ограничени на дужину књиге, као и ниво и искуство аутора, пропусти су неизбежни. Стога љубазно молимо да стручњаци и читаоци критикују и исправљају наше грешке. Ако имате било какве предлоге за ову књигу, контактирајте нас на боок@еспрессиф.цом. Радујемо се вашим повратним информацијама.

Како користити ову књигу?
Код пројеката у овој књизи је отвореног кода. Можете га преузети из нашег ГитХуб репозиторија и поделити своја размишљања и питања на нашем званичном форуму. ГитХуб: хттпс://гитхуб.цом/еспрессиф/боок-есп32ц3-иот-пројецтс Форум: хттпс://ввв.есп32.цом/боокц3 У књизи ће бити делова истакнути као што је приказано у наставку.
Изворни код У овој књизи стављамо нагласак на комбинацију теорије и праксе и тако постављамо одељак Пракса о пројекту Смарт Лигхт у скоро свако поглавље. Одговарајући кораци и изворна страница биће означени између два реда која почињу са tag Изворни код.
НАПОМЕНА/САВЕТИ Овде можете пронаћи неке критичне информације и подсетнике за успешно отклањање грешака у вашем програму. Они ће бити означени између две дебеле линије које почињу са tag НАПОМЕНА или САВЕТИ.
Већина команди у овој књизи се извршава под Линуком, на основу знака „$“. Ако команда захтева привилегије суперкорисника да би се извршила, промпт ће бити замењен са „#“. Командни редак на Мац системима је „%“, као што се користи у одељку 4.2.3 Инсталирање ЕСП-ИДФ-а на Мац.
Основни текст ове књиге биће штампан у Повељи, док ће код прampдатотеке, компоненте, функције, променљиве, код file имена, директоријуми кодова и стрингови ће бити у Цоуриер Нев.
Команде или текстови које корисник треба да унесе и команде које се могу унети притиском на тастер „Ентер“ биће одштампане подебљаним словима Цоуриер Нев. Дневници и блокови кодова биће представљени у светлоплавим оквирима.
Exampле:
Друго, користите есп-идф/цомпонентс/нвс фласх/нвс партитион генератор/нвс партицију ген.пи да генеришете бинарну НВС партицију file на развојном хосту са следећом командом:
$ питхон $ИДФ ПАТХ/цомпонентс/нвс фласх/нвс генератор партиција/нвс партиција ген.пи –инпут масс прод.цсв –оутпут масс прод.бин –сизе НВС ПАРТИТИОН СИЗЕ

Поглавље 1

Увод

да

ИоТ

Крајем 20. века, са успоном компјутерских мрежа и комуникационих технологија, Интернет се брзо интегрисао у животе људи. Како Интернет технологија наставља да сазрева, родила се идеја о Интернету ствари (ИоТ). Буквално, ИоТ значи Интернет где су ствари повезане. Док оригинални Интернет разбија границе простора и времена и сужава дистанцу између „особе и особе“, ИоТ чини „ствари“ важним учесником, приближавајући „људе“ и „ствари“. У догледној будућности, ИоТ ће постати покретачка снага информационе индустрије.
Дакле, шта је Интернет ствари?
Тешко је прецизно дефинисати Интернет ствари, јер се његово значење и обим стално развијају. Године 1995. Бил Гејтс је први пут изнео идеју о Интернету ствари у својој књизи Тхе Роад Ахеад. Једноставно речено, ИоТ омогућава објектима да размењују информације једни са другима путем Интернета. Његов крајњи циљ је успостављање „Интернета свега“. Ово је рана интерпретација Интернета ствари, као и фантазија о технологији будућности. Тридесет година касније, са брзим развојем економије и технологије, фантазија постаје стварност. Од паметних уређаја, паметних домова, паметних градова, интернета возила и носивих уређаја, до „метаверзума“ подржаног ИоТ технологијама, нови концепти се стално појављују. У овом поглављу ћемо почети са објашњењем архитектуре Интернета ствари, а затим ћемо представити најчешћу ИоТ апликацију, паметни дом, како бисмо вам помогли да стекнете јасно разумевање ИоТ-а.
1.1 Архитектура интернета ствари
Интернет ствари укључује више технологија које имају различите потребе и облике примене у различитим индустријама. Да би се средила структура, кључне технологије и карактеристике примене ИоТ-а, неопходно је успоставити јединствену архитектуру и стандардни технички систем. У овој књизи, архитектура Интернета ствари је једноставно подељена на четири слоја: слој перцепције и контроле, слој мреже, слој платформе и слој апликације.
Слој перцепције и контроле Као најосновнији елемент архитектуре ИоТ-а, слој перцепције и контроле је језгро за реализацију свеобухватног откривања ИоТ-а. Његова главна функција је да прикупља, идентификује и контролише информације. Састоји се од разних уређаја са способношћу перцепције,
3

идентификацију, контролу и извршење, и одговоран је за преузимање и анализу података као што су својства материјала, трендови понашања и статус уређаја. На овај начин ИоТ препознаје стварни физички свет. Осим тога, слој такође може да контролише статус уређаја.
Најчешћи уређаји овог слоја су различити сензори, који играју важну улогу у прикупљању и идентификацији информација. Сензори су као људски чулни органи, као што су фотоосетљиви сензори који су једнаки виду, акустични сензори слуху, гасни сензори мириса и сензори осетљиви на притисак и температуру за додир. Са свим овим „чулним органима“, објекти постају „живи“ и способни за интелигентну перцепцију, препознавање и манипулацију физичким светом.
Мрежни слој Главна функција мрежног слоја је да преноси информације, укључујући податке добијене од перцепционог и контролног слоја до одређеног циља, као и команде издате са слоја апликације назад у слој перцепције и контроле. Он служи као важан комуникациони мост који повезује различите слојеве ИоТ система. Да би се успоставио основни модел Интернета ствари, укључује два корака за интеграцију објеката у мрежу: приступ Интернету и пренос преко Интернета.
Приступ Интернету Интернету омогућава међусобну везу између особе и особе, али не укључује ствари у велику породицу. Пре појаве ИоТ-а, већина ствари није била „мрежна“. Захваљујући континуираном развоју технологије, ИоТ успева да повеже ствари са Интернетом, чиме остварује међусобну повезаност између „људи и ствари“, и „ствари и ствари“. Постоје два уобичајена начина за имплементацију Интернет везе: приступ ожиченој мрежи и приступ бежичној мрежи.
Методе приступа жичаној мрежи укључују Етхернет, серијску комуникацију (нпр. РС-232, РС-485) и УСБ, док приступ бежичној мрежи зависи од бежичне комуникације, која се даље може поделити на бежичну комуникацију кратког домета и бежичну комуникацију великог домета.
Бежична комуникација кратког домета укључује ЗигБее, Блуетоотхр, Ви-Фи, комуникацију блиског поља (НФЦ) и радиофреквентну идентификацију (РФИД). Бежична комуникација великог домета укључује побољшану комуникацију типа машине (еМТЦ), ЛоРа, ускопојасни интернет ствари (НБ-ИоТ), 2Г, 3Г, 4Г, 5Г, итд.
Пренос путем Интернета Различити начини приступа Интернету доводе до одговарајуће физичке везе за пренос података. Следећа ствар је одлучити који комуникациони протокол користити за пренос података. У поређењу са интернет терминалима, већина ИоТ терминала тренутно има мање
4 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

расположивих ресурса, као што су перформансе обраде, капацитет складиштења, брзина мреже итд., па је неопходно изабрати комуникациони протокол који заузима мање ресурса у ИоТ апликацијама. Постоје два комуникациона протокола која се данас широко користе: Мессаге Куеуинг Телеметри Транспорт (МКТТ) и Цонстраинед Апплицатион Протоцол (ЦоАП).
Слој платформе Слој платформе се углавном односи на ИоТ цлоуд платформе. Када су сви ИоТ терминали умрежени, њихови подаци морају бити агрегирани на ИоТ платформи у облаку да би се израчунали и ускладиштили. Платформски слој углавном подржава ИоТ апликације у олакшавању приступа и управљања огромним уређајима. Повезује ИоТ терминале са платформом у облаку, прикупља податке о терминалима и издаје команде терминалима, како би се имплементирало даљинско управљање. Као посредни сервис за додељивање опреме индустријским апликацијама, слој платформе игра повезујућу улогу у целој ИоТ архитектури, носећи апстрактну пословну логику и стандардизовани основни модел података, који не само да може да оствари брз приступ уређајима, већ и да обезбеди моћне модуларне могућности да задовољи различите потребе у сценаријима примене у индустрији. Платформски слој углавном укључује функционалне модуле као што су приступ уређајима, управљање уређајима, управљање безбедношћу, комуникација порукама, надзор рада и одржавања и апликације података.
· Приступ уређају, остваривање везе и комуникације између терминала и ИоТ цлоуд платформи.
· Управљање уређајем, укључујући функције као што су креирање уређаја, одржавање уређаја, конверзија података, синхронизација података и дистрибуција уређаја.
· Управљање безбедношћу, обезбеђивање безбедности ИоТ преноса података из перспективе безбедносне провере аутентичности и безбедности комуникације.
· Комуникација порука, укључујући три правца преноса, односно терминал шаље податке на ИоТ цлоуд платформу, ИоТ цлоуд платформа шаље податке серверској страни или другим ИоТ платформама у облаку, а страна сервера даљински контролише ИоТ уређаје.
· Надгледање О&М, укључујући праћење и дијагнозу, надоградњу фирмвера, отклањање грешака на мрежи, услуге евиденције итд.
· Апликације података, које укључују складиштење, анализу и примену података.
Слој апликације Апликациони слој користи податке са слоја платформе за управљање апликацијом, филтрирање и обраду помоћу алата као што су базе података и софтвер за анализу. Добијени подаци се могу користити за реалне ИоТ апликације као што су паметна здравствена заштита, паметна пољопривреда, паметне куће и паметни градови.
Наравно, архитектура ИоТ-а се може поделити на више слојева, али без обзира од колико слојева се састоји, основни принцип остаје у суштини исти. Учење
Поглавље 1. Увод у ИоТ 5

о архитектури ИоТ-а помаже да продубимо наше разумевање ИоТ технологија и изградимо потпуно функционалне ИоТ пројекте.
1.2 ИоТ апликација у паметним домовима
Интернет ствари је продро у све сфере живота, а нама најближа ИоТ апликација је паметна кућа. Многи традиционални уређаји су сада опремљени једним или више ИоТ уређаја, а многе новоизграђене куће су дизајниране са ИоТ технологијама од самог почетка. Слика 1.1 приказује неке уобичајене паметне кућне уређаје.
Слика 1.1. Уобичајени паметни кућни уређаји Развој паметне куће може се једноставно поделити на паметне производеtagе, међусобно повезивање сцене сtagе и интелигентни сtagе, као што је приказано на слици 1.2.
Слика 1.2. Развој сtagе оф смарт хоме 6 ЕСП32-Ц3 Вирелесс Адвентуре: Свеобухватни водич за ИоТ

Први сtagе је о паметним производима. За разлику од традиционалних домова, у паметним домовима, ИоТ уређаји примају сигнале са сензорима и умрежени су путем бежичних комуникационих технологија као што су Ви-Фи, Блуетоотх ЛЕ и ЗигБее. Корисници могу да контролишу паметне производе на различите начине, као што су апликације за паметне телефоне, гласовни асистенти, паметна контрола звучника, итд.tagе се фокусира на међусобно повезивање сцене. У овом сtagе, програмери више не размишљају о контроли једног паметног производа, већ о међусобном повезивању два или више паметних производа, аутоматизацији до одређене мере и коначно формирању прилагођеног режима сцене. Фор екampКада корисник притисне било које дугме за режим сцене, светла, завесе и клима уређаји ће се аутоматски прилагодити унапред подешеним подешавањима. Наравно, постоји предуслов да се логика повезивања лако подеси, укључујући услове окидача и радње извршења. Замислите да се режим грејања клима уређаја активира када унутрашња температура падне испод 10°Ц; да се у 7 сати ујутру пушта музика за разбуђивање корисника, отварају се паметне завесе, а кувало за пиринач или тостер за хлеб пали преко паметне утичнице; како корисник устане и заврши прање, доручак је већ сервиран, тако да неће бити одлагања одласка на посао. Како је наш живот постао згодан! Трећи сtagе иде у обавештајну сtagе. Како се приступа више паметних кућних уређаја, тако ће бити и типови података који се генеришу. Уз помоћ рачунарства у облаку, великих података и вештачке интелигенције, као да је „паметнији мозак“ усађен у паметне куће, које више не захтевају честе команде корисника. Они прикупљају податке из претходних интеракција и уче обрасце понашања и преференције корисника, како би аутоматизовали активности, укључујући давање препорука за доношење одлука. Тренутно је већина паметних домова на сцени интерконекције сtagе. Како се стопа пенетрације и интелигенција паметних производа повећава, уклањају се баријере између комуникационих протокола. Паметне куће ће у будућности постати заиста „паметне“, баш као АИ систем Јарвис у Ирон Ман-у, који не само да може помоћи кориснику да контролише различите уређаје, да се бави свакодневним пословима, већ има и супер рачунарску моћ и способност размишљања. У интелигентном сtagе, људска бића ће добити боље услуге и по квантитету и по квалитету.
Поглавље 1. Увод у ИоТ 7

8 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Поглавље Увод и пракса 2 ИоТ пројекта
У првом поглављу представили смо архитектуру Интернета ствари, те улоге и међусобне односе слоја перцепције и контроле, слоја мреже, слоја платформе и слоја апликације, као и развој паметног дома. Међутим, као и када учимо да сликамо, познавање теоретског знања није довољно. Морамо да „упрљамо руке“ да бисмо имплементирали ИоТ пројекте у праксу како бисмо истински овладали технологијом. Поред тога, када пројекат пређе на масовну производњу сtagе, потребно је узети у обзир више фактора као што су мрежна веза, конфигурација, интеракција ИоТ цлоуд платформе, управљање фирмвером и ажурирања, управљање масовном производњом и безбедносна конфигурација. Дакле, на шта треба да обратимо пажњу када развијамо комплетан ИоТ пројекат? У поглављу 1 поменули смо да је паметна кућа један од најчешћих сценарија примене ИоТ-а, а паметна светла су један од најосновнијих и практичнијих уређаја, који се могу користити у домовима, хотелима, теретанама, болницама итд. У овој књизи, узећемо конструкцију пројекта паметног светла као почетну тачку, објаснити његове компоненте и карактеристике и дати смернице за развој пројекта. Надамо се да можете извући закључке из овог случаја како бисте креирали више ИоТ апликација.
2.1 Увод у типичне ИоТ пројекте
У погледу развоја, основни функционални модули ИоТ пројеката могу се класификовати на развој софтвера и хардвера ИоТ уређаја, развој клијентских апликација и развој ИоТ цлоуд платформе. Важно је разјаснити основне функционалне модуле, који ће бити даље описани у овом одељку.
2.1.1 Основни модули за уобичајене ИоТ уређаје
Развој софтвера и хардвера ИоТ уређаја обухвата следеће основне модуле: Прикупљање података
Као доњи слој ИоТ архитектуре, ИоТ уређаји слоја перцепције и контроле повезују сензоре и уређаје преко својих чипова и периферних уређаја како би постигли прикупљање података и контролу рада.
9

Везивање налога и почетна конфигурација За већину ИоТ уређаја, везивање налога и почетна конфигурација се завршавају у једном оперативном процесу, нпр.ampле, повезивање уређаја са корисницима конфигурисањем Ви-Фи мреже.
Интеракција са ИоТ цлоуд платформама За праћење и контролу ИоТ уређаја, потребно је и њихово повезивање са ИоТ цлоуд платформама, како би се давале команде и извештавали о статусу кроз међусобну интеракцију.
Контрола уређаја Када су повезани са ИоТ платформама у облаку, уређаји могу да комуницирају са облаком и да буду регистровани, везани или контролисани. Корисници могу испитивати статус производа и обављати друге операције на апликацији за паметне телефоне преко ИоТ платформи у облаку или локалних комуникационих протокола.
Надоградња фирмвера ИоТ уређаји такође могу постићи надоградњу фирмвера на основу потреба произвођача. Примањем команди које шаље облак, биће реализована надоградња фирмвера и управљање верзијама. Са овом функцијом за надоградњу фирмвера, можете континуирано побољшавати функције ИоТ уређаја, поправити недостатке и побољшати корисничко искуство.
2.1.2 Основни модули клијентских апликација
Клијентске апликације (нпр. апликације за паметне телефоне) углавном укључују следеће основне модуле:
Систем налога и ауторизација Подржава ауторизацију налога и уређаја.
Контрола уређаја Апликације за паметне телефоне обично су опремљене контролним функцијама. Корисници могу лако да се повежу са ИоТ уређајима и управљају њима било када и било где преко апликација за паметне телефоне. У стварном паметном дому, уређаји се углавном контролишу путем апликација за паметне телефоне, што не само да омогућава интелигентно управљање уређајима, већ и штеди трошкове радне снаге. Због тога је контрола уређаја неопходна за клијентске апликације, као што је контрола атрибута функције уређаја, контрола сцене, заказивање, даљинско управљање, повезивање уређаја, итд. Корисници паметних кућа такође могу да прилагоде сцене према личним потребама, контролишу осветљење, кућне апарате, улаз , итд., како би кућни живот био удобнији и погоднији. Они могу да мере климатизацију, да је искључе на даљину, да аутоматски укључе светло у ходнику када се врата откључају или да се пребаце у режим „позориште“ једним дугметом.
Клијентске апликације за обавештења ажурирају статус ИоТ уређаја у реалном времену и шаљу упозорења када уређаји постану неисправни.
10 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Служба за кориснике након продаје Апликације за паметне телефоне могу да обезбеде постпродајне услуге за производе, како би благовремено решили проблеме у вези са кваровима ИоТ уређаја и техничким операцијама.
Истакнуте функције Да би се задовољиле потребе различитих корисника, могу се додати и друге функције, као што су Схаке, НФЦ, ГПС, итд. ГПС може помоћи у постављању тачности операција сцене према локацији и удаљености, док функција Схаке омогућава корисницима да подесе команде које се извршавају за одређени уређај или сцену протресањем.
2.1.3 Увод у уобичајене ИоТ Цлоуд платформе
ИоТ цлоуд платформа је платформа све-у-једном која интегрише функције као што су управљање уређајима, комуникација безбедности података и управљање обавештењима. Према њиховој циљној групи и доступности, ИоТ цлоуд платформе се могу поделити на јавне ИоТ цлоуд платформе (у даљем тексту „јавни облак“) и приватне ИоТ цлоуд платформе (у даљем тексту „приватни облак“).
Јавни облак обично означава дељене ИоТ платформе у облаку за предузећа или појединце, којима управљају и одржавају добављачи платформи, а деле се путем Интернета. Може бити бесплатан или јефтин и пружа услуге широм отворене јавне мреже, као што су Алибаба Цлоуд, Тенцент Цлоуд, Баиду Цлоуд, АВС ИоТ, Гоогле ИоТ, итд. Као платформа за подршку, јавни облак може интегрисати упстреам провајдере услуга и крајњим корисницима на нижем току да створе нови ланац вредности и екосистем.
Приватни облак је направљен само за употребу у предузећима, чиме се гарантује најбоља контрола над подацима, безбедношћу и квалитетом услуга. Његове услуге и инфраструктуру одвојено одржавају предузећа, а пратећи хардвер и софтвер су такође намењени одређеним корисницима. Предузећа могу да прилагоде услуге у облаку да задовоље потребе свог пословања. Тренутно, неки произвођачи паметних кућа већ имају приватне ИоТ платформе у облаку и на њима су развили апликације за паметне куће.
Јавни облак и приватни облак имају своје предностиtagес, што ће бити објашњено касније.
Да би се постигла комуникациона повезаност, неопходно је да се заврши барем уграђени развој на страни уређаја, заједно са пословним серверима, ИоТ платформама у облаку и апликацијама за паметне телефоне. Суочен са тако огромним пројектом, јавни облак обично обезбеђује комплете за развој софтвера за апликације на страни уређаја и паметних телефона како би се убрзао процес. И јавни и приватни облак пружају услуге укључујући приступ уређају, управљање уређајима, сенку уређаја и рад и одржавање.
Приступ уређајима ИоТ платформе у облаку треба да обезбеде не само интерфејсе за приступ уређајима користећи протоколе
Поглавље 2. Увод и пракса ИоТ пројеката 11

као што су МКТТ, ЦоАП, ХТТПС и WebСоцкет, али и функција безбедносне аутентификације уређаја за блокирање фалсификованих и нелегалних уређаја, ефективно смањујући ризик од компромитовања. Таква аутентификација обично подржава различите механизме, тако да када се уређаји масовно производе, потребно је претходно доделити сертификат уређаја према изабраном механизму аутентификације и снимити га у уређаје.
Управљање уређајима Функција управљања уређајима коју пружају ИоТ платформе у облаку не само да може помоћи произвођачима да прате статус активације и онлајн статус својих уређаја у реалном времену, већ такође омогућава опције као што су додавање/уклањање уређаја, преузимање, додавање/брисање група, надоградња фирмвера , и управљање верзијама.
Девице схадов ИоТ платформе у облаку могу да креирају трајну виртуелну верзију (сенку уређаја) за сваки уређај, а статус сенке уређаја може да се синхронизује и добије путем апликације за паметне телефоне или других уређаја путем протокола за пренос на Интернету. Сенка уређаја чува најновији пријављен статус и очекивани статус сваког уређаја, па чак и ако је уређај ван мреже, и даље може да добије статус позивањем АПИ-ја. Девице схадов пружа увек укључене АПИ-је, што олакшава прављење апликација за паметне телефоне које комуницирају са уређајима.
Рад и одржавање Функција О&М укључује три аспекта: · Демонстрирање статистичких информација о ИоТ уређајима и обавештењима. · Управљање евиденцијом омогућава проналажење информација о понашању уређаја, протоку порука горе/доле и садржају поруке. · Отклањање грешака уређаја подржава испоруку команди, ажурирање конфигурације и проверу интеракције између ИоТ платформи у облаку и порука уређаја.
2.2 Вежбање: Пројекат паметног светла
Након теоријског увода у сваком поглављу, наћи ћете одељак за праксу који се односи на пројекат Смарт Лигхт који ће вам помоћи да стекнете практично искуство. Пројекат је заснован на Еспрессиф-овом ЕСП32-Ц3 чипу и ЕСП РаинМакер ИоТ Цлоуд Платформи, и покрива хардвер бежичног модула у паметним светлосним производима, уграђени софтвер за паметне уређаје засноване на ЕСП32Ц3, апликације за паметне телефоне и ЕСП РаинМакер интеракцију.
Изворни код За боље учење и развој искуства, пројекат у овој књизи је отворен. Изворни код можете преузети из нашег ГитХуб спремишта на хттпс://гитхуб. цом/еспрессиф/боок-есп32ц3-иот-пројецтс.
12 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

2.2.1 Структура пројекта
Пројекат Смарт Лигхт се састоји од три дела: и. Паметни светлосни уређаји засновани на ЕСП32-Ц3, одговорни за интеракцију са ИоТ цлоуд платформама и контролу прекидача, осветљености и температуре боје ЛЕД лamp перле. ии. Апликације за паметне телефоне (укључујући апликације за таблете које раде на Андроид-у и иОС-у), одговорне за мрежну конфигурацију производа за паметно осветљење, као и за испитивање и контролу њиховог статуса.
иии. ИоТ цлоуд платформа заснована на ЕСП РаинМакер-у. Ради поједностављења, у овој књизи разматрамо ИоТ цлоуд платформу и пословни сервер као целину. Детаљи о ЕСП РаинМакер-у биће дати у 3. поглављу.
Кореспонденција између структуре пројекта Смарт Лигхт и архитектуре ИоТ-а приказана је на слици 2.1.
Слика 2.1. Структура пројекта паметног светла
2.2.2 Функције пројекта
Подељени према структури, функције сваког дела су следеће. Паметни светлосни уређаји
· Мрежна конфигурација и конекција. · ЛЕД ПВМ контрола, као што је прекидач, осветљеност, температура боје, итд. · Аутоматизација или контрола сцене, нпр. · Шифровање и безбедно покретање Фласх-а. · Надоградња фирмвера и управљање верзијама.
Поглавље 2. Увод и пракса ИоТ пројеката 13

Апликације за паметне телефоне · Мрежна конфигурација и повезивање уређаја. · Паметна контрола производа за осветљење, као што је прекидач, осветљеност, температура боје, итд. · Аутоматизација или подешавања сцене, нпр. · Локална/даљинска контрола. · Регистрација корисника, пријављивање итд.
ЕСП РаинМакер ИоТ платформа у облаку · Омогућавање приступа ИоТ уређајима. · Пружање АПИ-ја за рад уређаја доступних апликацијама за паметне телефоне. · Надоградња фирмвера и управљање верзијама.
2.2.3 Припрема хардвера
Ако сте заинтересовани за спровођење пројекта у пракси, биће вам потребан и следећи хардвер: паметна светла, паметни телефони, Ви-Фи рутери и рачунар који испуњава захтеве за инсталацију развојног окружења. Паметна светла
Паметна светла су нова врста сијалица, чији је облик исти као и општа сијалица са жарном нити. Паметно светло се састоји од кондензаторског регулатора напајања, бежичног модула (са уграђеним ЕСП32-Ц3), ЛЕД контролера и РГБ ЛЕД матрице. Када је прикључен на напајање, 15 В ДЦ волtagИзлаз након смањења кондензатора, исправљања диоде и регулације обезбеђује енергију ЛЕД контролеру и ЛЕД матрици. ЛЕД контролер може аутоматски да шаље високе и ниске нивое у одређеним интервалима, пребацујући РГБ ЛЕД матрицу између затворене (светла укључена) и отворена (светла искључена), тако да може да емитује цијан, жуту, зелену, љубичасту, плаву, црвену и бело светло. Бежични модул је одговоран за повезивање са Ви-Фи рутером, примање и извештавање о статусу паметних светала и слање команди за контролу ЛЕД-а.
Слика 2.2. Симулирано паметно светло
У раном развоју сtagе, можете симулирати паметно светло користећи ЕСП32-Ц3ДевКитМ-1 плочу повезану са РГБ ЛЕД лamp перле (видети слику 2.2). Али требало би
14 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

имајте на уму да ово није једини начин за склапање паметног светла. Хардверски дизајн пројекта у овој књизи садржи само бежични модул (са уграђеним ЕСП32-Ц3), али не и комплетан дизајн хардвера паметног светла. Поред тога, Еспрессиф такође производи плочу за развој звука засновану на ЕСП32-Ц3 ЕСП32Ц3-Лира за контролу светла са звуком. Плоча има интерфејсе за микрофоне и звучнике и може да контролише ЛЕД траке. Може се користити за развој ултра јефтиних аудио емитера високих перформанси и светлосних трака ритма. Слика 2.3 приказује ЕСП32-Ц3Лира плочу повезану са траком од 40 ЛЕД светала.
Слика 2.3. ЕСП32-Ц3-Лира повезан са траком од 40 ЛЕД светала
Паметни телефони (Андроид/иОС) Пројекат Смарт Лигхт укључује развој апликације за паметне телефоне за подешавање и контролу паметних светлосних производа.
Ви-Фи рутери Ви-Фи рутери претварају сигнале жичане мреже и сигнале мобилне мреже у сигнале бежичне мреже, за повезивање рачунара, паметних телефона, таблета и других бежичних уређаја на мрежу. Фор екampДакле, широкопојасни приступ у кући треба само да буде повезан са Ви-Фи рутером да би се постигло бежично умрежавање Ви-Фи уређаја. Главни стандард протокола који подржавају Ви-Фи рутери је ИЕЕЕ 802.11н, са просечном ТкРате-ом од 300 Мбпс, или максимално 600 Мбпс. Повратно су компатибилни са ИЕЕЕ 802.11б и ИЕЕЕ 802.11г. Еспрессиф чип ЕСП32-Ц3 подржава ИЕЕЕ 802.11б/г/н, тако да можете да изаберете једнопојасни (2.4 ГХз) или двопојасни (2.4 ГХз и 5 ГХз) Ви-Фи рутер.
Развојно окружење рачунара (Линук/мацОС/Виндовс) биће представљено у поглављу 4. Поглавље 2. Увод и пракса ИоТ пројеката 15

2.2.4 Развојни процес
Слика 2.4. Кораци развоја пројекта Смарт Лигхт
Дизајн хардвера Дизајн хардвера ИоТ уређаја је од суштинског значаја за ИоТ пројекат. Комплетан пројекат паметног светла намењен је производњи алamp ради под напајањем из мреже. Различити произвођачи производе лampразличитих стилова и типова драјвера, али њихови бежични модули обично имају исту функцију. Да би се поједноставио процес развоја Смарт Лигх пројекта, ова књига покрива само дизајн хардвера и развој софтвера бежичних модула.
Конфигурација ИоТ цлоуд платформе Да бисте користили ИоТ цлоуд платформе, потребно је да конфигуришете пројекте на позадини, као што је креирање производа, креирање уређаја, подешавање својстава уређаја итд.
Уграђени развој софтвера за ИоТ уређаје Имплементирајте очекиване функције са ЕСП-ИДФ, Еспрессиф-овим СДК-ом на страни уређаја, укључујући повезивање са ИоТ платформама у облаку, развој ЛЕД драјвера и надоградњу фирмвера.
Развој апликација за паметне телефоне Развијте апликације за паметне телефоне за Андроид и иОС системе да бисте остварили регистрацију и пријављивање корисника, контролу уређаја и друге функције.
Оптимизација ИоТ уређаја Када се заврши основни развој функција ИоТ уређаја, можете се обратити задацима оптимизације, као што је оптимизација напајања.
Тестирање масовне производње Спроведите тестове масовне производње у складу са сродним стандардима, као што су тест функције опреме, тест старења, РФ тест итд.
Упркос горе наведеним корацима, пројекат Смарт Лигхт не мора нужно да подлеже таквој процедури јер се различити задаци такође могу обављати у исто време. Фор екampЛе, уграђени софтвер и апликације за паметне телефоне могу се развијати паралелно. Неки кораци ће такође можда морати да се понове, као што су оптимизација ИоТ уређаја и тестирање масовне производње.
16 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

2.3 Резиме
У овом поглављу смо прво изложили основне компоненте и функционалне модуле ИоТ пројекта, а затим смо увели Смарт Лигхт кућиште за праксу, осврнувши се на његову структуру, функције, припрему хардвера и процес развоја. Читаоци могу да извуку закључке из праксе и постану сигурни да ће у будућности реализовати ИоТ пројекте са минималним грешкама.
Поглавље 2. Увод и пракса ИоТ пројеката 17

18 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Поглавље 3

Увод

да

ЕСП

РаинМакер

Интернет ствари (ИоТ) нуди бескрајне могућности за промену начина на који људи живе, али развој ИоТ инжењеринга је пун изазова. Са јавним облацима, произвођачи терминала могу имплементирати функционалност производа кроз следећа решења:
Засновано на платформама у облаку добављача решења. На овај начин, произвођачи терминала само треба да дизајнирају хардвер производа, затим повежу хардвер са облаком помоћу обезбеђеног комуникационог модула и конфигуришу функције производа пратећи смернице. Ово је ефикасан приступ јер елиминише потребу за развојем и радом и одржавањем на страни сервера и апликације (О&М). Омогућава произвођачима терминала да се фокусирају на дизајн хардвера без потребе да разматрају имплементацију у облаку. Међутим, таква решења (нпр. фирмвер уређаја и апликација) углавном нису отвореног кода, тако да ће функције производа бити ограничене платформом у облаку добављача која се не може прилагодити. У међувремену, подаци о корисницима и уређају такође припадају платформи у облаку.
Засновано на производима у облаку У овом решењу, након завршетка дизајна хардвера, произвођачи терминала не само да морају да имплементирају функције облака користећи један или више производа у облаку које обезбеђује јавни облак, већ такође треба да повежу хардвер са облаком. Фор екampле, да бисте се повезали са Амазоном Web Услуге (АВС), произвођачи терминала морају да користе АВС производе као што су Амазон АПИ Гатеваи, АВС ИоТ Цоре и АВС Ламбда да би омогућили приступ уређају, даљинску контролу, складиштење података, управљање корисницима и друге основне функције. Не само да од произвођача терминала тражи да флексибилно користе и конфигуришу производе у облаку са дубљим разумевањем и богатим искуством, већ такође захтева од њих да узму у обзир трошкове изградње и одржавања за почетне и каснијеtagес Ово представља велики изазов за енергију и ресурсе компаније.
У поређењу са јавним облацима, приватни облаци се обично праве за специфичне пројекте и производе. Програмери приватног облака добијају највиши ниво слободе у дизајну протокола и имплементацији пословне логике. Произвођачи терминала могу да праве производе и шеме дизајна по жељи и лако интегришу и оснаже корисничке податке. Комбиновање високе безбедности, скалабилности и поузданости јавног облака са предностимаtagес приватног облака, Еспрессиф је покренуо ЕСП
19

РаинМакер, дубоко интегрисано приватно решење у облаку засновано на Амазон облаку. Корисници могу применити ЕСП РаинМакер и изградити приватни облак једноставно помоћу АВС налога.
3.1 Шта је ЕСП РаинМакер?
ЕСП РаинМакер је комплетна АИоТ платформа изграђена са више зрелих АВС производа. Пружа различите услуге потребне за масовну производњу, као што су приступ облаку уређаја, надоградња уређаја, управљање позадином, пријављивање треће стране, гласовна интеграција и управљање корисницима. Коришћењем Репозиторија апликација без сервера (САР) који обезбеђује АВС, произвођачи терминала могу брзо да примене ЕСП РаинМакер на своје АВС налоге, што је временски ефикасно и лако за руковање. Управља и одржава Еспрессиф, САР који користи ЕСП РаинМакер помаже програмерима да смање трошкове одржавања облака и убрзају развој АИоТ производа, на тај начин граде безбедна, стабилна и прилагодљива АИоТ решења. Слика 3.1 приказује архитектуру ЕСП РаинМакер-а.
Слика 3.1. Архитектура ЕСП РаинМакер-а
Јавни сервер ЕСП РаинМакер компаније Еспрессиф је бесплатан за све ЕСП ентузијасте, произвођаче и едукаторе за процену решења. Програмери се могу пријавити помоћу Аппле, Гоогле или ГитХуб налога и брзо направити сопствене прототипове ИоТ апликација. Јавни сервер интегрише Алека и Гоогле Хоме, и пружа услуге гласовне контроле, које подржавају Алека Скилл и Гоогле Ацтионс. Његову функцију семантичког препознавања такође покрећу треће стране. РаинМакер ИоТ уређаји реагују само на одређене радње. За исцрпну листу подржаних гласовних команди, проверите платформе независних произвођача. Поред тога, Еспрессиф нуди јавну апликацију РаинМакер за кориснике да контролишу производе преко паметних телефона. 20 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

3.2 Имплементација ЕСП РаинМакер-а
Као што је приказано на слици 3.2, ЕСП РаинМакер се састоји од четири дела: · Услуге захтевања, омогућавајући РаинМакер уређајима да динамички добијају сертификате. · РаинМакер Цлоуд (такође познат као позадина облака), пружа услуге као што су филтрирање порука, управљање корисницима, складиштење података и интеграције трећих страна. · РаинМакер Агент, омогућава РаинМакер уређајима да се повежу на РаинМакер Цлоуд. · РаинМакер Цлиент (РаинМакер Апп или ЦЛИ скрипте), за обезбеђивање, креирање корисника, повезивање уређаја и контролу, итд.
Слика 3.2. Структура ЕСП РаинМакер-а
ЕСП РаинМакер обезбеђује комплетан скуп алата за развој производа и масовну производњу, укључујући: РаинМакер СДК
РаинМакер СДК је заснован на ЕСП-ИДФ-у и обезбеђује изворни код агента на страни уређаја и повезане Ц АПИ-је за развој фирмвера. Програмери само треба да напишу логику апликације, а остало препусте РаинМакер оквиру. За више информација о Ц АПИ-јима, посетите хттпс://боокц3.еспрессиф.цом/рм/ц-апи-референце. Апликација РаинМакер Јавна верзија апликације РаинМакер омогућава програмерима да заврше обезбеђивање уређаја, контролишу и испитују статус уређаја (нпр. производи за паметно осветљење). Доступан је у продавницама апликација за иОС и Андроид. За више детаља, погледајте Поглавље 10. РЕСТ АПИ-ји РЕСТ АПИ-ји помажу корисницима да направе сопствене апликације сличне апликацији РаинМакер. За више информација посетите хттпс://сваггерапис.раинмакер.еспрессиф.цом/.
Поглавље 3. Увод у ЕСП РаинМакер 21

Питхон АПИ-ји ЦЛИ заснован на Питхон-у, који долази са РаинМакер СДК-ом, обезбеђен је за имплементацију свих функција сличних функцијама паметног телефона. За више информација о Питхон АПИ-јима, посетите хттпс://боокц3.еспрессиф.цом/рм/питхон-апи-референце.
Админ ЦЛИ Админ ЦЛИ, са вишим нивоом приступа, је обезбеђен за приватну примену ЕСП РаинМакер-а за генерисање сертификата уређаја на велико.
3.2.1 Услуга подношења захтева
Сва комуникација између РаинМакер уређаја и бацкенд-а облака се одвија преко МКТТ+ТЛС. У контексту ЕСП РаинМакер-а, „Полагање права“ је процес у коме уређаји добијају сертификате од услуге за полагање права да се повежу са позадином облака. Имајте на уму да је услуга захтевања применљива само на јавну услугу РаинМакер, док за приватну примену сертификати уређаја морају да се генеришу групно преко Админ ЦЛИ. ЕСП РаинМакер подржава три врсте услуга за подношење захтева: Самополагање
Сам уређај преузима сертификате преко тајног кључа унапред програмираног у еФусе-у након повезивања на Интернет. Хост Дривен Цлаиминг Сертификати се добијају од развојног хоста са РаинМакер налогом. Потпомогнуто тражење Сертификати се добијају путем апликација за паметне телефоне током обезбеђивања.
3.2.2 РаинМакер Агент
Слика 3.3. Структура РаинМакер СДК-а Примарна функција РаинМакер Агент-а је да обезбеди повезаност и помогне слоју апликације да обради податке у облаку узлазне/долазне везе. Изграђен је помоћу РаинМакер СДК 22 ЕСП32-Ц3 бежичне авантуре: свеобухватни водич за ИоТ

и развијен на основу доказаног ЕСП-ИДФ оквира, користећи ЕСП-ИДФ компоненте као што су РТОС, НВС и МКТТ. Слика 3.3 приказује структуру РаинМакер СДК-а.
РаинМакер СДК укључује две главне карактеристике.
Веза
и. Сарадња са службом за пријаву захтева за добијање сертификата уређаја.
ии. Повезивање на позадину облака коришћењем безбедног МКТТ протокола да обезбеди даљинско повезивање и имплементира даљинску контролу, извештавање о порукама, управљање корисницима, управљање уређајима, итд. Користи МКТТ компоненту у ЕСП-ИДФ подразумевано и обезбеђује слој апстракције за повезивање са другим стекови протокола.
иии. Обезбеђује компоненту за обезбеђивање Ви-Фи везе за Ви-Фи везу и обезбеђивање, есп хттпс ота компоненту за ОТА надоградњу и есп локалну цтрл компоненту за откривање и повезивање локалног уређаја. Сви ови циљеви се могу постићи једноставном конфигурацијом.
Обрада података
и. Чување сертификата уређаја које је издао Цлаиминг Сервице и података потребних приликом покретања РаинМакер-а, подразумевано користећи интерфејс који обезбеђује нвс флеш компонента, и обезбеђивање АПИ-ја за програмере за директну употребу.
ии. Коришћење механизма повратног позива за обраду података у облаку узлазне/долазне везе и аутоматско деблокирање података на слоју апликације за лаку обраду од стране програмера. Фор екampДа, РаинМакер СДК пружа богате интерфејсе за успостављање ТСЛ (Тхинг Специфицатион Лангуаге) података, који су потребни за дефинисање ТСЛ модела за описивање ИоТ уређаја и имплементацију функција као што су мерење времена, одбројавање и гласовна контрола. За основне интерактивне функције као што је мерење времена, РаинМакер СДК пружа решење без развоја које се може једноставно омогућити када је потребно. Затим ће РаинМакер Агент директно обрадити податке, послати их у облак преко повезане теме МКТТ и вратити промене података у позадину облака путем механизма повратног позива.
3.2.3 Цлоуд Бацкенд
Позадина у облаку је изграђена на АВС рачунарству без сервера и постиже се преко АВС Цогнито (систем за управљање идентитетом), Амазон АПИ Гатеваи, АВС Ламбда (услуга рачунара без сервера), Амазон ДинамоДБ (НоСКЛ база података), АВС ИоТ Цоре (ИоТ приступно језгро које обезбеђује МКТТ приступ и филтрирање правила), Амазон Симпле Емаил Сервице (СЕС једноставна услуга поште), Амазон ЦлоудФронт (мрежа за брзу испоруку), Амазон Симпле Куеуе Сервице (СКС порука у реду чекања) и Амазон С3 (услуга за складиштење података). Има за циљ да оптимизује скалабилност и безбедност. Уз ЕСП РаинМакер, програмери могу да управљају уређајима без потребе да пишу код у облаку. Поруке које пријављују уређаји се транспарентно преносе на
Поглавље 3. Увод у ЕСП РаинМакер 23

клијенте апликације или друге услуге треће стране. Табела 3.1 приказује АВС производе и функције у облаку који се користе у позадини облака, са више производа и функција у развоју.
Табела 3.1. АВС производи и функције у облаку које користи позадинска страна облака

АВС Цлоуд производ који користи РаинМакер

Функција

АВС Цогнито

Управљање корисничким акредитивима и подршка за пријављивање трећих страна

АВС Ламбда

Имплементација основне пословне логике цлоуд бацкенд-а

Амазон Тиместреам Чување података временских серија

Амазон ДинамоДБ Чување приватних информација клијената

АВС ИоТ Цоре

Подржава МКТТ комуникацију

Амазон СЕС

Пружање услуга слања е-поште

Амазон ЦлоудФронт Убрзавање управљања позадином webприступ сајту

Амазон СКС

Прослеђивање порука из АВС ИоТ Цоре

3.2.4 РаинМакер клијент
РаинМакер клијенти, као што су Апп и ЦЛИ, комуницирају са позадином облака преко РЕСТ АПИ-ја. Детаљне информације и упутства о РЕСТ АПИ-јима се могу наћи у Сваггер документацији коју обезбеђује Еспрессиф. РаинМакер-ов клијент за мобилне апликације доступан је за иОС и Андроид системе. Омогућава обезбеђивање, контролу и дељење уређаја, као и креирање и омогућавање задатака одбројавања и повезивање са платформама трећих страна. Може аутоматски учитати кориснички интерфејс и иконе у складу са конфигурацијом коју су пријавили уређаји и у потпуности приказати ТСЛ уређаја.
Фор екampле, ако је паметно светло изграђено на РаинМакер СДК-у, екampлес, икона и кориснички интерфејс сијалице ће се аутоматски учитати када се обезбеђивање заврши. Корисници могу да промене боју и осветљеност светлости преко интерфејса и остваре контролу треће стране тако што ће повезати Алека Смарт Хоме Скилл или Гоогле Смарт Хоме Ацтионс са својим ЕСП РаинМакер налозима. Слика 3.4 приказује икону и кориснички интерфејс прampсијалице на Алека, Гоогле Хоме и ЕСП РаинМакер апликацији.

24 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

(а) Прampле – Алекса

(б) Прampле – Гоогле Хоме

(ц) Прampле – ЕСП РаинМакер
Слика 3.4. Примampлес икона и кориснички интерфејс сијалице на Алека, Гоогле Хоме и ЕСП РаинМакер апликацији
3.3 Вежбање: Кључне тачке за развој са ЕСП РаинМакер-ом
Када се слој драјвера уређаја заврши, програмери могу да почну да креирају ТСЛ моделе и обрађују податке за довнлинк користећи АПИ-је које обезбеђује РаинМакер СДК, и омогућавају основне услуге ЕСП РаинМакер-а на основу дефиниције производа и захтева.
Поглавље 3. Увод у ЕСП РаинМакер 25

Одељак 9.4 ове књиге ће објаснити имплементацију ЛЕД паметног светла у РаинМакер-у. Током отклањања грешака, програмери могу да користе ЦЛИ алате у РаинМакер СДК-у да комуницирају са паметним светлом (или позивају РЕСТ АПИ-је из Сваггер-а).
Поглавље 10 ће разрадити употребу РЕСТ АПИ-ја у развоју апликација за паметне телефоне. ОТА надоградње ЛЕД паметних светала биће покривене у Поглављу 11. Ако су програмери омогућили даљинско праћење ЕСП Инсигхтс-а, позадински део управљања ЕСП РаинМакер-ом ће приказати податке ЕСП Инсигхтс-а. Детаљи ће бити представљени у поглављу 15.
ЕСП РаинМакер подржава приватну примену, која се разликује од јавног РаинМакер сервера на следеће начине:
Услуга захтевања За генерисање сертификата у приватним применама, потребно је да користите РаинМакер Админ ЦЛИ уместо Цлаиминг. Са јавним сервером, програмери морају да добију администраторска права за имплементацију надоградње фирмвера, али је то непожељно у комерцијалним применама. Стога се не може обезбедити ни посебна услуга аутентификације за самополагање права, нити администраторска права за полагање права на основу хоста или уз помоћ.
Апликације за телефон У приватним применама, апликације морају бити одвојено конфигурисане и компајлиране како би се осигурало да системи налога нису интероперабилни.
Пријаве трећих страна и гласовна интеграција Програмери морају засебно да конфигуришу преко Гоогле и Аппле налога програмера да би омогућили пријаве трећих страна, као и интеграцију Алека Скилл и Гоогле Воице Ассистант.
САВЕТИ За детаље о примени облака, посетите хттпс://цустомер.раинмакер.еспрессиф. цом. Што се тиче фирмвера, миграција са јавног сервера на приватни сервер захтева само замену сертификата уређаја, што у великој мери побољшава ефикасност миграције и смањује трошкове миграције и секундарног отклањања грешака.
3.4 Карактеристике ЕСП РаинМакер-а
Функције ЕСП РаинМакер-а су углавном усмерене на три аспекта – управљање корисницима, крајњим корисницима и администраторима. Све функције су подржане и на јавним и на приватним серверима осим ако није другачије наведено.
3.4.1 Управљање корисницима
Функције управљања корисницима омогућавају крајњим корисницима да се региструју, пријављују, мењају лозинке, преузимају лозинке итд.
26 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Региструјте се и пријавите Методе регистрације и пријављивања које подржава РаинМакер укључују: · ИД е-поште + Лозинка · Број телефона + Лозинка · Гоогле налог · Аппле налог · ГитХуб налог (само јавни сервер) · Амазон налог (само приватни сервер)
НАПОМЕНА Региструјте се користећи Гоогле/Амазон делите адресу е-поште корисника са РаинМакер-ом. Региструјте се користећи Аппле дели лажну адресу коју Аппле додељује кориснику посебно за услугу РаинМакер. РаинМакер налог ће бити аутоматски креиран за кориснике који се по први пут пријављују са Гоогле, Аппле или Амазон налогом.
Промена лозинке Важи само за пријаве засноване на ИД-у е-поште/броју телефона. Све остале активне сесије ће бити одјављене након промене лозинке. Према понашању АВС Цогнито, одјављене сесије могу остати активне до 1 сат.
Преузми лозинку Важи само за пријаве засноване на ИД-у е-поште/броју телефона.
3.4.2 Карактеристике крајњег корисника
Функције отворене за крајње кориснике укључују локалну и даљинску контролу и надгледање, заказивање, груписање уређаја, дељење уређаја, пусх обавештења и интеграције трећих страна.
Даљинско управљање и надгледање · Питајте конфигурацију, вредности параметара и статус везе за један или све уређаје. · Подесите параметре за један или више уређаја.
Локална контрола и надзор Мобилни телефон и уређај морају бити повезани на исту мрежу ради локалне контроле.
Планирање · Корисници унапред постављају одређене радње у одређено време. · Није потребна Интернет веза за уређај док се извршава распоред. · Једном или понављањем (навођењем дана) за један или више уређаја.
Груписање уређаја Подржава апстрактно груписање на више нивоа. Групни метаподаци се могу користити за креирање структуре кућне собе.
Поглавље 3. Увод у ЕСП РаинМакер 27

Дељење уређаја Један или више уређаја може да се дели са једним или више корисника.
Пусх обавештења Крајњи корисници ће примати пусх обавештења за догађаје као што су · Додати/уклоњени нови уређаји · Уређај повезан са облаком · Уређај је прекинут са клаудом · Захтеви за дељење уређаја су креирани/прихваћени/одбијени · Поруке упозорења које су пријавили уређаји
Интеграције треће стране Алека и Гоогле Воице Ассистант су подржане за контролу РаинМакер уређаја, укључујући светла, прекидаче, утичнице, вентилаторе и температурне сензоре.
3.4.3 Админ функције
Функције администратора омогућавају администраторима да имплементирају регистрацију уређаја, груписање уређаја и ОТА надоградње и да view статистика и ЕСП Инсигхтс подаци.
Регистрација уређаја Генеришите сертификате уређаја и региструјте се са Админ ЦЛИ (само приватни сервер).
Груписање уређаја Креирајте апстрактне или структуриране групе на основу информација о уређају (само приватни сервер).
Овер-тхе-Аир (ОТА) надоградње Отпремите фирмвер на основу верзије и модела, на један или више уређаја или групу Надгледајте, откажите или архивирајте ОТА послове.
View статистика Viewмогућа статистика укључује: · Регистрације уређаја (сертификати које је регистровао администратор) · Активације уређаја (уређај је повезан по први пут) · Кориснички налози · Повезивање корисника и уређаја
View ЕСП Инсигхтс подаци ViewПодаци о могућностима ЕСП Инсигхтс-а укључују: · Грешке, упозорења и прилагођене евиденције · Извештаје о рушењу и анализе · Разлози поновног покретања · Мере попут употребе меморије, РССИ, итд. · Прилагођене метрике и променљиве
28 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

3.5 Резиме
У овом поглављу представили смо неке кључне разлике између јавне примене РаинМакер-а и приватне примене. Приватно решење ЕСП РаинМакер које је лансирао Еспрессиф је веома поуздано и прошириво. Сви чипови серије ЕСП32 су повезани и прилагођени АВС-у, што значајно смањује трошкове. Програмери могу да се фокусирају на верификацију прототипа без потребе да уче о АВС производима у облаку. Такође смо објаснили имплементацију и карактеристике ЕСП РаинМакер-а и неке кључне тачке за развој помоћу платформе.
Скенирајте да бисте преузели ЕСП РаинМакер за Андроид Скенирајте да бисте преузели ЕСП РаинМакер за иОС
Поглавље 3. Увод у ЕСП РаинМакер 29

30 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Поглавље Подешавање 4 Развојно окружење
Ово поглавље се фокусира на ЕСП-ИДФ, званични оквир за развој софтвера за ЕСП32-Ц3. Објаснићемо како да подесите окружење на различитим оперативним системима, представићемо структуру пројекта и изградити систем ЕСП-ИДФ, као и употребу одговарајућих развојних алата. Затим ћемо представити процес компајлирања и покретања екampле пројекта, нудећи детаљно објашњење излазног дневника за сваки сtage.
4.1 ЕСП-ИДФ Готовоview
ЕСП-ИДФ (Еспрессиф ИоТ развојни оквир) је оквир за развој ИоТ-а на једном месту који обезбеђује Еспрессиф Тецхнологи. Користи Ц/Ц++ као главни развојни језик и подржава унакрсну компилацију под главним оперативним системима као што су Линук, Мац и Виндовс. БившиampПрограми укључени у ову књигу развијени су помоћу ЕСП-ИДФ-а, који нуди следеће карактеристике: · СоЦ драјвере на нивоу система. ЕСП-ИДФ укључује драјвере за ЕСП32, ЕСП32-С2, ЕСП32-Ц3,
и други чипс. Ови драјвери обухватају периферну библиотеку ниског нивоа (ЛЛ), библиотеку слоја хардверске апстракције (ХАЛ), подршку за РТОС и софтвер управљачког програма горњег слоја, итд. · Основне компоненте. ЕСП-ИДФ укључује основне компоненте потребне за развој интернета ствари. Ово укључује вишеструке стекове мрежних протокола као што су ХТТП и МКТТ, оквир за управљање напајањем са динамичком фреквенцијском модулацијом и функције као што су Фласх Енцриптион и Сецуре Боот, итд. · Развојни и производни алати. ЕСП-ИДФ пружа најчешће коришћене алате за прављење, флешовање и отклањање грешака током развоја и масовне производње (погледајте слику 4.1), као што су систем изградње заснован на ЦМаке-у, ланац алата за унакрсну компилацију заснован на ГЦЦ-у и ЈTAG алат за отклањање грешака заснован на ОпенОЦД-у, итд. Вреди напоменути да се ЕСП-ИДФ код првенствено придржава лиценце отвореног кода Апацхе 2.0. Корисници могу да развијају лични или комерцијални софтвер без ограничења уз поштовање услова лиценце отвореног кода. Поред тога, корисницима се бесплатно додељују трајне патентне лиценце, без обавезе отварања било каквих модификација у изворном коду.
31

Слика 4.1.

Израда, флешовање и отклањање грешака-

алати за развој и масовну производњу

4.1.1 ЕСП-ИДФ верзије
ЕСП-ИДФ код је хостован на ГитХуб-у као пројекат отвореног кода. Тренутно су доступне три главне верзије: в3, в4 и в5. Свака главна верзија обично садржи различите субверзије, као што су в4.2, в4.3, и тако даље. Еспрессиф Системс обезбеђује 30-месечну подршку за исправке грешака и безбедносне закрпе за сваку објављену подверзију. Стога се ревизије субверзија такође редовно објављују, као што су в4.3.1, в4.2.2, итд. Табела 4.1 приказује статус подршке различитих ЕСП-ИДФ верзија за Еспрессиф чипове, показујући да ли су у претходномview stagе (нуди подршку за преview верзије, којима можда недостају одређене функције или документација) или су званично подржане.

Табела 4.1. Статус подршке за различите ЕСП-ИДФ верзије за Еспрессиф чипове

Серија ЕСП32 ЕСП32-С2 ЕСП32-Ц3 ЕСП32-С3 ЕСП32-Ц2 ЕСП32-Х2

в4.1 подржан

в4.2 подржано подржано

в4.3 подржано подржано подржано

в4.4 подржано подржано подржано подржано
преview

в5.0 подржано подржано подржано подржано подржано преview

32 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Итерација главних верзија често укључује прилагођавања структуре оквира и ажурирања система компилације. Фор екampДакле, главна промена са в3.* на в4.* била је постепена миграција система за изградњу са Маке на ЦМаке. С друге стране, понављање мањих верзија обично подразумева додавање нових функција или подршку за нове чипове.
Важно је разликовати и разумети однос између стабилних верзија и ГитХуб грана. Верзије означене као в*.* или в*.*.* представљају стабилне верзије које су прошле комплетно интерно тестирање од стране Еспрессиф-а. Када се поправи, код, ланац алата и документи издања за исту верзију остају непромењени. Међутим, гране ГитХуб-а (нпр. грана издања/в4.3) пролазе кроз честа урезивања кода, често на дневној бази. Због тога се два исечка кода у истој грани могу разликовати, што захтева од програмера да одмах ажурирају свој код у складу са тим.
4.1.2 ЕСП-ИДФ Гит радни ток
Еспрессиф прати одређени Гит радни ток за ЕСП-ИДФ, наведен на следећи начин:
· Нове промене су направљене на мастер грани, која служи као главна развојна грана. ЕСП-ИДФ верзија на главној грани увек носи -дев tag да укаже да је тренутно у развоју, као што је в4.3-дев. Промене на главној грани ће се прво поново извршитиviewед и тестиран у Еспрессиф-овом интерном спремишту, а затим гурнут на ГитХуб након што је аутоматско тестирање завршено.
· Када нова верзија заврши развој карактеристика на главној грани и испуни критеријуме за улазак у бета тестирање, прелази на нову грану, као што је релеасе/в4.3. Поред тога, ова нова филијала је tagгед као верзија пре издања, као в4.3-бета1. Програмери се могу обратити на ГитХуб платформу да приступе комплетној листи грана и tags за ЕСП-ИДФ. Важно је напоменути да бета верзија (верзија пре објављивања) може и даље имати значајан број познатих проблема. Како бета верзија пролази кроз континуирано тестирање, исправке грешака се додају и овој верзији и главној грани истовремено. У међувремену, главна грана је можда већ почела да развија нове функције за следећу верзију. Када је тестирање скоро завршено, ознака кандидата за издање (рц) се додаје грани, што указује да је потенцијални кандидат за званично издање, као што је в4.3-рц1. На овом сtagе, грана остаје верзија пре издања.
· Ако нису откривене или пријављене никакве веће грешке, верзија пре издања на крају добија ознаку главне верзије (нпр. в5.0) или ознаку мање верзије (нпр. в4.3) и постаје званична верзија издања, што је документовано на страници са белешкама о издању. Након тога, све грешке идентификоване у овој верзији су исправљене на грани издања. Након што је ручно тестирање завршено, грани се додељује ознака верзије за исправку грешака (нпр. в4.3.2), што се такође одражава на страници са напоменама о издању.
Поглавље 4. Постављање развојног окружења 33

4.1.3 Избор одговарајуће верзије
Пошто је ЕСП-ИДФ званично почео да подржава ЕСП32-Ц3 од верзије в4.3, а в4.4 још увек није званично објављен у време писања ове књиге, верзија коришћена у овој књизи је в4.3.2, што је ревидирана верзија од в4.3. Међутим, важно је напоменути да до тренутка када прочитате ову књигу, в4.4 или новије верзије можда већ буду доступне. Када бирате верзију, препоручујемо следеће:
· За програмере почетног нивоа, препоручљиво је да изаберу стабилну верзију в4.3 или њену ревидирану верзију, која је у складу са претходномampверзија која се користи у овој књизи.
· За потребе масовне производње, препоручује се да користите најновију стабилну верзију како бисте искористили најновију техничку подршку.
· Ако намеравате да експериментишете са новим чиповима или истражите нове карактеристике производа, користите главну грану. Најновија верзија садржи све најновије функције, али имајте на уму да можда постоје познате или непознате грешке.
· Ако стабилна верзија која се користи не укључује жељене нове функције и желите да минимизирате ризике повезане са главном граном, размислите о коришћењу одговарајуће гране издања, као што је грана релеасе/в4.4. Еспрессиф-ово ГитХуб спремиште ће прво креирати грану релеасе/в4.4, а затим ће објавити стабилну верзију в4.4 на основу специфичног историјског снимка ове гране, након завршетка развоја и тестирања свих функција.
4.1.4 Готовоview ЕСП-ИДФ СДК директоријума
ЕСП-ИДФ СДК се састоји од два главна директоријума: есп-идф и .еспрессиф. Први садржи изворни код ЕСП-ИДФ спремишта fileс и скрипте за компилацију, док ова друга углавном чува ланце алата за компилацију и други софтвер. Познавање ова два директоријума ће помоћи програмерима да боље искористе доступне ресурсе и убрзају процес развоја. Структура директоријума ЕСП-ИДФ-а је описана у наставку:
(1) ЕСП-ИДФ директоријум кодова репозиторија (/есп/есп-идф), као што је приказано на слици 4.2.
а. Компоненте директоријума компоненти
Овај основни директоријум интегрише бројне битне софтверске компоненте ЕСП-ИДФ-а. Ниједан код пројекта се не може компајлирати без ослањања на компоненте унутар овог директоријума. Укључује подршку за драјвере за различите Еспрессиф чипове. Од интерфејса ЛЛ библиотеке и ХАЛ библиотеке за периферне уређаје до управљачког програма вишег нивоа и виртуелног File Подршка системског (ВФС) слоја, програмери могу изабрати одговарајуће компоненте на различитим нивоима за своје развојне потребе. ЕСП-ИДФ такође подржава вишеструке стандардне стекове мрежних протокола као што су ТЦП/ИП, ХТТП, МКТТ, WebСоцкет, итд. Програмери могу да користе познате интерфејсе као што је Соцкет за прављење мрежних апликација. Компоненте обезбеђују разумевање-
34 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Слика 4.2. Каталог кодова ЕСП-ИДФ спремишта
сиве функционалности и могу се лако интегрисати у апликације, омогућавајући програмерима да се фокусирају искључиво на пословну логику. Неке уобичајене компоненте укључују: · драјвер: Ова компонента садржи периферне управљачке програме за различите Еспрессиф
серије чипова, као што су ГПИО, И2Ц, СПИ, УАРТ, ЛЕДЦ (ПВМ), итд. Програми периферних драјвера у овој компоненти нуде апстрактне интерфејсе независне од чипа. Сваки периферни уређај има заједничко заглавље file (као што је гпио.х), елиминишући потребу да се бавите различитим питањима подршке специфичним за чип. · есп_вифи: Ви-Фи, као посебна периферна јединица, се третира као посебна компонента. Укључује више АПИ-ја као што су иницијализација различитих режима Ви-Фи драјвера, конфигурација параметара и обрада догађаја. Одређене функције ове компоненте су обезбеђене у облику статичких библиотека веза. ЕСП-ИДФ такође пружа свеобухватну документацију управљачког програма ради лакшег коришћења.
Поглавље 4. Постављање развојног окружења 35

· фреертос: Ова компонента садржи комплетан ФрееРТОС код. Поред пружања свеобухватне подршке за овај оперативни систем, Еспрессиф је такође проширио своју подршку на чипове са два језгра. За чипове са два језгра као што су ЕСП32 и ЕСП32-С3, корисници могу да креирају задатке на одређеним језгрима.
б. Именик докумената документи
Овај директоријум садржи развојне документе који се односе на ЕСП-ИДФ, укључујући Водич за почетак, Референтни приручник за АПИ, Водич за развој итд.
НАПОМЕНА Након што га компајлирају аутоматизовани алати, садржај овог директоријума се поставља на хттпс://доцс.еспрессиф.цом/пројецтс/есп-идф. Обавезно пребаците циљ документа на ЕСП32-Ц3 и изаберите наведену ЕСП-ИДФ верзију.
ц. Алати алата за скрипте
Овај директоријум садржи најчешће коришћене алате за компилацију као што је идф.пи, и алатку за терминал монитора идф_монитор.пи, итд. Поддиректоријум цмаке такође садржи основну скрипту fileс система компилације, који служи као основа за имплементацију ЕСП-ИДФ правила компилације. Приликом додавања променљивих окружења, садржај унутар директоријума алата се додаје системској променљивој окружења, омогућавајући идф.пи да се изврши директно испод путање пројекта.
д. Прampле програмски директоријум екampлес
Овај директоријум садржи огромну колекцију ЕСП-ИДФ екampле програми који демонстрирају употребу компонентних АПИ-ја. Бившиampлесови су организовани у различите поддиректоријуме на основу њихових категорија:
· почетак: Овај поддиректориј укључује почетни ниво екampречи попут „здраво свет“ и „трептање“ да би помогли корисницима да схвате основе.
· блуетоотх: Можете пронаћи везан за Блуетоотх нпрampовде, укључујући Блуетоотх ЛЕ Месх, Блуетоотх ЛЕ ХИД, БлуФи и још много тога.
· вифи: Овај поддиректоријум се фокусира на Ви-Фи нпрampлес, укључујући основне програме као што су Ви-Фи СофтАП, Ви-Фи Статион, еспнов, као и власнички комуникациони протокол екampлес из Еспрессифа. Такође укључује више слојева апликација нпрampдатотеке засноване на Ви-Фи, као што су Иперф, Сниффер и Смарт Цонфиг.
· периферне јединице: Овај екстензивни поддиректориј је даље подељен у бројне поддиректорије на основу назива периферије. Углавном садржи периферни драјвер екampлес за Еспрессиф чипс, са сваким екampле са неколико суб-екampлес. На пример, гпио поддиректоријум укључује два нпрampлес: ГПИО и ГПИО матрична тастатура. Важно је напоменути да нису сви бившиampдатотеке у овом директоријуму су применљиве на ЕСП32-Ц3.
36 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Фор екampле, бившиampдатотеке у усб/хост-у су применљиве само на периферне уређаје са УСБ Хост хардвером (као што је ЕСП32-С3), а ЕСП32-Ц3 нема ову периферију. Систем компилације обично даје упите приликом постављања циља. РЕАДМЕ file сваког бивampле наводи подржане чипове. · протоколи: Овај поддиректоријум садржи нпрampдатотеке за различите комуникационе протоколе, укључујући МКТТ, ХТТП, ХТТП сервер, ПППоС, Модбус, мДНС, СНТП, који покривају широк спектар комуникационих протокола нпр.ampмање потребне за развој интернета ствари. · обезбеђивање: Овде ћете пронаћи доделу прampдатотеке за различите методе, као што су обезбеђивање Ви-Фи и Блуетоотх ЛЕ. · систем: Овај поддиректоријум укључује отклањање грешака у систему нпрampлес (нпр. праћење стека, праћење времена извршавања, праћење задатака), управљање напајањем нпрampлес (нпр. различити режими мировања, копроцесори) и нпрampдатотеке које се односе на уобичајене системске компоненте као што су терминал конзоле, петља догађаја и системски тајмер. · складиште: У оквиру овог поддиректоријума, открићете екampлес од свих file системе и механизме за складиштење које подржава ЕСП-ИДФ (као што су читање и писање Фласх-а, СД картице и других медија за складиштење), као и нпр.ampдатотеке непроменљивог складишта (НВС), ФатФС, СПИФФС и друго file системске операције. · безбедност: Овај поддиректоријум садржи екampствари које се односе на флеш шифровање. (2) Директоријум ланца алата за компилацију ЕСП-ИДФ (/.еспрессиф), као што је приказано на слици 4.3.
Слика 4.3. Директоријум ланца алата за компилацију ЕСП-ИДФ
Поглавље 4. Постављање развојног окружења 37

а. Дистрибутивни директоријум софтвера дист
ЕСП-ИДФ ланац алата и други софтвер се дистрибуирају у облику компресованих пакета. Током процеса инсталације, инсталациони алат прво преузима компримовани пакет у дист директоријум, а затим га издваја у наведени директоријум. Када се инсталација заврши, садржај у овом директоријуму се може безбедно уклонити.
б. Каталог виртуелног окружења Питхон питхон енв
Различите верзије ЕСП-ИДФ-а се ослањају на специфичне верзије Питхон пакета. Инсталирање ових пакета директно на исти хост може довести до сукоба између верзија пакета. Да би ово решио, ЕСП-ИДФ користи Питхон виртуелна окружења да изолује различите верзије пакета. Са овим механизмом, програмери могу да инсталирају више верзија ЕСП-ИДФ-а на истом хосту и лако прелазе између њих увозом различитих променљивих окружења.
ц. ЕСП-ИДФ алати за компилацију ланца директоријума
Овај директоријум углавном садржи алате за унакрсну компилацију потребне за компајлирање ЕСП-ИДФ пројеката, као што су ЦМаке алати, Ниња алати за прављење и гцц ланац алата који генерише коначни извршни програм. Поред тога, овај директоријум садржи стандардну библиотеку језика Ц/Ц++ заједно са одговарајућим заглављем fileс. Ако програм упућује на заглавље система file попут #инцлуде , ланац алата за компилацију ће лоцирати стдио.х file у оквиру овог именика.
4.2 Постављање ЕСП-ИДФ развојног окружења
Развојно окружење ЕСП-ИДФ подржава главне оперативне системе као што су Виндовс, Линук и мацОС. Овај одељак ће представити како да подесите развојно окружење на сваком систему. Препоручује се развој ЕСП32-Ц3 на Линук систему, који ће овде бити детаљно представљен. Многа упутства су применљива на различитим платформама због сличности развојних алата. Због тога се препоручује да пажљиво прочитате садржај овог одељка.
НАПОМЕНА Можете погледати документе на мрежи који су доступни на хттпс://боокц3.еспрессиф.цом/есп32ц3, који пружају команде поменуте у овом одељку.
4.2.1 Подешавање ЕСП-ИДФ развојног окружења на Линук-у
ГНУ алати за развој и отклањање грешака потребни за развојно окружење ЕСП-ИДФ су изворни за Линук систем. Поред тога, терминал командне линије у Линук-у је моћан и лак за коришћење, што га чини идеалним избором за развој ЕСП32-Ц3. Можете
38 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

изаберите жељену дистрибуцију Линука, али препоручујемо коришћење Убунту-а или других система заснованих на Дебиан-у. Овај одељак пружа упутства за подешавање ЕСП-ИДФ развојног окружења на Убунту 20.04.
1. Инсталирајте потребне пакете
Отворите нови терминал и извршите следећу команду да бисте инсталирали све потребне пакете. Команда ће аутоматски прескочити пакете који су већ инсталирани.
$ судо апт-гет инсталл гит вгет флек бисон гперф питхон3 питхон3-пип питхон3сетуптоолс цмаке ниња-буилд ццацхе либффи-дев либссл-дев дфу-утил либусб-1.0-0
САВЕТИ Морате да користите администраторски налог и лозинку за горњу команду. Подразумевано, никаква информација неће бити приказана приликом уноса лозинке. Једноставно притисните тастер "Ентер" да бисте наставили процедуру.
Гит је алатка за управљање кључним кодом у ЕСП-ИДФ-у. Након успешног подешавања развојног окружења, можете користити гит лог команду за view све промене кода направљене од стварања ЕСП-ИДФ-а. Поред тога, Гит се такође користи у ЕСП-ИДФ-у за потврду информација о верзији, која је неопходна за инсталирање исправног ланца алата који одговара одређеним верзијама. Уз Гит, други важни системски алати укључују Питхон. ЕСП-ИДФ укључује бројне скрипте за аутоматизацију написане у Питхон-у. Алати као што су ЦМаке, Ниња-буилд и Ццацхе се широко користе у Ц/Ц++ пројектима и служе као подразумевани алати за компилацију и прављење кода у ЕСП-ИДФ-у. либусб-1.0-0 и дфу-утил су главни драјвери који се користе за УСБ серијску комуникацију и снимање фирмвера. Када су софтверски пакети инсталирани, можете користити апт схов команду за добијање детаљних описа сваког пакета. Фор екampле, користите апт схов гит да одштампате информације о опису за Гит алатку.
П: Шта учинити ако Питхон верзија није подржана? О: ЕСП-ИДФ в4.3 захтева верзију Питхон-а која није нижа од в3.6. За старије верзије Убунтуа, ручно преузмите и инсталирајте вишу верзију Питхон-а и поставите Питхон3 као подразумевано Питхон окружење. Детаљна упутства можете пронаћи тако што ћете потражити кључну реч упдате-алтернативес питхон.
2. Преузмите ЕСП-ИДФ код спремишта
Отворите терминал и креирајте фасциклу под именом есп у свом кућном директоријуму користећи команду мкдир. Можете одабрати друго име за фасциклу ако желите. Користите команду цд да уђете у фасциклу.
Поглавље 4. Постављање развојног окружења 39

$ мкдир -п /есп $ цд /есп
Користите команду гит цлоне да преузмете ЕСП-ИДФ код спремишта, као што је приказано у наставку:
$ гит цлоне -б в4.3.2 – рекурзивно хттпс://гитхуб.цом/еспрессиф/есп-идф.гит
У горњој команди, параметар -б в4.3.2 наводи верзију за преузимање (у овом случају, верзија 4.3.2). Параметар –рецурсиве осигурава да се сва подрепозиторија ЕСП-ИДФ-а преузимају рекурзивно. Информације о подрепозиторијумима могу се наћи у .гитмодулес file.
3. Инсталирајте ланац развојних алата ЕСП-ИДФ
Еспрессиф обезбеђује аутоматизовану скрипту инсталл.сх за преузимање и инсталирање ланца алата. Ова скрипта проверава тренутну ЕСП-ИДФ верзију и окружење оперативног система, а затим преузима и инсталира одговарајућу верзију пакета Питхон алата и ланаца алата за компилацију. Подразумевана путања инсталације за ланац алата је /.еспрессиф. Све што треба да урадите је да одете до есп-идф директоријума и покренете инсталл.сх.
$ цд /есп/есп-идф $ ./инсталл.сх
Ако успешно инсталирате ланац алата, терминал ће приказати:
Све урађено!
У овом тренутку, успешно сте поставили ЕСП-ИДФ развојно окружење.
4.2.2 Подешавање развојног окружења ЕСП-ИДФ на Виндовс-у
1. Преузмите програм за инсталацију ЕСП-ИДФ алата
САВЕТИ Препоручује се да поставите ЕСП-ИДФ развојно окружење на Виндовс 10 или новији. Инсталациони програм можете преузети са хттпс://дл.еспрессиф.цом/дл/есп-идф/. Инсталатер је такође софтвер отвореног кода, а његов изворни код може бити viewобјављено на хттпс://гитхуб.цом/еспрессиф/идф-инсталлер.
· Онлине програм за инсталацију ЕСП-ИДФ алата
Овај инсталатер је релативно мали, величине око 4 МБ, а други пакети и код ће бити преузети током процеса инсталације. АдванtagЕ од онлајн инсталатора је да не само да се софтверски пакети и код могу преузети на захтев током процеса инсталације, већ такође омогућава инсталацију свих доступних издања ЕСП-ИДФ-а и најновије гране ГитХуб кода (као што је главна грана) . Недостатакtagе је да захтева мрежну везу током процеса инсталације, што може проузроковати неуспех инсталације због проблема са мрежом.
40 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

· Оффлине ЕСП-ИДФ алат за инсталацију Овај програм за инсталацију је већи, величине око 1 ГБ и садржи све софтверске пакете и код потребан за подешавање окружења. Главни адванtagЕ од офлајн инсталатора је то што се може користити на рачунарима без приступа Интернету и генерално има већу стопу успешности инсталације. Треба напоменути да инсталациони програм ван мреже може да инсталира само стабилна издања ЕСП-ИДФ-а идентификована са в*.* или в*.*.*.
2. Покрените програм за инсталацију алата ЕСП-ИДФ Након преузимања одговарајуће верзије инсталационог програма (узмите ЕСП-ИДФ Тоолс Оффлине 4.3.2 нпр.ampле хере), двапут кликните на еке file за покретање ЕСП-ИДФ инсталационог интерфејса. Следеће показује како да инсталирате ЕСП-ИДФ стабилну верзију в4.3.2 помоћу инсталационог програма ван мреже.
(1) У интерфејсу „Изабери језик за инсталацију“ приказаном на слици 4.4, изаберите језик који ће се користити са падајуће листе.
Слика 4.4. Интерфејс „Изабери језик за инсталацију“ (2) Након што изаберете језик, кликните на „ОК“ да бисте отворили интерфејс „Уговор о лиценци“
(види слику 4.5). Након што сте пажљиво прочитали уговор о лиценци за инсталацију, изаберите „Прихватам уговор“ и кликните на „Даље“.
Слика 4.5. Интерфејс „Уговор о лиценци“ Поглавље 4. Подешавање развојног окружења 41

(3) Реview конфигурацију система у интерфејсу „Провера система пре инсталације“ (погледајте слику 4.6). Проверите верзију оперативног система Виндовс и информације о инсталираном антивирусном софтверу. Кликните на „Даље“ ако су све ставке конфигурације нормалне. У супротном, можете кликнути на „Пуна евиденција“ за решења заснована на кључним ставкама.
Слика 4.6. САВЕТИ интерфејса „Провера система пре инсталације“.
Можете да пошаљете евиденције на хттпс://гитхуб.цом/еспрессиф/идф-инсталлер/иссуес за помоћ. (4) Изаберите ЕСП-ИДФ инсталациони директоријум. Овде изаберите Д:/.еспрессиф, као што је приказано на
Слика 4.7 и кликните на „Даље“. Имајте на уму да је .еспрессиф овде скривени директоријум. Након што је инсталација завршена, можете view специфичан садржај овог директоријума отварањем file менаџер и приказивање скривених ставки.
Слика 4.7. Изаберите ЕСП-ИДФ инсталациони директоријум 42 ЕСП32-Ц3 Вирелесс Адвентуре: Свеобухватни водич за ИоТ

(5) Проверите компоненте које треба да се инсталирају, као што је приказано на слици 4.8. Препоручује се да користите подразумевану опцију, односно да завршите инсталацију, а затим кликнете на „Даље“.
Слика 4.8. Изаберите компоненте за инсталирање (6) Потврдите компоненте које желите да инсталирате и кликните на „Инсталирај“ да бисте покренули аутоматизовану инсталацију.
процес стајања, као што је приказано на слици 4.9. Процес инсталације може трајати десетине минута, а трака напретка процеса инсталације је приказана на слици 4.10. Молимо сачекајте стрпљиво.
Слика 4.9. Припрема за инсталацију (7) Након завршетка инсталације, препоручује се да проверите „Региструјте ЕСП-ИДФ
Извршне датотеке алата као изузећа Виндовс Дефендер-а…” да бисте спречили брисање антивирусног софтвера fileс. Додавање ставки за изузимање такође може да прескочи честа скенирања антивируса
Поглавље 4. Постављање развојног окружења 43

Слика 4.10. Софтвер за траку напретка инсталације, који значајно побољшава ефикасност компилације кода Виндовс система. Кликните на „Финисх“ да бисте завршили инсталацију развојног окружења, као што је приказано на слици 4.11. Можете изабрати да означите „Покрени ЕСП-ИДФ ПоверСхелл окружење“ или „Покрени ЕСП-ИДФ командну линију“. Покрените прозор за компилацију директно након инсталације да бисте осигурали да развојно окружење функционише нормално.
Слика 4.11. Инсталација је завршена (8) Отворите инсталирано развојно окружење у листи програма (било ЕСП-ИДФ 4.3
ЦМД или ЕСП-ИДФ 4.3 ПоверСхелл терминал, као што је приказано на слици 4.12), и варијабла окружења ЕСП-ИДФ биће аутоматски додата када се покрене у терминалу. Након тога можете користити команду идф.пи за операције. Отворени ЕСП-ИДФ 4.3 ЦМД је приказан на слици 4.13. 44 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Слика 4.12. Инсталирано развојно окружење
Слика 4.13. ЕСП-ИДФ 4.3 ЦМД
4.2.3 Подешавање ЕСП-ИДФ развојног окружења на Мац-у
Процес инсталирања ЕСП-ИДФ развојног окружења на Мац систему је исти као и на Линук систему. Команде за преузимање кода спремишта и инсталирање ланца алата су потпуно исте. Само се команде за инсталирање пакета зависности мало разликују. 1. Инсталирајте пакете зависности Отворите терминал и инсталирајте пип, Питхон алатку за управљање пакетима, тако што ћете покренути следећу команду:
% судо лака инсталација пип
Инсталирајте Хомебрев, алатку за управљање пакетима за мацОС, тако што ћете покренути следећу команду:
% /бин/басх -ц “$(цurl -фсСЛ хттпс://рав.гитхубусерцонтент.цом/Хомебрев/инсталл/ ХЕАД/инсталл.сх)”
Инсталирајте потребне пакете зависности тако што ћете покренути следећу команду:
% брев питхон3 инсталл цмаке ниња ццацхе дфу-утил
2. Преузмите ЕСП-ИДФ код спремишта Пратите упутства дата у одељку 4.2.1 да бисте преузели код ЕСП-ИДФ спремишта. Кораци су исти као за преузимање на Линук систему.
Поглавље 4. Постављање развојног окружења 45

3. Инсталирајте ланац развојних алата ЕСП-ИДФ
Пратите упутства дата у одељку 4.2.1 да бисте инсталирали ланац развојних алата ЕСП-ИДФ. Кораци су исти као за инсталацију на Линук систему.
4.2.4 Инсталирање ВС кода
ЕСП-ИДФ СДК подразумевано не укључује алатку за уређивање кода (иако најновији ЕСП-ИДФ инсталатер за Виндовс нуди опцију за инсталирање ЕСП-ИДФ Ецлипсе). Можете користити било који алат за уређивање текста по вашем избору да бисте уредили код, а затим га компајлирали помоћу команди терминала.
Један популаран алат за уређивање кода је ВС Цоде (Висуал Студио Цоде), који је бесплатан уређивач кода богат функцијама са интерфејсом прилагођеним кориснику. Нуди разне plugins које пружају функционалности као што су навигација кодом, истицање синтаксе, контрола верзије Гит-а и интеграција терминала. Поред тога, Еспрессиф је развио наменски додатак под називом Еспрессиф ИДФ за ВС Цоде, који поједностављује конфигурацију пројекта и отклањање грешака.
Можете користити команду кода у терминалу да брзо отворите тренутну фасциклу у ВС Цоде-у. Алтернативно, можете користити пречицу Цтрл+ да отворите подразумевану терминалну конзолу система у оквиру ВС Цоде.
САВЕТИ Препоручује се коришћење ВС кода за развој ЕСП32-Ц3 кода. Преузмите и инсталирајте најновију верзију ВС Цоде-а на хттпс://цоде.висуалстудио.цом/.
4.2.5 Увод у развојна окружења трећих страна
Поред званичног ЕСП-ИДФ развојног окружења, које првенствено користи језик Ц, ЕСП32-Ц3 такође подржава друге главне програмске језике и широк спектар развојних окружења независних произвођача. Неке значајне опције укључују:
Ардуино: платформа отвореног кода за хардвер и софтвер, подржава различите микроконтролере, укључујући ЕСП32-Ц3.
Користи језик Ц++ и нуди поједностављени и стандардизовани АПИ, који се обично назива Ардуино језик. Ардуино се широко користи у развоју прототипа и образовном контексту. Пружа прошириви софтверски пакет и ИДЕ који омогућава лаку компилацију и флешовање.
МицроПитхон: преводилац језика Питхон 3 дизајниран за рад на платформама уграђених микроконтролера.
Са једноставним језиком скрипте, може директно да приступи периферним ресурсима ЕСП32-Ц3 (као што су УАРТ, СПИ и И2Ц) и комуникацијским функцијама (као што су Ви-Фи и Блуетоотх ЛЕ).
46 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

Ово поједностављује хардверску интеракцију. МицроПитхон, у комбинацији са Питхоновом опсежном библиотеком математичких операција, омогућава имплементацију сложених алгоритама на ЕСП32-Ц3, олакшавајући развој апликација у вези са вештачком интелигенцијом. Као скриптни језик, нема потребе за поновљеном компилацијом; могу се направити модификације и скрипте се могу извршити директно.
НодеМЦУ: ЛУА језички тумач развијен за ЕСП серију чипова.
Подржава скоро све периферне функције ЕСП чипова и лакши је од МицроПитхон-а. Слично МицроПитхон-у, НодеМЦУ користи језик скрипте, елиминишући потребу за поновљеном компилацијом.
Штавише, ЕСП32-Ц3 такође подржава НуттКс и Зепхир оперативне системе. НуттКс је оперативни систем у реалном времену који обезбеђује ПОСИКС-компатибилне интерфејсе, побољшавајући преносивост апликација. Зепхир је мали оперативни систем у реалном времену посебно дизајниран за ИоТ апликације. Укључује бројне софтверске библиотеке потребне за развој ИоТ-а, постепено еволуирајући у свеобухватан софтверски екосистем.
Ова књига не пружа детаљна упутства за инсталацију за горе поменута развојна окружења. Можете инсталирати развојно окружење на основу ваших захтева пратећи одговарајућу документацију и упутства.
4.3 ЕСП-ИДФ систем компилације
4.3.1 Основни концепти система компилације
ЕСП-ИДФ пројекат је колекција главног програма са улазном функцијом и више независних функционалних компоненти. Фор екampле, пројекат који контролише ЛЕД прекидаче углавном се састоји од главног програма за унос и компоненте драјвера која контролише ГПИО. Ако желите да реализујете ЛЕД даљински управљач, такође морате да додате Ви-Фи, ТЦП/ИП протокол протокола итд.
Систем за компилацију може да компајлира, повеже и генерише извршни фајл fileс (.бин) за код кроз скуп правила изградње. Систем компилације ЕСП-ИДФ в4.0 и новијих верзија је подразумевано заснован на ЦМаке-у, а скрипта за компилацију ЦМакеЛистс.ткт се може користити за контролу понашања кода при компилацији. Осим што подржава основну синтаксу ЦМаке-а, ЕСП-ИДФ систем компилације такође дефинише скуп подразумеваних правила компилације и ЦМаке функција, а ви можете написати скрипту за компилацију једноставним изјавама.
4.3.2 Пројекат File Структура
Пројекат је фасцикла која садржи главни програм за унос, компоненте које дефинише корисник и fileНеопходан је за прављење извршних апликација, као што су скрипте за компилацију, конфигурација
Поглавље 4. Постављање развојног окружења 47

fileс, табеле партиција, итд. Пројекти се могу копирати и прослеђивати, а исти извршни file може се компајлирати и генерисати на машинама са истом верзијом ЕСП-ИДФ развојног окружења. Типичан ЕСП-ИДФ пројекат file структура је приказана на слици 4.14.
Слика 4.14. Типичан ЕСП-ИДФ пројекат file структура Пошто ЕСП-ИДФ подржава више ИоТ чипова компаније Еспрессиф, укључујући ЕСП32, ЕСП32-С серију, ЕСП32-Ц серију, ЕСП32-Х серију, итд., потребно је одредити циљ пре компајлирања кода. Циљ је и хардверски уређај који покреће апликативни програм и циљ изградње система за компилацију. У зависности од ваших потреба, можете одредити један или више циљева за ваш пројекат. Фор екampда, преко команде идф.пи сет-таргет есп32ц3, можете поставити циљ компилације на ЕСП32-Ц3, током којег ће се учитати подразумевани параметри и путања ланца алата за компилацију за ЕСП32Ц3. Након компилације, извршни програм се може генерисати за ЕСП32Ц3. Такође можете поново покренути команду сет-таргет да бисте поставили други циљ, а систем компилације ће се аутоматски очистити и поново конфигурисати. Компоненте
Компоненте у ЕСП-ИДФ су модуларне и независне јединице кода којима се управља у оквиру система за компилацију. Они су организовани као фасцикле, при чему име фолдера подразумевано представља назив компоненте. Свака компонента има своју скрипту за компилацију која 48 ЕСП32-Ц3 Вирелесс Адвентуре: Свеобухватни водич за ИоТ

специфицира његове параметре компилације и зависности. Током процеса компилације, компоненте се компајлирају у засебне статичке библиотеке (.а fileс) и на крају се комбинује са другим компонентама да би се формирао апликативни програм.
ЕСП-ИДФ пружа основне функције, као што су оперативни систем, драјвери периферије и стек мрежних протокола, у облику компоненти. Ове компоненте се чувају у директоријуму компоненти који се налази унутар ЕСП-ИДФ основног директоријума. Програмери не морају да копирају ове компоненте у директоријум компоненти миПројецт. Уместо тога, само треба да наведу односе зависности ових компоненти у ЦМакеЛистс.ткт пројекта file користећи директиве РЕКУИРЕС или ПРИВ_РЕКУИРЕС. Систем за компилацију ће аутоматски лоцирати и компајлирати потребне компоненте.
Стога, директоријум компоненти под миПројецт није неопходан. Користи се само за укључивање неких прилагођених компоненти пројекта, које могу бити библиотеке трећих страна или кориснички дефинисани код. Поред тога, компоненте се могу добити из било ког директоријума осим ЕСП-ИДФ-а или тренутног пројекта, као што је пројекат отвореног кода сачуван у другом директоријуму. У овом случају, потребно је само да додате путању компоненте тако што ћете поставити променљиву ЕКСТРА_ЦОМПОНЕНТ_ДИРС у ЦМакеЛистс.ткт испод основног директоријума. Овај директоријум ће заменити било коју ЕСП-ИДФ компоненту са истим именом, обезбеђујући да се користи исправна компонента.
Улазни програм маин Главни директоријум у оквиру пројекта следи исто file структуру као и друге компоненте (нпр. компонента1). Међутим, он има посебан значај јер је обавезна компонента која мора постојати у сваком пројекту. Главни директоријум садржи изворни код пројекта и улазну тачку корисничког програма, обично под називом апп_маин. Подразумевано, извршавање корисничког програма почиње од ове улазне тачке. Главна компонента се такође разликује по томе што аутоматски зависи од свих компоненти унутар путање за претрагу. Стога, нема потребе да се експлицитно назначују зависности коришћењем директива РЕКУИРЕС или ПРИВ_РЕКУИРЕС у ЦМакеЛистс.ткт file.
Конфигурација file Основни директоријум пројекта садржи конфигурацију file под називом сдкцонфиг, који садржи конфигурационе параметре за све компоненте у оквиру пројекта. Тхе сдкцонфиг file се аутоматски генерише од стране система за компилацију и може се модификовати и регенерисати командом идф.пи менуцонфиг. Опције менуцонфиг углавном потичу из Кцонфиг.пројбуилд пројекта и Кцонфиг компоненти. Програмери компоненти углавном додају конфигурационе ставке у Кцонфиг да би компоненту учинили флексибилном и конфигурабилном.
Директоријум за изградњу Подразумевано, директоријум за изградњу унутар пројекта складишти међупродукте fileс и фи-
Поглавље 4. Постављање развојног окружења 49

завршни извршни програми генерисани наредбом за изградњу идф.пи. Уопштено говорећи, није неопходно директно приступити садржају директоријума за изградњу. ЕСП-ИДФ обезбеђује унапред дефинисане команде за интеракцију са директоријумом, као што је коришћење идф.пи фласх команде за аутоматско лоцирање компајлиране бинарне датотеке file и флешујте га на наведену флеш адресу или помоћу команде идф.пи фуллцлеан да очистите цео директоријум за изградњу.
Табела партиција (партитионс.цсв) ​​Сваки пројекат захтева партициону табелу да подели простор флеш-а и одреди величину и почетну адресу извршног програма и простора корисничких података. Наредба идф.пи фласх или ОТА програм за надоградњу ће флешовати фирмвер на одговарајућу адресу према овој табели. ЕСП-ИДФ обезбеђује неколико подразумеваних табела партиција у компонентама/табела_партиција, као што су партитионс_синглеапп.цсв и партитионс_тво_ ота.цсв, које се могу изабрати у менуцонфиг.
Ако подразумевана табела партиција система не може да испуни захтеве пројекта, прилагођени партитионс.цсв се може додати у директоријум пројекта и изабрати у менуцонфиг.
4.3.3 Подразумевана правила изградње система за компилацију
Правила за поништавање компоненти са истим именом Током процеса претраживања компоненти, систем компилације прати одређени редослед. Прво тражи унутрашње компоненте ЕСП-ИДФ-а, затим тражи компоненте корисничког пројекта и на крају тражи компоненте у ЕКСТРА_ЦОМПОНЕНТ_ДИРС. У случајевима када више директоријума садржи компоненте са истим именом, компонента пронађена у последњем директоријуму ће заменити све претходне компоненте са истим именом. Ово правило дозвољава прилагођавање компоненти ЕСП-ИДФ унутар корисничког пројекта, док оригинални ЕСП-ИДФ код остаје нетакнут.
Правила за подразумевано укључивање уобичајених компоненти Као што је поменуто у одељку 4.3.2, компоненте морају експлицитно да специфицирају своје зависности од других компоненти у ЦМакеЛистс.ткт. Међутим, уобичајене компоненте као што је фреертос су аутоматски укључене у систем изградње подразумевано, чак и ако њихови односи зависности нису експлицитно дефинисани у скрипти за компилацију. Уобичајене компоненте ЕСП-ИДФ-а укључују фреертос, Невлиб, хеап, лог, соц, есп_ром, есп_цоммон, ктенса/рисцв и цкк. Коришћење ових уобичајених компоненти избегава рад који се понавља приликом писања ЦМакеЛистс.ткт и чини га концизнијим.
Правила за поништавање ставки конфигурације Програмери могу да додају подразумеване конфигурационе параметре додавањем подразумеване конфигурације file под називом сдкцонфиг.дефаултс за пројекат. Фор екampле, додавањем ЦОНФИГ_ЛОГ_
50 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

ДЕФАУЛТ_ЛЕВЕЛ_НОНЕ = и може да конфигурише УАРТ интерфејс тако да подразумевано не штампа податке дневника. Штавише, ако је потребно поставити специфичне параметре за одређени циљ, конфигурацију file може се додати под називом сдкцонфиг.дефаултс.ТАРГЕТ_НАМЕ, при чему ТАРГЕТ_НАМЕ може бити есп32с2, есп32ц3, итд. Ове конфигурације fileс се увозе у сдкцонфиг током компилације, са општом подразумеваном конфигурацијом file сдкцонфиг.дефаултс се прво увозе, а затим следи конфигурација специфична за циљ file, као што је сдкцонфиг.дефаултс.есп32ц3. У случајевима када постоје ставке конфигурације са истим именом, последња конфигурација file ће надјачати претходни.
4.3.4 Увод у скрипту компилације
Када развијају пројекат користећи ЕСП-ИДФ, програмери не само да морају да напишу изворни код, већ и да напишу ЦМакеЛистс.ткт за пројекат и компоненте. ЦМакеЛистс.ткт је текст file, такође познат као скрипта за компилацију, која дефинише низ објеката компилације, ставки конфигурације компилације и команди за вођење процеса компилације изворног кода. Систем компилације ЕСП-ИДФ в4.3.2 је заснован на ЦМаке. Поред подршке изворним ЦМаке функцијама и командама, он такође дефинише низ прилагођених функција, што знатно олакшава писање скрипти за компилацију.
Скрипте за компилацију у ЕСП-ИДФ углавном укључују скрипту за компилацију пројекта и скрипте за компилацију компоненти. ЦМакеЛистс.ткт у основном директоријуму пројекта назива се скрипта за компилацију пројекта, која води процес компилације целог пројекта. Основна скрипта за компилацију пројекта обично укључује следећа три реда:
1. цмаке_минимум_рекуиред(ВЕРЗИЈА 3.5) 2. инцлуде($ЕНВ{ИДФ_ПАТХ}/тоолс/цмаке/пројецт.цмаке) 3. пројецт(миПројецт)
Међу њима, цмаке_минимум_рекуиред (ВЕРЗИЈА 3.5) мора бити постављен у први ред, који се користи за означавање минималног броја верзије ЦМаке који је потребан за пројекат. Новије верзије ЦМаке-а су генерално компатибилне уназад са старијим верзијама, тако да прилагодите број верзије у складу са тим када користите новије ЦМаке команде да бисте осигурали компатибилност.
инцлуде($ЕНВ {ИДФ_ПАТХ}/тоолс/цмаке/пројецт.цмаке) увози унапред дефинисане конфигурационе ставке и команде ЕСП-ИДФ система за компилацију, укључујући подразумевана правила изградње система за компилацију описана у одељку 4.3.3. пројецт(миПројецт) креира сам пројекат и наводи његово име. Ово име ће се користити као коначни бинарни излаз file име, тј. миПројецт.елф и миПројецт.бин.
Пројекат може имати више компоненти, укључујући и главну компоненту. Директоријум највишег нивоа сваке компоненте садржи ЦМакеЛистс.ткт file, који се назива скрипта за компилацију компоненте. Скрипте за компилацију компоненти се углавном користе за одређивање зависности компоненти, конфигурационих параметара, изворног кода fileс, и укључено заглавље fileс за
Поглавље 4. Постављање развојног окружења 51

компилација. Са ЕСП-ИДФ прилагођеном функцијом идф_цомпонент_регистер, минимални потребан код за скрипту компилације компоненте је следећи:

1. идф_цомпонент_регистер(СРЦС “срц1.ц”

2.

ИНЦЛУДЕ_ДИРС „укључи“

3.

ЗАХТЕВА компоненту1)

СРЦС параметар обезбеђује листу извора fileс у компоненти, одвојене размацима ако их има више fileс. Параметар ИНЦЛУДЕ_ДИРС обезбеђује листу јавног заглавља file директоријуме за компоненту, који ће бити додати путањи за претрагу укључивања за друге компоненте које зависе од тренутне компоненте. Параметар РЕКУИРЕС идентификује зависности јавне компоненте за тренутну компоненту. Неопходно је да компоненте експлицитно наведу од којих компоненти зависе, као што је компонента2 у зависности од компоненте1. Међутим, за главну компоненту, која подразумевано зависи од свих компоненти, параметар РЕКУИРЕС се може изоставити.

Поред тога, изворне ЦМаке команде се такође могу користити у скрипти за компилацију. Фор екampле, користите наредбу сет за постављање променљивих, као што је сет(ВАРИАБЛЕ “ВАЛУЕ”).

4.3.5 Увод у заједничке команде
ЕСП-ИДФ користи ЦМаке (алат за конфигурацију пројекта), Ниња (алат за изградњу пројекта) и есптоол (флеш алат) у процесу компилације кода. Сваки алат игра различиту улогу у процесу компилације, изградње и флешовања, а такође подржава различите оперативне команде. Да би олакшао рад корисника, ЕСП-ИДФ додаје обједињени фронт-енд идф.пи који омогућава брзо позивање горњих команди.
Пре употребе идф.пи, уверите се да:
· Променљива окружења ИДФ_ПАТХ ЕСП-ИДФ је додата тренутном терминалу. · Директоријум за извршавање команде је основни директоријум пројекта, који укључује
Скрипта за компилацију пројекта ЦМакеЛистс.ткт.
Уобичајене команде идф.пи су следеће:
· идф.пи –хелп: приказује листу команди и упутства за њихово коришћење. · идф.пи сет-таргет : подешавање компилације таидф.пи фуллцлеанргет, тако
као замена са есп32ц3. · идф.пи менуцонфиг: покретање менуцонфиг, графичка конфигурација терминала
алат, који може да бира или мења опције конфигурације, а резултати конфигурације се чувају у сдкцонфиг file. · идф.пи буилд: покретање компилације кода. Интермедиате fileс и коначни извршни програм генерисан компилацијом ће подразумевано бити сачуван у директоријуму за изградњу пројекта. Процес компилације је инкременталан, што значи да ако је само један извор file је модификовано, само модификовано file биће састављен следећи пут.

52 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

· идф.пи цлеан: чишћење међупроизвода fileс генерисан компилацијом пројекта. Цео пројекат ће бити приморан да се компајлира у следећој компилацији. Имајте на уму да конфигурација ЦМаке и модификације конфигурације које је направио менуцонфиг неће бити избрисане током чишћења.
· идф.пи фуллцлеан: брисање целог директоријума за изградњу, укључујући сав излаз конфигурације ЦМаке-а fileс. Када поново правите пројекат, ЦМаке ће конфигурисати пројекат од нуле. Имајте на уму да ће ова команда рекурзивно избрисати све fileс у директоријуму за изградњу, па га користите опрезно и конфигурацију пројекта file неће бити обрисан.
· идф.пи фласх: флешује извршни програм file генерисано изградњом за циљни ЕСП32-Ц3. Опције -п и -б се користе за подешавање назива уређаја серијског порта и брзине преноса за трептање, респективно. Ако ове две опције нису наведене, серијски порт ће бити аутоматски откривен и користиће се подразумевана брзина преноса.
· идф.пи монитор: приказује излаз серијског порта циљног ЕСП32-Ц3. Опција -п се може користити за одређивање назива уређаја серијског порта на страни домаћина. Током штампања серијског порта, притисните комбинацију тастера Цтрл+] да бисте изашли из монитора.
Горе наведене команде се такође могу комбиновати по потреби. Фор екampУ наставку, команда идф.пи буилд фласх монитор ће извршити компилацију кода, флешовати и отворити монитор серијског порта у низу.
Можете да посетите хттпс://боокц3.еспрессиф.цом/буилд-систем да бисте сазнали више о ЕСП-ИДФ систему компилације.
4.4 Вежбање: Састављање прampпрограм „Блинк”
4.4.1 Докampле Аналисис
Овај одељак ће програм Блинк узети као примерampда анализирамо file структуру и правила кодирања реалног пројекта у детаље. Програм Блинк имплементира ефекат трептања ЛЕД-а, а пројекат се налази у директоријуму екampлес/гет-стартед/блинк, који садржи извор file, конфигурација fileс, и неколико компилацијских скрипти.
Пројекат паметног светла представљен у овој књизи заснива се на овом прampле програм. Функције ће се постепено додавати у каснијим поглављима да би се то коначно завршило.
Изворни код Да би се демонстрирао цео процес развоја, Блинк програм је копиран у есп32ц3-иот-пројецтс/девице фирмваре/1 блинк.
Структура директоријума блинк пројекта fileс је приказан на слици 4.15.
Блинк пројекат садржи само један главни директоријум, који је посебна компонента која
Поглавље 4. Постављање развојног окружења 53

Слика 4.15. File структура директоријума блинк пројекта

морају бити укључени као што је описано у одељку 4.3.2. Главни директоријум се углавном користи за складиштење имплементације апп_маин() функције, која је улазна тачка у кориснички програм. Блинк пројекат не укључује директоријум компоненти, јер овај нпр.ampле треба да користи само компоненте које долазе са ЕСП-ИДФ и не захтева додатне компоненте. ЦМакеЛистс.ткт укључен у блинк пројекат се користи за вођење процеса компилације, док се Кцонфиг.пројбуилд користи за додавање конфигурационих ставки за овај нпр.ampле програм у менуцонфиг. Остало непотребно fileс неће утицати на компилацију кода, тако да о њима овде неће бити речи. Детаљан увод у пројекат блинк fileс је следећи.

1. /*блинк.ц укључује следеће заглавље fileс*/

2. #инцлуде

//Заглавље стандардне Ц библиотеке file

3. #инцлуде “фреертос/фрееРТОС.х” //ФрееРТОС главно заглавље file

4. #инцлуде “фреертос/таск.х”

//Заглавље задатка ФрееРТОС file

5. #инцлуде “сдкцонфиг.х”

//Заглавље конфигурације file коју генерише кцонфиг

6. #инцлуде “дривер/гпио.х”

// Заглавље драјвера ГПИО file

Извор file блинк.ц садржи серију заглавља fileс одговара декларацији функције-

ције. ЕСП-ИДФ генерално прати редослед укључивања заглавља стандардне библиотеке fileс, ФрееР-

ТОС заглавље fileс, заглавље драјвера fileс, заглавље друге компоненте fileс, и заглавље пројекта files.

Редослед којим заглавље fileс укључени могу утицати на коначни резултат компилације, па покушајте

следите подразумевана правила. Треба напоменути да се сдкцонфиг.х аутоматски генерише

помоћу кцонфиг и може се конфигурисати само преко команде идф.пи менуцонфиг.

Директна модификација овог заглавља file биће преписана.

1. /*Можете да изаберете ГПИО који одговара ЛЕД диоди у идф.пи менуцонфиг, а резултат модификације менуцонфиг је да је вредност ЦОНФИГ_БЛИНК

_ГПИО ће бити промењен. Такође можете директно да измените макро дефиницију

овде и промените ЦОНФИГ_БЛИНК_ГПИО на фиксну вредност.*/ 2. #дефине БЛИНК_ГПИО ЦОНФИГ_БЛИНК_ГПИО

3. воид апп_маин(воид)

4. {

5.

/*Конфигуришите ИО као подразумевану функцију ГПИО, омогућите режим повлачења и

6.

онемогући улазне и излазне режиме*/

7.

гпио_ресет_пин(БЛИНК_ГПИО);

54 ЕСП32-Ц3 бежична авантура: свеобухватни водич за интернет ствари

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

/*Подесите ГПИО на излазни режим*/ гпио_сет_дирецтион(БЛИНК_ГПИО, ГПИО_МОДЕ_ОУТПУТ); док (1) {
/*Принт лог*/ принтф(“Искључивање ЛЕДн”); /*Искључити ЛЕД (низак ниво излаза)*/ гпио_сет_левел(БЛИНК_ГПИО, 0); /*Кашњење (1000 мс)*/ вТаскДелаи(1000 / портТИЦК_ПЕРИОД_МС); принтф(“Укључивање ЛЕДн”); /*Укључити ЛЕД (висок ниво излаза)*/ гпио_сет_левел(БЛИНК_ГПИО, 1); вТаскДелаи(1000 / портТИЦК_ПЕРИОД_МС); }

Функција апп_маин() у Блинк екampле програм служи као улазна тачка за корисничке програме. То је једноставна функција без параметара и без повратне вредности. Ова функција се позива након што систем заврши иницијализацију, што укључује задатке као што су иницијализација серијског порта дневника, конфигурисање једног/двојезгреног језгра и конфигурисање чувара.

Функција апп_маин() се покреће у контексту задатка који се зове маин. Величина стека и приоритет овог задатка се могу подесити у менуцонфиг Цомпонентцонфиг Цоммон ЕСП-релатед.

За једноставне задатке као што је трептање ЛЕД-а, сав потребан код се може имплементирати директно у функцију апп_маин(). Ово обично укључује иницијализацију ГПИО-а који одговара ЛЕД-у и коришћење вхиле(1) петље за укључивање и искључивање ЛЕД-а. Алтернативно, можете користити ФрееРТОС АПИ за креирање новог задатка који управља трептањем ЛЕД-а. Када је нови задатак успешно креиран, можете изаћи из функције апп_маин().

Садржај маин/ЦМакеЛистс.ткт file, који води процес компилације за главну компоненту, је следећи:

1. идф_цомпонент_регистер(СРЦС “блинк.ц” ИНЦЛУДЕ_ДИРС “.” )

Међу њима, маин/ЦМакеЛистс.ткт позива само једну системску функцију компилације, то је идф_цомпонент_регистер. Слично ЦМакеЛистс.ткт за већину других компоненти, блинк.ц се додаје у СРЦС, а извор fileс додати у СРЦС ће бити састављен. Истовремено, „.“, који представља путању на којој се налази ЦМакеЛистс.ткт, треба додати у ИНЦЛУДЕ_ДИРС као директоријуме за претрагу заглавља fileс. Садржај ЦМакеЛистс.ткт је следећи:
1. #Наведите в3.5 као најстарију ЦМаке верзију коју подржава тренутни пројекат 2. #Верзије ниже од в3.5 морају бити надограђене пре него што се компилација настави 3. цмаке_минимум_рекуиред(ВЕРЗИЈА 3.5) 4. #Укључи подразумевану ЦМаке конфигурацију ЕСП-а -ИДФ систем компилације

Поглавље 4. Постављање развојног окружења 55

5. инцлуде($ЕНВ{ИДФ_ПАТХ}/тоолс/цмаке/пројецт.цмаке) 6. #Креирајте пројекат под називом „блинк“ 7. пројецт(миПројецт)
Међу њима, ЦМакеЛистс.ткт у основном директоријуму углавном укључује $ЕНВ{ИДФ_ ПАТХ}/тоолс/цмаке/пројецт.цмаке, што је главна ЦМаке конфигурација file обезбедио ЕСП-ИДФ. Користи се за кон

Документи / Ресурси

Еспрессиф Системс ЕСП32-Ц3 Вирелесс Адвентуре [пдф] Упутство за кориснике
ЕСП32-Ц3 бежична авантура, ЕСП32-Ц3, бежична авантура, авантура

Референце

Оставите коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена *