Satura rādītājs:

EAL - Industry 4.0 GPS datu vākšana Rc automašīnā: 4 soļi
EAL - Industry 4.0 GPS datu vākšana Rc automašīnā: 4 soļi
Anonim
EAL - Industry 4.0 GPS datu vākšana Rc Car
EAL - Industry 4.0 GPS datu vākšana Rc Car
EAL - Industry 4.0 GPS datu vākšana Rc Car
EAL - Industry 4.0 GPS datu vākšana Rc Car

Š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

Datu bāzes iestatīšana
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

API
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

GPS/Python lietojumprogramma
GPS/Python lietojumprogramma
GPS/Python lietojumprogramma
GPS/Python lietojumprogramma
GPS/Python lietojumprogramma
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

Projekta tīmekļa vietne
Projekta tīmekļa 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: