Turinys:

EAL - Pramonė 4.0 GPS duomenų rinkimas Rc automobilyje: 4 žingsniai
EAL - Pramonė 4.0 GPS duomenų rinkimas Rc automobilyje: 4 žingsniai

Video: EAL - Pramonė 4.0 GPS duomenų rinkimas Rc automobilyje: 4 žingsniai

Video: EAL - Pramonė 4.0 GPS duomenų rinkimas Rc automobilyje: 4 žingsniai
Video: CFM Digital brochure Industry 4.0 cobot 2024, Lapkritis
Anonim
EAL - „Industry 4.0“GPS duomenų rinkimas „Rc Car“
EAL - „Industry 4.0“GPS duomenų rinkimas „Rc Car“
EAL - „Industry 4.0“GPS duomenų rinkimas „Rc Car“
EAL - „Industry 4.0“GPS duomenų rinkimas „Rc Car“

Š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

Duomenų bazės sąranka
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

API
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

GPS/Python programa
GPS/Python programa
GPS/Python programa
GPS/Python programa
GPS/Python programa
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

Projekto svetainė
Projekto svetainė

Š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: