İçindekiler:

EAL - Rc Car'da Industry 4.0 GPS Veri Toplama: 4 Adım
EAL - Rc Car'da Industry 4.0 GPS Veri Toplama: 4 Adım

Video: EAL - Rc Car'da Industry 4.0 GPS Veri Toplama: 4 Adım

Video: EAL - Rc Car'da Industry 4.0 GPS Veri Toplama: 4 Adım
Video: Ünal turan Azad yılmaz Karşıma çıkın dedi 2024, Kasım
Anonim
EAL - Rc Car'da Industry 4.0 GPS Veri Toplama
EAL - Rc Car'da Industry 4.0 GPS Veri Toplama
EAL - Rc Car'da Industry 4.0 GPS Veri Toplama
EAL - Rc Car'da Industry 4.0 GPS Veri Toplama

Bu Eğitilebilir Kitapta, bir RC arabaya bir GPS modülünü nasıl kurduğumuz ve kolay izleme için toplanan verileri bir web sayfasına nasıl yayınladığımız hakkında konuşacağız. Daha önce burada bulabileceğiniz RC arabamızı nasıl yaptığımıza dair bir talimat hazırladık. Bu, aynı yapıyı kullanıyor, ancak ultrason sensörlerini hurdaya çıkarmaya karar verdik ve bunun yerine GPS modülünü uyguladık. Projede, GPS verilerini içeren bir veritabanı oluşturduk ve verilerin bulunabileceği bir web sayfası oluşturduk ve bir haritaya uyguladık, böylece arabanın nerede olduğunu görebilirsiniz. Web sayfasını görüntülemek için Joerha.dk adresini ziyaret edin.

En üstteki akış şemasında, bu projede kullanılan teknolojilerin bir özetini görebilirsiniz. Bu Eğitilebilir Kitaptan en iyi şekilde yararlanmak için, kullanılan teknolojilerin tümü olmasa da bazılarına aşina olmanız gerekir. Kullanıma göre bağlanır. Github depolarımıza bağladığımız için Github'ı anlamak da yardımcı olacaktır.

Yardımcı programlar listesi:

  • Github
  • Ahududu PI/Raspbian

    piton

  • Node.js

    • Express.js
    • Sequelize.js
    • MySQL
  • HTML, CSS, JS

    Önyükleme

Adım 1: Veritabanı Kurulumu

Veritabanı Kurulumu
Veritabanı Kurulumu

Bu bölümde GPS verilerimizin çekildiği veritabanı sistemini nasıl kurduğumuz hakkında konuşacağız. Veritabanı, yukarıdaki resme göre MySQL'de oluşturulmuştur, burada iki tablomuz vardır - “Kullanıcılar” ve “GPSEntries”. Kullanıcılarda birincil anahtarımız olarak “Id” var. Benzersiz bir tanımlayıcı olarak kullanılır. "Ad", oturum açmış olan kullanıcının adıdır. "Apikey", API'ye erişmek için kullanıcıya verilen benzersiz anahtardır. “Aktif”, kullanıcının aktif olup olmadığını kontrol etmektir, kullanıcıyı devre dışı bırakabiliriz, böylece veritabanına erişemez. “CreatedAt” ve “UpdatedAt”, veritabanını oluşturmak için kullandığımız süreç tarafından yapılır.

“GPSEntries” tablosunda, GPS modülünden gelen verileri içeren tüm niteliklere sahibiz. “Zaman”, GPS modülünün mevcut zamanıdır, onu gönderme zamanını göstermek için kullanırız. Sonra koordinatlarda konumuz var, ayrıca "hız" ve "yön". Ayrıca GPS, fx koordinatlarından gelen verilerde bir hata olup olmadığını gösteren birçok hata özniteliğimiz var. Bunları veritabanına ekledik, ancak web sayfasında göstermiyoruz. "UserId", Kullanıcılar tablosundaki "id"yi içeren yabancı bir anahtardır. Bu, hangi kullanıcının verileri gönderdiğini göstermek için kullanılır.

2. Adım: API

API
API

Bu bölümde, veritabanını kontrol eden ve verileri ona yapıştıran API'den bahsedeceğiz. Web API, Express.js ve Sequalize.js kullanan Node.js ile oluşturulmuştur.

Node.js, JavaScript sunucu tarafını çalıştırmak için kullanılır, burada normalde esas olarak bir web sayfasında istemci tarafı komut dosyası oluşturmak için kullanılır.

Express.js, API'yi oluşturmak için kullandığımız çerçevedir.

Sequalize.js, Gps verileri ile veritabanı öznitelikleri arasındaki bağlantıları kurmak için kullanılır. Bunu yapmak için ORM (Object-Relational Mapping) adlı bir yöntem kullanır. Burası ayrıca "CreatedAt" ve "UpdatedAt" öğelerinin oluşturulduğu yerdir (1. adımda gösterilmiştir).

API, api.joerha.dk ziyaret edilerek kullanılabilir. Ardından, veritabanındaki tüm verileri JSON biçiminde gösterecek olan url'ye /gps ekleyin. Kaç giriş istediğinizi kontrol etmek için url'ye /2 (Kullanıcı) ve /x (giriş sayısı) ekleyebilirsiniz. Fx api.joerha.dk/gps/2/10 en son 10 girişi gösterecektir. Biçimlendirilmiş verilerin bir çıkışı yukarıdaki resimde gösterilmektedir.

Kod burada bulunabilir: Github

Adım 3: GPS/Python Uygulaması

GPS/Python Uygulaması
GPS/Python Uygulaması
GPS/Python Uygulaması
GPS/Python Uygulaması
GPS/Python Uygulaması
GPS/Python Uygulaması

Bu bölümde ahududu üzerinde çalışan ve GPS verilerini toplayıp API'ye gönderen scriptten bahsedeceğiz.

GPS'den veri toplamak için gpsd adlı bir arka plan programı kullanıyoruz (Resim 1). Burası, veritabanına gönderdiğimiz verileri ve GPSEntries tablomuzun temelini topladığımız yerdir. Verileri gpsd'den alıp API'ye gönderen komut dosyası python ile yazılmıştır.

Uygulama bir iş parçacığı başlatır, böylece hem gpsd'yi hem de programımızı aynı anda çalıştırabilir. GPS aktifken Gpsd verileri sürekli olarak aktarılır (Resim 2).

Ardından, yükünü sürekli olarak GPS verilerini içeren API'ye gönderen bir süre döngüsü yaparız. Veriler JSON olarak biçimlendirilir. Yük, GPSD'de görülen niteliklerden oluşur..fix etiketi, geçerli verilerin anlık görüntüsü gibi davranır ve bunu API'ye gönderir. Bu, request.post tarafından yapılır ve url ile API anahtarını kullanır. Print (r.status_code) çıktısı, verinin doğru bir şekilde geçip geçmediğini bilmek için kullanıcıya gönderilir. Time.sleep (0,5) verilerin ne sıklıkta yayınlandığıdır (Resim 3)

Kod burada bulunabilir: Github

Adım 4: Proje için Web Sayfası

Proje Web Sayfası
Proje Web Sayfası

Bu bölümde proje ile ilgili verileri ve diğer bilgileri gösteren web sayfamızı nasıl yaptığımızdan bahsedeceğiz. Site HTML, css ve JS ile oluşturulmuştur. Başlangıç olarak HTML, css ve JS için bir kütüphane olan Bootstrap 4.0'ı kullandık. Web sitenizi oluşturmanıza yardımcı olacak birçok işlevle birlikte gelir. Bunu, sitenin oluşturulduğu satır ve sütun kurulumunun yanı sıra üstteki gezinme çubuğu için kullandık. Ardından, arka planın ve başlıkların renklerini kontrol eden başka bir küçük css betikimiz var. Bunun yanı sıra lightbox adlı bir kitaplıktan faydalandık, böylece resimlere tıklarsanız açılırlar. Sitenin içeriği bir google haritası, bir veri tablosu, hareket halindeki bir araba videosu ve bu sayfaya bir bağlantı içerir.

Google haritası en ilginç olanıdır. Harita, çalışması için benzersiz bir API anahtarının eklendiği bir google API aracılığıyla yüklenir. Veriler haritaya 500 ms aralıklarla aktarılır. Aracın nerede olduğunu takip edebilmeniz için veritabanındaki son 100 veri noktasının işaretçi olarak gösterildiği bir fonksiyon yaptık. Bu, AJAX çağrısı denen şey aracılığıyla yapılır.

GPS veri tablosundaki veri setleri de aynı şekilde istenir. Tabloda, GPS aktifken gerçek zamanlı olarak güncellenen son 10 girişi görebilirsiniz. Veritabanından 500 ms aralıklarla veri alıyoruz.

Kod burada bulunabilir: Github

Önerilen: