Sadržaj:
- Korak 1: Postavljanje baze podataka
- Korak 2: API
- Korak 3: GPS/Python aplikacija
- Korak 4: Web stranica projekta
Video: EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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
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
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
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
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:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD-karticom - DHT11 Zapisnik podataka Simulacija u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD-karticom | DHT11 Simulator zapisnika podataka u Proteusu: Uvod: zdravo, ovdje Liono Maker, ovdje je YouTube veza. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sistemima. Zapisnik podataka: Zapisnik podataka (također zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tokom vremena sa
Rover-One: Davanje mozga RC kamionu/automobilu: 11 koraka
Rover-One: Davanje mozga RC kamionu/automobilu: Ovo uputstvo je na PCB-u koji sam dizajnirao pod nazivom Rover-One. Rover-One je rješenje koje sam osmislio da uzmem igračku RC automobil/kamion i da mu dam mozak koji uključuje komponente za osjet okoline. Rover-One je PCB 100 mm x 100 mm dizajniran u EasyED-u
DIY GPS zapisnik podataka za vašu sljedeću vožnju/pješačku stazu: 11 koraka (sa slikama)
DIY GPS zapisnik podataka za sljedeću vožnju/pješačku stazu: Ovo je GPS zapisnik podataka koji možete koristiti u više svrha, recimo ako želite prijaviti svoju dugu vožnju koju ste uzeli tokom vikenda kako biste provjerili boje jeseni. ili imate omiljenu stazu koju svake jeseni posjećujete i
GPS automobilski tragač sa SMS obavještenjem i otpremom podataka, na bazi Arduina, kućna automatizacija: 5 koraka (sa slikama)
GPS automobilski tragač sa SMS obavještenjem i prenosom podataka sa stvarnim govorima, baziran na Arduinu, kućna automatizacija: Napravio sam ovaj GPS praćenje prošle godine, a budući da dobro radi, sada ga objavljujem na Instructable. Povezan je s priključkom za dodatnu opremu u mom prtljažniku. GPS tracker prenosi podatke o položaju automobila, brzinu, smjer i izmjerenu temperaturu putem mobilnih podataka
Bežični GPS zapisnik podataka za divlje životinje: 9 koraka (sa slikama)
Bežični GPS zapisnik podataka za divlje životinje: U ovom uputstvu pokazat ćemo vam kako napraviti mali i jeftini GPS zapisnik na bazi Arduina, s bežičnom sposobnošću! Korištenje telemetrije za proučavanje kretanja divljih životinja može biti vrlo važno oruđe za biologe. Može vam reći gdje je