Posso enviar dados para um ESP8266 sem criar um servidor web?
Estou acessando os pinos GPIO do ESP8266 através de um servidor web. Agora eu quero fazer um aplicativo Android para isso. Então, eu quero enviar dados para o 8266 sem criar um servidor web - isso é possível?
Respostas:
Sim, você pode enviar dados para um ESP8266 sem usar um servidor da Web, mas você pode querer usar um ou usar algo funcionalmente relacionado a um.
Um ESP8266 é um dispositivo de computação de uso geral com um rádio WiFi e uma pilha de rede; portanto, você pode implementar praticamente qualquer protocolo razoável que queira descrever no código.
No entanto, tornou-se bastante popular a implementação de protocolos que se parecem muito com páginas da Web em miniatura destinadas ao consumo humano.
ou seja, em vez de seu cliente se conectar e fazer algo como
pode dizer
Onde o URL não se refere a um documento específico, mas a alguns dados no dispositivo que você deseja acessar. Você pode fazer coisas semelhantes para
POST
,PATCH
,DELETE
etc solicitações.A menos que você esteja criando uma página para consumo humano, normalmente os dados que você troca não seriam páginas HTML. Muitas vezes, pode ser algo como JSON. Então por exemplo
pode desencadear uma resposta como
Da mesma forma, você pode criar um terminal em que seu cliente possa definir um GPIO dizendo
Até certo ponto, é uma pergunta semântica ou de implementação específica se o programa que responde a essas perguntas é um "servidor da web" - pode ser um servidor da web que executa várias tarefas auxiliares para lidar com os dados e gpios (da mesma forma que um servidor que serve páginas pode dinamicamente gerar parte de seu conteúdo a partir de consultas ao banco de dados) ou pode ser um programa dedicado que lida com os dados e sabe falar HTTP.
E, é claro, o uso do HTTP para trocar cargas JSON é apenas uma das muitas maneiras de fazer as coisas - é popular atualmente, que reutiliza muitos conceitos do tipo servidor da web e pode até permitir o uso de um navegador da web para teste.
Também é importante lembrar que esse esquema tende a funcionar melhor localmente, quando o telefone e o ESP8266 são clientes da mesma rede Wi-Fi doméstica. Se o telefone não estiver "em casa" ou estiver, mas estiver apenas em uma rede móvel, permitir que ele alcance o ESP8266 significaria permitir solicitações externas à rede doméstica, algo preferencialmente evitado. Nesse caso, é bastante popular usar um protocolo em que o dispositivo ESP8266 e o telefone alcancem independentemente um servidor de retransmissão externo, que transmite mensagens entre eles. O MQTT é um exemplo de um esquema frequentemente usado para um sistema com uma arquitetura baseada em servidor de retransmissão.
fonte
DELETE
de uma porta ;-)Sim, você pode escrever um servidor TCP personalizado . Ou, para um peso menor, use um servidor UDP .
De qualquer forma, defina seu próprio protocolo de aplicativo sobre o TCP / UDP e solicite que o aplicativo o envie. E você economiza na sobrecarga do HTTP. (O HTTP pode ter cerca de 1000 bytes de sobrecarga por mensagem!)
fonte