ESP32-C3 утасгүй адал явдал
ESP32-C3 утасгүй адал явдал
IoT-ийн иж бүрэн гарын авлага
Espressif Systems 12 оны 2023-р сарын XNUMX
Үзүүлэлтүүд
- Бүтээгдэхүүн: ESP32-C3 Wireless Adventure
- Үйлдвэрлэгч: Espressif Systems
- Огноо: 12 оны 2023-р сарын XNUMX
Бүтээгдэхүүнийг ашиглах заавар
Бэлтгэл
ESP32-C3 Wireless Adventure-г ашиглахаасаа өмнө байгаа эсэхийг шалгаарай
IoT-ийн үзэл баримтлал, архитектурыг мэддэг. Энэ нь туслах болно
Та төхөөрөмж нь илүү том IoT экосистемд хэрхэн нийцэж байгааг ойлгож байна
ухаалаг гэрт ашиглах боломжит хэрэглээ.
IoT төслүүдийн танилцуулга ба дадлага
Энэ хэсэгт та ердийн IoT төслүүдийн талаар суралцах болно.
нийтлэг IoT төхөөрөмжүүдийн үндсэн модулиуд, үндсэн модулиуд
үйлчлүүлэгчийн програмууд болон нийтлэг IoT үүл платформууд. Энэ болно
ойлгох, бий болгох суурийг танд олгоно
IoT төслүүдийг эзэмшдэг.
Дадлага: Ухаалаг гэрлийн төсөл
Энэхүү дадлагын төсөлд та ухаалаг хэрхэн бүтээх талаар суралцах болно
ESP32-C3 Wireless Adventure ашиглан гэрэл. Төслийн бүтэц,
чиг үүрэг, техник хангамж бэлтгэх, боловсруулах үйл явц байх болно
дэлгэрэнгүй тайлбарлав.
Төслийн бүтэц
Төсөл нь хэд хэдэн бүрэлдэхүүн хэсгээс бүрдэх бөгөөд үүнд
ESP32-C3 Утасгүй адал явдал, LED, мэдрэгч, үүл
backend.
Төслийн функцууд
Ухаалаг гэрлийн төсөл нь гэрэлтүүлгийг хянах боломжийг олгодог
LED-ийн өнгө нь гар утасны програмаар дамжуулан алсаас эсвэл web
интерфейс.
Техник хангамжийн бэлтгэл
Төсөлд бэлтгэхийн тулд та цуглуулах хэрэгтэй болно
шаардлагатай тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд, тухайлбал ESP32-C3 Wireless
Адал явдалт самбар, LED, резистор, цахилгаан хангамж.
Хөгжлийн үйл явц
Хөгжлийн үйл явц нь хөгжлийг бий болгох явдал юм
орчин, LED-үүдийг удирдах код бичих, холбогдох
cloud backend болон ухаалаг төхөөрөмжийн ажиллагааг шалгах
гэрэл.
ESP RainMaker-ийн танилцуулга
ESP RainMaker нь IoT хөгжүүлэх хүчирхэг хүрээ юм
төхөөрөмжүүд. Энэ хэсгээс та ESP RainMaker гэж юу болохыг мэдэх болно
үүнийг танай төслүүдэд хэрхэн хэрэгжүүлж болох талаар.
ESP RainMaker гэж юу вэ?
ESP RainMaker нь үүлэнд суурилсан платформ бөгөөд багцыг хангадаг
IoT төхөөрөмжүүдийг бүтээх, удирдахад зориулсан хэрэгсэл, үйлчилгээ.
ESP RainMaker-ийн хэрэгжилт
Энэ хэсэгт янз бүрийн бүрэлдэхүүн хэсгүүдийг тайлбарласан болно
ESP RainMaker-ийг хэрэгжүүлэх, үүнд нэхэмжлэл гаргах үйлчилгээ,
RainMaker Agent, үүлэн арын хэсэг, RainMaker Client.
Дадлага: ESP RainMaker ашиглан хөгжүүлэх гол цэгүүд
Энэ дадлагын хэсэгт та гол санааг олж мэдэх болно
ESP RainMaker-тай ажиллахдаа анхаарч үзээрэй. Үүнд төхөөрөмж орно
нэхэмжлэх, өгөгдөл синхрончлох, хэрэглэгчийн удирдлага.
ESP RainMaker-ийн онцлог
ESP RainMaker нь хэрэглэгчийн менежментийн төрөл бүрийн функцуудыг санал болгодог
хэрэглэгчид, администраторууд. Эдгээр функцууд нь төхөөрөмжийг хялбархан ашиглах боломжийг олгодог
тохиргоо, алсын удирдлага, хяналт.
Хөгжлийн орчинг бүрдүүлэх
Энэ хэсэг нь хэтрүүлэн өгдөгview ESP-IDF (Espressif IoT
Хөгжлийн хүрээ) нь албан ёсны хөгжлийн хүрээ юм
ESP32 дээр суурилсан төхөөрөмжүүдэд зориулагдсан. Энэ нь янз бүрийн хувилбаруудыг тайлбарладаг
ESP-IDF болон хөгжүүлэлтийн орчныг хэрхэн тохируулах талаар.
Техник хангамж ба драйвер хөгжүүлэлт
ESP32-C3 дээр суурилсан ухаалаг гэрлийн бүтээгдэхүүний техник хангамжийн дизайн
Энэ хэсэг нь ухаалаг гэрлийн техник хангамжийн дизайнд анхаарлаа хандуулдаг
ESP32-C3 Wireless Adventure дээр суурилсан бүтээгдэхүүн. Энэ нь хамардаг
ухаалаг гэрлийн бүтээгдэхүүний онцлог, найрлага, түүнчлэн
ESP32-C3 үндсэн системийн техник хангамжийн дизайн.
Ухаалаг гэрлийн бүтээгдэхүүний онцлог, найрлага
Энэ дэд хэсэгт үүнийг бий болгох онцлог, бүрэлдэхүүн хэсгүүдийг тайлбарласан болно
ухаалаг гэрлийн бүтээгдэхүүн хүртэл. Энэ нь янз бүрийн функцуудыг авч үздэг
ухаалаг гэрлийг бий болгоход анхаарах зүйлс.
ESP32-C3 үндсэн системийн техник хангамжийн дизайн
ESP32-C3 үндсэн системийн техник хангамжийн дизайн нь хүчийг агуулдаг
хангамж, асаах дараалал, системийг дахин тохируулах, SPI флэш, цагны эх үүсвэр,
болон RF болон антенны талаар анхаарах зүйлс. Энэ дэд хэсэгт заасан
эдгээр талуудын талаар дэлгэрэнгүй мэдээлэл.
Түгээмэл асуултууд
А: ESP RainMaker гэж юу вэ?
Х: ESP RainMaker нь үүлэн дээр суурилсан платформ бөгөөд багаж хэрэгслээр хангадаг
IoT төхөөрөмжүүдийг бүтээх, удирдах үйлчилгээ. Энэ нь хялбаршуулдаг
хөгжүүлэлтийн процесс бөгөөд төхөөрөмжийг хялбархан тохируулах боломжийг олгодог, алсаас
хяналт, хяналт.
Асуулт: Би хөгжлийн орчныг хэрхэн тохируулах вэ?
ESP32-C3?
Х: ESP32-C3-ийн хөгжүүлэлтийн орчинг тохируулахын тулд танд хэрэгтэй
ESP-IDF (Espressif IoT Development Framework) суулгах ба
өгсөн зааврын дагуу тохируулна уу. ESP-IDF нь
ESP32-д суурилсан төхөөрөмжүүдийн албан ёсны хөгжүүлэлтийн хүрээ.
А: ESP RainMaker-ийн онцлог юу вэ?
Х: ESP RainMaker нь хэрэглэгчийг оролцуулаад янз бүрийн функцуудыг санал болгодог
удирдлага, эцсийн хэрэглэгчийн онцлог, админ функцууд. Хэрэглэгчийн удирдлага
төхөөрөмжид хялбар нэхэмжлэл гаргах, өгөгдлийг синхрончлох боломжийг олгодог. Эцсийн хэрэглэгч
функцууд нь гар утасны програмаар дамжуулан төхөөрөмжүүдийг алсаас удирдах боломжийг олгодог
web интерфейс. Админ функцууд нь төхөөрөмжийг хянах хэрэгслүүдээр хангадаг
болон менежмент.
ESP32-C3 утасгүй адал явдал
IoT-ийн иж бүрэн гарын авлага
Espressif Systems 12 оны 2023-р сарын XNUMX
Агуулга
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 Дадлага: Ухаалаг гэрэл төсөл . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 ажлын урсгал . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Тохиромжтой хувилбарыг сонгох . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Илүүview ESP-IDF SDK лавлах . . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF Хөгжлийн орчныг тохируулах . . . . . . . . . . . . . . . . . 38 4.2.1 Линукс дээр ESP-IDF хөгжүүлэлтийн орчинг тохируулах . . . . . . . . 38 4.2.2 Windows дээр ESP-IDF хөгжүүлэлтийн орчинг тохируулах . . . . . . 40 4.2.3 Mac дээр ESP-IDF хөгжүүлэлтийн орчинг тохируулах . . . . . . . . . 45 4.2.4 VS кодыг суулгах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Гуравдагч этгээдийн хөгжлийн орчны талаарх танилцуулга . . . . . . . . 46 4.3 ESP-IDF эмхэтгэлийн систем . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 Эмхэтгэлийн системийн үндсэн ойлголтууд . . . . . . . . . . . . . . . . . . 47 4.3.2 Төсөл File Бүтэц. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 Эмхэтгэлийн системийн үндсэн дүрмүүд . . . . . . . . . . . . . 50 4.3.4 Эмхэтгэлийн скриптийн танилцуулга . . . . . . . . . . . . . . . . . . 51 4.3.5 Нийтлэг командуудын танилцуулга . . . . . . . . . . . . . . . . . . . 52 4.4 Дадлага: Эмхэтгэх Examp"Анивчих" програм. . . . . . . . . . . . . . . . . . 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 дээр суурилсан ухаалаг гэрлийн бүтээгдэхүүний техник хангамжийн дизайн
67
5.1 Ухаалаг гэрлийн бүтээгдэхүүний онцлог, найрлага . . . . . . . . . . . . . . . 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 бүхий ухаалаг гэрлийн системийг бүтээх. . . . . . . . . . . . . 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 Dimming Driver Development . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 Дэгдэмхий бус хадгалалт (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 LED PWM хянагч (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 LED PWM програмчлал . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Дадлага: Ухаалаг гэрлийн төсөлд жолооч нэмэх . . . . . . . . . . . . . . . . . 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 Дасгал: Ухаалаг Wi-Fi холболт . . . . . . . . . . . . . . . . . . . . . 145
7.5 Дадлага: Ухаалаг гэрлийн төсөл дэх Wi-Fi тохиргоо. . . . . . . . . . . . . . . 156 7.5.1 Ухаалаг гэрэл төслийн Wi-Fi холболт . . . . . . . . . . . . . . . . . 156 7.5.2 Ухаалаг Wi-Fi тохиргоо . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 Дүгнэлт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 Орон нутгийн хяналт
159
8.1 Орон нутгийн удирдлагын танилцуулга . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 Орон нутгийн хяналтын хэрэглээ . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 АдванtagОрон нутгийн хяналтын es. . . . . . . . . . . . . . . . . . . . . . . . 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 Дадлага: Ухаалаг гэрлийн төсөл дэх орон нутгийн удирдлага. . . . . . . . . . . . . . . . . . 217
8.5.1 Wi-Fi-д суурилсан дотоод хяналтын серверийг бий болгох. . . . . . . . . . . . . . . 217
8.5.2 Скрипт ашиглан локал хяналтын функцийг шалгах. . . . . . . . . . . 221
8.5.3 Bluetooth-д суурилсан локал хяналтын сервер үүсгэх . . . . . . . . . . . . 222
8.6 Дүгнэлт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 Үүлэн хяналт
225
9.1 Алсын удирдлагатай танилцах . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 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 Broker-ийг тохируулах . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 MQTT Client-ийг тохируулах . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 Дадлага: ESP RainMaker-ээр дамжуулан алсын удирдлага. . . . . . . . . . . . . . . . 243 9.4.1 ESP RainMaker-ийн үндсэн . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 Зангилаа ба үүлэн арын холбооны протокол . . . . . . . . . . . 244 9.4.3 Клиент болон Cloud Backend хоорондын харилцаа . . . . . . . . . . . 249 9.4.4 Хэрэглэгчийн үүрэг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 Үндсэн үйлчилгээ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Ухаалаг гэрэл Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 RainMaker програм болон гуравдагч этгээдийн интеграцчлал . . . . . . . . . . . . . . . 262 9.5 Дүгнэлт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 ухаалаг гар утасны програм хөгжүүлэлт
269
10.1 Ухаалаг гар утасны програм хөгжүүлэлтийн танилцуулга . . . . . . . . . . . . . . . . . . 269
10.1.1 гаруйview Ухаалаг гар утасны програм хөгжүүлэлтийн . . . . . . . . . . . . . . . 270
10.1.2 Android төслийн бүтэц . . . . . . . . . . . . . . . . . . . . . . 270
10.1.3. iOS төслийн бүтэц . . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 Андройдын үйл ажиллагааны амьдралын мөчлөг . . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 iOS-ийн амьдралын мөчлөг ViewХянагч. . . . . . . . . . . . . . . . . . . . . . 273
10.2 Ухаалаг утасны шинэ программ төсөл бий болгох . . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Android хөгжүүлэлтэд бэлтгэх . . . . . . . . . . . . . . . . . . . 275
10.2.2 Шинэ Android төсөл үүсгэх . . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 MyRainmaker-д хамаарал нэмэх . . . . . . . . . . . . . . . . . 276
10.2.4 Android дээрх зөвшөөрлийн хүсэлт . . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 iOS хөгжүүлэлтэд бэлтгэх . . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 Шинэ iOS төсөл үүсгэх . . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 MyRainmaker-д хамаарал нэмэх . . . . . . . . . . . . . . . . . 279
10.2.8 iOS дээрх зөвшөөрлийн хүсэлт . . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 Аппликейшний функциональ шаардлагын дүн шинжилгээ . . . . . . . . . . . . . . . . . . 281
10.3.1 Төслийн үйл ажиллагааны шаардлагын дүн шинжилгээ . . . . . . . . . . . . 282
10.3.2 Хэрэглэгчийн удирдлагын шаардлагын шинжилгээ . . . . . . . . . . . . . . . 282 10.3.3 Төхөөрөмжийн бэлтгэл ба холбох шаардлагын дүн шинжилгээ . . . . . . . 283 10.3.4 Алсын удирдлагад тавигдах шаардлагуудын шинжилгээ . . . . . . . . . . . . . . . . 283 10.3.5 Төлөвлөлтийн шаардлагын шинжилгээ . . . . . . . . . . . . . . . . . . . 284 10.3.6 Хэрэглэгчийн төвийн шаардлагын дүн шинжилгээ . . . . . . . . . . . . . . . . . . 285 10.4 Хэрэглэгчийн менежментийг хөгжүүлэх . . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker API-ийн танилцуулга . . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 Ухаалаг утсаар дамжуулан харилцаа холбоог эхлүүлэх . . . . . . . . . . . . . . . . 286 10.4.3 Дансны бүртгэл . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 Дансны нэвтрэх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 Төхөөрөмжийн хангамжийг боловсруулах . . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 Сканнердах төхөөрөмжүүд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 Төхөөрөмжүүдийг холбох . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 Нууц түлхүүрүүдийг үүсгэх . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 Зангилааны ID авах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 Зохицуулах төхөөрөмж . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 Төхөөрөмжийн удирдлагын хөгжил . . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 Төхөөрөмжүүдийг үүлэн бүртгэлд холбох . . . . . . . . . . . . . . . . . . . . 303 10.6.2 Төхөөрөмжийн жагсаалтыг авах . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 Төхөөрөмжийн статусыг авах . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 Төхөөрөмжийн төлөвийг өөрчлөх . . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 Хуваарь болон хэрэглэгчийн төвийг боловсруулах . . . . . . . . . . . . . . . . . . . 313 10.7.1 Хуваарийн функцийг хэрэгжүүлэх . . . . . . . . . . . . . . . . . . . . 313 10.7.2 Хэрэглэгчийн төвийг хэрэгжүүлэх . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 Бусад Cloud API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 Дүгнэлт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 Програм хангамжийн шинэчлэл ба хувилбарын менежмент
321
11.1 Програм хангамжийн шинэчлэл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 гаруйview хуваалтын хүснэгтүүдийн . . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 Програм хангамжийн ачаалах процесс . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 гаруйview OTA механизмын . . . . . . . . . . . . . . . . . . . . . 326
11.2 Програм хангамжийн хувилбарын менежмент . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 Програм хангамжийн тэмдэглэгээ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 Буцах болон буцах эсрэг . . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 Дадлага: Агаарт (OTA) Example . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 Орон нутгийн хостоор дамжуулан програм хангамжийг шинэчлэх. . . . . . . . . . . . . . . . . 332
11.3.2 ESP RainMaker-р программ хангамжийг шинэчлэх. . . . . . . . . . . . . . . 335
11.4 Дүгнэлт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV Оновчлол ба масс үйлдвэрлэл
343
12 Эрчим хүчний менежмент ба бага эрчим хүчийг оновчтой болгох
345
12.1 ESP32-C3 Эрчим хүчний удирдлага . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 Динамик давтамжийн масштаб . . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 Эрчим хүчний удирдлагын тохиргоо . . . . . . . . . . . . . . . . . . . . 348
12.2 ESP32-C3 бага эрчим хүчний горим . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 Модем-унтах горим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 Хөнгөн унтах горим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 Гүн нойрны горим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 Төрөл бүрийн тэжээлийн горим дахь одоогийн хэрэглээ . . . . . . . . . . . . . 358
12.3 Эрчим хүчний удирдлага ба бага чадлын дибаг хийх . . . . . . . . . . . . . . . . . 359
12.3.1 Бүртгэлийн дибаг хийх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 GPIO дибаг хийх. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 Дадлага: Ухаалаг гэрлийн төслийн эрчим хүчний менежмент . . . . . . . . . . . . . . . 363
12.4.1 Эрчим хүчний удирдлагын функцийг тохируулах . . . . . . . . . . . . . . . . . 364
12.4.2 Эрчим хүчний удирдлагын түгжээг ашиглах . . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 Эрчим хүчний зарцуулалтыг шалгах . . . . . . . . . . . . . . . . . . . . . . . 366
12.5 Дүгнэлт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 Төхөөрөмжийн аюулгүй байдлын сайжруулсан функцууд
369
13.1 гаруйview IoT төхөөрөмжийн мэдээллийн аюулгүй байдлын . . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 Яагаад IoT төхөөрөмжийн өгөгдлийг хамгаалах ёстой вэ? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 IoT төхөөрөмжийн мэдээллийн аюулгүй байдалд тавигдах үндсэн шаардлага . . . . . . . . . . . . 371
13.2 Өгөгдлийн бүрэн бүтэн байдлыг хамгаалах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 Шударга байдлыг шалгах аргын танилцуулга . . . . . . . . . . . . . . 372
13.2.2 Програм хангамжийн мэдээллийн бүрэн бүтэн байдлыг шалгах . . . . . . . . . . . . . . . . . . 373
13.2.3 Жишээ нь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 гаруйview Аюулгүй ачаалах схемийн . . . . . . . . . . . . . . . . . . . . . 388
13.4.3 Програм хангамжийн аюулгүй ачаалах тухай танилцуулга . . . . . . . . . . . . . . . . . . . 388 13.4.4 Техник хангамжийн аюулгүй ачаалах тухай танилцуулга . . . . . . . . . . . . . . . . . . 390 13.4.5 Жишээ ньamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 Дадлага: Масс үйлдвэрлэл дэх аюулгүй байдлын онцлогууд . . . . . . . . . . . . . . . . . . 396 13.5.1 Flash шифрлэлт ба аюулгүй ачаалах . . . . . . . . . . . . . . . . . . . . . 396 13.5.2 Багц Flash хэрэгслээр Flash шифрлэлт болон аюулгүй ачааллыг идэвхжүүлэх. . 397 13.5.3 Ухаалаг гэрлийн төсөлд Flash шифрлэлт болон аюулгүй ачааллыг идэвхжүүлэх. . . 398 13.6 Дүгнэлт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
14 Програм хангамжийг шатаах, бөөнөөр үйлдвэрлэх туршилт
399
14.1 Бөөн үйлдвэрлэлд програм хангамжийг шатаах . . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 Өгөгдлийн хуваалтыг тодорхойлох . . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 Програм хангамжийг шатаах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 Бөөн үйлдвэрлэлийн туршилт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Дадлага: Ухаалаг гэрлийн төсөл дэх масс үйлдвэрлэлийн өгөгдөл. . . . . . . . . . . . . 404
14.4 Дүгнэлт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ESP Insights: Зайнаас хянах платформ
405
15.1 ESP Insights-ийн танилцуулга . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 ESP Insights-ийг ашиглаж эхлэх. . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 esp-insights төсөл дэх ESP Insights-ийг ашиглаж эхлэх . . . . . . 409
15.2.2 Гүйх Example in the esp-inights Project . . . . . . . . . . . . . . . 411
15.2.3 Coredump мэдээллийг тайлагнах . . . . . . . . . . . . . . . . . . . . . 411
15.2.4 Сонирхлын бүртгэлийг өөрчлөх . . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 Дахин ачаалах шалтгааныг мэдээлэх . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 Захиалгат хэмжигдэхүүнийг тайлагнах . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 Дадлага: Smart Light төсөлд ESP Insights ашиглах . . . . . . . . . . . . . . . 416
15.4 Дүгнэлт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Танилцуулга
ESP32-C3 нь нээлттэй эхийн RISC-V архитектурт суурилсан нэг цөмт Wi-Fi болон Bluetooth 5 (LE) микроконтроллер SoC юм. Энэ нь эрчим хүч, оролт/гаралтын чадвар, аюулгүй байдлын зөв тэнцвэрийг хангадаг бөгөөд ингэснээр холбогдсон төхөөрөмжүүдэд оновчтой, хэмнэлттэй шийдлийг санал болгодог. ESP32-C3 гэр бүлийн төрөл бүрийн хэрэглээг харуулахын тулд Espressif-ийн энэхүү ном таныг IoT төсөл боловсруулах, орчны тохиргооноос эхлээд практик туршлага хүртэл AIoT-ээр сонирхолтой аялалд хүргэх болно.amples. Эхний дөрвөн бүлэгт IoT, ESP RainMaker болон ESP-IDF-ийн тухай өгүүлдэг. Бүлэг 5, 6-д техник хангамжийн дизайн, драйверын хөгжүүлэлтийн талаархи товч мэдээлэл. Та ахих тусам төслөө Wi-Fi сүлжээ болон гар утасны программуудаар хэрхэн тохируулах талаар олж мэдэх болно. Эцэст нь та төслөө оновчтой болгож, бөөнөөр нь үйлдвэрлэж сурах болно.
Хэрэв та холбогдох салбарын инженер, программ хангамжийн архитектор, багш, оюутан эсвэл IoT сонирхдог хэн нэгэн бол энэ ном танд зориулагдсан болно.
Та өмнөх кодыг татаж авах боломжтойample GitHub дээрх Espressif сайтаас энэ номонд ашигласан. IoT хөгжүүлэлтийн талаарх сүүлийн үеийн мэдээллийг авахыг хүсвэл манай албан ёсны бүртгэлийг дагана уу.
Өмнөх үг
Мэдээлэлжсэн ертөнц
Интернэтийн давалгааг давж, Internet of Things (IoT) нь дижитал эдийн засгийн дэд бүтцийн шинэ төрөл болохын тулд анхны нээлтээ хийсэн. Технологийг олон нийтэд ойртуулахын тулд Espressif Systems нь нийгмийн бүх давхаргын хөгжүүлэгчид IoT-ийг ашиглан бидний цаг үеийн хамгийн тулгамдсан асуудлуудыг шийдвэрлэх боломжтой гэсэн үзэл санааны төлөө ажилладаг. "Бүх зүйлсийн ухаалаг сүлжээ" ертөнц бол бидний ирээдүйгээс хүлээж буй зүйл юм.
Өөрсдийн чипсийг зохион бүтээх нь энэ алсын харааны чухал бүрэлдэхүүн хэсэг болдог. Энэ бол технологийн хил хязгаарын эсрэг байнгын нээлтийг шаарддаг марафон байх ёстой. "Тоглоом өөрчлөгч" ESP8266-аас эхлээд Wi-Fi болон Bluetoothr (LE) холболтыг нэгтгэсэн ESP32 цуврал, дараа нь хиймэл оюун ухааны хурдатгалаар тоноглогдсон ESP32-S3 хүртэл Espressif нь AIoT шийдлийн бүтээгдэхүүнүүдийг судалж, хөгжүүлэхээ хэзээ ч зогсоодоггүй. IoT Development Framework ESP-IDF, Mesh Development Framework ESP-MDF, Device Connectivity Platform ESP RainMaker зэрэг нээлттэй эхийн программ хангамжийн тусламжтайгаар бид AIoT програмуудыг бүтээх бие даасан тогтолцоог бий болгосон.
2022 оны 800-р сарын байдлаар Espressif-ийн IoT чипсетүүдийн нийт нийлүүлэлт 32 сая давж, Wi-Fi MCU зах зээлд тэргүүлж, дэлхий даяар асар олон тооны холбогдсон төхөөрөмжүүдийг ажиллуулж байна. Шилдэг байдлыг эрэлхийлэх нь Espressif бүтээгдэхүүн бүрийг өндөр түвшний интеграци, зардлын хэмнэлтээрээ томоохон хит болгодог. ESP3-C32-ийг гаргасан нь Espressif-ийн өөрөө боловсруулсан технологийн чухал үе шатыг харуулж байна. Энэ нь нэг цөмт, 400 бит, RISC-V-д суурилсан MCU бөгөөд 160 КБ SRAM-тай, 2.4 МГц давтамжтайгаар ажиллах боломжтой. Энэ нь 5 GHz Wi-Fi болон Bluetooth 32 (LE) холболттой бөгөөд холын зайн дэмжлэгтэй. Энэ нь эрчим хүч, оролт/гаралтын чадвар, аюулгүй байдлын нарийн тэнцвэрийг хангадаг бөгөөд ингэснээр холбогдсон төхөөрөмжүүдэд оновчтой, хэмнэлттэй шийдлийг санал болгодог. Ийм хүчирхэг ESP3-CXNUMX дээр үндэслэсэн энэхүү ном нь уншигчдад IoT-тэй холбоотой мэдлэгийг дэлгэрэнгүй дүрслэл, практик жишээгээр ойлгоход туслах зорилготой юм.amples.
Бид яагаад энэ номыг бичсэн бэ?
Espressif Systems бол хагас дамжуулагч компани биш юм. Энэ нь мөн IoT платформын компани бөгөөд технологийн салбарт ололт амжилт, шинэчлэлийг үргэлж эрэлхийлдэг. Үүний зэрэгцээ Espressif нь нээлттэй эх сурвалжтай бөгөөд өөрийн хөгжүүлсэн үйлдлийн систем, програм хангамжийн хүрээг олон нийтэд түгээж, өвөрмөц экосистемийг бүрдүүлсэн. Инженерүүд, үйлдвэрлэгчид, технологи сонирхогчид Espressif-ийн бүтээгдэхүүнд суурилсан шинэ программ хангамжийг идэвхтэй хөгжүүлж, чөлөөтэй харилцаж, туршлагаа хуваалцдаг. Та YouTube, GitHub гэх мэт янз бүрийн платформ дээр хөгжүүлэгчдийн сонирхолтой санааг байнга харж болно. Espressif-ийн бүтээгдэхүүний алдартай болсон нь Espressif чипсет дээр суурилсан англи, хятад, герман, франц, япон зэрэг арав гаруй хэл дээр 100 гаруй ном хэвлүүлсэн зохиолчдын тоог нэмэгдүүлсээр байна.
Энэ нь Espressif-ийн тасралтгүй инновацийг дэмждэг олон нийтийн түншүүдийн дэмжлэг, итгэл юм. “Бид өөрсдийн чип, үйлдлийн систем, хүрээ, шийдэл, Cloud, бизнесийн арга, хэрэгсэл, баримт бичиг, зохиол бүтээл, санаа гэх мэт зүйлсээ орчин үеийн амьдралын хамгийн тулгамдсан асуудлуудад хүмүүст хэрэгтэй хариултуудад илүү хамааралтай болгохыг хичээдэг. Энэ бол 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Энэ номонд байгаа програмуудыг гараар код оруулах эсвэл номыг дагалдах эх кодыг ашиглан. Бид онол, практикийн хослолыг онцолж, бараг бүх бүлэгт "Ухаалаг гэрэл" төсөл дээр үндэслэн Практик хэсгийг тавьдаг. Бүх кодууд нь нээлттэй эх сурвалжтай. Уншигчид эх кодыг татаж аваад 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 Номын туршид доор үзүүлсэн шиг онцолсон хэсгүүд байх болно.
Эх сурвалжийн код Энэ номонд бид онол, практикийн хослолыг онцолж, бараг бүх бүлэгт Ухаалаг гэрлийн төслийн тухай Практик хэсгийг тавьсан. Харгалзах алхмууд болон эх хуудас нь -ээр эхэлсэн хоёр мөрийн хооронд тэмдэглэгдсэн байна tag Эх код.
ТАЙЛБАР/ЗӨВЛӨГӨӨ Эндээс та зарим чухал мэдээлэл, програмаа амжилттай дибаг хийх талаар сануулж болно. -ээр эхэлсэн хоёр зузаан шугамын хооронд тэдгээрийг тэмдэглэнэ tag ТАЙЛБАР эсвэл ЗӨВЛӨГӨӨ.
Энэ номын ихэнх командууд нь "$" тэмдэгтээр өдөөгдсөн Линукс дээр хийгддэг. Хэрэв командыг гүйцэтгэхийн тулд супер хэрэглэгчийн эрх шаардлагатай бол мөрийг "#" гэж солино. 4.2.3 Mac дээр ESP-IDF суулгах хэсэгт ашигласан Mac систем дээрх командын мөр нь “%” юм.
Энэ номны үндсэн бичвэрийг дүрэмд хэвлэнэ, харин код нь өмнөхamples, бүрэлдэхүүн хэсэг, функц, хувьсагч, код file нэр, кодын лавлах болон мөрүүд Courier New-д байх болно.
Хэрэглэгчийн оруулах шаардлагатай командууд эсвэл текстүүд болон "Enter" товчийг дарж оруулах командуудыг Courier New тодоор хэвлэнэ. Лог болон кодын блокуудыг цайвар цэнхэр хайрцагт үзүүлнэ.
Exampле:
Хоёрдугаарт, NVS хуваалтын хоёртын файлыг үүсгэхийн тулд esp-idf/components/nvs flash/nvs partition generator/nvs partition gen.py ашиглана уу. file хөгжүүлэлтийн хост дээр дараах тушаалаар:
$ python $IDF PATH/components/nvs flash/nvs хуваалтын генератор/nvs хуваалт gen.py –оролтын масс prod.csv –гаралтын массын бүтээгдэхүүн.bin –хэмжээ NVS PARTITION SIZE
1-р бүлэг
Танилцуулга
руу
IoT
20-р зууны төгсгөлд компьютерийн сүлжээ, харилцаа холбооны технологи хөгжихийн хэрээр интернет хүмүүсийн амьдралд маш хурдацтай нэвтэрсэн. Интернэт технологи хөгжихийн хэрээр Интернэт зүйлсийн (IoT) санаа гарч ирэв. Шууд утгаараа IoT гэдэг нь аливаа зүйлс холбогдсон интернет гэсэн үг. Анхны интернет нь орон зай, цаг хугацааны хязгаарыг эвдэж, "хүн ба хүн" хоорондын зайг нарийсгаж байхад IoT нь "юмыг" чухал оролцогч болгож, "хүмүүс" болон "юм"-ыг ойртуулдаг. Ойрын ирээдүйд IoT нь мэдээллийн салбарын хөдөлгөгч хүч болох төлөвтэй байна.
Тэгвэл эд зүйлсийн интернет гэж юу вэ?
Утга, хамрах хүрээ нь байнга хувьсан өөрчлөгдөж байдаг тул зүйлсийн интернетийг нарийн тодорхойлоход хэцүү байдаг. 1995 онд Билл Гейтс "Урагшлах зам" номондоо IoT-ийн санааг анх гаргаж ирсэн. Энгийнээр хэлбэл, IoT нь объектуудыг интернетээр дамжуулан өөр хоорондоо мэдээлэл солилцох боломжийг олгодог. Үүний эцсийн зорилго бол "Бүх зүйлийн интернет"-ийг бий болгох явдал юм. Энэ бол IoT-ийн анхны тайлбар, түүнчлэн ирээдүйн технологийн уран зөгнөл юм. XNUMX жилийн дараа эдийн засаг, техник технологи хурдацтай хөгжихийн хэрээр уран зөгнөл бодит байдал дээр гарч байна. Ухаалаг төхөөрөмжүүд, ухаалаг гэр, ухаалаг хотууд, тээврийн хэрэгслийн интернет, зүүдэг төхөөрөмжүүдээс эхлээд IoT технологиор дэмжигдсэн “мета ертөнц” хүртэл шинэ ойлголтууд байнга гарч ирж байна. Энэ бүлэгт бид интернетийн зүйлсийн архитектурын тайлбараас эхэлж, IoT-ийн талаар тодорхой ойлголттой болоход тань туслах үүднээс хамгийн түгээмэл IoT програм болох ухаалаг гэрийг танилцуулах болно.
1.1 IoT-ийн архитектур
Зүйлсийн интернет нь янз бүрийн салбарт өөр өөр хэрэглээний хэрэгцээ, хэлбэр бүхий олон технологийг агуулдаг. IoT-ийн бүтэц, үндсэн технологи, хэрэглээний шинж чанарыг ялгахын тулд нэгдсэн архитектур, стандарт техникийн системийг бий болгох шаардлагатай. Энэ номонд IoT-ийн архитектурыг ердөө л дөрвөн давхаргад хуваасан: ойлголт ба хяналтын давхарга, сүлжээний давхарга, платформ давхарга, хэрэглээний давхарга.
Ойлголт ба хяналтын давхарга IoT архитектурын хамгийн үндсэн элемент болох ойлголт ба хяналтын давхарга нь IoT-ийн иж бүрэн мэдрэгчийг хэрэгжүүлэх гол цөм юм. Үүний гол үүрэг бол мэдээллийг цуглуулах, тодорхойлох, хянах явдал юм. Энэ нь мэдрэх чадвартай олон төрлийн төхөөрөмжөөс бүрддэг.
3
тодорхойлох, хянах, гүйцэтгэх ба материалын шинж чанар, зан үйлийн чиг хандлага, төхөөрөмжийн төлөв зэрэг өгөгдлийг олж авах, шинжлэх үүрэгтэй. Ийм байдлаар IoT нь бодит физик ертөнцийг таних болно. Үүнээс гадна давхарга нь төхөөрөмжийн статусыг хянах боломжтой.
Энэ давхаргын хамгийн түгээмэл төхөөрөмжүүд нь янз бүрийн мэдрэгчүүд бөгөөд мэдээлэл цуглуулах, танихад чухал үүрэг гүйцэтгэдэг. Мэдрэгч нь хүний мэдрэхүйн эрхтэнтэй адил юм, тухайлбал гэрэл мэдрэмтгий мэдрэгч нь алсын хараа, акустик мэдрэгч нь сонсгол, хийн мэдрэгч нь үнэр, даралт, температур мэдрэгчтэй мэдрэгч юм. Эдгээр бүх "мэдрэхүйн эрхтнүүд" -ийн тусламжтайгаар объектууд "амьд" болж, бие махбодийн ертөнцийг ухаалаг хүлээн авах, таних, удирдах чадвартай болдог.
Сүлжээний давхарга Сүлжээний давхаргын гол үүрэг нь ойлголт, хяналтын давхаргаас олж авсан өгөгдөл, мөн хэрэглээний давхаргаас өгсөн тушаалуудыг хүлээн авах, удирдах давхарга руу буцааж өгөх зэрэг мэдээллийг дамжуулах явдал юм. Энэ нь IoT системийн янз бүрийн давхаргыг холбосон чухал харилцааны гүүр болж өгдөг. Интернетийн зүйлсийн үндсэн загварыг бий болгохын тулд объектуудыг сүлжээнд нэгтгэх хоёр үе шатыг багтаана: Интернетэд нэвтрэх, интернетээр дамжуулах.
Интернэтийн интернетэд нэвтрэх нь хүн, хүн хоёрыг харилцан холбох боломжийг олгодог боловч том гэр бүлд бүх зүйлийг багтааж чадахгүй. IoT гарч ирэхээс өмнө ихэнх зүйл "сүлжээнд ажиллах боломжгүй" байсан. Технологийн тасралтгүй хөгжлийн ачаар IoT нь аливаа зүйлийг интернетэд холбож, "хүмүүс ба зүйл" болон "юм ба эд зүйлс" хоорондын уялдаа холбоог бий болгодог. Интернэт холболтыг хэрэгжүүлэх хоёр нийтлэг арга байдаг: утастай сүлжээ болон утасгүй сүлжээнд нэвтрэх.
Утастай сүлжээний хандалтын аргуудад Ethernet, цуваа холбоо (жишээ нь: RS-232, RS-485) болон USB багтдаг бол утасгүй сүлжээний хандалт нь утасгүй холболтоос хамаардаг бөгөөд үүнийг цааш нь ойрын зайн утасгүй холбоо, урт хугацааны утасгүй холбоо гэж хувааж болно.
Богино зайн утасгүй холбоонд ZigBee, Bluetoothr, Wi-Fi, Near-Field Communication (NFC), Radio Frequency Identification (RFID) орно. Холын зайн утасгүй харилцаанд Enhanced Machine Type Communication (eMTC), LoRa, Нарийн зурвасын интернет (NB-IoT), 2G, 3G, 4G, 5G гэх мэт орно.
Интернэтээр дамжуулан дамжуулах Интернэт хандалтын янз бүрийн аргууд нь өгөгдлийг харгалзах физик дамжуулах холбоосыг бий болгодог. Дараагийн зүйл бол өгөгдөл дамжуулахын тулд ямар холбооны протокол ашиглахыг шийдэх явдал юм. Интернет терминалуудтай харьцуулахад ихэнх IoT терминалууд одоогоор цөөн байна
4 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Боловсруулалтын гүйцэтгэл, хадгалах багтаамж, сүлжээний хурд гэх мэт боломжит нөөцүүд, тиймээс IoT програмуудад бага нөөц эзэлдэг харилцааны протоколыг сонгох шаардлагатай. Өнөө үед өргөн хэрэглэгддэг харилцаа холбооны хоёр протокол байдаг: Message Queuing Telemetry Transport (MQTT) болон Constrained Application Protocol (CoAP).
Платформ давхарга Платформ давхарга нь IoT үүл платформуудыг голчлон хэлдэг. Бүх IoT терминалууд сүлжээнд холбогдсон үед тэдгээрийн өгөгдлийг тооцоолж, хадгалахын тулд IoT үүлэн платформ дээр нэгтгэх шаардлагатай. Платформ давхарга нь томоохон төхөөрөмжүүдэд хандах, удирдахад туслах IoT програмуудыг голчлон дэмждэг. Энэ нь IoT терминалуудыг үүлэн платформтой холбож, терминалын өгөгдлийг цуглуулж, терминалуудад команд өгдөг бөгөөд ингэснээр алсын удирдлага хэрэгжүүлдэг. Салбарын хэрэглээнд тоног төхөөрөмж хуваарилах завсрын үйлчилгээний хувьд платформ давхарга нь IoT архитектурыг бүхэлд нь холбогч үүрэг гүйцэтгэдэг бөгөөд хийсвэр бизнесийн логик, стандартчилагдсан үндсэн өгөгдлийн загварыг агуулсан бөгөөд энэ нь төхөөрөмжүүдэд хурдан нэвтрэх боломжийг олгодог төдийгүй хүчирхэг модульчлах боломжийг олгодог. салбарын хэрэглээний хувилбарт янз бүрийн хэрэгцээг хангах. Платформ давхарга нь үндсэндээ төхөөрөмжийн хандалт, төхөөрөмжийн удирдлага, аюулгүй байдлын удирдлага, мессежийн харилцаа холбоо, хяналт-шинжилгээ, засвар үйлчилгээ, өгөгдлийн программ зэрэг функциональ модулиудыг агуулдаг.
· Терминал болон IoT үүлэн платформуудын хоорондох холболт, харилцаа холбоог хэрэгжүүлэх төхөөрөмжид хандах.
· Төхөөрөмж үүсгэх, төхөөрөмжийн засвар үйлчилгээ, өгөгдөл хөрвүүлэх, өгөгдлийг синхрончлох, төхөөрөмж түгээх зэрэг функцуудыг багтаасан төхөөрөмжийн удирдлага.
· Аюулгүй байдлын удирдлага, IoT өгөгдөл дамжуулах аюулгүй байдлыг баталгаажуулах, харилцааны аюулгүй байдлын үүднээс.
· Гурван дамжуулалтын чиглэлийг багтаасан мессежийн холбоо, өөрөөр хэлбэл терминал нь IoT үүлэн платформ руу өгөгдөл илгээдэг, IoT үүлэн платформ нь сервер тал эсвэл бусад IoT үүлэн платформууд руу өгөгдөл илгээдэг, сервер тал нь IoT төхөөрөмжүүдийг алсаас удирддаг.
· Хяналт-шинжилгээ, оношлогоо, програм хангамжийг шинэчлэх, онлайн дибаг хийх, бүртгэлийн үйлчилгээ гэх мэт үйл ажиллагааг хянах.
· Өгөгдлийн хадгалалт, дүн шинжилгээ, хэрэглээг хамарсан мэдээллийн програмууд.
Хэрэглээний давхарга Хэрэглээний давхарга нь платформын түвшний өгөгдлийг ашиглан програмыг удирдаж, мэдээллийн сан, шинжилгээний программ хангамж зэрэг хэрэгслээр шүүж, боловсруулдаг. Үүссэн өгөгдлийг ухаалаг эрүүл мэнд, ухаалаг хөдөө аж ахуй, ухаалаг гэр, ухаалаг хот зэрэг бодит ертөнцийн IoT хэрэглээнд ашиглах боломжтой.
Мэдээжийн хэрэг IoT-ийн архитектурыг илүү олон давхаргад хувааж болох боловч хичнээн давхаргаас бүрдэхээс үл хамааран үндсэн зарчим нь ижил хэвээр байна. Сурах
Бүлэг 1. IoT-ийн танилцуулга 5
IoT-ийн архитектурын тухай мэдээлэл нь IoT технологийн талаарх бидний ойлголтыг гүнзгийрүүлж, бүрэн ажиллагаатай IoT төслүүдийг бий болгоход тусалдаг.
1.2 Ухаалаг гэрт IoT програм
IoT нь амьдралын бүхий л салбарт нэвтэрч, бидэнтэй хамгийн их холбоотой IoT програм бол ухаалаг гэр юм. Олон уламжлалт цахилгаан хэрэгсэл одоо нэг буюу хэд хэдэн IoT төхөөрөмжөөр тоноглогдсон бөгөөд шинээр баригдсан олон байшинг IoT технологиор анхнаасаа зохион бүтээсэн. Зураг 1.1-д зарим нийтлэг ухаалаг гэрийн төхөөрөмжийг харуулав.
Зураг 1.1. Ухаалаг гэрийн нийтлэг төхөөрөмжүүд Ухаалаг байшингийн хөгжлийг ухаалаг бүтээгдэхүүнд хувааж болноtage, үзэгдлийн харилцан холболт stage болон ухаалаг stage, Зураг 1.2-т үзүүлсний дагуу.
Зураг 1.2. Хөгжлийн сtage of smart home 6 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Эхний сtage нь ухаалаг бүтээгдэхүүний тухай юм. Уламжлалт байшингаас ялгаатай нь ухаалаг гэрт IoT төхөөрөмжүүд нь мэдрэгч бүхий дохиог хүлээн авч, Wi-Fi, Bluetooth LE, ZigBee зэрэг утасгүй холбооны технологиор холбогддог. Хэрэглэгчид ухаалаг бүтээгдэхүүнийг ухаалаг гар утасны програм, дуут туслах, ухаалаг чанга яригчийн удирдлага гэх мэт янз бүрийн аргаар удирдах боломжтой. Хоёр дахь ньtage нь үзэгдлийн харилцан холболтод анхаарлаа хандуулдаг. Үүнд сtage, хөгжүүлэгчид нэг ухаалаг бүтээгдэхүүнийг хянахаа больж, хоёр ба түүнээс дээш ухаалаг бүтээгдэхүүнийг хооронд нь холбож, тодорхой хэмжээгээр автоматжуулж, эцэст нь захиалгат үзэгдэлийн горимыг бий болгох талаар бодож байна. Жишээ ньample, хэрэглэгч ямар ч үзэгдэл горимын товчлуурыг дарахад гэрэл, хөшиг, агааржуулагч нь урьдчилан тохируулсан тохиргоонд автоматаар тохируулагдах болно. Мэдээжийн хэрэг, гох нөхцөл, гүйцэтгэх үйлдлүүд зэрэг холболтын логикийг хялбархан тохируулах урьдчилсан нөхцөл бий. Өрөөн доторх температур 10 хэмээс доош унах үед агааржуулалтын халаалтын горим идэвхждэг гэж төсөөлөөд үз дээ; өглөөний 7 цагт хэрэглэгчийг сэрээх хөгжим тоглож, ухаалаг хөшиг нээгдэж, будаа агшаагч эсвэл талх шарагч ухаалаг залгуураар ажиллаж эхэлдэг; Хэрэглэгч босож, угааж дуусахад өглөөний цай аль хэдийн үйлчилдэг тул ажилдаа явахад саатал гарахгүй. Бидний амьдрал ямар тухтай болсон бэ! Гурав дахь сtage тагнуулын байгууллагад очдогtagд. Ухаалаг гэрийн төхөөрөмжид хандах тусам үүсгэсэн өгөгдлийн төрлүүд нэмэгдэх болно. Үүлэн тооцоолол, том өгөгдөл, хиймэл оюун ухааны тусламжтайгаар ухаалаг байшинд "ухаалаг тархи" суулгасантай адил бөгөөд хэрэглэгчээс байнга тушаал өгөх шаардлагагүй болсон. Тэд өмнөх харилцан үйлчлэлийн талаархи мэдээллийг цуглуулж, хэрэглэгчийн зан үйлийн хэв маяг, сонголтыг судалж, шийдвэр гаргахад зөвлөмж өгөх зэрэг үйл ажиллагааг автоматжуулах зорилгоор ашигладаг. Одоогийн байдлаар ихэнх ухаалаг гэрүүд хэргийн газар хоорондын холболттой байдагtagд. Ухаалаг бүтээгдэхүүний нэвтрэлтийн түвшин, оюун ухаан нэмэгдэхийн хэрээр харилцааны протоколуудын хоорондох саад тотгорыг арилгаж байна. Ирээдүйд ухаалаг байшингууд нь "Төмөр хүн" киноны Жарвис AI системтэй адил үнэхээр "ухаалаг" болох нь гарцаагүй бөгөөд энэ нь хэрэглэгчдэд төрөл бүрийн төхөөрөмжүүдийг удирдах, өдөр тутмын ажлаа зохицуулахад тусалдаг төдийгүй супер тооцоолох хүч, сэтгэн бодох чадвартай байх болно. Ухаантай сtagд, хүн төрөлхтөн тоо, чанарын хувьд илүү сайн үйлчилгээ авах болно.
Бүлэг 1. IoT-ийн танилцуулга 7
8 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
IoT 2 төслийн танилцуулга ба дадлага бүлэг
1-р бүлэгт бид IoT-ийн архитектур, ойлголт ба хяналтын давхарга, сүлжээний давхарга, платформ давхарга, хэрэглээний давхаргын үүрэг, харилцан хамаарал, ухаалаг байшингийн хөгжлийг танилцуулсан. Гэсэн хэдий ч бид зурж сурсантай адил онолын мэдлэг хангалттай биш юм. Технологийг жинхэнэ утгаар нь эзэмшихийн тулд IoT төслүүдийг хэрэгжүүлэхийн тулд бид “гараа бохирдуулах” ёстой. Үүнээс гадна, төсөл масс үйлдвэрлэлд шилжих үед stage, сүлжээний холболт, тохиргоо, IoT үүлэн платформын харилцан үйлчлэл, програм хангамжийн удирдлага, шинэчлэлт, масс үйлдвэрлэлийн менежмент, аюулгүй байдлын тохиргоо зэрэг илүү олон хүчин зүйлийг харгалзан үзэх шаардлагатай. Тэгэхээр бид IoT төслийг иж бүрэн боловсруулахдаа юуг анхаарах ёстой вэ? 1-р бүлэгт ухаалаг гэр нь IoT хэрэглээний хамгийн түгээмэл хувилбаруудын нэг бөгөөд ухаалаг гэрлүүд нь гэр, зочид буудал, биеийн тамирын заал, эмнэлэг зэрэгт ашиглах боломжтой хамгийн энгийн бөгөөд практик хэрэглүүрүүдийн нэг гэдгийг бид дурдсан. Тиймээс Энэхүү номонд бид ухаалаг гэрлийн төслийг эхлүүлэх, түүний бүрэлдэхүүн хэсэг, онцлог шинж чанаруудыг тайлбарлаж, төсөл боловсруулах зааварчилгааг өгөх болно. Та илүү олон IoT програм үүсгэхийн тулд энэ тохиолдлоос дүгнэлт гаргаж чадна гэж найдаж байна.
2.1 IoT-ийн ердийн төслүүдийн танилцуулга
Хөгжлийн хувьд IoT төслийн үндсэн функциональ модулиудыг IoT төхөөрөмжийн программ хангамж, техник хангамжийн хөгжүүлэлт, үйлчлүүлэгчийн хэрэглээний программ хөгжүүлэлт, IoT үүлэн платформ хөгжүүлэлт гэж ангилж болно. Үндсэн функциональ модулиудыг тодруулах нь чухал бөгөөд үүнийг энэ хэсэгт дэлгэрэнгүй тайлбарлах болно.
2.1.1 Нийтлэг IoT төхөөрөмжүүдийн үндсэн модулиуд
IoT төхөөрөмжүүдийн программ хангамж, техник хангамжийн хөгжилд дараах үндсэн модулиуд орно: Мэдээлэл цуглуулах
IoT архитектурын доод давхарга болохын хувьд ойлголт ба хяналтын түвшний IoT төхөөрөмжүүд нь мэдээлэл цуглуулах, үйл ажиллагааг хянахын тулд мэдрэгч болон төхөөрөмжүүдийг чип болон дагалдах хэрэгслээр нь холбодог.
9
Дансны холболт ба анхны тохиргоо Ихэнх IoT төхөөрөмжүүдийн хувьд бүртгэлийг холбох болон анхны тохиргоог нэг үйл ажиллагааны процессоор дуусгадаг, жишээ нь.ample, Wi-Fi сүлжээг тохируулах замаар төхөөрөмжүүдийг хэрэглэгчидтэй холбох.
IoT үүлэн платформуудтай харилцах IoT төхөөрөмжүүдийг хянах, хянахын тулд тэдгээрийг IoT клоуд платформд холбох шаардлагатай бөгөөд ингэснээр команд өгөх, бие биетэйгээ харилцах замаар статусыг мэдээлэх шаардлагатай.
Төхөөрөмжийн удирдлага IoT үүлэн платформтой холбогдсон үед төхөөрөмжүүд үүлэнтэй холбогдож, бүртгүүлэх, холбох эсвэл хянах боломжтой. Хэрэглэгчид IoT үүлэн платформ эсвэл орон нутгийн харилцааны протоколоор дамжуулан ухаалаг утасны аппликейшн дээр бүтээгдэхүүний статусыг асууж, бусад үйлдлүүдийг хийх боломжтой.
Програм хангамжийг шинэчлэх IoT төхөөрөмжүүд нь үйлдвэрлэгчийн хэрэгцээнд үндэслэн програм хангамжийн шинэчлэлтийг хийх боломжтой. Клоудаас илгээсэн командуудыг хүлээн авснаар програм хангамжийн шинэчлэл болон хувилбарын удирдлага хэрэгжих болно. Энэхүү програм хангамжийг шинэчлэх функцийн тусламжтайгаар та IoT төхөөрөмжүүдийн үйл ажиллагааг тасралтгүй сайжруулж, согогийг засч, хэрэглэгчийн туршлагыг сайжруулах боломжтой.
2.1.2 Үйлчлүүлэгчийн хэрэглээний үндсэн модулиуд
Үйлчлүүлэгчийн програмууд (жишээлбэл, ухаалаг гар утасны програмууд) нь үндсэндээ дараах үндсэн модулиудыг агуулдаг:
Дансны систем ба зөвшөөрөл Энэ нь данс болон төхөөрөмжийн зөвшөөрлийг дэмждэг.
Төхөөрөмжийн удирдлага Ухаалаг гар утасны програмууд нь ихэвчлэн хяналтын функцээр тоноглогдсон байдаг. Хэрэглэгчид IoT төхөөрөмжид хялбархан холбогдож, ухаалаг утасны программуудаар дамжуулан хүссэн үедээ, хаана ч хамаагүй удирдах боломжтой. Бодит ухаалаг гэрт төхөөрөмжүүдийг ихэвчлэн ухаалаг утасны программуудаар удирддаг бөгөөд энэ нь төхөөрөмжийг ухаалаг удирдах боломжийг олгодог төдийгүй ажиллах хүчний зардлыг хэмнэдэг. Тиймээс төхөөрөмжийн удирдлага нь төхөөрөмжийн функцын шинж чанарын хяналт, үзэгдэлийн хяналт, хуваарь, алсын удирдлага, төхөөрөмжийн холболт гэх мэт үйлчлүүлэгчийн програмуудад зайлшгүй шаардлагатай. Ухаалаг гэрийн хэрэглэгчид мөн гэрэлтүүлэг, гэр ахуйн цахилгаан хэрэгсэл, орцны орц зэргийг хянах, хувийн хэрэгцээнд тохируулан үзэгдлүүдийг өөрчлөх боломжтой. гэх мэт гэрийн амьдралыг илүү тохь тухтай, тохь тухтай болгох. Тэд агааржуулагчийн цагийг тохируулах, алсаас унтраах, хаалгыг онгойлгосны дараа хонгилын гэрлийг автоматаар асаах, эсвэл нэг товчлуураар "театр" горимд шилжих боломжтой.
Мэдэгдэл Client програмууд IoT төхөөрөмжүүдийн бодит цагийн статусыг шинэчилж, төхөөрөмжүүд хэвийн бус болсон үед сэрэмжлүүлэг илгээдэг.
10 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Борлуулалтын дараах хэрэглэгчийн үйлчилгээ Ухаалаг утасны програмууд нь IoT төхөөрөмжийн гэмтэл, техникийн үйл ажиллагаатай холбоотой асуудлыг цаг тухайд нь шийдвэрлэхийн тулд бүтээгдэхүүний борлуулалтын дараах үйлчилгээг үзүүлэх боломжтой.
Онцлох функцууд Өөр өөр хэрэглэгчдийн хэрэгцээг хангахын тулд Shake, NFC, GPS гэх мэт бусад функцийг нэмж болно. GPS нь байршил, зайнаас хамааран үзэгдлийн үйл ажиллагааны нарийвчлалыг тохируулахад тусалдаг бол Shake функц нь хэрэглэгчдэд тодорхой төхөөрөмж эсвэл үзэгдэлд зориулж сэгсрэх замаар гүйцэтгэх командууд.
2.1.3 Нийтлэг IoT үүлэн платформуудын танилцуулга
IoT үүлэн платформ нь төхөөрөмжийн удирдлага, өгөгдлийн аюулгүй байдлын харилцаа холбоо, мэдэгдлийн удирдлага зэрэг функцуудыг нэгтгэсэн нэгдмэл платформ юм. Зорилтот бүлэг, хүртээмжийн дагуу IoT үүлэн платформуудыг нийтийн IoT үүлэн платформ (цаашид “нийтийн үүл” гэх) болон хувийн IoT үүлэн платформ (цаашид “хувийн үүл” гэх) гэж хувааж болно.
Нийтийн үүл нь ихэвчлэн платформ үйлчилгээ үзүүлэгчдийн ажиллуулж, засварлаж, интернетээр дамжуулан хуваалцдаг аж ахуйн нэгж, хувь хүмүүст зориулсан IoT үүлэн платформыг заадаг. Энэ нь үнэ төлбөргүй эсвэл хямд байж болох ба Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT гэх мэт нээлттэй нийтийн сүлжээгээр үйлчилгээ үзүүлдэг. Нийтийн үүлэн нь туслах платформын хувьд дээд талын үйлчилгээ үзүүлэгчдийг нэгтгэх боломжтой. шинэ үнэ цэнийн сүлжээ, экосистемийг бий болгохын тулд доод урсгалын эцсийн хэрэглэгчид.
Хувийн үүл нь зөвхөн аж ахуйн нэгжийн хэрэглээнд зориулагдсан тул өгөгдөл, аюулгүй байдал, үйлчилгээний чанарт хамгийн сайн хяналтыг баталгаажуулдаг. Түүний үйлчилгээ, дэд бүтцийг аж ахуйн нэгжүүд тусад нь хариуцдаг бөгөөд туслах техник хангамж, програм хангамжийг мөн тодорхой хэрэглэгчдэд зориулдаг. Аж ахуйн нэгжүүд өөрсдийн бизнесийн хэрэгцээнд нийцүүлэн үүлэн үйлчилгээг өөрчлөх боломжтой. Одоогийн байдлаар зарим ухаалаг гэрийн үйлдвэрлэгчид хувийн IoT үүлэн платформтой болж, тэдгээрт суурилсан ухаалаг гэрийн программуудыг хөгжүүлээд байна.
Нийтийн үүл болон хувийн үүл нь өөрийн гэсэн давуу талтайtages, үүнийг дараа нь тайлбарлах болно.
Харилцаа холбооны холболтыг бий болгохын тулд бизнесийн серверүүд, IoT үүлэн платформууд, ухаалаг гар утасны програмуудын хамт төхөөрөмжийн тал дээр ядаж суулгагдсан хөгжүүлэлтийг дуусгах шаардлагатай. Ийм том төсөлтэй тулгараад байгаа нийтийн үүл нь процессыг хурдасгахын тулд төхөөрөмж болон ухаалаг гар утасны програмуудад зориулсан програм хангамж хөгжүүлэх иж бүрдэлээр хангадаг. Нийтийн болон хувийн үүл нь төхөөрөмжийн хандалт, төхөөрөмжийн удирдлага, төхөөрөмжийн сүүдэр, ашиглалт, засвар үйлчилгээ зэрэг үйлчилгээг үзүүлдэг.
Төхөөрөмжийн хандалтын IoT үүлэн платформууд нь зөвхөн протокол ашиглан төхөөрөмжид хандах интерфейсээр хангах ёстой
Бүлэг 2. IoT төслийн танилцуулга ба дадлага 11
MQTT, CoAP, HTTPS гэх мэт WebСокет, гэхдээ хуурамч болон хууль бус төхөөрөмжийг хаах төхөөрөмжийн аюулгүй байдлын баталгаажуулалтын функц нь эвдэгдэх эрсдэлийг үр дүнтэй бууруулдаг. Ийм нэвтрэлт танилт нь ихэвчлэн өөр өөр механизмуудыг дэмждэг тул төхөөрөмжийг олноор үйлдвэрлэх үед сонгосон баталгаажуулалтын механизмын дагуу төхөөрөмжийн гэрчилгээг урьдчилан өгч, төхөөрөмжид шатаах шаардлагатай болдог.
Төхөөрөмжийн удирдлага IoT клоуд платформоор хангагдсан төхөөрөмжийн удирдлагын функц нь үйлдвэрлэгчдэд төхөөрөмжийнхөө идэвхжүүлэлтийн байдал болон онлайн статусыг бодит цаг хугацаанд хянахад туслахаас гадна төхөөрөмж нэмэх / устгах, бүлэг авах, бүлэг нэмэх / устгах, програм хангамжийг шинэчлэх зэрэг сонголтыг хийх боломжийг олгодог. , хувилбарын удирдлага.
Төхөөрөмжийн сүүдрийн IoT үүл платформууд нь төхөөрөмж тус бүрт байнгын виртуал хувилбар (төхөөрөмжийн сүүдэр) үүсгэх боломжтой бөгөөд төхөөрөмжийн сүүдрийн статусыг интернет дамжуулах протоколоор дамжуулан ухаалаг утасны програм эсвэл бусад төхөөрөмжөөр синхрончилж, авах боломжтой. Төхөөрөмжийн сүүдэр нь төхөөрөмж бүрийн хамгийн сүүлийн мэдээлэгдсэн төлөв болон хүлээгдэж буй төлөвийг хадгалдаг бөгөөд төхөөрөмж офлайн байсан ч API-г дуудаж статусаа авах боломжтой. Төхөөрөмжийн сүүдэр нь үргэлж асаалттай API-уудаар хангадаг бөгөөд энэ нь төхөөрөмжтэй харьцдаг ухаалаг гар утасны програмуудыг бүтээхэд хялбар болгодог.
Ашиглалт ба засвар үйлчилгээ O&M функц нь гурван талыг агуулна: · IoT төхөөрөмж болон мэдэгдлийн талаарх статистик мэдээллийг харуулах. · Бүртгэлийн менежмент нь төхөөрөмжийн үйл ажиллагаа, дээш/доош зурвасын урсгал болон мессежийн агуулгын талаарх мэдээллийг олж авах боломжийг олгодог. · Төхөөрөмжийн дибаг нь командыг хүргэх, тохиргоог шинэчлэх, IoT үүлэн платформ болон төхөөрөмжийн мессеж хоорондын харилцан үйлчлэлийг шалгахыг дэмждэг.
2.2 Дадлага: Ухаалаг гэрэл төсөл
Бүлэг бүрийн онолын танилцуулгын дараа та практик туршлага олж авахад тань туслах Ухаалаг гэрэл төсөлтэй холбоотой дадлагын хэсгийг олох болно. Төсөл нь Espressif-ийн ESP32-C3 чип болон ESP RainMaker IoT Cloud Platform дээр суурилсан бөгөөд ухаалаг гэрлийн бүтээгдэхүүн дэх утасгүй модулийн техник хангамж, ESP32C3 дээр суурилсан ухаалаг төхөөрөмжүүдэд зориулсан суулгагдсан програм хангамж, ухаалаг гар утасны програмууд болон ESP RainMaker харилцан үйлчлэлийг хамардаг.
Эх сурвалжийн код Туршлагыг илүү сайн сурч, хөгжүүлэхийн тулд энэ номонд байгаа төслийг нээлттэй эх сурвалжтай болгосон. Та https://github хаягаар манай GitHub репозитороос эх кодыг татаж авах боломжтой. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
2.2.1 Төслийн бүтэц
Ухаалаг гэрэл төсөл нь гурван хэсгээс бүрдэнэ: i. IoT үүл платформтой харилцах, LED l-ийн унтраалга, тод байдал, өнгөний температурыг хянах үүрэгтэй ESP32-C3 дээр суурилсан ухаалаг гэрлийн төхөөрөмжүүд.amp бөмбөлгүүдийг. ii. Ухаалаг гэрлийн бүтээгдэхүүний сүлжээний тохиргоог хариуцдаг ухаалаг гар утасны програмууд (Андройд болон 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 voltagКонденсаторыг бууруулж, диодыг залруулсны дараа гарах e гаралт нь LED хянагч болон LED матрицыг эрчим хүчээр хангадаг. LED хянагч нь RGB LED матрицыг хаалттай (гэрэл асаалттай) болон нээлттэй (гэрэл унтарсан) хооронд сэлгэн тодорхой интервалтайгаар өндөр, доод түвшнийг автоматаар илгээх боломжтой бөгөөд ингэснээр хөх, шар, ногоон, нил ягаан, хөх, улаан, болон цагаан гэрэл. Утасгүй модуль нь Wi-Fi чиглүүлэгчтэй холбогдох, ухаалаг гэрлийн төлөвийг хүлээн авч мэдээлэх, LED-ийг удирдах командуудыг илгээх үүрэгтэй.
Зураг 2.2. Загварчилсан ухаалаг гэрэл
Хөгжлийн эхэн үед сtage, та RGB LED l-тэй холбогдсон ESP32-C3DevKitM-1 хавтанг ашиглан ухаалаг гэрлийг дуурайж болно.amp бөмбөлгүүдийг (Зураг 2.2-ыг үз). Гэхдээ та тэгэх ёстой
14 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Энэ нь ухаалаг гэрлийг угсрах цорын ганц арга биш гэдгийг анхаарна уу. Энэ номонд байгаа төслийн техник хангамжийн загварт зөвхөн утасгүй модуль (ESP32-C3 суулгасан) багтсан боловч ухаалаг гэрлийн техник хангамжийн бүрэн загвар биш юм. Нэмж дурдахад Espressif нь аудио бүхий гэрлийг хянах зориулалттай ESP32-C3-д суурилсан аудио хөгжүүлэлтийн ESP32C3-Lyra хавтанг үйлдвэрлэдэг. Уг самбар нь микрофон, чанга яригчтай, LED туузыг удирдах боломжтой. Үүнийг хэт хямд өртөгтэй, өндөр хүчин чадалтай аудио нэвтрүүлэгч, хэмнэлийн гэрлийн туузыг хөгжүүлэхэд ашиглаж болно. Зураг 2.3-т 32 LED гэрлийн туузаар холбогдсон ESP3-C40Lyra хавтанг харуулав.
Зураг 2.3. ESP32-C3-Lyra нь 40 LED гэрлийн туузаар холбогдсон
Ухаалаг утас (Android/iOS) Ухаалаг гэрлийн төсөл нь ухаалаг гэрлийн бүтээгдэхүүнийг тохируулах, удирдахад зориулагдсан ухаалаг гар утасны програмыг хөгжүүлэх явдал юм.
Wi-Fi чиглүүлэгчид Wi-Fi чиглүүлэгч нь утастай сүлжээний дохио болон хөдөлгөөнт сүлжээний дохиог утасгүй сүлжээний дохио болгон хувиргаж, компьютер, ухаалаг гар утас, таблет болон бусад утасгүй төхөөрөмжүүдийг сүлжээнд холбоход ашигладаг. Жишээ ньampWi-Fi төхөөрөмжүүдийн утасгүй сүлжээг бий болгохын тулд гэрт өргөн зурвасын сүлжээг зөвхөн Wi-Fi чиглүүлэгчтэй холбох шаардлагатай. Wi-Fi чиглүүлэгчид дэмждэг нийтлэг протоколын стандарт нь IEEE 802.11n бөгөөд дундаж TxRate нь 300 Mbps буюу дээд тал нь 600 Mbps байна. Эдгээр нь IEEE 802.11b болон IEEE 802.11g-тэй хоцрогдсон нийцтэй. Espressif-ийн ESP32-C3 чип нь IEEE 802.11b/g/n-ийг дэмждэг тул та нэг зурваст (2.4 GHz) эсвэл хос зурваст (2.4 GHz ба 5 GHz) Wi-Fi чиглүүлэгчийг сонгох боломжтой.
Компьютер (Linux/macOS/Windows) хөгжүүлэх орчныг 4-р бүлэгт танилцуулна. Бүлэг 2. IoT төслүүдийн танилцуулга ба практик 15
2.2.4 Хөгжлийн үйл явц
Зураг 2.4. Ухаалаг гэрлийн төслийг боловсруулах үе шатууд
Техник хангамжийн дизайн IoT төхөөрөмжийн техник хангамжийн загвар нь IoT төсөлд зайлшгүй шаардлагатай. Бүрэн ухаалаг гэрлийн төсөл нь al үйлдвэрлэх зорилготой юмamp цахилгаан хангамжийн дор ажилладаг. Өөр өөр үйлдвэрлэгчид л үйлдвэрлэдэгampөөр өөр загвар, драйверын төрлүүдтэй боловч тэдгээрийн утасгүй модулиуд нь ихэвчлэн ижил үүрэг гүйцэтгэдэг. Smart Ligh төслийг боловсруулах үйл явцыг хялбарчлахын тулд энэхүү номонд зөвхөн утасгүй модулиудын техник хангамжийн дизайн, програм хангамжийн боловсруулалтыг багтаасан болно.
IoT үүлэн платформын тохиргоо IoT үүлэн платформыг ашиглахын тулд та арын хэсэгт бүтээгдэхүүн үүсгэх, төхөөрөмж үүсгэх, төхөөрөмжийн шинж чанарыг тохируулах гэх мэт төслүүдийг тохируулах хэрэгтэй.
IoT төхөөрөмжүүдийн суулгагдсан програм хангамж хөгжүүлэлт IoT үүлэн платформд холбогдох, LED драйверуудыг хөгжүүлэх, програм хангамжийг шинэчлэх зэрэг Espressif-ийн төхөөрөмжийн талын SDK ESP-IDF-ээр хүлээгдэж буй функцуудыг хэрэгжүүлээрэй.
Ухаалаг гар утасны програм хөгжүүлэлт Хэрэглэгчийн бүртгэл, нэвтрэлт, төхөөрөмжийн хяналт болон бусад функцийг хэрэгжүүлэхийн тулд Android болон iOS системд зориулсан ухаалаг гар утасны програмуудыг хөгжүүлнэ.
IoT төхөөрөмжийн оновчлол IoT төхөөрөмжийн функцүүдийн үндсэн хөгжүүлэлт дууссаны дараа та эрчим хүчний оновчлол зэрэг оновчлолын ажлууд руу шилжиж болно.
Масс үйлдвэрлэлийн туршилт Тоног төхөөрөмжийн ажиллагааны туршилт, хөгшрөлтийн туршилт, RF-ийн туршилт гэх мэт холбогдох стандартын дагуу масс үйлдвэрлэлийн туршилтыг явуулна.
Дээр дурдсан алхмуудыг үл харгалзан Smart Light төсөл нь өөр өөр ажлуудыг нэгэн зэрэг гүйцэтгэх боломжтой тул ийм журамд хамрагдах албагүй. Жишээ ньample, суулгагдсан програм хангамж болон ухаалаг гар утасны програмуудыг зэрэгцүүлэн хөгжүүлж болно. IoT төхөөрөмжийг оновчтой болгох, бөөнөөр үйлдвэрлэх туршилт зэрэг зарим алхмуудыг давтах шаардлагатай байж магадгүй.
16 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
2.3 Дүгнэлт
Энэ бүлэгт бид эхлээд IoT төслийн үндсэн бүрэлдэхүүн хэсэг, функциональ модулиудын талаар тайлбарлаж, дараа нь бүтэц, функц, техник хангамжийн бэлтгэл, хөгжүүлэлтийн үйл явцын талаар практикт ашиглах ухаалаг гэрлийн гэрийг танилцуулсан. Уншигчид практикт дүгнэлт хийж, ирээдүйд IoT төслүүдийг хамгийн бага алдаатай хэрэгжүүлэх итгэлтэй болно.
Бүлэг 2. IoT төслийн танилцуулга ба дадлага 17
18 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
3-р бүлэг
Танилцуулга
руу
ESP
RainMaker
Интернэт зүйлс (IoT) нь хүмүүсийн амьдралын хэв маягийг өөрчлөх эцэс төгсгөлгүй боломжийг санал болгодог ч IoT инженерчлэлийн хөгжил нь сорилтоор дүүрэн байдаг. Нийтийн үүл ашиглан терминал үйлдвэрлэгчид дараах шийдлүүдийн тусламжтайгаар бүтээгдэхүүний функцийг хэрэгжүүлэх боломжтой.
Шийдэл нийлүүлэгчдийн үүлэн платформ дээр үндэслэсэн Ийм байдлаар терминал үйлдвэрлэгчид зөвхөн бүтээгдэхүүний техник хангамжийг зохиож, дараа нь өгөгдсөн холбооны модулийг ашиглан техник хангамжийг клоудтай холбож, зааварчилгааны дагуу бүтээгдэхүүний функцуудыг тохируулах хэрэгтэй. Энэ нь сервер болон програмын талын хөгжүүлэлт, үйл ажиллагаа, засвар үйлчилгээ (O&M) шаардлагагүй тул үр дүнтэй арга юм. Энэ нь терминалын үйлдвэрлэгчдэд үүлэн хэрэгжилтийг авч үзэхгүйгээр техник хангамжийн дизайнд анхаарлаа хандуулах боломжийг олгодог. Гэсэн хэдий ч, ийм шийдлүүд (жишээ нь, төхөөрөмжийн програм хангамж болон програм) нь ерөнхийдөө нээлттэй эх сурвалж биш тул бүтээгдэхүүний функцууд нь үйлчилгээ үзүүлэгчийн клоуд платформоор хязгаарлагдах бөгөөд үүнийг өөрчлөх боломжгүй юм. Үүний зэрэгцээ хэрэглэгч болон төхөөрөмжийн өгөгдөл нь үүлэн платформд хамаарна.
Үүлэн бүтээгдэхүүнд суурилсан Энэхүү шийдэлд техник хангамжийн дизайныг хийж дууссаны дараа терминалын үйлдвэрлэгчид нийтийн үүлэнгээр хангадаг нэг буюу хэд хэдэн үүлний бүтээгдэхүүнийг ашиглан үүлэн функцийг хэрэгжүүлэхээс гадна техник хангамжийг үүлтэй холбох хэрэгтэй. Жишээ ньample, Amazon-д холбогдохын тулд Web Үйлчилгээ (AWS), терминал үйлдвэрлэгчид төхөөрөмжийн хандалт, алсын удирдлага, өгөгдөл хадгалах, хэрэглэгчийн удирдлага болон бусад үндсэн функцуудыг идэвхжүүлэхийн тулд Amazon API Gateway, AWS IoT Core, AWS Lambda зэрэг AWS бүтээгдэхүүнийг ашиглах шаардлагатай. Энэ нь терминал үйлдвэрлэгчдээс үүлэн бүтээгдэхүүнүүдийг гүн гүнзгий ойлголттой, арвин туршлагатай уян хатан байдлаар ашиглах, тохируулахыг хүсээд зогсохгүй эхний болон дараагийн үеийн барилгын болон засвар үйлчилгээний зардлыг харгалзан үзэхийг шаарддаг.tages Энэ нь компанийн эрчим хүч, нөөцөд ихээхэн бэрхшээл учруулдаг.
Нийтийн үүлтэй харьцуулахад хувийн үүл нь ихэвчлэн тодорхой төсөл, бүтээгдэхүүнд зориулагдсан байдаг. Хувийн үүлэн хөгжүүлэгчид протоколын дизайн болон бизнесийн логик хэрэгжилтийн хамгийн дээд эрх чөлөөг өгдөг. Терминал үйлдвэрлэгчид бүтээгдэхүүн, дизайны схемийг хүссэнээр хийж, хэрэглэгчийн өгөгдлийг хялбархан нэгтгэж, чадавхижуулах боломжтой. Нийтийн үүлний өндөр хамгаалалт, өргөтгөх чадвар, найдвартай байдлыг дэвшилтэт програмтай хослуулсанtagХувийн үүлний es, Espressif нь ESP-ийг эхлүүлсэн
19
RainMaker нь Amazon үүлэн дээр суурилсан гүн гүнзгий нэгдсэн хувийн үүлэн шийдэл юм. Хэрэглэгчид ESP RainMaker-ийг байрлуулж, AWS бүртгэлээр хувийн үүл бүтээх боломжтой.
3.1 ESP RainMaker гэж юу вэ?
ESP RainMaker нь олон боловсорсон AWS бүтээгдэхүүнээр бүтээгдсэн AIoT бүрэн платформ юм. Энэ нь төхөөрөмжийн үүлэнд нэвтрэх, төхөөрөмжийн шинэчлэлт, арын хэсгийн удирдлага, гуравдагч этгээдийн нэвтрэлт, дуу хоолойг нэгтгэх, хэрэглэгчийн удирдлага гэх мэт масс үйлдвэрлэлд шаардлагатай төрөл бүрийн үйлчилгээг үзүүлдэг. Терминал үйлдвэрлэгчид AWS-ээс хангагдсан Сервергүй Програмын Репозиторийг (SAR) ашигласнаар ESP RainMaker-ийг AWS бүртгэлдээ хурдан байршуулах боломжтой бөгөөд энэ нь цаг хугацаа хэмнэж, ажиллахад хялбар юм. Espressif-ийн удирдаж, засварладаг, ESP RainMaker-ийн ашигладаг SAR нь хөгжүүлэгчдэд үүлэн засвар үйлчилгээний зардлыг бууруулж, AIoT бүтээгдэхүүний хөгжлийг хурдасгахад тусалдаг бөгөөд ингэснээр аюулгүй, тогтвортой, өөрчлөх боломжтой AIoT шийдлүүдийг бий болгодог. Зураг 3.1-д ESP RainMaker-ийн архитектурыг харуулав.
Зураг 3.1. ESP RainMaker-ийн архитектур
Espressif-ийн ESP RainMaker нийтийн сервер нь бүх ESP сонирхогч, үйлдвэрлэгч, сурган хүмүүжүүлэгч нарт шийдлийн үнэлгээ хийхэд үнэ төлбөргүй байдаг. Хөгжүүлэгчид Apple, Google эсвэл GitHub бүртгэлээр нэвтэрч, IoT програмын загвараа хурдан бүтээх боломжтой. Нийтийн сервер нь Alexa болон Google Home-г нэгтгэсэн бөгөөд Alexa Skill болон Google Actions-ээр дэмжигдсэн дуут удирдлагын үйлчилгээгээр хангадаг. Түүний семантик таних функц нь мөн гуравдагч этгээдээр ажилладаг. RainMaker IoT төхөөрөмжүүд нь зөвхөн тодорхой үйлдэлд хариу үйлдэл үзүүлдэг. Дэмжигдсэн дуут командуудын бүрэн жагсаалтыг харахыг хүсвэл гуравдагч талын платформуудыг шалгана уу. Нэмж дурдахад Espressif нь хэрэглэгчдэд ухаалаг гар утсаараа дамжуулан бүтээгдэхүүнээ хянах боломжийг олгодог RainMaker програмыг санал болгодог. 20 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
3.2 ESP RainMaker-ийн хэрэгжилт
Зураг 3.2-т үзүүлсэнчлэн ESP RainMaker нь дараах дөрвөн хэсгээс бүрдэнэ: · Нэхэмжлэлийн үйлчилгээ нь RainMaker төхөөрөмжүүдэд сертификатыг динамикаар авах боломжийг олгодог. · Мессеж шүүлтүүр, хэрэглэгчийн удирдлага, өгөгдөл хадгалах, гуравдагч талын интеграцчилал зэрэг үйлчилгээ үзүүлдэг RainMaker Cloud (мөн үүлний нөөц гэж нэрлэдэг). · RainMaker Agent нь RainMaker төхөөрөмжүүдийг RainMaker Cloud-тай холбох боломжийг олгодог. · RainMaker Client (RainMaker App эсвэл CLI скриптүүд), нөөц бүрдүүлэх, хэрэглэгч үүсгэх, төхөөрөмжийг холбох, хянах гэх мэт.
Зураг 3.2. ESP RainMaker-ийн бүтэц
ESP RainMaker нь бүтээгдэхүүнийг хөгжүүлэх, бөөнөөр үйлдвэрлэхэд зориулсан иж бүрэн хэрэгслүүдээр хангадаг. Үүнд: RainMaker SDK
RainMaker SDK нь ESP-IDF дээр суурилсан бөгөөд програм хангамжийг хөгжүүлэхэд зориулагдсан төхөөрөмжийн талын агент болон холбогдох C API-ийн эх кодыг өгдөг. Хөгжүүлэгчид зөвхөн програмын логикийг бичиж, үлдсэнийг нь RainMaker framework-д үлдээх хэрэгтэй. C API-ийн талаарх дэлгэрэнгүй мэдээллийг https://bookc3.espressif.com/rm/c-api-reference хаягаар авна уу. RainMaker App RainMaker програмын нийтийн хувилбар нь хөгжүүлэгчдэд төхөөрөмжийн бэлтгэлийг дуусгах, төхөөрөмжүүдийн төлөвийг хянах, асуух боломжийг олгодог (жишээ нь, ухаалаг гэрэлтүүлгийн бүтээгдэхүүн). Энэ нь iOS болон Android програмын дэлгүүрүүдэд байдаг. Дэлгэрэнгүй мэдээллийг 10-р бүлгээс үзнэ үү. REST APIs REST API нь хэрэглэгчдэд RainMaker App-тай төстэй программуудыг бүтээхэд тусалдаг. Дэлгэрэнгүй мэдээллийг https://swaggerapis.rainmaker.espressif.com/ хаягаар авна уу.
Бүлэг 3. ESP RainMaker 21-ийн танилцуулга
Python APIs RainMaker SDK-тэй хамт ирдэг Python-д суурилсан CLI нь ухаалаг гар утасны функцтэй төстэй бүх функцийг хэрэгжүүлэхэд зориулагдсан. Python API-н талаарх дэлгэрэнгүй мэдээллийг https://bookc3.espressif.com/rm/python-api-reference хаягаар авна уу.
Admin CLI Admin CLI нь илүү өндөр түвшний хандалттай бөгөөд төхөөрөмжийн гэрчилгээг бөөнөөр үүсгэхийн тулд ESP RainMaker хувийн хэрэглээнд зориулагдсан болно.
3.2.1 Нэхэмжлэлийн үйлчилгээ
RainMaker төхөөрөмжүүд болон үүлний арын хэсгийн хоорондох бүх харилцааг MQTT+TLS-ээр гүйцэтгэдэг. ESP RainMaker-ийн хүрээнд "Нэхэмжлэл" гэдэг нь төхөөрөмжүүд үүлэн арын хэсэгт холбогдохын тулд Нэхэмжлэлийн үйлчилгээнээс гэрчилгээ авах үйл явц юм. Нэхэмжлэлийн үйлчилгээ нь зөвхөн нийтийн RainMaker үйлчилгээнд хамаарах бөгөөд хувийн хэрэглээнд төхөөрөмжийн гэрчилгээг Admin CLI-ээр дамжуулан бөөнөөр үүсгэх шаардлагатайг анхаарна уу. ESP RainMaker нь гурван төрлийн нэхэмжлэлийн үйлчилгээг дэмждэг: Өөрийгөө нэхэмжлэх
Төхөөрөмж нь интернетэд холбогдсоны дараа eFuse-д урьдчилан програмчлагдсан нууц түлхүүрээр дамжуулан гэрчилгээгээ авдаг. Хост хөтлөгдсөн нэхэмжлэл Сертификатуудыг RainMaker данстай хөгжүүлэлтийн хостоос авсан. Тусламжтай нэхэмжлэл Сертификатуудыг нөөц бүрдүүлэх явцад ухаалаг утасны программуудаар дамжуулан авдаг.
3.2.2 RainMaker агент
Зураг 3.3. RainMaker SDK-ийн бүтэц RainMaker Agent-ийн үндсэн үүрэг нь холболтыг хангах, хэрэглээний давхаргад дээш/доош холбоосын үүлэн өгөгдлийг боловсруулахад туслах явдал юм. Үүнийг RainMaker SDK 22 ESP32-C3 утасгүй адал явдал: IoT-ийн цогц гарын авлага ашиглан бүтээжээ.
RTOS, NVS, MQTT зэрэг ESP-IDF бүрэлдэхүүн хэсгүүдийг ашиглан батлагдсан ESP-IDF тогтолцоонд тулгуурлан боловсруулсан. Зураг 3.3-т RainMaker SDK-ийн бүтцийг харуулав.
RainMaker SDK нь хоёр үндсэн функцийг агуулдаг.
Холболт
би. Төхөөрөмжийн гэрчилгээ авахын тулд Claiming Service-тэй хамтран ажиллаж байна.
ii. Алсын удирдлага, мессеж тайлагнах, хэрэглэгчийн удирдлага, төхөөрөмжийн удирдлага гэх мэтийг хэрэгжүүлэхийн тулд аюулгүй MQTT протоколыг ашиглан үүлэн арын хэсэгт холбогдож байна. Энэ нь анхдагч байдлаар ESP-IDF-д MQTT бүрэлдэхүүнийг ашигладаг бөгөөд бусадтай холбогдохын тулд хийсвэрлэх давхаргаар хангадаг. протоколын стекүүд.
iii. Wi-Fi холболт болон хангамжид зориулсан Wi-Fi хангамжийн бүрэлдэхүүн хэсэг, OTA шинэчлэлтэд зориулсан esp https ota бүрэлдэхүүн хэсэг, esp орон нутгийн төхөөрөмжийг илрүүлэх, холбоход зориулсан локал ctrl бүрэлдэхүүн хэсэг. Эдгээр бүх зорилгод энгийн тохиргооны тусламжтайгаар хүрч болно.
Өгөгдөл боловсруулах
би. Нэхэмжлэлийн үйлчилгээнээс гаргасан төхөөрөмжийн гэрчилгээ болон RainMaker-ийг ажиллуулахад шаардлагатай өгөгдлийг хадгалах, анхдагчаар nvs flash бүрэлдэхүүнээс өгсөн интерфейсийг ашиглан, хөгжүүлэгчдэд шууд ашиглах API-г өгнө.
ii. Дээш/доод холбоосын үүлэн өгөгдлийг боловсруулахын тулд буцаан дуудлагын механизмыг ашиглах, хөгжүүлэгчид хялбар боловсруулахын тулд програмын давхарга руу өгөгдлийг автоматаар блокоос гаргах. Жишээ ньample, RainMaker SDK нь IoT төхөөрөмжүүдийг тайлбарлах TSL загваруудыг тодорхойлох, цаг хугацаа, цаг тоолох, дуут удирдлага зэрэг функцуудыг хэрэгжүүлэхэд шаардлагатай TSL (Зүйлийн тодорхойлолтын хэл) өгөгдлийг бий болгох баялаг интерфейсээр хангадаг. Хугацаа гэх мэт үндсэн интерактив функцүүдийн хувьд RainMaker SDK нь хөгжүүлэлтгүй шийдлийг өгдөг бөгөөд шаардлагатай үед зүгээр л идэвхжүүлдэг. Дараа нь RainMaker Agent нь өгөгдлийг шууд боловсруулж, холбогдох MQTT сэдвээр үүлэн рүү илгээж, үүлэн арын хэсэгт өгөгдлийн өөрчлөлтийг буцааж дуудлагын механизмаар дамжуулан буцааж өгөх болно.
3.2.3 Cloud Backend
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 Cloud бүтээгдэхүүн
Чиг үүрэг
AWS Cognito
Хэрэглэгчийн итгэмжлэлийг удирдах, гуравдагч этгээдийн нэвтрэлтийг дэмжих
AWS Ламбда
Cloud backend-ийн бизнесийн үндсэн логикийг хэрэгжүүлэх
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-г бүрэн харуулах боломжтой.
Жишээ ньample, хэрэв ухаалаг гэрэл RainMaker SDK-ээр хангагдсан хуучин дээр баригдсан болamples, чийдэнгийн гэрлийн дүрс болон UI нь тохируулга дууссаны дараа автоматаар ачаалагдах болно. Хэрэглэгчид интерфейсээр дамжуулан гэрлийн өнгө, тод байдлыг өөрчилж, Alexa Smart Home Skill эсвэл Google Smart Home Actions-ийг ESP RainMaker бүртгэлтэйгээ холбосноор гуравдагч талын хяналтыг хэрэгжүүлэх боломжтой. Зураг 3.4-д дүрс болон UI өмнөхийг харуулавampAlexa, Google Home, ESP RainMaker App дээр тус тус чийдэнгийн гэрлийг асаана.
24 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
(a) Жишээ ньample - Alexa
(б) Жишээ ньample - Google Нүүр хуудас
(в) Жишээ ньample - ESP RainMaker
Зураг 3.4. Жишээ ньampAlexa, Google Home болон ESP RainMaker програм дээрх чийдэнгийн гэрлийн дүрс болон UI
3.3 Дадлага: ESP RainMaker ашиглан хөгжүүлэх гол цэгүүд
Төхөөрөмжийн драйверын давхарга дууссаны дараа хөгжүүлэгчид RainMaker SDK-аас өгсөн API-г ашиглан TSL загваруудыг үүсгэж, доош холбоосын өгөгдлийг боловсруулж, бүтээгдэхүүний тодорхойлолт, шаардлагад үндэслэн ESP RainMaker үндсэн үйлчилгээг идэвхжүүлж болно.
Бүлэг 3. ESP RainMaker 25-ийн танилцуулга
Энэ номын 9.4-т RainMaker-д LED ухаалаг гэрлийн хэрэгжилтийг тайлбарлах болно. Дибаг хийх явцад хөгжүүлэгчид 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-ийн хөгжүүлэгчийн бүртгэлээр тусад нь тохируулах шаардлагатай.
ЗӨВЛӨГӨӨ Үүлэн ашиглалтын талаарх дэлгэрэнгүй мэдээллийг https://customer.rainmaker.espressif хуудаснаас авна уу. com. Програм хангамжийн хувьд нийтийн серверээс хувийн сервер рүү шилжихэд зөвхөн төхөөрөмжийн гэрчилгээг солих шаардлагатай бөгөөд энэ нь шилжүүлгийн үр ашгийг ихээхэн сайжруулж, шилжих болон хоёрдогч дибаг хийх зардлыг бууруулдаг.
3.4 ESP RainMaker-ийн онцлог
ESP RainMaker функцууд нь хэрэглэгчийн удирдлага, эцсийн хэрэглэгчид, админ гэсэн гурван тал дээр голчлон чиглэгддэг. Өөрөөр заагаагүй бол бүх функцийг нийтийн болон хувийн серверт дэмждэг.
3.4.1 Хэрэглэгчийн удирдлага
Хэрэглэгчийн удирдлагын функцууд нь эцсийн хэрэглэгчдэд бүртгүүлэх, нэвтрэх, нууц үг солих, нууц үгээ сэргээх гэх мэт боломжийг олгодог.
26 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Бүртгүүлэх, нэвтрэх RainMaker-н дэмждэг бүртгэл, нэвтрэх аргууд нь: · Имэйл ID + Нууц үг · Утасны дугаар + Нууц үг · Google бүртгэл · Apple бүртгэл · GitHub бүртгэл (зөвхөн нийтийн сервер) · Амазон данс (зөвхөн хувийн сервер)
ТАЙЛБАР: Google/Amazon ашиглан бүртгүүлэх нь хэрэглэгчийн имэйл хаягийг RainMaker-тай хуваалцдаг. Apple-аас RainMaker үйлчилгээнд тусгайлан зориулж хэрэглэгчдэд олгодог хуурамч хаягийг ашиглан бүртгүүлээрэй. Google, Apple, Amazon бүртгэлээр анх удаа нэвтэрч буй хэрэглэгчдэд RainMaker бүртгэл автоматаар үүсгэгдэнэ.
Нууц үг солих Зөвхөн Имэйл id/Утасны дугаарт суурилсан нэвтрэхэд хүчинтэй. Нууц үг солигдсоны дараа бусад бүх идэвхтэй сессүүд гарах болно. AWS Cognito-ийн зан үйлийн дагуу бүртгэлээс гарсан сессүүд 1 цаг хүртэл идэвхтэй байх боломжтой.
Нууц үг сэргээх Зөвхөн Имэйл id/Утасны дугаар дээр суурилсан нэвтрэлтэнд хүчинтэй.
3.4.2 Эцсийн хэрэглэгчийн онцлог
Эцсийн хэрэглэгчдэд нээлттэй функцууд нь дотоод болон алсын удирдлага, хяналт, цагийн хуваарь, төхөөрөмжийг бүлэглэх, төхөөрөмж хуваалцах, түлхэх мэдэгдэл, гуравдагч талын интеграцчилал зэрэг орно.
Алсын удирдлага, хяналт · Нэг буюу бүх төхөөрөмжийн тохиргоо, параметрийн утга, холболтын төлөвийг асууна. · Ганц эсвэл олон төхөөрөмжийн параметрүүдийг тохируулах.
Орон нутгийн хяналт, хяналт Гар утас болон төхөөрөмжийг дотоод хяналтанд байлгахын тулд нэг сүлжээнд холбогдсон байх шаардлагатай.
Хуваарь гаргах · Хэрэглэгчид тодорхой цагт тодорхой үйлдлүүдийг урьдчилан тохируулдаг. · Хуваарийг гүйцэтгэх явцад төхөөрөмжид интернет холболт шаардлагагүй. · Ганц эсвэл олон төхөөрөмжид нэг удаа эсвэл давтах (өдөрүүдийг зааж өгөх).
Төхөөрөмжийн бүлэглэл Олон түвшний хийсвэр бүлэглэлийг дэмждэг Группын мета өгөгдлийг гэрийн өрөөний бүтцийг бий болгоход ашиглаж болно.
Бүлэг 3. ESP RainMaker 27-ийн танилцуулга
Төхөөрөмж хуваалцах Нэг буюу хэд хэдэн төхөөрөмжийг нэг буюу хэд хэдэн хэрэглэгчтэй хуваалцаж болно.
Түлхэх мэдэгдэл Эцсийн хэрэглэгчид · Шинэ төхөөрөмж(үүд) нэмэгдсэн/устгагдсан · Төхөөрөмж үүлэнд холбогдсон · Төхөөрөмж клоудаас салгагдсан · Төхөөрөмж хуваалцах хүсэлт үүсгэсэн/зөвшөөрсөн/татгалзсан · Төхөөрөмжүүдийн мэдээлсэн дохиоллын мессежүүд
Гэрэл, унтраалга, залгуур, сэнс, температур мэдрэгч зэрэг RainMaker төхөөрөмжүүдийг хянахын тулд гуравдагч талын Alexa болон Google Voice Assistant-ийг нэгтгэдэг.
3.4.3 Админы онцлогууд
Админ функцууд нь админуудад төхөөрөмжийн бүртгэл, төхөөрөмжийн бүлэглэл, OTA шинэчлэлтүүдийг хэрэгжүүлэх боломжийг олгодог view статистик болон ESP Insights мэдээлэл.
Төхөөрөмжийн бүртгэл Төхөөрөмжийн гэрчилгээ үүсгэж, Admin CLI-д бүртгүүлнэ үү (зөвхөн хувийн сервер).
Төхөөрөмжийн бүлэглэлт Төхөөрөмжийн мэдээлэлд үндэслэн хийсвэр эсвэл бүтэцлэгдсэн бүлгүүдийг үүсгэнэ (зөвхөн хувийн сервер).
Over-the-Air (OTA) шинэчлэлтүүд Хувилбар болон загварт үндэслэн программ хангамжийг нэг буюу хэд хэдэн төхөөрөмж эсвэл бүлэгт байршуулах OTA ажлуудыг хянах, цуцлах эсвэл архивлах.
View статистик ViewБоломжтой статистикт: · Төхөөрөмжийн бүртгэл (админаас бүртгүүлсэн гэрчилгээ) · Төхөөрөмжийн идэвхжүүлэлт (төхөөрөмжийг анх удаа холбосон) · Хэрэглэгчийн бүртгэл · Хэрэглэгчийн төхөөрөмжийн холбоо
View ESP Insights мэдээлэл Viewболомжтой ESP Insights өгөгдөлд: · Алдаа, анхааруулга, захиалгат бүртгэлүүд · Гэмтлийн тайлан, дүн шинжилгээ · Дахин ачаалах шалтгаан · Санах ойн ашиглалт, RSSI гэх мэт хэмжигдэхүүнүүд · Захиалгат хэмжигдэхүүнүүд болон хувьсагчид
28 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
3.5 Дүгнэлт
Энэ бүлэгт бид RainMaker-н нийтийн байршуулалт болон хувийн байршуулалтын хоорондох зарим гол ялгааг танилцуулсан. Espressif-ийн гаргасан хувийн ESP RainMaker шийдэл нь маш найдвартай бөгөөд өргөтгөх боломжтой. Бүх ESP32 цуврал чипүүдийг AWS-д холбож, тохируулсан бөгөөд энэ нь зардлыг ихээхэн бууруулдаг. Хөгжүүлэгчид AWS үүлэн бүтээгдэхүүний талаар суралцахгүйгээр прототипийн баталгаажуулалтад анхаарлаа төвлөрүүлж чадна. Мөн бид ESP RainMaker-ийн хэрэгжилт, онцлог, платформыг ашиглан хөгжүүлэх зарим гол санааг тайлбарлав.
Android-д зориулсан ESP RainMaker-г татаж авахын тулд сканнердаж, iOS-д зориулсан ESP RainMaker-г татаж аваарай
Бүлэг 3. ESP RainMaker 29-ийн танилцуулга
30 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Бүлэг Тохируулах 4 Хөгжлийн орчин
Энэ бүлэгт ESP32-C3-ийн албан ёсны програм хангамж хөгжүүлэлтийн хүрээ болох ESP-IDF-д анхаарлаа хандуулдаг. Бид янз бүрийн үйлдлийн системүүд дээр орчныг хэрхэн тохируулах талаар тайлбарлаж, ESP-IDF-ийн төслийн бүтэц, бүтээх системийг танилцуулж, холбогдох хөгжүүлэлтийн хэрэгслүүдийг ашиглах болно. Дараа нь бид эксийг эмхэтгэх, ажиллуулах үйл явцыг танилцуулах болноample төсөл, s бүрт гаралтын бүртгэлийн дэлгэрэнгүй тайлбарыг санал болгож байхадtage.
4.1 ESP-IDF хэтэрсэнview
ESP-IDF (Espressif IoT Development Framework) нь Espressif технологийн нэг цэгийн IoT хөгжүүлэлтийн тогтолцоо юм. Энэ нь C/C++-г хөгжүүлэлтийн үндсэн хэл болгон ашигладаг бөгөөд Linux, Mac, Windows зэрэг үндсэн үйлдлийн системүүдийн хүрээнд хөрвүүлэн нэгтгэхийг дэмждэг. эксampЭнэ номонд орсон программуудыг ESP-IDF ашиглан боловсруулсан бөгөөд энэ нь дараах боломжуудыг санал болгодог: · SoC системийн түвшний драйверууд. ESP-IDF нь ESP32, ESP32-S2, ESP32-C3,
болон бусад чипс. Эдгээр драйверууд нь захын доод түвшний (LL) номын сан, техник хангамжийн хийсвэрлэх давхаргын (HAL) номын сан, RTOS дэмжлэг болон дээд түвшний драйверын программ хангамж гэх мэт орно. · Чухал бүрэлдэхүүн хэсгүүд. ESP-IDF нь IoT хөгжүүлэхэд шаардлагатай үндсэн бүрэлдэхүүн хэсгүүдийг агуулдаг. Үүнд HTTP болон MQTT зэрэг олон сүлжээний протоколын стек, динамик давтамжийн модуляц бүхий эрчим хүчний удирдлагын тогтолцоо, Flash шифрлэлт, аюулгүй ачаалах гэх мэт функцууд орно. · Хөгжүүлэлт, үйлдвэрлэлийн хэрэгслүүд. ESP-IDF нь CMake-д суурилсан барилгын систем, GCC дээр суурилсан хөндлөн эмхэтгэлийн хэрэгслийн сүлжээ, 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 дэмжигдсэн дэмжигдсэн дэмжигдсэн
өмнөхview
v5.0 дэмжигдсэн дэмжигдсэн дэмжигдсэн дэмжигдсэн дэмжигдсэн дэмжигдсэн өмнөхview
32 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Үндсэн хувилбаруудын давталт нь ихэвчлэн хүрээний бүтцэд тохируулга хийх, эмхэтгэлийн системийн шинэчлэлтүүдийг багтаадаг. Жишээ ньample, v3.*-ээс v4.* руу гарсан гол өөрчлөлт нь бүтээх системийг Make-ээс CMake руу аажмаар шилжүүлсэн явдал байв. Нөгөөтэйгүүр, жижиг хувилбаруудыг давтах нь ихэвчлэн шинэ функцуудыг нэмэх эсвэл шинэ чипийг дэмжихийг шаарддаг.
Тогтвортой хувилбарууд болон GitHub салбаруудын хоорондын хамаарлыг ялгаж, ойлгох нь чухал юм. v*.* эсвэл v*.*.* гэж шошгологдсон хувилбарууд нь Espressif-ийн бүрэн дотоод туршилтыг давсан тогтвортой хувилбаруудыг төлөөлдөг. Нэгэнт зассан бол ижил хувилбарт зориулсан код, хэрэгслийн хэлхээ, хувилбарын баримтууд өөрчлөгдөөгүй хэвээр байна. Гэсэн хэдий ч, GitHub салбарууд (жишээ нь, хувилбар/v4.3 салбар) өдөр бүр байнга кодын үйлдлүүдийг хийдэг. Иймд нэг салбар дахь хоёр кодын хэсэг өөр байж болох тул хөгжүүлэгчид өөрсдийн кодыг зохих ёсоор нь яаралтай шинэчлэх шаардлагатай болдог.
4.1.2 ESP-IDF Git ажлын урсгал
Espressif нь ESP-IDF-д зориулсан Git-ийн тодорхой ажлын урсгалыг дагаж мөрддөг бөгөөд үүнийг дараах байдлаар тодорхойлсон болно.
· Хөгжлийн үндсэн салбар болох мастер салбар дээр шинэ өөрчлөлтүүд хийгдсэн. Мастер салбар дээрх ESP-IDF хувилбар нь үргэлж -dev-г агуулдаг tag v4.3-dev гэх мэт одоо хөгжүүлж байгаа гэдгийг харуулах. Мастер салбар дахь өөрчлөлтийг эхлээд дахин хийнэviewed болон Espressif-ийн дотоод репозитор дээр туршиж, автоматжуулсан туршилт дууссаны дараа GitHub руу шилжүүлсэн.
· Шинэ хувилбар нь мастер салбар дээрх функцийг хөгжүүлж, бета туршилтанд орох шалгуурыг хангасны дараа хувилбар/ v4.3 гэх мэт шинэ салбар руу шилжинэ. Үүнээс гадна энэ шинэ салбар нь tagged нь v4.3-beta1 шиг хувилбарын өмнөх хувилбар юм. Хөгжүүлэгчид GitHub платформ руу хандаж салбаруудын бүрэн жагсаалтад хандах боломжтой tags ESP-IDF-ийн хувьд. Бета хувилбар (хувилбарын өмнөх хувилбар) нь нэлээд олон тооны мэдэгдэж буй асуудлуудтай байж болохыг анхаарах нь чухал юм. Бета хувилбар нь тасралтгүй туршилтанд хамрагдаж байгаа тул алдаа засварыг энэ хувилбар болон мастер салбар хоёуланд нь нэгэн зэрэг нэмдэг. Үүний зэрэгцээ мастер салбар нь дараагийн хувилбарт зориулсан шинэ боломжуудыг аль хэдийн боловсруулж эхэлсэн байж магадгүй юм. Туршилт бараг дуусмагц салбар дээр хувилбарын нэр дэвшигч (rc) шошгыг нэмсэн бөгөөд энэ нь v4.3-rc1 гэх мэт албан ёсны хувилбарт нэр дэвшигч болохыг харуулж байна. Энэ үед сtage, салбар нь хувилбарын өмнөх хувилбар хэвээр байна.
· Хэрэв ямар нэгэн томоохон алдаа илрээгүй эсвэл мэдээлээгүй бол хувилбарын өмнөх хувилбар нь үндсэн хувилбарын шошго (жишээ нь, v5.0) эсвэл бага хувилбарын шошгыг (жишээ нь, v4.3) хүлээн авч, албан ёсны хувилбар болох бөгөөд үүнийг баримтжуулсан болно. хувилбарын тэмдэглэл хуудсанд. Дараа нь энэ хувилбарт илэрсэн аливаа алдааг хувилбарын салбар дээр зассан. Гарын авлагын туршилт дууссаны дараа салбар нь алдаа засах хувилбарын шошгыг (жишээ нь, v4.3.2) оноосон бөгөөд үүнийг хувилбарын тэмдэглэлийн хуудсанд мөн тусгасан болно.
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 33
4.1.3 Тохиромжтой хувилбарыг сонгох
ESP-IDF албан ёсоор ESP32-C3-ийг v4.3 хувилбараас дэмжиж эхэлсэн бөгөөд v4.4 нь энэ номыг бичих үед албан ёсоор гараагүй байгаа тул энэ номонд ашигласан хувилбар нь v4.3.2 буюу шинэчилсэн хувилбар юм. v4.3. Гэсэн хэдий ч, таныг энэ номыг унших үед v4.4 буюу түүнээс дээш хувилбарууд бэлэн болсон байж магадгүй гэдгийг анхаарах нь чухал. Хувилбарыг сонгохдоо бид дараахь зүйлийг санал болгож байна.
· Анхан шатны хөгжүүлэгчдийн хувьд тогтвортой v4.3 хувилбар эсвэл хуучин хувилбартай нийцсэн шинэчилсэн хувилбарыг сонгохыг зөвлөж байна.ampЭнэ номонд ашигласан хувилбар.
· Бөөнөөр үйлдвэрлэхийн тулд хамгийн сүүлийн үеийн техникийн дэмжлэгийг авахын тулд хамгийн сүүлийн үеийн тогтвортой хувилбарыг ашиглахыг зөвлөж байна.
· Хэрэв та шинэ чип дээр туршилт хийх эсвэл бүтээгдэхүүний шинэ боломжуудыг судлах гэж байгаа бол мастер салбарыг ашиглана уу. Хамгийн сүүлийн хувилбар нь хамгийн сүүлийн үеийн бүх боломжуудыг агуулсан боловч мэдэгдэж байгаа эсвэл үл мэдэгдэх алдаа байж магадгүй гэдгийг санаарай.
· Ашиглаж буй тогтвортой хувилбар нь хүссэн шинэ боломжуудыг агуулаагүй бөгөөд та үндсэн салбартай холбоотой эрсдлийг багасгахыг хүсвэл хувилбар/v4.4 салбар гэх мэт холбогдох хувилбарыг ашиглах талаар бодож үзээрэй. Espressif-ийн GitHub репозитор нь эхлээд хувилбар/v4.4 салбарыг үүсгээд дараа нь бүх функцын хөгжүүлэлт, туршилтыг дуусгасны дараа энэ салбарын тодорхой түүхэн агшинд тулгуурлан тогтвортой v4.4 хувилбарыг гаргах болно.
4.1.4 гаруйview ESP-IDF SDK лавлах
ESP-IDF SDK нь esp-idf болон .espressif гэсэн хоёр үндсэн сангаас бүрдэнэ. Эхнийх нь ESP-IDF репозиторын эх кодыг агуулдаг files болон эмхэтгэлийн скриптүүд байдаг бол сүүлийнх нь голчлон эмхэтгэлийн хэрэгслийн сүлжээ болон бусад програм хангамжийг хадгалдаг. Эдгээр хоёр лавлахтай танилцах нь хөгжүүлэгчдэд байгаа нөөцийг илүү сайн ашиглах, боловсруулах үйл явцыг хурдасгахад тусална. ESP-IDF-ийн лавлах бүтцийг доор тайлбарлав.
(1) Зураг 4.2-т үзүүлсэн шиг ESP-IDF хадгалах кодын лавлах (/esp/esp-idf).
а. Бүрэлдэхүүн хэсгийн лавлах бүрэлдэхүүн хэсгүүд
Энэхүү үндсэн лавлах нь ESP-IDF-ийн олон чухал програм хангамжийн бүрэлдэхүүн хэсгүүдийг нэгтгэдэг. Энэ лавлах доторх бүрэлдэхүүн хэсгүүдэд найдахгүйгээр ямар ч төслийн кодыг эмхэтгэх боломжгүй. Үүнд янз бүрийн Espressif чипүүдэд зориулсан драйверын дэмжлэг орно. Дагалдах төхөөрөмжүүдэд зориулсан LL номын сан, HAL номын сангийн интерфейсээс дээд түвшний Драйвер болон Виртуал хүртэл File Системийн (VFS) давхаргын дэмжлэгтэйгээр хөгжүүлэгчид өөрсдийн хөгжлийн хэрэгцээнд тохирсон өөр өөр түвшний бүрэлдэхүүн хэсгүүдийг сонгох боломжтой. ESP-IDF нь мөн TCP/IP, HTTP, MQTT гэх мэт олон стандарт сүлжээний протоколын стекийг дэмждэг. WebСокет гэх мэт. Хөгжүүлэгчид сүлжээний програмуудыг бүтээхдээ Socket гэх мэт танил интерфейсийг ашиглаж болно. Бүрэлдэхүүн хэсгүүд нь ойлголтыг өгдөг
34 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Зураг 4.2. ESP-IDF хадгалах кодын лавлах
маш сайн ажиллагаатай бөгөөд программд хялбархан нэгтгэгдэж, хөгжүүлэгчдэд зөвхөн бизнесийн логик дээр анхаарлаа төвлөрүүлэх боломжийг олгодог. Зарим нийтлэг бүрэлдэхүүн хэсгүүдэд: · драйвер: Энэ бүрэлдэхүүн хэсэг нь төрөл бүрийн Espressif-д зориулсан захын драйвер програмуудыг агуулдаг
GPIO, I2C, SPI, UART, LEDC (PWM) гэх мэт чип цувралууд. Энэ бүрэлдэхүүн хэсгийн захын драйверын програмууд нь чипээс хамааралгүй хийсвэр интерфейсийг санал болгодог. Захын төхөөрөмж бүр нийтлэг толгойтой байдаг file (gpio.h гэх мэт), өөр өөр чипэд зориулсан дэмжлэгийн асуултуудыг шийдвэрлэх хэрэгцээг арилгадаг. · esp_wifi: Wi-Fi-г тусгай захын төхөөрөмж болгон тусдаа бүрэлдэхүүн хэсэг болгон авч үздэг. Үүнд янз бүрийн Wi-Fi драйверын горимыг эхлүүлэх, параметрийн тохиргоо, үйл явдлын боловсруулалт зэрэг олон API орно. Энэ бүрэлдэхүүн хэсгийн зарим функцийг статик холбоосын сангууд хэлбэрээр өгдөг. ESP-IDF нь мөн ашиглахад хялбар болгох үүднээс драйверийн дэлгэрэнгүй баримт бичгийг өгдөг.
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 35
· freertos: Энэ бүрэлдэхүүн хэсэг нь бүрэн FreeRTOS кодыг агуулдаг. Энэ үйлдлийн системд иж бүрэн дэмжлэг үзүүлэхээс гадна Espressif нь хоёр цөмт чипүүдэд дэмжлэг үзүүлжээ. ESP32 болон ESP32-S3 зэрэг хоёр цөмт чипүүдийн хувьд хэрэглэгчид тодорхой цөм дээр даалгавар үүсгэж болно.
б. Баримт бичгийн лавлах docs
Энэ лавлах нь Эхлэх гарын авлага, API лавлах гарын авлага, хөгжлийн гарын авлага гэх мэт ESP-IDF-тэй холбоотой хөгжүүлэлтийн баримт бичгүүдийг агуулдаг.
ТАЙЛБАР: Автомат хэрэгслээр хөрвүүлсний дараа энэ лавлахын агуулгыг https://docs.espressif.com/projects/esp-idf хаягаар байрлуулна. Баримт бичгийн зорилтот хэсгийг ESP32-C3 болгон сольж, заасан ESP-IDF хувилбарыг сонгохоо анхаарна уу.
в. Скрипт хэрэгслийн хэрэгслүүд
Энэ лавлах нь idf.py, дэлгэцийн терминалын хэрэгсэл idf_monitor.py гэх мэт түгээмэл хэрэглэгддэг эмхэтгэлийн хэрэгслүүдийг агуулдаг. cmake дэд лавлах нь үндсэн скриптийг агуулдаг. fileэмхэтгэлийн системийн s нь ESP-IDF эмхэтгэлийн дүрмийг хэрэгжүүлэх үндэс суурь болдог. Хүрээлэн буй орчны хувьсагчдыг нэмэх үед хэрэгслүүдийн лавлах доторх агуулгыг системийн орчны хувьсагч руу нэмж, idf.py-г төслийн зам дагуу шууд ажиллуулах боломжийг олгодог.
г. Жишээ ньample програмын лавлах жишээ ньamples
Энэ лавлах нь ESP-IDF ex-ийн асар их цуглуулгыг агуулдагampбүрэлдэхүүн хэсэг API-ийн хэрэглээг харуулсан програмууд. эксamples нь ангилалд үндэслэн янз бүрийн дэд сангуудад хуваагдана:
· эхлэх: Энэ дэд лавлах нь анхдагч түвшний exampХэрэглэгчдэд үндсэн ойлголтуудыг ойлгоход нь туслахын тулд "Сайн уу ертөнц" болон "анивчсан" гэх мэт.
· bluetooth: Та Bluetooth-тэй холбоотой exampBluetooth LE Mesh, Bluetooth LE HID, BluFi гэх мэтийг энд оруулав.
· wifi: Энэ дэд лавлах нь Wi-Fi ex дээр төвлөрдөгampWi-Fi SoftAP, Wi-Fi Station, espnow гэх мэт үндсэн програмууд, түүнчлэн өмчийн харилцааны протоколууд орно.ampEspressif-ийн les. Үүнд мөн олон хэрэглээний давхарга орноampIperf, Sniffer, Smart Config гэх мэт Wi-Fi-д суурилсан les.
· захын төхөөрөмжүүд: Энэхүү өргөн хүрээтэй дэд лавлах нь захын нэрээр олон тооны дэд хавтсанд хуваагддаг. Энэ нь голчлон захын драйверийг агуулнаampEspressif чипсэд зориулсан les, экс тус бүртэйample хэд хэдэн дэд экс агуулсанamples. Жишээлбэл, gpio дэд лавлах нь хоёр examples: GPIO болон GPIO матриц гар. Бүх экс биш гэдгийг анхаарах нь чухалampЭнэ лавлах дахь les нь ESP32-C3-д хамааралтай.
36 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Жишээ ньampле, эксampusb/host доторх les нь зөвхөн USB Host тоног төхөөрөмж (ESP32-S3 гэх мэт) бүхий дагалдах төхөөрөмжид хамаарах бөгөөд ESP32-C3-д энэ нэмэлт төхөөрөмж байхгүй. Эмхэтгэлийн систем нь гол төлөв зорилтот зорилгоо тодорхойлоход заавар өгдөг. README file хуучин бүрийнample дэмжигдсэн чипүүдийг жагсаав. · протоколууд: Энэ дэд лавлах нь exampMQTT, HTTP, HTTP сервер, PPPoS, Modbus, mDNS, SNTP зэрэг олон төрлийн харилцаа холбооны протоколуудыг хамардаг.ampIoT хөгжүүлэхэд шаардлагатай. · provisioning: Эндээс та нөхцлийн өмнөх хувилбарыг олох болноampWi-Fi хангамж, Bluetooth LE хангамж гэх мэт янз бүрийн аргуудад зориулсан les. · систем: Энэ дэд лавлах нь системийн дибаг хийх жишээтэйamples (жишээ нь, стек мөшгих, ажиллах цагийг хянах, даалгаврын хяналт), эрчим хүчний менежмент гэх мэтamples (жишээ нь, янз бүрийн унтах горимууд, хамтран процессорууд) болон жишээ ньampконсол терминал, үйл явдлын давталт, системийн таймер зэрэг нийтлэг системийн бүрэлдэхүүн хэсгүүдтэй холбоотой. · Хадгалах: Энэ дэд лавлах дотроос та exampбүгдээрээ file ESP-IDF (Flash, SD карт болон бусад хадгалах хэрэгслийг унших, бичих гэх мэт) дэмждэг систем, хадгалах механизм, түүнчлэнampдэгдэмхий бус хадгалах (NVS), FatFS, SPIFFS болон бусад file системийн үйл ажиллагаа. · аюулгүй байдал: Энэ дэд лавлах exampфлаш шифрлэлттэй холбоотой les. (2) Зураг 4.3-т үзүүлсэн шиг ESP-IDF эмхэтгэлийн хэрэгслийн гинжин лавлах (/.espressif).
Зураг 4.3. ESP-IDF эмхэтгэлийн хэрэгслийн гинжин лавлах
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 37
а. Програм хангамжийн түгээлтийн лавлах dist
ESP-IDF хэрэгслийн сүлжээ болон бусад програм хангамжийг шахсан багц хэлбэрээр тараадаг. Суулгах явцад суулгах хэрэгсэл нь эхлээд шахсан багцыг dist лавлах руу татаж аваад дараа нь заасан лавлах руу задалдаг. Суулгац дууссаны дараа энэ лавлах дахь агуулгыг аюулгүйгээр устгаж болно.
б. Python виртуал орчны лавлах python env
ESP-IDF-ийн янз бүрийн хувилбарууд нь Python багцын тодорхой хувилбаруудад тулгуурладаг. Эдгээр багцуудыг нэг хост дээр шууд суулгах нь багцын хувилбаруудын хооронд зөрчил үүсгэж болзошгүй. Үүнийг шийдвэрлэхийн тулд ESP-IDF нь өөр өөр багц хувилбаруудыг тусгаарлахын тулд Python виртуал орчныг ашигладаг. Энэхүү механизмын тусламжтайгаар хөгжүүлэгчид ESP-IDF-ийн олон хувилбарыг нэг хост дээр суулгаж, өөр өөр орчны хувьсагчдыг импортлох замаар тэдгээрийн хооронд хялбархан шилжих боломжтой.
в. ESP-IDF эмхэтгэлийн хэрэгслийн гинжин лавлах хэрэгслүүд
Энэ лавлах нь үндсэндээ CMake хэрэгслүүд, Ninja бүтээх хэрэгслүүд болон эцсийн гүйцэтгэх програмыг үүсгэдэг gcc хэрэгслийн хэлхээ зэрэг ESP-IDF төслүүдийг эмхэтгэхэд шаардлагатай хөндлөн эмхэтгэлийн хэрэгслүүдийг агуулдаг. Нэмж дурдахад энэ лавлах нь C/C++ хэлний стандарт номын санг харгалзах толгойн хамт агуулдаг fileс. Хэрэв програм нь системийн толгой хэсгийг иш татсан бол file like #include , эмхэтгэлийн хэрэгслийн хэлхээ нь stdio.h-г олох болно file энэ директор дотор.
4.2 ESP-IDF хөгжүүлэлтийн орчинг тохируулах
ESP-IDF хөгжүүлэлтийн орчин нь Windows, Linux болон macOS зэрэг үндсэн үйлдлийн системийг дэмждэг. Энэ хэсэгт систем бүр дээр хөгжүүлэх орчныг хэрхэн тохируулах талаар танилцуулах болно. ESP32-C3-ийг Линукс систем дээр хөгжүүлэхийг зөвлөж байна, үүнийг энд дэлгэрэнгүй танилцуулах болно. Хөгжүүлэх хэрэгслүүдийн ижил төстэй байдлаас шалтгаалан олон зааврыг платформ дээр ашиглах боломжтой. Тиймээс энэ хэсгийн агуулгыг анхааралтай уншихыг зөвлөж байна.
ТАЙЛБАР: Та энэ хэсэгт дурдсан тушаалуудыг агуулсан https://bookc3.espressif.com/esp32c3 хаягаас авах боломжтой онлайн баримт бичгүүдийг үзэж болно.
4.2.1 Линукс дээр ESP-IDF хөгжүүлэлтийн орчинг тохируулах
ESP-IDF хөгжүүлэлтийн орчинд шаардлагатай GNU хөгжүүлэлт болон дибаг хийх хэрэгслүүд нь Линукс системээс гаралтай. Нэмж дурдахад, Линукс дээрх командын мөрийн терминал нь хүчирхэг бөгөөд хэрэглэгчдэд ээлтэй тул ESP32-C3 програмыг хөгжүүлэхэд тохиромжтой. Чи чадна
38 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
өөрийн дуртай Линукс түгээлтийг сонго, гэхдээ бид Ubuntu эсвэл бусад Debian-д суурилсан системийг ашиглахыг зөвлөж байна. Энэ хэсэг нь Ubuntu 20.04 дээр ESP-IDF хөгжүүлэлтийн орчныг тохируулах зааварчилгааг өгдөг.
1. Шаардлагатай багцуудыг суулгана уу
Шинэ терминал нээж, шаардлагатай бүх багцуудыг суулгахын тулд дараах тушаалыг гүйцэтгэнэ. Энэ тушаал нь аль хэдийн суулгасан багцуудыг автоматаар алгасах болно.
$ sudo apt-get суулгах git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
ЗӨВЛӨГӨӨ Дээрх тушаалын хувьд та администраторын бүртгэл болон нууц үгээ ашиглах шаардлагатай. Анхдагч байдлаар, нууц үг оруулах үед ямар ч мэдээлэл харагдахгүй. Процедурыг үргэлжлүүлэхийн тулд "Enter" товчийг дарахад л хангалттай.
Git бол ESP-IDF-ийн кодын удирдлагын гол хэрэгсэл юм. Хөгжлийн орчныг амжилттай тохируулсны дараа та git log командыг ашиглаж болно view ESP-IDF-ийг үүсгэснээс хойш хийсэн бүх кодын өөрчлөлт. Нэмж дурдахад Git-ийг ESP-IDF-д мөн хувилбарын мэдээллийг баталгаажуулахад ашигладаг бөгөөд энэ нь тодорхой хувилбарт тохирох хэрэгслийн зөв хэлхээг суулгахад шаардлагатай байдаг. Git-ийн хамт бусад чухал системийн хэрэгслүүдэд Python орно. ESP-IDF нь Python хэл дээр бичигдсэн олон тооны автоматжуулалтын скриптүүдийг агуулдаг. CMake, Ninja-build, Ccache зэрэг хэрэгслүүд нь C/C++ төслүүдэд өргөн хэрэглэгддэг бөгөөд ESP-IDF-д анхдагч код эмхэтгэх, бүтээх хэрэгсэл болдог. libusb-1.0-0 болон dfu-util нь USB цуваа холболт болон програм хангамжийг шатаахад ашигладаг гол драйверууд юм. Програм хангамжийн багцуудыг суулгасны дараа та apt show-г ашиглаж болно багц бүрийн дэлгэрэнгүй тайлбарыг авах тушаал. Жишээ ньample, Git хэрэгслийн тайлбарын мэдээллийг хэвлэхийн тулд apt show git ашиглана уу.
Асуулт: Хэрэв Python хувилбар дэмжигдээгүй бол яах вэ? Х: ESP-IDF v4.3 нь v3.6-аас багагүй Python хувилбарыг шаарддаг. Ubuntu-н хуучин хувилбаруудын хувьд Python-ийн илүү өндөр хувилбарыг гараар татаж аваад суулгаж, Python3-г анхдагч Python орчин болгон тохируулна уу. Та нарийвчилсан зааврыг update-alternatives python гэсэн түлхүүр үгээр хайж олох боломжтой.
2. ESP-IDF репозиторийн кодыг татаж авна уу
Терминал нээж, mkdir командыг ашиглан гэрийн лавлахдаа esp нэртэй хавтас үүсгэнэ үү. Хэрэв та хүсвэл фолдерт өөр нэр сонгож болно. Хавтас руу орохын тулд cd командыг ашиглана уу.
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 39
$ mkdir -p /esp $ cd /esp
Доор үзүүлсэн шиг ESP-IDF репозиторийн кодыг татаж авахын тулд git clone командыг ашиглана уу.
$ git clone -b v4.3.2 – рекурсив https://github.com/espressif/esp-idf.git
Дээрх тушаалд -b v4.3.2 параметр нь татаж авах хувилбарыг зааж өгдөг (энэ тохиолдолд 4.3.2 хувилбар). Параметр –рекурсив нь 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 хэрэгсэл суулгагчийг татаж авна уу
ЗӨВЛӨГӨӨ Windows 10 болон түүнээс дээш хувилбар дээр ESP-IDF хөгжүүлэлтийн орчинг тохируулахыг зөвлөж байна. Та https://dl.espressif.com/dl/esp-idf/ хаягаас суулгагчийг татаж авах боломжтой. Суулгагч нь мөн нээлттэй эхийн программ хангамж бөгөөд эх код нь байж болно viewed: https: //github.com/espressif/idf-installer.
· Онлайн ESP-IDF хэрэгсэл суулгагч
Энэ суулгагч нь харьцангуй жижиг, ойролцоогоор 4 МБ хэмжээтэй бөгөөд суулгах явцад бусад багц болон кодуудыг татаж авах болно. АдванtagОнлайн суулгагчийн e нь зөвхөн суулгах явцад програм хангамжийн багц болон кодыг татаж авахаас гадна ESP-IDF-ийн боломжтой бүх хувилбарууд болон GitHub кодын хамгийн сүүлийн үеийн салбарыг (мастер салбар гэх мэт) суулгах боломжийг олгодог. . Сул талtage нь суулгах явцад сүлжээний холболтыг шаарддаг бөгөөд энэ нь сүлжээний асуудлаас болж суулгалтыг доголдуулж болзошгүй юм.
40 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
· Офлайн ESP-IDF хэрэгсэл суулгагч Энэхүү суулгагч нь илүү том, ойролцоогоор 1 ГБ хэмжээтэй бөгөөд орчинг тохируулахад шаардлагатай бүх програм хангамжийн багц болон кодыг агуулдаг. Гол давуу талtagОфлайн суулгагчийн e нь интернет холболтгүй компьютер дээр ашиглах боломжтой бөгөөд ерөнхийдөө суулгацын амжилтын түвшин өндөр байдаг. Офлайн суулгагч нь зөвхөн v*.* эсвэл v*.*.*-ээр тодорхойлогдсон ESP-IDF-ийн тогтвортой хувилбаруудыг суулгах боломжтой гэдгийг тэмдэглэх нь зүйтэй.
2. Суулгагчийн тохиромжтой хувилбарыг татаж авсны дараа ESP-IDF хэрэгслүүд суулгагчийг ажиллуул (жишээ нь ESP-IDF Tools Offline 4.3.2-г авна уу)ample энд), exe дээр давхар товшино уу file ESP-IDF суулгах интерфейсийг эхлүүлэх. Дараах нь офлайн суулгагчийг ашиглан ESP-IDF тогтвортой v4.3.2 хувилбарыг хэрхэн суулгахыг харуулж байна.
(1) Зураг 4.4-т үзүүлсэн "Суулгах хэлийг сонгох" интерфэйсээс доош унах жагсаалтаас ашиглах хэлээ сонгоно уу.
Зураг 4.4. "Суулгах хэлийг сонгох" интерфейс (2) Хэлийг сонгосны дараа "OK" дээр дарж "Лицензийн гэрээ" интерфейс гарч ирнэ.
(Зураг 4.5-ыг үз). Суулгах лицензийн гэрээг анхааралтай уншсаны дараа "Би гэрээг хүлээн зөвшөөрч байна" гэснийг сонгоод "Дараах" дээр дарна уу.
Зураг 4.5. “Лицензийн гэрээ” интерфейс Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 41
(3) Дахинview "Суулгахын өмнөх системийг шалгах" интерфейс дэх системийн тохиргоо (Зураг 4.6-г үзнэ үү). Windows хувилбар болон суулгасан вирусны эсрэг программ хангамжийн мэдээллийг шалгана уу. Хэрэв бүх тохиргоо хэвийн бол "Дараах" дээр дарна уу. Үгүй бол та "Бүтэн бүртгэл" дээр дарж үндсэн зүйлд суурилсан шийдлүүдийг авах боломжтой.
Зураг 4.6. "Суулгахаас өмнө системийг шалгах" интерфэйс ЗӨВЛӨГӨӨ
Та https://github.com/espressif/idf-installer/issues хаягаар дамжуулан тусламж авах боломжтой. (4) ESP-IDF суулгах лавлахыг сонгоно уу. Энд үзүүлсэн шиг D:/.espressif-г сонгоно уу
Зураг 4.7, "Дараах" дээр дарна уу. Энд байгаа .espressif нь далд лавлах гэдгийг анхаарна уу. Суулгац дууссаны дараа та боломжтой view нээх замаар энэ лавлахын тодорхой агуулгыг file менежер болон далд зүйлсийг харуулах.
Зураг 4.7. ESP-IDF суулгах лавлах 42 ESP32-C3 Wireless Adventure: IoT-ийн цогц гарын авлагыг сонгоно уу.
(5) Зураг 4.8-д үзүүлсэн шиг суулгах шаардлагатай бүрэлдэхүүн хэсгүүдийг шалгана уу. Анхдагч сонголтыг ашиглахыг зөвлөж байна, өөрөөр хэлбэл суулгацыг дуусгаад "Дараах" дээр дарна уу.
Зураг 4.8. Суулгах бүрэлдэхүүн хэсгүүдийг сонгох (6) Суулгах бүрэлдэхүүн хэсгүүдийг баталгаажуулж, автоматжуулсан суулгацыг эхлүүлэхийн тулд "Суулгах" дээр дарна уу.
4.9-р зурагт үзүүлсэн шиг зогсолтын процесс. Суулгах процесс хэдэн арван минут үргэлжилж болох ба суулгах процессын явцыг Зураг 4.10-д үзүүлэв. Тэвчээртэй хүлээнэ үү.
Зураг 4.9. Суулгахад бэлдэж байна (7) Суулгаж дууссаны дараа "ESP-IDF бүртгүүлэх"-г шалгахыг зөвлөж байна.
Вирусны эсрэг программ хангамжийг устгахаас урьдчилан сэргийлэхийн тулд Windows Defender-ийн үл хамаарах хэрэглүүрийг гүйцэтгэх хэрэгслүүд..." гэж бичнэ fileс. Хасагдах зүйлсийг нэмэх нь вирусны эсрэг байнга скан хийхийг алгасаж болно
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 43
Зураг 4.10. Суулгацын явцын бар програм хангамж нь Windows системийн кодын эмхэтгэлийн үр ашгийг ихээхэн сайжруулдаг. Зураг 4.11-д үзүүлсэн шиг хөгжүүлэлтийн орчныг суулгаж дуусгахын тулд "Finish" дээр дарна уу. Та "ESP-IDF PowerShell орчныг ажиллуулах" эсвэл "ESP-IDF командын мөрийг ажиллуулах" сонголтыг сонгож болно. Хөгжлийн орчин хэвийн ажиллаж байгаа эсэхийг шалгахын тулд суулгасны дараа шууд эмхэтгэх цонхыг ажиллуул.
Зураг 4.11. Суулгаж дууссан (8) Програмын жагсаалтад суулгасан хөгжүүлэлтийн орчныг нээнэ үү (ESP-IDF 4.3 аль нэг нь).
CMD эсвэл ESP-IDF 4.3 PowerShell терминал, Зураг 4.12) болон ESP-IDF орчны хувьсагч нь терминал дээр ажиллаж байх үед автоматаар нэмэгдэх болно. Үүний дараа та үйлдлүүдэд idf.py командыг ашиглаж болно. Нээлттэй ESP-IDF 4.3 CMD-ийг Зураг 4.13-т үзүүлэв. 44 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Зураг 4.12. Хөгжлийн орчинг суурилуулсан
Зураг 4.13. ESP-IDF 4.3 CMD
4.2.3 Mac дээр ESP-IDF хөгжүүлэлтийн орчинг тохируулах
Mac систем дээр ESP-IDF хөгжүүлэлтийн орчинг суулгах үйл явц нь Линукс системтэй ижил байна. Хадгалах кодыг татаж авах, хэрэгслийн хэлхээг суулгах командууд нь яг ижил байна. Зөвхөн хамааралтай багцуудыг суулгах командууд нь арай өөр байна. 1. Хамааралтай багцуудыг суулгах Терминал нээж, Python багцын удирдлагын хэрэгсэл болох pip-ийг дараах тушаалыг ажиллуулж суулгана.
% sudo хялбар суулгах пип
MacOS-д зориулсан багц удирдлагын хэрэгсэл болох Homebrew-ийг дараах тушаалыг ажиллуулж суулгана уу:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
Дараах тушаалыг ажиллуулж шаардлагатай хамаарлын багцуудыг суулгана уу:
% Brew python3 cmake ninja ccache dfu-util суулгана
2. ESP-IDF репозиторын кодыг татаж авах 4.2.1-д заасан зааврыг дагаж ESP-IDF хадгалах сангийн кодыг татаж авна уу. Алхамууд нь Линукс систем дээр татаж авахтай ижил байна.
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 45
3. ESP-IDF хөгжүүлэлтийн хэрэгслийн хэлхээг суулгана уу
ESP-IDF хөгжүүлэлтийн хэрэгслийн хэлхээг суулгахын тулд 4.2.1-д заасан зааврыг дагана уу. Алхамууд нь Линукс систем дээр суулгахтай адил байна.
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 дахь одоогийн фолдерыг хурдан нээх боломжтой. Эсвэл та Ctrl+ товчлолыг ашиглан VS Code дотор системийн өгөгдмөл терминалын консолыг нээж болно.
Зөвлөмж ESP32-C3 код боловсруулахдаа VS кодыг ашиглахыг зөвлөж байна. VS кодын хамгийн сүүлийн хувилбарыг https://code.visualstudio.com/ хаягаар татаж аваад суулгана уу.
4.2.5 Гуравдагч этгээдийн хөгжлийн орчны талаархи танилцуулга
ESP32-C3 нь үндсэндээ Си хэлийг ашигладаг албан ёсны ESP-IDF хөгжүүлэлтийн орчноос гадна бусад нийтлэг програмчлалын хэл болон гуравдагч талын хөгжүүлэлтийн өргөн хүрээний орчныг дэмждэг. Зарим онцлох сонголтууд нь:
Arduino: ESP32-C3 зэрэг төрөл бүрийн микроконтроллеруудыг дэмждэг техник хангамж болон програм хангамжийн нээлттэй эхийн платформ.
Энэ нь C++ хэлийг ашигладаг бөгөөд хялбаршуулсан, стандартчилагдсан API-г санал болгодог бөгөөд үүнийг ихэвчлэн Arduino хэл гэж нэрлэдэг. Arduino нь прототип боловсруулах, боловсролын хүрээнд өргөн хэрэглэгддэг. Энэ нь өргөтгөх боломжтой програм хангамжийн багц болон хялбар эмхэтгэх, анивчих боломжийг олгодог IDE-ээр хангадаг.
MicroPython: суулгагдсан микроконтроллерийн платформ дээр ажиллахад зориулагдсан Python 3 хэлний орчуулагч.
Энгийн скрипт хэлээр энэ нь ESP32-C3-ийн захын эх үүсвэрүүд (UART, SPI, I2C гэх мэт) болон холбооны функцуудад (Wi-Fi, Bluetooth LE гэх мэт) шууд хандах боломжтой.
46 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
Энэ нь техник хангамжийн харилцан үйлчлэлийг хялбаршуулдаг. MicroPython нь Python-ийн өргөн цар хүрээтэй математик үйлдлийн номын сантай хослуулан ESP32-C3 дээр нарийн төвөгтэй алгоритмуудыг хэрэгжүүлэх боломжийг олгож, хиймэл оюун ухаантай холбоотой програмуудыг хөгжүүлэхэд тусалдаг. Скрипт хэлний хувьд давтан эмхэтгэл хийх шаардлагагүй; өөрчлөлт хийж, скриптийг шууд гүйцэтгэх боломжтой.
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
files, хуваалтын хүснэгт гэх мэт. Төслүүдийг хуулж, дамжуулж болох ба ижил гүйцэтгэх боломжтой file ESP-IDF хөгжүүлэлтийн орчинтой ижил хувилбартай машинуудад эмхэтгэж, үүсгэж болно. Ердийн ESP-IDF төсөл file бүтцийг Зураг 4.14-т үзүүлэв.
Зураг 4.14. Ердийн ESP-IDF төсөл file бүтэц ESP-IDF нь ESP32, ESP32-S цуврал, ESP32-C цуврал, ESP32-H цуврал гэх мэт Espressif-ийн олон IoT чипийг дэмждэг тул кодыг эмхэтгэхийн өмнө зорилтот түвшинг тодорхойлох шаардлагатай. Зорилтот зорилго нь хэрэглээний программыг ажиллуулдаг техник хангамжийн төхөөрөмж болон эмхэтгэлийн системийн бүтээх зорилт юм. Өөрийн хэрэгцээ шаардлагаас хамааран та төслийн нэг буюу хэд хэдэн зорилтыг тодорхойлж болно. Жишээ ньample, idf.py set-target esp32c3 командын тусламжтайгаар та эмхэтгэлийн зорилтыг ESP32-C3 болгон тохируулж болох бөгөөд энэ үед ESP32C3-ийн анхдагч параметрүүд болон эмхэтгэлийн хэрэгслийн гинжин хэлхээг ачаалах болно. Эмхэтгэл хийсний дараа ESP32C3-д зориулж гүйцэтгэх программ үүсгэж болно. Та мөн set-target командыг дахин ажиллуулж өөр зорилт тавих боломжтой бөгөөд эмхэтгэлийн систем автоматаар цэвэрлэж, дахин тохируулах болно. Бүрэлдэхүүн хэсгүүд
ESP-IDF-ийн бүрэлдэхүүн хэсгүүд нь эмхэтгэлийн системд удирддаг модульчлагдсан, бие даасан кодын нэгжүүд юм. Тэдгээрийг фолдер хэлбэрээр зохион байгуулдаг бөгөөд фолдерын нэр нь анхдагчаар бүрэлдэхүүн хэсгийн нэрийг илэрхийлдэг. Бүрэлдэхүүн хэсэг бүр өөрийн гэсэн эмхэтгэлийн скрипттэй байдаг. 48 ESP32-C3 Wireless Adventure: IoT-ийн иж бүрэн гарын авлага.
түүний эмхэтгэлийн параметрүүд болон хамаарлыг тодорхойлдог. Эмхэтгэх явцад бүрэлдэхүүн хэсгүүдийг тусдаа статик номын санд нэгтгэдэг (.a files) ба эцэст нь бусад бүрэлдэхүүн хэсгүүдтэй хослуулан хэрэглээний программыг бүрдүүлнэ.
ESP-IDF нь үйлдлийн систем, захын драйверууд, сүлжээний протоколын стек зэрэг чухал функцуудыг бүрэлдэхүүн хэсгүүдийн хэлбэрээр хангадаг. Эдгээр бүрэлдэхүүн хэсгүүд нь ESP-IDF үндсэн лавлах дотор байрлах бүрэлдэхүүн хэсгүүдийн лавлахад хадгалагддаг. Хөгжүүлэгчид эдгээр бүрэлдэхүүн хэсгүүдийг myProject-ийн бүрэлдэхүүн хэсгүүдийн лавлах руу хуулах шаардлагагүй. Үүний оронд тэд зөвхөн төслийн CMakeLists.txt дээр эдгээр бүрэлдэхүүн хэсгүүдийн хамаарлын хамаарлыг зааж өгөх хэрэгтэй. file REQUIRES эсвэл PRIV_REQUIRES удирдамжийг ашиглан. Эмхэтгэлийн систем нь шаардлагатай бүрэлдэхүүн хэсгүүдийг автоматаар олж, эмхэтгэх болно.
Тиймээс myProject доорх бүрэлдэхүүн хэсгүүдийн лавлах шаардлагагүй. Энэ нь зөвхөн гуравдагч этгээдийн номын сан эсвэл хэрэглэгчийн тодорхойлсон код байж болох төслийн зарим тусгай бүрэлдэхүүн хэсгүүдийг оруулахад ашиглагддаг. Нэмж дурдахад бүрэлдэхүүн хэсгүүдийг ESP-IDF эсвэл одоогийн төслөөс өөр дурын лавлахаас, тухайлбал өөр директорт хадгалагдсан нээлттэй эхийн төслөөс авах боломжтой. Энэ тохиолдолд та үндсэн лавлах доор байрлах CMakeLists.txt доторх EXTRA_COMPONENT_DIRS хувьсагчийг тохируулах замаар бүрэлдэхүүн хэсгийн замыг нэмэхэд л хангалттай. Энэ лавлах нь ижил нэртэй ESP-IDF бүрэлдэхүүнийг хүчингүй болгож, зөв бүрэлдэхүүнийг ашиглахыг баталгаажуулна.
Нэвтрэх програмын үндсэн хэсэг Төслийн үндсэн лавлах нь үүнийг дагадаг file бусад бүрэлдэхүүн хэсгүүдийн нэгэн адил бүтэц (жишээ нь, бүрэлдэхүүн хэсэг 1). Гэсэн хэдий ч энэ нь төсөл болгонд заавал байх ёстой бүрэлдэхүүн хэсэг учраас онцгой ач холбогдолтой юм. Үндсэн лавлах нь төслийн эх код болон хэрэглэгчийн програмын нэвтрэх цэгийг агуулдаг бөгөөд ихэвчлэн app_main гэж нэрлэгддэг. Анхдагч байдлаар, хэрэглэгчийн програмын гүйцэтгэл нь энэ оруулгын цэгээс эхэлдэг. Гол бүрэлдэхүүн хэсэг нь хайлтын зам дахь бүх бүрэлдэхүүн хэсгүүдээс автоматаар хамаардаг гэдгээрээ ялгаатай. Тиймээс CMakeLists.txt доторх REQUIRES эсвэл PRIV_REQUIRES удирдамжийг ашиглан хамаарлыг тодорхой зааж өгөх шаардлагагүй. file.
Тохиргоо file Төслийн үндсэн лавлах нь тохиргоог агуулдаг file sdkconfig гэж нэрлэгддэг бөгөөд энэ нь төслийн бүх бүрэлдэхүүн хэсгүүдийн тохиргооны параметрүүдийг агуулдаг. sdkconfig file нь эмхэтгэлийн системээр автоматаар үүсгэгдэх ба idf.py menuconfig командаар өөрчилж, сэргээж болно. Menuconfig сонголтууд нь ихэвчлэн төслийн Kconfig.projbuild болон бүрэлдэхүүн хэсгүүдийн Kconfig-ээс гаралтай. Бүрэлдэхүүн хэсэг хөгжүүлэгчид бүрэлдэхүүнийг уян хатан, тохируулах боломжтой болгохын тулд ерөнхийдөө Kconfig-д тохиргооны зүйлсийг нэмдэг.
Бүтээлийн лавлах Анхдагч байдлаар, төслийн доторх бүтээх лавлах завсрын мэдээллийг хадгалдаг files ба fi-
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 49
idf.py бүтээх командаар үүсгэгдсэн гүйцэтгэх боломжтой програмууд. Ерөнхийдөө, бүтээх лавлахын агуулгыг шууд үзэх шаардлагагүй. ESP-IDF нь хөрвүүлсэн хоёртын файлыг автоматаар олохын тулд idf.py флаш командыг ашиглах гэх мэт сантай харилцах урьдчилан тодорхойлсон тушаалуудыг өгдөг. file мөн заасан флаш хаяг руу анивчина уу, эсвэл idf.py fullclean командыг ашиглан бүтээх лавлахыг бүхэлд нь цэвэрлэ.
Хуваалтын хүснэгт (partitions.csv) Төсөл бүрд флэшийн зайг хувааж, гүйцэтгэх програмын хэмжээ, эхлэх хаяг, хэрэглэгчийн өгөгдлийн зайг зааж өгөх хуваалтын хүснэгт шаардлагатай. Тушаал idf.py flash эсвэл OTA шинэчлэх програм нь програм хангамжийг энэ хүснэгтийн дагуу харгалзах хаягаар анивчина. ESP-IDF цэсийн тохиргооноос сонгож болох partitions_singleapp.csv болон partitions_two_ ota.csv зэрэг бүрэлдэхүүн хэсгүүд/ partition_table дотор хэд хэдэн өгөгдмөл хуваалтын хүснэгтүүдийг өгдөг.
Хэрэв системийн өгөгдмөл хуваалтын хүснэгт нь төслийн шаардлагыг хангаж чадахгүй бол төслийн лавлах руу захиалгат partitions.csv-г нэмж, menuconfig дотроос сонгож болно.
4.3.3 Эмхэтгэлийн системийн үндсэн дүрмүүд
Ижил нэртэй бүрэлдэхүүн хэсгүүдийг дарах дүрэм Бүрэлдэхүүн хэсгүүдийг хайх явцад эмхэтгэлийн систем нь тодорхой дарааллыг дагаж мөрддөг. Энэ нь эхлээд ESP-IDF-ийн дотоод бүрэлдэхүүн хэсгүүдийг хайж, дараа нь хэрэглэгчийн төслийн бүрэлдэхүүн хэсгүүдийг хайж, эцэст нь EXTRA_COMPONENT_DIRS доторх бүрэлдэхүүн хэсгүүдийг хайдаг. Олон лавлах нь ижил нэртэй бүрэлдэхүүн хэсгүүдийг агуулсан тохиолдолд сүүлийн лавлахаас олдсон бүрэлдэхүүн хэсэг нь ижил нэртэй өмнөх бүрэлдэхүүн хэсгүүдийг хүчингүй болгоно. Энэ дүрэм нь хэрэглэгчийн төслийн хүрээнд ESP-IDF бүрэлдэхүүн хэсгүүдийг өөрчлөх боломжийг олгодог ба анхны ESP-IDF кодыг бүрэн бүтэн байлгах боломжийг олгодог.
Нийтлэг бүрэлдэхүүн хэсгүүдийг анхдагчаар оруулах дүрмүүд 4.3.2-т дурдсанчлан, бүрэлдэхүүн хэсгүүд нь CMakeLists.txt доторх бусад бүрэлдэхүүн хэсгүүдээс хамаарах хамаарлыг тодорхой зааж өгөх шаардлагатай. Гэсэн хэдий ч freertos гэх мэт нийтлэг бүрэлдэхүүн хэсгүүд нь эмхэтгэлийн скрипт дээр тэдгээрийн хамаарлын хамаарлыг тодорхой заагаагүй байсан ч гэсэн анхдагч байдлаар бүтээх системд автоматаар ордог. ESP-IDF-ийн нийтлэг бүрэлдэхүүн хэсгүүдэд freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, болон cxx орно. Эдгээр нийтлэг бүрэлдэхүүн хэсгүүдийг ашиглах нь CMakeLists.txt-г бичихдээ дахин давтагдахаас зайлсхийж, илүү товчилно.
Тохиргооны зүйлсийг хүчингүй болгох дүрэм Хөгжүүлэгчид өгөгдмөл тохиргоог нэмснээр үндсэн тохиргооны параметрүүдийг нэмж болно. file төсөлд sdkconfig.defaults гэж нэрлэсэн. Жишээ ньample, CONFIG_LOG_-г нэмж байна
50 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
DEFAULT_LEVEL_NONE = y нь UART интерфэйсийг анхдагчаар бүртгэлийн өгөгдлийг хэвлэхгүй байхаар тохируулах боломжтой. Цаашилбал, хэрэв тодорхой зорилтод зориулж тодорхой параметрүүдийг тохируулах шаардлагатай бол тохиргоо file sdkconfig.defaults.TARGET_NAME-г нэмж болох ба TARGET_NAME нь esp32s2, esp32c3 гэх мэт байж болно. Эдгээр тохиргоо files нь ерөнхий өгөгдмөл тохиргоотойгоор эмхэтгэх явцад sdkconfig руу импортлогддог file Эхлээд sdkconfig.defaults, дараа нь зорилтот тохиргоог импортолж байна filesdkconfig.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, үүнийг бүрэлдэхүүн хэсгийн эмхэтгэлийн скрипт гэж нэрлэдэг. Бүрэлдэхүүн хэсгүүдийн эмхэтгэлийн скриптүүдийг үндсэндээ бүрэлдэхүүн хэсгийн хамаарал, тохиргооны параметрүүд, эх кодыг тодорхойлоход ашигладаг. files, мөн толгой хэсгийг оруулсан files for
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 51
эмхэтгэл. ESP-IDF-ийн idf_component_register-ийн захиалгат функцээр бүрэлдэхүүн хэсэг эмхэтгэлийн скриптэд шаардагдах хамгийн бага код нь дараах байдалтай байна.
1. idf_component_register(SRCS “src1.c”
2.
INCLUDE_DIRS "оруулна"
3.
Бүрэлдэхүүн хэсэг ШААРДЛАГА 1)
SRCS параметр нь эх сурвалжийн жагсаалтыг өгдөг fileБүрэлдэхүүн хэсэг дэх s, хэрэв олон байвал зайгаар тусгаарлана fileс. INCLUDE_DIRS параметр нь нийтийн толгойн жагсаалтыг өгдөг file Одоогийн бүрэлдэхүүн хэсгээс хамаарах бусад бүрэлдэхүүн хэсгүүдийн хайлтын замд нэмэгдэх бүрэлдэхүүн хэсгийн лавлах сангууд. REQUIRES параметр нь одоогийн бүрэлдэхүүн хэсгийн нийтийн бүрэлдэхүүн хэсгийн хамаарлыг тодорхойлдог. Бүрэлдэхүүн хэсгүүд нь бүрэлдэхүүн хэсэг2-ээс хамаарах бүрэлдэхүүн 1 гэх мэт ямар бүрэлдэхүүн хэсгүүдээс хамааралтай болохыг тодорхой зааж өгөх шаардлагатай. Гэхдээ анхдагчаар бүх бүрэлдэхүүн хэсгүүдээс хамаардаг үндсэн бүрэлдэхүүн хэсгийн хувьд REQUIRES параметрийг орхиж болно.
Нэмж дурдахад эх CMake командуудыг эмхэтгэлийн скриптэд ашиглаж болно. Жишээ ньample, set(VARIABLE “VALUE”) гэх мэт хувьсагчдыг тохируулахын тулд багц командыг ашиглана уу.
4.3.5 Нийтлэг командуудын танилцуулга
ESP-IDF нь код боловсруулах явцад CMake (төслийн тохиргооны хэрэгсэл), Ninja (төсөл бүтээх хэрэгсэл) болон esptool (flash хэрэгсэл) ашигладаг. Хэрэгсэл бүр эмхэтгэл, бүтээх, флэш үйл явцад өөр өөр үүрэг гүйцэтгэдэг бөгөөд өөр өөр үйлдлийн командуудыг дэмждэг. Хэрэглэгчийн ажиллагааг хөнгөвчлөхийн тулд 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 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
· idf.py цэвэр: завсрын хэсгийг цэвэрлэх fileТөслийн эмхэтгэлээр үүсгэгдсэн s. Төслийг бүхэлд нь дараагийн эмхэтгэлд нэгтгэхээс өөр аргагүй болно. CMake тохиргоо болон menuconfig-ийн хийсэн тохиргооны өөрчлөлтийг цэвэрлэх явцад устгахгүй гэдгийг анхаарна уу.
· idf.py fullclean: CMake тохиргооны бүх гаралтыг багтаасан бүтээх лавлахыг бүхэлд нь устгах fileс. Төслийг дахин бүтээх үед CMake төслийг эхнээс нь тохируулах болно. Энэ тушаал нь бүгдийг дахин устгах болно гэдгийг анхаарна уу files-г бүтээх лавлахад байгаа тул үүнийг болгоомжтой ашиглах, төслийн тохиргоо file устгахгүй.
· idf.py флэш: гүйцэтгэгдэх программыг хоёртын хувилбараар анивчуулах file Зорилтот ESP32-C3 дээр бүтээгдсэн. Сонголтууд -х ба -б цуваа портын төхөөрөмжийн нэр болон анивчих дамжуулах хурдыг тус тус тохируулахад ашигладаг. Хэрэв эдгээр хоёр сонголтыг заагаагүй бол цуваа портыг автоматаар илрүүлж, анхдагч дамжуулах хурдыг ашиглана.
· idf.py дэлгэц: зорилтот ESP32-C3-ийн цуваа портын гаралтыг харуулах. Хост талын цуваа портын төхөөрөмжийн нэрийг зааж өгөхийн тулд -p сонголтыг ашиглаж болно. Цуваа портыг хэвлэх үед дэлгэцээс гарахын тулд Ctrl+] товчлуурын хослолыг дарна уу.
Дээрх тушаалуудыг шаардлагатай бол нэгтгэж болно. Жишээ ньample, idf.py build flash monitor команд нь код эмхэтгэх, флаш хийх, цуваа портын дэлгэцийг дарааллаар нээх болно.
Та https://bookc3.espressif.com/build-system хаягаар зочилж ESP-IDF эмхэтгэлийн системийн талаар илүү ихийг мэдэх боломжтой.
4.4 Дадлага: Эмхэтгэх Examp"Анивчих" програм
4.4.1 Жишээ ньample Analysis
Энэ хэсэгт Blink программыг хуучин болгон авах болноampдүн шинжилгээ хийх file бодит төслийн бүтэц, кодчиллын дүрмийг нарийвчлан. Blink програм нь LED анивчдаг эффектийг хэрэгжүүлдэг бөгөөд төсөл нь экс лавлах хэсэгт байрладагampэх сурвалжийг агуулсан les/get-started/blink file, тохиргоо files, мөн хэд хэдэн эмхэтгэлийн скриптүүд.
Энэ номонд танилцуулсан ухаалаг гэрлийн төсөл нь энэ экс дээр үндэслэсэн болноampпрограм. Үүнийг дуусгахын тулд дараагийн бүлгүүдэд функцуудыг аажмаар нэмж оруулах болно.
Эх код Хөгжлийн процессыг бүхэлд нь харуулахын тулд Blink програмыг esp32c3-iot-projects/device firmware/1 blink руу хуулсан.
Blink төслийн лавлах бүтэц files-ийг Зураг 4.15-д үзүүлэв.
Blink төсөл нь зөвхөн нэг үндсэн санг агуулдаг бөгөөд энэ нь тусгай бүрэлдэхүүн хэсэг юм
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 53
Зураг 4.15. File blink төслийн лавлах бүтэц
4.3.2-т заасны дагуу оруулах ёстой. Үндсэн лавлах нь хэрэглэгчийн програмын нэвтрэх цэг болох app_main() функцийн хэрэгжилтийг хадгалахад голчлон ашиглагддаг. Blink төсөл нь бүрэлдэхүүн хэсгүүдийн лавлахыг агуулдаггүй, учир нь энэ хуучинample нь зөвхөн ESP-IDF-д дагалдах бүрэлдэхүүн хэсгүүдийг ашиглах шаардлагатай бөгөөд нэмэлт бүрэлдэхүүн хэсэг шаарддаггүй. Анивчих төсөлд багтсан CMakeLists.txt нь эмхэтгэлийн үйл явцыг удирдан чиглүүлэхэд ашиглагддаг бол Kconfig.projbuild нь энэ хуучин тохиргооны зүйлүүдийг нэмэхэд ашиглагддаг.ampпрограмыг цэсний тохиргоонд оруулна. Бусад шаардлагагүй files нь кодын эмхэтгэлд нөлөөлөхгүй тул энд хэлэлцэхгүй. Blink төслийн дэлгэрэнгүй танилцуулга files дараах байдалтай байна.
1. /*blink.c нь дараах толгой хэсгийг агуулна files*/
2. #include
//Стандарт С номын сангийн толгой file
3. #include “freertos/freeRTOS.h” //FreeRTOS үндсэн толгой file
4. #"freertos/task.h"-г оруулах
//FreeRTOS даалгаврын толгой хэсэг file
5. # "sdkconfig.h"-г оруулах
//Тохиргооны толгой хэсэг file kconfig үүсгэсэн
6. #"driver/gpio.h"-г оруулах
//GPIO драйверын толгой хэсэг file
Эх сурвалж file blink.c нь цуврал толгойг агуулдаг fileфункцийн тунхаглалд тохирох s
ионууд. ESP-IDF нь ерөнхийдөө номын сангийн стандарт толгой хэсгийг оруулах дарааллыг дагадаг files, FreeR-
TOS толгой files, жолоочийн толгой files, бусад бүрэлдэхүүн хэсгийн толгой files, төслийн толгой хэсэг files.
Толгой хэсгийн дараалал files орсон байгаа нь эмхэтгэлийн эцсийн үр дүнд нөлөөлж болзошгүй тул оролдоод үзээрэй
үндсэн дүрмийг дагаж мөрдөөрэй. sdkconfig.h автоматаар үүсгэгддэг гэдгийг тэмдэглэх нь зүйтэй
kconfig-ээр тохируулах бөгөөд зөвхөн idf.py menuconfig командаар тохируулж болно.
Энэ толгойн шууд өөрчлөлт file дарж бичих болно.
1. /*Та idf.py menuconfig доторх LED-д тохирох GPIO-г сонгож болох ба menuconfig-ийн өөрчлөлтийн үр дүн нь CONFIG_BLINK-ийн утга юм.
_GPIO өөрчлөгдөнө. Та мөн макро тодорхойлолтыг шууд өөрчилж болно
энд, CONFIG_BLINK_GPIO-г тогтмол утга болгон өөрчил.*/ 2. #BLINK_GPIO CONFIG_BLINK_GPIO-г тодорхойлох
3. хүчингүй болгох апп_main(хүчингүй)
4. {
5.
/*IO-г GPIO үндсэн функц болгон тохируулах, татах горимыг идэвхжүүлэх, мөн
6.
оролт гаралтын горимыг идэвхгүй болгох*/
7.
gpio_reset_pin(BLINK_GPIO);
54 ESP32-C3 утасгүй адал явдал: IoT-ийн иж бүрэн гарын авлага
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. }
/*GPIO-г гаралтын горимд тохируулах*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); байхад(1) {
/*Хэвлэх бүртгэл*/ printf(“LEDn-г унтрааж байна”); /*LED-г унтраах (гаралтын доод түвшин)*/ gpio_set_level(BLINK_GPIO, 0); /*Саатал (1000 мс)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("LEDn асаах"); /*LED-ийг асаах (гаралтын өндөр түвшин)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
Blink ex-д app_main() функцample програм нь хэрэглэгчийн програмын нэвтрэх цэг болдог. Энэ нь ямар ч параметргүй, буцах утгагүй энгийн функц юм. Энэ функцийг систем эхлүүлж дууссаны дараа дууддаг бөгөөд үүнд логийн цуваа портыг эхлүүлэх, нэг/хос цөмийг тохируулах, харуулын нохойг тохируулах зэрэг ажлууд багтана.
app_main() функц нь үндсэн нэртэй даалгаврын хүрээнд ажилладаг. Энэ даалгаврын стекийн хэмжээ болон тэргүүлэх чиглэлийг цэсийн тохиргооны Componentconfig Common ESP-тэй холбоотой тохиргоонд тохируулж болно.
LED анивчих гэх мэт энгийн ажлуудын хувьд шаардлагатай бүх кодыг 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-д нэмсэн s-ийг эмхэтгэх болно. Үүний зэрэгцээ CMakeLists.txt-н байрлаж буй замыг илэрхийлдэг "."-г INCLUDE_DIRS-д толгой хэсгийн хайлтын лавлах болгон нэмэх хэрэгтэй. fileс. CMakeLists.txt-ийн агуулга дараах байдалтай байна.
1. #V3.5-ыг одоогийн төслийн дэмждэг хамгийн эртний CMake хувилбар гэж зааж өгнө үү 2. #V3.5-аас доош хувилбаруудыг эмхэтгэлийг үргэлжлүүлэхээс өмнө шинэчлэх шаардлагатай 3. cmake_minimum_required(ХУВЛБАР 3.5) 4. #ESP-ийн анхдагч CMake тохиргоог оруулах -IDF эмхэтгэлийн систем
Бүлэг 4. Хөгжлийн орчныг бүрдүүлэх 55
5. оруулах($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 утасгүй адал явдал [pdf] Хэрэглэгчийн гарын авлага ESP32-C3 Утасгүй адал явдал, ESP32-C3, Утасгүй адал явдал, Адал явдал |