ChatGPT en ESP32

ChatGPT en ESP32 - Imagen 1ChatGPT en ESP32 - Imagen 2ChatGPT en ESP32 - Imagen 3

Descripción

¿Quieres tener tu propio asistente de voz con inteligencia artificial en tu mano? Este proyecto te permite crear un dispositivo portátil que graba tu voz, la transcribe, la envía a ChatGPT, y te responde con voz sintetizada. ¡Todo esto corriendo en un ESP32! CARACTERÍSTICAS PRINCIPALES: ✅ Graba audio de 5 segundos presionando un botón ✅ Transcripción con OpenAI Whisper (Speech-to-Text) ✅ Procesamiento inteligente con GPT-4o-mini ✅ Respuesta en voz con OpenAI TTS ✅ Pantalla OLED I2C para visualizar conversaciones ✅ Historial de preguntas y respuestas en pantalla ✅ Respuestas concisas optimizadas para audio (2-3 oraciones) COMPONENTES NECESARIOS: • ESP32 DevKit V1 (30 pines) • Micrófono digital INMP441 (I2S) • Amplificador de audio MAX98357A (I2S) • Parlante/Speaker 3W 4Ω • Pantalla OLED 128x64 I2C (SSD1306) • Botón táctil o usar el botón BOOT del ESP32 • Fuente de alimentación 3.3V (puede ser USB) CONEXIONES ELÉCTRICAS: MICRÓFONO INMP441 → ESP32: • WS → GPIO 25 • SCK → GPIO 33 • SD → GPIO 32 • VDD → 3.3V • GND → GND AMPLIFICADOR MAX98357A → ESP32: • DIN → GPIO 27 • BCLK → GPIO 14 • LRC → GPIO 12 • VIN → 3.3V • GND → GND PARLANTE → MAX98357A: • Cable + → + • Cable - → - PANTALLA OLED SSD1306 → ESP32: • SDA → GPIO 21 • SCL → GPIO 22 • VCC → 3.3V • GND → GND BOTÓN: • Se usa el botón BOOT integrado del ESP32 (GPIO 0) CÓMO FUNCIONA: 1. GRABACIÓN: Mantienes presionado el botón BOOT y hablas durante máximo 5 segundos 2. TRANSCRIPCIÓN: El audio se envía a OpenAI Whisper que lo convierte a texto en español 3. PROCESAMIENTO: El texto se envía a GPT-4o-mini que genera una respuesta inteligente 4. SÍNTESIS DE VOZ: La respuesta se convierte a audio con OpenAI TTS 5. REPRODUCCIÓN: El ESP32 reproduce el audio a través del amplificador y parlante 6. VISUALIZACIÓN: Toda la conversación se muestra en la pantalla OLED CONFIGURACIÓN DEL CÓDIGO: 1. Ve a GitHub y descarga el código completo del proyecto 2. Abre el archivo principal y configura tu red WiFi: const char* WIFI_SSID = "turedwifi"; const char* WIFI_PASS = "tuclave"; 3. Obtén tu API Key de OpenAI: • Ve a: https://platform.openai.com/settings/organization/api-keys • Crea una nueva API key • Cópiala y pégala en el código: const char* OPENAI_API_KEY = "tuapikey"; 4. Instala las librerías necesarias en Arduino IDE: • Adafruit GFX Library • Adafruit SSD1306 • WiFi (incluida con ESP32) • HTTPClient (incluida con ESP32) • driver/i2s.h (incluida con ESP32) 5. Configura Arduino IDE: • Selecciona Board: "ESP32 Dev Module" • Upload Speed: 921600 • Flash Frequency: 80MHz • Core Debug Level: None CARGA DEL CÓDIGO: 1. Conecta tu ESP32 a la computadora vía USB 2. Selecciona el puerto COM correcto en Arduino IDE 3. Presiona el botón Upload (→) 4. Espera a que compile y cargue 5. Abre el Serial Monitor a 115200 baudios para ver el log MONTAJE DEL CIRCUITO: Tienes dos opciones para armar el circuito: OPCIÓN 1 - PROTOBOARD (Rápido y Fácil): • Sigue el esquemático mostrado arriba • Conecta todos los componentes usando cables dupont • Verifica todas las conexiones antes de encender OPCIÓN 2 - PCB PROFESIONAL (Recomendado): • Descarga los archivos Gerber del repositorio • Ve a PCBWay.com y sube el archivo Gerber • Selecciona opciones de fabricación (generalmente las predeterminadas están bien) • Ordena las PCBs (5 unidades por ~$5 USD + envío) • Espera 1-2 semanas por el envío • Suelda los componentes en la PCB • ¡Mucho más profesional y confiable! USO DEL DISPOSITIVO: 1. Enciende el ESP32 (conéctalo a USB o batería) 2. Espera a que se conecte al WiFi 3. La pantalla OLED mostrará "LISTO" 4. Mantén presionado el botón BOOT 5. Habla claramente en español (máximo 5 segundos) 6. Suelta el botón 7. Espera unos segundos mientras procesa 8. ¡Escucharás la respuesta de ChatGPT! COSTOS APROXIMADOS: • ESP32: $4-6 USD • INMP441: $1-2 USD • MAX98357A: $2-3 USD • OLED 128x64: $3-5 USD • Parlante 3W: $1-2 USD • PCB en PCBWay: $5 USD (5 unidades) • TOTAL: ~$16-23 USD + costos de API COSTOS DE API OpenAI: • Whisper (transcripción): ~$0.006 por minuto de audio • GPT-4o-mini: ~$0.00015 por consulta típica • TTS (síntesis de voz): ~$0.015 por respuesta • Costo por interacción completa: ~$0.02 USD NOTAS IMPORTANTES: ⚠️ Necesitas créditos en tu cuenta de OpenAI ⚠️ El dispositivo requiere conexión WiFi estable ⚠️ Puedes usar hotspot de celular en exteriores ⚠️ El micrófono INMP441 es sensible, habla cerca del dispositivo ⚠️ Las respuestas están limitadas a 2-3 oraciones para mejor experiencia de voz ⚠️ El código es Open Source (Licencia MIT) PERSONALIZACIÓN: Puedes modificar el código para: • Cambiar la voz del asistente (alloy, echo, fable, onyx, nova, shimmer) • Ajustar la duración máxima de grabación • Modificar el prompt del sistema de GPT • Cambiar el idioma de transcripción • Personalizar las pantallas del OLED SOLUCIÓN DE PROBLEMAS: PROBLEMA: No graba audio / Audio muy bajo SOLUCIÓN: Verifica las conexiones del INMP441, especialmente WS y SCK PROBLEMA: No reproduce audio SOLUCIÓN: Verifica que el MAX98357A esté bien conectado y el parlante sea de 3-4Ω PROBLEMA: Pantalla OLED no funciona SOLUCIÓN: Verifica dirección I2C (puede ser 0x3C o 0x3D) y conexiones SDA/SCL PROBLEMA: WiFi no conecta SOLUCIÓN: Verifica SSID y contraseña, asegúrate de usar red 2.4GHz (no 5GHz) PROBLEMA: Error de API OpenAI SOLUCIÓN: Verifica que tu API key sea correcta y tenga créditos disponibles APLICACIONES: • Asistente personal portátil • Herramienta educativa para aprender IA • Proyecto de robótica avanzada • Dispositivo de accesibilidad • Prototipo para productos IoT con IA PRÓXIMAS MEJORAS: • Añadir batería LiPo recargable • Crear carcasa impresa en 3D • Implementar wake word detection • Añadir memoria de conversación • Soporte para múltiples idiomas ¡Listo! Ahora tienes ChatGPT corriendo en tu ESP32. Es un proyecto perfecto para aprender sobre integración de APIs de IA, procesamiento de audio digital, y construcción de dispositivos IoT inteligentes.

Tecnologías Utilizadas

ESP32C++OpenAI APIWhisperGPT-4o-miniTTSI2SOLED SSD1306INMP441MAX98357A