Isi kandungan:

EAL - Industri 4.0 Pengumpulan Data GPS pada Kereta Rc: 4 Langkah
EAL - Industri 4.0 Pengumpulan Data GPS pada Kereta Rc: 4 Langkah

Video: EAL - Industri 4.0 Pengumpulan Data GPS pada Kereta Rc: 4 Langkah

Video: EAL - Industri 4.0 Pengumpulan Data GPS pada Kereta Rc: 4 Langkah
Video: SAMPING REL KERETA API!! ๐Ÿ™ƒ๐Ÿ™ƒ 2024, Jun
Anonim
EAL - Pengumpulan Data GPS Industri 4.0 pada Rc Car
EAL - Pengumpulan Data GPS Industri 4.0 pada Rc Car
EAL - Pengumpulan Data GPS Industri 4.0 pada Rc Car
EAL - Pengumpulan Data GPS Industri 4.0 pada Rc Car

Dalam Instructable ini kita akan membincangkan bagaimana kita menyiapkan modul GPS pada sebuah kereta RC dan menyiarkan data yang dikumpulkan ke laman web untuk memudahkan pemantauan. Kami telah membuat petunjuk tentang bagaimana kami membuat kereta RC kami, yang boleh didapati di sini. Ini menggunakan binaan yang sama, walaupun kami telah memutuskan untuk membuang sensor ultrasound dan menggunakan modul GPS sebagai gantinya. Dalam proyek ini, kami telah menyiapkan pangkalan data yang berisi data GPS, dan membangun halaman web tempat data tersebut dapat ditemukan, serta diterapkan pada peta, sehingga Anda dapat melihat di mana mobil tersebut berada. Lawati Joerha.dk untuk melihat laman web.

Pada carta alir di bahagian atas, anda dapat melihat gambaran keseluruhan teknologi yang telah digunakan dalam projek ini. Untuk mendapatkan yang terbaik dari Instructable ini, anda harus memahami beberapa, jika tidak semua teknologi yang digunakan. Ia dihubungkan mengikut penggunaan. Memahami Github juga akan membantu, kerana kami telah menghubungkan ke repositori github kami.

Senarai utiliti:

  • Github
  • Raspberry PI / Raspbian

    Python

  • Node.js

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

    Tali kasut

Langkah 1: Penyediaan Pangkalan Data

Penyediaan Pangkalan Data
Penyediaan Pangkalan Data

Dalam segmen ini, kita akan membincangkan bagaimana kita membina sistem pangkalan data dari mana data GPS kita diambil. Pangkalan data dibina di MySQL sesuai dengan gambar di atas, di mana kami memiliki dua tabel - "Pengguna" dan "GPSEntries". Pada pengguna kami mempunyai "Id" sebagai kunci utama kami. Ia digunakan sebagai pengecam unik. "Nama" adalah nama pengguna yang sedang masuk. "Apikey" adalah kunci unik yang diberikan kepada pengguna untuk mengakses API. "Aktif" adalah untuk memeriksa apakah pengguna aktif, kita dapat menonaktifkan pengguna, sehingga dia tidak dapat mengakses pangkalan data. "CreatedAt" dan "DiperbaruiAt" dibuat oleh proses yang kami gunakan untuk membangun pangkalan data.

Dalam jadual "GPSEntries" kita memiliki semua atribut yang mengandungi data dari modul GPS. "Waktu" adalah waktu terkini modul GPS, kami menggunakannya untuk menunjukkan waktu pengeposan. Kemudian kita memiliki posisi dalam koordinat, juga "kecepatan" dan "menuju". Kami juga mempunyai banyak atribut ralat, yang menunjukkan jika terdapat ralat dalam data dari GPS, fx dalam koordinat. Kami telah menambahkannya ke pangkalan data, tetapi kami tidak menunjukkannya di laman web. "UserId" adalah kunci asing yang berisi "id" dari tabel Pengguna. Itu digunakan untuk menunjukkan pengguna mana yang menyiarkan data.

Langkah 2: API

API
API

Di segmen ini kita akan membincangkan tentang API yang mengawal pangkalan data dan menempelkan data ke dalamnya. API web dibina dengan Node.js, yang menggunakan Express.js dan Sequalize.js.

Node.js digunakan untuk menjalankan pelayan JavaScript, di mana biasanya digunakan terutamanya untuk skrip sisi pelanggan di laman web.

Express.js adalah kerangka yang kami gunakan untuk membuat API.

Sequalize.js digunakan untuk membuat hubungan antara data Gps, dan atribut pangkalan data. Ia menggunakan kaedah yang dipanggil ORM (Object-Relational Mapping) untuk melakukan ini. Di sinilah "CreatedAt" dan "DiperbaruiAt" dibuat (Ditunjukkan pada langkah 1).

API boleh digunakan dengan mengunjungi api.joerha.dk. Kemudian tambahkan / gps ke url, yang akan menunjukkan semua data dalam pangkalan data dalam format JSON. Untuk mengawal berapa banyak entri yang anda mahukan, anda boleh menambah / 2 (Pengguna) dan / x (bilangan entri) ke url. Fx api.joerha.dk/gps/2/10 akan menunjukkan 10 entri terbaru. Pengambilan data berformat ditunjukkan pada gambar di atas.

Kod boleh didapati di sini: Github

Langkah 3: Aplikasi GPS / Python

Aplikasi GPS / Python
Aplikasi GPS / Python
Aplikasi GPS / Python
Aplikasi GPS / Python
Aplikasi GPS / Python
Aplikasi GPS / Python

Dalam segmen ini kita akan membincangkan skrip yang berjalan di raspberry dan mengumpulkan data GPS, dan mengirimkannya ke API.

Untuk mengumpulkan data dari GPS, kami menggunakan daemon yang disebut gpsd (Gambar 1). Di sinilah kami mengumpulkan data yang kami hantar ke pangkalan data, dan asas untuk jadual GPSEntries kami. Skrip yang menarik data dari gpsd dan memasukkannya ke API, ditulis dalam python.

Aplikasi menginisialisasi utas, sehingga dapat menjalankan gpsd dan program kami pada masa yang sama. Data Gpsd dialirkan secara berterusan semasa GPS aktif (Gambar 2).

Kemudian kami membuat gelung sementara yang terus menghantar muatannya ke API yang mengandungi data GPS. Data diformat sebagai JSON. Muatan terdiri daripada atribut yang dilihat dalam GPSD. Tag.fix bertindak seperti snapshot data semasa, dan menghantarnya ke API. Ini dilakukan dengan request.post, dan menggunakan url dan kunci API. Print (r.status_code) adalah output kepada pengguna, untuk mengetahui sama ada data tersebar dengan betul. Time.sleep (0.5) adalah seberapa kerap data disiarkan (Gambar 3)

Kod boleh didapati di sini: Github

Langkah 4: Halaman Web Projek

Laman web untuk Projek
Laman web untuk Projek

Dalam segmen ini kita akan membincangkan bagaimana kita membuat laman web yang menunjukkan data, dan maklumat lain mengenai projek tersebut. Laman web ini dibina dengan HTML, css dan JS. Sebagai permulaan, kami menggunakan Bootstrap 4.0, yang merupakan perpustakaan untuk HTML, css dan JS. Ia dilengkapi dengan banyak fungsi yang membantu anda membina laman web anda. Kami telah menggunakannya untuk navbar di bahagian atas, serta penyediaan baris dan lajur yang dibina oleh laman web ini. Kemudian kita mempunyai skrip css kecil yang mengawal warna latar belakang dan tajuk. Setelah itu, kami telah menggunakan perpustakaan yang disebut lightbox, sehingga anda dapat mengklik gambar dan mereka muncul. Kandungan laman web ini mengandungi peta google, daftar data, video kereta beraksi dan pautan ke halaman ini.

Peta google adalah yang paling menarik. Peta dimuat melalui API Google, di mana kunci API unik dimasukkan untuk berfungsi. Data dialirkan ke peta dalam selang 500ms. Kami telah membuat fungsi di mana 100 titik data terakhir dalam pangkalan data ditunjukkan sebagai penanda, jadi anda dapat mengikuti di mana kereta itu berada. Ini dilakukan melalui panggilan AJAX.

Kumpulan data dalam jadual data GPS diminta dengan cara yang sama. Dalam jadual anda dapat melihat 10 entri terakhir, yang dikemas kini dalam masa nyata semasa GPS aktif. Kami mengambil data dari pangkalan data dalam selang waktu 500 ms.

Kod boleh didapati di sini: Github

Disyorkan: