Мазмұны:
- 1 -қадам: мәліметтер қорын орнату
- 2 -қадам: API
- 3 -қадам: GPS/Python қосымшасы
- 4 -қадам: Жобаның веб -беті
Бейне: EAL - Industry 4.0 Rc Car -да GPS деректерін жинау: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл нұсқаулықта біз RC автокөлігіне GPS модулін қалай орнататынымыз және жиналған деректерді веб -бетке оңай бақылау үшін қалай орналастыратынымыз туралы айтатын боламыз. Біз алдын ала RC автокөлігін қалай жасағаны туралы нұсқаулық жасадық, оны мына жерден табуға болады. Бұл ультрадыбыстық датчиктерді алып тастауды шештік және оның орнына GPS модулін қолдануды шешкенімізге қарамастан, бұл сол құрылымды қолданады. Жобада бізде GPS деректері бар мәліметтер базасы бар, сонымен қатар оны картадан алғандағыдай, деректерді табуға болатын веб -бетті құрамыз, осылайша сіз көліктің қайда болғанын көре аласыз. Веб -бетті көру үшін Joerha.dk сайтына кіріңіз.
Жоғарғы жағындағы схемада сіз осы жобада қолданылған технологияларға шолу жасай аласыз. Нұсқаулықты барынша пайдалану үшін сізге барлық технологиялар болмаса да, кейбіреулермен туыстық қарым -қатынас қажет. Ол қолданылуына байланысты. Github репозиторийлерімен байланыстырғандықтан, Github -тің төмен бағалануы да көмектеседі.
Коммуналдық қызметтер тізімі:
- Github
-
Таңқурай PI/Raspbian
Python
-
Node.js
- Express.js
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Bootstrap
1 -қадам: мәліметтер қорын орнату
Бұл сегментте біз GPS деректері алынатын мәліметтер қоры жүйесін қалай құратынымыз туралы айтатын боламыз. Деректер базасы MySQL -те жоғарыдағы суретке сәйкес құрылған, онда бізде екі кесте бар - «Пайдаланушылар» және «GPSEntries». Қолданушыларда бізде «Id» негізгі кілт болып табылады. Ол бірегей идентификатор ретінде қолданылады. «Аты» - бұл қазір кірген пайдаланушының аты. «Apikey» - бұл API -ге кіру үшін пайдаланушыға берілген бірегей кілт. «Белсенді» - бұл пайдаланушының белсенді екенін тексеру, біз оны өшіре аламыз, сондықтан ол дерекқорға кіре алмайды. «CreatedAt» және «UpdatedAt» дерекқорды құру кезінде қолданылған процесс арқылы жасалады.
«GPSEntries» кестесінде бізде GPS модулінің деректері бар барлық атрибуттар бар. «Уақыт» - бұл GPS модулінің ағымдағы уақыты, біз оны орналастыру уақытын көрсету үшін қолданамыз. Содан кейін бізде «жылдамдық» және «бағыт» сияқты координаттардағы орын бар. Бізде GPS қателерінде, fx координаттарында қате бар -жоғын көрсететін қате атрибуттары көп. Біз оларды дерекқорға қостық, бірақ біз оларды веб -бетте көрсетпейміз. «UserId» - бұл Пайдаланушылар кестесіндегі «идентификаторды» қамтитын шетелдік кілт. Бұл деректерді қай пайдаланушының жібергенін көрсету үшін қолданылады.
2 -қадам: API
Бұл сегментте біз дерекқорды басқаратын және оған деректерді қоятын API туралы айтатын боламыз. Web API Express.js және Sequalize.js пайдаланатын Node.js көмегімен жасалған.
Node.js JavaScript серверлерін іске қосу үшін пайдаланылады, өйткені ол әдетте веб-бетте клиенттік сценарийлер үшін қолданылады.
Express.js - біз API құру үшін қолданған негіз.
Sequalize.js Gps деректері мен дерекқор атрибуттары арасында байланыс жасау үшін қолданылады. Ол үшін ORM (Object-Relational Mapping) әдісі қолданылады. Бұл жерде «CreatedAt» және «UpdatedAt» жасалады (1 -қадамда көрсетілген).
API -ді api.joerha.dk сайтына кіру арқылы пайдалануға болады. Содан кейін url -ге /gps қосыңыз, бұл JSON форматындағы дерекқордағы барлық деректерді көрсетеді. Қанша жазба қажет екенін бақылау үшін url -ге /2 (пайдаланушы) және /x (жазбалар саны) қосуға болады. Fx api.joerha.dk/gps/2/10 соңғы 10 жазбаны көрсетеді. Пішімделген деректердің шығуы жоғарыдағы суретте көрсетілген.
Кодты мына жерден табуға болады: Github
3 -қадам: GPS/Python қосымшасы
Бұл сегментте біз таңқурайда жұмыс істейтін және GPS деректерін жинайтын және оны API -ге жіберетін сценарий туралы сөйлесетін боламыз.
GPS -тен деректерді жинау үшін біз gpsd атты демонды қолданамыз (1 -сурет). Бұл жерде біз дерекқорға жіберетін деректерді және GPSEntries кестесінің негізін жинаймыз. Деректерді gpsd -ден алып, оны API -ге жіберетін сценарий python -да жазылған.
Қолданба ағынды инициализациялайды, сондықтан ол бір уақытта gpsd -ді де, біздің бағдарламаны да іске қоса алады. GPS белсенді болған кезде Gpsd деректері үздіксіз жіберіледі (2 -сурет).
Содан кейін біз уақытша цикл жасаймыз, ол өзінің жүктемесін GPS деректері бар API -ге үнемі жібереді. Деректер JSON ретінде пішімделген. Пайдалы жүктеме GPSD -де көрінетін атрибуттардан тұрады.. Fix тегі ағымдағы деректердің суреті сияқты әрекет етеді және оны API -ге жібереді. Бұл request.post арқылы жасалады және url мен API кілтін қолданады. Басып шығару (r.status_code) деректердің дұрыс өтуін білу үшін пайдаланушыға шығарылады. Time.sleep (0.5) - бұл деректердің қаншалықты жиі жариялануы (3 -сурет)
Кодты мына жерден табуға болады: Github
4 -қадам: Жобаның веб -беті
Бұл сегментте біз деректерді көрсететін веб -бетті және жоба туралы басқа ақпаратты қалай жасағанымыз туралы айтатын боламыз. Сайт HTML, CSS және JS көмегімен жасалған. Бастау үшін біз HTML, CSS және JS кітапханасы болып табылатын Bootstrap 4.0 қолдандық. Ол сіздің веб -сайтыңызды құруға көмектесетін көптеген функцияларды қамтиды. Біз оны жоғарыда орналасқан навигация тақтасы үшін қолдандық, сонымен қатар торап құрастырылған жолдар мен бағаналарды орнату. Содан кейін бізде фон мен тақырыптардың түстерін басқаратын тағы бір шағын CSS сценарийі бар. Сонымен қатар, біз lightbox деп аталатын кітапхананы қолдандық, осылайша сіз суреттерді шерте аласыз және олар қалқымалы болады. Сайттың мазмұнында google картасы, деректер кестесі, машинаның әрекеттегі бейнесі және дәл осы бетке сілтеме бар.
Google картасы - ең қызықты. Карта google API арқылы жүктеледі, онда жұмыс істеу үшін бірегей API кілті енгізіледі. Деректер картаға 500 мс аралығында жіберіледі. Біз дерекқордағы соңғы 100 деректер нүктесі маркер ретінде көрсетілетін функция жасадық, осылайша сіз машинаның қайда болғанын қадағалай аласыз. Бұл AJAX қоңырауы деп аталады.
GPS деректер кестесіндегі деректер жиынтығы дәл осылай сұралады. Кестеде GPS қосылған кезде нақты уақытта жаңартылған соңғы 10 жазбаны көруге болады. Біз дерекқордан 500 мс интервалда деректерді аламыз.
Кодты мына жерден табуға болады: Github
Ұсынылған:
(IOT жобасы) ESP8266 және Openweather API көмегімен ауа райы деректерін алыңыз: 5 қадам
(IOT жобасы) ESP8266 мен Openweather API көмегімен ауа райы туралы мәліметтерді алыңыз: Бұл нұсқаулықта біз қарапайым IOT жобасын құрамыз, онда openweather.com/api сайтынан біздің қаламыздың ауа райы туралы мәліметтерді алып, оны өңдеу бағдарламалық жасақтамасы арқылы көрсетеміз
Raspberry Pi көмегімен СКД -де DHT деректерін қалай оқуға болады: 6 қадам
Raspberry Pi көмегімен СКД -де DHT деректерін қалай оқуға болады: Температура мен салыстырмалы ылғалдылық қоршаған ортадағы ауа райы деректері болып табылады. Екеуі де метеостанция беретін шағын деректер болуы мүмкін. Raspberry Pi көмегімен температура мен салыстырмалы ылғалдылықты оқуға әр түрлі әдістермен қол жеткізуге болады
Убидоттар мен Google-парақтарды қолдана отырып, температура/ылғалдылық деректерін талдау: 6 қадам
Убидоттар мен Google парақтарының көмегімен температура/ылғалдылық деректерін талдау: Бұл оқулықта біз температура мен ылғалдылық сенсорының көмегімен температура мен ылғалдылықтың әр түрлі деректерін өлшейміз. Сіз бұл деректерді Ubidots -қа жіберуді үйренесіз. Сіз оны кез келген жерден әр түрлі қолдану үшін талдай аласыз. Сонымен қатар жіберу арқылы
MSP432 LaunchPad пен Python көмегімен температура сенсорының (TMP006) тірі деректерін сызу: 9 қадам
MSP432 LaunchPad және Python көмегімен температура сенсорының (TMP006) тірі деректерін сызу: TMP006 - бұл температура сенсоры, ол объектімен байланыс орнатпай -ақ, оның температурасын өлшейді. Бұл оқулықта біз Python көмегімен BoosterPack (TI BOOSTXL-EDUMKII) температурасының тірі деректерін құрамыз
Meshlab көмегімен лазерлік сканерлеу деректерін жинау және жинау: 8 қадам
Meshlab -ті лазерлік сканерлеу деректерін тазалау және жинау үшін қолдану: Meshlab - бұл торлы деректерді өңдеуге және өңдеуге арналған ашық бастапқы коды бар бағдарлама. Бұл оқулық 3D лазерлік сканерден деректерді қалай жинауды, тазартуды және қайта құруды нақты көрсетеді. Мұнда қолданылатын сканермен қолданылатын әдістер қолданылуы керек