Table of Contents

BrewMate

Introducere

BrewMate este un asistent digital portabil creat special pentru pasionații de cafea care explorează cafenelele orașului. Proiectul îmbină plăcerea descoperirii cu tehnologia embedded, oferind o experiență personalizată de jurnalizare și recomandare.

Funcționalități cheie:

• Înregistrează automat cafenelele vizitate și tipurile de cafea consumate  
• Salvează datele pe un card SD pentru consultare ulterioară  
• Oferă recomandări bazate pe istoricul tău de consum (OpenAI)
• Interfață prietenoasă pentru navigare facilă  
• (Extra) Funcție vocală pentru sugestii dinamice de localuri sau sortimente de cafea

Descriere generală

BrewMate este construit ca un sistem embedded interactiv, gândit să funcționeze autonom și să ofere o experiență fluidă utilizatorilor. Dispozitivul combină module hardware și software pentru a înregistra, organiza și recomanda preferințe legate de cafea.

Utilizatorii pot înregistra automat cafenelele vizitate și tipurile de cafea consumate, aceste date fiind salvate pe un card SD pentru consultare ulterioară. Fiecare înregistrare conține numele cafenelei și tipul de cafea comandat.

Înainte de o nouă ieșire, utilizatorii pot vizualiza aceste date direct de pe display, unde interfața le va afișa sugestii filtrate pe baza istoricului.

BrewMate integrează și o funcție vocală inteligentă care utilizează API-ul OpenAI pentru generarea de recomandări. Aceasta analizează preferințele înregistrate și oferă sugestii dinamice privind cafenele noi sau sortimente potrivite gusturilor utilizatorului.

Datele sunt gestionate într-un format structurat și pot fi exportate sau prelucrate în aplicații externe în versiuni viitoare. Sistemul este modular și permite adăugarea de noi funcționalități (ex. analiză statistică, integrare cu aplicații mobile).

Hardware Design

Componente:

Interfețe hardware folosite:

Conectivitate:

Modul Semnal ESP32 Pin
INMP441 I2S SCK GPIO33
I2S WS (LRCL) GPIO25
I2S SD GPIO32
VCC 3.3V
GND GND
Modul Semnal ESP32 Pin
SD Card CS GPIO2
MOSI GPIO13
MISO GPIO12
SCK GPIO14
VCC 3.3V
GND GND
Modul Semnal ESP32 Pin
TFT Display CS GPIO5
MOSI GPIO23
SCK GPIO18
DC GPIO21
RESET GPIO22
BL (Backlight) GPIO4
VCC 3.3V/5V
GND GND

Software Design

Mediu de dezvoltare:

Biblioteci utilizate:

Implementare:

def add_entry(self, shop_name, coffee_type):
    """Add coffee entry and save to SD card"""
    try:
        print(f"Adding coffee entry: {shop_name} - {coffee_type}")
 
        # Add to memory first
        timestamp = time.ticks_ms()
        entry = {
            'timestamp': timestamp,
            'shop': shop_name,
            'coffee': coffee_type
        }
 
        self.entries.append(entry)
 
        # Keep only recent entries to fit in one sector
        if len(self.entries) > self.max_entries_per_sector:
            self.entries = self.entries[-self.max_entries_per_sector:]
 
        # Save to SD card
        success = self._save_entries()
 
        if success:
            print(f"✅ Coffee entry saved to SD card!")
        else:
            print(f"⚠️ Entry saved to memory but SD write failed")
 
        return True  # Always return True since we have it in memory
 
    except Exception as e:
        print(f"❌ Error adding entry: {e}")
        return False
def connect_wifi():
    """Connect to WiFi"""
    print("Connecting to WiFi...")
 
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
 
    if not wlan.isconnected():
        print(f"Connecting to {WIFI_SSID}...")
        wlan.connect(WIFI_SSID, WIFI_PASSWORD)
 
        timeout = 15
        while not wlan.isconnected() and timeout > 0:
            print(f"Waiting... {timeout}s")
            time.sleep(1)
            timeout -= 1
 
        if wlan.isconnected():
            print("WiFi connected!")
            print(f"IP: {wlan.ifconfig()[0]}")
            return True
        else:
            print("WiFi connection failed!")
            return False
    else:
        print("Already connected")
        return True

Rezultate Obținute

Concluzii

BrewMate demonstrează că un sistem embedded poate oferi o experiență interactivă și personalizată, integrând funcții moderne de AI într-o interfață minimalistă. Dispozitivul are potențial real pentru dezvoltare într-un produs comercial pentru pasionații de cafea și entuziaști tech deopotrivă.

Download

Software-ul este disponibil aici: https://github.com/alexandrutrifu/BrewMatePM

Bibliografie/Resurse

Export to PDF