Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Komponen dan Perlengkapan

Arduino UNO1
u-blox gps neo 7m1
Microchip Technology LM35DT1
SparkFun TMP006 - Infrared Temperature Breakout1
Modul Bluetooth HC-051
Sensor Ultrasonik HC-SR04 (Umum)2
SparkFun ADXL3451
Ducati Monster1
SparkFun ProtoShield Kit1
Solderless Breadboard Half Size1
Baterai 9V (umum)1
Klips Baterai 9V1
Kabel jumper (umum)1
Lumia 6501

Aplikasi dan Layanan Online

Microsoft Azure

Microsoft Visual Studio 2015

Microsoft Blend

Arduino IDE

GIMP

Fritzing

Tentang Proyek Ini

Setiap kali saya memulai proyek baru saya mencoba menciptakan sesuatu yang mengeksploitasi teknologi terbaru terkait minat saya. Untuk Proyek ini saya memutuskan untuk menggabungkan kegemaran saya untuk sepeda motor dengan hobi favorit saya (menggunakan Arduino).

Ide

Saya selalu terpesona dengan gambar telemetri yang saya lihat di TV tentang balapan motogp. Melihat gambar seperti di bawah, saya membayangkan bagaimana saya dapat membangunnya menggunakan gadget favorit saya (Arduino) dan pengetahuan pemrograman saya.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Jadi saya memutuskan untuk mengembangkan sistem telemetri berbasis Arduino dan Azure, yang mudah direplikasi sehingga semua pecinta sepeda motor dapat memilikinya di motor mereka.

Seperti yang akan ditunjukkan di bawah, sistem telemetri ini akan dapat memperoleh informasi berikut tentang gaya berkendara Anda:

Untuk melakukan itu saya menggunakan Arduino Uno R3, beberapa sensor, UWP yang diimplementasikan di Windows Phone dan beberapa layanan Azure.

Alur kerja dijelaskan dalam gambar berikut:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Saya Pikir INI CUKUP KEREN!!! Mari kita mulai menjelaskan proyek

Pengaturan Hardware

Konfigurasi hardware saya ditunjukkan di bawah.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Pengaturan hardware saya terdiri dari:

LANGKAH 1 - Konektivitas Bluetooth

Saya menggunakan library SoftwareSerial untuk menghubungkan modul bluetooth dengan Arduino dan mengaktifkan komunikasi nirkabel dengan Windows Phone.

Modul Bluetooth HC-05 dipilih untuk tujuan ini, Ini adalah modul bluetooth class-2 dengan Profil Port Serial , yang dapat dikonfigurasi sebagai Master atau slave.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Langkah berikutnya adalah mengubah Nama Default perangkat bluetooth saya, Nama default adalah HC-05 ... itu tidak "menarik"

Cara menggunakan perangkat ini:

Dalam kode Arduino Anda:

#include <SoftwareSerial.h> [...] SoftwareSerial BTSerial(10,11); // RX-TX [...] void setup() { BTSerial.begin(9600); [...] } 

Anda sekarang siap untuk mengirim setiap string yang Anda inginkan melalui Bluetooth menggunakan baris perintah berikut:

... BTSerial.print("Hello Hackster"); ... 

Komunikasi antara Windows Phone dan Arduino sekarang siap dan sangat mudah!

LANGKAH 2 - Komunikasi GPS

Hardware yang digunakan untuk tujuan ini adalah modul GPS-NEO7M , ini adalah modul GPS daya rendah yang memiliki 56 saluran dan menghasilkan pembaruan posisi yang tepat pada 10Hz.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Komunikasi antara Arduino dan Modul GPS dilakukan oleh library SoftwareSerial dan memanfaatkan library yang sangat menarik bernama TinyGPS++

Cara berkomunikasi dengan sensor ini:

Lihat kode di bawah:

#include <SoftwareSerial.h> #include <TinyGPS++.h> // Definisikan koneksi serial dengan GPS SoftwareSerial ss(12,13); // RX-TX // Definisikan Objek TinyGPS TinyGPSPlus gps; void setup() { // GPS Inisialisasi ss.begin(9600); [...] } void loop() { // Sementara GPS tersedia baca informasi while(ss.available()>0) { if(gps.encode(ss.read())) { if(gps.location.isValid()) { double lat=gps.location.lat(); double lon=gps.location.lng(); } } } [...] } 

LANGKAH 3 - Accelerometer

Untuk menentukan nilai percepatan pada 3 sumbu dan untuk menghitung sudut roll dan pitch (Sudut Miring dan Wheelie), saya menggunakan ADXL345

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

ADXL345 adalah accelerometer 3 sumbu yang kecil, tipis, daya sangat rendah, dengan resolusi tinggi (13-bit) pengukuran hingga ±16 g. Data output digital diformat sebagai 16-bit twos complement dan dapat diakses melalui antarmuka digital SPI (3- atau 4-kabel) atau I2C .

Komunikasi antara Arduino dan sensor ADXL345 dilakukan menggunakan library ADXL345.h.

Sangat penting untuk memahami bahwa saat Anda menghubungkan sensor ini Anda akan dapat menentukan percepatan gravitasi pada 3 sumbu tetapi nilai belum langsung dikalibrasi. Anda perlu membuat kode untuk menetapkan OFFSET.

Saya memutuskan untuk menentukan "titik nol" pada loop pertama. Untuk melakukannya percepatan G pada loop pertama akan menjadi nilai referensi yang harus Anda kurangi dari pengukuran berikutnya.

// first loop to if (i == 0) { refXg = Xg; refYg = Yg; refZg = Zg; i = 1; } // subtract the zero point Xg = Xg - refXg; Yg = Yg - refYg; Zg = Zg - refZg + 1; 

Lalu Anda harus menghitung Sudut Miring dan Sudut Wheelie berdasarkan komponen percepatan g.

Di bawah Anda dapat melihat 2 persamaan Matematika sederhana untuk melakukan itu:

// Roll & Pitch Equations roll = -(atan2(-fYg, fZg) * 180.0) / M_PI; pitch = (atan2(fXg, sqrt(fYg * fYg + fZg * fZg)) * 180.0) / M_PI; 

Dalam proyek ini Anda harus mempertimbangkan:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Cara berkomunikasi dengan sensor ini:

Sekarang Anda siap untuk membaca informasi percepatan, lihat kode di bawah:

#include <SoftwareSerial.h> #include <ADXL345.h> #include <Wire.h> // Definisikan koneksi serial dengan GPS SoftwareSerial ss(12,13); // RX-TX // Definisikan Objek ADXL345 ADXL345 acc; void setup() { // ADXL345 Inisialisasi acc.begin(); [...] } void loop() { // Baca komponen percepatan g double Xg,Yg,Zg; acc.read(&Xg,&Yg,&Zg); } 

LANGKAH 4 - Suhu Ban

Untuk menentukan Suhu Ban saya membutuhkan sensor yang karena alasan yang jelas tidak menyentuh ban. satu-satunya cara telah menggunakan sensor suhu Infrared. Untuk melakukan itu saya memutuskan untuk menggunakan sensor TMP006

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

TMP006 adalah sensor termopil MEMs terintegrasi sepenuhnya yang mengukur suhu objek tanpa harus dalam kontak langsung. Termopil menyerap energi infrarot pasif dari objek pada panjang gelombang antara 4 um hingga 16 um dalam bidang pandang yang ditentukan pengguna akhir.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Perubahan yang sesuai dalam voltase di seluruh termopil di-digitalkan dan dilaporkan melalui pengukuran sensor thermal die on-chip melalui I2C

Sekarang pertanyaannya adalah, di mana saya harus memosisikan sensor saya? Melihat datasheet Anda dapat menemukan informasi penting tentang jarak yang direkomendasikan antara sensor dan objek.

Anda harus mengamati aturan bahwa jarak perlu lebih kecil dari setengah radius sudut padat objek.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

dengan kata lain, lebar ban saya adalah 160mm , setengah lebar akan menjadi radius (R) sudut padat, jadi hasil akhir R akan 80mm. Jadi jarak yang direkomendasikan adalah 40mm (atau kurang) , sama dengan R/2

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Komunikasi antara Arduino dan TMP006 dilakukan menggunakan library SerialSoftware dan library Adafruit_TMP006.h

#include <SoftwareSerial.h> #include "Adafruit_TMP006.h" / Variables for TMP006 Functions ***************************************/ Adafruit_TMP006 tmp006; void setup() { } void loop() { // Baca suhu IR objek float objt = tmp006.readObjTempC(); // Baca suhu sensor (Suhu Eksternal) float diet = tmp006.readDieTempC(); } 

LANGKAH 5 - Suhu Eksternal

Nilai suhu eksternal telah ditentukan menggunakan sensor LM35 (paket DT).

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Seri LM35 adalah perangkat temperatur terpadu presisi 1 dengan output voltase yang berbanding lurus dengan suhu Centigrade.

Setiap derajat Centigrade menghasilkan peningkatan/penurunan voltase 10 mV

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Nilai sensor telah ditentukan dengan membaca input analog Arduino (AI)

int TempExtPin = A1; // pilih pin input float celsius = 0, farhenheit = 0; // variabel suhu float millivolts; int sensor; [...] sensor = analogRead(TempExtPin); //Baca nilai LM35 millivolts = ( sensor / 1023.0) * 5000; //output Voltase millivolts celsius = millivolts / 10; 

LANGKAH 6 - Posisi Ultrasonik

Tujuan menggunakan sensor ini adalah untuk menentukan ekskursi suspensi sepeda motor.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

HC-SR04 mengukur waktu yang dibutuhkan gelombang suara untuk kembali setelah bertemu rinting. Bentuk gelombang suara yang dipancarkan adalah berbentuk kerucut dan hal yang sama berlaku untuk gelombang yang dipantulkan dari rinting.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Kecepatan gelombang suara di udara pada 20°C sekitar 343,4 m/s, dalam contoh ini untuk kesederhanaan kita akan menganggap nilai mendekati 340 m/s.

Dengan mempertimbangkan hukum kinematika S=V x t (dimana S: ruang atau perpindahan objek, V:kecepatan, t:waktu) kita dapat mengumumkan bahwa dalam kasus kita jarak adalah S=0.034 x T.

Kita harus membagi waktu per 2 karena waktu yang kita konversi adalah waktu yang digunakan untuk pergi dan kembali oleh gelombang, rumus akhir di mana t adalah waktu yang dikembalikan dari sensor dalam cm/mikrodetik adalah:

S=0.034 x t/2

Di bawah Anda dapat melihat contoh yang dapat Anda coba untuk menentukan jarak objek.

digitalWrite( triggerPort, LOW ); // Kirim pulsa 10mikrodetik ke trigger digitalWrite( triggerPort, HIGH ); delayMicroseconds(10); digitalWrite(triggerPort, LOW); long duration = pulseIn( echoPort, HIGH ); long r = 0.034 * duration / 2; 

Kode di atas sangat menggambarkan cara kerja sensor tetapi Anda akan menemukan bahwa kode ini sangat lambat dan performanya buruk.

Untuk proyek ini saya memutuskan untuk mencoba library baru bernama NewPing.h untuk detail lebih lanjut silakan kunjungi tautan ini dan lihat kode Arduino lengkap dari proyek ini.

Menggunakan library NewPing.h sangat mudah.

#include <NewPing.h> /******************************************* Definisikan Variabel untuk Fungsi HC RS04 *******************************************/ // Port HC-RS04 int triggerPort = 2; int echoPort = 3; // NewPing setup pin dan jarak maksimum NewPing sonar(triggerPort, echoPort, 200); void setup() {} void loop() { /*** BACA POSISI ***/ int Pos=ReadPositionPing(); } int ReadPositionPing() { unsigned int uS = sonar.ping(); return sonar.convert_cm(uS); } 

Perangkat Lunak UWP

Perangkat lunak terdiri dari antarmuka pengguna yang terhubung ke unit kontrol melalui bluetooth. UI menampilkan semua data yang dikirim dari Arduino dan mengirim ke IoTHub nilai sensor.

Komunikasi serial antara Arduino dan UWP ditafsirkan dengan membaca dari string input.

Setiap String yang diterima divalidasi dengan memeriksa apakah berisi penanda START dan END. Jika string input diformat dengan benar, aplikasi akan memecah informasi dan menampilkannya pada Antarmuka Pengguna aplikasi.

Di bawah Anda dapat melihat contoh string yang dikirim dari Arduino yang berisi penanda START/END, string ini akan dipisah oleh karakter "pipe" untuk menentukan setiap nilai sensor:

$START|40.909409|N|9.520008|E|8|2|2016|15:46:42|0.09|0.000000|0|0|-0.21|0.00|0.00|-0.02|0.98|-|0.00|35.19|29.58|16|10|$END|

di bawah definisi Array setelah pemisahan string yang dikirim:

dari "Serial Monitor" di Arduino IDE Anda dapat melihat bagaimana cara kerja Kode Arduino:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Untuk mengelola semua data yang dikirim dari unit pusat melalui Bluetooth, saya telah mengembangkan Universal Windows Applications yang merupakan contoh yang bagus dari kekuatan UWP. Seperti yang Anda ketahui UWP adalah platform yang memungkinkan Anda menjalankan aplikasi di semua keluarga perangkat dengan Windows 10 di dalamnya.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Antarmuka pengguna sangat sederhana dan intuitif, di sisi kiri Anda dapat melihat fitur koneksi Bluetooth, di tengah 3 gauge yang digunakan untuk menampilkan kecepatan, sudut miring dan sudut Wheelie. Semua komponen G ditampilkan dan di kanan ada informasi tentang posisi GPS, suhu dan ekskursi absorber kejutan.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Cara Meluncurkan Aplikasi ke Windows 10 Mobile?

Dengan Windows 10 SDK Preview Build 10166, Microsoft memperkenalkan alat Windows 10 Application Deployment (WinAppDeployCmd.exe).

Windows 10 Application Deployment (WinAppDeployCmd) adalah utilitas baris perintah yang dapat digunakan untuk meluncurkan aplikasi Universal Windows dari PC Windows 10 ke perangkat seluler Windows 10 mana pun. Ini memungkinkan pengguna untuk meluncurkan file .AppX ke perangkat yang terhubung melalui USB atau tersedia pada subnet yang sama tanpa memerlukan akses ke solusi Visual Studio lengkap.

LANGKAH 1:

Pertama-tama pindahkan perangkat seluler Anda ke "Developer Mode" (pergi ke UPDATE & SECURITY => FOR DEVELEVOPER).

setelah itu, hubungkan perangkat Anda melalui USB dan buatnya terlihat pada koneksi USB (kode PIN akan dikembalikan)

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

LANGKAH 2:

Klik kanan pada Project=>Store=>Create App Packages

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

LANGKAH 3:

Di wizard Create App Packages, pilih NO Jika Anda ingin membuat paket lokal dan klik NEXT. Setelah itu pilih platform prosesor yang diinginkan. Untuk tujuan kami pilih platform ARM dan klik CREATE.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Pada akhir proses pembuatan wizard memberi kita URL lokal di mana paket dibuat.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

membuka url Anda akan menemukan file Appx yang tersedia untuk diluncurkan pada perangkat.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

LANGKAH 4:

Buka Command prompt dan pindahkan fokus Anda ke C:\Program Files (x86)\Windows Kits\10\bin\x86\

dan ketik baris perintah berikut

WinAppDeployCmd install -file "C:\work\uwp\Gps\MotorbikeArduino\MotorbikeArduino\AppPackages\V1.35\MotorbikeArduino_1.0.35.0_Debug_Test\MotorbikeArduino_1.0.35.0_arm_Debug.appxbundle" -ip 127.0.0.1 -pin AAA123

(di mana AAA123 adalah kode PIN yang dikembalikan dari ponsel Anda yang terhubung ke USB dalam mode Asosiasi)

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Pada akhir proses aplikasi akan terinstal di perangkat Anda dan Anda akan dapat "pin to start":

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

AZURE

Sekarang kami siap untuk menjelaskan cara mengonfigurasi layanan Azure. Untuk proyek ini akan diperlukan untuk membuat:

OK GO! Apakah Anda memiliki akun AZURE?

LANGKAH 1 - Buat dan konfigurasikan IoT Hub:

IoTHUB adalah titik akses nilai telemetri ke Cloud.

Buat IoTHub Anda, Klik pada New => Internet of Think => IoT Hub dan isi kolom Hub dan klik Create

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Selanjutnya, di dasbor Azure Anda, Anda mungkin melihat IoT HUB sedang di-deploy dan setelah beberapa detik IoT HUB Anda akan siap.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Klik pada tile baru di dasbor Anda dan pergi ke All settings blade.

Lihat Hostname IotHub Anda dan buat catatan:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Di blade Shared access policies, klik kebijakan iothubowner, dan kemudian salin dan buat catatan string koneksi di blade iothubowner

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Oke... IoT hub Anda telah dibuat dengan sukses, Anda hampir siap untuk menggunakannya!

LANGKAH 2 - Buat dan konfigurasikan Stream Analytic

Stream Analytics bertujuan untuk membaca dan menulis semua data yang dikirim ke IoTHUB dan menyimpannya ke dalam tabel database.

Buat pekerjaan Stream Analytics baru:

Klik pada New => Internet of Think => Stream Analytics job

Isi semua bidang dan klik tombol Create.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Sekarang kami siap untuk mengonfigurasi Input/Output dan kueri pekerjaan streamAnalityncs.

Siapkan Input - Pilih Sumber. Dalam kasus kami sumbernya adalah IoTHub

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Siapkan Output - Pilih tujuan. Dalam kasus kami outputnya adalah tabel dari database SQL Azure (Saya akan menunjukkan kepada Anda cara membuat sql db di langkah berikutnya)

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

LANGKAH 3 - Buat WebApp + SQL Azure

Pergi ke dasbor dan pilih WebApp+SQL (New => Networking => Web + Mobile => Web App + Sql)

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Sekarang konfigurasikan webapp Anda dengan mengisi bidang berikut:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Konfigurasikan SQL Anda, buat yang baru dan pilih nama, tingkat harga, nama server dan tambahkan kredensial login Admin:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Sekarang kembali ke LANGKAH 2, kami sekarang siap untuk membuat Kueri StreamAnalitycs. Klik pada tile StreamAnalyticJob dan pilih "Query". Masukkan kueri Anda di panel kanan.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Seperti yang Anda lihat, kueri menggambarkan alur kerja proses. Tangkap data dari "MyTelemetryInputHub" dan simpan ke "SqlAzureMyTelemetry" ... mudah&menakjubkan!!

Pada akhirnya, kami hanya perlu memulai PEKERJAAN dengan menekan tombol MULAI.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Buat DeviceId untuk HUB

Langkah ini diperlukan untuk membuat koneksi antara perangkat saya dan IoTHUB. Kita perlu membuat identitas perangkat baru dan menambahkannya ke registry ID dari IoT HUB.

Untuk informasi lebih lanjut silakan kunjungi tautan berikut

Untuk menghasilkan satu deviceId, Anda harus membuat aplikasi Konsol di Visual Studio.

Di jendela NuGet Package Manager, cari dan instal paket Microsoft.Azure.Devices.

Tambahkan kode di bawah ke dalam aplikasi Konsol Anda, ganti IoTHub String Koneksi Anda dan pilih alias deviceId (dalam kasus saya perangkat adalah MyDucatiMonsterDevice).

class Program { //Install-Package Microsoft.Azure.Devices static RegistryManager registryManager; // Connection String HUB static string connectionString = "xxxxxxxxxxxxxx"; static void Main(string[] args) { registryManager = RegistryManager.CreateFromConnectionString(connectionString); AddDeviceAsync().Wait(); Console.ReadLine(); } // creates a new device identity with ID myFirstDevice private async static Task AddDeviceAsync() { string deviceId = "myDucatiMonsterDevice"; Device device; try { device = await registryManager.AddDeviceAsync(new Device(deviceId)); } catch (DeviceAlreadyExistsException) { device = await registryManager.GetDeviceAsync(deviceId); } Console.WriteLine("Generated device key: {0}", device.Authentication.SymmetricKey.PrimaryKey); } } 

Jalankan aplikasi konsol (tekan F5) dan buat kunci perangkat Anda!

WEB application

Pada titik ini dari proyek saya memikirkan bagaimana saya dapat melihat data telemetri saya dan bagaimana saya dapat menampilkannya kepada teman-teman saya dan membagikan hasilnya di media sosial. untuk melakukan itu saya memutuskan untuk membuat situs web responsif di ASP .NET

Situs web terdiri dari dasbor yang berisi semua telemetri saya. Data telah dibaca menggunakan Entity framework dari SQL Azure.

Anda dapat menemukan situs web melalui url berikut:

Telah dibuat akun untuk semua Pengguna Hackster, Masuk menggunakan kredensial user/psw berikut:

User ID: demo Password: demo 

Situs web terlihat seperti ini:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Dan terlihat seperti ini di versi seluler:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Saat Anda membuat aplikasi web di azure menggunakan paket Gratis, nama domain akan seperti ini:

<websitename>.azurewebsites.net

Untuk mengubah nama domain Anda harus membeli satu dan di azure ini sangat mudah! Ikuti langkah-langkah ini:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Penghubungan Ducati Monster

Sekarang saatnya untuk memperkenalkan sepeda motor saya, ini adalah Ducati Monster 695 saya yang untuk proyek ini telah menjadi cavy.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Di bawah beberapa gambar tentang Hardware (unit kontrol) saya yang dipasang di papan atas.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

untuk mengukur suhu ban saya membuat bracket yang diklemkan di belakang roda.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Satu Modul jarak ultrasonik HC-SR04 telah dipasang di bawah lampu depan. Ini mengukur jarak antara lampu depan dan penutup lama depan.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Modul jarak ultrasonik yang lain telah dipasang di bawah kursi sepeda motor untuk menentukan absorber kejutan belakang dengan mengukur jarak antara kursi dan ban belakang.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Unit pusat yang berisi Arduino, GPS, Accelerometer dan sensor suhu eksternal telah dipasang di belakang kursi.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Dan pada akhirnya, setelah penghubungan, sepeda motor saya terlihat seperti ini

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Machine Learning

Ide terakhir dari proyek ini telah mencoba untuk memahami apakah ada korelasi antara data telemetri untuk mencoba memahami cara meningkatkan gaya berkendara saya.

Contoh data saya tidak dapat dihubungkan karena saya membuat rute yang berbeda setiap kali dan kondisi lalu lintas tidak pernah sama. Saya pikir kondisi yang baik adalah menggunakan sistem di balap kayu. Saya Bayangkan bahwa dalam balap nyata bisa berguna untuk memahami dari telemetri apakah Anda dapat meningkatkan kecepatan atau jika Anda harus menurunkan kecepatan berdasarkan nilai output.

Machine Learning (ML) mengembangkan kekuatan wawasan perangkat lunak tentang data, memecahkan masalah dengan memberikan informasi yang mewakili evolusi tertentu. ML memahami bagaimana fenomena yang diberikan akan berkembang berdasarkan data dalam pengetahuannya.

Pendekatan pertama menggunakan ML adalah untuk melakukan Experiments. Menggunakan data, Anda dapat bermain dan dapat melakukan analisis dengan tujuan menyelidiki fenomena yang kami minati.

Oke mari kita pergi untuk menemukan Azure Machine Learning

Pergi ke https://studio.azureml.net dan masuk menggunakan akun Azure Anda.

Di sisi kiri halaman klik pada "Studio"

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Anda akan diarahkan ke Dasbor pribadi Anda dan sekarang Anda siap untuk membuat experiments

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
select CAST(speed as float) _speed, CAST(roll as float) _roll, CAST(pitch as float) _pitch, CAST(Xg as float) _Xg, CAST(Yg as float) _Yg, CAST(Zg as float) _Zg, CAST(TempExt as float) _TempExt, CAST(TempTyre as float) _TempTyre, CAST(FrontAbsorber as float) _FrontAbsorber, CAST(BackAbsorber as float) _BackAbsorber from mytelemetry where CAST(speed as float) >3 and CAST(FrontAbsorber as float)>0 and CAST(BackAbsorber as float)>0 and CAST(roll as float)<60 and CAST(roll as float)>-60 
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Dokumentasi Resmi tentang " Evaluate Model" dapat ditemukan di sini

Di bawah ini ada contoh eksperimen yang berguna untuk membandingkan 2 algoritma menggunakan Evaluation Model, 2 algoritma adalah Two-class decision jungle dan Two-class decision forest .

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Saat Anda melewati model skor untuk algoritma klasifikasi "dua kelas", model evaluasi menghasilkan metrik yang ditunjukkan di bawah:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Model Klasifikasi

Metrik di atas dilaporkan untuk mengevaluasi model klasifikasi.

(Semua metrik dilaporkan tetapi model diberi peringkat berdasarkan metrik yang Anda pilih untuk evaluasi)

Seperti yang Anda lihat, algoritma Two-class decision forest memiliki Akurasi, Presisi, Recall dan Skor F1 yang mendekati nilai 1, jadi saya asumsi model saya dijelaskan dengan baik, HEBAT!!!

Untuk detail lebih lanjut tentang Evaluate Model silakan kunjungi LINK berikut

Eksperimen Prediktif:

Saatnya untuk memindahkan perhatian kami pada fungsionalitas prediktif machine learning.

Eksperimen Pelatihan akan dikonversi menjadi eksperimen prediktif, fitur ini memungkinkan untuk mengintegrasikan dalam aplikasi lain kesempatan untuk menggunakan model Anda dan berdasarkan model Anda memiliki Prediksi.

Untuk melakukan itu, telah dibuat Eksperimen baru, sumber data adalah SQL Azure tetapi kali ini tabel yang digunakan adalah yang baru. Saya mencoba mengklasifikasikan data berdasarkan nilai telemetri.

Sekarang data saya terlihat seperti ini dan seperti yang Anda lihat ada kolom baru bernama Skor yang mewakili klasifikasi saya:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Buat eksperimen seperti di bawah, pilih Train Model dan tambahkan algoritma Multiclass:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Seperti yang Anda lihat hasilnya sama dengan "SAFE DRIVING", ini berarti layanan Prediktif saya telah memprediksi bahwa gaya berkendara saya Aman dan tidak diperlukan tindakan.

Jika Hasilnya misalnya "HIGH STRESS HIGH SPEED" berarti saya harus mengurangi kecepatan!

Kesimpulan tentang ML:

dalam bagian ini kami memahami beberapa hal.

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor
Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Saya lebih suka miring ke kanan dan sudut miring saya tidak bergantung pada suhu ban dan dari kecepatan. Itu berarti ban saya berkualitas tinggi dan tambahan saya memahami bahwa sepeda motor saya lebih suka Wheelie ketika suhu ban lebih dari 35°C

Kesimpulan Akhir

Dalam proyek ini kami mencakup banyak area teknologis.

Kami menemukan bagaimana mungkin untuk membuat Hardware yang menyenangkan menggunakan Arduino dan beberapa sensor dengan biaya kurang dari 60$ dan menggunakan banyak layanan yang disediakan oleh microsoft.

Kami belajar betapa mudahnya menggunakan Azure dan betapa menariknya menggunakan Microsoft Azure Machine Learning Studio suite.

Telah direalisasikan prototip yang tentunya memerlukan perbaikan tetapi saya pikir ini adalah titik awal yang baik untuk pengembangan masa depan dari setiap orang yang antusias tentang C#, Azure, Arduino dan MotorBike.

Pengembangan Masa Depan yang Mungkin

Untuk meningkatkan prototip ini saya pikir akan berguna untuk menerapkan beberapa hal:

Sistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan Sensor

Alur kerja cabang baru:

... dan sekarang NIKMATI !! :-) silakan hubungi saya untuk pertanyaan dan tips apa pun.

Kode

Kode Aplikasi UWP C#
https://github.com/lentzlive/MotorbikeArduino
KODE ARDUINO - Bike Telemetry
https://github.com/lentzlive/BikeTelemetryArduino

Skematik

diagram rangkaian sistem Telemetri. On board schedaSistem Telemetri Sepeda Motor Real-Time dengan Arduino, GPS, dan SensorMotorbikeProject.fzz

Proses manufaktur

  1. Sensor Telemetry 2.0.1 – Pemantauan Suhu Canggih dengan Azure IoT Hub
  2. Sistem Penghindar Halangan Berbasis AI dengan Arduino dan Sensor Ultrasonik
  3. Tampilan LED Gyroscope Interaktif dengan NeoPixel Ring dan Arduino
  4. Pengontrol USB Game Arduino DIY – Buat Gamepad Tinggi Performa Sendiri
  5. Kostum Awan DIY: Strip LED, Arduino Nano & Bagian SparkFun
  6. Robot Pengikut Garis Industri untuk Pengiriman Bahan
  7. Pixie: Jam Tangan NeoPixel Berbasis Arduino – Jam LED DIY yang Elegan
  8. Botol Air Pintar Arduino – Pemantauan & Peringatan Real-Time
  9. Teater Bayang Liburan DIY: Pertunjukan Cahaya dengan Arduino dan Strip LED Addressable
  10. Sistem Kamera Pengawasan Jarak Jauh Portabel