Satura rādītājs:
- 1. darbība: datu bāzes iestatīšana
- 2. darbība: API
- 3. darbība: GPS/Python lietojumprogramma
- 4. solis: projekta vietne
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Šajā pamācībā mēs runāsim par to, kā mēs uzstādām GPS moduli RC automašīnā un ievietojām savāktos datus tīmekļa vietnē, lai to būtu vieglāk uzraudzīt. Mēs iepriekš esam sagatavojuši pamācību par to, kā mēs izgatavojām savu RC automašīnu, un to var atrast šeit. Tas izmanto to pašu konstrukciju, lai gan mēs esam nolēmuši atcelt ultraskaņas sensorus un tā vietā pielietojām GPS moduli. Projektā mēs esam izveidojuši datu bāzi, kurā ir GPS dati, un izveidojam tīmekļa vietni, kurā datus var atrast, kā arī pielietojam tos kartē, lai jūs varētu redzēt, kur automašīna ir bijusi. Apmeklējiet Joerha.dk, lai apskatītu tīmekļa lapu.
Plūsmas diagrammā augšpusē varat redzēt šajā projektā izmantoto tehnoloģiju pārskatu. Lai maksimāli izmantotu šo pamācību, jums ir jāpārzina dažas, ja ne visas izmantotās tehnoloģijas. Tas ir saistīts ar lietojumu. Palīdzēs arī Github nepietiekama pārskatīšana, jo esam izveidojuši saiti ar mūsu github krātuvēm.
Komunālo pakalpojumu saraksts:
- Github
-
Aveņu PI/Raspbian
Python
-
Node.js
- Express.js
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Bootstrap
1. darbība: datu bāzes iestatīšana
Šajā segmentā mēs runāsim par to, kā mēs veidojam datu bāzes sistēmu, no kuras tiek iegūti mūsu GPS dati. Datu bāze ir veidota MySQL saskaņā ar iepriekš redzamo attēlu, kur mums ir divas tabulas - “Lietotāji” un “GPSEntries”. Lietotājiem mūsu galvenā atslēga ir “Id”. To izmanto kā unikālu identifikatoru. “Vārds” ir tā lietotāja vārds, kurš pašlaik ir pieteicies. “Apikey” ir unikālā atslēga, kas lietotājam piešķirta, lai piekļūtu API. “Aktīvs” ir, lai pārbaudītu, vai lietotājs ir aktīvs, mēs varam deaktivizēt lietotāju, lai viņš nevarētu piekļūt datu bāzei. “CreatedAt” un “UpdatedAt” veido process, ko izmantojām, lai izveidotu datu bāzi.
Tabulā “GPSEntries” mums ir visi atribūti, kas satur datus no GPS moduļa. “Laiks” ir pašreizējais GPS moduļa laiks, mēs to izmantojam, lai parādītu publicēšanas laiku. Tad mums ir pozīcija koordinātās, kā arī “ātrums” un “virziens”. Mums ir arī daudz kļūdu atribūtu, kas parāda, vai GPS datos ir kļūda, koordinātās fx. Mēs tos esam pievienojuši datu bāzei, taču mēs tos nerādām tīmekļa vietnē. “UserId” ir sveša atslēga, kas satur “id” no tabulas Lietotāji. To izmanto, lai parādītu, kurš lietotājs ievietojis datus.
2. darbība: API
Šajā segmentā mēs runāsim par API, kas kontrolē datu bāzi un ielīmē tajā datus. Tīmekļa API ir veidota, izmantojot Node.js, kas izmanto Express.js un Sequalize.js.
Node.js tiek izmantots, lai palaistu JavaScript serveri, kur tas parasti tiek izmantots galvenokārt klienta puses skriptēšanai tīmekļa vietnē.
Express.js ir ietvars, ko izmantojām, lai izveidotu API.
Sequalize.js tiek izmantots, lai izveidotu saites starp GPS datiem un datu bāzes atribūtiem. Lai to izdarītu, tā izmanto metodi ar nosaukumu ORM (Object-Relational Mapping). Šeit tiek izveidoti arī “CreatedAt” un “UpdAt” (parādīts 1. darbībā).
API var izmantot, apmeklējot vietni api.joerha.dk. Pēc tam pievienojiet /gps vietrādim URL, kas parādīs visus datu bāzes datus JSON formātā. Lai kontrolētu vajadzīgo ierakstu skaitu, vietrādim URL varat pievienot /2 (lietotājs) un /x (ierakstu skaits). Fx api.joerha.dk/gps/2/10 tiks parādīti 10 jaunākie ieraksti. Formatēto datu uzņemšana ir parādīta attēlā iepriekš.
Kods atrodams šeit: Github
3. darbība: GPS/Python lietojumprogramma
Šajā segmentā mēs runāsim par skriptu, kas darbojas uz aveņu, un savāc GPS datus un nosūta tos uz API.
Lai apkopotu datus no GPS, mēs izmantojam dēmonu ar nosaukumu gpsd (1. attēls). Šeit mēs apkopojam datus, kurus ievietojam datu bāzē, un mūsu GPSEntries tabulas pamatu. Skripts, kas izvelk datus no gpsd un ievieto tos API, ir rakstīts python.
Lietojumprogramma inicializē pavedienu, tāpēc tā var vienlaikus palaist gan gpsd, gan mūsu programmu. GPS dati tiek nepārtraukti straumēti, kamēr GPS ir aktīvs (2. attēls).
Tad mēs izveidojam cikla ciklu, kas nepārtraukti ievieto savu lietderīgo slodzi API, kurā ir GPS dati. Dati ir formatēti kā JSON. Lietderīgo slodzi veido GPSD redzamie atribūti.. Fix tags darbojas kā pašreizējo datu momentuzņēmums un nosūta to uz API. Tas tiek darīts ar request.post, un tiek izmantota URL un API atslēga. Drukāt (r.status_code) tiek izvadīts lietotājam, lai uzzinātu, vai dati ir pareizi piegādāti. Time.sleep (0.5) ir datu publicēšanas biežums (3. attēls)
Kods atrodams šeit: Github
4. solis: projekta vietne
Šajā segmentā mēs runāsim par to, kā mēs izveidojām savu tīmekļa vietni, kas parāda datus un citu informāciju par projektu. Vietne ir veidota, izmantojot HTML, css un JS. Sākumā mēs izmantojām Bootstrap 4.0, kas ir HTML, css un JS bibliotēka. Tam ir daudz funkciju, kas palīdz jums izveidot vietni. Mēs to izmantojām navigācijas joslai augšpusē, kā arī rindu un kolonnu iestatījumiem, ar kuriem vietne tiek veidota. Tad mums ir vēl viens mazs css skripts, kas kontrolē fona un galvenes krāsas. Neraugoties uz to, mēs esam izmantojuši bibliotēku ar nosaukumu Lightbox, lai jūs varētu noklikšķināt uz attēliem un tie parādīsies. Vietnes saturā ir Google karte, datu tabula, video par automašīnu darbībā un saite uz šo lapu.
Google karte ir visinteresantākā. Karte tiek ielādēta, izmantojot Google API, kur ir ievietota unikāla API atslēga, lai tā darbotos. Dati tiek straumēti kartē ar 500 ms intervālu. Mēs esam izveidojuši funkciju, kurā pēdējie 100 datu punkti datu bāzē tiek parādīti kā marķieri, lai jūs varētu sekot līdzi automašīnai. Tas tiek darīts, izmantojot tā saukto AJAX zvanu.
Datu kopas GPS datu tabulā tiek pieprasītas tādā pašā veidā. Tabulā varat redzēt pēdējos 10 ierakstus, kas tiek atjaunināti reālā laikā, kad GPS ir aktīvs. Mēs izgūstam datus no datu bāzes 500 ms intervālā.
Kods atrodams šeit: Github
Ieteicams:
Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti - DHT11 datu reģistrētāja simulācija Proteus: 5 soļi
Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti | DHT11 datu reģistrētāja simulācija Proteus: Ievads: čau, tas ir Liono Maker, šeit ir YouTube saite. Mēs veidojam radošu projektu ar Arduino un strādājam pie iegultām sistēmām. Datu reģistrētājs: Datu reģistrētājs (arī datu reģistrētājs vai datu ierakstītājs) ir elektroniska ierīce, kas laika gaitā reģistrē datus
Datu iegūšanas un datu vizualizācijas sistēma elektriskajam motociklam MotoStudent: 23 soļi
Datu iegūšanas un datu vizualizācijas sistēma MotoStudent elektriskajam sacīkšu velosipēdam: Datu iegūšanas sistēma ir aparatūras un programmatūras kopums, kas darbojas kopā, lai apkopotu datus no ārējiem sensoriem, pēc tam tos uzglabātu un apstrādātu, lai tos varētu vizualizēt grafiski un analizēt, ļaujot inženieriem izgatavot
IoT datu zinātnes PiNet reāllaika viedā ekrāna datu vizualizācijai: 4 soļi
IoT datu zinātnes PiNet reāllaika viedā ekrāna datu vizam: Jūs varat viegli izveidot viedo displeju IoT tīklu datu vizualizācijai, lai papildinātu savus pētījumus datu zinātnē vai jebkurā kvantitatīvā jomā. Varat izsaukt " push " no jūsu zemes gabaliem klientiem tieši no jūsu
Temperatūras un mitruma displejs un datu vākšana, izmantojot Arduino un apstrādi: 13 soļi (ar attēliem)
Temperatūras un mitruma displejs un datu vākšana, izmantojot Arduino un apstrādi: Ievads: Šis ir projekts, kurā tiek izmantota Arduino plate, sensors (DHT11), Windows dators un apstrādes (bezmaksas lejupielādējama) programma, lai parādītu temperatūras, mitruma datus digitālā un joslu diagrammas formu, parādīt laiku un datumu un palaist atpakaļskaitīšanas laiku
EAL-Industri4.0-RFID datu paraugu ņemšanas datu bāze: 10 soļi (ar attēliem)
EAL-Industri4.0-RFID datu paraugu ņemšana līdz datubāzei: Dette projekt omhandler opsamling af v æ gtdata, registreering af identiteter vha. RFID, satraucoši dati un lv MySQL datu bāze. mezgls RED, samt fremvisning og behandling af de opsamlede data i et C# program i form af en Windows Form Application