Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41
Tässä Instructable -ohjelmassa puhumme siitä, miten asennamme GPS -moduulin RC -autoon ja lähetimme kerätyt tiedot verkkosivulle helpon seurannan vuoksi. Olemme aiemmin tehneet ohjeen siitä, miten teimme RC -auton, joka löytyy täältä. Tämä käyttää samaa rakennetta, vaikka olemme päättäneet hävittää ultraäänianturit ja käyttäneet sen sijaan GPS -moduulia. Hankkeessa olemme perustaneet tietokannan, joka sisältää GPS -tiedot, ja rakennamme verkkosivun, josta tiedot löytyvät, sekä sovellamme sitä karttaan, jotta näet, missä auto on ollut. Käy osoitteessa Joerha.dk nähdäksesi verkkosivun.
Yläreunan vuokaaviossa näet yleiskuvan tässä projektissa käytetyistä tekniikoista. Jotta saat kaiken irti tästä Instructable -ohjelmasta, sinun on perehdyttävä joihinkin, ellei kaikkiin käytettyihin tekniikoihin. Se on linkitetty käytön mukaan. Githubin aliedustaminen auttaa myös, koska olemme linkittäneet github -arkistoihimme.
Luettelo apuohjelmista:
- Github
-
Vadelma PI/Raspbian
Python
-
Node.js
- Express.js
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Bootstrap
Vaihe 1: Tietokannan asennus
Tässä segmentissä puhumme siitä, miten rakennamme tietokantajärjestelmän, josta GPS -tiedot on otettu. Tietokanta on rakennettu MySQL: ään yllä olevan kuvan mukaisesti, jossa meillä on kaksi taulukkoa - "Käyttäjät" ja "GPSEntries". Käyttäjien ensisijainen avain on "Id". Sitä käytetään ainutlaatuisena tunnisteena. "Nimi" on tällä hetkellä kirjautuneen käyttäjän nimi. "Apikey" on yksilöllinen avain, joka annetaan käyttäjälle päästäkseen sovellusliittymään. "Aktiivinen" on tarkistaa, onko käyttäjä aktiivinen. Voimme deaktivoida käyttäjän, jotta hän ei pääse tietokantaan. "CreatedAt" ja "UpdatedAt" tehdään prosessilla, jota käytimme tietokannan rakentamisessa.
GPSEntries -taulukossa on kaikki määritteet, jotka sisältävät tietoja GPS -moduulista. "Aika" on GPS -moduulin nykyinen aika, käytämme sitä näyttämään lähettämisen ajan. Sitten meillä on sijainti koordinaateissa sekä "nopeus" ja "suunta". Meillä on myös paljon virheominaisuuksia, jotka osoittavat, onko GPS: n tiedoissa virhe, fx koordinaateissa. Olemme lisänneet ne tietokantaan, mutta emme näytä niitä verkkosivulla. "UserId" on vieraa avain, joka sisältää käyttäjätunnuksen käyttäjätunnuksen. Sitä käytetään osoittamaan, kuka käyttäjä lähetti tiedot.
Vaihe 2: API
Tässä segmentissä puhumme sovellusliittymästä, joka ohjaa tietokantaa ja liittää tiedot siihen. Web -sovellusliittymä on rakennettu Node.js: llä, joka käyttää Express.js- ja Sequalize.js -tiedostoja.
Node.js-tiedostoa käytetään JavaScript-palvelinpuolen suorittamiseen, missä sitä tavallisesti käytetään pääasiassa asiakaspuolen komentosarjoihin verkkosivulla.
Express.js on kehys, jota käytimme sovellusliittymän rakentamisessa.
Sequalize.js -linkkiä käytetään linkkien luomiseen GPS -datan ja tietokannan määritteiden välillä. Se käyttää ORM (Object-Relational Mapping) -menetelmää tähän. Tässä luodaan myös "CreatedAt" ja "UpdatedAt" (näytetään vaiheessa 1).
Sovellusliittymää voidaan käyttää osoitteessa api.joerha.dk. Lisää sitten URL -osoitteeseen /gps, joka näyttää kaikki tietokannan tiedot JSON -muodossa. Voit hallita kuinka monta merkintää haluat lisätä URL -osoitteeseen /2 (käyttäjä) ja /x (merkintöjen määrä). Fx api.joerha.dk/gps/2/10 näyttää 10 uusinta merkintää. Muotoiltujen tietojen saanti näkyy yllä olevassa kuvassa.
Koodi löytyy täältä: Github
Vaihe 3: GPS/Python -sovellus
Tässä segmentissä puhumme komentosarjasta, joka toimii vadelmalla ja kerää GPS -tiedot ja lähettää ne sovellusliittymään.
Tietojen keräämiseksi GPS: stä käytämme daemonia nimeltä gpsd (Kuva 1). Täältä keräämme tietokantaan lähettämämme tiedot ja GPSEntries -taulukon perustan. Skripti, joka vetää tiedot gpsd: stä ja lähettää ne sovellusliittymään, on kirjoitettu pythonilla.
Sovellus alustaa säikeen, joten se voi ajaa sekä gpsd: tä että ohjelmaa samanaikaisesti. GPS -tietoja lähetetään jatkuvasti, kun GPS on aktiivinen (Kuva 2).
Sitten teemme hetken silmukan, joka lähettää jatkuvasti hyötykuormansa sovellusliittymään, joka sisältää GPS -tiedot. Tiedot on muotoiltu muotoon JSON. Hyötykuorma koostuu GPSD: ssä näkyvistä ominaisuuksista.. Fix -tunniste toimii kuin tilannekuva nykyisistä tiedoista ja lähettää sen sovellusliittymään. Tämä tehdään request.postin avulla ja käyttää URL- ja API -avainta. Tulosta (r.status_code) tulostetaan käyttäjälle, jotta tiedetään, ovatko tiedot menneet oikein. Aika. Unta (0,5) on kuinka usein tiedot julkaistaan (Kuva 3)
Koodi löytyy täältä: Github
Vaihe 4: Projektin verkkosivu
Tässä segmentissä puhumme siitä, miten teimme verkkosivumme, joka näyttää tiedot ja muut tiedot projektista. Sivusto on rakennettu HTML: llä, css: llä ja JS: llä. Aloitimme Bootstrap 4.0: lla, joka on HTML-, css- ja JS -kirjasto. Sen mukana tulee paljon toimintoja, jotka auttavat sinua rakentamaan verkkosivustosi. Olemme käyttäneet sitä yläreunan navigointipalkissa sekä rivi- ja sarakeasetuksissa, joilla sivusto rakennetaan. Sitten meillä on toinen pieni css -komentosarja, joka ohjaa taustan ja otsikoiden värejä. Tämän lisäksi olemme käyttäneet Lightbox-kirjastoa, joten voit napsauttaa kuvia ja ne avautuvat. Sivuston sisältö sisältää Google -kartan, tietotaulukon, videon toiminnassa olevasta autosta ja linkin tälle sivulle.
Googlen kartta on mielenkiintoisin. Kartta ladataan Googlen sovellusliittymän kautta, johon lisätään ainutlaatuinen sovellusliittymäavain, jotta se toimii. Tiedot siirretään kartalle 500 ms: n välein. Olemme tehneet toiminnon, jossa tietokannan viimeiset 100 datapistettä näytetään merkkeinä, joten voit seurata auton sijaintia. Tämä tehdään niin kutsutun AJAX -puhelun kautta.
GPS -tietotaulukon tietojoukkoja pyydetään samalla tavalla. Taulukossa näet viimeiset 10 merkintää, jotka päivitetään reaaliajassa, kun GPS on aktiivinen. Haemme tietoja tietokannasta 500 ms: n välein.
Koodi löytyy täältä: Github
Suositeltava:
EAL- sulautettu - yhdistelmälukko: 4 vaihetta
EAL- Embedded- Yhdistelmälukko: Tämä projekti on yksi kouluprojekti, jonka olen valinnut oppiaineeksi 2.1 C-ohjelmointi EAL: ssa. Tämä on ensimmäinen kerta, kun tein Arduino-projektin ja C-ohjelmoinnin. Tämä on projekti, jossa esitetään yhdistelmälukko. Yhdistelmälukko
EAL- sulautettu sisäilma: 5 vaihetta
EAL-sulautettu sisäilma: Kouluprojektimme tehtävänä oli integroida arduino automaattiseen järjestelmään. Valitsimme tehdä sisäilma -anturin, joka tunnistaa lämpötilan, kosteuden ja desibelin tason sisätiloissa. Porasimme pari reikää kaappiin
EAL - SmartStorage: 3 vaihetta
EAL - SmartStorage: Tämä on Kasper Borger Tuliniusin SmartStorage -projekti
EAL - Teollinen 4.0 Lämpö ja kosteus: 9 vaihetta
EAL - Industrial 4.0 Heat & Kosteus: Määritän projektin, jossa on maskin säätölaitteita, säädöksiä ja fugtigheden i et rommi ja opsamler data for forbedre indeklimaet i rommi fremtiden. Den g ø r brug af 4 ohjelmoijaohjelmistoa ja kirjoituslaitteistoa
DeLorme Earthmate GPS LT-20: n liittäminen Google Earthiin saadaksesi loistavan GPS-seurantakartan: 5 vaihetta
DeLorme Earthmate GPS LT-20: n liittäminen Google Earthiin saadaksesi loistavan GPS-seurantakartan: Näytän sinulle, kuinka voit liittää GPS-laitteen suosittuun Google Earth -ohjelmaan ilman Google Earth Plus -ohjelmaa. Minulla ei ole suurta budjettia, joten voin taata, että tämä on mahdollisimman halpaa