Author: Maxim Alexandru Gabriel
Email: alexandru.maxim2801@stud.acs.upb.ro
Master: SRIC
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.
Sistemul este alcătuit din 3 componente principale:
1. Colectare de date: Se realizează cu ajutorul a doi senzori:
a. **MPU6050** – pentru măsurarea accelerației pe 3 axe și rotației (gyro). b. **DS18B20** – pentru măsurarea temperaturii.
2. Transmitere date: Microcontrollerul ESP8266 citește valorile de la senzori și le transmite prin conexiune Wi-Fi către Firebase Realtime Database.
3. Afișare în timp real: O pagină HTML accesează periodic baza de date pentru a actualiza afișajul cu ultimele valori disponibile:
a. `kartStats/latest/accelX` b. `kartStats/latest/accelY` c. `kartStats/latest/accelZ` d. `kartStats/latest/gForce` e. `kartStats/latest/gyroZ` f. `kartStats/latest/speed` g. `kartStats/latest/temperature`
Pagina web afișează aceste date sub formă de text formatat, fără a necesita refresh manual.
Componentele utilizate și conexiunile sunt prezentate în 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. În cadrul testelor, s-a utilizat o sursă stabilizată de 5V pentru componentele analogice.
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²)`