Mundarija:

EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish: 4 qadam
EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish: 4 qadam

Video: EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish: 4 qadam

Video: EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish: 4 qadam
Video: RC CAR vs RC TRUCK! 2024, Iyun
Anonim
EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish
EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish
EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish
EAL - Rc Car -da sanoat 4.0 GPS ma'lumotlarini yig'ish

Bu yo'riqnomada biz RC avtomashinasida GPS modulini qanday o'rnatishimiz va yig'ilgan ma'lumotlarni nazorat qilish uchun veb -sahifaga joylashtirishimiz haqida gaplashamiz. Biz oldindan RC avtomashinasini qanday yasaganimizni ko'rsatma qildik, uni bu erda topishingiz mumkin. Bu xuddi shu konstruktsiyadan foydalanmoqda, garchi biz ultratovushli datchiklarni qirib tashlashga qaror qilgan bo'lsak va uning o'rniga GPS modulini qo'llagan bo'lsak. Loyihada biz GPS ma'lumotlarini o'z ichiga olgan ma'lumotlar bazasini o'rnatdik va uni xaritada qo'llanganidek topish mumkin bo'lgan veb -sahifani tuzamiz, shunda siz mashinaning qaerdaligini ko'rishingiz mumkin. Veb -sahifani ko'rish uchun Joerha.dk saytiga tashrif buyuring.

Yuqoridagi sxemada siz ushbu loyihada ishlatilgan texnologiyalarning umumiy ko'rinishini ko'rishingiz mumkin. Bu yo'riqnomadan maksimal darajada foydalanish uchun, agar hamma ishlatilgan texnologiyalar bo'lmasa ham, ba'zilar bilan o'xshashlik bo'lishi kerak. U ishlatilishiga qarab bog'langan. Github -ni yaxshi bilmaslik ham yordam beradi, chunki biz o'z github omborlarimiz bilan bog'langanmiz.

Kommunal xizmatlar ro'yxati:

  • Github
  • Raspberry PI/Raspbian

    Python

  • Node.js

    • Express.js
    • Jasur.js
    • MySQL
  • HTML, CSS, JS

    Bootstrap

1 -qadam: ma'lumotlar bazasini sozlash

Ma'lumotlar bazasini sozlash
Ma'lumotlar bazasini sozlash

Ushbu segmentda biz GPS ma'lumotlari olinadigan ma'lumotlar bazasi tizimini qanday yaratishimiz haqida gaplashamiz. Ma'lumotlar bazasi MySQL -da yuqoridagi rasmga muvofiq tuzilgan bo'lib, bizda ikkita jadval - "Foydalanuvchilar" va "GPSEntries" mavjud. Foydalanuvchilarda biz "Id" ni asosiy kalit sifatida ishlatamiz. U o'ziga xos identifikator sifatida ishlatiladi. "Ism" - bu hozirda tizimga kirgan foydalanuvchining ismi. "Apikey" - bu foydalanuvchiga API -ga kirish uchun berilgan yagona kalit. "Faol" - bu foydalanuvchi faolligini tekshirish, biz foydalanuvchini o'chirib qo'yishimiz mumkin, shuning uchun u ma'lumotlar bazasiga kira olmaydi. "CreatedAt" va "UpdatedAt" ma'lumotlar bazasini yaratish jarayonida ishlatilgan.

"GPS yozuvlari" jadvalida biz GPS moduli ma'lumotlarini o'z ichiga olgan barcha atributlarga egamiz. "Vaqt" - bu GPS modulining joriy vaqti, biz uni joylashtirish vaqtini ko'rsatish uchun ishlatamiz. Keyin biz koordinatalarda "tezlik" va "yo'nalish" pozitsiyasiga egamiz. Shuningdek, bizda GPS -dan olingan ma'lumotlarda xato, koordinatalarda fx borligini ko'rsatadigan xato atributlari ko'p. Biz ularni ma'lumotlar bazasiga qo'shdik, lekin biz ularni veb -sahifada ko'rsatmaymiz. "UserId" - bu foydalanuvchilar jadvalidagi "id" ni o'z ichiga olgan tashqi kalit. Bu qaysi foydalanuvchining ma'lumotlarni joylashtirganligini ko'rsatish uchun ishlatiladi.

2 -qadam: API

API
API

Ushbu segmentda biz ma'lumotlar bazasini boshqaradigan va unga ma'lumotlarni joylashtiradigan API haqida gapiramiz. Veb -API Node.js bilan qurilgan bo'lib, u Express.js va Sequalize.js -dan foydalanadi.

Node.js JavaScript-ni ishga tushirish uchun ishlatiladi, chunki u odatda veb-sahifada mijozlar skriptlari uchun ishlatiladi.

Express.js - bu biz API yaratish uchun foydalangan asos.

Sequalize.js Gps ma'lumotlari va ma'lumotlar bazasi atributlari o'rtasida bog'lanish uchun ishlatiladi. Buning uchun ORM (Ob'ektlar bilan bog'liq xaritalash) deb nomlangan usuldan foydalaniladi. Bu erda "CreatedAt" va "UpdatedAt" yaratiladi (1 -qadamda ko'rsatilgan).

API -ni api.joerha.dk saytiga tashrif buyurib ishlatish mumkin. Keyin urlga /gps qo'shing, bu ma'lumotlar bazasidagi barcha ma'lumotlarni JSON formatida ko'rsatadi. Qancha yozuv kerakligini nazorat qilish uchun urlga /2 (Foydalanuvchi) va /x (yozuvlar soni) ni qo'shishingiz mumkin. Fx api.joerha.dk/gps/2/10 oxirgi 10 ta yozuvni ko'rsatadi. Formatlangan ma'lumotlarning chiqishi yuqoridagi rasmda ko'rsatilgan.

Kodni bu erda topish mumkin: Github

3 -qadam: GPS/Python ilovasi

GPS/Python dasturi
GPS/Python dasturi
GPS/Python dasturi
GPS/Python dasturi
GPS/Python dasturi
GPS/Python dasturi

Ushbu segmentda biz malina ustida ishlaydigan va GPS ma'lumotlarini to'playdigan va APIga yuboradigan skript haqida gaplashamiz.

GPS -dan ma'lumotlarni yig'ish uchun biz gpsd debemonidan foydalanamiz (1 -rasm). Bu erda biz ma'lumotlar bazasiga joylashtirgan ma'lumotlarni va GPSEntries jadvalining asosini yig'amiz. Ma'lumotni gpsd -dan tortib API -ga yuboradigan skript pythonda yozilgan.

Ilova ipni ishga tushiradi, shuning uchun u bir vaqtning o'zida gpsd va bizning dasturimizni ishga tushirishi mumkin. GPS faol bo'lganda Gpsd ma'lumotlari uzluksiz uzatiladi (2 -rasm).

Keyin biz o'z yukimizni doimiy ravishda GPS ma'lumotlarini o'z ichiga olgan API -ga joylashtiradigan vaqtinchalik tsikl qilamiz. Ma'lumotlar JSON sifatida formatlangan. Foydali yuk GPSDda ko'riladigan atributlardan iborat.. Fix yorlig'i joriy ma'lumotlarning oniy tasviri kabi ishlaydi va uni APIga yuboradi. Bu request.post orqali amalga oshiriladi va url va API kalitidan foydalaniladi. Chop etish (r.status_code) ma'lumotlarning to'g'ri uzatilganligini bilish uchun foydalanuvchiga chiqariladi. Time.sleep (0.5) - bu ma'lumotlarning qanchalik tez -tez joylashtirilishi (3 -rasm)

Kodni bu erda topish mumkin: Github

4 -qadam: Loyihaning veb -sahifasi

Loyiha uchun veb -sahifa
Loyiha uchun veb -sahifa

Bu segmentda biz qanday qilib veb -sahifamizni, ma'lumotlar va loyiha haqidagi boshqa ma'lumotlarni ko'rsatganimiz haqida gaplashamiz. Sayt HTML, CSS va JS bilan yaratilgan. Boshlash uchun biz HTML, CSS va JS uchun kutubxona bo'lgan Bootstrap 4.0 dan foydalandik. Bu sizning veb -saytingizni yaratishga yordam beradigan juda ko'p funktsiyalar bilan birga keladi. Biz uni yuqoridagi navigatsiya paneli uchun ishlatganmiz, shuningdek, sayt tuzilgan qator va ustunlarni sozlashda. Keyin bizda fon va sarlavhalar ranglarini boshqaradigan yana bir kichik CSS skript bor. Bundan tashqari, biz yorug'lik qutisi deb nomlangan kutubxonadan foydalandik, shuning uchun siz rasmlarni bosishingiz mumkin va ular ochiladi. Sayt mazmunida google xaritasi, ma'lumotlar jadvali, mashinaning harakatdagi videosi va shu sahifaga havola mavjud.

Google xaritasi eng qiziq. Xarita Google API orqali yuklanadi, u erda ishlash uchun o'ziga xos API kaliti qo'yiladi. Ma'lumot xaritaga 500 ms oralig'ida uzatiladi. Ma'lumotlar bazasidagi oxirgi 100 ta ma'lumotlar punkti marker sifatida ko'rsatiladigan funktsiyani yaratdik, shuning uchun siz mashinaning qaerdaligini kuzatishingiz mumkin. Bu AJAX chaqiruvi orqali amalga oshiriladi.

GPS ma'lumotlar jadvalidagi ma'lumotlar to'plami xuddi shu tarzda so'raladi. Jadvalda GPS faol bo'lganda real vaqtda yangilangan oxirgi 10 ta yozuvni ko'rishingiz mumkin. Biz ma'lumotlar bazasidan ma'lumotlarni 500 ms oralig'ida olamiz.

Kodni bu erda topish mumkin: Github

Tavsiya: