This is an old revision of the document!


R2-D2 Smart Home Assistant

Introducere

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

Descriere generală

Arhitectura sistemului este formată din 3 componente logice:

  • Microcontrolerul ESP32: Citește senzorii, procesează semnalele și trimite datele către server/dispozitivul conectat.
  • Serverul (Laptop): Procesează datele primite prin Wi-Fi, trimite semnalul audio pentru a fi redat de microcontroler și permite modificarea stării logice (conectare aplicație) și alte configurări administrative, dar limitate.
  • Aplicație telefon/calculator (simulată de Laptop): Permite configurarea microcontrolerului la nivel de admin, citirea datelor de pe senzori, modificarea stării logice (server) și alte configurări specifice administrării.

Î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.

Imagine

Logica de funcționare:

  1. Idle State: Inelul LED respiră albastru. Modulul este conectat fie la Wi-Fi, fie la Bluetooth.
  2. Interrupt Trigger: Apăsarea butonului fizic (sau detecția de prezență via VL53L0X) declanșează un ISR hardware.
  3. Recording State: Cercul de LED-uri WS2812B devine roșu solid. Microfonul INMP441 înregistrează audio via I2S DMA.
  4. Processing State: LED-urile își schimbă culoarea, așteptând răspunsul de la server.
  5. Playback State: Inelul LED devine verde. Amplificatorul MAX98357A redă răspunsul audio generat de server.
  6. Background Tasks: Polling pentru senzorii I2C la intervale regulate și ascultare pe interfața SPI pentru tag-uri RFID când este nevoie de 2FA sau pentru a trimite comenzi prestabilite.

3. Hardware Design

Sistemul este centrat în jurul unui modul ESP32 DevKit V1.

Componentă Descriere Protocol / Pinout
ESP32 DevKit V1 Microcontroler -
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.

TODO - adaugare schema electrica

Software Design

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2026/atoader/marius.tudosie.1778004943.txt.gz · Last modified: 2026/05/05 21:15 by marius.tudosie
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0