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, Studeni
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 je na kartu, tako da možete vidjeti gdje je automobil bio. Posjetite Joerha.dk za pregled web stranice.

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. Razumijevanje Githuba također će pomoći, jer smo se povezali s našim github spremištima.

Popis komunalija:

  • Github
  • Malina PI/Raspbian

    Piton

  • Node.js

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

    Bootstrap

Korak 1: Postavljanje baze podataka

Postavljanje baze podataka
Postavljanje baze podataka

U ovom segmentu govorit ćemo o tome kako gradimo sustav baze podataka iz kojeg se izvlače naši GPS podaci. Baza podataka izgrađena je u MySQL -u prema gornjoj slici, gdje imamo dvije tablice - “Korisnici” i “GPSEntries”. Kod korisnika kao primarni ključ imamo "Id". Koristi se kao jedinstveni identifikator. “Name” je naziv trenutno prijavljenog korisnika. “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 tablici “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". Također imamo mnogo atributa pogreške, koji pokazuju postoje li greške u podacima s 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 tablice 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 zalijepi podatke u nju. Web API izgrađen je s 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 web stranici na strani klijenta.

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 se koristi metoda zvana ORM (Object-Relational Mapping). 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) na URL. Fx api.joerha.dk/gps/2/10 prikazat će 10 najnovijih unosa. Iznos formatiranih podataka prikazan je na gornjoj slici.

Kôd se može 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 u API.

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 izvlači podatke iz gpsd -a i objavljuje ih u API -ju, napisana je na pythonu.

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

Zatim napravimo while petlju koja neprestano 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 poput snimke trenutnih podataka i šalje to API -ju. To čini request.post, a koristi url i API ključ. Ispis (r.status_code) ispisuje se korisniku kako bi znao jesu li podaci ispravno prešli. Time.sleep (0,5) je učestalost objavljivanja podataka (slika 3)

Kôd se može pronaći ovdje: Github

Korak 4: Web stranica za projekt

Web stranica za projekt
Web stranica za projekt

U ovom segmentu govorit ćemo o tome kako smo napravili našu web stranicu koja prikazuje podatke i druge podatke o projektu. Stranica je izrađena s HTML -om, css -om i JS -om. 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 izrađena. Zatim imamo još jednu malu css skriptu koja kontrolira boje pozadine i zaglavlja. Usput, iskoristili smo biblioteku koja se zove lightbox, pa možete kliknuti slike i one će se pojaviti. Sadržaj web stranice sadrži google kartu, tablicu podataka, video zapis automobila na djelu i vezu na ovu stranicu.

Najzanimljivija je google karta. Karta se učitava putem google API -ja, gdje je umetnut jedinstveni API ključ za rad. Podaci se prenose na kartu u intervalu od 500 ms. Napravili smo funkciju gdje se posljednjih 100 točaka podataka u bazi podataka prikazuje kao markeri, tako da možete pratiti gdje je automobil bio. To se radi putem onoga što se naziva AJAX pozivom.

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

Kôd se može pronaći ovdje: Github

Preporučeni: