Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
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
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
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
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
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:
[2021] Valenta Off-Roader uchun qo'llanma yig'ish: 23 qadam
[2021] Valenta Off-Roader uchun yig'ish qo'llanmasi: Valenta Off-RoaderValenta Off-Roader-bu mikro: bitli Off-Road RC avtomobili. Bu Lego Technic bilan mos keladi va orqa g'ildiraklardagi ikkita (x2) mikro tishli dvigatellar va Roberval muvozanat mexanizmiga asoslangan (x1) o'rnatilgan boshqaruv servo bilan jihozlangan
UCL - IIoT - namlik ma'lumotlarini yig'uvchi: 6 qadam
UCL - IIoT - namlik ma'lumotlarini yig'uvchi: Bu ko'rsatma sizga kirdan namlik haqida ma'lumot beradi, uni tugun -qizil rangli foydalanuvchi interfeysida ko'rish mumkin, bundan tashqari ma'lumotlar yig'ilib MySQL ma'lumotlar bazasiga joylashtiriladi. Bu sizga sug'orish usullarini o'rganishga yordam beradi
Ish stolini qanday yig'ish kerak: 12 qadam
Ish stolini qanday yig'ish kerak: bu ko'rsatmada siz asosiy ish stoli kompyuterini qanday yig'ishni o'rganasiz. Bu kompyuter juda oddiy va oxirgi kompyuter emas. Kompyuterni qayta yig'ish uchun ikki -uch soatdan oshmasligi kerak
EAL - sanoat 4.0 issiqlik va namlik: 9 qadam
EAL - Sanoat 4.0 Issiqlik va namlik: Men har bir loyiha uchun yuqori harorat va namlikni o'lchashni taklif qilaman. 4 ta maxsus dasturchi va maxsus dasturiy ta'minot
Lazerli skaner ma'lumotlarini tozalash va yig'ish uchun Meshlab -dan foydalanish: 8 qadam
Meshlab -dan lazerli skanerlash ma'lumotlarini tozalash va yig'ish uchun foydalanish: Meshlab - bu tarmoq ma'lumotlarini o'zgartirish va tahrirlash uchun ishlatiladigan ochiq kodli dastur. Ushbu qo'llanmada 3D lazerli skanerdan ma'lumotlarni qanday yig'ish, tozalash va rekonstruksiya qilish ko'rsatiladi. Bu erda ishlatiladigan skanerda qo'llaniladigan usullar kerak