This is an old revision of the document!
Proiectul își propune crearea unui prototip de asistent pentru o casă inteligentă, inspirat de roboțelul R2-D2 din universul Star Wars. Dezvoltat pe platforma ESP32, acesta va interacționa cu utilizatorul prin comenzi vocale și redare audio, va monitoriza mediul ambiant și va dispune de funcții de securitate prin autentificare 2FA (RFID) pentru administrarea locală.
Scopul principal este de a oferi o soluție accesibilă și eficientă pentru persoanele care nu își permit soluții comerciale precum Amazon Alexa sau Google Nest, ori care pur și simplu își doresc un asistent mult mai personalizabil decât opțiunile actuale de pe piață. ESP32-ul comunică prin Wi-Fi cu un server central (ideal găzduit pe un Raspberry Pi sau pe un laptop mai vechi). Acest server utilizează agenți AI pentru a procesa comenzile vocale și datele senzorilor, având totodată acces la diverse API-uri externe (de exemplu, pentru informații meteorologice). Adițional, o aplicație mobilă va permite configurarea asistentului, vizualizarea datelor înregistrate de senzori și modificarea modului curent de funcționare.
Laboratoare folosite: SPI, I2C, PWM, Intreruperi, GPIO.
Bonus: pentru audio → I2S, carcasă printată 3D
Arhitectura sistemului este formată din 3 componente logice:
În cadrul proiectului, mă voi concentra asupra implementării hardware și software din cadrul nodului hardware (ESP32). Celelalte 2 componente vor fi implementate parțial sau simulate din cauza constrângerilor de timp. Doresc continuarea proiectului pe timpul verii, respectiv pe parcursul anului viitor, așadar acesta va fi primul milestone.
Logica de funcționare:
Sistemul este centrat în jurul unui modul ESP32 DevKit V1.
| Componentă | Descriere | Protocol / Pinout |
|---|---|---|
| ESP32 DevKit V1 | Microcontroller | - |
| INMP441 | Microfon I2S | I2S IN: WS→15, SCK→14, SD→32 |
| MAX98357A | Amplificator I2S (cu difuzor 8W) | I2S OUT: LRC→25, BCLK→26, DIN→27 |
| BME680 | Senzor T, H, P, Gaz | I2C (Adresa 0x76): SDA→21, SCL→22 |
| OPT3001 | Senzor de lumină ambientală (Adresa 0x44 - pin ADDR la GND) | I2C: SDA→21, SCL→22 |
| VL53L0X | Senzor ToF (Distanță / Prezență) (Adresa 0x52) | I2C: SDA→21, SCL→22 |
| MFRC522 | Cititor RFID | SPI: SCK→18, MISO→19, MOSI→23, CS→5, RST→17 |
| WS2812B | Inel LED RGB | GPIO MUX: DIN→4 |
| Push Button | Declanșator hardware | GPIO INT: PIN→13 |
| RED LED Push Button | LED integrat în buton | GPIO PWM: PIN→33 |
Pentru a evita interferențele audio, partea de alimentare (5V) este decuplată și filtrată folosind condensatori de 1000µF, 100µF și 0.1µF, iar componentele împart un singur Common Ground Rail.
De asemenea, au fost folosite diferite rezistențe pentru a asigura integritatea electrică a componentelor: 330 ohm pentru LED-ul integrat în buton și 10 ohm pentru linia de alimentare a microfonului.
https://www.espboards.dev/esp32/esp32doit-devkit-v1/
https://www.farnell.com/datasheets/1824785.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/max98357a-max98357b.pdf
https://www.bosch-sensortec.com/en/products/environmental-sensors/gas-sensors/bme680#technical
https://www.ti.com/lit/ds/symlink/opt3001.pdf?ts=1777933152891
https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html#documentation
https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf
https://cdn.sparkfun.com/datasheets/Components/LED/WS2812.pdf
https://makerworld.com/en/models/942089-r2d2-echo-dot-3-dock#profileId-908012