İçindekiler:

Yol Eşleştiricisi: 6 Adım
Yol Eşleştiricisi: 6 Adım

Video: Yol Eşleştiricisi: 6 Adım

Video: Yol Eşleştiricisi: 6 Adım
Video: Presa Canario Hakkında Her Şey! - Dünyada benzeri olmayan, en ayrıntılı ırk tanıtım videosu. 2024, Kasım
Anonim
Yol Eşleştiricisi
Yol Eşleştiricisi
Yol Eşleştiricisi
Yol Eşleştiricisi
Yol Eşleştiricisi
Yol Eşleştiricisi

Bu IoT projesinde, Arduino üzerinden konumsal verileri bilgisayara kaydedilecek bir Excel sayfasına iletmek için bir NEO-6M (GPS modülü) bağladık. Daha sonra Tableau Public ile izlediğimiz yolu haritalamak için bu verilerin bir veri görselleştirmesini oluşturuyoruz. Bu, gerçek zamanlı verileri yüksek düzeyde ilişkili bir veride toplamanın ve sunmanın bir yolu olsa da, bu süreç diğer veri odaklı projelere de uygulanabilir.

Adım 1: Materyallerin Edinilmesi

Malzemelerin Edinilmesi
Malzemelerin Edinilmesi

Bu proje için aşağıdakilere ihtiyacınız olacak:

  • NEO-6M GPS Modülü
  • Arduino Uno
  • Erkek/erkek jumper kabloları (4 kabloya ihtiyacınız olacak)
  • USB 2.0 Kablo Tipi A'dan B'ye
  • Şu programlara sahip bilgisayar: Tableau Public, Arduino IDE (TinyGPS++ ile) ve Processing

2. Adım: Cihazları Ayarlama

Cihazları Ayarlama
Cihazları Ayarlama
Cihazları Ayarlama
Cihazları Ayarlama

Arduino'nun bize verileri gösterecek bir arayüz vermesi için önce Arduino UNO ile GPS modülünü kurmamız gerekiyor. NEO-6M'ye bağlı dört kablonun her biri belirli bağlantı noktalarına karşılık gelir. NEO-6M'niz kablolarla birlikte gelmiyorsa, onu doğrudan atlama kablolarıyla bağlamanız gerekir. Yukarıdaki şemada kırmızı, güce (VCC), siyah toprağa (GND), sarı veri aktarımına (TxD) ve beyaz veri almaya (RxD) karşılık gelir. Bu kabloları Arduino'ya bağlayabilmemiz için erkek/erkek jumper kablolarına bağlıyoruz. Yukarıdaki şemayı takip ederek, topraklama kablosunu Arduino üzerindeki GND dijital pimine, TxD kablosunu 4'e, RxD kablosunu ~3'e ve VCC kablosunu voltaj için 5V'a bağlarız. Gelecekteki bir adımda, SoftwareSerial'da TxD ve RxD'yi doğru sayılarla tanımlamamız gerekecek.

İki cihaz birbirine bağlandığında, bir güç kaynağı sağlamamız gerekiyor. USB 2.0 kablosunu dizüstü bilgisayarınıza bağlayın ve NEO-6M üzerindeki ışık yanacaktır.

Adım 3: Verileri Çıkarmak için Arduino'yu Kodlamak

Arduino'yu Veri Çıkarmak İçin Kodlamak
Arduino'yu Veri Çıkarmak İçin Kodlamak

Artık uydulardan GPS verisi toplamak için ayarladığımız cihazlara sahip olduğumuza göre, istediğimiz GPS verisini ayrıştırmak için kod yazacağız. Bir sinyal aldığınızı varsayarsak (GPS modülüm mavi renkte yanıp söner), NEO-6M varsayılan olarak seri monitörde ham verileri NMEA mesajları biçiminde yazdırır; bu, $GP gibi görünen ve ardından daha fazla harf ve bir dizi izler. sayıların. Yukarıdaki resim, temel Arduino kodu girildiğinde seri monitörünüzde nelerin gösterilmesi gerektiğine dair genel bir fikir vermektedir.

Eklediğim kodu açıklamak için (veya kendiniz kodlamayı denemek isterseniz), önce hem SoftwareSerial hem de TinyGPS++ kitaplıklarını eklemeniz gerekir (ikincisi için Sketch > Include > Add. ZIP library). SoftwareSerial, seri bağlantıya sahip olmamızı sağlar; TinyGPS++, hedeflenen bilgileri okunabilir bir biçimde yazdırmak için bize kolay bir araç sağlar. SoftwareSerial nesnesini Arduino'daki ilgili pinlere başlattığınızdan emin olun. Kurulum fonksiyonunda baud hızı olarak 9600 kullanıyoruz.

Bu talimat için, döngü işlevinde yalnızca yedi tür veri yazdıracağız: enlem (derece), boylam (derece), hız (km), rota (derece), yükseklik (km), uydu sayısı kullanın ve hdop. Bu bilgiyi yazdırmak için sözdizimini Arduiniana kitaplığında arayabilirsiniz. Genel form Serial.print() şeklindedir. Örneğin boylam yazdırmak için Serial.print(gps.location.lng(), 6) yazardık. 6, ondalık noktanın sağında kaç basamak istediğimizi gösterir.

Kodumda, bir sonraki adımda kolayca biçimlendirilmiş bir normal ifade uğruna basılmış fazladan karakterler var. Ancak bu adımda durmak isterseniz, seri monitörde görüntüleme kolaylığı için verileri farklı şekilde biçimlendirmekten çekinmeyin.

4. Adım: Dinlemek için İşlemeyi Kullanma

Dinlemek için İşlemeyi Kullanma
Dinlemek için İşlemeyi Kullanma

Arduino IDE kurulumu için kodumuz olmasına rağmen, bu verileri kaydetme sorunumuz var. Şu an itibariyle, seri monitördeki verileri yalnızca toplarken görüntüleyebiliyoruz. Bu verileri kaydetmenin birçok yolu var ama ben İşleme'yi seçtim çünkü arayüzü Arduino IDE'yi taklit ediyor ve aşina olduğum bir dil olan Java'yı kullanıyor (Firmata'yı indirirseniz Arduino kartını İşleme ile de kontrol edebileceğinizi unutmayın). İşleme, Arduino'ya bağlı bağlantı noktasında dinler ve seri monitörde okunan verileri değiştirme yeteneğine sahiptir. Bu bağlantı noktasının adını bulmak için Arduino IDE dosyanıza geri dönün ve Araçlar > Bağlantı Noktasını kontrol edin.

İşleme kodunu sağladım, ancak işte kodun nasıl çalıştığına dair hızlı bir genel bakış.

Kurulum fonksiyonundan önce port, sonuç tablosu, üzerinde çalışacağımız satır ve dosya ismi için değişkenlere sahip olduğunuzdan emin olun. Ardından kurulum işlevinde, Çalıştır pencerenizin boyutunu ayarlamak için parametreler vardır, ancak bu sayılar işlevselliğimizi etkilemez (örneğin, bunları (500, 500) olarak ayarlayın). Bağlantı noktasını başlatırken, bağlantı noktasının adını Dize biçiminde ve 9600 baud hızında kullanın. Son olarak, tabloyu başlatmak için dokuz sütun (yedi GPS kategorisi, saat ve tarih için) oluşturun.

Çizim işlevinde, her bir GPS verisi kümesinin ne zaman çıkarıldığını takip etmek için yerleşik tarih ve saat işlevlerini kullanırız. Şimdi Arduino'dan gelen veri akışını okumak ve doğru saat ve tarih ile uygun başlıkların altına koymak için düzenli ifadeler kullanıyoruz.

Eşit işareti ve noktalı virgül (Arduino koduma koyduğum sınırlayıcılar) arasındaki herhangi bir ifadeyi arayan matchAll işleviyle tam verileri ayrıştırmak için regex kullanıyorum. Bu daha sonra tüm eşleşen etiketleri, sayısal verileri iki boyutlu bir diziye yerleştirir. Daha sonra bu dizi indekslerini Excel sayfasının başlıkları altına koymaları için çağırabiliriz.

Yeni.csv dosyasını kaydetmek için Çalıştır penceresini kapatmak için bir tuşa basarız. Bir tuşa basmak için ne kadar uzun süre beklerseniz, o kadar fazla veri toplarsınız. Başka bir rehberin yolunu izleyerek, dosyayı dosya adı olarak tarih ve saat ile data klasörüne kaydetmeye karar verdim.

Adım 5: Tableau Public'te Verilerin Görüntülenmesi

Tableau Public'te Veri Görüntüleme
Tableau Public'te Veri Görüntüleme
Tableau Public'te Veri Görüntüleme
Tableau Public'te Veri Görüntüleme
Tableau Public'te Veri Görüntüleme
Tableau Public'te Veri Görüntüleme

Son adım, bazı veri görselleştirmelerini içerir. Plotly gibi veri görselleştirmeleri oluşturmak ve görüntülemek için birçok program var, ancak bu proje için Tableau'yu kullanacağız. Tableau Public'i açın ve kaydedilmiş Excel dosyasını bir metin dosyası olarak açın. Bir çalışma sayfası oluşturmak için sol alttaki Sayfa 1'e tıklayın.

GPS verileriyle çalıştığımız için bilgilerimizi göstermek için bir harita kullanacağız. Measures yazan sol sütunda, Boylamı Sütunlara ve Enlemi Satırlara sürükleyeceğiz. Tableau her iki ölçümü de varsayılan olarak AVG'ye ayarlar, bu nedenle terimlerin yanındaki açılır menüyü tıklayın ve her ikisini de Boyut olarak değiştirin. Artık harita, toplanan enlem ve boylam değerleri kullanılarak görüntülenen bir yola sahip olmalıdır.

Verilerinizi hataya karşı temizlemek için (Tableau'yu açmadan önce de yapılabilir), bazı konum çevrelerini üzerlerine tıklayıp seçeneği seçerek hariç tutmayı seçebilirsiniz. GPS modülüm %100 doğru değil, çünkü yolumun bazı kısımları bulunamadı, ancak genel yol kaydedildi.

Adım 6: Viz'i İyileştirme

Viz'i Arındırmak
Viz'i Arındırmak

Son kısım, bu verileri daha okunaklı hale getirmektir. Sokak bağlamını istiyorsanız, Harita > Harita Katmanı > Sokaklar ve Otoyollar'a gidebilirsiniz. Diğer İşaretlerle deneme yapmaktan çekinmeyin. Hız arttığında rengin yoğunluğunun nasıl arttığını göstermek için Speed over Color'ı sürükledim. Ayrıca Kurs için Etiket yerine Ayrıntı kullandım, çünkü Etiket haritadaki sayıları görüntülerken, yalnızca konum noktalarının üzerine geldiğinizde bilgilerin görünmesini istedim.

Artık tüm veri toplama ve sahip olduklarınızı bir veri görselleştirmesinde gösterme sürecini deneyimlediğiniz için, bunu diğer projelere uygulayabilirsiniz!

Yazan Pingdi Huang, Yaz 2018

Önerilen: