Talaan ng mga Nilalaman:
- Hakbang 1: Pagkuha ng Mga Materyales
- Hakbang 2: Pag-set up ng Mga Device
- Hakbang 3: Pag-coding ng Arduino upang Mag-extract ng Data
- Hakbang 4: Paggamit ng Pagproseso upang Makinig
- Hakbang 5: Pagpapakita ng Data sa Publiko ng Tableau
- Hakbang 6: Pagpino ng Viz
Video: Ang Path Mapper: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Sa proyektong IoT na ito, nakakabit kami ng isang NEO-6M (module ng GPS) upang maihatid ang data ng lokasyon sa pamamagitan ng Arduino sa isang sheet ng Excel na mai-save sa computer. Pagkatapos ay sa Tableau Public, gumawa kami ng isang visualization ng data ng data na ito upang mai-map ang landas na kinuha namin. Habang ito ay isang paraan ng pagkolekta at paglabas ng data ng real time sa isang lubos na naiugnay na data viz, ang prosesong ito ay maaari ring mailapat sa iba pang mga proyekto na hinihimok ng data.
Hakbang 1: Pagkuha ng Mga Materyales
Para sa proyektong ito, kakailanganin mo ang sumusunod:
- NEO-6M GPS Module
- Arduino Uno
- Lalake / lalaking jumper wires (kakailanganin mo ng 4 na wires)
- USB 2.0 Cable Type A hanggang B
- Ang computer na may mga programang ito: Publiko ng Tableau, Arduino IDE (na may TinyGPS ++), at Pagproseso
Hakbang 2: Pag-set up ng Mga Device
Kailangan muna naming i-set up ang module ng GPS gamit ang Arduino UNO upang mabigyan kami ng Arduino ng isang interface upang maipakita ang data. Ang bawat isa sa apat na mga wire na konektado sa NEO-6M ay tumutugma sa mga tiyak na port. Kung ang iyong NEO-6M ay hindi kasama ng mga wires, kakailanganin mong i-wire ito nang direkta sa mga jumper wires. Sa diagram sa itaas, ang pula ay tumutugma sa kapangyarihan (VCC), itim sa lupa (GND), dilaw upang magpadala ng data (TxD), at puti upang makatanggap ng data (RxD). Ikonekta namin ang mga wires na ito sa mga lalaking / lalaki na jumper wires upang maikonekta namin ang mga ito sa Arduino. Kasunod sa diagram sa itaas, ikinonekta namin ang ground wire sa GND digital pin sa Arduino, ang TxD wire sa 4, ang RxD wire sa ~ 3, at ang VCC wire sa 5V para sa boltahe. Sa isang hinaharap na hakbang, kakailanganin naming tukuyin ang TxD at RxD na may wastong mga numero sa SoftwareSerial.
Kapag ang dalawang aparato ay naka-wire sa bawat isa, kailangan naming magbigay ng isang mapagkukunan ng kuryente. Ikonekta ang USB 2.0 cable sa iyong laptop at ang ilaw sa NEO-6M ay dapat na ilaw.
Hakbang 3: Pag-coding ng Arduino upang Mag-extract ng Data
Ngayon na na-set up na namin ang mga aparato upang mangolekta ng data ng GPS mula sa mga satellite, magsusulat kami ng code upang ma-parse ang data ng GPS na gusto namin. Ipagpalagay na pumili ka ng isang senyas (ang aking module ng GPS ay kumikislap asul), ang NEO-6M bilang default ay naglilimbag ng hilaw na data sa serial monitor sa anyo ng mga mensahe sa NMEA, na mukhang isang $ GP na sinusundan ng maraming mga titik at isang serye ng mga numero. Ang imahe sa itaas ay nagbibigay ng isang pangkalahatang ideya kung ano ang dapat ipakita sa iyong serial monitor sa sandaling mailagay ang pangunahing Arduino code.
Upang ipaliwanag ang code na na-attach ko (o kung nais mong subukang i-code ito mismo), kailangan mo munang isama ang parehong mga library ng SoftwareSerial at TinyGPS ++ (para sa huli, Sketch> Isama> Magdagdag. Library ZIP). Pinapayagan kami ng SoftwareSerial na magkaroon ng isang serial na koneksyon; Binibigyan kami ng TinyGPS ++ ng isang madaling tool upang mai-print ang naka-target na impormasyon sa isang nababasa na form. Tiyaking pinasimulan mo ang object ng SoftwareSerial sa mga kaukulang mga pin sa Arduino. Sa pag-andar ng pag-setup, gumagamit kami ng 9600 bilang rate ng baud.
Para sa hangarin ng pagtuturo na ito, mai-print lamang namin ang pitong uri ng data sa pagpapaandar ng loop: latitude (degree), longitude (degree), bilis (km), kurso (degree), altitude (km), bilang ng mga satellite sa gamitin, at hdop. Maaari kang maghanap ng syntax para sa pag-print ng impormasyong ito sa Arduiniana library. Ang pangkalahatang form ay Serial.print (). Halimbawa upang mai-print ang longitude, mai-type namin ang Serial.print (gps.location.lng (), 6). Kinakatawan ng 6 kung gaano karaming mga digit ang nais namin sa kanan ng decimal point.
Ang aking code ay may karagdagang mga character na nakalimbag alang-alang sa isang madaling nai-format na regex sa susunod na hakbang. Kung nais mong tumigil sa hakbang na ito gayunpaman, huwag mag-atubiling i-format ang data nang iba para sa kadalian ng pagtingin sa serial monitor.
Hakbang 4: Paggamit ng Pagproseso upang Makinig
Habang mayroon kaming code para sa naka-set up na Arduino IDE, mayroon kaming isyu sa pag-save ng data na ito. Sa ngayon, maaari lamang naming matingnan ang data sa serial monitor habang kinokolekta namin ito. Mayroong maraming mga paraan upang mai-log ang data na ito ngunit pinili ko ang Pangunahing pagpoproseso dahil ang interface nito ay ginagaya ang Arduino IDE at gumagamit ito ng Java, isang wikang pamilyar sa akin (tandaan na maaari mo ring kontrolin ang Arduino board sa Pagproseso kung na-download mo ang Firmata). Ang pagpoproseso ay nakikinig sa port na konektado sa Arduino at may kakayahang manipulahin ang data na nabasa sa serial monitor. Upang hanapin ang pangalan ng port na ito, sumangguni sa iyong Arduino IDE file at suriin ang Mga Tool> Port.
Naibigay ko ang Processing code, ngunit narito ang isang mabilis na pangkalahatang ideya para sa kung paano gumagana ang code.
Bago ang pag-andar ng pag-set up, tiyaking mayroon kang mga variable para sa port, ang nagresultang talahanayan, ang hilera na makikipagtulungan namin, at ang pangalan ng file. Pagkatapos sa pag-andar ng pag-setup, may mga parameter upang maitakda ang laki ng iyong Run window ngunit ang mga numerong iyon ay hindi nakakaapekto sa aming pag-andar (halimbawa, itakda ang mga ito sa (500, 500)). Kapag pinasimulan mo ang port, gamitin ang pangalan ng port sa String form at isang rate ng baud na 9600. Panghuli, likhain ang siyam na mga haligi (para sa pitong mga kategorya, oras, at petsa ng GPS) upang simulan ang talahanayan.
Sa paggana ng pagguhit, ginagamit namin ang built in na petsa at mga pagpapaandar ng oras upang subaybayan kung kailan ang bawat hanay ng data ng GPS ay nakuha. Ngayon upang basahin ang stream ng data mula sa Arduino at ilagay ito sa ilalim ng naaangkop na mga header na may tamang oras at petsa, gumagamit kami ng regular na mga expression.
Gumagamit ako ng regex upang mai-parse ang eksaktong data gamit ang matchAll function na naghahanap ng anumang expression sa pagitan ng pantay na pag-sign at semicolon (ang mga delimiter na inilagay ko sa aking Arduino code). Kasunod nito ay inilalagay ang lahat ng mga katugmang tag, ang numerong data, sa isang dalawang-dimensional na array. Maaari naming tawagan ang mga indeks ng array na ito upang ilagay ang mga ito sa ilalim ng mga header ng sheet ng Excel.
Upang mai-save ang bagong file na.csv, gumagamit kami ng isang pindutin ang key upang isara ang Run window. Kung mas matagal ka maghintay upang pindutin ang isang key, mas maraming data ang iyong kokolektahin. Kasunod sa paraan ng isa pang gabay, nagpasya din akong i-save ang file sa folder ng data na may petsa at oras bilang pangalan ng file.
Hakbang 5: Pagpapakita ng Data sa Publiko ng Tableau
Ang panghuling hakbang ay nagsasangkot ng ilang visualization ng data. Maraming mga programa upang lumikha at magpakita ng mga visualization ng data ibig sabihin Plotly, ngunit para sa proyektong ito gagamitin namin ang Tableau. Buksan ang Publicau ng Tableau at buksan ang nai-save na file na Excel bilang isang file na teksto. Upang lumikha ng isang worksheet, mag-click sa Sheet 1 sa ibabang kaliwang kamay.
Dahil nagtatrabaho kami sa data ng GPS, gagamit kami ng isang mapa upang ilarawan ang aming impormasyon. Sa kaliwang haligi kung saan sinasabi nito ang Mga Panukala, i-drag namin ang Longitude sa Mga Haligi at Latitude sa Mga Row sa tuktok. Ang default ng tableau ay parehong mga hakbang sa AVG, kaya mag-click sa drop down sa tabi ng mga termino at baguhin ang pareho sa Dimensyon. Ngayon ang mapa ay dapat magkaroon ng isang landas na ipinapakita gamit ang mga halagang latitude at longitude na nakolekta.
Upang linisin ang iyong data para sa error (na maaari ring gawin bago buksan ang Tableau), maaari mong piliing ibukod ang ilang mga lupon ng lokasyon sa pamamagitan ng pag-click sa kanila at pagpili ng pagpipilian. Ang aking module ng GPS ay hindi 100% tumpak, dahil ang ilang mga bahagi ng aking landas ay hindi pa matatagpuan, ngunit naitala ang pangkalahatang landas.
Hakbang 6: Pagpino ng Viz
Ang huling bahagi ay upang gawing mas madaling mabasa ang data na ito. Kung nais mo ang konteksto ng kalye, maaari kang pumunta sa Mapa> Map Layer> Streets at Highway. Huwag mag-atubiling mag-eksperimento sa iba pang mga Markahan. Kinaladkad ko ang Bilis sa Kulay upang ipakita kung paano tumaas ang tindi ng kulay kapag tumataas ang bilis. Gumamit din ako ng Detalye sa halip na Label para sa Kurso dahil ipapakita ng Label ang mga numero sa mapa samantalang nais ko lamang ang impormasyon na mag-pop up kapag nag-hover ka sa mga tuldok ng lokasyon.
Ngayong naranasan mo ang buong proseso ng pagkolekta ng data at pagpapakita ng mayroon ka sa isang visualization ng data, maaari mo itong ilapat sa iba pang mga proyekto!
ni Pingdi Huang, Tag-araw 2018
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Pagkabigo ng Kuryente ng AC, I-back ang Baterya ng LED Path Light: 8 Hakbang
Pagkabigo ng Kuryente ng AC, Naka-back na Baterya ng LED Path ng Baterya: Sa panahon ng isang kamakailang pagkawala ng kuryente, sa pinakamadilim na kailaliman ng aking basement … isang ilaw ay talagang napaka madaling gamiting. Sa kasamaang palad ang aking flashlight ay ilang madilim na mga silid ang layo. Medyo gumala ako, nakita ko ang ilaw at papunta sa silid ng pamilya. Ang aking wi
Paano Makokontrol ang isang Device Gamit ang Raspberry Pi at isang Relay - ANG BASICS: 6 Hakbang
Paano Makontrol ang isang Device Gamit ang Raspberry Pi at isang Relay - ANG BASICS: Ito ay isang pangunahing at tuwid na pasulong na tutorial sa kung paano makontrol ang isang aparato gamit ang Raspberry Pi at isang Relay, kapaki-pakinabang para sa paggawa ng Mga Proyekto ng IoT Ang tutorial na ito ay para sa mga nagsisimula, magiliw ito sa sundin kahit na mayroon kang zero na kaalaman sa paggamit ng Raspberry
Hindi gumagana ang NODEMcu Usb Port? I-upload ang Code Gamit ang USB sa TTL (FTDI) Module sa 2 Hakbang lamang: 3 Hakbang
Hindi gumagana ang NODEMcu Usb Port? I-upload ang Code Gamit ang USB sa TTL (FTDI) Module sa Lamang 2 Mga Hakbang: Pagod na sa pagkonekta sa maraming mga wire mula sa USB hanggang TTL module sa NODEMcu, sundin ang itinuturo na ito, upang mai-upload ang code sa 2 hakbang lamang. Kung ang USB port ng Ang NODEMcu ay hindi gumagana, pagkatapos ay huwag panic. Ito lang ang USB driver chip o ang konektor ng USB,
Solar LED Tonka Truck Path Light: 8 Hakbang (na may Mga Larawan)
Solar LED Tonka Truck Path Light: Bagong buhay para sa mga lumang laruan! Buhayin muli ang iyong dating laruang trak gamit ang mga ilaw ng LED path. Hindi ko kailanman ginustong paghiwalayin ang aking minamahal na Tonka dump tuck ngunit bilang isang may sapat na gulang ay naging mahirap at mahirap na bigyang katwiran ang pagpapanatili … hanggang ngayon