Plataforma IA en la nube - Configuracion de Servidor Heroku

 Este ejemplo proporciona una introducción básica sobre cómo integrar un ESP32 con un servidor en la nube como Heroku utilizando HTTP para la comunicación de datos. Puedes expandir este ejemplo agregando más funcionalidades y mejoras según tus necesidades específicas.

Configuración y Ejemplo Práctico

1. Configuración del Servidor en Heroku

Vamos a configurar un servidor simple en Heroku que escuche solicitudes HTTP POST y responda con una confirmación básica.

1.1. Crear la Aplicación en Heroku
  1. Crear una cuenta en Heroku si aún no tienes una.
  2. Instalar la CLI de Heroku en tu máquina local si no la tienes instalada.
1.2. Configurar el Proyecto en Local
  1. Crea una nueva carpeta para tu proyecto y navega a ella en la línea de comandos:

    sh
    mkdir heroku-esp32-example cd heroku-esp32-example
  2. Crea un archivo app.py para tu servidor:

    python
    from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/esp32data', methods=['POST']) def esp32data(): data = request.json print("Data received from ESP32:", data) return jsonify({'message': 'Data received successfully'}) if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')

    Este servidor Flask escuchará las solicitudes POST en la ruta /esp32data y simplemente imprimirá los datos recibidos y devolverá un mensaje de confirmación.

1.3. Despliegue en Heroku
  1. Inicializa un repositorio Git:

    sh
    git init
  2. Crea un archivo requirements.txt que especifica las dependencias de Python para tu proyecto:

    txt
    Flask
  3. Crea un archivo Procfile que define el comando a ejecutar por el servidor:

    txt
    web: python app.py
  4. Instala el cliente de Heroku si aún no lo tienes:

    sh
    heroku login
  5. Crea la aplicación en Heroku:

    sh
    heroku create nombre-aplicacion-heroku
  6. Despliega tu aplicación en Heroku:

    sh
    git add . git commit -m "Initial commit" git push heroku master
  7. Abre la URL de la aplicación en tu navegador o verifica el estado de la aplicación:

    sh
    heroku open

    Esto abrirá la URL de tu aplicación en Heroku en tu navegador web.

2. Configuración del ESP32

El ESP32 será configurado para enviar datos (en este caso, simularemos datos ficticios) al servidor en Heroku a través de solicitudes HTTP POST.

2.1. Configuración de Hardware

Conecta el ESP32 a tu computadora mediante un cable USB para la programación.

2.2. Código del ESP32

Utilizaremos el IDE Arduino para programar el ESP32. Asegúrate de tener configurado el entorno de desarrollo para el ESP32 en Arduino IDE y tener las bibliotecas necesarias instaladas.

cpp
#include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h> // Configura tus credenciales de red const char* ssid = "nombre_de_tu_red_wifi"; const char* password = "contraseña_de_tu_red_wifi"; // URL de tu servidor en Heroku const char* serverUrl = "https://nombre-aplicacion-heroku.herokuapp.com/esp32data"; void setup() { Serial.begin(115200); delay(1000); // Conéctate a la red WiFi WiFi.begin(ssid, password); Serial.println("Connecting to WiFi..."); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // Espera a que la conexión a WiFi se establezca while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } } void loop() { // Crea un objeto JSON para enviar datos al servidor StaticJsonDocument<200> doc; doc["sensor"] = "ESP32"; doc["value"] = random(0, 100); // Serializa el JSON en una cadena String jsonData; serializeJson(doc, jsonData); // Envía la solicitud HTTP POST al servidor HTTPClient http; http.begin(serverUrl); http.addHeader("Content-Type", "application/json"); int httpResponseCode = http.POST(jsonData); if (httpResponseCode > 0) { String response = http.getString(); Serial.println("Response: " + response); } else { Serial.print("Error on sending POST request: "); Serial.println(httpResponseCode); } http.end(); delay(5000); // Espera 5 segundos antes de enviar la siguiente solicitud }
2.3. Subir y Ejecutar el Código en el ESP32
  1. Abre el IDE Arduino.
  2. Copia y pega el código del ESP32 en un nuevo sketch.
  3. Verifica y sube el código al ESP32 seleccionando el puerto correcto y la placa correcta.

3. Ejecución y Prueba del Sistema

Una vez que tanto el servidor en Heroku como el ESP32 estén configurados y desplegados:

  • Verifica que el ESP32 esté conectado a la red Wi-Fi.
  • El ESP32 debería comenzar a enviar datos simulados al servidor en Heroku cada 5 segundos.
  • En la consola de Heroku (o en los logs de la aplicación en Heroku), deberías ver mensajes indicando que se recibieron los datos del ESP32.

Consideraciones Finales

  • Seguridad: Para un entorno de producción, considera implementar medidas de seguridad adecuadas, como HTTPS y autenticación.

  • Escalabilidad: Heroku puede manejar varios dynos para escalar horizontalmente según sea necesario para manejar el tráfico.

  • Monitoreo: Utiliza herramientas de monitoreo para supervisar el rendimiento de tu aplicación tanto en Heroku como en el ESP32.


Comentarios

Entradas populares de este blog

Proyecto Prototipo de Lampara con IA - Utilizando plataforma Arduino

API Keys

Procesamiento del Lenguaje Natural (NLP)