Orodha ya maudhui:
- Hatua ya 1: Usanidi wa Hifadhidata
- Hatua ya 2: API
- Hatua ya 3: Maombi ya GPS / Python
- Hatua ya 4: Ukurasa wa wavuti wa Mradi
Video: EAL - Viwanda 4.0 Ukusanyaji wa Takwimu za GPS kwenye Rc Car: Hatua 4
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:49
Katika Agizo hili tutazungumza juu ya jinsi tunavyoweka moduli ya GPS kwenye gari la RC na kuchapisha data iliyokusanywa kwenye wavuti kwa ufuatiliaji rahisi. Tumefanya previosly kufundisha juu ya jinsi tulivyotengeneza gari letu la RC, ambalo linaweza kupatikana hapa. Hii ni kutumia ujengaji huo huo, ingawa tumeamua kufuta sensorer za ultrasound na kutumia moduli ya GPS badala yake. Katika mradi huo tuna usanidi wa hifadhidata ambayo ina data ya GPS, na tengeneza ukurasa wa wavuti ambao data inaweza kupatikana, pamoja na kuitumia kwenye ramani, ili uweze kuona gari liko wapi. Tembelea Joerha.dk kutazama ukurasa wa wavuti.
Kwenye mtiririko ulio juu, unaweza kuona muhtasari wa teknolojia ambazo zimetumika katika mradi huu. Ili kupata zaidi kutoka kwa hii inayoweza kufundishwa, unahitaji kuwa na umaarufu na zingine, ikiwa sio teknolojia zote zinazotumiwa. Imeunganishwa kulingana na matumizi. Kuwa na msingi wa Github pia kutasaidia, kwani tumeunganisha kwenye hazina zetu za github.
Orodha ya huduma:
- Github
-
Raspberry PI / Raspbian
Chatu
-
Node
- Express.js
- Fuata usawa
- MySQL
-
HTML, CSS, JS
Kamba ya Boot
Hatua ya 1: Usanidi wa Hifadhidata
Katika sehemu hii tutazungumza juu ya jinsi tunavyojenga mfumo wa hifadhidata ambayo data yetu ya GPS hutolewa. Hifadhidata imejengwa katika MySQL kulingana na picha hapo juu, ambapo tuna meza mbili - "Watumiaji" na "GPSEntries". Katika watumiaji tuna "Id" kama ufunguo wetu wa msingi. Inatumika kama kitambulisho cha kipekee. "Jina" ni jina la mtumiaji aliyeingia kwa sasa. "Apikey" ni ufunguo wa kipekee uliopewa mtumiaji kufikia API. "Active" ni kuangalia ikiwa mtumiaji anafanya kazi, tunaweza kumzuia mtumiaji, kwa hivyo hawezi kufikia hifadhidata. "CreatedAt" na "UpdatedAt" hufanywa na mchakato tuliotumia kujenga hifadhidata.
Katika jedwali la "GPSEntries" tuna sifa zote zilizo na data kutoka kwa moduli ya GPS. "Wakati" ni wakati wa sasa wa moduli ya GPS, tunaitumia kuonyesha wakati wa kuchapisha. Halafu tuna nafasi katika kuratibu, na vile vile "kasi" na "kichwa". Pia tuna sifa nyingi za makosa, ambayo inaonyesha ikiwa kuna hitilafu katika data kutoka GPS, fx katika kuratibu. Tumewaongeza kwenye hifadhidata, lakini hatuwaonyeshi kwenye ukurasa wa wavuti. "UserId" ni ufunguo wa kigeni ambao una "id" kutoka meza ya Watumiaji. Hiyo hutumiwa kuonyesha ni mtumiaji gani aliyechapisha data.
Hatua ya 2: API
Katika sehemu hii tutazungumza juu ya API inayodhibiti hifadhidata na kuipaka data. API ya wavuti imejengwa na Node.js, ambayo hutumia Express.js na Sequalize.js.
Node.js hutumiwa kuendesha seva ya JavaScript, ambapo kawaida hutumiwa hasa kwa maandishi ya upande wa mteja kwenye ukurasa wa wavuti.
Express.js ndio mfumo tuliotumia kujenga API.
Sequalize.js hutumiwa kutengeneza viungo kati ya data ya Gps, na sifa za hifadhidata. Inatumia njia inayoitwa ORM (Object-Relational Ramani) kufanya hivyo. Hapa ndipo pia "CreatedAt" na "UpdatedAt" imeundwa (Imeonyeshwa katika hatua ya 1).
API inaweza kutumika kwa kutembelea api.joerha.dk. Kisha ongeza / gps kwenye url, ambayo itaonyesha data zote kwenye hifadhidata katika muundo wa JSON. Ili kudhibiti maingizo mengi unayotaka, unaweza kuongeza / 2 (Mtumiaji) na / x (idadi ya viingilio) kwenye url. Fx api.joerha.dk/gps/2/10 itaonyesha maandishi 10 ya hivi karibuni. Utaftaji wa data iliyoumbizwa umeonyeshwa kwenye picha hapo juu.
Nambari inaweza kupatikana hapa: Github
Hatua ya 3: Maombi ya GPS / Python
Katika sehemu hii tutazungumza juu ya hati ambayo inaendesha raspberry na hukusanya data ya GPS, na kuipeleka kwa API.
Kukusanya data kutoka kwa GPS tunatumia daemon inayoitwa gpsd (Picha 1). Hapa ndipo tunakusanya data ambayo tunachapisha kwenye hifadhidata, na msingi wa meza yetu ya GPSEntries. Hati ambayo huvuta data kutoka kwa gpsd na kuichapisha kwa API, imeandikwa kwa chatu.
Maombi huanzisha uzi, kwa hivyo inaweza kuendesha gpsd na programu yetu kwa wakati mmoja. Data ya Gpsd inasambazwa kila wakati GPS inafanya kazi (Picha 2).
Kisha tunatengeneza kitanzi cha muda ambacho huendelea kutuma malipo yake kwa API iliyo na data ya GPS. Data imeundwa kama JSON. Mshahara una sifa zinazoonekana katika GPSD. Lebo ya.fix hufanya kama picha ya data ya sasa, na hutuma hiyo kwa API. Hii imefanywa na ombi, na hutumia kitufe cha url na API. Chapisha (r.status_code) ni pato kwa mtumiaji, kujua ikiwa data imepata vizuri. Kulala (0.5) ni mara ngapi data imechapishwa (Picha 3)
Nambari inaweza kupatikana hapa: Github
Hatua ya 4: Ukurasa wa wavuti wa Mradi
Katika sehemu hii tutazungumza juu ya jinsi tulivyotengeneza ukurasa wetu wa wavuti ambao unaonyesha data, na habari zingine kuhusu mradi huo. Tovuti imejengwa na HTML, css na JS. Kuanza na tulitumia Bootstrap 4.0, ambayo ni maktaba ya HTML, css na JS. Inakuja na kazi nyingi ambazo husaidia kujenga tovuti yako. Tumeitumia kwa mwamba wa juu hapo juu, pamoja na safu na safu ya safu ambayo tovuti imejengwa nayo. Halafu tuna hati nyingine ndogo ya css inayodhibiti rangi za usuli na vichwa. Kwa hiyo tumetumia maktaba inayoitwa lightbox, kwa hivyo unaweza kubofya picha na zinaibuka. Yaliyomo kwenye wavuti yana ramani ya google, jedwali la data, video ya gari inayotumika na kiunga cha ukurasa huu.
Ramani ya google ni ya kuvutia zaidi. Ramani imepakiwa kupitia API ya google, ambapo ufunguo wa kipekee wa API umeingizwa ili ufanye kazi. Takwimu zinahamishwa kwa ramani kwa muda wa 500ms. Tumefanya kazi ambapo alama 100 za mwisho kwenye hifadhidata zinaonyeshwa kama alama, ili uweze kufuata mahali gari lilipokuwa. Hii imefanywa kupitia kile kinachoitwa simu ya AJAX.
Seti za data kwenye jedwali la data ya GPS zinaombwa vivyo hivyo. Katika jedwali unaweza kuona maingizo 10 ya mwisho, yaliyosasishwa kwa wakati halisi wakati GPS inafanya kazi. Tunapata data kutoka kwa hifadhidata katika kipindi cha 500 ms.
Nambari inaweza kupatikana hapa: Github
Ilipendekeza:
Kusoma Takwimu za Ultrasonic (HC-SR04) Takwimu kwenye LCD ya 128 × 128 na kuiona kwa kutumia Matplotlib: Hatua 8
Kusoma Takwimu za Utambuzi wa Ultrasonic (HC-SR04) kwenye LCD ya 128 × 128 na Kuiona Ukitumia Matplotlib: Katika hii inayoweza kufundishwa, tutatumia MSP432 LaunchPad + BoosterPack kuonyesha data ya sensa ya ultrasonic (HC-SR04) kwenye 128 × 128 LCD na tuma data kwa PC mfululizo na uione kwa kutumia Matplotlib
Jinsi ya Kuchukua Takwimu kutoka kwenye Hifadhidata ya Firebase kwenye NodeMCU: Hatua 7
Jinsi ya Kuchukua Takwimu kutoka kwa Hifadhidata ya Firebase kwenye NodeMCU: Kwa hili tunaweza kufundisha, tutachukua data kutoka kwa hifadhidata katika Google Firebase na kuichukua kwa kutumia NodeMCU kwa kuchanganua zaidi. akaunti ya kuunda hifadhidata ya Firebase. 3) Pakua
Cambus - Mfumo wa Ukusanyaji wa Takwimu kwenye Basi la Mjini: Hatua 8
Cambus - Mfumo wa Ukusanyaji wa Takwimu kwenye Basi la Mjini: Miongoni mwa shida na shida zinazojulikana katika usafiri wa umma, idadi ya watu haina habari ya wakati halisi na kwa uthubutu mdogo. Msongamano wa mabasi ya uchukuzi wa umma huwafukuza watumiaji, ambao wanapendelea kutumia magari yao wenyewe, hata
Kuonyesha Joto na Unyevu na Ukusanyaji wa Takwimu na Arduino na Usindikaji: Hatua 13 (na Picha)
Kuonyesha Joto na Unyevu na Ukusanyaji wa Takwimu na Arduino na Usindikaji: Intro: Huu ni Mradi unaotumia bodi ya Arduino, Sensor (DHT11), kompyuta ya Windows na Usindikaji (programu ya kupakua bure) kuonyesha Joto, data ya Unyevu katika dijiti na fomu ya grafu ya bar, muda wa kuonyesha na tarehe na uhesabu muda wa kuhesabu
Kituo cha Ukusanyaji wa Takwimu za IoT kilichowezeshwa na ESP8266 & PubNub: Hatua 9 (na Picha)
Kituo cha Ukusanyaji wa Takwimu za IoT Kimewezeshwa na ESP8266 & PubNub: Mafunzo mengi kwenye ESP8266 yanaweza kuwa katika kiwango cha newbie (kupepesa kwa mbali inayoongozwa) au ngumu sana kwa mtu ambaye anatafuta kitu cha kuboresha na kuboresha kwa ustadi wake wa kupepesa macho. malengo ya kufundisha kuziba pengo hili kwa ubunifu