Агуулгын хүснэгт:
- Алхам 1: Шаардлага
- Алхам 2: Мэдрэгчийн програмыг бүтээх, асаах
- Алхам 3: Үүлийг тохируулах
- Алхам 4: AWS Lambda -ийг тохируулна уу
- Алхам 5: AWS Kinesis Firehose Data Stream -ийг тохируулна уу
- Алхам 6: Kinesis -д IAM -ийн үүргийг тохируулна уу
- Алхам 7: AWS EC2 -ийг тохируулна уу
- Алхам 8: EC2 -д IAM -ийн аюулгүй байдлын үүргийг тохируулна уу
- Алхам 9: EC2 Instance руу нэвтрэх
- Алхам 10: Google Газрын зургийн API -г авах
- Алхам 11: Серверийг ажиллуулна уу
- Алхам 12: Things Network дээр HTTP интеграцийг хийх
- Алхам 13: Мэдээлэл боловсруулах
- Алхам 14: Дүрслэл
- Алхам 15: Зээл ба гадаад холбоосууд
Видео: Замын хяналт: 15 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Өнөөдөр бид акселерометр, LoRaWAN, Amazon Web Services, Google Cloud API дээр суурилсан замын гажигийг хянах системийг хэрхэн яаж бий болгохыг танд үзүүлэх болно.
Алхам 1: Шаардлага
- DISCO-L072CZ-LRWAN1 самбар
- X-NUCLEO-IKS01A2 өргөтгөлийн модуль (акселлерометрийн хувьд)
- X-NUCLEO-GNSS1A1 (нутагшуулах зориулалттай)
- AWS данс
- Google Cloud Platform данс
Алхам 2: Мэдрэгчийн програмыг бүтээх, асаах
IKS01A2 ба GNSS1A1 -ийг самбар дээрх GPIO тээглүүрээр холбоно уу. GitHub -аас програмын кодыг татаж аваарай. ARM Mbed дээр данс үүсгээд (хэрэв танд байхгүй бол) онлайн хөрвүүлэгч дээрх кодыг импортлоорой. Зорилтот платформыг DISCO-L072CZ-LRWAN1 болгож тохируулаад төслийг хадгална уу. Одоо Things Network руу ороод, хэрэв танд байхгүй бол данс үүсгээрэй. Аппликешн үүсгэж, програм дотор шинэ төхөөрөмж үүсгээд холболтын горимыг OTAA болгож тохируулна уу. Mbed_app.json файл дахь "lora.appskey", "lora.nwkskey", "lora.device-address" гэсэн талбаруудыг бөглөхийн тулд тохирох параметрүүдийг авна уу.
Мэдрэгч нь акселерометр ба GNSS өгөгдлийг үе үе бүртгэж, LoRa холболтоор дамжуулан хамгийн ойрын гарц руу илгээдэг бөгөөд үүнийг Things Network дээрх манай програм руу дамжуулдаг. Дараагийн алхам бол үүл сервер болон TTN дээр HTTP интеграцийг тохируулах явдал юм.
Алхам 3: Үүлийг тохируулах
Одоо бид байршуулсан бүх самбараас өгөгдлийг цуглуулж нэгтгэх үүл дэд бүтцийг бий болгоход бэлэн байна. Энэхүү дэд бүтцийг доорх зурагт харуулав.
- Kinesis, ирж буй мэдээллийн урсгалыг зохицуулах;
- Lambda, өгөгдлийг хадгалахаас өмнө шүүж, урьдчилан боловсруулах;
- S3, бүх өгөгдлийг хадгалах;
- EC2, өгөгдөлд дүн шинжилгээ хийх, урд талын хэсгийг байрлуулах.
Алхам 4: AWS Lambda -ийг тохируулна уу
Ламбдагаас эхлээд энэхүү дэд бүтцийг бий болгоход шаардлагатай алхамуудыг бид дүрслэн харуулах болно.
- AWS дансаараа нэвтэрч, консолын үндсэн хуудаснаас Ламбда руу очно уу
- Функц үүсгэх дээр дарна уу
- Хуудасны дээд хэсэгт Scratch -аас зохиогчийг сонгох ёстой. Дараа нь бусад талбаруудыг зурган дээрх шиг бөглөөд Функц үүсгэх дээр дарна уу
- Та AWS Lambda функцийг үүсгэсэн бол https://github.com/roadteam/data-server хаягаар орж aws_lambda.py файлын агуулгыг хуудасны хоёрдугаар хагаст олсон редактор руу хуулж аваарай. Таны Lambda функц бэлэн боллоо:)
Алхам 5: AWS Kinesis Firehose Data Stream -ийг тохируулна уу
- AWS консолын үндсэн хуудас руу буцаж очоод үйлчилгээ рүү Kinesis руу очно уу
- Одоо та Kinesis -ийн үндсэн хуудсанд байна. Хуудасны баруун талд, 'Kinesis Firehose хүргэх урсгалууд' хэсэгт 'Шинэ хүргэлтийн урсгал үүсгэх' -ийг сонгоно уу.
- "Хүргэлтийн урсгалын нэр" хэсэгт "замын хяналт-урсгал" гэж бичнэ үү. Бусад талбаруудыг анхдагчаар үлдээж, дараа нь дарна уу
- Одоо 'AWS Lambda ашиглан эх бүртгэлийг өөрчлөх' хэсэгт Идэвхжүүлсэн сонголтыг сонгоод Lambda функцын хувьд шинээр үүсгэсэн 'road-monitoring-lambda' дээр дарна уу. Хэрэв бидний хийж буй үйлдэл нь тооцооллын хувьд үнэтэй биш тул функц дуусах тухай анхааруулга гарч ирвэл санаа зовох хэрэггүй. Бусад талбаруудыг анхдагчаар үлдээж, дараа нь дарна уу
- Амралтын газар болох Amazon S3 -ийг сонгож, S3 очих цэг болгон Шинэийг сонгоно уу. Хувин нэрээр "замын хяналт-хувин" гэж оруулаад дараа нь явна уу. Одоо бусад талбаруудыг анхдагчаар үлдээгээд Дараах дээр дарна уу
- Та Буферийн хэмжээг 1MB, Буферийн интервалыг 60 секунд болгож тохируулахыг хүсч болно. Хоёр нөхцлийн аль нэг нь хангагдсан тохиолдолд буферийг S3 болгон угаана. Хуудсыг бүү орхи, дараагийн алхамыг үзнэ үү
Алхам 6: Kinesis -д IAM -ийн үүргийг тохируулна уу
Одоо бид Kinesis -ийн аюулгүй байдлын зөвшөөрлийг тохируулсан, учир нь энэ нь Lambda функцийг дуудах ёстой бөгөөд үүнийг S3 дээр бичих болно.
- "IAM үүрэг" хэсэгт байгаа хуудасны доод талд "Шинэ сонголт үүсгэх" -ийг сонгоод, зурган дээрх шиг шинэ IAM үүрэг үүсгээд Зөвшөөрөх дээр дарна уу.
- Одоо та өмнөх хуудас руу буцаж очоод дараагийнхыг дарна уу. Одоо та бүх параметрүүдийг дахин шалгаж үзэхийг хүсч магадгүй юм. Дууссаны дараа "Хүргэлтийн урсгал үүсгэх" дээр дарна уу.
Kinesis-Lambda-S3 дамжуулах хоолой ашиглалтанд орлоо!
Алхам 7: AWS EC2 -ийг тохируулна уу
Одоо бид AWS үүлнээс өгөгдөл, мөн манай програмын урд хэсгийг байрлуулах серверээс өгөгдлийг татаж авах боломжийг олгодог зарим API -тэй EC2 данс үүсгэх болно. Үйлдвэрлэлийн орчинд та илүү өргөтгөх боломжтой AWS API гарцыг ашиглан API нийтлэхийг хүсч магадгүй юм.
- AWS консолын үндсэн хуудаснаас EC2 үйлчилгээ рүү очно уу
- Launch Instance дээр дарна уу
- Хайлтын дээд мөрөнд дараах кодыг оруулна уу: 'ami-08935252a36e25f85', энэ нь урьдчилан тохируулсан виртуал машины таних код юм. Баруун талын Сонгох дээр дарна уу
- 'Type' баганаас t2.micro -г сонгоод 'Review and launch' дээр дарна уу. Жишээг хараахан эхлүүлж болохгүй, дараагийн алхам руу орно уу
Алхам 8: EC2 -д IAM -ийн аюулгүй байдлын үүргийг тохируулна уу
- Эхлүүлэхийн өмнө бид жишээнийхээ аюулгүй байдлын бүлгийг өөрчлөхийг хүсч байна. Үүнийг хийхийн тулд "Аюулгүй байдлын бүлгүүд" хэсгийн баруун дээд хэсэгт байрлах "Аюулгүй байдлын бүлгүүдийг засах" дээр дарж дараах байдлаар шинэ аюулгүй байдлын бүлэг байгуулна уу. Энэ нь үндсэндээ SSH холболтын 22 порт, http үйлчилгээний 80 портыг харуулдаг таны галт ханыг тохируулдаг
- "Хяналт ба ажиллуулах" дээр дахин дарна уу. Одоо бүх параметрүүдийг тохируулсан эсэхийг шалгаарай. Дууссаны дараа Эхлүүлэх дээр дарна уу
- Дарахад шинэ цонх гарч ирэх бөгөөд жишээнд ssh холболт хийх түлхүүр хосыг тохируулах болно. "Шинэ түлхүүр хос үүсгэх" -ийг сонгоод "ec2-road-monitoring" гэж нэрлэнэ үү. Татаж авах түлхүүрийн хосыг дарна уу. Энэ файл алдагдах эсвэл (муу) найдвартай хадгалагдахгүй байх нь маш чухал юм: та түлхүүрийг дахин татаж авах боломжгүй болно.. Pem түлхүүрийг татаж авсны дараа жишээ ажиллуулахад бэлэн болно
Алхам 9: EC2 Instance руу нэвтрэх
Таны шинэ EC2 жишээ AWS үүл дээр байна. Та үүнээс өмнө татаж авсан түлхүүр файлаар холбогдож болно (энэ гарын авлагад бид ssh -ийн үндсийг мэддэг гэж бодож байна). Та жишээний IP хаягийг "Тодорхойлолт" хэсгийн хяналтын самбараас дараах байдлаар сонгож авах боломжтой: Та нийтийн IP эсвэл нийтийн DNS -ийг хоёуланг нь ашиглаж болно. Ssh клиентээр одоо тушаалыг оруулна уу:
ssh -i ec2-road-monitoring.pem ec2-user@YOUR-IP-ADDR-OR-DNS
ec2-road-monitoring.pem бол таны өмнө үүсгэсэн түлхүүр юм.
Одоо сервер талын кодыг татаж аваарай
git clone-давтагдах
Алхам 10: Google Газрын зургийн API -г авах
Бид бараг дуусч байна. Одоо бид хэрэглэгчдэд чиглүүлэлтийн цэг бүхий газрын зургийг харуулахын тулд html хуудсандаа google maps API -ийг тохируулах ёстой.
- Google акаунтаараа нэвтэрч https://cloud.google.com/maps-platform/ хаягаар орно уу.
- Хуудасны зүүн талд байгаа "Эхлэх" дээр дарна уу
- Цэснээс "Газрын зураг" -ыг сонгоод үргэлжлүүлэх дээр дарна уу
- Төслийн нэрний хувьд "замын хяналт" гэж оруулаад Next дарна уу
- Төлбөр тооцооны дэлгэрэнгүй мэдээллийг оруулаад Үргэлжлүүлэх дээр дарна уу
- Одоо таны төсөл бэлэн болсон бөгөөд бид API түлхүүрийг авахын тулд APIs & Services -> Итгэмжлэлийг дарна уу
Алхам 11: Серверийг ажиллуулна уу
Энд таны API түлхүүр байна. Таны хийх ёстой хамгийн сүүлийн зүйл бол data_visualization/anomalies_map.html руу орж түлхүүрээ файлын төгсгөлд хуулж, "YOUR-KEY-EERE" гэж орлуулах явдал юм.
Одоо бүх зүйл бэлэн болсон бөгөөд явахад бэлэн байна! Үүнийг EC2 жишээнд ажиллуулж эхлэхийн тулд: 'cd data-server' 'python flask_app.py'
Хөтөч дээрээ EC2 дансныхаа ip эсвэл dns хаягийг оруулна уу.
Алхам 12: Things Network дээр HTTP интеграцийг хийх
Одоо бид бүх арын дэд бүтцийг ажиллуулж, HTTP интеграцийг гүйцэтгэхийн тулд боловсруулж чадна.
- Шинэ програм үүсгэж, төхөөрөмжөө бүртгүүлнэ үү. Хэрэв бид хурдан эхлэх гарын авлагад хамрагдаагүй бол бид TTN -ийн анхан шатны мэдлэгтэй болно
- Хэрэглээний цэснээс 'Integrations', дараа нь 'Integration нэмэх' -г сонгоно уу.
- HTTP интеграцийг сонгоно уу
- Зургийн дараа талбаруудыг оруулаад EC2 ip эсвэл нийтийн DNS -ээр солино уу
Алхам 13: Мэдээлэл боловсруулах
Мэдрэгчээс цуглуулсан өгөгдөл T бүрийн хувьд та дараах алхмуудыг хийх ёстой.
- Т -ийн орон нутагт GPS -ийн координат унаж буй багцуудыг аваарай. Орон нутгийн хэсэг нь Т орчимд 100 метрийн зайд байрладаг бүх багц юм.
- Ойролцоох N тус бүрийн хувьд Z тэнхлэг дэх акселерометрийн квадрат дундажийг N псевдокодоор тооцоолно уу: дундаж = нийлбэр
- Квадрат стандарт хазайлтыг тооцоол. Псевдокодод: std = нийлбэр ([(x. Z_accel ** 2 - дундаж) ** 2 x ойролцоо байна))
- Энэ формат дахь гаралт: lat, long, Z_accel ** 2, mean, std
Орон нутгийг тооцоолохын тулд GPS зайг метрээр ашиглана уу. C ++ хэл дээр:
#тодорхойлох D2R (M_PI / 180.0)
#тодорхойлох EARTH_RAY 6371 давхар зай (давхар лат1, давхар урт1, давхар лат2, давхар урт2) {давхар dlong = (урт2 - урт1) * D2R; давхар длат = (лат2 - лат1) * D2R; давхар a = pow (sin (dlat/2.0), 2) + cos (lat1 * D2R) * cos (lat2 * D2R) * pow (sin (dlong/2.0), 2); давхар c = 2 * atan2 (sqrt (a), sqrt (1-a));
Одоо, өмнөх алхамд үүсгэсэн завсрын өгөгдлийг ашиглан гажигийг илрүүлж, мөр бүрт хэрэглэсэн энэхүү слипийг ашиглан гэнэн ангилал хий.
мөр = газрын зураг (float, line.split (","))
v = шугам [2] дундаж = мөр [3] std = мөр [4] хэрэв v (дундаж + std*3): хэрэв v (дундаж + std*2): хэрэв v (дундаж + std) байвал: o.ававлах ([1, мөр [0], мөр [1]) өөр: o.авах ([2, мөр [0], мөр [1]) өөр: o.авах ([3, мөр [0], мөр [1])
Хэвийн бус байдлыг https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80… 68–95–99.7 дүрмийг ашиглан ангилдаг.
Одоо танд энэ форматтай цуглуулга байна [төрөл, лат, урт].
Төрлийн утга нь дараах байдалтай байна.
- Бага зэргийн гажиг, энэ нь хамаагүй байж магадгүй юм
- Дунд зэргийн гажиг
- Чухал гажиг
Алхам 14: Дүрслэл
Дүрслэлийг ойлгох, өөрчлөхийн тулд бид Google Maps API -ийн онцлог тэмдэглэгээг хэрхэн ашиглах талаар сурах ёстой
Нэгдүгээрт, газрын зургийг дуудлага хийхдээ эхлүүлэх ёстой.
initMap () {функц
өгөгдөл = queryData (); map = new google.maps. Map (document.getElementById ('map'), {zoom: 15, center: {lat: data [0] [1], lng: data [0] [2]}}); тайлбар (); }
Энэ шуудангийн дуудлагын нэрийг url дээр (бид энд API түлхүүрийнхээ өмнө оруулсан болно) HTML хаягаар оруулна уу.
скрипт async defer src = "https://maps.googleapis.com/maps/api/js?key=[TEYEY&callback=initMap"
Объект үүсгэх үед тэмдэглэгээг газрын зураг дээр оруулж болно.
шинэ google.maps. Marker ({байрлал: {лат: LATITUDE, lng: LONGITUDE}, газрын зураг: газрын зураг, дүрс: "/path/to/icon.png"})
Гэмтлийн мэдээллийн санд байгаа өгөгдөл бүрийн хувьд тэмдэглэгээг оруулсан болохыг кодоос харж болно (remark () функцийг үзнэ үү) ба дүрс нь аномалийн ангилалд үндэслэсэн болно. Үүнийг хөтөч дээр ажиллуулахдаа зурган дээр үзүүлсэн шиг аномалийг шалгах хайрцгийг ашиглан шүүж болох газрын зургийг судалж үзэх боломжтой.
Алхам 15: Зээл ба гадаад холбоосууд
Энэхүү төслийг Жиованни Де Лука, Андреа Фиоралди, Пиетро Спадаччино нар хийсэн бөгөөд Ромын Сапиенза их сургуулийн компьютерийн шинжлэх ухааны инженерийн чиглэлээр магистрантурт суралцаж байна.
-
Энэхүү үзэл баримтлалын нотолгоог танилцуулахын тулд зохиогчид ашигладаг слайдууд:
www.slideshare.net/PietroSpadaccino/road-m…
-
GitHub репо бүх кодтой:
github.com/roadteam
Зөвлөмж болгож буй:
ESP8266, Google Home болон Openhab интеграцчлал, вэб хяналт ашиглан сохор хөшигний хяналт: 5 алхам (зурагтай)
ESP8266, Google Home болон Openhab интеграцчлал ба вэб хяналт ашиглан сохор хөшигний хяналт: Энэхүү зааварчилгаанд би хөшиг дээрээ автоматжуулалтыг хэрхэн нэмсэнээ харуулав. Би автоматжуулалтыг нэмж, устгахыг хүсч байсан тул бүх суурилуулалтыг хавсаргасан болно. Үндсэн хэсгүүд нь: Stepper мотор Stepper драйвер удирддаг bij ESP-01 Gear and mounting
MQ7-БОХИРДЛЫН ХЯНАЛТ, ЯРИЛЦАА, НОДЕМКУГ ХЭРЭГЖҮҮЛЭХ ХЯНАЛТ: 4 алхам
MQ7-БОХИРДЛЫН ХЯНАЛТ, ЯРИА, НОДЕМКҮҮДИЙГ ХЯНАЛТЫН ХЯНАЛТ: Бохирдол бол бидний өнөөгийн дэлхийн хамгийн том асуудал юм, гэхдээ бид бохирдлоо хэрхэн ойрхон хянах вэ, одоо маш амархан
ESP8266 RGB LED зурвасын WIFI хяналт - NODEMCU нь Wifi -ээр удирддаг Led зурвасын IR алсын удирдлага болгон ашигладаг. - RGB LED STRIP ухаалаг гар утасны хяналт: 4 алхам
ESP8266 RGB LED зурвасын WIFI хяналт | NODEMCU нь Wifi -ээр удирддаг Led зурвасын IR алсын удирдлага болгон ашигладаг. | RGB LED STRIP ухаалаг гар утасны хяналт: Сайн байна уу залуусаа, энэ заавар дээр бид nodemcu эсвэл esp8266 -ийг IR алсын удирдлага болгон RGB LED зурвасыг хэрхэн ашиглах талаар сурах болно, Nodemcu нь ухаалаг гар утсаар wifi -ээр хянагдах болно. Үндсэндээ та ухаалаг гар утсаараа RGB LED STRIP -ийг удирдах боломжтой
Замын объектын илрүүлэлтийг ашигладаг замын хөдөлгөөний анализатор: 11 алхам (зурагтай)
Замын объектын илрүүлэлтийг ашигладаг замын хөдөлгөөний анализатор: Орчин үеийн ертөнцөд гэрлэн дохио нь аюулгүй замд зайлшгүй шаардлагатай байдаг. Гэсэн хэдий ч улаан гэрэл асахтай зэрэгцэн хэн нэгэн гэрэл рүү ойртоход гэрлэн дохио олон удаа бухимдуулдаг. Энэ нь цагийг дэмий үрдэг, ялангуяа гэрэл асаж байвал
Төмөр замын өндөр төмөр замын тээврийн хэрэгслийг зам дээр хэрхэн яаж байрлуулах вэ: 10 алхам (зурагтай)
Төмөр замын өндөр төмөр замын тээврийн хэрэгслийг зам дээр хэрхэн яаж байрлуулах вэ: Аюулгүй байдлын урьдчилан сэргийлэх арга хэмжээ: Өндөр төмөр замын ачааны машиныг төмөр зам дээр тавьж буй хүн, туслах хүн нь харагдахын тулд өндөр үзэгдэх хувцас (хантааз, цамц, цамц) өмсөх ёстой. ирж болзошгүй замын хөдөлгөөнөөр. Хатуу малгай, бээлий ч өмсөх ёстой