Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Onderdelen en benodigdheden

Onderdeel Aantal Opmerking
Arduino UNO 1
u‑blox GPS NEO‑7M 1
Microchip LM35DT Temperatuursensor 1
SparkFun TMP006 Infrarood Temperatuur Breakout 1
HC‑05 Bluetooth Module 1
Ultrasoon Afstandssensor HC‑SR04 2 Voor voor/achter vering
SparkFun ADXL345 Versnellingsmeter 1
Ducati Monster (test motorfiets) 1
SparkFun ProtoShield Kit 1
Solderless Breadboard Half Size 1
9V Batterij 1
9V Batterij Clip 1
Jumper wires (generiek) 1 set
Lumia 650 (Windows Phone voor UWP app) 1

Apps en online services

  • Microsoft Azure (IoT Hub, Stream Analytics, SQL Database, Web App, Machine Learning)
  • Microsoft Visual Studio 2015
  • Microsoft Blend
  • Arduino IDE
  • GIMP (afbeeldingen)
  • Fritzing (schema's)

Over dit project

Ik combineer mijn passie voor motorfietsen met Arduino. Geïnspireerd door MotoGP telemetrie op TV, bouw ik een eigen telemetriesysteem op basis van Arduino en Azure, herhaalbaar voor elke motorfietsliefhebber.

Het Idee

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Het systeem meet realtime:

  • Snelheid [km/h]
  • GPS Positie (Breedte/Lengtegraad)
  • Satellietinfo (aantal, HDOP)
  • Hoogte [m]
  • Kantelhoek (Lean Angle)
  • Wielie‑hoek (Wheelie Angle)
  • G‑versnelling 3 assen [m/s²]
  • Omgevingstemperatuur [°C]
  • Achterbandtemperatuur [°C]
  • Voorste veringuitrek [cm]
  • Achterste veringuitrek [cm]

Hardware: Arduino Uno R3, sensoren, UWP app op Windows Phone, Azure services.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Fase 1 – Data acquisitie (≈2 Hz) door controle‑unit op motorfiets.
Fase 2 – Bluetooth verzending naar Windows Phone.
Fase 3 – Weergave op telefoon + verzending via 3G/4G naar Azure IoT Hub.
Fase 4 – Stream Analytics Job slaat data op in SQL Azure.
Fase 5 – Web App toont telemetrie realtime (Entity Framework).
Fase 6 – Web App met authenticatie, grafieken.
Fase 7 – Machine Learning op SQL data voor “rijstijl” analyse.

Hardware Opbouw

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
  • Arduino Uno R3
  • 2x HC‑SR04 (voor/achter vering)
  • TMP006 (bandtemperatuur, contactloos)
  • GPS NEO‑7M (positie, snelheid, hoogte)
  • ADXL345 (3‑as versnelling, kantel/wielie hoek)
  • LM35DT (omgevingstemperatuur)
  • HC‑05 Bluetooth (Arduino ↔ Windows Phone)
  • Voeding (batterij/powerbank)

Stap 1 – Bluetooth Connectiviteit

SoftwareSerial library voor HC‑05. Class‑2 module, Serial Port Profile, Master/Slave configureerbaar.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Standaard naam “HC‑05” aangepast. Code fragment:

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX, TX
void setup() {
  BTSerial.begin(9600);
}
void loop() {
  BTSerial.print("Hello Hackster");
}

Stap 2 – GPS Communicatie

GPS NEO‑7M: 56 kanalen, 10Hz updates. Communicatie via SoftwareSerial + TinyGPS++ library.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
SoftwareSerial ss(12, 13); // RX, TX
TinyGPSPlus gps;
void setup() { ss.begin(9600); }
void loop() {
  while (ss.available() > 0) {
    if (gps.encode(ss.read())) {
      if (gps.location.isValid()) {
        double lat = gps.location.lat();
        double lon = gps.location.lng();
      }
    }
  }
}

Stap 3 – Versnellingsmeter (ADXL345)

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

ADXL345: 3‑as, 13‑bit, ±16g, SPI/I2C. Library ADXL345.h. Kalibratie essentieel: eerste meting als nulreferentie (offset).

if (i == 0) { refXg = Xg; refYg = Yg; refZg = Zg; i = 1; }
Xg -= refXg; Yg -= refYg; Zg = Zg - refZg + 1;

Kantelhoek (Roll) & Wieliehoek (Pitch):

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

Assen: Z = zwaartekracht, Y = rijrichting, X = lateraal.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Stap 4 – Bandtemperatuur (TMP006)

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

TMP006 meet infrarood (4–16 µm) contactloos. Afstand sensor–object: max halve straal van het object. Bandbreedte 160mm → straal 80mm → max afstand 40mm.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Communicatie: SoftwareSerial + Adafruit_TMP006.h.

Adafruit_TMP006 tmp006;
float objt = tmp006.readObjTempC();   // Bandtemperatuur
float diet = tmp006.readDieTempC();   // Sensortemperatuur (omgeving)

Stap 5 – Omgevingstemperatuur (LM35)

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

LM35: 10mV/°C. Uitlezen via analoge ingang.

int TempExtPin = A1;
float millivolts = (analogRead(TempExtPin) / 1023.0) * 5000;
float celsius = millivolts / 10;

Stap 6 – Ultrasoon Positie (Vering)

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

HC‑SR04 meet geluidstijd. Snelheid ~340 m/s. Afstand (cm) = 0,017 × duur (µs). Betere prestaties met NewPing.h library.

#include <NewPing.h>
int triggerPort = 2, echoPort = 3;
NewPing sonar(triggerPort, echoPort, 200);
int ReadPositionPing() {
  unsigned int uS = sonar.ping();
  return sonar.convert_cm(uS);
}

De UWP Software (Windows Phone App)

UI verbindt via Bluetooth met controle‑unit, toont data, stuurt naar IoT Hub.

Seriële communicatie: strings met $START en $END markers, velden gescheiden door |.

Voorbeeld string:

$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|

Veld mapping (na split op |):

Positie Betekenis
0START Marker
1Latitude
2N (Noord)
3Longitude
4E (Oost)
5Maand
6Dag
7Jaar
8Tijd (hh:mm:ss)
9Snelheid (km/h)
10Hoogte (m)
11Satellieten (aantal)
12HDOP
13Roll (Kantelhoek)
14Pitch (Wieliehoek)
15Xg
16Yg
17Zg
18Audio (optioneel, uitgeschakeld)
19Afstand (m)
20Temperatuur (LM35, omgeving)
21Bandtemperatuur (TMP006)
22Voorste vering (cm)
23Achterste vering (cm)
24END Marker
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

UWP app: links Bluetooth connectie, midden 3 meters (snelheid, kantel, wielie), rechts GPS, temperaturen, vering.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Deployen op Windows 10 Mobile

  1. Telefoon in Developer Mode (Update & Security > For Developers). USB verbinden, PIN noteren.
  2. Visual Studio: Project > Store > Create App Packages.
  3. Wizard: “No” voor Store, ARM platform, Create.
  4. Lokaal pad naar .appxbundle noteren.
  5. Command Prompt: cd C:\Program Files (x86)\Windows Kits\10\bin\x86\
    WinAppDeployCmd install -file "pad\naar\appxbundle" -ip 127.0.0.1 -pin PINCODE
  6. App geïnstalleerd, “Pin to Start” mogelijk.

Azure Configuratie

Stap 1 – IoT Hub aanmaken

Azure Portal > New > Internet of Things > IoT Hub. Naam, resource group, prijslaag (F1 gratis). Na deploy: Hostname en Connection String (iothubowner policy) noteren.

Stap 2 – Stream Analytics Job

New > IoT > Stream Analytics Job. Input: IoT Hub. Output: SQL Azure tabel (volgende stap). Query: SELECT * INTO SqlAzureMyTelemetry FROM MyTelemetryInputHub. Job starten.

Stap 3 – Web App + SQL Azure

New > Web + Mobile > Web App + SQL. Configureer: App Naam, Resource Group, App Service Plan (F1 gratis), SQL Database (naam, prijslaag, server, admin credentials).

Stap 4 – Device ID voor IoT Hub

Console App in Visual Studio, NuGet package Microsoft.Azure.Devices. Code om device identity aan te maken (bijv. myDucatiMonsterDevice). Genereert device key.

Web Applicatie

Responsive ASP.NET dashboard met Entity Framework data uit SQL Azure. Demo account: User demo / Pass demo.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Mobiele versie werkt ook. Domeinnaam aanpassen via Azure: Custom Domains > Buy Domains.

Ducati Monster Bedrading

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Foto’s van de gemonteerde hardware: controle‑unit achter de zit, GPS/accelerometer/tempsensor, TMP006 bracket achter achterband, HC‑SR04 onder koplicht (voorvering), HC‑SR04 onder zit (achtervering).

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Machine Learning

Doel: correlaties in telemetrie ontdekken om rijstijl te verbeteren. Data niet perfect vergelijkbaar (verschillende routes, verkeer). Ideaal: circuit met constante omstandigheden.

Azure ML Studio (studio.azureml.net):

  1. Nieuw Experiment > Data importeren uit SQL Azure (query filtert geldige records).
  2. Split Data: train/test.
  3. Train Model: doelveld kiezen, algoritme selecteren (Two‑class Decision Forest gaf beste Accuracy/Precision/Recall/F1 ≈ 1).
  4. Score Model + Evaluate Model voor validatie.
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Predictive Experiment: omzetten naar Web Service. Multiclass Decision Forest voor classificatie (bijv. “SAFE DRIVING”, “HIGH STRESS HIGH SPEED”). Test met fake data → resultaat “SAFE DRIVING”.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Inzichten: ik kantel liever rechts, kantelhoek onafhankelijk van bandtemp/snelheid (goede banden), wielie voorkeur boven 35°C bandtemp.

Eindconclusies

Project dekt veel terrein: hardware <$60, Azure services, Machine Learning. Goed startpunt voor toekomstige uitbreidingen.

Toekomstige verbeteringen:

  • Buffering in UWP app bij geen 3G/4G.
  • Xamarin app voor Android/iOS.
  • Preciezere sensoren.
  • Kleinere unit (MKR1000).
  • Sociale WebApp voor delen routes/telemetrie.
  • Stream Analytics als ML datasource.
Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

Nieuwe workflow tak: IoT Hub → Event Hub (snelheid >100 km/h) → Cloud Service → ML Predictive Service → Score terug naar IoT Hub → Device (Windows Phone).

Veel plezier! Vragen? Neem contact op.

Code

  • UWP App C# Code: GitHub
  • Arduino Code – Bike Telemetry: GitHub

Schema's

Schakeling van het telemetriesysteem. On‑board schema + Fritzing bestand.

Real‑Time Motorfiets Telemetrie Systeem met Arduino, GPS en Sensoren

MotorbikeProject.fzz

Productieproces

  1. Sensor Telemetrie 2.0.1 – Geavanceerde Temperatuurbewaking met Azure IoT Hub
  2. AI-gestuurd obstakelvermijdingssysteem met Arduino en ultrasone sensoren
  3. Interactieve gyroscoop LED-display met NeoPixel-ring en Arduino
  4. DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
  5. DIY Wolk Kostuum: LED-strip, Arduino Nano & SparkFun Onderdelen
  6. Industriële Lijnvolgende Robot voor Materiaaltransport
  7. Pixie: Een Arduino-gebaseerde NeoPixel-polshorloge – Modern, DIY LED-tijdstuk
  8. Slimme Arduino-waterfles – realtime monitoring & herinneringen
  9. DIY Kerst Schaduwtheater: Bouw een lichtshow met Arduino 101 en adresseerbare LED-strip
  10. Draagbare Remote Surveillance Camera Robot
  11. Slimme gebaar-naar-tekst handskoen voor gebarentaal