ESP32-C3 Wireless Adventure
ESP32-C3 Wireless Adventure
IoT боюнча комплекстүү колдонмо
Espressif системалары 12-июнь, 2023-жыл
Техникалык шарттар
- Продукт: ESP32-C3 Wireless Adventure
- Өндүрүүчү: Espressif Systems
- Дата: 12-июнь, 2023-жыл
Продукт колдонуу нускамалары
Даярдоо
ESP32-C3 Wireless Adventure колдонуудан мурун, бар экениңизди текшериңиз
IoT концепциялары жана архитектурасы менен тааныш. Бул жардам берет
сиз аппараттын чоңураак IoT экосистемасына кантип туура келерин түшүнөсүз
жана анын акылдуу үйлөрдө потенциалдуу колдонмолору.
IoT долбоорлорун киргизүү жана практикалоо
Бул бөлүмдө сиз типтүү IoT долбоорлору жөнүндө биле аласыз,
анын ичинде жалпы IoT түзүлүштөрү үчүн негизги модулдар, негизги модулдар
кардар тиркемелери жана жалпы IoT булут платформалары. Бул болот
түшүнүү жана түзүү үчүн негиз менен камсыз кылуу
IoT долбоорлоруна ээ.
Практика: Акылдуу жарык долбоору
Бул практикалык долбоордо сиз смартты кантип түзүүнү үйрөнөсүз
ESP32-C3 Wireless Adventure аркылуу жарык. Долбоордун түзүмү,
функциялары, аппараттык камсыздоону даярдоо жана иштеп чыгуу процесси болот
майда-чүйдөсүнө чейин түшүндүрүп берди.
Долбоордун структурасы
Долбоор бир нече компоненттерден турат, анын ичинде
ESP32-C3 Wireless Adventure, LED, сенсорлор жана булут
backend.
Долбоордун функциялары
акылдуу жарык долбоору жарыктыгын жана башкарууга мүмкүндүк берет
Мобилдик колдонмо аркылуу алыстан LED түсүн же web
интерфейс.
Аппараттык камсыздоону даярдоо
Долбоорду даярдоо үчүн, сиз чогултуу керек
зарыл аппараттык компоненттери, мисалы, ESP32-C3 Wireless
Укмуштуу окуялар тактасы, светодиоддор, резисторлор жана электр энергиясы.
Өнүгүү процесси
Өнүгүү процесси өнүгүүнү орнотууну камтыйт
айлана-чөйрө, LED башкаруу үчүн код жазуу, туташуу
булут сервери жана смарттын иштешин текшерүү
жарык.
ESP RainMaker менен таанышуу
ESP RainMaker IoT өнүктүрүү үчүн күчтүү негиз болуп саналат
түзмөктөр. Бул бөлүмдө сиз ESP RainMaker деген эмне экенин биле аласыз
ал сиздин долбоорлоруңузда кантип ишке ашырылышы мүмкүн.
ESP RainMaker деген эмне?
ESP RainMaker булутка негизделген платформа болуп саналат, ал топтомун камсыз кылат
IoT түзмөктөрүн куруу жана башкаруу үчүн куралдар жана кызматтар.
ESP RainMakerди ишке ашыруу
Бул бөлүмдө тартылган ар кандай компоненттер түшүндүрүлөт
ESP RainMaker ишке ашыруу, анын ичинде доо кызматы,
RainMaker агенти, булуттук сервер жана RainMaker кардары.
Практика: ESP RainMaker менен иштеп чыгуу үчүн негизги пункттар
Бул практика бөлүмүндө сиз негизги пункттар жөнүндө биле аласыз
ESP RainMaker менен иштеп жатканда эске алыңыз. Бул аппаратты камтыйт
доо, маалыматтарды синхрондоштуруу жана колдонуучу башкаруу.
ESP RainMaker өзгөчөлүктөрү
ESP RainMaker колдонуучу башкаруу үчүн ар кандай мүмкүнчүлүктөрдү сунуш кылат, акыры
колдонуучулар жана администраторлор. Бул өзгөчөлүктөр жеңил аппаратты берет
орнотуу, алыстан башкаруу жана мониторинг.
Өнүктүрүү чөйрөсүн орнотуу
Бул бөлүм ашыкча камсыз кылатview ESP-IDF (Espressif IoT
Өнүктүрүү алкактары) расмий өнүгүү алкагы болуп саналат
ESP32 негизиндеги түзмөктөр үчүн. Бул ар кандай версияларды түшүндүрөт
ESP-IDF жана иштеп чыгуу чөйрөсүн кантип орнотуу керек.
Аппараттык камсыздоо жана драйверлерди өнүктүрүү
ESP32-C3 негизиндеги Smart Light продуктуларынын аппараттык дизайны
Бул бөлүм акылдуу жарыктын аппараттык дизайнына багытталган
ESP32-C3 Wireless Adventure негизиндеги өнүмдөр. Ал камтыйт
акылдуу жарык буюмдардын өзгөчөлүктөрү жана курамы, ошондой эле
ESP32-C3 негизги системасынын аппараттык дизайн.
Smart Light продуктуларынын өзгөчөлүктөрү жана курамы
Бул бөлүмдө түзүүчү функциялар жана компоненттер түшүндүрүлөт
акылдуу жарык өнүмдөрүн жогорулатуу. Бул ар кандай функцияларды талкуулайт
жана акылдуу чырактарды түзүү үчүн дизайн ойлору.
ESP32-C3 негизги системасынын аппараттык дизайны
ESP32-C3 негизги тутумунун аппараттык дизайны кубаттуулукту камтыйт
камсыздоо, күйгүзүү ырааттуулугу, системаны баштапкы абалга келтирүү, SPI жарыгы, саат булагы,
жана RF жана антеннаны эске алуу. Бул бөлүмдө каралган
бул аспектилери боюнча толук маалымат.
Көп берилүүчү суроолор
С: ESP RainMaker деген эмне?
A: ESP RainMaker булутка негизделген платформа, ал куралдар менен камсыз кылат
жана IoT түзмөктөрүн куруу жана башкаруу кызматтары. Бул жөнөкөйлөтөт
иштеп чыгуу жараяны жана жеңил аппаратты орнотууга мүмкүндүк берет, алыстан
контролдоо жана мониторинг жүргүзүү.
С: Мен кантип иштеп чыгуу чөйрөсүн орното алам
ESP32-C3?
A: ESP32-C3 үчүн иштеп чыгуу чөйрөсүн орнотуу үчүн, керек
орнотуу үчүн ESP-IDF (Espressif IoT Development Framework) жана
аны берилген көрсөтмөлөргө ылайык конфигурациялаңыз. ESP-IDF болуп саналат
ESP32 негизиндеги түзмөктөр үчүн расмий өнүктүрүү негизи.
С: ESP RainMaker кандай өзгөчөлүктөрү бар?
A: ESP RainMaker ар кандай мүмкүнчүлүктөрдү, анын ичинде колдонуучуну сунуш кылат
башкаруу, акыркы колдонуучу өзгөчөлүктөрү жана администратор өзгөчөлүктөрү. Колдонуучуну башкаруу
жеңил түзмөк доомат жана маалыматтарды синхрондоштуруу үчүн мүмкүнчүлүк берет. Акыркы колдонуучу
өзгөчөлүктөр мобилдик колдонмо же аркылуу түзмөктөрдү алыстан башкарууга мүмкүндүк берет
web интерфейс. Администратордун функциялары түзмөккө мониторинг жүргүзүү үчүн куралдар менен камсыз кылат
жана башкаруу.
ESP32-C3 Wireless Adventure
IoT боюнча комплекстүү колдонмо
Espressif системалары 12-июнь, 2023-жыл
Мазмуну
I Даярдоо
1
1 IoTге киришүү
3
1.1 IoT архитектурасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Акылдуу үйлөрдө IoT колдонмосу. . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 IoT долбоорлорун киргизүү жана практикалоо
9
2.1 IoT типтүү долбоорлоруна киришүү. . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Жалпы IoT түзмөктөрү үчүн негизги модулдар. . . . . . . . . . . . . . . . . 9
2.1.2 Кардар колдонмолорунун негизги модулдары. . . . . . . . . . . . . . . . . . . 10
2.1.3 Жалпы IoT булут платформаларына киришүү. . . . . . . . . . . . . . 11
2.2 Практика: Smart Light долбоору. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Долбоордун түзүмү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Долбоордун функциялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Аппараттык камсыздоону даярдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Иштеп чыгуу процесси. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 ESP RainMakerге киришүү
19
3.1 ESP RainMaker деген эмне? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 ESP RainMaker программасын ишке ашыруу. . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Талап кылуу кызматы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 RainMaker агенти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 Cloud Backend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 RainMaker Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Практика: ESP RainMaker менен иштеп чыгуу үчүн негизги пункттар. . . . . . . . . . . . 25
3.4 ESP RainMaker өзгөчөлүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Колдонуучуну башкаруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Акыркы колдонуучунун өзгөчөлүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 Администратордун өзгөчөлүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Өнүгүү чөйрөсүн түзүү
31
4.1 ESP-IDF бүттүview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 ESP-IDF версиялары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 ESP-IDF Git Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Ылайыктуу версияны тандоо. . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Ашыкчаview ESP-IDF SDK каталогунун . . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF өнүктүрүү чөйрөсүн орнотуу. . . . . . . . . . . . . . . . . 38 4.2.1 Linux'та ESP-IDF иштеп чыгуу чөйрөсүн орнотуу. . . . . . . . 38 4.2.2 Windows'до ESP-IDF иштеп чыгуу чөйрөсүн орнотуу. . . . . . 40 4.2.3 Mac'та ESP-IDF иштеп чыгуу чөйрөсүн орнотуу. . . . . . . . . 45 4.2.4 VS Code орнотуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Үчүнчү тараптын өнүктүрүү чөйрөсүнө киришүү. . . . . . . . 46 4.3 ESP-IDF компиляция системасы. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Компиляция системасынын негизги түшүнүктөрү. . . . . . . . . . . . . . . . . . 47 4.3.2 Долбоор File Структура. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Компиляция системасынын демейки куруу эрежелери. . . . . . . . . . . . . 50 4.3.4 Компиляция скриптине киришүү. . . . . . . . . . . . . . . . . . 51 4.3.5 Жалпы буйруктарга киришүү. . . . . . . . . . . . . . . . . . . 52 4.4 Практика: Compiling Example программасы "Былтыроо" . . . . . . . . . . . . . . . . . . 53 4.4.1 Мисample Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 Blink программасын түзүү. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 Былкыруу программасын жаркыруу. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 Blink программасынын сериялык порт журналынын анализи. . . . . . . . . . . . . . 60 4.5 Кыскача маалымат. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II Аппараттык жана драйверлерди иштеп чыгуу
65
5 ESP32-C3 негизиндеги Smart Light продуктуларынын аппараттык дизайны
67
5.1 Smart Light продуктуларынын өзгөчөлүктөрү жана курамы. . . . . . . . . . . . . . . 67
5.2 ESP32-C3 негизги системасынын аппараттык дизайны. . . . . . . . . . . . . . . . . . . 70
5.2.1 Электр энергиясы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Күйгүзүү ырааттуулугу жана системаны баштапкы абалга келтирүү. . . . . . . . . . . . . . . . . . 74
5.2.3 SPI Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 Саат булагы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 RF жана антенна. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 Боо төөнөгүчтөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO жана PWM контроллери. . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Практика: ESP32-C3 менен Smart Light системасын куруу. . . . . . . . . . . . . 80
5.3.1 Модулдарды тандоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 PWM сигналдарынын GPIO конфигурациялоо. . . . . . . . . . . . . . . . . . . . 82
5.3.3 Микропрограмманы жүктөө жана мүчүлүштүктөрдү оңдоо интерфейси. . . . . . . . . . . . 82
5.3.4 RF долбоорлоо боюнча көрсөтмөлөр. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 Электр менен жабдууну долбоорлоо боюнча көрсөтмөлөр. . . . . . . . . . . . . . . . . . . 86 5.4 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Драйверди өнүктүрүү
87
6.1 Драйверди өнүктүрүү процесси. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ESP32-C3 Перифериялык колдонмолор. . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 LED драйверинин негиздери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 Түс мейкиндиктери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 LED драйвери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 LEDди күңүрт кылуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 PWMге киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 LED күңүртөтүүчү драйверди иштеп чыгуу. . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Учуучу эмес сактоо (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM контроллери (LEDC). . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM программалоо. . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Практика: Smart Light долбооруна айдоочуларды кошуу. . . . . . . . . . . . . . . . . 103
6.5.1 Баскыч драйвери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 LED күңүртөтүүчү драйвер. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III Зымсыз байланыш жана башкаруу
109
7 Wi-Fi конфигурациясы жана туташуу
111
7.1 Wi-Fi негиздери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 Wi-Fi менен таанышуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 IEEE 802.11 эволюциясы. . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 Wi-Fi түшүнүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 Wi-Fi туташуусу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 Bluetooth негиздери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 Bluetooth менен таанышуу. . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 Bluetooth түшүнүктөрү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 Bluetooth туташуу. . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 Wi-Fi тармагын конфигурациялоо. . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 Wi-Fi тармагын конфигурациялоо боюнча колдонмо. . . . . . . . . . . . . . . . . . . . 131
7.3.2 SoftAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 SmartConfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 Башка методдор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Wi-Fi программалоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF ичиндеги Wi-Fi компоненттери . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 Көнүгүү: Wi-Fi туташуусу. . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 Көнүгүү: Smart Wi-Fi туташуусу. . . . . . . . . . . . . . . . . . . . . 145
7.5 Практика: Smart Light долбоорунда Wi-Fi конфигурациясы. . . . . . . . . . . . . . . 156 7.5.1 Smart Light долбоорунда Wi-Fi туташуусу. . . . . . . . . . . . . . . . . 156 7.5.2 Smart Wi-Fi конфигурациясы. . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Жергиликтүү көзөмөл
159
8.1 Жергиликтүү башкарууга киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Жергиликтүү көзөмөлдү колдонуу. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 АдванtagЖергиликтүү көзөмөл. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 Смартфондор аркылуу башкарылуучу түзмөктөрдү табуу. . . . . . . . . . 161
8.1.4 Смартфондор менен түзмөктөрдүн ортосундагы маалымат байланышы. . . . . . . . 162
8.2 Жергиликтүү ачуунун жалпы ыкмалары. . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 Берүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 Multicast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 Берүү менен мультикасттын ортосундагы салыштыруу. . . . . . . . . . . . . . 176
8.2.4 Жергиликтүү ачуу үчүн Multicast Application Protocol mDNS. . . . . . . . 176
8.3 Жергиликтүү маалыматтар үчүн жалпы байланыш протоколдору. . . . . . . . . . . . . . . 179
8.3.1 Берүүнү башкаруу протоколу (TCP) . . . . . . . . . . . . . . . . . . . 179
8.3.2 HyperText Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . 185
8.3.3 Колдонуучу ДаtagRAM протоколу (UDP). . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 Чектелген Колдонмо Протоколу (CoAP) . . . . . . . . . . . . . . . . 192
8.3.5 Bluetooth протоколу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 Маалыматтарды байланыш протоколдорунун кыскача баяндамасы. . . . . . . . . . . . . . . 203
8.4 Маалыматтын коопсуздугунун кепилдиги. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 Транспорттук катмардын коопсуздугуна (TLS) киришүү. . . . . . . . . . . . . 207
8.4.2 ДаtagRam Transport Layer Security (DTLS) . . . . . . . 213
8.5 Практика: Smart Light долбоорунда жергиликтүү башкаруу. . . . . . . . . . . . . . . . . . 217
8.5.1 Wi-Fi негизиндеги Жергиликтүү башкаруу серверин түзүү. . . . . . . . . . . . . . . 217
8.5.2 Скрипттердин жардамы менен жергиликтүү башкаруунун функцияларын текшерүү. . . . . . . . . . . 221
8.5.3 Bluetooth негизиндеги Жергиликтүү башкаруу серверин түзүү. . . . . . . . . . . . 222
8.6 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Cloud Control
225
9.1 Алыстан башкарууга киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 Cloud Data Communication Protocols. . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 MQTT киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 MQTT принциптери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 MQTT билдирүү форматы. . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 Протоколду салыштыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 Linux жана Windows системаларында MQTT брокерин орнотуу. . . . . . . . . . . . 233 9.2.6 ESP-IDF негизинде MQTT кардарын орнотуу. . . . . . . . . . . . . . . . 235 9.3 MQTT маалыматтарынын коопсуздугун камсыз кылуу. . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 Сертификаттардын мааниси жана кызматы. . . . . . . . . . . . . . . . . . . 237 9.3.2 Жергиликтүү сертификаттарды түзүү. . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 MQTT брокерин конфигурациялоо. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT Client конфигурациялоо. . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Практика: ESP RainMaker аркылуу алыстан башкаруу. . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker негиздери. . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Түйүн жана Cloud Backend Байланыш Протоколу. . . . . . . . . . . 244 9.4.3 Кардар менен Cloud Backend ортосундагы байланыш. . . . . . . . . . . 249 9.4.4 Колдонуучунун ролдору. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Негизги кызматтар. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker колдонмосу жана үчүнчү тараптын интеграциялары. . . . . . . . . . . . . . . 262 9.5 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 Смартфон колдонмосун иштеп чыгуу
269
10.1 Смартфондук тиркемелерди иштеп чыгууга киришүү. . . . . . . . . . . . . . . . . . 269
10.1.1 Overview Смартфон колдонмосун иштеп чыгуу. . . . . . . . . . . . . . . 270
10.1.2 Android долбоорунун түзүмү. . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 iOS Долбоорунун түзүмү. . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Android аракетинин жашоо цикли. . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 iOS'тун жашоо цикли ViewController . . . . . . . . . . . . . . . . . . . . . . 273
10.2 Жаңы смартфондук тиркеме долбоорун түзүү. . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Android иштеп чыгууга даярдануу. . . . . . . . . . . . . . . . . . . 275
10.2.2 Жаңы Android долбоорун түзүү. . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 MyRainmaker үчүн көз карандылыктарды кошуу. . . . . . . . . . . . . . . . . 276
10.2.4 Androidде уруксат суроо. . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 iOS иштеп чыгууга даярдануу. . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Жаңы iOS долбоорун түзүү. . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 MyRainmaker үчүн көз карандылыктарды кошуу. . . . . . . . . . . . . . . . . 279
10.2.8 iOS'то уруксат суроо. . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Колдонмонун функционалдык талаптарын талдоо. . . . . . . . . . . . . . . . . . 281
10.3.1 Долбоордун функционалдык талаптарын талдоо. . . . . . . . . . . . 282
10.3.2 Колдонуучуну башкаруу талаптарын талдоо. . . . . . . . . . . . . . . 282 10.3.3 Түзмөктү камсыздоо жана милдеттүү талаптарды талдоо. . . . . . . 283 10.3.4 Алыстан башкаруу боюнча талаптарды талдоо. . . . . . . . . . . . . . . . 283 10.3.5 График боюнча талаптарды талдоо. . . . . . . . . . . . . . . . . . . 284 10.3.6 Колдонуучу борборунун талаптарын талдоо. . . . . . . . . . . . . . . . . . 285 10.4 Колдонуучуларды башкарууну өнүктүрүү. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker API'лерине киришүү. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Смартфон аркылуу байланышты баштоо. . . . . . . . . . . . . . . . 286 10.4.3 Эсепти каттоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Каттоо эсебине кирүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Аппаратты камсыздоону өнүктүрүү. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Скандоочу түзмөктөр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Түзмөктөрдү туташтыруу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Жашыруун ачкычтарды түзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Node ID алуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Түзмөктөрдү камсыздоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Түзмөктү башкарууну өнүктүрүү. . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Түзмөктөрдү Cloud Accounts менен байланыштыруу. . . . . . . . . . . . . . . . . . . . 303 10.6.2 Түзмөктөрдүн тизмесин алуу. . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Түзмөктүн статусун алуу. . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Түзмөктүн абалын өзгөртүү. . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Пландаштырууну жана колдонуучу борборун иштеп чыгуу. . . . . . . . . . . . . . . . . . . 313 10.7.1 Пландаштыруу функциясын ишке ашыруу. . . . . . . . . . . . . . . . . . . . 313 10.7.2 Колдонуучу борборун ишке киргизүү. . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Дагы булут API'лери. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Кыскача маалымат. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Микропрограмманы жаңыртуу жана версияны башкаруу
321
11.1 Микропрограмманы жаңыртуу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 Overview Бөлүшүү таблицаларынын. . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Микропрограмманы жүктөө процесси. . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 Overview ОТА механизминин. . . . . . . . . . . . . . . . . . . . . 326
11.2 Микропрограмма версиясын башкаруу. . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Микропрограмманы белгилөө. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Артка кайтаруу жана артка кайтаруу. . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Практика: Аба (OTA) Example . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Жергиликтүү хост аркылуу микропрограмманы жаңылоо. . . . . . . . . . . . . . . . . 332
11.3.2 ESP RainMaker аркылуу микропрограмманы жаңыртуу. . . . . . . . . . . . . . . 335
11.4 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV оптималдаштыруу жана массалык өндүрүш
343
12 Энергияны башкаруу жана аз энергияны оптималдаштыруу
345
12.1 ESP32-C3 Power Management. . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Динамикалык жыштыктарды масштабдоо. . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Электр кубатын башкаруу конфигурациясы. . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 аз кубаттуулук режими. . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Модем-уйку режими. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Жеңил уйку режими. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Терең уйку режими. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Ар кандай энергия режимдериндеги учурдагы керектөө. . . . . . . . . . . . . 358
12.3 Кубатты башкаруу жана аз кубаттуулуктагы мүчүлүштүктөрдү оңдоо. . . . . . . . . . . . . . . . . 359
12.3.1 Журналды оңдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO мүчүлүштүктөрдү оңдоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Практика: Smart Light долбоорунда энергияны башкаруу. . . . . . . . . . . . . . . 363
12.4.1 Кубатты башкаруу мүмкүнчүлүгүн конфигурациялоо. . . . . . . . . . . . . . . . . 364
12.4.2 Кубат башкаруу кулпуларын колдонуңуз. . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Электр энергиясын керектөөнү текшерүү. . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Түзмөктүн жакшыртылган коопсуздук өзгөчөлүктөрү
369
13.1 Overview IoT түзмөктөрүнүн маалыматтарынын коопсуздугу. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Эмне үчүн IoT түзмөк маалыматтарын коргоо керек? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 IoT түзмөктөрүнүн маалыматтарынын коопсуздугу үчүн негизги талаптар. . . . . . . . . . . . 371
13.2 Маалыматтын бүтүндүгүн коргоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Бүтүндүктү текшерүү ыкмасына киришүү. . . . . . . . . . . . . . 372
13.2.2 Микропрограмма маалыматтарынын бүтүндүгүн текшерүү. . . . . . . . . . . . . . . . . . 373
13.2.3 Чыгample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 Маалыматтын купуялуулугун коргоо. . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 Маалыматтарды шифрлөөгө киришүү. . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 Flash шифрлөө схемасына киришүү. . . . . . . . . . . . . . . . . 376
13.3.3 Flash шифрлөө ачкычынын сактагычы. . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 Flash шифрлөөнүн иштөө режими. . . . . . . . . . . . . . . . . . . . 380
13.3.5 Flash шифрлөө процесси. . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 NVS шифрлөөсүнө киришүү. . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 ЧыгampFlash Encryption жана NVS Encryption. . . . . . . . . . . 384
13.4 Маалыматтын мыйзамдуулугун коргоо. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 Санариптик кол коюуга киришүү. . . . . . . . . . . . . . . . . . . . . 386
13.4.2 Overview коопсуз жүктөө схемасынын. . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Программанын коопсуз жүктөөсүнө киришүү. . . . . . . . . . . . . . . . . . . 388 13.4.4 Аппараттык камсыздоонун коопсуз жүктөөсүнө киришүү. . . . . . . . . . . . . . . . . . 390 13.4.5 Мисamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Практика: Массалык өндүрүштөгү коопсуздук өзгөчөлүктөрү. . . . . . . . . . . . . . . . . . 396 13.5.1 Flash шифрлөө жана коопсуз жүктөө. . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Flash шифрлөө жана Коопсуз жүктөөнү пакеттик Flash куралдары менен иштетүү. . 397 13.5.3 Smart Light долбоорунда Flash шифрлөө жана коопсуз жүктөөнү иштетүү. . . 398 13.6 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Микропрограмманы күйгүзүү жана массалык өндүрүш үчүн сыноо
399
14.1 Массалык өндүрүштө микропрограмма күйүп жатат. . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Маалымат бөлүктөрүн аныктоо. . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Микропрограмманы күйгүзүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Массалык өндүрүштү сыноо. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Практика: Smart Light долбоорунда массалык өндүрүш маалыматтары. . . . . . . . . . . . . 404
14.4 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP Insights: Remote Monitoring Platform
405
15.1 ESP Insights программасына киришүү. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 ESP Insights менен баштоо. . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 esp-insights долбоорунда ESP Insights менен баштоо. . . . . . 409
15.2.2 Running Example esp-inights долбоорунда. . . . . . . . . . . . . . . 411
15.2.3 Coredump маалыматын берүү. . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Кызыкчылык журналдарын ыңгайлаштыруу. . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Кайра жүктөө себебин билдирүү. . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Ыңгайлаштырылган метрикаларды берүү. . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Практика: Smart Light долбоорунда ESP Insights колдонуу. . . . . . . . . . . . . . . 416
15.4 Жыйынтык. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Introduction
ESP32-C3 ачык булактуу RISC-V архитектурасына негизделген бир ядролуу Wi-Fi жана Bluetooth 5 (LE) микроконтроллери SoC. Ал кубаттуулуктун, киргизүү/чыгаруу мүмкүнчүлүктөрүнүн жана коопсуздуктун туура балансына ээ болуп, туташкан түзмөктөр үчүн оптималдуу үнөмдүү чечимди сунуштайт. ESP32-C3 үй-бүлөсүнүн ар кандай тиркемелерин көрсөтүү үчүн, Espressifдин бул китеби сизди IoT долбоорун иштеп чыгуунун негиздеринен жана чөйрөнү орнотуудан баштап практикалык мурункуга чейин AIoT аркылуу кызыктуу саякатка алып барат.amples. Биринчи төрт бөлүмдө IoT, ESP RainMaker жана ESP-IDF жөнүндө сөз болот. 5 жана 6-бөлүмдөр аппараттык камсыздоо жана драйверлерди иштеп чыгуу боюнча кыскача. Проектиңизди Wi-Fi тармактары жана мобилдик колдонмолор аркылуу кантип конфигурациялоону үйрөнөсүз. Акыр-аягы, сиз долбооруңузду оптималдаштырууну жана аны массалык өндүрүшкө киргизүүнү үйрөнөсүз.
Эгер сиз тиешелүү тармактарда инженер болсоңуз, программалык камсыздоонун архитектору, мугалими, студенти же IoT тармагына кызыккан адам болсоңуз, бул китеп сиз үчүн.
Сиз мурунку кодду жүктөп алсаңыз болотample бул китепте GitHubдагы Espressif сайтынан колдонулган. IoT өнүктүрүү боюнча акыркы маалымат алуу үчүн, сураныч, биздин расмий каттоо эсебин карагыла.
Кириш сөз
Маалыматташуу дүйнөсү
Интернеттин толкунун тебелеп, Интернет буюмдары (IoT) санариптик экономикада инфраструктуранын жаңы түрү болуу үчүн өзүнүн чоң дебютун жасады. Технологияны коомчулукка жакындатуу үчүн Espressif Systems жашоонун бардык катмарындагы иштеп чыгуучулар IoTди биздин замандын эң актуалдуу көйгөйлөрүн чечүү үчүн колдоно алат деген көз карашта иштейт. "Бардык нерсенин интеллектуалдык тармагы" дүйнөсү - бул биз келечектен күткөн нерсе.
Биздин жеке чиптерди долбоорлоо бул көрүнүштүн маанилүү бөлүгүн түзөт. Бул технологиялык чектерге каршы тынымсыз жылыштарды талап кылган марафон болушу керек. "Оюнду алмаштыргыч" ESP8266дан тартып Wi-Fi жана Bluetoothr (LE) туташуусун бириктирген ESP32 сериясына чейин, андан кийин AI ылдамдатуу менен жабдылган ESP32-S3, Espressif AIoT чечимдери үчүн өнүмдөрдү изилдөөнү жана иштеп чыгууну эч качан токтотпойт. IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF жана Device Connectivity Platform ESP RainMaker сыяктуу ачык булактуу программабыз менен биз AIoT тиркемелерин түзүү үчүн көз карандысыз негиз түздүк.
2022-жылдын июль айына карата Espressif'тин IoT чипсеттеринин жыйынды жөнөтүлүшү 800 миллиондон ашты, бул Wi-Fi MCU рыногунда алдыңкы орунда турат жана дүйнө жүзү боюнча көптөгөн туташкан түзмөктөрдү иштетет. Мыктылыкка умтулуу ар бир Espressif продуктуну интеграциянын жогорку деңгээли жана сарптоолордун натыйжалуулугу үчүн чоң хит кылат. ESP32-C3 чыгаруу Espressif өзү иштеп чыккан технологиянын маанилүү этапын белгилейт. Бул бир өзөктүү, 32-бит, RISC-V негизиндеги MCU, 400КБ SRAM менен, 160МГц ылдамдыгында иштей алат. Ал 2.4 ГГц Wi-Fi жана Bluetooth 5 (LE) менен узак аралыкка колдоо көрсөтөт. Ал кубаттуулуктун, киргизүү/чыгаруу мүмкүнчүлүктөрүнүн жана коопсуздуктун эң сонун балансына ээ болуп, туташкан түзмөктөр үчүн оптималдуу үнөмдүү чечимди сунуштайт. Ушундай күчтүү ESP32-C3 негизинде, бул китеп окурмандарга IoT менен байланышкан билимди деталдуу иллюстрация жана практикалык экспресс менен түшүнүүгө жардам берүү үчүн арналган.amples.
Бул китепти эмне үчүн жаздык?
Espressif Systems жарым өткөргүч компания эмес. Бул ошондой эле IoT платформа компаниясы, ал ар дайым технология тармагындагы ачылыштарга жана инновацияларга умтулат. Ошол эле учурда, Espressif уникалдуу экосистеманы түзүп, ачык булактуу жана коомчулук менен өз алдынча иштеп чыккан операциялык тутумун жана программалык базасын бөлүштү. Инженерлер, өндүрүүчүлөр жана технология ышкыбоздору Espressif өнүмдөрүнүн негизинде жаңы программалык тиркемелерди активдүү иштеп чыгышат, эркин баарлашышат жана тажрыйбалары менен бөлүшүшөт. Иштеп чыгуучулардын кызыктуу идеяларын YouTube жана GitHub сыяктуу ар кандай платформалардан дайыма көрө аласыз. Espressif продуктуларынын популярдуулугу ондон ашык тилде, анын ичинде англис, кытай, немис, француз жана жапон тилдеринде Espressif чипсеттеринин негизинде 100дөн ашык китептерди чыгарган авторлордун көбөйүшүнө түрткү болду.
Бул Espressifтин үзгүлтүксүз инновацияларына дем берүүчү коомчулуктун өнөктөштөрүнүн колдоосу жана ишеними. «Биз микросхемаларыбызды, операциялык системаларды, фреймворктерди, чечимдерди, булутту, бизнес практикасын, куралдарын, документтерин, жазууларын, идеяларын ж.б. адамдардын азыркы жашоодогу эң актуалдуу көйгөйлөрүнө керектүү жооптор үчүн ого бетер актуалдуу кылууга умтулабыз. Бул Эспрессифтин эң жогорку амбициясы жана моралдык компасы». - деди Espressif компаниясынын негиздөөчүсү жана башкы директору Тео Суи Энн мырза.
Espressif окууну жана идеяларды баалайт. IoT технологиясын үзгүлтүксүз жаңыртуу инженерлерге жогорку талаптарды коюп жаткандыктан, биз кантип көбүрөөк адамдарга IoT чиптерин, операциялык системаларды, программалык базаларды, тиркеме схемаларын жана булут сервисинин продуктыларын тез өздөштүрүүгө жардам бере алабыз? «Адамга балык бергенден көрө, балык кармаганды үйрөткөн жакшы» дегендей. Мээ чабуулу сессиясында IoT өнүгүүсүнүн негизги билимдерин системалуу түрдө иргеп алуу үчүн китеп жаза алабыз деген ой келди. Биз аны чечтик, тез эле улук инженерлердин тобун чогулттук жана техникалык топтун кыстарылган программалоо, IoT аппараттык жана программалык камсыздоону иштеп чыгуу тажрыйбасын бириктирип, бул китептин басылышына салым коштук. Жазуу процессинде колубуздан келишинче объективдүү жана калыс болууга аракет кылып, кокондон арылтып, Интернеттеги нерселердин татаалдыгын, кооздугун кыска-нуска туюнтмаларды колдондук. Биз жалпы суроолорду кылдаттык менен жыйынтыктап чыктык, иштеп чыгуу процессинде кездешкен суроолорго так жооп берүү жана тиешелүү техниктер жана чечим кабыл алуучулар үчүн IoT өнүктүрүү боюнча практикалык көрсөтмөлөрдү берүү үчүн коомчулуктун сын-пикирлерине жана сунуштарына кайрылдык.
Китептин структурасы
Бул китеп инженерге багытталган көз карашты алып, IoT долбоорун этап-этабы менен иштеп чыгуу үчүн керектүү билимдерди түшүндүрөт. Ал төмөнкүдөй төрт бөлүктөн турат:
· Даярдоо (1-бөлүм): Бул бөлүк IoT долбоорун иштеп чыгуу үчүн бекем пайдубал түзүү үчүн IoT архитектурасын, типтүү IoT долбоорунун негизин, ESP RainMakerr булут платформасын жана ESP-IDF өнүктүрүү чөйрөсүн тааныштырат.
· Аппараттык камсыздоону жана драйверди иштеп чыгуу (5-бөлүм): ESP6-C32 чипсетинин негизинде, бул бөлүк минималдуу аппараттык системаны жана драйверди иштеп чыгууну иштеп чыгат жана күңүртөтүүнү, түстөрдү баалоону жана зымсыз байланышты башкарууну ишке ашырат.
· Зымсыз байланыш жана башкаруу (7-бөлүм): Бул бөлүк ESP11-C32 чипине, жергиликтүү жана булутту башкаруу протоколдоруна жана түзмөктөрдү жергиликтүү жана алыстан башкарууга негизделген интеллектуалдык Wi-Fi конфигурациясынын схемасын түшүндүрөт. Ал ошондой эле смартфон колдонмолорун иштеп чыгуу, микропрограмманы жаңыртуу жана версияларды башкаруу схемаларын камтыйт.
· Оптималдаштыруу жана массалык өндүрүш (12-15-бөлүм): Бул бөлүк энергияны башкаруудагы өнүмдөрдү оптималдаштырууга, аз кубаттуулукту оптималдаштырууга жана күчөтүлгөн коопсуздукка багытталган IoT өнүккөн колдонмолору үчүн арналган. Ал ошондой эле массалык өндүрүштө микропрограмманы күйгүзүү жана тестирлөө, ESP Insights аралыктан мониторинг платформасы аркылуу аппараттын микропрограммасынын иштөө абалын жана журналдарын диагностикалоону сунуштайт.
Булак кодекси жөнүндө
Окурмандар экс иштете алышатampБул китептеги программаларды же кодду кол менен киргизүү менен же китепти коштогон баштапкы кодду колдонуу менен. Биз теория менен практиканын айкалышын баса белгилеп, ошону менен дээрлик ар бир бөлүмдө Smart Light долбоорунун негизинде Практика бөлүмүн орнотобуз. Бардык коддору ачык булак болуп саналат. Окурмандар булак кодун жүктөп алып, GitHub жана esp32.com расмий форумубузда бул китепке тиешелүү бөлүмдөрдө талкууласа болот. Бул китептин ачык булак коду Apache License 2.0 шарттарына ылайык келет.
Автордун эскертүүсү
Бул китеп расмий түрдө Espressif Systems тарабынан чыгарылган жана компаниянын улук инженерлери тарабынан жазылган. Бул IoT менен байланышкан тармактардагы менеджерлер жана R&D кызматкерлери, ага тиешелүү адистиктердин мугалимдери жана студенттери, ошондой эле нерселердин Интернети тармагындагы энтузиасттар үчүн ылайыктуу. Бул китеп жакшы тарбиячы жана дос сыяктуу иштөө үчүн колдонмо, маалымдама жана тумбочка катары кызмат кыла алат деп ишенебиз.
Бул китепти түзүүдө биз ата мекендик жана чет өлкөлөрдөгү эксперттердин, окумуштуулардын жана техниктердин тиешелүү изилдөө жыйынтыктарына шилтеме жасап, аларды академиялык нормаларга ылайык келтирүүгө болгон күчүбүздү жумшадык. Анткен менен кээ бир кемчиликтерди кетирбей коюуга болбойт, ошондуктан бул жерде бардык тиешелүү авторлорго терең урмат-сыйыбызды жана ыраазычылыгыбызды билдиребиз. Мындан тышкары, биз интернеттен алынган маалыматтарды келтирдик, андыктан түпнуска авторлорго жана басмачыларга ыраазычылык билдирип, ар бир маалыматтын булагын көрсөтө албаганыбыз үчүн кечирим сурайбыз.
Жогорку сапаттагы китеп чыгаруу үчүн биз ички талкуулардын айлампасын уюштуруп, окурмандардын жана басмакананын редакторлорунун сунуштарын жана сын-пикирлерин үйрөндүк. Бул жерде, бул ийгиликтүү ишке салым кошкон жардамыңыз үчүн дагы бир жолу ыраазычылык билдиргибиз келет.
Акыркысы, бирок эң негизгиси, биздин өнүмдөрдүн жаралышы жана популярдуулугу үчүн көп иштеген Espressif компаниясынын баарына рахмат.
IoT долбоорлорун иштеп чыгуу билимдин кеңири спектрин камтыйт. Китептин узундугуна, ошондой эле автордун деңгээлине жана тажрыйбасына байланыштуу, кемчиликтерден кутулуу мүмкүн эмес. Андыктан адистерден жана окурмандардан биздин каталарыбызды сындап, оңдоосун суранабыз. Бул китеп боюнча кандайдыр бир сунуштарыңыз болсо, book@espressif.com дареги боюнча биз менен байланышыңыз. Биз сиздин пикириңизди күтөбүз.
Бул китепти кантип колдонсо болот?
Бул китептеги долбоорлордун коду ачык булактардан алынган. Сиз аны биздин GitHub репозиторийибизден жүктөп алып, расмий форумубузда өз оюңуз менен суроолоруңуз менен бөлүшө аласыз. GitHub: https://github.com/espressif/book-esp32c3-iot-projects Форум: https://www.esp32.com/bookc3 Китептин бүтүндөй бөлүгү төмөндө көрсөтүлгөндөй бөлүп көрсөтүлгөн.
Булак коду Бул китепте биз теория менен практиканын айкалышын баса белгилейбиз, ошентип дээрлик ар бир бөлүмдө Smart Light долбоору тууралуу Практика бөлүмүн түзөбүз. Тиешелүү кадамдар жана булак барагы менен башталган эки саптын ортосунда белгиленет tag Булак коду.
ЭСКЕРТҮҮ/КЕНЕШТЕР Бул жерден сиз кээ бир маанилүү маалыматтарды жана программаңызды ийгиликтүү оңдоо үчүн эскертүүнү таба аласыз. Алар менен башталган эки жоон сызыктардын ортосунда белгиленет tag ЭСКЕРТҮҮ же КЕҢЕШТЕР.
Бул китептеги буйруктардын көбү "$" белгиси менен шартталган Linux астында аткарылат. Эгерде буйрук аткаруу үчүн супер колдонуучу артыкчылыктарын талап кылса, сунуш "#" менен алмаштырылат. Mac тутумдарында буйрук сабы "%", 4.2.3 Mac'та ESP-IDF орнотуу бөлүмүндө колдонулгандай.
Бул китептин негизги тексти Хартияда басылып чыгат, ал эми коду мурункуamples, компоненттер, функциялар, өзгөрмөлөр, код file аттар, код каталогдору жана саптар Courier New ичинде болот.
Колдонуучу киргизиши керек болгон буйруктар же тексттер жана “Enter” баскычын басуу менен киргизиле турган буйруктар Courier New калың шрифт менен басылып чыгат. Журналдар жана код блоктору ачык көк кутучаларда көрсөтүлөт.
Exampле:
Экинчиден, NVS экилик бөлүктү түзүү үчүн esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py колдонуңуз file төмөнкү буйрук менен иштеп чыгуу хостунда:
$ python $IDF PATH/components/nvs flash/nvs бөлүү генератору/nvs бөлүү gen.py –киргизүү массасы prod.csv –чыгаруу массасы prod.bin –өлчөм NVS PARTITION SIZE
1-бөлүм
Introduction
чейин
IoT
20-кылымдын аягында, компьютердик тармактардын жана коммуникация технологияларынын өсүшү менен Интернет тездик менен адамдардын жашоосуна кирди. Интернет-технологиялар жетилүүнү улантып жаткандыктан, нерселердин Интернети (IoT) идеясы пайда болду. Сөзмө-сөз, IoT нерселер туташкан Интернет дегенди билдирет. Оригиналдуу Интернет мейкиндиктин жана убакыттын чегин бузуп, "адам менен адамдын" ортосундагы аралыкты кыскартканы менен, IoT "нерселерди" маанилүү катышуучу кылып, "адамдарды" жана "нерселерди" жакындатат. Жакынкы келечекте IoT маалымат индустриясынын кыймылдаткыч күчү болуп калат.
Ошентип, нерселердин Интернети деген эмне?
Нерселердин Интернетин так аныктоо кыйын, анткени анын мааниси жана чөйрөсү дайыма өнүгүп турат. 1995-жылы Билл Гейтс биринчи жолу IoT идеясын өзүнүн The Road Ahead китебинде көтөргөн. Жөнөкөй сөз менен айтканда, IoT объекттерге Интернет аркылуу бири-бири менен маалымат алмашууга мүмкүндүк берет. Анын түпкү максаты – “Бардык нерсенин Интернетин” түзүү. Бул IoTдин алгачкы интерпретациясы, ошондой эле келечектеги технологиянын фантазиясы. XNUMX жылдан кийин экономиканын жана технологиянын тез өнүгүшү менен фантазия ишке ашууда. Акылдуу түзүлүштөрдөн, акылдуу үйлөрдөн, акылдуу шаарлардан, Унаалардын интернетинен жана тагынуучу түзүлүштөрдөн IoT технологиялары тарабынан колдоого алынган “метаверстерге” чейин тынымсыз жаңы концепциялар пайда болууда. Бул бөлүмдө биз нерселердин Интернетинин архитектурасын түшүндүрүү менен баштайбыз, андан кийин IoT жөнүндө так түшүнүк алууга жардам берүү үчүн эң кеңири таралган IoT тиркемесин, акылдуу үйдү киргизебиз.
1.1 IoT архитектурасы
Нерселердин Интернети ар кандай тармактарда ар кандай колдонуу муктаждыктарына жана формаларына ээ болгон бир нече технологияларды камтыйт. IOT структурасын, негизги технологияларын жана колдонуу мүнөздөмөлөрүн иретке келтирүү үчүн бирдиктүү архитектураны жана стандарттык техникалык системаны түзүү зарыл. Бул китепте IoT архитектурасы жөн гана төрт катмарга бөлүнгөн: кабылдоо жана башкаруу катмары, тармактык катмар, платформа катмары жана колдонмо катмары.
Кабыл алуу жана башкаруу катмары IoT архитектурасынын эң негизги элементи катары кабыл алуу жана башкаруу катмары IoT комплекстүү сезүүнү ишке ашыруунун өзөгү болуп саналат. Анын негизги милдети маалымат чогултуу, аныктоо жана көзөмөлдөө болуп саналат. Ал кабылдоо жөндөмү бар ар түрдүү аппараттардан турат,
3
аныктоо, көзөмөлдөө жана аткаруу, ошондой эле материалдык касиеттери, жүрүм-турум тенденциялары жана түзмөктүн абалы сыяктуу маалыматтарды алуу жана талдоо үчүн жооптуу. Ошентип, IoT чыныгы физикалык дүйнөнү тааныйт. Мындан тышкары, катмар аппараттын абалын көзөмөлдөй алат.
Бул катмардын эң кеңири таралган түзүлүштөрү маалыматты чогултууда жана идентификациялоодо маанилүү ролду ойногон түрдүү сенсорлор болуп саналат. Сенсорлор адамдын сезүү органдары сыяктуу, мисалы, көрүү үчүн фотосезгичтер, угуу үчүн акустикалык сенсорлор, жыт алуу үчүн газ сенсорлору жана тийүү үчүн басым жана температурага сезгич сенсорлор. Бардык ушул «сезүү органдары» менен объекттер «жандуу» болуп, физикалык дүйнөнү акылдуу кабылдоого, таанууга жана башкарууга жөндөмдүү.
Тармактык катмар Тармактык катмардын негизги функциясы маалыматты, анын ичинде кабыл алуу жана башкаруу катмарынан белгиленген максатка алынган маалыматтарды, ошондой эле колдонмо катмарынан кайра кабыл алуу жана башкаруу катмарына берилген буйруктарды өткөрүп берүү. Бул IoT тутумунун ар кандай катмарларын бириктирген маанилүү байланыш көпүрөсү катары кызмат кылат. Нерселер Интернетинин негизги моделин түзүү үчүн, объекттерди тармакка интеграциялоо үчүн эки кадамды камтыйт: Интернетке кирүү жана Интернет аркылуу берүү.
Интернетке кирүү мүмкүнчүлүгү адам менен адамдын ортосундагы байланышты камсыздайт, бирок бир нерсени чоң үй-бүлөгө киргизе албайт. IoT пайда болгонго чейин, көпчүлүк нерселер "тармакка жөндөмдүү" эмес болчу. Технологиянын тынымсыз өнүгүшүнүн аркасында IoT нерселерди Интернетке туташтыра алат, ошентип "адамдар жана нерселер" жана "нерселер жана нерселер" ортосундагы өз ара байланышты ишке ашырат. Интернет байланышын ишке ашыруунун эки жалпы жолу бар: зымдуу тармакка жетүү жана зымсыз тармакка кирүү.
Зымдуу тармакка кирүү ыкмаларына Ethernet, сериялык байланыш (мисалы, RS-232, RS-485) жана USB кирет, ал эми зымсыз тармакка кирүү зымсыз байланышка көз каранды, аны андан ары кыска аралыктагы зымсыз байланыш жана узак аралыктагы зымсыз байланыш деп бөлүүгө болот.
Кыска аралыктагы зымсыз байланыш ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC) жана Радио жыштыктарды аныктоону (RFID) камтыйт. Узак аралыктагы зымсыз байланышка өркүндөтүлгөн машина тибиндеги байланыш (eMTC), LoRa, тар тилкедеги нерселердин интернети (NB-IoT), 2G, 3G, 4G, 5G ж.б.
Интернет аркылуу берүү Интернетке кирүүнүн ар кандай ыкмалары маалыматтарды тиешелүү физикалык берүү шилтемесине алып келет. Кийинки нерсе - маалыматтарды берүү үчүн кайсы байланыш протоколун колдонууну чечиш керек. Интернет терминалдары менен салыштырганда, учурда IoT терминалдарынын көбү азыраак
4 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
колдо болгон ресурстар, мисалы, иштетүү көрсөткүчтөрү, сактоо сыйымдуулугу, тармак ылдамдыгы ж.б., ошондуктан IOT тиркемелеринде азыраак ресурстарды ээлеген байланыш протоколун тандоо керек. Бүгүнкү күндө кеңири колдонулган эки байланыш протоколу бар: Message Queuing Telemetry Transport (MQTT) жана Чектелген Колдонмо Протоколу (CoAP).
Платформа катмары Платформа катмары негизинен IoT булут платформаларына тиешелүү. Бардык IoT терминалдары тармакка туташтырылганда, алардын маалыматтарын эсептөө жана сактоо үчүн IoT булут платформасында бириктирүү керек. Платформа катмары негизинен IoT тиркемелерин колдойт, ири түзмөктөргө кирүүнү жана башкарууну жеңилдетет. Ал IoT терминалдарын булут платформасына туташтырат, терминалдык маалыматтарды чогултат жана алыстан башкарууну ишке ашыруу үчүн терминалдарга буйруктарды берет. Өнөр жай тиркемелерине жабдууларды дайындоо үчүн ортолук кызмат катары платформа катмары абстракттуу бизнес логикасын жана стандартташтырылган негизги маалымат моделин алып, бүт IoT архитектурасында бириктирүүчү ролду ойнойт, ал түзмөктөргө тез жетүүнү гана ишке ашырбастан, ошондой эле кубаттуу модулдук мүмкүнчүлүктөрдү камсыздай алат. өнөр жай колдонуу сценарийлер боюнча ар кандай муктаждыктарын канааттандыруу үчүн. Платформа катмары негизинен түзмөккө кирүү, аппаратты башкаруу, коопсуздукту башкаруу, билдирүү байланышы, мониторинг жүргүзүү жана тейлөө жана маалымат тиркемелери сыяктуу функционалдык модулдарды камтыйт.
· Терминалдар менен IoT булут платформаларынын ортосундагы байланышты жана байланышты ишке ашыруучу түзмөккө кирүү.
· Түзмөктү башкаруу, анын ичинде аппаратты түзүү, аппаратты тейлөө, маалыматтарды конвертациялоо, маалыматтарды синхрондоштуруу жана аппаратты бөлүштүрүү.
· Коопсуздукту башкаруу, коопсуздуктун аутентификациясынын жана коммуникациянын коопсуздугунун көз карашынан алганда IoT маалыматтарын берүүнүн коопсуздугун камсыз кылуу.
· Кабар байланышы, анын ичинде үч өткөрүү багыты, башкача айтканда, терминал IoT булут платформасына маалыматтарды жөнөтөт, IoT булут платформасы маалыматтарды сервер тарапка же башка IoT булут платформаларына жөнөтөт, ал эми сервер тарабы IoT түзмөктөрүн алыстан башкарат.
· Мониторинг жана диагностика, микропрограмманы жаңылоо, онлайн мүчүлүштүктөрдү оңдоо, журнал кызматтарын ж.б. камтыган O&M мониторинги.
· Маалыматтарды сактоону, талдоону жана колдонууну камтыган маалыматтар тиркемелери.
Колдонмо катмары Колдонмо катмары тиркемени башкаруу, чыпкалоо жана маалымат базасы жана талдоо программасы сыяктуу куралдар менен иштетүү үчүн платформа катмарындагы маалыматтарды колдонот. Алынган маалыматтар акылдуу саламаттыкты сактоо, акылдуу айыл чарба, акылдуу үйлөр жана акылдуу шаарлар сыяктуу реалдуу дүйнөдөгү IoT тиркемелери үчүн колдонулушу мүмкүн.
Албетте, IoT архитектурасын дагы көп катмарларга бөлүүгө болот, бирок ал канча катмардан турбасын, негизги принцип негизинен ошол эле бойдон калууда. Үйрөнүү
1-глава. IoT 5ке киришүү
IoT архитектурасы жөнүндө маалымат IoT технологияларын түшүнүүгө жана толук функционалдык IoT долбоорлорун курууга жардам берет.
1.2 Акылдуу үйлөрдө IoT колдонмосу
IoT жашоонун бардык катмарына кирип кетти жана биз үчүн эң жакын IoT тиркемеси бул акылдуу үй. Көптөгөн салттуу приборлор азыр бир же бир нече IoT түзмөктөрү менен жабдылган жана жаңы курулган көптөгөн үйлөр башынан эле IoT технологиялары менен иштелип чыккан. Сүрөт 1.1 кээ бир жалпы акылдуу үй түзмөктөрүн көрсөтөт.
1.1-сүрөт. Жалпы акылдуу үй түзмөктөрү Акылдуу үйдүн өнүгүшүн жөн гана акылдуу продуктуларга бөлүүгө болотtagд, сахнанын өз ара байланышы stagд жана акылдуу сtagд, 1.2-сүрөттө көрсөтүлгөндөй.
1.2-сүрөт. Өнүгүү сtagакылдуу үй 6 ESP32-C3 зымсыз укмуштуу окуя: IoT боюнча комплекстүү колдонмо
Биринчи сtage акылдуу өнүмдөр жөнүндө. Салттуу үйлөрдөн айырмаланып, акылдуу үйлөрдө IoT түзмөктөрү сенсорлор менен сигналдарды кабыл алып, Wi-Fi, Bluetooth LE жана ZigBee сыяктуу зымсыз байланыш технологиялары аркылуу тармакка туташтырылган. Колдонуучулар акылдуу өнүмдөрдү ар кандай жолдор менен башкара алышат, мисалы, смартфон колдонмолору, үн жардамчылары, акылдуу динамикти башкаруу ж.б.tagд сахнанын өз ара байланышына көңүл бурат. Бул сtagе, иштеп чыгуучулар мындан ары бир гана акылдуу продуктуну көзөмөлдөөнү эмес, эки же андан көп акылдуу өнүмдөрдү өз ара байланыштырып, белгилүү бир деңгээлде автоматташтырууну жана акырында ыңгайлаштырылган көрүнүш режимин түзүүнү ойлонушууда. Мисалы үчүнample, колдонуучу кандайдыр бир сахна режиминин баскычын басканда, жарыктар, пардалар жана кондиционерлер автоматтык түрдө алдын ала орнотууларга ылайыкташат. Албетте, триггер шарттарын жана аткаруу иш-аракеттерин камтыган байланыш логикасынын дароо орнотулган шарты бар. Кондиционердин жылытуу режими үй ичиндеги температура 10°Cден төмөн түшкөндө иштетилет деп элестетиңиз; таңкы саат 7де колдонуучуну ойготуу үчүн музыка ойнолуп, акылдуу көшөгөлөр ачылып, күрүч бышыруучу же нан тостер акылдуу розетка аркылуу иштей баштаганы; колдонуучу ордунан туруп, жууп бүткөндөн кийин жумушка кечигүү болбошу үчүн эртең мененки тамак берилди. Жашообуз кандай ыңгайлуу болуп калды! Үчүнчү сtagд чалгындоо кызматына баратtagд. Көбүрөөк акылдуу үй түзмөктөрү жеткиликтүү болгон сайын, өндүрүлгөн маалыматтардын түрлөрү да көбөйөт. Булуттагы эсептөөлөрдүн, чоң маалыматтардын жана жасалма интеллекттин жардамы менен бул акылдуу үйлөргө “акылдуу мээ” орнотулган сыяктуу, алар колдонуучудан тез-тез буйруктарды талап кылбайт. Алар иш-аракеттерди автоматташтыруу, анын ичинде чечимдерди кабыл алуу боюнча сунуштарды берүү үчүн мурунку өз ара аракеттерден маалыматтарды чогултат жана колдонуучунун жүрүм-турум үлгүлөрүн жана артыкчылыктарын үйрөнүшөт. Азыркы учурда, көпчүлүк акылдуу үйлөр окуя болгон жерде өз ара байланыш сtagд. Акылдуу өнүмдөрдүн кирүү ылдамдыгы жана интеллекти жогорулаган сайын, байланыш протоколдорунун ортосундагы тоскоолдуктар жоюлууда. Келечекте, акылдуу үйлөр чындап эле “акылдуу” болуп, “Темир адамдагы” Жарвис AI системасы сыяктуу, колдонуучуга ар кандай түзмөктөрдү башкарууга, күнүмдүк иштерди башкарууга гана жардам бербестен, ошондой эле супер эсептөө күчү жана ой жүгүртүү жөндөмүнө ээ болот. Интеллигенцияда Сtagд, адам саны жагынан да, сапаты жагынан да жакшыраак кызматтарды алат.
1-глава. IoT 7ке киришүү
8 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
2 IoT долбоорлорунун киришүүсү жана практикасы бөлүмү
1-бөлүмдө биз IoT архитектурасын жана кабыл алуу жана башкаруу катмарынын, тармактык катмардын, платформа катмарынын жана колдонмо катмарынын ролдору жана өз ара байланыштары, ошондой эле акылдуу үйдүн өнүгүшү менен тааныштырдык. Бирок, биз сүрөт тартканды үйрөнгөндөй эле, теориялык билимди билүү жетиштүү эмес. Технологияны чындап өздөштүрүү үчүн IoT долбоорлорун ишке ашыруу үчүн “колубузду булгашыбыз керек”. Мындан тышкары, долбоор массалык өндүрүшкө өткөндө сtagд, тармакка туташуу, конфигурация, IoT булут платформасынын өз ара аракеттенүүсү, микропрограмманы башкаруу жана жаңыртуу, массалык өндүрүштү башкаруу жана коопсуздук конфигурациясы сыяктуу факторлорду эске алуу зарыл. Ошентип, толук IoT долбоорун иштеп чыгууда эмнеге көңүл бурушубуз керек? 1-бөлүмдө биз акылдуу үй IoT колдонуунун эң кеңири таралган сценарийлеринин бири экенин, ал эми акылдуу жарыктар үйлөрдө, мейманканаларда, спорт залдарда, ооруканаларда ж. бул китепте биз акылдуу жарык долбоорун курууну башталгыч чекит катары алып, анын компоненттерин жана өзгөчөлүктөрүн түшүндүрүп, долбоорду иштеп чыгуу боюнча көрсөтмөлөрдү беребиз. Сиз IoT тиркемелерин көбүрөөк түзүү үчүн бул иштен жыйынтык чыгара аласыз деп үмүттөнөбүз.
2.1 IoT типтүү долбоорлоруна киришүү
Өнүгүү жагынан, IoT долбоорлорунун негизги функционалдык модулдарын IoT түзмөктөрүнүн программалык жана аппараттык камсыздоосун иштеп чыгуу, кардар тиркемелерин иштеп чыгуу жана IoT булут платформасын иштеп чыгуу деп классификациялоого болот. Негизги функционалдык модулдарды тактоо маанилүү, алар мындан ары ушул бөлүмдө баяндалат.
2.1.1 Жалпы IoT түзмөктөрү үчүн негизги модулдар
IoT түзүлүштөрүн программалык жана аппараттык жактан иштеп чыгуу төмөнкү негизги модулдарды камтыйт: Маалыматтарды чогултуу
IoT архитектурасынын төмөнкү катмары катары, кабылдоо жана башкаруу катмарынын IoT түзмөктөрү маалыматтарды чогултуу жана операцияны көзөмөлдөө үчүн чиптери жана перифериялык түзүлүштөрү аркылуу сенсорлорду жана түзмөктөрдү туташтырат.
9
Каттоо эсебин байланыштыруу жана баштапкы конфигурациялоо Көпчүлүк IoT түзмөктөрү үчүн эсепти байланыштыруу жана баштапкы конфигурация бир операциялык процессте бүтөт, мисалы,ample, Wi-Fi тармагын конфигурациялоо менен түзмөктөрдү колдонуучулар менен туташтыруу.
IoT булут платформалары менен өз ара аракеттенүү IoT түзмөктөрүн көзөмөлдөө жана көзөмөлдөө үчүн, ошондой эле бири-биринин ортосундагы өз ара аракеттенүү аркылуу буйруктарды берүү жана статусту билдирүү үчүн аларды IoT булут платформаларына туташтыруу керек.
Түзмөктү башкаруу IoT булут платформаларына туташканда, түзмөктөр булут менен байланышып, катталып, байланып же башкарылат. Колдонуучулар IoT булут платформалары же жергиликтүү байланыш протоколдору аркылуу смартфондун колдонмосунда продукттун абалын сурап, башка операцияларды аткара алышат.
Микропрограмманы жаңыртуу IoT түзмөктөрү да өндүрүүчүлөрдүн муктаждыктарына жараша микропрограмманы жаңырта алышат. Булут тарабынан жөнөтүлгөн буйруктарды алуу менен микропрограмманы жаңыртуу жана версияны башкаруу ишке ашырылат. Бул микропрограмманы жаңыртуу өзгөчөлүгү менен сиз IoT түзмөктөрүнүн функцияларын үзгүлтүксүз өркүндөтө аласыз, кемчиликтерди оңдоп, колдонуучу тажрыйбасын жакшырта аласыз.
2.1.2 Кардар колдонмолорунун негизги модулдары
Кардар колдонмолору (мисалы, смартфон колдонмолору) негизинен төмөнкү негизги модулдарды камтыйт:
Эсеп системасы жана авторизация Ал каттоо эсебин жана түзмөк авторизациясын колдойт.
Түзмөктү башкаруу Смартфон колдонмолору, адатта, башкаруу функциялары менен жабдылган. Колдонуучулар IoT түзмөктөрүнө оңой туташып, аларды каалаган убакта, каалаган жерден смартфон колдонмолору аркылуу башкара алышат. Чыныгы дүйнөдөгү акылдуу үйдө түзмөктөр негизинен смартфон колдонмолору аркылуу башкарылат, бул түзмөктөрдү акылдуу башкарууга гана мүмкүнчүлүк бербестен, жумушчу күчүн үнөмдөйт. Ошондуктан, түзмөктү башкаруу кардар тиркемелери үчүн зарыл, мисалы, аппараттын функциясынын атрибуттарын көзөмөлдөө, сахнаны башкаруу, график түзүү, алыстан башкаруу, түзмөктүн байланышы ж.б. , ж.б., үй жашоосун ыңгайлуу жана ыңгайлуу кылуу үчүн. Алар кондиционерди убакытта иштетип, аны алыстан өчүрүп, эшиктин кулпусу ачылгандан кийин коридордун жарыгын автоматтык түрдө күйгүзө алышат же бир баскыч менен “театр” режимине өтө алышат.
Эскертме Кардар колдонмолору IoT түзмөктөрүнүн реалдуу убакыт абалын жаңыртышат жана түзмөктөр нормалдуу эмес болуп калганда эскертүүлөрдү жөнөтүшөт.
10 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
Сатуудан кийинки кардарларды тейлөө Смартфон колдонмолору өнүмдөрдү сатуудан кийинки кызматтарды көрсөтө алат, IoT түзмөгүнүн бузулушуна жана техникалык операцияларга байланыштуу көйгөйлөрдү өз убагында чечет.
Өзгөчөлөнгөн функциялар Ар түрдүү колдонуучулардын муктаждыктарын канааттандыруу үчүн, чайкоо, NFC, GPS ж.б. сыяктуу башка функциялар кошулушу мүмкүн. GPS жайгашкан жерге жана аралыкка жараша сахна операцияларынын тактыгын орнотууга жардам берет, ал эми Шактоо функциясы колдонуучуларга титирөө аркылуу белгилүү бир түзүлүш же көрүнүш үчүн аткарыла турган буйруктар.
2.1.3 Жалпы IoT булут платформаларына киришүү
IoT булут платформасы - бул түзмөктү башкаруу, маалымат коопсуздугу байланышы жана эскертме башкаруу сыяктуу функцияларды бириктирген бардыгы бир платформа. Максаттуу тобуна жана жеткиликтүүлүгүнө ылайык, IoT булут платформаларын коомдук IoT булут платформаларына (мындан ары “коомдук булут” деп аталат) жана жеке IoT булут платформаларына (мындан ары “жеке булут” деп аталат) бөлүүгө болот.
Коомдук булут адатта ишканалар же жеке адамдар үчүн платформа провайдерлери тарабынан башкарылуучу жана тейленүүчү жана Интернет аркылуу бөлүшүлгөн IoT булут платформаларын көрсөтөт. Ал акысыз же арзан болушу мүмкүн жана Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT ж. жаңы нарк чынжырын жана экосистеманы түзүү үчүн төмөнкү акыркы колдонуучулар.
Жеке булут ишкананын пайдалануусу үчүн гана курулган, ошону менен берилиштерди, коопсуздукту жана тейлөө сапатын мыкты көзөмөлдөөнү кепилдейт. Анын кызматтары жана инфраструктурасы ишканалар тарабынан өзүнчө тейленет жана колдоочу аппараттык жана программалык камсыздоо да белгилүү колдонуучуларга арналган. Ишканалар бизнесинин керектөөлөрүн канааттандыруу үчүн булут кызматтарын ыңгайлаштыра алышат. Азыркы учурда, кээ бир акылдуу үй өндүрүүчүлөр жеке IoT булут платформаларына ээ жана алардын негизинде акылдуу үй тиркемелерин иштеп чыгышкан.
Коомдук булут жана жеке булуттун өздөрүнүн артыкчылыктары барtages, бул кийинчерээк түшүндүрүлөт.
Байланыш байланышына жетишүү үчүн, бизнес серверлери, IoT булут платформалары жана смартфон колдонмолору менен бирге, жок дегенде, түзмөк тарабында орнотулган иштеп чыгууну аяктоо керек. Мындай чоң долбоорго туш болгон коомдук булут процессти тездетүү үчүн, адатта, түзмөк тараптагы жана смартфон колдонмолору үчүн программалык камсыздоону иштеп чыгуу комплекттерин камсыз кылат. Коомдук жана жеке булут кызматтарды камсыздайт, анын ичинде түзмөккө кирүү, түзмөктү башкаруу, түзмөктүн көлөкөсү, иштетүү жана тейлөө.
Түзмөккө кирүү IoT булут платформалары протоколдорду колдонуу менен түзмөккө кирүү үчүн интерфейстерди гана камсыз кылышы керек
2-глава. IoT долбоорлорун киргизүү жана практикалоо 11
мисалы, MQTT, CoAP, HTTPS жана WebSocket, бирок ошондой эле жасалма жана мыйзамсыз түзмөктөрдү бөгөттөө үчүн түзмөктүн коопсуздук аутентификациясынын функциясы бузулуп калуу коркунучун натыйжалуу азайтат. Мындай аутентификация, адатта, ар кандай механизмдерди колдойт, ошондуктан түзмөктөр массалык түрдө чыгарылганда, тандалган аутентификация механизмине ылайык түзмөктүн сертификатын алдын ала дайындоо жана аны түзмөктөргө күйгүзүү керек.
Түзмөктү башкаруу IoT булут платформалары тарабынан камсыз кылынган түзмөктү башкаруу функциясы өндүрүүчүлөргө реалдуу убакыт режиминде алардын түзмөктөрүнүн жандыруу абалын жана онлайн абалын көзөмөлдөөгө жардам бербестен, ошондой эле түзмөктөрдү кошуу / алып салуу, топторду алуу, кошуу / жок кылуу, микропрограмманы жаңыртуу сыяктуу параметрлерди берет. , жана версия башкаруу.
Түзмөктүн көлөкөсү IoT булут платформалары ар бир түзмөк үчүн туруктуу виртуалдык версиясын (түзмөктүн көлөкөсү) түзө алат, ал эми түзмөк көлөкөсүнүн статусу Интернет өткөрүү протоколдору аркылуу смартфондун тиркемеси же башка түзмөктөр тарабынан синхрондолуп, алынышы мүмкүн. Түзмөктүн көлөкөсү ар бир түзмөктүн акыркы кабарланган статусун жана күтүлгөн статусун сактайт жана түзмөк оффлайн режиминде болсо дагы, API'лерди чалуу менен статусту ала алат. Түзмөктүн көлөкөсү ар дайым күйүп турган API'лерди камсыз кылат, бул түзмөктөр менен иштешкен смартфон колдонмолорун түзүүнү жеңилдетет.
Иштетүү жана тейлөө O&M функциясы үч аспектини камтыйт: · IoT түзмөктөрү жана эскертмелери жөнүндө статистикалык маалыматты көрсөтүү. · Журналды башкаруу аппараттын жүрүм-туруму, кабардын өйдө/ылдый агымы жана билдирүүнүн мазмуну жөнүндө маалыматты алууга мүмкүнчүлүк берет. · Түзмөктүн мүчүлүштүктөрүн оңдоо командаларды жеткирүүнү, конфигурацияны жаңылоону жана IoT булут платформалары менен түзмөк билдирүүлөрүнүн ортосундагы өз ара аракеттенүүнү текшерүүнү колдойт.
2.2 Практика: Smart Light долбоору
Ар бир бөлүмдө теориялык киришүүдөн кийин, сиз практикалык тажрыйба алууга жардам берүү үчүн Smart Light долбооруна байланыштуу практика бөлүмүн таба аласыз. Долбоор Espressif'тин ESP32-C3 чипине жана ESP RainMaker IoT Cloud Platform платформасына негизделген жана акылдуу жарык өнүмдөрүндөгү зымсыз модулдун жабдыктарын, ESP32C3 негизиндеги акылдуу түзмөктөр үчүн орнотулган программалык камсыздоону, смартфон колдонмолорун жана ESP RainMaker өз ара аракеттенүүсүн камтыйт.
Булак коду Жакшыраак үйрөнүү жана тажрыйбаны өнүктүрүү үчүн бул китептеги долбоор ачык булактардан алынган. Булак кодун биздин GitHub репозиторийинен https://github дарегинен жүктөп алсаңыз болот. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
2.2.1 Долбоордун түзүмү
Smart Light долбоору үч бөлүктөн турат: i. ESP32-C3 негизиндеги акылдуу жарык түзмөктөрү, IoT булут платформалары менен өз ара аракеттенүү жана LED l жарыктыгын жана түс температурасын башкаруу үчүн жооптуу.amp мончоктор. ii. Смартфондук колдонмолор (анын ичинде Android жана iOS тутумунда иштеген планшет колдонмолору), акылдуу жарык өнүмдөрүнүн тармактык конфигурациясына, ошондой эле алардын абалын сурап жана көзөмөлдөөгө жооптуу.
iii. ESP RainMaker негизинде IoT булут платформасы. Жөнөкөйлөтүү үчүн, биз бул китепте IoT булут платформасын жана бизнес серверин бир бүтүн катары карайбыз. ESP RainMaker жөнүндө толук маалымат 3-бөлүмдө берилет.
Smart Light долбоорунун түзүмү менен IoT архитектурасынын ортосундагы дал келүү 2.1-сүрөттө көрсөтүлгөн.
2.1-сүрөт. Акылдуу жарык долбоорунун түзүмү
2.2.2 Долбоордун функциялары
Түзүлүшү боюнча бөлүнөт, ар бир бөлүктүн функциялары төмөнкүдөй. Акылдуу жарык түзмөктөр
· Тармактын конфигурациясы жана туташуу. · LED PWM башкаруу, мисалы, которгуч, жарыктык, түс температурасы, ж.б. · Автоматташтыруу же көрүнүштү башкаруу, мисалы, убакыт которуштуруу. · Шифрлөө жана Flashти коопсуз жүктөө. · Микропрограмманы жаңыртуу жана версияны башкаруу.
2-глава. IoT долбоорлорун киргизүү жана практикалоо 13
Смартфон колдонмолору · Тармак конфигурациясы жана түзмөктү байланыштыруу. · Акылдуу жарык продуктунун башкаруусу, мисалы, которгуч, жарыктык, түс температурасы ж.б. · Автоматташтыруу же сахна орнотуулары, мисалы, убакытты которгуч. · Жергиликтүү/алыстан башкаруу. · Колдонуучуну каттоо, логин ж.б.
ESP RainMaker IoT булут платформасы · IoT түзмөгүнө кирүү мүмкүнчүлүгүн иштетүү. · Смартфон колдонмолоруна жеткиликтүү түзмөктүн иштөө API'лерин камсыз кылуу. · Микропрограмманы жаңыртуу жана версияны башкаруу.
2.2.3 Аппараттык камсыздоону даярдоо
Долбоорду ишке ашырууга кызыкдар болсоңуз, сизге төмөнкү жабдыктар да керек болот: акылдуу жарыктар, смартфондор, Wi-Fi роутерлер жана иштеп чыгуу чөйрөсүнүн орнотуу талаптарына жооп берген компьютер. Акылдуу жарыктар
Акылдуу жарыктар - бул лампалардын жаңы түрү, алардын формасы жалпы ысытуу лампалары менен бирдей. Акылдуу жарык конденсатордун ылдыйлатуучу жөнгө салынуучу кубаттуулугунан, зымсыз модулдан (курган ESP32-C3 менен), LED контроллерден жана RGB LED матрицасынан турат. Электр кубатына туташтырылганда 15 В DC вольтtagКонденсатор төмөндөгөндөн, диодду оңдоодон жана жөнгө салуудан кийин чыгуучу диод контроллерине жана LED матрицасына энергия берет. LED контроллери RGB LED матрицасын жабык (жарык күйгүзүлгөн) жана ачык (өчүрүү) ортосунда которуштуруп, белгилүү бир аралыктарда автоматтык түрдө жогорку жана төмөнкү деңгээлдерди жөнөтө алат, ошондуктан ал көгүш, сары, жашыл, кызгылт көк, көк, кызыл жана Ак жарык. Зымсыз модулу Wi-Fi роутерге туташуу, акылдуу жарыктардын абалын кабыл алуу жана билдирүү жана LEDди башкаруу үчүн буйруктарды жөнөтүү үчүн жооптуу.
2.2-сүрөт. Симуляцияланган акылдуу жарык
Алгачкы өнүгүүдө сtage, RGB LED l менен туташкан ESP32-C3DevKitM-1 тактасын колдонуп, акылдуу жарыкты симуляциялай аласызamp мончоктор (2.2-сүрөттү караңыз). Бирок сен керек
14 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
бул акылдуу жарыкты чогултуунун жалгыз жолу эмес экенин белгилей кетүү керек. Бул китептеги долбоордун аппараттык дизайны зымсыз модулду гана камтыйт (кургатылган ESP32-C3 менен), бирок толук акылдуу жарык аппараттык дизайны эмес. Мындан тышкары, Espressif үн менен жарыктарды башкаруу үчүн ESP32-C3 негизиндеги аудио иштеп чыгуу тактасын ESP32C3-Lyra чыгарат. Такта микрофондор жана динамиктер үчүн интерфейстерге ээ жана LED тилкелерин башкара алат. Бул өтө арзан, жогорку натыйжалуу аудио уктурууларды жана ритмдик жарык тилкелерин иштеп чыгуу үчүн колдонулушу мүмкүн. 2.3-сүрөттө 32 LED чырактан турган тилке менен байланышкан ESP3-C40Lyra тактасы көрсөтүлгөн.
2.3-сүрөт. ESP32-C3-Lyra 40 LED чырактан турган тилке менен байланышкан
Смартфондор (Android/iOS) Smart Light долбоору акылдуу жарык өнүмдөрүн орнотуу жана башкаруу үчүн смартфон тиркемесин иштеп чыгууну камтыйт.
Wi-Fi роутерлери Wi-Fi роутерлери зымдуу тармак сигналдарын жана мобилдик тармак сигналдарын компьютерлер, смартфондор, планшеттер жана тармакка туташуу үчүн башка зымсыз түзмөктөр үчүн зымсыз тармак сигналдарына айлантат. Мисалы үчүнample, Wi-Fi түзмөктөрүнүн зымсыз тармагына жетүү үчүн үйдөгү кең тилкелүү Wi-Fi роутерге гана туташуу керек. Wi-Fi роутерлери тарабынан колдоого алынган негизги протокол стандарты IEEE 802.11n, орточо TxRate 300 Мбит/сек, же максималдуу 600 Мбит/сек. Алар IEEE 802.11b жана IEEE 802.11g менен артка шайкеш келет. Espressif тарабынан ESP32-C3 чип IEEE 802.11b/g/n колдойт, андыктан сиз бир тилкелүү (2.4 ГГц) же кош тилкелүү (2.4 ГГц жана 5 ГГц) Wi-Fi роутерин тандай аласыз.
Компьютер (Linux/macOS/Windows) иштеп чыгуу чөйрөсү 4-бөлүмдө тааныштырылат. 2-бөлүм. IoT долбоорлорун киргизүү жана практикасы 15
2.2.4 Иштеп чыгуу процесси
2.4-сүрөт. Smart Light долбоорун иштеп чыгуу кадамдары
Аппараттык дизайн IoT түзмөктөрүнүн аппараттык дизайны IoT долбоору үчүн маанилүү. Толук акылдуу жарык долбоору ал өндүрүү үчүн арналганamp электр энергиясы менен иштөө. Ар кандай өндүрүүчүлөр лampар кандай стилдеги жана драйвер түрлөрү бар, бирок алардын зымсыз модулдары, адатта, бирдей функцияга ээ. Smart Ligh долбоорун иштеп чыгуу процессин жөнөкөйлөтүү үчүн, бул китеп зымсыз модулдардын аппараттык дизайнын жана программалык камсыздоону иштеп чыгууну гана камтыйт.
IoT булут платформасынын конфигурациясы IoT булут платформаларын колдонуу үчүн, сиз өнүмдөрдү түзүү, түзмөктөрдү түзүү, түзмөктүн касиеттерин жөндөө ж.б. сыяктуу долбоорлорду конфигурациялашыңыз керек.
IoT түзмөктөрү үчүн камтылган программалык камсыздоону иштеп чыгуу ESP-IDF, Espressif'тин түзмөк тараптагы SDK менен күтүлгөн функцияларды ишке ашырыңыз, анын ичинде IoT булут платформаларына туташуу, LED драйверлерин иштеп чыгуу жана микропрограмманы жаңыртуу.
Смартфондук тиркемелерди иштеп чыгуу Колдонуучуну каттоо жана кирүү, аппаратты башкаруу жана башка функцияларды ишке ашыруу үчүн Android жана iOS системалары үчүн смартфон колдонмолорун иштеп чыгуу.
IoT түзмөгүн оптималдаштыруу IoT түзмөгүнүн функцияларын негизги иштеп чыгуу аяктагандан кийин, сиз оптималдаштыруу тапшырмаларына кайрылсаңыз болот, мисалы, энергияны оптималдаштыруу.
Массалык өндүрүштүк тестирлөө Жабдуулардын иштешин текшерүү, картаюу сыноосу, RF тести ж.
Жогоруда саналып өткөн кадамдарга карабастан, Smart Light долбоору сөзсүз түрдө мындай процедурага баш ийбейт, анткени бир эле учурда ар кандай тапшырмалар да аткарылышы мүмкүн. Мисалы үчүнample, камтылган программалык камсыздоо жана смартфон тиркемелери параллелдүү түрдө иштелип чыгышы мүмкүн. Кээ бир кадамдар да кайталанышы керек болушу мүмкүн, мисалы, IoT түзмөктү оптималдаштыруу жана массалык өндүрүш тестирлөө.
16 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
2.3 Кыскача маалымат
Бул бөлүмдө биз алгач IoT долбоорунун негизги компоненттери жана функционалдык модулдары жөнүндө түшүндүрүп бердик, андан кийин анын түзүмүн, функцияларын, аппараттык камсыздоону даярдоо жана иштеп чыгуу процессине шилтеме берүү менен практика үчүн Smart Light корпусун тааныштырдык. Окурмандар практикадан тыянак чыгарып, келечекте минималдуу каталар менен IoT долбоорлорун ишке ашырууга ишене алышат.
2-глава. IoT долбоорлорун киргизүү жана практикалоо 17
18 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
3-бөлүм
Introduction
чейин
ESP
RainMaker
Нерселердин Интернети (IoT) адамдардын жашоо образын өзгөртүү үчүн чексиз мүмкүнчүлүктөрдү сунуштайт, бирок IoT инженериясынын өнүгүшү кыйынчылыктарга толгон. Коомдук булуттар менен, терминал өндүрүүчүлөр төмөнкү чечимдер аркылуу продукт функцияларын ишке ашыра алат:
Чечим провайдерлеринин булут платформаларынын негизинде Ошентип, терминал өндүрүүчүлөргө продуктунун жабдыгын долбоорлоо гана керек, андан кийин берилген байланыш модулу аркылуу аппараттык жабдыкты булутка туташтыруу жана көрсөтмөлөргө ылайык продукт функцияларын конфигурациялоо керек. Бул эффективдүү ыкма, анткени ал сервердик жана тиркеме тарапта иштеп чыгууга жана операцияларга жана тейлөөгө (O&M) муктаждыкты жок кылат. Бул терминал өндүрүүчүлөрүнө булуттун ишке ашырылышын эске албай туруп, аппараттык түзүлүшкө көңүл бурууга мүмкүндүк берет. Бирок, мындай чечимдер (мисалы, түзмөктүн микропрограммасы жана Колдонмо) жалпысынан ачык булак эмес, андыктан продукт функциялары провайдердин булут платформасы менен чектелет, аны ыңгайлаштырууга болбойт. Ошол эле учурда, колдонуучу жана түзмөк маалыматтары да булут платформасына таандык.
Булуттук өнүмдөрдүн негизинде Бул чечимде, жабдыктын дизайнын аяктагандан кийин, терминалдык өндүрүүчүлөр коомдук булут тарабынан берилген бир же бир нече булут продуктуларын колдонуу менен булут функцияларын ишке ашырбастан, ошондой эле жабдыкты булут менен байланыштырышы керек. Мисалы үчүнample, Amazon менен туташуу үчүн Web Кызматтар (AWS), терминал өндүрүүчүлөрү Amazon API Gateway, AWS IoT Core жана AWS Lambda сыяктуу AWS өнүмдөрүн түзмөккө кирүүнү, алыстан башкарууну, маалыматтарды сактоону, колдонуучуну башкарууну жана башка негизги функцияларды иштетүү үчүн колдонушу керек. Ал терминалдык өндүрүүчүлөрдөн терең түшүнүү жана бай тажрыйба менен булут өнүмдөрүн ийкемдүү колдонууну жана конфигурациялоону гана эмес, ошондой эле алардан баштапкы жана кийинки мезгилдеги курулуш жана тейлөө баасын эске алууну талап кылат.tages Бул компаниянын энергия жана ресурстар үчүн чоң кыйынчылыктарды туудурат.
Коомдук булуттар менен салыштырганда, жеке булуттар, адатта, белгилүү бир долбоорлор жана буюмдар үчүн курулган. Жеке булут иштеп чыгуучуларына протоколду иштеп чыгууда жана бизнес логикасын ишке ашырууда эң жогорку эркиндик берилет. Терминал өндүрүүчүлөр каалагандай өнүмдөрдү жана дизайн схемаларын жасай алышат жана колдонуучунун маалыматтарын оңой интеграциялай алышат. Коомдук булуттун жогорку коопсуздугун, масштабдуулугун жана ишенимдүүлүгүн адван менен айкалыштырууtagжеке булуттун es, Espressif ESP ишке киргизди
19
RainMaker, Amazon булутуна негизделген терең интеграцияланган жеке булут чечими. Колдонуучулар ESP RainMakerди орнотуп, жеке булутту AWS каттоо эсеби менен түзө алышат.
3.1 ESP RainMaker деген эмне?
ESP RainMaker бир нече жетилген AWS өнүмдөрү менен курулган толук AIoT платформасы. Ал массалык өндүрүш үчүн талап кылынган ар кандай кызматтарды камсыз кылат, мисалы, түзмөк булутуна кирүү, түзмөктү жаңыртуу, серверди башкаруу, үчүнчү тараптын кирүү, үн интеграциясы жана колдонуучуну башкаруу. AWS тарабынан берилген Serverless Application Repository (SAR) колдонуу менен, терминал өндүрүүчүлөр ESP RainMakerди AWS эсептерине тез орното алышат, бул убакытты үнөмдүү жана колдонууга оңой. Espressif тарабынан башкарылуучу жана колдоого алынган, ESP RainMaker тарабынан колдонулган SAR иштеп чыгуучуларга булутту тейлөөгө кеткен чыгымдарды кыскартууга жана AIoT продуктуларын өнүктүрүүнү тездетүүгө жардам берет, ошентип коопсуз, туруктуу жана ыңгайлаштырылган AIoT чечимдерин түзүүгө. Сүрөт 3.1 ESP RainMaker архитектурасын көрсөтөт.
3.1-сүрөт. ESP RainMaker архитектурасы
Espressif тарабынан ESP RainMaker коомдук сервери бардык ESP энтузиасттары, жасоочулары жана чечимдерди баалоо үчүн педагогдор үчүн акысыз. Иштеп чыгуучулар Apple, Google же GitHub аккаунттары менен кирип, IoT тиркемесинин прототиптерин тез түзө алышат. Коомдук сервер Alexa жана Google Home'ду бириктирет жана Alexa Skill жана Google Actions тарабынан колдоого алынган үн менен башкаруу кызматтарын камсыз кылат. Анын семантикалык таануу функциясы да үчүнчү жактар тарабынан иштетилет. RainMaker IoT түзмөктөрү белгилүү бир аракеттерге гана жооп беришет. Колдоого алынган үн буйруктарынын толук тизмеси үчүн үчүнчү тараптын платформаларын текшериңиз. Мындан тышкары, Espressif колдонуучуларга смартфондор аркылуу өнүмдөрдү башкаруу үчүн коомдук RainMaker колдонмосун сунуштайт. 20 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
3.2 ESP RainMaker программасын ишке ашыруу
3.2-сүрөттө көрсөтүлгөндөй, ESP RainMaker төрт бөлүктөн турат: · Талап кылуу кызматы, RainMaker түзмөктөрүнө сертификаттарды динамикалык түрдө алууга мүмкүндүк берет. · RainMaker Cloud (булуттук backend катары да белгилүү), билдирүүлөрдү чыпкалоо, колдонуучуну башкаруу, маалыматтарды сактоо жана үчүнчү тарап интеграциясы сыяктуу кызматтарды көрсөтүү. · RainMaker агенти, RainMaker түзмөктөрүнө RainMaker Булутуна туташуу мүмкүнчүлүгүн берет. · RainMaker Client (RainMaker App же CLI скрипттери), камсыздоо, колдонуучуну түзүү, түзмөктөрдү бириктирүү жана башкаруу үчүн ж.б.
3.2-сүрөт. ESP RainMaker түзүмү
ESP RainMaker продуктту иштеп чыгуу жана массалык өндүрүш үчүн куралдардын толук топтомун камсыз кылат, анын ичинде: RainMaker SDK
RainMaker SDK ESP-IDFге негизделген жана микропрограмманы иштеп чыгуу үчүн түзмөк тараптагы агенттин баштапкы кодун жана тиешелүү C API'лерин камсыз кылат. Иштеп чыгуучулар колдонмонун логикасын жазып, калганын RainMaker рамкасына калтырышы керек. C API'лери жөнүндө көбүрөөк маалымат алуу үчүн https://bookc3.espressif.com/rm/c-api-reference кириңиз. RainMaker App RainMaker Колдонмонун жалпыга ачык версиясы иштеп чыгуучуларга аппаратты камсыздоону аягына чыгарууга жана түзмөктөрдүн абалын көзөмөлдөөгө жана суроого мүмкүндүк берет (мисалы, акылдуу жарык берүүчү өнүмдөр). Ал iOS жана Android колдонмолор дүкөндөрүндө жеткиликтүү. Көбүрөөк маалымат алуу үчүн 10-бөлүмдү караңыз. REST API'лери REST API'лери колдонуучуларга RainMaker колдонмосуна окшош тиркемелерди түзүүгө жардам берет. Көбүрөөк маалымат алуу үчүн https://swaggerapis.rainmaker.espressif.com/ дарегине кириңиз.
3-бөлүм. ESP RainMaker 21ге киришүү
Python API'лери RainMaker SDK менен коштолгон Python негизиндеги CLI смартфондун өзгөчөлүктөрүнө окшош бардык функцияларды ишке ашыруу үчүн берилген. Python API'лери жөнүндө көбүрөөк маалымат алуу үчүн https://bookc3.espressif.com/rm/python-api-reference кириңиз.
Администратор CLI Admin CLI, кирүү мүмкүнчүлүгү жогору, ESP RainMaker жеке жайылтуусу үчүн түзмөктүн сертификаттарын жапырт түзүү үчүн берилген.
3.2.1 Талап кылуу кызматы
RainMaker түзмөктөрү менен булут серверинин ортосундагы бардык байланыш MQTT+TLS аркылуу ишке ашырылат. ESP RainMaker контекстинде "Доомат коюу" - бул түзмөктөр булут серверине туташуу үчүн Талап коюу кызматынан сертификаттарды алуу процесси. Талап кылуу кызматы коомдук RainMaker кызматына гана тиешелүү экенин эске алыңыз, ал эми жеке жайылтуу үчүн түзмөктүн сертификаттары Admin CLI аркылуу жапырт түзүлүшү керек. ESP RainMaker Доомат коюу кызматынын үч түрүн колдойт: Өзүн-өзү талап кылуу
Түзмөктүн өзү сертификаттарды Интернетке туташкандан кийин eFuseде алдын ала программаланган жашыруун ачкыч аркылуу алат. Хост жетектеген дооматтар Сертификаттар RainMaker каттоо эсеби менен иштеп чыгуучу хосттон алынат. Жардам берилген доомат Сертификаттар провизиялоо учурунда смартфон тиркемелери аркылуу алынат.
3.2.2 RainMaker агенти
3.3-сүрөт. RainMaker SDK түзүмү RainMaker агентинин негизги функциясы байланышты камсыз кылуу жана тиркеме катмарына өйдө/ылдый байланыш булут маалыматтарын иштетүүгө жардам берүү болуп саналат. Ал RainMaker SDK 22 ESP32-C3 Wireless Adventure аркылуу курулган: IoT боюнча комплекстүү колдонмо
жана RTOS, NVS жана MQTT сыяктуу ESP-IDF компоненттерин колдонуу менен далилденген ESP-IDF негизинин негизинде иштелип чыккан. 3.3-сүрөттө RainMaker SDK түзүмү көрсөтүлгөн.
RainMaker SDK эки негизги өзгөчөлүктөрдү камтыйт.
Байланыш
и. Түзмөктүн сертификаттарын алуу үчүн Талап кылуу кызматы менен кызматташуу.
ii. Алыстан туташууну камсыз кылуу жана алыстан башкарууну, билдирүүлөрдү отчеттуулукту, колдонуучуну башкарууну, түзмөктү башкарууну ж.б. ишке ашыруу үчүн коопсуз MQTT протоколунун жардамы менен булут серверине туташуу. Ал демейки боюнча ESP-IDFдеги MQTT компонентин колдонот жана башка менен интерфейс үчүн абстракция катмарын камсыз кылат. протокол стектери.
iii. Wi-Fi туташуусу жана камсыздоо үчүн wifi камсыздоо компонентин, OTA жаңыртуулары үчүн https ota компонентин жана жергиликтүү түзмөктү табуу жана туташуу үчүн жергиликтүү ctrl компонентин камсыз кылуу. Бул максаттардын бардыгына жөнөкөй конфигурация аркылуу жетүүгө болот.
Маалыматтарды иштетүү
и. Claiming Service тарабынан чыгарылган түзмөк сертификаттарын жана RainMaker иштеткенде керектүү маалыматтарды сактоо, демейки боюнча nvs flash компоненти тарабынан берилген интерфейсти колдонуу жана түз колдонуу үчүн иштеп чыгуучулар үчүн API'лерди берүү.
ii. Өйдө/төмөн байланыш булут маалыматтарын иштетүү үчүн кайра чалуу механизмин колдонуу жана иштеп чыгуучулар оңой иштетүү үчүн маалыматтарды колдонмо катмарына автоматтык түрдө бөгөттөн чыгаруу. Мисалы үчүнample, RainMaker SDK IoT түзмөктөрүн сүрөттөө үчүн TSL моделдерин аныктоо жана убакыт, артка эсептөө жана үн менен башкаруу сыяктуу функцияларды ишке ашыруу үчүн талап кылынган TSL (Thing Specification Language) маалыматтарын түзүү үчүн бай интерфейстерди камсыз кылат. Убакыт сыяктуу негизги интерактивдүү функциялар үчүн, RainMaker SDK керек болгондо жөн гана иштетилүүчү иштеп чыгуусуз чечимди камсыз кылат. Андан кийин, RainMaker агенти маалыматтарды түздөн-түз иштетип, аны байланышкан MQTT темасы аркылуу булутка жөнөтөт жана кайра чалуу механизми аркылуу булуттун бэкендиндеги маалыматтардын өзгөрүшүн кайтарып берет.
3.2.3 Cloud Backend
Булут сервери AWS Serverless Computingге курулган жана AWS Cognito (идентификацияны башкаруу системасы), Amazon API Gateway, AWS Lambda (серверсиз эсептөө кызматы), Amazon DynamoDB (NoSQL маалымат базасы), AWS IoT Core (MQTT мүмкүнчүлүгүн камсыз кылган IoT кирүү өзөгү) аркылуу ишке ашат. жана эрежелерди чыпкалоо), Amazon Simple Email Service (SES жөнөкөй почта кызматы), Amazon CloudFront (тез жеткирүү тармагы), Amazon Simple Queue Service (SQS билдирүү кезеги) жана Amazon S3 (чака сактоо кызматы). Бул масштабдуулукту жана коопсуздукту оптималдаштырууга багытталган. ESP RainMaker менен иштеп чыгуучулар булутта код жазбастан түзмөктөрдү башкара алышат. Түзмөктөр тарабынан билдирилген билдирүүлөр ачык-айкын өткөрүлүп берилет
3-бөлүм. ESP RainMaker 23ге киришүү
колдонмо кардарлары же башка үчүнчү тараптын кызматтары. 3.1-таблицада AWS булуттук өнүмдөрү жана булут серверинде колдонулган функциялар көрсөтүлөт, мында көбүрөөк өнүмдөр жана функциялар иштелип чыгууда.
Таблица 3.1. AWS булут өнүмдөрү жана булут сервери колдонгон функциялар
RainMaker тарабынан колдонулган AWS булут продуктусу
Функция
AWS Cognito
Колдонуучунун эсептик дайындарын башкаруу жана үчүнчү жактын логиндерин колдоо
AWS Lambda
Булут серверинин негизги бизнес логикасын ишке ашыруу
Amazon Timestream убакыт сериясынын маалыматтарын сактоо
Amazon DynamoDB Кардарлардын жеке маалыматын сактоо
AWS IoT Core
MQTT байланышын колдоо
Amazon SES
Электрондук почта жөнөтүү кызматтарын көрсөтүү
Amazon CloudFront Backend башкарууну тездетүү webсайтка кирүү
Amazon SQS
AWS IoT Coreдон билдирүүлөрдү жөнөтүү
3.2.4 RainMaker кардары
App жана CLI сыяктуу RainMaker кардарлары REST API'лери аркылуу булут серверлери менен байланышат. REST APIлери жөнүндө толук маалыматты жана нускамаларды Espressif тарабынан берилген Swagger документтеринен тапса болот. RainMaker мобилдик тиркемесинин кардары iOS жана Android тутумдары үчүн жеткиликтүү. Бул түзмөктү камсыздоого, көзөмөлдөөгө жана бөлүшүүгө, ошондой эле артка эсептөө тапшырмаларын түзүүгө жана иштетүүгө жана үчүнчү тараптын платформаларына туташуу мүмкүнчүлүгүн берет. Ал автоматтык түрдө түзмөктөр тарабынан билдирилген конфигурацияга ылайык UI жана сүрөтчөлөрдү жүктөй алат жана TSL түзмөгүн толугу менен көрсөтө алат.
Мисалы үчүнampле, эгер акылдуу жарык RainMaker SDK тарабынан берилген экс-де курулган болсоamples, лампочканын сөлөкөтү жана UI камдоо аяктагандан кийин автоматтык түрдө жүктөлөт. Колдонуучулар интерфейс аркылуу жарыктын түсүн жана жарыктыгын өзгөртө алышат жана Alexa Smart Home Skill же Google Smart Home Actions программасын ESP RainMaker аккаунттарына байланыштыруу аркылуу үчүнчү тараптын көзөмөлүнө жетише алышат. 3.4-сүрөттө сөлөкөт жана UI эксampAlexa, Google Home жана ESP RainMaker колдонмосунда лампочканын жарыгы.
24 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
(а) Мисample – Alexa
(б) Мисample – Google Home
(c) Мисample – ESP RainMaker
Сүрөт 3.4. МисampAlexa, Google Home жана ESP RainMaker тиркемесинде лампа жарыгынын сөлөкөтү жана интерфейси
3.3 Практика: ESP RainMaker менен иштеп чыгуу үчүн негизги пункттар
Түзмөктүн драйверинин катмары аяктагандан кийин, иштеп чыгуучулар RainMaker SDK тарабынан берилген API'лерди колдонуу менен TSL моделдерин түзө башташы жана ылдый байланыш маалыматтарын иштетип, продукттун аныктамасы жана талаптарынын негизинде ESP RainMaker негизги кызматтарын иштетиши мүмкүн.
3-бөлүм. ESP RainMaker 25ге киришүү
Бул китептин 9.4-бөлүмүндө LED акылдуу жарыктын RainMakerде ишке ашырылышы түшүндүрүлөт. Мүчүлүштүктөрдү оңдоо учурунда иштеп чыгуучулар акылдуу жарык менен байланышуу үчүн RainMaker SDK ичиндеги CLI куралдарын колдоно алышат (же Swaggerден REST API'лерин чакыра алышат).
10-бөлүм смартфон тиркемелерин иштеп чыгууда REST API'лерди колдонууну иштеп чыгат. LED акылдуу жарыктарынын OTA жаңыртуулары 11-бөлүмдө каралат. Эгерде иштеп чыгуучулар ESP Insights алыстан мониторинг жүргүзүүнү иштетишсе, ESP RainMaker башкаруу сервери ESP Insights маалыматтарын көрсөтөт. Толук маалымат 15-бөлүмдө берилет.
ESP RainMaker жеке жайгаштырууну колдойт, ал коомдук RainMaker серверинен төмөнкү жолдор менен айырмаланат:
Талап кылуу кызматы Жеке жайылтууларда сертификаттарды түзүү үчүн, талап кылуунун ордуна RainMaker Admin CLI колдонуу керек. Коомдук серверде иштеп чыгуучуларга микропрограмманы жаңыртуу үчүн администратордук укуктар берилиши керек, бирок коммерциялык жайылтууларда бул жагымсыз. Ошондуктан, өзүн-өзү талап кылуу үчүн өзүнчө аутентификация кызматы да, хост башкаруусу же көмөкчү доомат үчүн администратордук укуктар берилбейт.
Телефон колдонмолору Жеке жайгаштырууларда, эсепке алуу тутумдарынын өз ара иштешүүсүн камсыз кылуу үчүн тиркемелер өзүнчө конфигурацияланышы жана компиляцияланышы керек.
Үчүнчү тараптын кирүүлөрү жана үн интеграциясы Иштеп чыгуучулар үчүнчү тараптын кирүүлөрүн, ошондой эле Alexa Skill жана Google Voice Assistant интеграциясын иштетүү үчүн Google жана Apple Developer каттоо эсептери аркылуу өзүнчө конфигурациялашы керек.
КЕҢЕШТЕР Булутту жайылтуу тууралуу чоо-жайын билүү үчүн https://customer.rainmaker.espressif дарегине кириңиз. com. Микропрограмма жагынан, коомдук серверден жеке серверге өтүү түзмөк сертификаттарын алмаштырууну гана талап кылат, бул миграциянын натыйжалуулугун бир топ жакшыртат жана миграциянын жана кошумча мүчүлүштүктөрдү оңдоонун баасын азайтат.
3.4 ESP RainMaker өзгөчөлүктөрү
ESP RainMaker функциялары негизинен үч аспектиге багытталган - колдонуучуну башкаруу, акыркы колдонуучулар жана администраторлор. Башкасы айтылбаса, бардык функциялар коомдук жана жеке серверлерде колдоого алынат.
3.4.1 Колдонуучуну башкаруу
Колдонуучуну башкаруу функциялары акыркы колдонуучуларга катталууга, кирүүгө, сырсөздөрдү өзгөртүүгө, сырсөздөрдү алууга ж.б.
26 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
Каттоо жана кирүү RainMaker тарабынан колдоого алынган каттоо жана кирүү ыкмаларына төмөнкүлөр кирет: · Email ID + Сырсөз · Телефон номери + Сырсөз · Google аккаунту · Apple аккаунту · GitHub аккаунту (жалпы коомдук сервер) · Amazon аккаунту (жеке сервер гана)
ЭСКЕРТҮҮ Google/Amazon аркылуу катталуу колдонуучунун электрондук почта дарегин RainMaker менен бөлүшөт. Колдонуучуга Apple атайын RainMaker кызматы үчүн дайындаган жасалма даректи бөлүшүү аркылуу катталыңыз. Google, Apple же Amazon аккаунттары менен биринчи жолу кирген колдонуучулар үчүн RainMaker аккаунту автоматтык түрдө түзүлөт.
Сырсөздү өзгөртүү Электрондук почта id/Телефон номерине негизделген кирүү үчүн гана жарактуу. Бардык башка активдүү сессиялар сырсөз өзгөртүлгөндөн кийин чыгарылат. AWS Cognito жүрүм-турумуна ылайык, чыгуу сеанстары 1 саатка чейин активдүү бойдон кала берет.
Сырсөздү алуу Email ID/Телефон номерине негизделген логиндер үчүн гана жарактуу.
3.4.2 Акыркы колдонуучунун өзгөчөлүктөрү
Акыркы колдонуучулар үчүн ачык өзгөчөлүктөргө жергиликтүү жана алыстан башкаруу жана мониторинг, график түзүү, түзмөктөрдү топтоо, түзмөктөрдү бөлүшүү, push эскертмелери жана үчүнчү тарап интеграциясы кирет.
Алыстан башкаруу жана мониторинг · Бир же бардык түзмөктөр үчүн конфигурацияны, параметр маанилерин жана байланыш абалын сураңыз. · Бир же бир нече түзмөктөр үчүн параметрлерди коюу.
Жергиликтүү башкаруу жана мониторинг Уюлдук телефон менен аппаратты жергиликтүү башкаруу үчүн бир тармакка туташтыруу керек.
Пландаштыруу · Колдонуучулар белгилүү бир убакытта белгилүү бир аракеттерди алдын ала белгилешет. · Графикти аткарууда түзмөк үчүн Интернет байланышы талап кылынбайт. · Бир же бир нече түзмөктөр үчүн бир жолу же кайталоо (күндөрдү көрсөтүү менен).
Түзмөктөрдү топтоо Көп деңгээлдүү абстракттуу топтоону колдойт Топтун метадайындары Үй бөлмөсүнүн структурасын түзүү үчүн колдонулушу мүмкүн.
3-бөлүм. ESP RainMaker 27ге киришүү
Түзмөктү бөлүшүү Бир же бир нече түзмөк бир же бир нече колдонуучу менен бөлүшүлүшү мүмкүн.
Push эскертмелери Акыркы колдонуучулар сыяктуу окуялар үчүн push эскертмелерин алышат · Жаңы түзмөк(-төр) кошулган/чыгарылган · Түзмөк булуттан туташкан · Түзмөк булуттан ажыратылган · Түзмөктү бөлүшүү өтүнүчтөрү түзүлгөн/кабыл алынган/четке алынган · Түзмөктөр тарабынан билдирилген эскертүү билдирүүлөрү
Үчүнчү тараптын интеграциясы Alexa жана Google Voice Assistant RainMaker түзмөктөрүн, анын ичинде жарыктарды, өчүргүчтөрдү, розеткаларды, желдеткичтерди жана температура сенсорлорун башкаруу үчүн колдоого алынат.
3.4.3 Администратордун өзгөчөлүктөрү
Администратордун өзгөчөлүктөрү администраторлорго түзмөктөрдү каттоону, түзмөктөрдү топтоштурууну жана OTA жаңыртууларын ишке ашырууга мүмкүндүк берет view статистика жана ESP Insights маалыматтары.
Түзмөктү каттоо Түзмөктүн сертификаттарын жаратыңыз жана Admin CLI менен каттаңыз (жеке сервер гана).
Түзмөктү топтоо Түзмөк маалыматынын негизинде абстракттуу же структураланган топторду түзүңүз (жеке сервер гана).
Over-the-Air (OTA) жаңыртуулары Версияга жана моделге жараша микропрограмманы жүктөө, бир же бир нече түзмөккө же топко Монитор, жокко чыгаруу же OTA тапшырмаларын архивдөө.
View статистика Viewмүмкүн болгон статистикага төмөнкүлөр кирет: · Түзмөктү каттоо (администратор тарабынан катталган сертификаттар) · Түзмөктү активдештирүү (түзмөк биринчи жолу туташтырылган) · Колдонуучунун эсептик жазуулары · Колдонуучу түзмөгүнүн ассоциациясы
View ESP Insights маалыматтары Viewжөндөмдүү ESP Insights маалыматтарына төмөнкүлөр кирет: · Каталар, эскертүүлөр жана ыңгайлаштырылган журналдар · Кырсык тууралуу отчеттор жана анализдер · Өчүрүүнүн себептери · Эстутумдун колдонулушу, RSSI ж.б. сыяктуу көрсөткүчтөр · Ыңгайлаштырылган көрсөткүчтөр жана өзгөрмөлөр
28 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
3.5 Кыскача маалымат
Бул бөлүмдө биз коомдук RainMaker жайгаштыруу менен жеке жайылтуунун ортосундагы айрым негизги айырмачылыктарды киргиздик. Espressif тарабынан ишке киргизилген жеке ESP RainMaker чечими абдан ишенимдүү жана кеңейтилет. Бардык ESP32 сериясындагы чиптер AWSге туташтырылган жана ыңгайлаштырылган, бул бааны бир топ төмөндөтөт. Иштеп чыгуучулар AWS булут өнүмдөрү жөнүндө билбестен эле прототибин текшерүүгө көңүл бура алышат. Биз ошондой эле ESP RainMaker программасын ишке ашырууну жана өзгөчөлүктөрүн жана платформаны колдонуу менен өнүктүрүүнүн кээ бир негизги пункттарын түшүндүрдүк.
Android үчүн ESP RainMaker жүктөп алуу үчүн сканерлеңиз iOS үчүн ESP RainMakerди жүктөп алуу үчүн
3-бөлүм. ESP RainMaker 29ге киришүү
30 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
4-бөлүм Өнүктүрүү чөйрөсү
Бул бөлүм ESP-IDF, ESP32-C3 үчүн программалык камсыздоону иштеп чыгуунун расмий негизине багытталган. Биз ар кандай операциялык системаларда чөйрөнү кантип орнотууну түшүндүрөбүз жана ESP-IDF долбоорунун түзүмүн жана куруу системасын, ошондой эле тиешелүү иштеп чыгуу куралдарын колдонуу менен тааныштырабыз. Андан кийин биз экстин компиляция жана иштөө процессин сунуштайбызample долбоору, ар бир с боюнча чыгуу журналы боюнча толук түшүндүрмө сунуш кылуу мененtage.
4.1 ESP-IDF бүттүview
ESP-IDF (Espressif IoT Development Framework) бул Espressif Technology тарабынан берилген IoT өнүктүрүүнүн бирдиктүү негизи. Ал негизги иштеп чыгуу тили катары C/C++ колдонот жана Linux, Mac жана Windows сыяктуу негизги операциялык системаларда кайчылаш компиляцияны колдойт. ЭксampБул китепке камтылган программалар ESP-IDF аркылуу иштелип чыккан, ал төмөнкү функцияларды сунуш кылат: · SoC тутум деңгээлиндеги драйверлер. ESP-IDF ESP32, ESP32-S2, ESP32-C3 үчүн драйверлерди камтыйт,
жана башка чиптер. Бул драйверлер перифериялык төмөнкү деңгээлдеги (LL) китепкананы, аппараттык абстракция катмарын (HAL) китепканасын, RTOS колдоосун жана жогорку катмардагы драйвердик программаны ж.б. камтыйт. · Негизги компоненттер. ESP-IDF IoT өнүктүрүү үчүн зарыл болгон негизги компоненттерди камтыйт. Бул HTTP жана MQTT сыяктуу бир нече тармак протоколдорунун стектерин, динамикалык жыштык модуляциясы менен кубаттуулукту башкаруу негизин жана Flash Encryption жана Secure Boot сыяктуу функцияларды, ж.б. камтыйт. · Иштеп чыгуу жана өндүрүш куралдары. ESP-IDF иштеп чыгуу жана массалык өндүрүш учурунда куруу, жарк кылуу жана мүчүлүштүктөрдү оңдоо үчүн кеңири колдонулган куралдар менен камсыз кылат (4.1-сүрөттү караңыз), мисалы CMake негизиндеги курулуш системасы, GCC негизиндеги кайчылаш компиляция куралдар тизмеги жана JTAG OpenOCDге негизделген мүчүлүштүктөрдү оңдоо куралы ж.б. Белгилей кетсек, ESP-IDF коду биринчи кезекте Apache 2.0 ачык булак лицензиясын карманат. Колдонуучулар ачык булак лицензиясынын шарттарын сактоо менен жеке же коммерциялык программалык камсыздоону чектөөсүз иштеп чыга алышат. Кошумчалай кетсек, колдонуучуларга туруктуу патент лицензиялары акысыз берилет, булак кодуна киргизилген кандайдыр бир өзгөртүүлөрдү ачык булактан алуу милдети жок.
31
4.1-сүрөт.
Куруу, жаркылдоо жана мүчүлүштүктөрдү оңдоо
иштеп чыгуу жана массалык өндүрүш үчүн гин куралдар
4.1.1 ESP-IDF версиялары
ESP-IDF коду GitHubда ачык булактуу долбоор катары жайгаштырылат. Учурда үч негизги версиясы бар: v3, v4 жана v5. Ар бир негизги версия, адатта, v4.2, v4.3, ж.б.у.с. ар кандай субверсияларды камтыйт. Espressif Systems ар бир чыккан суб-версиясы үчүн мүчүлүштүктөрдү оңдоо жана коопсуздук патчтары үчүн 30 айлык колдоону камсыздайт. Ошондуктан, v4.3.1, v4.2.2 ж.б. сыяктуу диверсиялардын оңдоп-түзөөлөрү да үзгүлтүксүз чыгарылып турат. 4.1-таблица Espressif чиптери үчүн ар кандай ESP-IDF версияларынын колдоо статусун көрсөтүп, алардын алдын ала иштөө режиминде экендигин көрсөтүп турат.view stage (алдын ала колдоо көрсөтүүview кээ бир өзгөчөлүктөрү же документтери жок болушу мүмкүн) же расмий түрдө колдоого алынган версиялар.
4.1-таблица. Espressif чиптери үчүн ар кандай ESP-IDF версияларынын статусун колдоо
Сериялар ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2
v4.1 колдоого алынат
v4.2 колдоого алынган
v4.3 колдоого алынат колдоого алынат
v4.4 колдоого алынат
preview
v5.0 колдоого алынатview
32 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
Негизги версиялардын итерациясы көбүнчө алкактык түзүмгө оңдоолорду жана компиляция системасын жаңыртууну камтыйт. Мисалы үчүнample, v3.* дан v4.* ге негизги өзгөрүү куруу системасынын Makeден CMakeге акырындык менен өтүшү болду. Башка жагынан алганда, кичинекей версияларды кайталоо, адатта, жаңы функцияларды кошууну же жаңы чиптерди колдоону талап кылат.
Туруктуу версиялар менен GitHub бутактарынын ортосундагы мамилени айырмалоо жана түшүнүү маанилүү. v*.* же v*.*.* деп белгиленген версиялар Espressif тарабынан толук ички сыноодон өткөн туруктуу версияларды билдирет. Оңдолгондон кийин, ошол эле версия үчүн код, куралдар тизмеги жана релиз документтери өзгөрүүсүз калат. Бирок, GitHub бутактары (мисалы, релиз/v4.3 бутагы) көп учурда күнүмдүк түрдө тез-тез коддон өтүшөт. Ошондуктан, бир эле бутактын астындагы эки код үзүндүлөрү айырмаланышы мүмкүн, ошондуктан иштеп чыгуучулар өз кодун ошого жараша тез арада жаңыртууну талап кылат.
4.1.2 ESP-IDF Git Workflow
Espressif ESP-IDF үчүн белгилүү бир Git иш процессин төмөнкүчө чагылдырат:
· Өнүктүрүүнүн негизги тармагы катары кызмат кылган башкы тармакка жаңы өзгөртүүлөр киргизилди. Мастер бутагындагы ESP-IDF версиясы ар дайым -dev алат tag v4.3-dev сыяктуу учурда иштелип жатканын көрсөтүү. Мастер бутагына өзгөртүүлөр адегенде кайра болотviewed жана Espressifдин ички репозиторийинде сыналган, андан кийин автоматташтырылган тестирлөө аяктагандан кийин GitHub'ка түртүлгөн.
· Жаңы версия мастер тармагындагы функцияларды иштеп чыгууну аяктагандан кийин жана бета тестирлөөсүнө кирүү критерийлерине жооп бергенден кийин, релиз/v4.3 сыяктуу жаңы тармакка өтөт. Мындан тышкары, бул жаңы филиал болуп саналат tagv4.3-beta1 сыяктуу релизге чейинки версия катары ged. Иштеп чыгуучулар бутактардын толук тизмесине жетүү үчүн GitHub платформасына кайрыла алышат жана tags ESP-IDF үчүн. Бета версиясында (чыгарууга чейинки версия) дагы эле белгилүү көйгөйлөрдүн олуттуу саны болушу мүмкүн экенин белгилей кетүү маанилүү. Бета версиясы үзгүлтүксүз тестирлөөдөн өтүп жаткандыктан, мүчүлүштүктөрдү оңдоолор бул версияга да, башкы бутагына бир убакта кошулат. Ошол эле учурда, башкы бутак кийинки версия үчүн жаңы функцияларды иштеп чыга баштаган болушу мүмкүн. Сыноо аяктап калганда, филиалга релиз талапкери (rc) энбелгиси кошулуп, анын v4.3-rc1 сыяктуу расмий релизге потенциалдуу талапкер экенин көрсөтүп турат. Бул жерде сtagд, бутак чыгарууга чейинки версия бойдон калууда.
· Эгерде эч кандай олуттуу мүчүлүштүктөр табылбаса же билдирилбесе, релизге чейинки версия акыры негизги версиянын энбелгисин (мисалы, v5.0) же кичине версиянын энбелгисин (мисалы, v4.3) алат жана документтештирилген расмий релиз версиясына айланат. релиз эскертүүлөр бетинде. Кийинчерээк, бул версияда аныкталган бардык мүчүлүштүктөр релиз бутагына оңдолот. Кол менен тестирлөө аяктагандан кийин, филиалга мүчүлүштүктөрдү оңдоо версиясынын энбелгиси ыйгарылат (мисалы, v4.3.2), ал релиз эскертүүлөрүнүн бетинде да чагылдырылат.
4-глава. Өнүктүрүү чөйрөсүн түзүү 33
4.1.3 Ылайыктуу версияны тандоо
ESP-IDF расмий түрдө ESP32-C3 версиясын v4.3 версиясынан колдой баштагандыктан жана v4.4 бул китепти жазуу учурунда расмий түрдө чыга элек болгондуктан, бул китепте колдонулган версия v4.3.2 болуп саналат, бул кайра каралган версия v4.3. Бирок, бул китепти окуп чыкканга чейин, v4.4 же жаңыраак версиялары мурунтан эле жеткиликтүү болушу мүмкүн экенин белгилей кетүү маанилүү. Версияны тандоодо төмөнкүнү сунуштайбыз:
· Баштапкы деңгээлдеги иштеп чыгуучулар үчүн стабилдүү v4.3 версиясын же мурунку версияга дал келген анын кайра каралган версиясын тандоо сунушталат.ample версия бул китепте колдонулган.
· Массалык өндүрүш максаттарында эң заманбап техникалык колдоодон пайдалануу үчүн эң акыркы туруктуу версиясын колдонуу сунушталат.
· Эгер сиз жаңы чиптер менен эксперимент жасагыңыз келсе же жаңы продукт өзгөчөлүктөрүн изилдегиңиз келсе, мастер бутагын колдонуңуз. Акыркы версия бардык акыркы функцияларды камтыйт, бирок белгилүү же белгисиз мүчүлүштүктөр болушу мүмкүн экенин унутпаңыз.
· Колдонулуп жаткан туруктуу версия керектүү жаңы функцияларды камтыбаса жана сиз башкы бутак менен байланышкан тобокелдиктерди азайтууну кааласаңыз, релиз/v4.4 бутагы сыяктуу тиешелүү релиз бутагын колдонууну карап көрүңүз. Espressif'тин GitHub репозиторийси адегенде релиз/v4.4 бутагын түзүп, андан кийин бардык функцияларды иштеп чыгуу жана тестирлөө аяктагандан кийин бул тармактын белгилүү бир тарыхый сүрөтүнүн негизинде туруктуу v4.4 версиясын чыгарат.
4.1.4 Overview ESP-IDF SDK каталогунун
ESP-IDF SDK эки негизги каталогдон турат: esp-idf жана .espressif. Биринчиси ESP-IDF репозиторийинин баштапкы кодун камтыйт files жана компиляция скрипттери, ал эми акыркысы негизинен компиляция куралдарынын чынжырларын жана башка программаларды сактайт. Бул эки каталог менен таанышуу иштеп чыгуучуларга колдо болгон ресурстарды жакшыраак пайдаланууга жана иштеп чыгуу процессин тездетүүгө жардам берет. ESP-IDF каталог түзүмү төмөндө сүрөттөлгөн:
(1) ESP-IDF репозиторий код каталогу (/esp/esp-idf), 4.2-сүрөттө көрсөтүлгөндөй.
а. Компонент каталогунун компоненттери
Бул негизги каталог ESP-IDFтин көптөгөн маанилүү программалык компоненттерин бириктирет. Эч бир долбоордун кодун бул каталогдогу компоненттерге таянбастан түзүүгө болбойт. Ал ар кандай Espressif чиптери үчүн драйверди колдоону камтыйт. LL китепканасынан жана перифериялык түзүлүштөр үчүн HAL китепканасынын интерфейстеринен жогорку деңгээлдеги Драйверге жана Виртуалдыкка чейин File Системанын (VFS) катмарын колдоо, иштеп чыгуучулар өздөрүнүн өнүгүү муктаждыктары үчүн ар кандай деңгээлдеги тиешелүү компоненттерди тандай алышат. ESP-IDF ошондой эле TCP/IP, HTTP, MQTT сыяктуу бир нече стандарттуу тармак протоколунун стектерин колдойт. WebСокет ж.б. Иштеп чыгуучулар тармактык тиркемелерди куруу үчүн Socket сыяктуу тааныш интерфейстерди колдоно алышат. Компоненттер түшүнүүнү камсыз кылат -
34 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
4.2-сүрөт. ESP-IDF репозиторий код каталогу
sive функционалдуулугу жана колдонмолорго оңой интеграцияланышы мүмкүн, бул иштеп чыгуучуларга бизнес логикасына гана көңүл бурууга мүмкүндүк берет. Кээ бир жалпы компоненттерге төмөнкүлөр кирет: · драйвер: Бул компонент ар кандай Espressif үчүн перифериялык драйвер программаларын камтыйт
чип сериялары, мисалы, GPIO, I2C, SPI, UART, LEDC (PWM) ж.б. Бул компоненттеги перифериялык драйвер программалары чиптен көз карандысыз абстрактуу интерфейстерди сунуштайт. Ар бир перифериялык түзүлүштүн жалпы аталышы бар file (мисалы, gpio.h), ар кандай чипке тиешелүү колдоо суроолору менен күрөшүү зарылдыгын жокко чыгарат. · esp_wifi: Wi-Fi атайын перифериялык түзүлүш катары өзүнчө компонент катары каралат. Ал ар кандай Wi-Fi драйверлеринин режимдерин инициализациялоо, параметрди конфигурациялоо жана окуяны иштетүү сыяктуу бир нече APIди камтыйт. Бул компоненттин айрым функциялары статикалык шилтеме китепканалары түрүндө берилген. ESP-IDF ошондой эле колдонуунун жеңилдиги үчүн комплекстүү драйвер документтерин камсыз кылат.
4-глава. Өнүктүрүү чөйрөсүн түзүү 35
· freertos: Бул компонент толук FreeRTOS кодун камтыйт. Бул операциялык тутумга ар тараптуу колдоо көрсөтүүдөн тышкары, Espressif эки ядролуу чиптерге да колдоосун кеңейтти. ESP32 жана ESP32-S3 сыяктуу эки ядролуу чиптер үчүн колдонуучулар конкреттүү өзөктөр боюнча тапшырмаларды түзө алышат.
б. Документ каталогу docs
Бул каталог ESP-IDF менен байланышкан иштеп чыгуу документтерин камтыйт, анын ичинде Баштоо колдонмосу, API маалымдамасы, Иштеп чыгуу боюнча колдонмо ж.б.
ЭСКЕРТҮҮ Автоматташтырылган куралдар тарабынан түзүлгөндөн кийин, бул каталогдун мазмуну https://docs.espressif.com/projects/esp-idf дарегинде жайгаштырылат. Сураныч, документ максаттуу ESP32-C3 которуштурууну камсыз кылуу жана көрсөтүлгөн ESP-IDF версиясын тандоо.
в. Скрипт куралдары
Бул каталог idf.py сыяктуу кеңири колдонулган компиляциянын алдыңкы инструменттерин жана idf_monitor.py монитор терминалынын куралын, ж.б. камтыйт. cmake подкаталогунда негизги скрипт да бар. fileESP-IDF компиляция эрежелерин ишке ашыруу үчүн негиз катары кызмат кылган компиляция системасынын с. Айлана-чөйрө өзгөрмөлөрүн кошкондо, куралдар каталогунун ичиндеги мазмундар системанын чөйрө өзгөрмөсүнө кошулуп, idf.py түз проект жолунун астында аткарылууга мүмкүндүк берет.
г. Мисample программа каталогу examples
Бул каталог ESP-IDF эксплуатациясынын кеңири коллекциясын камтыйтampкомпоненттеринин API'лерин колдонууну көрсөткөн программалар. Эксamples категорияларына жараша ар кандай подкаталогдорго бөлүнөт:
· баштоо: Бул суб-каталог баштапкы деңгээлдеги эксampКолдонуучуларга негизги нерселерди түшүнүүгө жардам берүү үчүн "салам дүйнө" жана "көрүү" сыяктуу.
· bluetooth: Сиз Bluetooth менен байланышкан экс таба аласызampБул жерде, анын ичинде Bluetooth LE Mesh, Bluetooth LE HID, BluFi жана башкалар.
· wifi: Бул подкаталог Wi-Fi мурункуга багытталганampWi-Fi SoftAP, Wi-Fi Station, espnow, ошондой эле менчик байланыш протоколу сыяктуу негизги программаларды камтыйт.amples from Espressif. Ал ошондой эле бир нече колдонмо катмарын камтыйт, мисалыampIperf, Sniffer жана Smart Config сыяктуу Wi-Fi'га негизделген.
· перифериялык түзүлүштөр: Бул кеңири подкаталог андан ары перифериялык аттардын негизинде көптөгөн ички папкаларга бөлүнөт. Ал негизинен перифериялык драйверди камтыйтampEspressif чиптери үчүн ар бир эксample бир нече суб-эксamples. Мисалы, gpio подкаталогунда эки эксamples: GPIO жана GPIO матрицалык клавиатура. Бул бардык эле эмес экенин белгилей кетүү маанилүүampБул каталогдогу файлдар ESP32-C3 үчүн жарактуу.
36 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
Мисалы үчүнampле, эксampusb/host ичиндеги les USB Хост жабдыктары (мисалы, ESP32-S3) бар перифериялык түзүлүштөргө гана тиешелүү жана ESP32-C3те бул перифериялык түзүлүш жок. Компиляция системасы, адатта, максатты коюуда эскертүүлөрдү берет. README file ар бир эксample колдоого алынган чиптердин тизмеси. · протоколдор: Бул подкаталог эксampар кандай байланыш протоколдору үчүн, анын ичинде MQTT, HTTP, HTTP Server, PPPoS, Modbus, mDNS, SNTP, байланыш протоколдорунун кеңири спектрин камтыган эксamples IoT өнүктүрүү үчүн зарыл. · камсыздоо: Бул жерден сиз провизияны табасызampWi-Fi менен камсыздоо жана Bluetooth LE камсыздоо сыяктуу ар кандай ыкмалар үчүн. · система: Бул подкаталог системанын мүчүлүштүктөрүн оңдоону камтыйтamples (мисалы, стекке байкоо жүргүзүү, иштөө убактысын көзөмөлдөө, тапшырманы көзөмөлдөө), энергияны башкаруу, мисалыamples (мисалы, ар кандай уйку режимдери, ко-процессорлор) жана мурункуampконсолдук терминал, окуялар цикли жана система таймери сыяктуу жалпы система компоненттерине байланыштуу. · сактоо: Бул подкаталогдун ичинде сиз эксampбардыгынан лес file ESP-IDF тарабынан колдоого алынган тутумдар жана сактоо механизмдери (мисалы, Flash, SD карта жана башка сактагычтарды окуу жана жазуу), ошондой эле мурункуampтуруксуз сактагычтар (NVS), FatFS, SPIFFS жана башкалар file системалык операциялар. · коопсуздук: Бул подкаталог мисampфлеш шифрлөө менен байланышкан. (2) 4.3-сүрөттө көрсөтүлгөндөй, ESP-IDF компиляция куралдарынын тизмеги (/.espressif).
4.3-сүрөт. ESP-IDF компиляция куралдар тизмеги
4-глава. Өнүктүрүү чөйрөсүн түзүү 37
а. Программалык камсыздоону бөлүштүрүү каталогу дист
ESP-IDF куралдар тизмеги жана башка программалык камсыздоо кысылган пакеттер түрүндө бөлүштүрүлөт. Орнотуу процессинде орнотуу куралы алгач кысылган пакетти dist каталогуна жүктөйт, андан кийин аны көрсөтүлгөн каталогго чыгарат. Орнотуу аяктагандан кийин, бул каталогдогу мазмунду коопсуз алып салууга болот.
б. Python виртуалдык чөйрө каталогу python env
ESP-IDFтин ар кандай версиялары Python пакеттеринин белгилүү версияларына таянат. Бул топтомдорду түз эле бир хостко орнотуу пакеттин версияларынын ортосунда карама-каршылыктарды алып келиши мүмкүн. Муну чечүү үчүн, ESP-IDF ар кандай пакет версияларын изоляциялоо үчүн Python виртуалдык чөйрөлөрүн колдонот. Бул механизм менен иштеп чыгуучулар бир эле хостко ESP-IDFтин бир нече версиясын орнотуп, ар кандай чөйрө өзгөрмөлөрүн импорттоо менен алардын ортосунда оңой которула алышат.
в. ESP-IDF компиляция куралы чынжыр каталог куралдары
Бул каталог негизинен ESP-IDF долбоорлорун компиляциялоо үчүн зарыл болгон кайчылаш компиляция куралдарын камтыйт, мисалы, CMake куралдары, Ninja куруу куралдары жана акыркы аткарылуучу программаны түзгөн gcc инструменттер тизмеги. Кошумча, бул каталогдо C/C++ тилинин стандарттык китепканасы жана тиешелүү аталышы бар fileс. Эгерде программа системанын башына шилтеме жасаса file сыяктуу #include , компиляция куралдарынын тизмеги stdio.h жайгашкан file бул каталогдун ичинде.
4.2 ESP-IDF өнүктүрүү чөйрөсүн орнотуу
ESP-IDF иштеп чыгуу чөйрөсү Windows, Linux жана macOS сыяктуу негизги операциялык системаларды колдойт. Бул бөлүмдө ар бир системада иштеп чыгуу чөйрөсүн кантип орнотуу керектиги көрсөтүлөт. Бул жерде майда-чүйдөсүнө чейин киргизилген Linux системасында ESP32-C3 иштеп чыгуу сунушталат. Көптөгөн нускамалар иштеп чыгуу куралдарынын окшоштугунан улам платформаларда колдонулат. Ошондуктан бул бөлүмдүн мазмунун кунт коюп окуп чыгуу сунушталат.
ЭСКЕРТҮҮ Сиз https://bookc3.espressif.com/esp32c3 дареги боюнча жеткиликтүү онлайн документтерге кайрыла аласыз, алар бул бөлүмдө айтылган буйруктарды берет.
4.2.1 Linux'та ESP-IDF өнүктүрүү чөйрөсүн орнотуу
ESP-IDF иштеп чыгуу чөйрөсү үчүн талап кылынган GNU иштеп чыгуу жана мүчүлүштүктөрдү оңдоо куралдары Linux тутумуна таандык. Кошумчалай кетсек, Linux'тагы буйрук сап терминалы күчтүү жана колдонууга ыңгайлуу, бул ESP32-C3 иштеп чыгуу үчүн идеалдуу тандоо. Сенин колуңдан келет
38 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
каалаган Linux бөлүштүрүүнү тандаңыз, бирок биз Ubuntu же башка Debian негизиндеги системаларды колдонууну сунуштайбыз. Бул бөлүм Ubuntu 20.04 боюнча ESP-IDF иштеп чыгуу чөйрөсүн орнотуу боюнча көрсөтмөлөрдү берет.
1. Керектүү пакеттерди орнотуңуз
Жаңы терминалды ачып, бардык керектүү пакеттерди орнотуу үчүн төмөнкү буйрукту аткарыңыз. Буйрук автоматтык түрдө орнотулган пакеттерди өткөрүп жиберет.
$ sudo apt-get орнотуу git wget flex bizon gperf python3 python3-pip python3setuptools cmake ninja-куруу ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
КЕҢЕШТЕР Жогорудагы буйрук үчүн администратор эсебин жана сырсөздү колдонушуңуз керек. Демейки боюнча, сырсөздү киргизүүдө эч кандай маалымат көрсөтүлбөйт. Процедураны улантуу үчүн жөн гана "Enter" баскычын басыңыз.
Git ESP-IDF негизги код башкаруу куралы болуп саналат. Иштеп чыгуу чөйрөсүн ийгиликтүү орноткондон кийин, сиз git log буйругун колдоно аласыз view ESP-IDF түзүлгөндөн бери жасалган бардык код өзгөртүүлөр. Кошумчалай кетсек, Git ESP-IDFте версия маалыматын тастыктоо үчүн да колдонулат, бул белгилүү версияларга туура келген туура шайман чынжырын орнотуу үчүн зарыл. Git менен бирге башка маанилүү тутум куралдарына Python кирет. ESP-IDF Python тилинде жазылган көптөгөн автоматташтыруу сценарийлерин камтыйт. CMake, Ninja-build жана Ccache сыяктуу куралдар C/C++ долбоорлорунда кеңири колдонулат жана ESP-IDFде демейки кодду түзүү жана куруу куралдары катары кызмат кылат. libusb-1.0-0 жана dfu-util USB сериялык байланыш жана микропрограмманы күйгүзүү үчүн колдонулган негизги драйверлер. Программалык пакеттер орнотулгандан кийин, сиз apt show колдоно аласыз ар бир пакеттин толук сүрөттөмөсүн алуу үчүн буйрук. Мисалы үчүнample, Git куралы үчүн сүрөттөмө маалыматын басып чыгаруу үчүн apt show git колдонуңуз.
С: Python версиясы колдоого алынбаса, эмне кылуу керек? A: ESP-IDF v4.3 V3.6дан төмөн эмес Python версиясын талап кылат. Ubuntu'нун эски версиялары үчүн, сураныч, Python'дун жогорку версиясын кол менен жүктөп алып, орнотуңуз жана Python3'ту демейки Python чөйрөсү катары коюңуз. Сиз толук нускамаларды python update-alternatives ачкыч сөзүн издеп таба аласыз.
2. ESP-IDF репозиторий кодун жүктөп алыңыз
Терминалды ачып, mkdir буйругун колдонуп, үй каталогуңузда esp деген папканы түзүңүз. Кааласаңыз, папка үчүн башка аталышты тандай аласыз. Папкага кирүү үчүн cd буйругун колдонуңуз.
4-глава. Өнүктүрүү чөйрөсүн түзүү 39
$ mkdir -p /esp $ cd /esp
Төмөндө көрсөтүлгөндөй ESP-IDF репозиторий кодун жүктөп алуу үчүн git clone буйругун колдонуңуз:
$ git clone -b v4.3.2 –рекурсивдүү https://github.com/espressif/esp-idf.git
Жогорудагы буйрукта -b v4.3.2 параметри жүктөө үчүн версияны көрсөтөт (бул учурда 4.3.2 версиясы). Параметр –рекурсивдүү ESP-IDFтин бардык суб-репозиторийлери рекурсивдүү түрдө жүктөлүшүн камсыздайт. Суб-репозиторийлер жөнүндө маалыматты .gitmodules тапса болот file.
3. ESP-IDF иштеп чыгуу куралдарынын чынжырын орнотуңуз
Espressif куралдар чынжырын жүктөп алуу жана орнотуу үчүн install.sh автоматташтырылган скрипт менен камсыз кылат. Бул скрипт учурдагы ESP-IDF версиясын жана операциялык тутумдун чөйрөсүн текшерет, андан кийин Python курал пакеттеринин жана компиляция куралдарынын чынжырларынын тиешелүү версиясын жүктөп алып, орнотот. Куралдар чынжырынын демейки орнотуу жолу - /.espressif. Болгону esp-idf каталогуна өтүү жана install.sh файлын иштетүү керек.
$ cd /esp/esp-idf $ ./install.sh
Эгерде сиз инструмент чынжырын ийгиликтүү орнотсоңуз, терминал төмөнкүнү көрсөтөт:
Баары бүттү!
Бул учурда, сиз ESP-IDF иштеп чыгуу чөйрөсүн ийгиликтүү орноттуңуз.
4.2.2 Windowsта ESP-IDF иштеп чыгуу чөйрөсүн орнотуу
1. ESP-IDF куралдарын орноткучту жүктөп алыңыз
КЕҢЕШТЕР ESP-IDF иштеп чыгуу чөйрөсүн Windows 10 же андан жогору орнотуу сунушталат. Орноткучту https://dl.espressif.com/dl/esp-idf/ дарегинен жүктөп алсаңыз болот. Орнотуучу дагы ачык булактуу программа жана анын баштапкы коду болушу мүмкүн viewed: https://github.com/espressif/idf-installer.
· Онлайн ESP-IDF куралдарын орнотуучу
Бул орнотуучу салыштырмалуу кичине, көлөмү болжол менен 4 МБ жана башка пакеттер жана код орнотуу процессинде жүктөлүп алынат. Адванtagонлайн орноткучтун е - бул орнотуу процессинде талап боюнча программалык пакеттерди жана кодду жүктөп алуу гана эмес, ошондой эле ESP-IDFтин бардык жеткиликтүү релиздерин жана GitHub кодунун эң акыркы бутагын (мисалы, башкы бутак сыяктуу) орнотууга мүмкүндүк берет. . Кемчиликtage - бул орнотуу процессинде тармак туташуусун талап кылат, бул тармак көйгөйлөрүнөн улам орнотуунун бузулушуна алып келиши мүмкүн.
40 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
· Оффлайн ESP-IDF куралдарын орнотуучу Бул орнотуучу чоңураак, болжол менен 1 ГБ өлчөмүндө жана чөйрөнү орнотуу үчүн талап кылынган бардык программалык пакеттерди жана кодду камтыйт. Негизги авансtagоффлайн орноткучтун e - бул Интернетке кирүү мүмкүнчүлүгү жок компьютерлерде колдонулушу мүмкүн жана жалпысынан орнотуунун ийгиликтүү деңгээли жогору. Белгилей кетчү нерсе, оффлайн орнотуучу v*.* же v*.*.* тарабынан аныкталган ESP-IDFтин туруктуу релиздерин гана орното алат.
2. Орноткучтун ылайыктуу версиясын жүктөп алгандан кийин ESP-IDF куралдарын орноткучту иштетиңиз (мисалы, ESP-IDF Tools Offline 4.3.2 алыңыз.ample бул жерде), exe файлын эки жолу чыкылдатыңыз file ESP-IDF орнотуу интерфейсин ишке киргизүү. Төмөндө оффлайн орнотуучу аркылуу ESP-IDF туруктуу версиясы v4.3.2 кантип орнотуу керектиги көрсөтүлөт.
(1) 4.4-сүрөттө көрсөтүлгөн "Орнотуу тилин тандоо" интерфейсинде ачылуучу тизмеден колдонула турган тилди тандаңыз.
4.4-сүрөт. "Орнотуу тилин тандоо" интерфейси (2) Тилди тандагандан кийин, "Лицензиялык келишим" интерфейсин калкып чыгуу үчүн "OK" баскычын басыңыз
(4.5-сүрөттү караңыз). Орнотуу лицензиялык келишимин кунт коюп окуп чыккандан кийин, "Мен келишимди кабыл алам" дегенди тандап, "Кийинки" баскычын басыңыз.
4.5-сүрөт. “Лицензиялык келишим” интерфейси 4-глава. Өнүктүрүү чөйрөсүн түзүү 41
(3) Review системанын конфигурациясын "Орнотууга чейинки системаны текшерүү" интерфейсинде (4.6-сүрөттү караңыз). Windows версиясын жана орнотулган антивирустук программанын маалыматын текшериңиз. Бардык конфигурация элементтери нормалдуу болсо, "Кийинки" баскычын чыкылдатыңыз. Болбосо, негизги пункттарга негизделген чечимдер үчүн "Толук журналды" чыкылдатсаңыз болот.
4.6-сүрөт. "Орнотуудан мурун тутумду текшерүү" интерфейси КЕҢЕШТЕР
Жардам үчүн https://github.com/espressif/idf-installer/issues дарегине журналдарды тапшырсаңыз болот. (4) ESP-IDF орнотуу каталогун тандаңыз. Бул жерде көрсөтүлгөндөй D:/.espressif тандаңыз
4.7-сүрөт жана "Кийинки" баскычын басыңыз. Сураныч, бул жерде .espressif жашыруун каталог экенин эске алыңыз. Орнотуу аяктагандан кийин, сиз жасай аласыз view ачуу менен бул каталогдун конкреттүү мазмуну file башкаруучу жана жашырылган нерселерди көрсөтүү.
4.7-сүрөт. ESP-IDF орнотуу каталогун тандаңыз 42 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
(5) 4.8-сүрөттө көрсөтүлгөндөй, орнотулушу керек болгон компоненттерди текшериңиз. Демейки опцияны колдонуу сунушталат, башкача айтканда, орнотууну аягына чыгарып, андан кийин "Кийинки" баскычын чыкылдатыңыз.
4.8-сүрөт. Орнотуу үчүн компоненттерди тандаңыз (6) Орнотула турган компоненттерди ырастаңыз жана автоматташтырылган киргизүүнү баштоо үчүн "Орнотуу" баскычын басыңыз.
4.9-сүрөттө көрсөтүлгөндөй токтоо процесси. Орнотуу процесси ондогон мүнөткө созулушу мүмкүн жана орнотуу процессинин прогресс тилкеси 4.10-сүрөттө көрсөтүлгөн. Сабырдуулук менен күтө туруңуз.
4.9-сүрөт. Орнотууга даярдануу (7) Орнотуу аяктагандан кийин, “ESP-IDF каттоо
Антивирустук программанын жок кылынышына жол бербөө үчүн, Windows Defender бөтөнчөлөрү катары аткарылуучу куралдар…” fileс. Четтетүү элементтерин кошуу антивирус тарабынан тез-тез скандоолорду өткөрүп жибериши мүмкүн
4-глава. Өнүктүрүү чөйрөсүн түзүү 43
4.10-сүрөт. Орнотуу прогрессинин тилкеси программалык камсыздоо, Windows тутумунун кодду түзүүнүн натыйжалуулугун бир топ жакшыртат. 4.11-сүрөттө көрсөтүлгөндөй, иштеп чыгуу чөйрөсүн орнотууну аяктоо үчүн “Бүтүрүү” баскычын басыңыз. Сиз "ESP-IDF PowerShell чөйрөсүн иштетүү" же "ESP-IDF буйрук тилкесин иштетүү" текшерүүнү тандай аласыз. Иштеп чыгуу чөйрөсү нормалдуу иштешин камсыз кылуу үчүн орнотуудан кийин түздөн-түз компиляция терезесин иштетиңиз.
4.11-сүрөт. Орнотуу аяктады (8) Программанын тизмесинде орнотулган иштеп чыгуу чөйрөсүн ачыңыз (же ESP-IDF 4.3
CMD же ESP-IDF 4.3 PowerShell терминалы, 4.12-сүрөттө көрсөтүлгөндөй) жана ESP-IDF чөйрө өзгөрмөлөрү терминалда иштегенде автоматтык түрдө кошулат. Андан кийин, операциялар үчүн idf.py буйругун колдоно аласыз. Ачылган ESP-IDF 4.3 CMD 4.13-сүрөттө көрсөтүлгөн. 44 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
4.12-сүрөт. Өнүктүрүү чөйрөсү орнотулду
4.13-сүрөт. ESP-IDF 4.3 CMD
4.2.3 Mac'та ESP-IDF өнүктүрүү чөйрөсүн орнотуу
Mac системасында ESP-IDF иштеп чыгуу чөйрөсүн орнотуу процесси Linux тутумундагыдай эле. Репозиторий кодун жүктөп алуу жана куралдар чынжырын орнотуу үчүн буйруктар дал ушундай. Көз карандылык топтомдорун орнотуу үчүн гана буйруктар бир аз башкача. 1. Көз карандылык топтомдорун орнотуу Терминалды ачып, Python пакетин башкаруу куралы болгон pipди төмөнкү буйрукту иштетүү менен орнотуңуз:
% sudo оңой орнотуу пип
Homebrew, MacOS үчүн пакетти башкаруу куралын төмөнкү буйрукту иштетүү менен орнотуңуз:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Төмөнкү буйрукту иштетүү менен талап кылынган көз карандылык пакеттерин орнотуңуз:
% brew python3 орнотуу cmake ninja ccache dfu-util
2. ESP-IDF репозиторий кодун жүктөп алыңыз ESP-IDF репозиторий кодун жүктөп алуу үчүн 4.2.1 бөлүмүндө берилген нускамаларды аткарыңыз. Кадамдар Linux тутумунда жүктөө менен бирдей.
4-глава. Өнүктүрүү чөйрөсүн түзүү 45
3. ESP-IDF иштеп чыгуу куралдарынын чынжырын орнотуңуз
ESP-IDF иштеп чыгуу куралдар чынжырын орнотуу үчүн 4.2.1 бөлүмүндө берилген нускамаларды аткарыңыз. Кадамдар Linux тутумунда орнотууга окшош.
4.2.4 VS кодун орнотуу
Демейки боюнча, ESP-IDF SDK кодду түзөтүү куралын камтыбайт (бирок Windows үчүн эң акыркы ESP-IDF орнотуучусу ESP-IDF Eclipse орнотуу мүмкүнчүлүгүн сунуш кылат). Сиз каалаган текстти түзөтүү куралын колдонуп, кодду түзөтүп, андан кийин терминалдык буйруктарды колдонуп түзө аласыз.
Кодду оңдоонун популярдуу куралдарынын бири VS Code (Visual Studio Code) болуп саналат, ал колдонуучуга ыңгайлуу интерфейси бар акысыз жана өзгөчөлүктөргө бай код редактору. Бул ар кандай сунуш кылат plugins код навигациясы, синтаксисти бөлүп көрсөтүү, Git версиясын башкаруу жана терминалдык интеграция сыяктуу функцияларды камсыз кылат. Кошумчалай кетсек, Espressif VS Code үчүн Espressif IDF деп аталган атайын плагинди иштеп чыккан, ал долбоордун конфигурациясын жана мүчүлүштүктөрдү оңдоону жөнөкөйлөтөт.
VS Code ичинде учурдагы папканы тез ачуу үчүн терминалдагы код буйругун колдоно аласыз. Же болбосо, VS Code ичинде системанын демейки терминал консолун ачуу үчүн Ctrl+ жарлыгын колдоно аласыз.
КЕҢЕШТЕР ESP32-C3 кодун иштеп чыгуу үчүн VS кодун колдонуу сунушталат. VS Code акыркы версиясын https://code.visualstudio.com/ дарегинен жүктөп алып, орнотуңуз.
4.2.5 Үчүнчү тараптын өнүктүрүү чөйрөсүнө киришүү
Негизинен C тилин колдонгон расмий ESP-IDF иштеп чыгуу чөйрөсүнөн тышкары, ESP32-C3 башка негизги программалоо тилдерин жана үчүнчү тараптын өнүктүрүү чөйрөлөрүнүн кеңири спектрин да колдойт. Кээ бир көрүнүктүү параметрлер кирет:
Arduino: аппараттык жана программалык камсыздоо үчүн ачык булак платформасы, ар кандай микроконтроллерлерди колдогон, анын ичинде ESP32-C3.
Ал C++ тилин колдонот жана жөнөкөйлөштүрүлгөн жана стандартташтырылган API сунуштайт, адатта Arduino тили деп аталат. Arduino прототибин иштеп чыгууда жана билим берүү контекстинде кеңири колдонулат. Ал кеңейтилүүчү программалык пакетти жана оңой компиляциялоого жана жаркыратууга мүмкүндүк берген IDE менен камсыз кылат.
MicroPython: камтылган микроконтроллер платформаларында иштөө үчүн иштелип чыккан Python 3 тил котормочусу.
Жөнөкөй скрипт тили менен ал ESP32-C3 перифериялык ресурстарына (мисалы, UART, SPI жана I2C) жана байланыш функцияларына (мисалы, Wi-Fi жана Bluetooth LE) түздөн-түз кире алат.
46 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
Бул аппараттык өз ара аракеттенүүнү жеңилдетет. MicroPython, Python'дун кеңири математикалык операциялар китепканасы менен айкалышып, AI менен байланышкан тиркемелерди иштеп чыгууну жеңилдетип, ESP32-C3 боюнча татаал алгоритмдерди ишке ашырууга мүмкүндүк берет. Скрипт тили катары, кайра-кайра компиляциянын кереги жок; өзгөртүүлөр киргизилиши жана скрипттердин түздөн-түз аткарылышы мүмкүн.
NodeMCU: ESP сериясындагы чиптер үчүн иштелип чыккан LUA тил котормочусу.
Ал ESP чиптеринин дээрлик бардык перифериялык функцияларын колдойт жана MicroPythonго караганда жеңилирээк. MicroPython сыяктуу, NodeMCU скрипт тилин колдонот, бул кайталап компиляциянын зарылдыгын жок кылат.
Мындан тышкары, ESP32-C3 ошондой эле NuttX жана Zephyr операциялык системаларын колдойт. NuttX – бул реалдуу убакыт режиминдеги операциялык тутум, ал POSIX-шайкеш интерфейстерди камсыз кылып, тиркеменин портативдүүлүгүн жогорулатат. Zephyr - бул IoT тиркемелери үчүн атайын иштелип чыккан кичинекей реалдуу убакытта иштөө тутуму. Ал бара-бара комплекстүү программалык экосистемага айланган IoT өнүктүрүүдө талап кылынган көптөгөн программалык китепканаларды камтыйт.
Бул китепте жогоруда айтылган иштеп чыгуу чөйрөлөрү үчүн толук орнотуу көрсөтмөлөрү жок. Тиешелүү документтерди жана нускамаларды аткаруу менен өз талаптарыңызга негизделген иштеп чыгуу чөйрөсүн орното аласыз.
4.3 ESP-IDF компиляция системасы
4.3.1 Компиляция системасынын негизги түшүнүктөрү
ESP-IDF долбоору - бул кирүү функциясы жана бир нече көз карандысыз функциялык компоненттери бар негизги программанын жыйындысы. Мисалы үчүнample, LED өчүргүчтөрүн башкарган долбоор негизинен кирүү программасынын негизги бөлүгүнөн жана GPIOну башкарган драйвер компонентинен турат. Эгер сиз LED алыстан башкарууну ишке ашырууну кааласаңыз, анда Wi-Fi, TCP/IP протокол стекин ж.б. кошуу керек.
Компиляция системасы компиляциялоо, шилтемелөө жана аткарылуучу файлды түзө алат files (.bin) курулуш эрежелеринин жыйындысы аркылуу код үчүн. ESP-IDF v4.0 жана андан жогору версияларынын компиляция системасы демейки боюнча CMakeге негизделген жана CMakeLists.txt компиляция скрипти коддун компиляция жүрүм-турумун көзөмөлдөө үчүн колдонулушу мүмкүн. CMakeдин негизги синтаксисин колдоодон тышкары, ESP-IDF компиляция системасы демейки компиляция эрежелеринин жана CMake функцияларынын топтомун аныктайт жана сиз компиляция сценарийин жөнөкөй билдирүүлөр менен жаза аласыз.
4.3.2 Долбоор File Структура
Долбоор - бул кирүү программасынын негизги, колдонуучу аныктаган компоненттерин жана камтыган папка fileс компиляция скрипттери, конфигурация сыяктуу аткарылуучу тиркемелерди куруу үчүн талап кылынат
4-глава. Өнүктүрүү чөйрөсүн түзүү 47
fileс, бөлүү таблицалары ж.б.. Долбоорлорду көчүрүүгө жана өткөрүп берүүгө болот жана ошол эле аткарылуучу file ESP-IDF иштеп чыгуу чөйрөсүнүн бирдей версиясы бар машиналарда түзүлүп, түзүлүшү мүмкүн. Кадимки ESP-IDF долбоору file структурасы 4.14-сүрөттө көрсөтүлгөн.
4.14-сүрөт. Типтүү ESP-IDF долбоору file структура ESP-IDF Espressif бир нече IoT чиптерин, анын ичинде ESP32, ESP32-S сериясы, ESP32-C сериясы, ESP32-H сериясы ж.б. колдогондуктан, кодду түзүүдөн мурун максатты аныктоо керек. Максат колдонмо программасын иштеткен аппараттык түзүлүш жана компиляция системасынын түзүүчү максаты болуп саналат. Сиздин муктаждыктарыңызга жараша, сиз долбооруңуз үчүн бир же бир нече максатты белгилей аласыз. Мисалы үчүнample, idf.py set-target esp32c3 буйругу аркылуу, сиз ESP32-C3 үчүн компиляция максатын орното аласыз, анын жүрүшүндө ESP32C3 үчүн демейки параметрлер жана компиляция куралынын чынжыр жолу жүктөлөт. Компиляциядан кийин ESP32C3 үчүн аткарылуучу программа түзүлүшү мүмкүн. Башка максат коюу үчүн set-target буйругун дагы иштетсеңиз болот, жана компиляция системасы автоматтык түрдө тазалап, кайра конфигурациялайт. Компоненттер
ESP-IDF компоненттери компиляция системасынын ичинде башкарылуучу модулдук жана көз карандысыз код бирдиктери болуп саналат. Алар папкалар катары уюштурулган, папканын аталышы демейки боюнча компоненттин атын билдирет. Ар бир компоненттин өзүнүн компиляция скрипти бар, ал 48 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
анын компиляция параметрлерин жана көз карандылыкты аныктайт. Компиляция процессинде компоненттер өзүнчө статикалык китепканаларга түзүлөт (.a files) жана акырында колдонмо программасын түзүү үчүн башка компоненттер менен биригет.
ESP-IDF операциялык система, перифериялык драйверлер жана тармактык протоколдор стек сыяктуу маанилүү функцияларды компоненттер түрүндө камсыз кылат. Бул компоненттер ESP-IDF түпкү каталогунда жайгашкан компоненттер каталогунда сакталат. Иштеп чыгуучуларга бул компоненттерди myProject компоненттеринин каталогуна көчүрүүнүн кереги жок. Анын ордуна, алар долбоордун CMakeLists.txt файлында бул компоненттердин көз карандылык мамилелерин гана көрсөтүшү керек. file REQUIRES же PRIV_REQUIRES директивалары менен. Компиляция системасы керектүү компоненттерди автоматтык түрдө таап, компиляциялайт.
Ошондуктан, myProject астындагы компоненттер каталогу зарыл эмес. Ал үчүнчү тараптын китепканалары же колдонуучу аныктаган код болушу мүмкүн болгон долбоордун айрым ыңгайлаштырылган компоненттерин кошуу үчүн гана колдонулат. Кошумчалай кетсек, компоненттер ESP-IDFден башка каалаган каталогдон же учурдагы долбоордон, мисалы, башка каталогдо сакталган ачык булактуу долбоордон алынышы мүмкүн. Бул учурда, сиз EXTRA_COMPONENT_DIRS өзгөрмөсүн түпкү каталогдун астындагы CMakeLists.txt ичинде орнотуу менен гана компоненттин жолун кошууңуз керек. Бул каталог ошол эле аталыштагы бардык ESP-IDF компонентин жокко чыгарып, туура компоненттин колдонулушун камсыздайт.
Кирүү программасы негизги Долбоордун ичиндеги негизги каталог дал ушундай file структурасы башка компоненттер сыяктуу (мисалы, компонент1). Бирок, бул өзгөчө мааниге ээ, анткени ал ар бир долбоордо болушу керек болгон милдеттүү компонент. Негизги каталогдо долбоордун баштапкы кодун жана адатта app_main деп аталган колдонуучу программасынын кирүү чекити камтылган. Демейки боюнча, колдонуучу программасынын аткарылышы ушул кирүү чекитинен башталат. Негизги компонент издөө жолундагы бардык компоненттерден автоматтык түрдө көз каранды экендиги менен да айырмаланат. Ошондуктан, CMakeLists.txt ичиндеги REQUIRES же PRIV_REQUIRES директивалары аркылуу көз карандылыкты ачык көрсөтүүнүн кереги жок. file.
Конфигурация file Долбоордун түпкү каталогу конфигурацияны камтыйт file sdkconfig деп аталат, ал долбоордун ичиндеги бардык компоненттердин конфигурациясынын параметрлерин камтыйт. sdkconfig file компиляция системасы тарабынан автоматтык түрдө түзүлөт жана idf.py menuconfig буйругу менен өзгөртүлүшү жана кайра түзүлүшү мүмкүн. Меню конфигурациясынын параметрлери негизинен долбоордун Kconfig.projbuild жана компоненттердин Kconfig түзмөгүнөн келип чыгат. Компонентти иштеп чыгуучулар көбүнчө компонентти ийкемдүү жана конфигурациялануучу кылуу үчүн Kconfigге конфигурация элементтерин кошушат.
Куруу каталогу Демейки боюнча, долбоордун ичиндеги куруу каталогу орто аралыкты сактайт fileс жана fi-
4-глава. Өнүктүрүү чөйрөсүн түзүү 49
idf.py куруу буйругу менен түзүлгөн аткарылуучу программалар. Жалпысынан алганда, куруу каталогунун мазмунуна түздөн-түз жетүү зарыл эмес. ESP-IDF каталог менен өз ара аракеттенүү үчүн алдын ала аныкталган буйруктарды берет, мисалы, компиляцияланган бинардык файлды автоматтык түрдө табуу үчүн idf.py флеш буйругун колдонуу file жана аны көрсөтүлгөн флеш дарекке жарк этиңиз же idf.py fullclean буйругун колдонуп, бүт куруу каталогун тазалаңыз.
Бөлүү таблицасы (partitions.csv) Ар бир долбоор флэш мейкиндигин бөлүү жана аткарылуучу программанын өлчөмүн жана баштапкы дарегин жана колдонуучунун маалымат мейкиндигин көрсөтүү үчүн бөлүү таблицасын талап кылат. Команда idf.py флеш же OTA жаңыртуу программасы микропрограмманы ушул таблицага ылайык тиешелүү дарекке жаркылдайт. ESP-IDF бир нече демейки бөлүм таблицаларын компоненттерде/ partition_table'да камсыз кылат, мисалы partitions_singleapp.csv жана partitions_two_ ota.csv, аларды меню конфигурациясында тандаса болот.
Эгерде системанын демейки бөлүү таблицасы долбоордун талаптарына жооп бере албаса, ыңгайлаштырылган partitions.csv долбоордун каталогуна кошулуп, menuconfigде тандалышы мүмкүн.
4.3.3 Компиляция системасынын демейки куруу эрежелери
Бир эле аталыштагы компоненттерди жокко чыгаруу эрежелери Компоненттерди издөө процессинде компиляция системасы белгилүү бир тартипти сактайт. Ал алгач ESP-IDFтин ички компоненттерин издейт, андан кийин колдонуучу долбоорунун компоненттерин издейт жана акырында EXTRA_COMPONENT_DIRS ичинде компоненттерди издейт. Бир нече каталогдор бирдей аталыштагы компоненттерди камтыган учурларда, акыркы каталогдо табылган компонент ошол эле аталыштагы бардык мурунку компоненттерди жокко чыгарат. Бул эреже ESP-IDF компоненттерин колдонуучу долбоорунда ыңгайлаштырууга мүмкүндүк берет, ошол эле учурда баштапкы ESP-IDF кодун бүтүн бойдон сактайт.
Демейки боюнча жалпы компоненттерди кошуу эрежелери 4.3.2 бөлүмүндө айтылгандай, компоненттер CMakeLists.txt файлындагы башка компоненттерден көз карандылыгын ачык көрсөтүүсү керек. Бирок, фриртос сыяктуу жалпы компоненттер, компиляция скриптинде алардын көз карандылык мамилелери ачык-айкын аныкталбаса да, демейки боюнча куруу тутумуна автоматтык түрдө киргизилет. ESP-IDF жалпы компоненттерине freertos, Newlib, үймөк, log, soc, esp_rom, esp_common, xtensa/riscv жана cxx кирет. Бул жалпы компоненттерди колдонуу CMakeLists.txt жазууда кайталануучу иштен качат жана аны кыскараак кылат.
Конфигурация элементтерин жокко чыгаруу эрежелери Иштеп чыгуучулар демейки конфигурацияны кошуу менен демейки конфигурация параметрлерин кошо алышат file долбоорго sdkconfig.defaults деп аталган. Мисалы үчүнample, CONFIG_LOG_ кошуу
50 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
DEFAULT_LEVEL_NONE = y демейки боюнча журнал маалыматтарын басып чыгарбоо үчүн UART интерфейсин конфигурациялай алат. Андан тышкары, белгилүү бир максат үчүн конкреттүү параметрлерди коюу керек болсо, конфигурация file sdkconfig.defaults.TARGET_NAME дегенди кошууга болот, мында TARGET_NAME esp32s2, esp32c3 жана башкалар болушу мүмкүн. Бул конфигурация files жалпы демейки конфигурация менен компиляция учурунда sdkconfigге импорттолот file sdkconfig.defaults алгач импорттолот, андан кийин максаттуу конфигурация file, мисалы, sdkconfig.defaults.esp32c3. Ошол эле аталыштагы конфигурация элементтери бар учурларда, акыркы конфигурация file мурункуну жокко чыгарат.
4.3.4 Компиляция сценарийине киришүү
ESP-IDF аркылуу долбоорду иштеп чыгууда, иштеп чыгуучулар баштапкы кодду гана эмес, долбоор жана компоненттер үчүн CMakeLists.txt жазуусу керек. CMakeLists.txt бул текст file, компиляция скрипти катары да белгилүү, ал компиляция объекттеринин сериясын, компиляция конфигурациясынын элементтерин жана баштапкы коддун компиляция процессин жетектөө үчүн буйруктарды аныктайт. ESP-IDF v4.3.2 компиляция системасы CMakeге негизделген. Түпкү CMake функцияларын жана буйруктарын колдоодон тышкары, ал компиляция скрипттерин жазууну бир топ жеңилдетип, бир катар жеке функцияларды аныктайт.
ESP-IDF компиляция скрипттери негизинен долбоордун компиляция скрипттерин жана компиляциянын компоненттерин камтыйт. Долбоордун түпкү каталогундагы CMakeLists.txt бүткүл долбоордун компиляция процессине жетекчилик кылган долбоордун компиляция скрипти деп аталат. Негизги долбоордун компиляция скрипти адатта төмөнкү үч сапты камтыйт:
1. cmake_minimum_required(VERSION 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. project(myProject)
Алардын ичинен cmake_minimum_required (VERSION 3.5) биринчи сапка жайгаштырылышы керек, ал долбоор талап кылган минималдуу CMake версиясынын номерин көрсөтүү үчүн колдонулат. CMakeдин жаңы версиялары жалпысынан эски версиялар менен артка шайкеш келет, ошондуктан шайкештикти камсыз кылуу үчүн жаңы CMake буйруктарын колдонууда версия номерин ошого жараша тууралаңыз.
include($ENV {IDF_PATH}/tools/cmake/project.cmake) ESP-IDF компиляция системасынын алдын ала аныкталган конфигурация элементтерин жана буйруктарын, анын ичинде 4.3.3 бөлүмүндө сүрөттөлгөн компиляция системасынын демейки куруу эрежелерин импорттойт. project(myProject) долбоордун өзүн жаратат жана анын атын көрсөтөт. Бул ат акыркы чыгаруу бинардык катары колдонулат file аты, б.а., myProject.elf жана myProject.bin.
Долбоор бир нече компоненттерди, анын ичинде негизги компонентти камтышы мүмкүн. Ар бир компоненттин жогорку деңгээлдеги каталогунда CMakeLists.txt бар file, ал компонентти компиляция скрипти деп аталат. Компоненттик компиляция скрипттери негизинен компоненттик көз карандылыктарды, конфигурация параметрлерин, баштапкы кодду көрсөтүү үчүн колдонулат fileс, жана камтылган баш fileс үчүн
4-глава. Өнүктүрүү чөйрөсүн түзүү 51
компиляция. ESP-IDF'дин idf_component_register ыңгайлаштырылган функциясы менен, компонентти компиляция скрипти үчүн минималдуу талап кылынган код төмөнкүдөй:
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "камтытуу"
3.
1 компонентти ТАЛАП КЫЛАТ
SRCS параметри булактын тизмесин берет fileЭгерде бир нече болсо, боштуктар менен бөлүнгөн компонентте с fileс. INCLUDE_DIRS параметри жалпы аталыштын тизмесин берет file Учурдагы компонентке көз каранды болгон башка компоненттерди издөө жолуна кошула турган компонент үчүн каталогдор. REQUIRES параметри учурдагы компонент үчүн коомдук компоненттин көз карандылыгын аныктайт. Компоненттер кайсы компоненттерден көз каранды экенин ачык айтышы керек, мисалы компонент2ге жараша компонент1. Бирок, демейки боюнча бардык компоненттерден көз каранды болгон негизги компонент үчүн REQUIRES параметрин өткөрүп жиберүүгө болот.
Мындан тышкары, жергиликтүү CMake буйруктарын компиляция скриптинде колдонсо болот. Мисалы үчүнample, топтом (VARIABLE “VALUE”) сыяктуу өзгөрмөлөрдү коюу үчүн буйрук топтомун колдонуңуз.
4.3.5 Жалпы буйруктарга киришүү
ESP-IDF кодду түзүү процессинде CMake (долбоор конфигурациялоо куралы), Ninja (долбоор куруу куралы) жана esptool (флеш куралы) колдонот. Ар бир курал компиляцияда, курууда жана флеш процессинде башка ролду ойнойт, ошондой эле ар кандай операциялык буйруктарды колдойт. Колдонуучунун иштешин жеңилдетүү үчүн, ESP-IDF бирдиктүү алдыңкы idf.py кошот, ал жогорудагы буйруктарды тез чакырууга мүмкүндүк берет.
idf.py колдонуудан мурун, төмөнкүлөрдү текшериңиз:
· ESP-IDFтин IDF_PATH чөйрө өзгөрмөсү учурдагы терминалга кошулду. · Буйруктарды аткаруу каталогу долбоордун түпкү каталогу болуп саналат, ал өзүнө камтыйт
долбоордун компиляция скрипти CMakeLists.txt.
idf.py жалпы буйруктары төмөнкүдөй:
· idf.py –help: буйруктардын тизмесин жана аларды колдонуу нускамаларын көрсөтүү. · idf.py коюлган максат : компиляцияны орнотуу taidf.py fullcleanrget, мисалы
алмаштыруу катары esp32c3 менен. · idf.py menuconfig: ишке киргизүү menuconfig, терминалдык графикалык конфигурация
конфигурация параметрлерин тандап же өзгөртө ала турган курал жана конфигурациянын натыйжалары sdkconfig ичинде сакталат file. · idf.py куруу: кодду түзүүнү баштоо. орто files жана компиляция тарабынан түзүлгөн акыркы аткарылуучу программа демейки боюнча долбоордун куруу каталогунда сакталат. Компиляция процесси кошумча болуп саналат, бул бир гана булак болсо дегенди билдирет file өзгөртүлгөн, өзгөртүлгөн гана file кийинки жолу түзүлөт.
52 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
· idf.py таза: арадагыны тазалоо fileлар долбоордун компиляциясы тарабынан түзүлгөн. Бүтүндөй долбоор кийинки компиляцияда түзүүгө аргасыз болот. CMake конфигурациясы жана menuconfig тарабынан жасалган конфигурациянын өзгөртүүлөрү тазалоо учурунда жок кылынбасын эске алыңыз.
· idf.py fullclean: бүт куруу каталогун, анын ичинде бардык CMake конфигурациясынын чыгышын жок кылуу fileс. Долбоорду кайра курууда CMake долбоорду нөлдөн баштап конфигурациялайт. Бул буйрук бардыгын рекурсивдүү түрдө жок кыларын эске алыңыз files куруу каталогунда, ошондуктан аны этияттык менен колдонуңуз жана долбоордун конфигурациясын file жок кылынбайт.
· idf.py жарк: экилик аткарылуучу программаны жаркыратуу file максаттуу ESP32-C3 үчүн куруу менен түзүлгөн. Варианттар -б жана -б сериялык порттун аппараттын атын жана жаркыраган берүү ылдамдыгын орнотуу үчүн колдонулат. Бул эки параметр көрсөтүлбөсө, сериялык порт автоматтык түрдө аныкталат жана демейки берүү ылдамдыгы колдонулат.
· idf.py монитору: максаттуу ESP32-C3 сериялык портунун чыгышын көрсөтүү. -p параметрин хост тараптагы сериялык порттун аппараттын атын көрсөтүү үчүн колдонсо болот. Сериялык порт басып чыгаруу учурунда, монитордон чыгуу үчүн Ctrl+] баскыч айкалышын басыңыз.
Жогорудагы буйруктарды керек болсо бириктирсе болот. Мисалы үчүнample, команда idf.py куруу флэш монитор код түзүү, жаркылдап аткарат жана ырааттуу түрдө сериялык порт мониторду ачат.
ESP-IDF компиляция системасы жөнүндө көбүрөөк билүү үчүн https://bookc3.espressif.com/build-system кирсеңиз болот.
4.4 Практика: Compiling Examp"Blink" программасы
4.4.1 Чыгample Analysis
Бул бөлүм Blink программасын мурунку катары кабыл алатampталдоо үчүн file түзүлүшү жана майда-чүйдөсүнө чейин реалдуу долбоордун коддоо эрежелери. Blink программасы светодиоддун жарк этүүчү эффектин ишке ашырат жана долбоор экс каталогунда жайгашканamples/get-started/blink, анда булагы бар file, конфигурация fileс, жана бир нече компиляция скрипттери.
Бул китепте киргизилген акылдуу жарык долбоору ушул экска негизделгенample программасы. Функциялар акырындык менен аны аягына чыгаруу үчүн кийинки бөлүмдөрдө кошулат.
Булак коду Бүткүл иштеп чыгуу процессин көрсөтүү үчүн, Blink программасы esp32c3-iot-projects/түзмөктүн микропрограммасы/1 бlink көчүрүлгөн.
Blink долбоорунун каталог түзүмү files 4.15-сүрөттө көрсөтүлгөн.
Blink долбоору бир гана негизги каталогду камтыйт, ал атайын компонент болуп саналат
4-глава. Өнүктүрүү чөйрөсүн түзүү 53
4.15-сүрөт. File blink долбоорунун каталог түзүмү
4.3.2 бөлүмүндө сүрөттөлгөндөй киргизилиши керек. Негизги каталог негизинен app_main() функциясын ишке ашырууну сактоо үчүн колдонулат, ал колдонуучунун программасына кирүү чекити болуп саналат. Blink долбоору компоненттер каталогун камтыбайт, анткени бул эксample гана ESP-IDF менен келген компоненттерди колдонуу керек жана кошумча компоненттерди талап кылбайт. Blink долбооруна киргизилген CMakeLists.txt компиляция процессин жетектөө үчүн колдонулат, ал эми Kconfig.projbuild бул мурунку конфигурация элементтерин кошуу үчүн колдонулат.ampменю конфигурациясындагы программа. Башка керексиз fileлар коддун түзүлүшүнө таасирин тийгизбейт, ошондуктан алар бул жерде талкууланбайт. Blink долбоору менен толук тааныштыруу files төмөнкүдөй.
1. /*blink.c төмөнкү аталышты камтыйт files*/
2. #киргизүү
//Стандартты C китепканасынын аталышы file
3. #include “freertos/freeRTOS.h” //FreeRTOS негизги аталышы file
4. #include "freertos/task.h"
//FreeRTOS тапшырмасынын аталышы file
5. #include “sdkconfig.h”
//Конфигурациянын аталышы file kconfig тарабынан түзүлгөн
6. #include "driver/gpio.h"
//GPIO драйверинин аталышы file
Булак file blink.c бир катар аталыштарды камтыйт files ылайыктуу функция декларация-
циялар. ESP-IDF көбүнчө стандарттуу китепкана башын кошуу тартибин сактайт files, FreeR-
TOS аталышы fileс, айдоочунун аталышы files, башка компоненттин аталышы files жана долбоордун аталышы files.
Баш жазуунун тартиби files камтылган акыркы компиляциянын натыйжасына таасир этиши мүмкүн, андыктан аракет кылыңыз
демейки эрежелерди аткарыңыз. Белгилей кетсек, sdkconfig.h автоматтык түрдө түзүлөт
kconfig менен жана idf.py menuconfig буйругу аркылуу гана конфигурациялоого болот.
Бул аталыштын түз өзгөртүүсү file үстүнөн жазылат.
1. /*Сиз idf.py menuconfig ичиндеги LEDге туура келген GPIOну тандай аласыз жана menuconfig өзгөртүү натыйжасы CONFIG_BLINK мааниси болуп саналат.
_GPIO өзгөртүлөт. Сиз ошондой эле макро аныктаманы түз өзгөртө аласыз
бул жерде жана CONFIG_BLINK_GPIOну белгиленген мааниге өзгөртүңүз.*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO
3. void app_main(жараксыз)
4. {
5.
/*IOну GPIO демейки функциясы катары конфигурациялаңыз, тартылуу режимин иштетиңиз жана
6.
киргизүү жана чыгаруу режимдерин өчүрүү*/
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 Wireless Adventure: IoT боюнча комплекстүү колдонмо
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*GPIOну чыгаруу режимине коюу*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while(1) {
/*Print log*/ printf(“LEDn өчүрүү”); /*Светодиодду өчүрүү (чыгаруу төмөнкү деңгээл)*/ gpio_set_level(BLINK_GPIO, 0); /*Кечигүү (1000 мс)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("LEDn күйгүзүү"); /*Светодиодду күйгүзүү (чыгаруунун жогорку деңгээли)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Blink'деги app_main() функциясы эксample программасы колдонуучу программалары үчүн кирүү чекити катары кызмат кылат. Бул эч кандай параметрлери жана кайтаруу мааниси жок жөнөкөй функция. Бул функция система инициализациялоону аяктагандан кийин чакырылат, ал журналдын сериялык портун инициализациялоо, бир/кош өзөктү конфигурациялоо жана күзөтчүнү конфигурациялоо сыяктуу тапшырмаларды камтыйт.
app_main() функциясы негизги деп аталган тапшырманын контекстинде иштейт. Бул тапшырманын стектин өлчөмү жана приоритети менюконфигурациясы Componentconfig Common ESP менен байланыштуу жөндөлсө болот.
Жарык диодду өчүрүү сыяктуу жөнөкөй тапшырмалар үчүн бардык керектүү кодду түздөн-түз app_main() функциясында ишке ашырууга болот. Бул, адатта, LED'ге туура келген GPIOну инициализациялоону жана LEDди күйгүзүү жана өчүрүү үчүн while(1) циклин колдонууну камтыйт. Же болбосо, сиз FreeRTOS API'ни колдонсоңуз болот, ал эми LED өчүп турган жаңы тапшырманы түзө аласыз. Жаңы тапшырма ийгиликтүү түзүлгөндөн кийин, app_main() функциясынан чыга аласыз.
main/CMakeLists.txt мазмуну file, негизги компонент үчүн компиляция процессин жетектейт, төмөнкүдөй:
1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )
Алардын ичинен main/CMakeLists.txt бир компиляция тутумунун функциясын гана чакырат, башкача айтканда idf_component_register. Көпчүлүк башка компоненттер үчүн CMakeLists.txt сыяктуу, blink.c SRCSге кошулат жана булак fileSRCS кошулган с түзүлөт. Ошол эле учурда, CMakeLists.txt жайгашкан жолду билдирген “.”, INCLUDE_DIRSке баштын издөө каталогу катары кошулушу керек. fileс. CMakeLists.txt мазмуну төмөнкүдөй:
1. #V3.5ти учурдагы долбоор тарабынан колдоого алынган эң эски CMake версиясы катары белгилеңиз 2. #V3.5тен төмөн версиялар компиляцияны улантуудан мурун жаңыртылууга тийиш 3. cmake_minimum_required(VERSION 3.5) 4. #ESPдин демейки CMake конфигурациясын кошуңуз -IDF компиляция системасы
4-глава. Өнүктүрүү чөйрөсүн түзүү 55
5. камтыйт($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #“Blink” аттуу долбоорду түзүңүз 7. project(myProject)
Алардын арасында, түпкү каталогдогу CMakeLists.txt негизинен $ENV{IDF_ PATH}/tools/cmake/project.cmake камтыйт, бул негизги CMake конфигурациясы. file ESP-IDF тарабынан берилген. Ал үчүн колдонулат
Документтер / Ресурстар
![]() |
Espressif Systems ESP32-C3 Wireless Adventure [pdf] Колдонуучунун колдонмосу ESP32-C3 Wireless Adventure, ESP32-C3, Wireless Adventure, Adventure |