API de ChatGPT con ESP32: Guía Completa para Integrarla y Mostrar Respuestas
VER VIDEO COMPLETO EN YOUTUBE
🔴 CANAL OFICIAL 1080p 60fps HD
Haz clic aquí para ver directamente en YouTube y apoyar al canal 13:36 min
Reproducir en YouTube Oficial ↗

💡 Apoya el proyecto: Al reproducir en YouTube recibimos visualizaciones y anuncios del canal oficial. ¡Aquí abajo encuentras el diagrama de pines, componentes y códigos listos para copiar!

Inteligencia Artificial

API de ChatGPT con ESP32: Guía Completa para Integrarla y Mostrar Respuestas

⏱️ Duración: 13:36 min 👁️ 7.696 vistas 📅 16 feb 2025 👤 Ing. A Torres
PUBLICIDAD • RECOMENDADO

📖 Resumen & Explicación del Proyecto

En este video, aprenderás cómo conectar un ESP32 a la API de ChatGPT de OpenAI para enviar preguntas y recibir respuestas en tiempo real. Además, mostraremos las respuestas en una pantalla LCD 20x04 e OLED, creando un sistema interactivo con inteligencia artificial. ✅ 📌 Contenido del video: ✔️ Configuración del ESP32 y conexión a Wi-Fi ✔️ Uso de la API de OpenAI para enviar y recibir datos ✔️ Integración con una pantalla LCD 20x04 con I2C y OLED 128x64 ✔️ Procesamiento de respuestas en formato JSON con ArduinoJson ✔️ Código optimizado y explicado paso a paso 🔹 📜 Código y recursos: 👉 [ https://drive.google.com/file/d/1fE_U_6qETWW1FIs1NR2yBc5YFxs1O_44/view?usp=drive_link ] Crear API : https://platform.openai.com/settings/profile/user Documentaciòn API : https://platform.openai.com/docs/api-reference/introduction 🔹 🔧 Hardware utilizado: ESP32 (modelo WROOM-32) Pantalla LCD 20x04 con módulo I2C Pantalla OLED 128x64

🛠️ Componentes & Materiales Requeridos

  • ✓ESP32 WROOM-32
  • ✓Pantalla LCD 20x04 con módulo I2C
  • ✓Display OLED 128x64
  • ✓Pulsador de activación (Trigger prompt)
  • ✓API Key de OpenAI (ChatGPT API)

⚡ Conexión de Pines (Pinout)

Pin Microcontrolador Pin Dispositivo / Sensor Función / Descripción
GPIO 21SDA (LCD/OLED)Bus I2C compartido para pantallas
GPIO 22SCL (LCD/OLED)Reloj de sincronización I2C
GPIO 15Pulsador TriggerDisparo manual para enviar consulta
5V / 3V3VCCAlimentación de displays
Integración de ESP32 con la API de OpenAI y visualización simultánea en LCD 20x04 e I2C OLED.

🔍 Integración de ESP32 con la API de OpenAI y visualización simultánea en LCD 20x04 e I2C OLED.

💻 Códigos Fuente del Proyecto

Verificados en Laboratorio

Copia y pega directamente los scripts en tu entorno de desarrollo (Arduino IDE, PlatformIO o editor de código):

C++ / Arduino IDE ESP32_ChatGPT_Client.ino

Código 1: Cliente HTTPS para ChatGPT en C++

#include <WiFi.h>
#include <HTTPClient.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);

const char* ssid = "TU_WIFI";
const char* password = "TU_PASSWORD";
const char* openAIKey = "sk-proj-TU_OPENAI_API_KEY";

void setup() {
  Serial.begin(115200);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Conectando WiFi...");

  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED) { delay(500); }
  
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("ChatGPT ESP32 Listo");
  
  enviarPreguntaChatGPT("¿Que es un transistor?");
}

void loop() {}

void enviarPreguntaChatGPT(String pregunta) {
  WiFiClientSecure client;
  client.setInsecure();
  HTTPClient http;
  
  http.begin(client, "https://api.openai.com/v1/chat/completions");
  http.addHeader("Content-Type", "application/json");
  http.addHeader("Authorization", String("Bearer ") + openAIKey);

  StaticJsonDocument<512> doc;
  doc["model"] = "gpt-4o-mini";
  JsonArray messages = doc.createNestedArray("messages");
  JsonObject userMsg = messages.createNestedObject();
  userMsg["role"] = "user";
  userMsg["content"] = pregunta + " (Responde en maximo 25 palabras para pantalla LCD)";

  String requestBody;
  serializeJson(doc, requestBody);

  int code = http.POST(requestBody);
  if (code == 200) {
    String res = http.getString();
    DynamicJsonDocument resDoc(2048);
    deserializeJson(resDoc, res);
    const char* respuesta = resDoc["choices"][0]["message"]["content"];
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(respuesta);
    Serial.println(respuesta);
  }
  http.end();
}
JSON / OpenAI API chatgpt_request_schema.json

Código 2: JSON Payload de Request para Chat Completions

{
  "model": "gpt-4o-mini",
  "messages": [
    {
      "role": "system",
      "content": "Eres un asistente para microcontroladores. Respuestas concisas."
    },
    {
      "role": "user",
      "content": "Dame una recomendacion tecnica de electronica en 15 palabras."
    }
  ],
  "max_tokens": 50,
  "temperature": 0.5
}

🚀 Puesta en Marcha Paso a Paso

  1. 1

    Crear una cuenta en platform.openai.com y generar una Secret API Key.

  2. 2

    Conectar el display LCD 20x04 con módulo I2C a los pines SDA (GPIO 21) y SCL (GPIO 22).

  3. 3

    Descargar la biblioteca LiquidCrystal_I2C y ArduinoJson v7.

  4. 4

    Cargar el código configurando los parámetros de tokens para limitar la longitud de la respuesta a 4 líneas de texto.

  5. 5

    Verificar las respuestas generadas directamente en pantalla.

📥 Descargas & Recursos Oficiales

PUBLICIDAD • RECOMENDADO