This is an old revision of the document!
Author: Maxim Alexandru Gabriel
Email: alexandru.maxim2801@stud.acs.upb.ro
Master: SRIC
Kart Telemetry Dashboard
1. Introducere
Scopul acestui proiect a fost realizarea unui sistem de monitorizare în timp real a parametrilor dinamici ai unui kart.
Proiectul se bazează pe colectarea datelor prin senzori, transmiterea lor către un backend cloud (Firebase Realtime Database) și afișarea acestora pe o interfață web.
2. Funcționare și logică aplicației
Sistemul este alcătuit din 3 componente principale:
Colectare de date: Se realizează cu ajutorul a doi senzori:
Transmitere date: Microcontrollerul ESP8266 citește valorile de la senzori și le transmite prin conexiune Wi-Fi către Firebase Realtime Database.
Afișare în timp real: O pagină
HTML accesează periodic baza de date pentru a actualiza afișajul cu ultimele valori disponibile:
`kartStats/latest/accelX`
`kartStats/latest/accelY`
`kartStats/latest/accelZ`
`kartStats/latest/gForce`
`kartStats/latest/gyroZ`
`kartStats/latest/speed`
`kartStats/latest/temperature`
Pagina web afișează aceste date sub formă de text formatat, fără a necesita refresh manual.
3. Hardware folosit
Componentele utilizate și conexiunile sunt prezentate în tabelul de mai jos:
Hardware Connections
🔌 Components Used
ESP32 Development Board
MPU-6050 (Accelerometru, Giroscop, Termometru intern)
DS18B20 (Senzor extern de temperatură)
Breadboard
Jumper Wires (male-male)
Rezistor 4.7kΩ (pentru DS18B20 pull-up)
📌 Wiring Table
Componentă | ESP32 Pin | Descriere |
MPU-6050 SDA | GPIO 21 | Interfață I2C - date |
MPU-6050 SCL | GPIO 22 | Interfață I2C - ceas |
MPU-6050 VCC | 3V3 (pe ESP32) | Alimentare 3.3V |
MPU-6050 GND | GND | Împământare comună |
DS18B20 DATA | GPIO 4 | Linie de date (cu rezistor de 4.7kΩ pull-up la 3.3V) |
DS18B20 VCC | 3V3 (pe ESP32) | Alimentare 3.3V |
DS18B20 GND | GND | Împământare comună |
Breadboard | - | Distribuție VCC și GND către ambii senzori |
🧠 Notă: S-a folosit un breadboard pentru a partaja pinul de 3.3V al plăcuței ESP32 către mai mulți senzori, întrucât placa oferă un singur pin de alimentare 3V3.
Alimentarea s-a realizat prin portul USB. În cadrul testelor, s-a utilizat o sursă stabilizată de 5V pentru componentele analogice.
4. Tehnologii utilizate
Arduino Framework (C++) – pentru programarea plăcuței ESP8266.
Firebase Realtime Database – backend cloud pentru stocarea și sincronizarea rapidă a datelor.
HTML + CSS – pentru structura și stilizarea interfeței grafice web.
JavaScript + Firebase SDK v8 – pentru conectarea frontend-ului la Firebase și actualizarea valorilor live.
5. Procesare date
Pentru a transforma datele brute în informații utile, au fost aplicate următoarele formule:
`v = ∫ a_x(t) dt ≈ v₀ + a * Δt`,
cu filtrare simplă și actualizare la fiecare ~100ms.
`gForce = √(aX² + aY² + aZ²)`
Temperatură:
Internă (MPU6050): citită din registrul senzorului și convertită folosind formula specifică chipului.
Externă (DS18B20): conversie automată în grade Celsius cu ajutorul bibliotecii DallasTemperature.
Calibrare:
S-au aplicat offset-uri pentru accelerometru astfel încât la stare de repaus valorile să fie aproximativ `(0, 0, 1g)`.
Valori mediate pentru câteva secunde la pornire pentru corectare.
6. Challenges și probleme întâmpinate