Turinys:
- 1 veiksmas: duomenų bazės sąranka
- 2 veiksmas: API
- 3 žingsnis: GPS/„Python“programa
- 4 žingsnis: projekto tinklalapis
Video: EAL - Pramonė 4.0 GPS duomenų rinkimas Rc automobilyje: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šioje instrukcijoje mes kalbėsime apie tai, kaip mes nustatome GPS modulį RC automobilyje ir paskelbiame surinktus duomenis tinklalapyje, kad būtų lengviau stebėti. Anksčiau mes padarėme instrukciją, kaip mes pagaminome savo RC automobilį, kurį galite rasti čia. Naudojama ta pati konstrukcija, nors nusprendėme atsisakyti ultragarso jutiklių ir vietoj to pritaikėme GPS modulį. Projekte mes sukūrėme duomenų bazę, kurioje yra GPS duomenys, ir sukuriame tinklalapį, kuriame duomenis galima rasti, taip pat pritaikėme juos žemėlapyje, kad galėtumėte pamatyti, kur buvo automobilis. Apsilankykite Joerha.dk ir peržiūrėkite tinklalapį.
Viršuje esančioje schemoje galite pamatyti šiame projekte naudojamų technologijų apžvalgą. Norėdami išnaudoti visas „Instructable“galimybes, turite būti susipažinę su kai kuriomis, jei ne visomis, naudojamomis technologijomis. Jis susietas pagal naudojimą. Taip pat padės „Github“supratimas, nes susiejome su savo „github“saugyklomis.
Komunalinių paslaugų sąrašas:
- „Github“
-
Aviečių PI/Raspbian
Python
-
Node.js
- „Express.js“
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Bootstrap
1 veiksmas: duomenų bazės sąranka
Šiame segmente kalbėsime apie tai, kaip kuriame duomenų bazių sistemą, iš kurios gaunami mūsų GPS duomenys. Duomenų bazė yra sukurta „MySQL“pagal paveikslėlį aukščiau, kur turime dvi lenteles - „Vartotojai“ir „GPSEntries“. Vartotojams pagrindinis raktas yra „Id“. Jis naudojamas kaip unikalus identifikatorius. „Vardas“yra šiuo metu prisijungusio vartotojo vardas. „Apikey“yra unikalus raktas, suteiktas vartotojui pasiekti API. „Aktyvus“yra patikrinti, ar vartotojas yra aktyvus, mes galime išjungti vartotoją, kad jis negalėtų pasiekti duomenų bazės. „CreatedAt“ir „UpdatedAt“sukuria procesas, kurį naudojome kurdami duomenų bazę.
Lentelėje „GPSEntries“yra visi atributai, kuriuose yra duomenys iš GPS modulio. „Laikas“yra dabartinis GPS modulio laikas, mes jį naudojame norėdami parodyti paskelbimo laiką. Tada mes turime padėtį koordinatėse, taip pat „greitį“ir „kryptį“. Mes taip pat turime daug klaidų atributų, kurie parodo, ar yra klaidų duomenyse iš GPS, fx koordinatėse. Mes įtraukėme juos į duomenų bazę, bet nerodome jų tinklalapyje. „UserId“yra svetimas raktas, kuriame yra „id“iš vartotojų lentelės. Tai naudojama norint parodyti, kuris vartotojas paskelbė duomenis.
2 veiksmas: API
Šiame segmente kalbėsime apie API, kuri valdo duomenų bazę ir įklijuoja duomenis į ją. Žiniatinklio API sukurta naudojant „Node.js“, kuri naudoja „Express.js“ir „Sequalize.js“.
„Node.js“naudojamas paleisti „JavaScript“serverio pusėje, kur paprastai naudojamas visų pirma kliento pusės scenarijams tinklalapyje.
„Express.js“yra sistema, kurią naudojome kurdami API.
„Sequalize.js“naudojamas norint sukurti nuorodas tarp GPS duomenų ir duomenų bazės atributų. Tam jis naudoja metodą, vadinamą ORM (Object-Relational Mapping). Čia taip pat kuriami „CreatedAt“ir „UpdatedAt“(parodyta 1 veiksme).
API galima naudoti apsilankius api.joerha.dk. Tada pridėkite /gps prie URL, kuris parodys visus duomenų bazės duomenis JSON formatu. Norėdami valdyti norimų įrašų skaičių, prie URL galite pridėti /2 (vartotojas) ir /x (įrašų skaičius). Fx api.joerha.dk/gps/2/10 bus rodomi 10 naujausių įrašų. Suformatuotų duomenų perdavimas parodytas aukščiau esančiame paveikslėlyje.
Kodą rasite čia: Github
3 žingsnis: GPS/„Python“programa
Šiame segmente kalbėsime apie scenarijų, kuris veikia avietėse ir renka GPS duomenis bei siunčia juos į API.
Norėdami surinkti duomenis iš GPS, naudojame demoną, pavadintą gpsd (1 pav.). Čia mes renkame duomenis, kuriuos skelbiame duomenų bazėje, ir mūsų GPSEntries lentelės pagrindą. Scenarijus, kuris ištraukia duomenis iš gpsd ir paskelbia juos API, yra parašytas „python“.
Programa inicijuoja giją, todėl vienu metu gali paleisti ir gpsd, ir mūsų programą. Gpsd duomenys nuolat transliuojami, kol veikia GPS (2 pav.).
Tada mes sukuriame laiko ciklą, kuris nuolat skelbia savo naudingąją apkrovą į API, kurioje yra GPS duomenys. Duomenys suformatuoti kaip JSON. Naudingąją apkrovą sudaro atributai, matomi GPSD. Žyma.fix veikia kaip dabartinių duomenų momentinė nuotrauka ir siunčia ją į API. Tai atliekama pagal request.post ir naudojamas URL ir API raktas. Spausdinimas (r.status_code) pateikiamas vartotojui, kad žinotų, ar duomenys buvo tinkamai perduoti. „Time.sleep“(0,5) yra tai, kaip dažnai skelbiami duomenys (3 pav.)
Kodą rasite čia: Github
4 žingsnis: projekto tinklalapis
Šiame segmente kalbėsime apie tai, kaip sukūrėme savo tinklalapį, kuriame rodomi duomenys ir kita informacija apie projektą. Svetainė sukurta naudojant HTML, css ir JS. Pirmiausia naudojome „Bootstrap 4.0“, kuri yra HTML, css ir JS biblioteka. Jame yra daug funkcijų, padedančių jums sukurti savo svetainę. Mes jį naudojome naršymo juostoje viršuje, taip pat eilutės ir stulpelio sąranką, su kuria kuriama svetainė. Tada mes turime dar vieną mažą css scenarijų, valdantį fono ir antraščių spalvas. Nepaisant to, mes panaudojome biblioteką, vadinamą „lightbox“, kad galėtumėte spustelėti paveikslėlius ir jie pasirodys. Svetainės turinyje yra „Google“žemėlapis, duomenų lentelė, veikiančio automobilio vaizdo įrašas ir nuoroda į šį puslapį.
„Google“žemėlapis yra pats įdomiausias. Žemėlapis įkeliamas per „Google“API, kur įterpiamas unikalus API raktas, kad jis veiktų. Duomenys perkeliami į žemėlapį 500 ms intervalu. Mes sukūrėme funkciją, kurioje paskutiniai 100 duomenų taškų duomenų bazėje rodomi kaip žymekliai, kad galėtumėte sekti, kur buvo automobilis. Tai daroma per vadinamąjį AJAX skambutį.
Duomenų rinkinių GPS duomenų lentelėje prašoma taip pat. Lentelėje galite pamatyti paskutinius 10 įrašų, atnaujintų realiu laiku, kai GPS yra aktyvus. Duomenis iš duomenų bazės gauname 500 ms intervalu.
Kodą rasite čia: Github
Rekomenduojamas:
Kaip padaryti drėgmės ir temperatūros realaus laiko duomenų įrašymo įrenginį naudojant „Arduino UNO“ir SD kortelę - DHT11 duomenų kaupiklio modeliavimas „Proteus“: 5 žingsniai
Kaip padaryti drėgmės ir temperatūros realaus laiko duomenų įrašymo įrenginį naudojant „Arduino UNO“ir SD kortelę | DHT11 duomenų kaupiklio modeliavimas „Proteus“: Įvadas: Sveiki, tai „Liono Maker“, čia yra „YouTube“nuoroda. Mes kuriame kūrybinį projektą su „Arduino“ir dirbame prie įterptųjų sistemų
Duomenų rinkimo ir duomenų vizualizavimo sistema „MotoStudent“lenktyniniam dviračiui: 23 žingsniai
„MotoStudent“elektrinio lenktyninio dviračio duomenų rinkimo ir duomenų vizualizavimo sistema: Duomenų surinkimo sistema yra techninės ir programinės įrangos, veikiančios kartu, rinkinys, siekiant surinkti duomenis iš išorinių jutiklių, po to juos saugoti ir apdoroti, kad būtų galima vizualizuoti grafiškai ir analizuoti, leidžia inžinieriams padaryti
Duomenų rinkimas „Af Tyverialarm IIOT 4.0“: 8 žingsniai
Duomenų rinkimas iš „Tyverialarm IIOT 4.0“: įterpkite IIOT vaizdo įrašą į vidinę garso sistemą, jei norite, kad tai būtų vidinė garso sistema, kai kuriomis aplinkybėmis galite rasti Arduino ir tidligere projektą. Der er i dette projekt blevet fokuseret in lagring af de data, jeg får fra min min tyverialarm, samt at lave et brugerinterface. D
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: 13 žingsnių (su nuotraukomis)
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: Įvadas: tai projektas, kuriame naudojama „Arduino“plokštė, jutiklis (DHT11), „Windows“kompiuteris ir apdorojimo (nemokama parsisiunčiama) programa, skirta temperatūrai, drėgmei rodyti skaitmeniniu ir juostos diagramos formą, rodyti laiką ir datą bei skaičiuoti laiką
EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)
EAL-Industri4.0-RFID duomenų kopijavimas iki duomenų bazės: „Dette projekt omhandler opsamling af v æ gtdata“, registruojantis tapatybę. RFID, bauginantys duomenys ir „MySQL“duomenų bazė. „NOD-RED“, „fremvisning“ir „elgsena“naudojant duomenų rinkinius ir C# programą, kurią sudaro „Windows Form Application“