Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:08
V tem navodilu bomo govorili o tem, kako smo na avtomobil z daljinskim upravljalnikom nastavili modul GPS in zbrane podatke objavili na spletni strani za lažji nadzor. Predhodno smo naredili navodila za izdelavo našega avtomobila RC, ki ga najdete tukaj. Ta uporablja isto konstrukcijo, čeprav smo se odločili, da odstranimo ultrazvočne senzorje in namesto tega uporabimo modul GPS. V projektu smo vzpostavili bazo podatkov, ki vsebuje podatke GPS, in izdelali spletno stran, na kateri je mogoče najti podatke, kakor tudi uporabiti na zemljevidu, tako da lahko vidite, kje je bil avto. Obiščite Joerha.dk in si oglejte spletno stran.
Na diagramu poteka na vrhu si lahko ogledate pregled tehnologij, ki so bile uporabljene v tem projektu. Če želite kar najbolje izkoristiti ta Instructable, se morate seznaniti z nekaterimi, če ne celo z vsemi uporabljenimi tehnologijami. Povezan je glede na uporabo. Razumevanje Github -a bo prav tako v pomoč, saj smo se povezali z našimi skladišči github.
Seznam pripomočkov:
- Github
-
Raspberry PI/Raspbian
Python
-
Node.js
- Express.js
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Bootstrap
1. korak: Namestitev baze podatkov
V tem segmentu bomo govorili o tem, kako gradimo sistem zbirk podatkov, iz katerega se črpajo naši podatki GPS. Baza podatkov je zgrajena v MySQL po zgornji sliki, kjer imamo dve tabeli - »Uporabniki« in »GPSEntries«. Pri uporabnikih imamo za primarni ključ »ID«. Uporablja se kot edinstven identifikator. »Ime« je ime trenutno prijavljenega uporabnika. »Apikey« je edinstven ključ, ki je uporabniku dan za dostop do API -ja. »Aktivno« je preverjanje, ali je uporabnik aktiven, uporabnika lahko deaktiviramo, tako da ne more dostopati do baze podatkov. »CreatedAt« in »UpdatedAt« nastane s postopkom, ki smo ga uporabili za izdelavo zbirke podatkov.
V tabeli »GPSEntries« imamo vse atribute, ki vsebujejo podatke iz modula GPS. »Čas« je trenutni čas modula GPS, ki ga uporabljamo za prikaz časa objave. Nato imamo položaj v koordinatah, pa tudi "hitrost" in "smer". Imamo tudi veliko atributov napak, ki kažejo, če je prišlo do napake v podatkih iz GPS, fx v koordinatah. Dodali smo jih v bazo podatkov, vendar jih ne prikažemo na spletni strani. "UserId" je tuji ključ, ki vsebuje "id" iz tabele Users. Uporablja se za prikaz, kateri uporabnik je objavil podatke.
2. korak: API
V tem segmentu bomo govorili o API -ju, ki nadzoruje bazo podatkov in vanj prilepi podatke. Spletni API je zgrajen z Node.js, ki uporablja Express.js in Sequalize.js.
Node.js se uporablja za izvajanje strežnika JavaScript na strani strežnika, kjer se običajno uporablja predvsem za odjemalsko skriptiranje na spletni strani.
Express.js je okvir, ki smo ga uporabili za izdelavo API -ja.
Sequalize.js se uporablja za vzpostavitev povezav med podatki GPS in atributi baze podatkov. Za to uporablja metodo, imenovano ORM (Object-Relational Mapping). Tu nastanejo tudi »CreatedAt« in »UpdatedAt« (prikazano v 1. koraku).
API lahko uporabite na spletnem mestu api.joerha.dk. Nato URL -ju dodajte /gps, ki bo prikazal vse podatke v bazi podatkov v obliki JSON. Če želite nadzirati, koliko vnosov želite, lahko URL -ju dodate /2 (uporabnik) in /x (število vnosov). Fx api.joerha.dk/gps/2/10 bo prikazal 10 najnovejših vnosov. Izvleček oblikovanih podatkov je prikazan na zgornji sliki.
Kodo najdete tukaj: Github
3. korak: Aplikacija GPS/Python
V tem segmentu bomo govorili o skriptu, ki deluje na malini in zbira podatke GPS ter jih pošlje v API.
Za zbiranje podatkov iz GPS -a uporabljamo demon, imenovan gpsd (slika 1). Tu zbiramo podatke, ki jih objavimo v bazi podatkov, in podlago za našo tabelo GPSEntries. Skript, ki potegne podatke iz gpsd in jih objavi v API -ju, je napisan v pythonu.
Aplikacija inicializira nit, tako da lahko hkrati izvaja gpsd in naš program. Podatki Gpsd se neprekinjeno pretakajo, medtem ko je GPS aktiven (slika 2).
Nato naredimo zanko while, ki neprestano objavlja svojo koristno obremenitev v API -ju, ki vsebuje podatke GPS. Podatki so oblikovani kot JSON. Tovor je sestavljen iz atributov, ki jih vidimo v GPSD. Oznaka.fix deluje kot posnetek trenutnih podatkov in to pošlje API -ju. To naredi request.post in uporablja URL in ključ API. Natisni (r.status_code) se prikaže uporabniku, da ugotovi, ali so podatki pravilno prišli. Time.sleep (0,5) je, kako pogosto so podatki objavljeni (slika 3)
Kodo najdete tukaj: Github
4. korak: Spletna stran projekta
V tem segmentu bomo govorili o tem, kako smo naredili našo spletno stran, ki prikazuje podatke, in druge podatke o projektu. Spletno mesto je zgrajeno s HTML, css in JS. Za začetek smo uporabili Bootstrap 4.0, ki je knjižnica za HTML, css in JS. Na voljo je z veliko funkcijami, ki vam pomagajo pri izdelavi vaše spletne strani. Uporabili smo ga za navbarno vrstico na vrhu, pa tudi nastavitve vrstic in stolpcev, s katerimi je spletno mesto zgrajeno. Nato imamo še en majhen skript css, ki nadzoruje barve ozadja in glave. Za to smo uporabili knjižnico, imenovano lightbox, tako da lahko kliknete slike in pojavne bodo. Vsebina spletnega mesta vsebuje google zemljevid, tabelo podatkov, videoposnetek avtomobila v akciji in povezavo do te strani.
Googlov zemljevid je najbolj zanimiv. Zemljevid se naloži prek google API -ja, v katerega je vstavljen edinstven ključ API -ja za njegovo delovanje. Podatki se pretakajo na zemljevid v intervalu 500 ms. Ustvarili smo funkcijo, pri kateri je zadnjih 100 podatkovnih točk v bazi podatkov prikazanih kot označevalci, tako da lahko spremljate, kje je bil avto. To se naredi prek tako imenovanega klica AJAX.
Podatkovni niz v podatkovni tabeli GPS se zahteva na enak način. V tabeli si lahko ogledate zadnjih 10 vnosov, posodobljenih v realnem času, ko je GPS aktiven. Podatke iz baze pridobivamo v intervalu 500 ms.
Kodo najdete tukaj: Github
Priporočena:
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD - Simulacija zapisovalnika podatkov DHT11 v Proteusu: 5 korakov
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD | Simulacija zapisovalnika podatkov DHT11 v Proteusu: Uvod: zdravo, to je Liono Maker, tukaj je povezava YouTube. Z Arduinom ustvarjamo projekt in delamo na vgrajenih sistemih. Data-Logger: Zapisovalnik podatkov (tudi zapisovalnik podatkov ali zapisovalnik podatkov) je elektronska naprava, ki sčasoma beleži podatke z
Sledenje kolesu ali avtomobilu GPS s pametnega telefona: 9 korakov
Sledenje kolesu ali avtomobilu s pametnega telefona GPS: Pozdravljeni, dobrodošli v Creativity Buzz.Tu vam pokažem, kako sledite svojemu kolesu ali avtu. S to napravo lahko spremljate lokacijo kolesa v živo. S to napravo lahko spremljate katero koli kolo
EAL-Industry 4.0 samodejni sistem za sledenje soncu: 9 korakov
EAL-Industry 4.0 Samodejni sistem za sledenje soncu: I dette projekt har vi f å et til opgave at lave en smart IOT l ø svor, hvor man skal l æ se data en en enhed p å en app/hjemmeside og derefter lager denne p å en bazo podatkov. Fra databasen skal det da v æ re muligt at hent
EAL-Industry 4.0-pametna raketa: 8 korakov (s slikami)
EAL-Industry 4.0-Smart Rocket: To je šolski projekt, izdelan na Erhversakademiet Lilleb æ lt na Danskem. Projekt je narejen v razredu, imenovanem "Industri 4.0". Naloga je uvesti avtomatski sistem iz industrije 4.0. Sistemi bi morali biti sposobni
EAM-Industri4.0-RFID zbirka podatkov do baze podatkov: 10 korakov (s slikami)
EAM-Industri4.0-RFID podatkovno razvrščanje podatkovnih zbirk v zbirko podatkov: Dette projekt omhandler opsamling af v æ gtdata, register up identiteter vha. RFID, zaostajanje podatkov v bazi podatkov MySQL vha. node-RED, samostojno obnašanje in ravnanje z opsamlede podatki v programu et C#, ki se oblikujejo v aplikaciji Windows Form.