IoT4Car: Voertuigtelemetrie Vastleggen & Analyseren met Arduino MKR1000
Onderdelen en benodigdheden
| Arduino MKR1000 | 1 |
| SparkFun Logic Level Converter - Bi-directioneel | 1 |
| SparkFun OBD-II UART | 1 |
| SparkFun OBD-II naar DB9 Kabel | 1 |
Apps en online diensten
- Arduino IDE
- freeboard.io
- dweet.io
Over dit project
Achtergrond
Bij rijden naar je dashboard: ooit gedacht om meterstandjes te verzamelen en te analyseren? Deze data bevat verborgen schatten: rijgedrag, gemiddelde verbruik, aantal verkeerslichten, wachttijden. Voor bedrijven cruciaal voor real-time vlootbeheer: voertuigstatus, belastingverdeling, brandstofefficiëntie, locatie. Met Arduino MKR-boards (IoT-gericht) bouw je zelf een apparaat dat met je auto praat en telemetrie naar de cloud stuurt.
Communiceren met een voertuig
Wat is OBD-II? On-Board Diagnostics is de ingebouwde zelfdiagnostiek van een voertuig. Standaard op alle US-auto's vanaf 1996, later wereldwijd. OBD-II heeft 5 signaleringsprotocollen, CAN-bus is er één van (verplicht in US vanaf 2008). Toegang via 16-pins OBD-II-interface.
Controller: Arduino MKR WiFi 1000 (WiFi-mogelijkheden). Alternatief: MKR GSM 1400 (breder bereik). Workaround: smartphone als persoonlijke hotspot.
Interpretatieboard: SparkFun OBD-II UART Board met STN1110-chip. Vertaalt OBD-protocollen naar UART (ELM327-commando's). Ondersteunt alle grote OBD-II-standaarden inclusief CAN.
Niveauschakelaar nodig: Interpretatieboard is 5V, MKR1000 is 3.3V. Gebruik SparkFun Logic Level Converter (bi-directioneel).
Aansluiten
MKR pin 13 (Rx) en pin 14 (Tx) → OBD-II UART Tx/Rx via niveauschakelaar. Grounds verbinden. Optioneel: LCD 1602 voor real-time weergave.
Belangrijk: Gebruik Serial1 (pins 13/14), niet Serial (USB-poort). Initialiseer in setup(): Serial1.begin(9600);
OBD-commando's
Commando's zijn hexadecimale codes in ASCII. Eerste twee cijfers = servicemode. We gebruiken 01 (huidige data). Parameter IDs (PIDs):
010D– wagensnelheid010C– motortoer (RPM)012F– brandstofniveau0105– koelvloeistof-temperatuur
Responsformaat: >1 Herhaalde_PID Data. Data begint bij 6e karakter. Decodering: RPM = (hex/4), Snelheid = hex (km/h), Brandstof = hex/255*100%, Temp = hex - 40°C.
Data naar de Cloud
Arduino MKR's voordeel: internettoegang. Gebruik dweet.io (API) en freeboard.io (visualisatie). Push data elke 10 seconden via HTTP POST naar dweet.io. Freeboard dashboard toont SPEED, RPM, FUEL LEVEL, COOLANT TEMPERATURE.
Code
IoT4Car_code
Volledige C++ code voor OBD-II UART communicatie, LCD-weergave en dweet.io/freeboard.io upload. Beschikbaar in de bron. Belangrijkste functies: getRPM(), getSpeed(), getFuel(), getCoolTemp(), getResponse(), httpRequest().
Schema
Verbind Arduino MKR WiFi 1000, SparkFun OBD-II UART, Logic Level Shifter, LCD 1602. Fritzing-schema beschikbaar.
Productieproces
- De Uitgebreide Gids voor Voertuigkentekenplaten: Geschiedenis, Ontwerp en Toekomst
- Antiblokkeersysteem (ABS): Uw Voertuig Beveiligen op Gladde Wegen
- AI-gestuurd obstakelvermijdingssysteem met Arduino en ultrasone sensoren
- DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
- DIY Wolk Kostuum: LED-strip, Arduino Nano & SparkFun Onderdelen
- Pixie: Een Arduino-gebaseerde NeoPixel-polshorloge – Modern, DIY LED-tijdstuk
- Voertuig-Chassis Indeling: Motorpositie & Aandrijfconfiguraties Uitgelegd
- Voertuigbedrading Ontcijferd: Sleutelconcepten voor Betrouwbare Autoprestaties
- Een aandrijflijn begrijpen: hoe het uw voertuig aandrijft
- De dynamo begrijpen: hoe het uw auto voedt en defectherkenning
- Chassis-aarding begrijpen: doel, functie en belang