Cuprins:

EAL - Industria 4.0 Colectarea datelor GPS pe mașina Rc: 4 pași
EAL - Industria 4.0 Colectarea datelor GPS pe mașina Rc: 4 pași

Video: EAL - Industria 4.0 Colectarea datelor GPS pe mașina Rc: 4 pași

Video: EAL - Industria 4.0 Colectarea datelor GPS pe mașina Rc: 4 pași
Video: Industria 4.0 și inteligența artificială - de la hype la realitate 2024, Noiembrie
Anonim
EAL - Colectia de date GPS Industry 4.0 pe Rc Car
EAL - Colectia de date GPS Industry 4.0 pe Rc Car
EAL - Colectia de date GPS Industry 4.0 pe Rc Car
EAL - Colectia de date GPS Industry 4.0 pe Rc Car

În acest Instructable vom vorbi despre modul în care configurăm un modul GPS pe o mașină RC și am postat datele colectate pe o pagină web pentru o monitorizare ușoară. Am făcut anterior un instructiv despre modul în care ne-am făcut mașina RC, care poate fi găsită aici. Se folosește aceeași versiune, deși am decis să abandonăm senzorii cu ultrasunete și am aplicat modulul GPS. În proiect, am configurat o bază de date care conține datele GPS și construim o pagină web pe care datele pot fi găsite, precum și aplicate pe o hartă, astfel încât să puteți vedea unde a fost mașina. Vizitați Joerha.dk pentru a vizualiza pagina web.

În diagrama de flux din partea de sus, puteți vedea o prezentare generală a tehnologiilor care au fost utilizate în acest proiect. Pentru a profita la maximum de acest instructabil, trebuie să aveți familiaritate cu unele, dacă nu cu toate tehnologiile utilizate. Este legat în funcție de utilizare. De asemenea, va fi utilă o reducere a valorii Github, deoarece ne-am conectat la depozitele noastre github.

Lista utilităților:

  • Github
  • Raspberry PI / Raspbian

    Piton

  • Node.js

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

    Bootstrap

Pasul 1: Configurarea bazei de date

Configurarea bazei de date
Configurarea bazei de date

În acest segment vom vorbi despre modul în care construim sistemul de baze de date din care sunt extrase datele noastre GPS. Baza de date este construită în MySQL conform imaginii de mai sus, unde avem două tabele - „Utilizatori” și „GPSEntries”. La utilizatori avem „Id” ca cheie principală. Este folosit ca un identificator unic. „Nume” este numele utilizatorului conectat în prezent. „Apikey” este cheia unică dată utilizatorului pentru a accesa API-ul. „Activ” este să verificăm dacă utilizatorul este activ, îl putem dezactiva, astfel încât acesta să nu poată accesa baza de date. „CreatedAt” și „UpdatedAt” se realizează prin procesul pe care l-am folosit pentru a construi baza de date.

În tabelul „GPSEntries” avem toate atributele care conțin date de la modulul GPS. „Ora” este ora curentă a modulului GPS, îl folosim pentru a afișa ora postării. Apoi avem poziția în coordonate, la fel ca „viteză” și „direcție”. De asemenea, avem o mulțime de atribute de eroare, care arată dacă există o eroare în datele de pe GPS, fx în coordonate. Le-am adăugat la baza de date, dar nu le afișăm pe pagina web. „UserId” este o cheie străină care conține „id” din tabelul Users. Aceasta este utilizată pentru a arăta ce utilizator a postat datele.

Pasul 2: API

API
API

În acest segment vom vorbi despre API-ul care controlează baza de date și le lipeste datele. API-ul web este construit cu Node.js, care utilizează Express.js și Sequalize.js.

Node.js este utilizat pentru a rula serverul JavaScript, unde, în mod normal, este utilizat în principal pentru scriptarea partea clientului pe o pagină web.

Express.js este cadrul pe care l-am folosit pentru a construi API-ul.

Sequalize.js este folosit pentru a crea legături între datele Gps și atributele bazei de date. Pentru a face acest lucru, folosește o metodă numită ORM (Object-Relational Mapping). De asemenea, aici sunt create „CreatedAt” și „UpdatedAt” (Afișat la pasul 1).

API-ul poate fi utilizat vizitând api.joerha.dk. Apoi adăugați / gps la adresa URL, care va afișa toate datele din baza de date în format JSON. Pentru a controla câte intrări doriți, puteți adăuga / 2 (Utilizatorul) și / x (numărul de intrări) la adresa URL. Fx api.joerha.dk/gps/2/10 va afișa cele mai recente 10 intrări. O captare a datelor formatate este prezentată în imaginea de mai sus.

Codul poate fi găsit aici: Github

Pasul 3: Aplicație GPS / Python

Aplicație GPS / Python
Aplicație GPS / Python
Aplicație GPS / Python
Aplicație GPS / Python
Aplicație GPS / Python
Aplicație GPS / Python

În acest segment vom vorbi despre scriptul care rulează pe zmeură și colectează datele GPS și le trimite către API.

Pentru a colecta datele de pe GPS, folosim un demon numit gpsd (Imaginea 1). Aici colectăm datele pe care le postăm în baza de date și baza pentru tabelul nostru GPSEntries. Scriptul care extrage datele din gpsd și le postează în API este scris în python.

Aplicația inițializează un thread, deci poate rula atât GPS, cât și programul nostru în același timp. Datele GPS sunt transmise continuu în timp ce GPS-ul este activ (Imaginea 2).

Apoi realizăm o buclă de timp care își înregistrează în mod continuu sarcina utilă în API-ul care conține datele GPS. Datele sunt formatate ca JSON. Sarcina utilă constă din atributele văzute în GPSD. Eticheta.fix acționează ca un instantaneu al datelor curente și o trimite către API. Acest lucru se face prin request.post și folosește cheia URL și API. Print (r.status_code) este trimis utilizatorului, pentru a ști dacă datele au fost transmise corect. Time.sleep (0,5) este frecvența cu care sunt postate datele (imaginea 3)

Codul poate fi găsit aici: Github

Pasul 4: Pagină web pentru proiect

Pagina web pentru proiect
Pagina web pentru proiect

În acest segment vom vorbi despre modul în care am creat pagina noastră web care arată datele și alte informații despre proiect. Site-ul este construit cu HTML, css și JS. Pentru început am folosit Bootstrap 4.0, care este o bibliotecă pentru HTML, css și JS. Acesta vine cu o mulțime de funcții care vă ajută să vă construiți site-ul web. L-am folosit pentru bara de navigare din partea de sus, precum și configurarea rândurilor și coloanelor cu care este construit site-ul. Apoi avem un alt mic script CSS care controlează culorile fundalului și ale antetelor. În plus, am folosit o bibliotecă numită lightbox, astfel încât să puteți da clic pe imagini și să apară. Conținutul site-ului conține o hartă Google, un tabel de date, un videoclip al mașinii în acțiune și un link către această pagină.

Harta google este cea mai interesantă. Harta este încărcată printr-un API Google, unde este introdusă o cheie API unică pentru ca aceasta să funcționeze. Datele sunt transmise în flux pe hartă într-un interval de 500 ms. Am realizat o funcție în care ultimele 100 de puncte de date din baza de date sunt afișate ca markere, astfel încât să puteți urmări unde a fost mașina. Acest lucru se face prin ceea ce se numește un apel AJAX.

Seturile de date din tabelul de date GPS sunt solicitate în același mod. În tabel puteți vedea ultimele 10 intrări, actualizate în timp real când GPS-ul este activ. Preluăm date din baza de date într-un interval de 500 ms.

Codul poate fi găsit aici: Github

Recomandat: