Sí, puede enviar datos a un ESP8266 sin usar un servidor web, pero es posible que desee usar uno o algo funcionalmente relacionado con uno.
Un ESP8266 es un dispositivo informático de propósito bastante general con una radio WiFi y una pila de red, por lo tanto, puede implementar casi cualquier protocolo razonable que desee describir en el código.
Sin embargo, se ha vuelto bastante popular implementar protocolos que se parecen y actúan de manera muy similar a las páginas web en miniatura destinadas al consumo humano.
es decir, en lugar de que su cliente se conecte y haga algo como
GET /index.html HTTP/1.1
podría decir
GET /gpio/15/value HTTP/1.1
Donde la URL no se refiere a un documento específico, sino a algún dato en el dispositivo al que desea acceder. Se pueden hacer cosas similares para POST
, PATCH
, DELETE
peticiones, etc.
A menos que esté creando una página para consumo humano, los datos que intercambie no serían páginas HTML. A menudo puede ser algo así como JSON. Así por ejemplo
GET /gpio/15/value HTTP/1.1
podría desencadenar una respuesta como
{"gpio": 15, "direction": "in", "value": 0}
Del mismo modo, puede hacer un punto final donde su cliente pueda establecer un GPIO diciendo
POST /gpio/15 HTTP/1.1
{"direction": "out", "value": 1}
Hasta cierto punto, es una pregunta semántica o de implementación específica si el programa que responde a esas consultas es un "servidor web"; podría ser un servidor web que ejecuta varias tareas auxiliares para manejar los datos y gpios (de la misma manera que un servidor que sirve páginas dinámicamente) generar parte de su contenido a partir de consultas en la base de datos), o podría ser un programa dedicado que maneje los datos y sepa cómo hablar HTTP.
Y, por supuesto, el uso de HTTP para intercambiar cargas JSON es solo una de las muchas formas de hacer las cosas: es una de las más populares actualmente y reutiliza muchos conceptos similares a los de un servidor web, y hasta cierto punto puede incluso permitir el uso de un navegador web. para las pruebas.
También vale la pena tener en cuenta que este esquema tiende a funcionar mejor localmente, cuando el teléfono y el ESP8266 son clientes de la misma red WiFi doméstica. Si el teléfono no está "en casa" o lo está, pero solo está en una red móvil, permitir que llegue al ESP8266 significaría permitir solicitudes externas en la red doméstica, algo que preferiblemente se debe evitar. En ese caso, es bastante popular usar un protocolo en el que tanto el dispositivo ESP8266 como el teléfono se comunican de forma independiente con un servidor de retransmisión externo, que pasa mensajes entre ellos. MQTT es un ejemplo de un esquema utilizado a menudo para un sistema con una arquitectura basada en servidor de retransmisión.