This is an old revision of the document!
Author: Maxim Alexandru Gabriel
Email: alexandru.maxim2801@stud.acs.upb.ro
Master: SRIC
1. Introducere
Scopul acestui proiect a fost realizarea unui sistem de monitorizare in timp real a parametrilor dinamici al unui kart. Proiectul se bazeaza pe colectarea datelor prin senzori, transmiterea lor catre un backend cloud (Firebase Realtime Database) si afisarea acestora pe o interfata web.
⸻
2. Functionare si logica aplicatiei
Sistemul are 3 componente principale:
1. Colectare de date: Se realizează cu ajutorul celor 2 senzori, si anume MPU6050 (măsoară accelerația pe 3 axe și rotația) si DS18B20 (temperatură). 2. Transmisie date: Microcontrollerul (ESP8266) citeste valorile de la senzori si le transmite prin Wi-Fi catre Firebase Realtime Database. 3. Afisare in timp real: O pagina HTML acceseaza periodic Firebase pentru a actualiza afisajul cu ultimele valori:
kartStats/latest/accelX kartStats/latest/accelY kartStats/latest/accelZ kartStats/latest/gForce kartStats/latest/gyroZ kartStats/latest/speed kartStats/latest/temperature
Pagina afiseaza aceste date in interfata ca text formatat, fara a necesita refresh manual.
⸻
3. Hardware folosit
Componentele utilizate si conexiunile sunt prezentate in tabelul de mai jos:
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. In cadrul testelor s-a folosit o sursa stabilizata de 5V pentru componentele analogice.
⸻
4. Tehnologii folosite
• Arduino Framework (C++): Programarea ESP8266 pentru colectarea si trimiterea datelor. • Firebase Realtime Database: Backend cloud usor de utilizat, cu sincronizare rapida a datelor. • HTML + CSS: Structura si stilizarea paginii web de afisare. • JavaScript (v8 Firebase SDK): Acces la baza de date si actualizare dinamica a valorilor pe pagina.
⸻ 1. Procesare date
Pentru a transforma datele brute în informații utile, au fost realizate mai multe calcule:
• Viteza: aproximată prin integrarea accelerației pe axa X în timp:
Cu filtrare simplă și actualizare pe fiecare ciclu de citire (~100ms).
• Forță G: calculată folosind magnitudinea accelerației:
• Temperatura: extrasă direct din registrul senzorului și convertită în °C cu formula:
• Calibrare: s-au aplicat offset-uri pentru a corecta valorile accelerometrului în repaus (aX, aY, aZ ≈ 0,0,1g).
6. Challenges & Probleme Intampinate
• Sudarea senzorului MPU6050: Initial contactele senzorului erau instabile, necesitand sudare manuala a pinilor pentru un contact corect cu placa de dezvoltare. • Calibrare accelerometru: Datele brute necesitau corectii. S-a facut o calibrare empirica prin mediere in stare de repaus si compensare in software.