Resumen
¿Cómo se configura el servidor HTTP en SP32 para manejar mensajes?
Con el servidor HTTP del SP32 ya planteado, es hora de adentrarnos en la parte específica del proyecto: el API para enviar y recibir mensajes. En este interesante proyecto, tu celular actúa como un módem, conectándose directamente con la tarjeta SP32 a través de Wi-Fi. Este enlace permite que la tarjeta SP32 escuche también mediante radio LoRa, facilitando la comunicación. Aquí vamos a desglosar cada parte del proceso involucrado:
- La conexión Wi-Fi se realiza vía IP, permitiéndote interactuar con el dispositivo directamente desde el navegador.
- Al recibir un mensaje a través de LoRa, se almacena en la tarjeta SP32.
- Se emplean peticiones HTTP para solicitar el último mensaje guardado.
- Si existe un mensaje, es devuelto; si no, retorna vacío.
¿Cómo se envían y reciben mensajes a través de Radio LoRa?
Los mensajes que se reciben a través de LoRa se almacenan temporalmente en el SP32 y se pueden consultar a través del API. Pero si deseas enviar mensajes a través de LoRa, el procedimiento es simple:
- Se recibe el mensaje mediante una petición HTTP utilizando la URL
api.send
. - La tarjeta SP32 lo retransmite por Radio LoRa.
Este ciclo asegura que, una vez recibido por la segunda tarjeta, el mensaje sea conservado para futuras consultas o acciones.
¿Cuáles son los pasos para la implementación de endpoints en SP32?
Veamos cómo implementar los endpoints para manejar las peticiones:
- Deshabilitación de envío continuo: Ya no es necesario emitir el mensaje PINC, por lo que la tarea que lo gestionaba debe ser comentada o eliminada.
- Creación de endpoints para API:
- Duplicar la configuración existente para manejar dos archivos HTML; uno para mensajes y otro para el envío de mensajes.
- API para mensajes recibidos: Utilizar
api.message
con el método GET para gestionar las peticiones de mensajes. - API para enviar mensajes: Usar
api.send
de forma que al recibir una petición, el mensaje se retransmita a través de LoRa.
¿Cómo crear y configurar funciones para manejar mensajes HTTP?
Duplicamos funciones ya establecidas y las adaptamos a las nuevas necesidades:
-
Función para obtener el mensaje: Después de configurar
api.message
, la función debe devolver un JSON. Si el mensaje es inexistente, el JSON debería devolver vacío.// Ejemplo de JSON vacío const char* emptyMessage = "{\"message\":\"\"}";
-
Actualización de la función si hay un mensaje en memoria: Rellenar la variable
msg
con el contenido deseado y retornarlo a través de HTTP.
¿Qué recomendaciones aplicar durante la implementación y prueba del sistema?
Para asegurarte de que todo funcione correctamente:
- Realizar pruebas en ambas tarjetas de desarrollo usando peticiones a
api.msg
para verificar mensajes entrantes. - Utiliza
api.send
para asegurar que el envío de mensajes desde el servidor HTTP funcione y se retransmita a través de LoRa. - Observa cómo se limpian los mensajes para evitar duplicados en futuras consultas.
Estas configuraciones son cruciales para que el sistema de mensajería opere a la perfección, creando un entorno de comunicación eficaz y robusto usando SP32 y LoRa. Continúa explorando y mejorando con nuevas aplicaciones y el desarrollo del frontend de esta fascinante aplicación. ¡El viaje del aprendizaje apenas comienza y el potencial es infinito!