Daftar Isi:

Path Mapper: 6 Langkah
Path Mapper: 6 Langkah

Video: Path Mapper: 6 Langkah

Video: Path Mapper: 6 Langkah
Video: Grasshopper Path Mapper is a BADASS 2024, November
Anonim
Pemeta Jalan
Pemeta Jalan
Pemeta Jalan
Pemeta Jalan
Pemeta Jalan
Pemeta Jalan

Dalam proyek IoT ini, kami memasang NEO-6M (modul GPS) untuk mengirimkan data lokasi melalui Arduino ke lembar Excel yang akan disimpan di komputer. Setelah itu dengan Tableau Public, kami membuat visualisasi data dari data ini untuk memetakan jalur yang kami ambil. Meskipun ini adalah salah satu cara mengumpulkan dan menyajikan data waktu nyata dalam data yang sangat berkorelasi, proses ini juga dapat diterapkan pada proyek berbasis data lainnya.

Langkah 1: Memperoleh Bahan

Memperoleh Bahan
Memperoleh Bahan

Untuk proyek ini, Anda memerlukan yang berikut:

  • Modul GPS NEO-6M
  • Arduino Uno
  • Kabel jumper pria / pria (Anda membutuhkan 4 kabel)
  • Kabel USB 2.0 Tipe A ke B
  • Komputer dengan program ini: Tableau Public, Arduino IDE (dengan TinyGPS++), dan Processing

Langkah 2: Menyiapkan Perangkat

Menyiapkan Perangkat
Menyiapkan Perangkat
Menyiapkan Perangkat
Menyiapkan Perangkat

Pertama-tama kita perlu mengatur modul GPS dengan Arduino UNO agar Arduino memberi kita antarmuka untuk menampilkan data. Masing-masing dari empat kabel yang terhubung ke NEO-6M sesuai dengan port tertentu. Jika NEO-6M Anda tidak dilengkapi dengan kabel, Anda harus menghubungkannya langsung dengan kabel jumper. Dalam diagram di atas, merah sesuai dengan daya (VCC), hitam ke tanah (GND), kuning untuk mengirimkan data (TxD), dan putih untuk menerima data (RxD). Kami menghubungkan kabel ini ke kabel jumper pria / pria sehingga kami dapat menghubungkannya ke Arduino. Mengikuti diagram di atas, kami menghubungkan kabel ground ke pin digital GND di Arduino, kabel TxD ke 4, kabel RxD ke ~3, dan kabel VCC ke 5V untuk tegangan. Pada langkah selanjutnya, kita perlu mendefinisikan TxD dan RxD dengan angka yang benar di SoftwareSerial.

Setelah kedua perangkat terhubung satu sama lain, kita perlu menyediakan sumber daya. Hubungkan kabel USB 2.0 ke laptop Anda dan lampu pada NEO-6M akan menyala.

Langkah 3: Coding Arduino untuk Mengekstrak Data

Mengkode Arduino untuk Mengekstrak Data
Mengkode Arduino untuk Mengekstrak Data

Sekarang kita memiliki perangkat yang disiapkan untuk mengumpulkan data GPS dari satelit, kita akan menulis kode untuk mengurai data GPS yang kita inginkan. Dengan asumsi Anda telah menerima sinyal (modul GPS saya akan berkedip biru), NEO-6M secara default mencetak data mentah pada monitor serial dalam bentuk pesan NMEA, yang terlihat seperti $GP diikuti oleh lebih banyak huruf dan seri dari angka. Gambar di atas memberikan gambaran umum tentang apa yang harus ditampilkan pada monitor serial Anda setelah kode Arduino dasar dimasukkan.

Untuk menjelaskan kode yang saya lampirkan (atau jika Anda ingin mencoba membuat kode sendiri), Anda harus terlebih dahulu menyertakan pustaka SoftwareSerial dan TinyGPS++ (untuk yang terakhir, Sketch > Include > Add. ZIP library). SoftwareSerial memungkinkan kita untuk memiliki koneksi serial; TinyGPS++ memberi kita alat yang mudah untuk mencetak informasi yang ditargetkan dalam bentuk yang dapat dibaca. Pastikan Anda menginisialisasi objek SoftwareSerial ke pin yang sesuai di Arduino. Dalam fungsi setup, kami menggunakan 9600 sebagai baud rate.

Untuk tujuan instruksi ini, kami hanya akan mencetak tujuh jenis data dalam fungsi loop: lintang (derajat), bujur (derajat), kecepatan (km), jalur (derajat), ketinggian (km), jumlah satelit di gunakan, dan hdop. Anda dapat mencari sintaks untuk mencetak informasi ini di perpustakaan Arduiniana. Bentuk umumnya adalah Serial.print(). Misalnya untuk mencetak garis bujur, kita ketik Serial.print(gps.location.lng(), 6). Angka 6 mewakili berapa banyak digit yang kita inginkan di sebelah kanan titik desimal.

Kode saya memiliki karakter tambahan yang dicetak demi regex yang mudah diformat di langkah berikutnya. Namun, jika Anda ingin berhenti pada langkah ini, jangan ragu untuk memformat data secara berbeda untuk kemudahan tampilan pada monitor serial.

Langkah 4: Memanfaatkan Pemrosesan untuk Mendengarkan

Memanfaatkan Pemrosesan untuk Mendengarkan
Memanfaatkan Pemrosesan untuk Mendengarkan

Meskipun kami memiliki kode untuk pengaturan Arduino IDE, kami memiliki masalah dalam menyimpan data ini. Untuk saat ini, kami hanya dapat melihat data di monitor serial saat kami mengumpulkannya. Ada banyak cara untuk mencatat data ini tetapi saya memilih Processing terutama karena antarmukanya meniru Arduino IDE dan menggunakan Java, bahasa yang saya kenal (perhatikan bahwa Anda juga dapat mengontrol papan Arduino dengan Processing jika Anda mengunduh Firmata). Pemrosesan mendengarkan pada port yang terhubung ke Arduino dan memiliki kemampuan untuk memanipulasi data yang dibaca ke monitor serial. Untuk menemukan nama port ini, lihat kembali file Arduino IDE Anda dan periksa di Tools > Port.

Saya telah memberikan kode Pemrosesan, tetapi di sini adalah ikhtisar singkat tentang cara kerja kode.

Sebelum fungsi setup, pastikan Anda memiliki variabel untuk port, tabel yang dihasilkan, baris yang akan kita kerjakan, dan nama file. Kemudian di fungsi setup, ada parameter untuk mengatur ukuran jendela Run Anda tetapi angka-angka itu tidak mempengaruhi fungsionalitas kami (misalnya, atur ke (500, 500)). Saat Anda menginisialisasi port, gunakan nama port dalam bentuk String dan baud rate 9600. Terakhir, buat sembilan kolom (untuk tujuh kategori GPS, waktu, dan tanggal) untuk menginisialisasi tabel.

Dalam fungsi undian, kami menggunakan fungsi tanggal dan waktu bawaan untuk melacak kapan setiap kumpulan data GPS diekstraksi. Sekarang untuk membaca aliran data dari Arduino dan meletakkannya di bawah header yang sesuai dengan waktu dan tanggal yang benar, kami menggunakan ekspresi reguler.

Saya menggunakan regex untuk mengurai data yang tepat dengan fungsi matchAll yang mencari ekspresi apa pun antara tanda sama dengan dan titik koma (pembatas yang saya masukkan ke kode Arduino saya). Ini kemudian menempatkan semua tag yang cocok, data numerik, dalam array dua dimensi. Kami kemudian dapat memanggil indeks array ini untuk meletakkannya di bawah header lembar Excel.

Untuk menyimpan file.csv baru, kami menggunakan tombol tekan untuk menutup jendela Run. Semakin lama Anda menunggu untuk menekan tombol, semakin banyak data yang akan Anda kumpulkan. Mengikuti cara panduan lain, saya juga memutuskan untuk menyimpan file ke folder data dengan tanggal dan waktu sebagai nama file.

Langkah 5: Menampilkan Data di Tableau Public

Menampilkan Data di Tableau Public
Menampilkan Data di Tableau Public
Menampilkan Data di Tableau Public
Menampilkan Data di Tableau Public
Menampilkan Data di Tableau Public
Menampilkan Data di Tableau Public

Langkah terakhir melibatkan beberapa visualisasi data. Ada banyak program untuk membuat dan menampilkan visualisasi data yaitu Plotly, tetapi untuk proyek ini kita akan menggunakan Tableau. Buka Tableau Public dan buka file Excel yang disimpan sebagai file teks. Untuk membuat lembar kerja, klik Lembar 1 di sisi kiri bawah.

Karena kami bekerja dengan data GPS, kami akan menggunakan peta untuk menggambarkan informasi kami. Di kolom kiri yang bertuliskan Measures, kita akan menyeret Bujur ke Kolom dan Garis Lintang ke Baris di bagian atas. Tableau menetapkan kedua ukuran secara default ke AVG, jadi klik tarik-turun di sebelah persyaratan dan ubah keduanya ke Dimensi. Sekarang peta harus memiliki jalur yang ditampilkan menggunakan nilai lintang dan bujur yang dikumpulkan.

Untuk membersihkan data Anda dari kesalahan (yang juga dapat dilakukan sebelum membuka Tableau), Anda dapat memilih untuk mengecualikan beberapa lingkaran lokasi dengan mengekliknya dan memilih opsi. Modul GPS saya tidak 100% akurat, karena beberapa bagian dari jalur saya belum ditemukan, tetapi jalur umum telah direkam.

Langkah 6: Memperbaiki Viz

Menyempurnakan Viz
Menyempurnakan Viz

Bagian terakhir adalah membuat data ini lebih mudah dibaca. Jika Anda ingin konteks jalanan, Anda bisa pergi ke Map > Map Layer > Streets and Highways. Jangan ragu untuk bereksperimen dengan Merek lain. Saya menyeret Speed over Color untuk menunjukkan bagaimana intensitas warna meningkat saat kecepatan meningkat. Saya juga menggunakan Detail daripada Label untuk Kursus karena Label akan menampilkan angka pada peta sedangkan saya hanya ingin informasi muncul saat Anda mengarahkan kursor ke titik lokasi.

Sekarang setelah Anda mengalami seluruh proses pengumpulan data dan menampilkan apa yang Anda miliki pada visualisasi data, Anda dapat menerapkannya ke proyek lain!

oleh Pingdi Huang, Musim Panas 2018

Direkomendasikan: