Мазмұны:
- 1 -қадам: талаптар
- 2 -қадам: сенсордың микробағдарламасын құру және жыпылықтау
- 3 -қадам: бұлтты орнату
- 4 -қадам: AWS Lambda орнатыңыз
- 5 -қадам: AWS Kinesis Firehose деректер ағынын орнатыңыз
- 6 -қадам: Kinesis үшін IAM рөлін орнатыңыз
- 7 -қадам: AWS EC2 орнатыңыз
- 8 -қадам: EC2 үшін IAM қауіпсіздік рөлін орнатыңыз
- 9 -қадам: EC2 данасына кіріңіз
- 10 -қадам: Google Maps API алу
- 11 -қадам: Серверді іске қосыңыз
- 12 -қадам: Things Network желісінде HTTP интеграциясын орындаңыз
- 13 -қадам: мәліметтерді өңдеу
- 14 -қадам: визуализация
- 15 -қадам: Несиелер мен сыртқы сілтемелер
Бейне: Жол мониторингі: 15 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бүгін біз сізге акселерометрлер, 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 -қадам: бұлтты орнату
Енді біз барлық орналастырылған тақталардан деректерді жинайтын және жинақтайтын бұлтты инфрақұрылымды орнатуға дайынбыз. Бұл инфрақұрылым төмендегі суретте көрсетілген және ол мыналардан тұрады:
- Кинезис, кіріс деректер ағынын өңдеу үшін;
- Lambda, деректерді сақтамас бұрын оларды сүзуге және алдын ала өңдеуге;
- S3, барлық деректерді сақтау үшін;
- EC2, деректерді талдауға және фронтальды орналастыруға.
4 -қадам: AWS Lambda орнатыңыз
Біз Lambda -дан бастап осы инфрақұрылымды орнатуға қажетті қадамдарды суреттейміз.
- AWS есептік жазбаңызбен кіріңіз және консольдің негізгі бетінен Lambda -ге өтіңіз
- «Функцияны құру» түймесін басыңыз
- Беттің жоғарғы жағында Scratch ішінен Авторды таңдау керек. Содан кейін суреттегідей басқа өрістерді толтырыңыз, содан кейін «Функцияны құру» түймесін басыңыз
- Енді сіз AWS Lambda функциясын құрдыңыз, https://github.com/roadteam/data-server өтіңіз және aws_lambda.py файлының мазмұнын беттің екінші жартысынан табылған редакторға көшіріңіз. Сіздің Lambda функциясы қазір дайын:)
5 -қадам: AWS Kinesis Firehose деректер ағынын орнатыңыз
- Енді AWS консолінің негізгі бетіне оралыңыз, ал Қызметтерге Kinesis -ке өтіңіз
- Енді сіз Kinesis -тің басты бетіндесіз. Беттің оң жағындағы «Kinesis Firehose жеткізу ағындары» астында «Жаңа жеткізу ағыны жасау» тармағын таңдаңыз.
- «Жеткізу ағынының атауында» «жолды бақылау-ағын» деп жазыңыз. Басқа өрістерді әдепкі бойынша қалдырыңыз және Келесі түймесін басыңыз
- Енді «AWS Lambda көмегімен бастапқы жазбаларды түрлендіру» астында Қосылған опциясын таңдаңыз, ал Lambda функциясы ретінде жаңадан құрылған «жолды бақылау-ламбда» түймесін басыңыз. Функцияның күту уақыты туралы ескерту пайда болса, алаңдамаңыз, өйткені біз жасайтын операция есептік қымбат емес. Басқа өрістерді әдепкі бойынша қалдырыңыз және Келесі түймесін басыңыз
- Баратын жер ретінде Amazon S3 таңдаңыз, ал S3 тағайындалуы ретінде Жаңасын жасау таңдаңыз. Шелек атауы ретінде 'road-monitoring-bucket' енгізіңіз, содан кейін өтіңіз. Енді басқа өрістерді әдепкі бойынша қалдырыңыз және Келесі түймесін басыңыз
- Буфер өлшемін 1МБ және аралық аралықты 60 секундқа орнатқыңыз келуі мүмкін. Буфер екі шарттың біреуі қанағаттандырылған кезде S3 -ке жуылады. Беттен шықпаңыз, келесі қадамды қараңыз
6 -қадам: Kinesis үшін IAM рөлін орнатыңыз
Енді біз Kinesis үшін қауіпсіздік рұқсаттарын орнаттық, себебі ол Lambda функциясын алдын ала өңдеуге шақыруы керек, содан кейін ол S3 -те жазылады.
- «IAM рөлінде» тұрған беттің төменгі жағында «Таңдаудың жаңасын жасау» тармағын таңдаңыз, суреттегідей жаңа IAM рөлін жасаңыз және Рұқсат ету түймесін басыңыз.
- Енді сіз алдыңғы бетке оралдыңыз, Келесі түймесін басыңыз. Енді сіз барлық параметрлерді қайта тексергіңіз келуі мүмкін. Аяқтағаннан кейін «Жеткізу ағынын жасау» түймесін басыңыз.
Kinesis-Lambda-S3 құбыры іске қосылды!
7 -қадам: AWS EC2 орнатыңыз
Енді біз AWS бұлтынан, сондай -ақ біздің қосымшамызды орналастыратын серверден деректерді шығаруға және алуға мүмкіндік беретін кейбір API -мен EC2 данасын орнатамыз. Өндірістік ортада сіз кеңейтілген AWS API шлюзі арқылы API жариялауды қалауыңыз мүмкін.
- AWS консолінің негізгі бетінен EC2 қызметіне өтіңіз
- Instance іске қосу түймесін басыңыз
- Жоғарғы іздеу жолағына мына кодты қойыңыз: 'ami-08935252a36e25f85', бұл алдын ала конфигурацияланған виртуалды машинаның сәйкестендіру коды. Оң жақтағы Таңдау түймесін басыңыз
- «Түр» бағанынан t2.micro таңдаңыз және «Қарау және іске қосу» түймесін басыңыз. Дананы әлі іске қоспаңыз, келесі қадамға өтіңіз
8 -қадам: EC2 үшін IAM қауіпсіздік рөлін орнатыңыз
- Іске қосылмас бұрын біз біздің дананың қауіпсіздік тобын өзгерткіміз келеді. Мұны істеу үшін «Қауіпсіздік топтары» бөлімінің оң жақ шетінде «Қауіпсіздік топтарын өңдеу» түймесін басыңыз Жаңа қауіпсіздік тобын келесідей орнатыңыз. Бұл негізінен SSH қосылымы үшін 22 портын және http қызметтері үшін 80 портын көрсететін экземплярыңыздың брандмауэрін конфигурациялайды
- Қайта «Қарап шығу және іске қосу» түймесін басыңыз. Енді барлық параметрлердің орнатылғанын тексеріңіз. Аяқтаған кезде Іске қосу түймешігін басыңыз
- Басқан кезде данамен ssh байланысы үшін кілттер жұбын орнату үшін жаңа терезе ашылады. «Жаңа кілттер жұбын жасауды» таңдаңыз және атау ретінде «ec2-road-monitoring» енгізіңіз. Жүктеу кілт жұбын нұқыңыз. Бұл файлдың жоғалуы немесе нашар сақталуы өте маңызды: сіз кілтті қайта жүктей алмайсыз.. Pem кілтін жүктегеннен кейін дананы іске қосуға дайын болады
9 -қадам: EC2 данасына кіріңіз
Сіздің жаңа 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 Maps API алу
Біз дерлік аяқтадық. Енді біз html бетінде google Maps API -ні орнатуымыз керек, ол арқылы жол картасы пайдаланушыға көрсетіледі:
- Google есептік жазбаңызға кіріңіз және https://cloud.google.com/maps-platform/ өтіңіз.
- Беттің сол жағындағы «Жұмысты бастау» түймесін басыңыз
- Мәзірден «Карталар» тармағын таңдап, жалғастыру түймесін басыңыз
- Жоба атауы ретінде «жолды бақылау» енгізіңіз және Келесі түймесін басыңыз
- Төлем туралы мәліметтерді енгізіп, Жалғастыру түймесін басыңыз
- Енді сіздің жобаңыз дайын, біз API кілттерін API және қызметтер -> тіркелгі деректерін басу арқылы аламыз
11 -қадам: Серверді іске қосыңыз
Және бұл сіздің API кілтіңіз. Сіз жасауыңыз керек соңғы нәрсе-data_visualization/anomalies_map.html сілтемесіне өтіп, кілтіңізді файлдың соңына көшіріңіз, осылайша «СІЗДІҢ КІЛТІҢІЗДІ» ауыстырыңыз.
Енді бәрі дайын және дайын! Оны EC2 данасында орындауды бастау үшін: 'cd data-server' 'python flask_app.py'
Браузерге EC2 данасының IP немесе DNS мекен -жайын енгізіңіз, сіз аномалиялар картасын кейбір жалған деректермен көресіз.
12 -қадам: Things Network желісінде HTTP интеграциясын орындаңыз
Енді бізде барлық инфрақұрылым жұмыс істеп тұр, біз HTTP интеграциясын орындау үшін өңдей аламыз.
- Жаңа қосымшаны жасаңыз және құрылғыны тіркеңіз. Біз TTN туралы негізгі білімдерді қабылдаймыз, егер тез бастау нұсқаулығына сілтеме болмаса
- Қолданбалар мәзірінде 'Интеграциялар', содан кейін 'интеграцияны қосу' таңдаңыз
- HTTP интеграциясын таңдаңыз
- Кескіннен кейінгі өрістерді енгізіңіз және EC2 ip немесе жалпыға ортақ DNS -пен ауыстырыңыз
13 -қадам: мәліметтерді өңдеу
Датчиктен жиналған Т мәліметтерінің әрбір жиынтығы үшін келесі әрекеттерді орындау қажет:
- GPS жергілікті координаттары бар локалдардың жиынтығын алыңыз. Жергілікті жер - бұл Т -дан 100 метр қашықтықта орналасқан барлық топтар.
- Әр N жақын корпусы үшін N осіндегі акселерометр Z осінің квадраттық орташа мәнін есептеңіз: псевдокодта: орташа = қосынды ([x. Z_accel ** 2 x үшін жақын]) / Near.size
- Квадрат стандартты ауытқуды есептеңіз. Псевдокодта: std = қосынды ([(x. Z_accel ** 2 - орташа) ** 2 x үшін жақын])
- Бұл форматтағы шығыс: lat, long, Z_accel ** 2, mean, std
Жергілікті аумақты есептеу үшін GPS қашықтықты метрмен пайдаланыңыз. C ++ тілінде:
#D2R (M_PI / 180.0) анықтаңыз
#define 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 (лат2 * D2R) * pow (sin (dlong/2.0), 2); қосарланған c = 2 * atan2 (sqrt (a), sqrt (1-a));
Енді, алдыңғы қадамда жасалған аралық деректерді қолдана отырып, ауытқуларды анықтаңыз және әр жолға қолданылатын осы үзінді көмегімен аңғартпалы классификация жасаңыз:
жол = карта (float, line.split («,»))
v = жол [2] орташа = жол [3] std = сызық [4] егер v (орташа + стд*3): егер v (орташа + стд*2): егер v (орташа + стд): о.қосыл ([1, жол [0], жол [1]) басқа: o.қосыңыз ([2, жол [0], жол [1]) басқа: o.қосыңыз ([3, жол [0], жол [1])
Аномалиялар 68–95–99.7 ережесі бойынша жіктеледі
Енді сізде [type, lat, long] осы форматтағы жинақ бар.
Түрдің мағынасы келесідей:
- Жеңіл аномалия, мүмкін, қатысы жоқ
- Орташа аномалия
- Сыни аномалия
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 тегінде:
сценарий синхрондауын кейінге қалдыру src = «https://maps.googleapis.com/maps/api/js?key=[KEYissions&callback=initMap»
Нысан жасалған кезде картаға маркер енгізуге болады:
жаңа google.maps. Marker ({орналасуы: {лат: LATITUDE, lng: LONGITUDE}, карта: карта, белгіше: «/path/to/icon.png»})
Сіз кодта ауытқулардың деректер жиынындағы әрбір деректер үшін маркер енгізілгенін көре аласыз (remark () функциясын қараңыз) және белгіше аномалия класына негізделген. Бұл браузерде іске қосылған кезде, суретте көрсетілгендей, құсбелгілер арқылы ауытқуларды сүзуге болатын картаны зерттеуге болады.
15 -қадам: Несиелер мен сыртқы сілтемелер
Бұл жобаны Джованни Де Лука, Андреа Фиоралди және Пьетро Спадаччино жасады, Римдегі Сапиенца университетінің информатика инженериясының бірінші курсының студенттері.
-
Авторлар тұжырымдаманың дәлелі ретінде осы слайдтарды ұсынды:
www.slideshare.net/PietroSpadaccino/road-m…
-
GitHub репозиторийлері барлық кодпен:
github.com/roadteam
Ұсынылған:
Raspberry Pi климаттың мониторингі мен бақылау жүйесі: 6 қадам
Raspberry Pi климатты бақылау мен бақылаудың ішкі жүйесі: Адамдар өз үйінің ішінде жайлы болғысы келеді. Біздің аймақтың климаты өзімізге сәйкес келмейтіндіктен, біз ішкі ортаны сау ұстау үшін көптеген құрылғыларды қолданамыз: жылытқыш, ауа салқындатқыш, ылғалдандырғыш, құрғатқыш, тазартқыш және т
Екі гараж есігінің мониторингі: 4 қадам
Екі гараж есігінің мониторингі: 2016 жылы біз жаңа үйге көштік, онда гараждың есіктері үйдің негізгі кіреберісінен көрінбейтін жерде орналасқан. Сондықтан сіз есіктердің жабық немесе ашық екеніне сенімді бола алмайсыз. Тек бақылау үшін бұрынғы иелері пресс -коммутаторды орнатқан
Intel Edison карточкасының мониторингі: 4 қадам
Intel Intel Edison мониторы: IoT Roadshow 2015 бағдарламасын іске қосады, 2015 жылдың қараша айында Gedeane Kenshima, Rodrigo Bittenbinder, Gilvan Nunes, Anttranio және Jefferson Farias карталарының мониторингі болып табылады. ак
Ententes (SIME) мониторингі жүйесі: 4 қадам
Intenligente De Monitoramento De Enchentes (SIME): Тақырыптың ұсыныстары: Hackathom Qualcomm Facens компаниясының қатысушылары Hackathom Qualcomm Facens -тің қатысушыларымен 32 сағатқа созылған жобаларды іске асырады; placa Dragonboard 410c com Kit Qual
IOT көмегімен Green House мониторингі: 5 қадам
IOT көмегімен Green House мониторингі: Ауыл шаруашылығына келетін болсақ, температураны бақылау & Өсімдіктердің ылғалдылығы олардың тіршілік етуінің маңызды факторы болып табылады. Қазіргі уақытта адамдар жылыжайға бекітілген термометрлерді қолданады, сондықтан фермерлер температураны өлшей алады. Алайда, бұл қолмен жұмыс жасайтын қосымша