Sadržaj:

EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka

Video: EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka

Video: EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka
Video: The Third Industrial Revolution: A Radical New Sharing Economy 2024, Novembar
Anonim
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu

U ovom Instructableu govorit ćemo o tome kako smo postavili GPS modul na RC automobil i postavili prikupljene podatke na web stranicu radi lakšeg praćenja. Prethodno smo napravili uputstva o tome kako smo napravili naš RC automobil, koji se mogu pronaći ovdje. Ovo koristi istu konstrukciju, iako smo odlučili ukinuti ultrazvučne senzore i umjesto toga primijenili GPS modul. U projektu smo postavili bazu podataka koja sadrži GPS podatke i izgradili web stranicu na kojoj se podaci mogu pronaći, kao i primijeniti ih na kartu, tako da možete vidjeti gdje je automobil bio. Posjetite Joerha.dk da vidite web stranicu.

Na dijagramu toka na vrhu možete vidjeti pregled tehnologija koje su korištene u ovom projektu. Da biste najbolje iskoristili ovaj Instructable, morate se upoznati s nekim, ako ne i sa svim tehnologijama koje se koriste. Povezan je prema upotrebi. Razumevanje Github -a će takođe pomoći, jer smo se povezali sa našim github spremištima.

Lista komunalnih usluga:

  • Github
  • Raspberry PI/Raspbian

    Python

  • Node.js

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

    Bootstrap

Korak 1: Postavljanje baze podataka

Podešavanje baze podataka
Podešavanje baze podataka

U ovom segmentu ćemo govoriti o tome kako gradimo sistem baze podataka iz kojeg se crpe naši GPS podaci. Baza podataka je izgrađena u MySQL -u prema gornjoj slici, gdje imamo dvije tablice - “Korisnici” i “GPSEntries”. Kod korisnika primarni ključ imamo „Id“. Koristi se kao jedinstveni identifikator. “Ime” je ime korisnika koji je trenutno prijavljen. “Apikey” je jedinstveni ključ koji se daje korisniku za pristup API -ju. "Aktivno" znači provjeriti je li korisnik aktivan, možemo deaktivirati korisnika kako ne bi mogao pristupiti bazi podataka. “CreatedAt” i “UpdatedAt” nastaju postupkom koji smo koristili za izgradnju baze podataka.

U tabeli “GPSEntries” imamo sve atribute koji sadrže podatke iz GPS modula. "Vrijeme" je trenutno vrijeme GPS modula, koristimo ga za prikaz vremena objavljivanja. Zatim imamo položaj u koordinatama, kao i “brzina” i “smjer”. Imamo i mnogo atributa greške koji pokazuju da li postoji greška u podacima sa GPS -a, fx u koordinatama. Dodali smo ih u bazu podataka, ali ih ne prikazujemo na web stranici. “UserId” je strani ključ koji sadrži “id” iz tabele Users. To se koristi za prikaz koji je korisnik objavio podatke.

Korak 2: API

API
API

U ovom segmentu govorit ćemo o API -ju koji kontrolira bazu podataka i lijepi podatke u nju. Web API izgrađen je sa Node.js, koji koristi Express.js i Sequalize.js.

Node.js se koristi za pokretanje JavaScript poslužitelja, gdje se kao i obično koristi prvenstveno za skriptiranje na strani klijenta na web stranici.

Express.js je okvir koji smo koristili za izradu API -ja.

Sequalize.js se koristi za povezivanje između GPS podataka i atributa baze podataka. Za to koristi metodu nazvanu ORM (Objektno-relacijsko mapiranje). Ovdje se također stvaraju “CreatedAt” i “UpdatedAt” (prikazano u koraku 1).

API se može koristiti posjetom api.joerha.dk. Zatim dodajte /gps u url, koji će prikazati sve podatke u bazi podataka u JSON formatu. Da biste kontrolirali koliko unosa želite, možete dodati /2 (korisnik) i /x (broj unosa) u url. Fx api.joerha.dk/gps/2/10 će prikazati 10 najnovijih unosa. Izlaz formatiranih podataka prikazan je na gornjoj slici.

Kôd možete pronaći ovdje: Github

Korak 3: GPS/Python aplikacija

GPS/Python aplikacija
GPS/Python aplikacija
GPS/Python aplikacija
GPS/Python aplikacija
GPS/Python aplikacija
GPS/Python aplikacija

U ovom segmentu govorit ćemo o skripti koja radi na malini i prikuplja GPS podatke i šalje ih API -ju.

Za prikupljanje podataka s GPS -a koristimo demon nazvan gpsd (Slika 1). Ovdje prikupljamo podatke koje postavljamo u bazu podataka i osnovu za našu tablicu GPSEntries. Skripta koja povlači podatke iz gpsd -a i objavljuje ih u API -ju, napisana je na pythonu.

Aplikacija inicijalizira nit, tako da može istovremeno pokrenuti i gpsd i naš program. Gpsd podaci kontinuirano se prenose dok je GPS aktivan (slika 2).

Zatim napravimo while petlju koja kontinuirano objavljuje svoj korisni teret u API -ju koji sadrži GPS podatke. Podaci su formatirani kao JSON. Korisni teret sastoji se od atributa koji se vide u GPSD -u. Oznaka.fix djeluje kao snimak trenutnih podataka i šalje to API -ju. To radi request.post i koristi url i API ključ. Ispis (r.status_code) se šalje korisniku kako bi znao jesu li podaci ispravno prešli. Time.sleep (0.5) je učestalost objavljivanja podataka (Slika 3)

Kôd možete pronaći ovdje: Github

Korak 4: Web stranica projekta

Web stranica projekta
Web stranica projekta

U ovom segmentu govorit ćemo o tome kako smo napravili našu web stranicu koja prikazuje podatke i druge informacije o projektu. Sajt je izgrađen sa HTML, css i JS. Za početak smo koristili Bootstrap 4.0, biblioteku za HTML, css i JS. Dolazi s puno funkcija koje vam pomažu u izgradnji vaše web stranice. Koristili smo ga za navigacijsku traku na vrhu, kao i za postavljanje redaka i stupaca pomoću kojih je web stranica izgrađena. Zatim imamo još jednu malu css skriptu koja kontrolira boje pozadine i zaglavlja. Osim toga, iskoristili smo biblioteku koja se zove lightbox, pa možete kliknuti na slike i one će se pojaviti. Sadržaj web stranice sadrži google kartu, tablicu podataka, video zapis automobila na djelu i vezu do ove stranice.

Google karta je najzanimljivija. Mapa se učitava putem google API -ja, gdje je umetnut jedinstveni API ključ za rad. Podaci se prenose na mapu u intervalu od 500 ms. Napravili smo funkciju gdje se posljednjih 100 podataka u bazi podataka prikazuje kao markeri, tako da možete pratiti gdje je automobil bio. To se radi putem takozvanog AJAX poziva.

Na isti način se traže skupovi podataka u GPS tabeli podataka. U tablici možete vidjeti posljednjih 10 unosa, ažuriranih u stvarnom vremenu kada je GPS aktivan. Podatke preuzimamo iz baze podataka u intervalu od 500 ms.

Kôd možete pronaći ovdje: Github

Preporučuje se: