是否可以在不创建Web服务器的情况下将数据发送到ESP8266?
我正在通过Web服务器访问ESP8266的GPIO引脚。现在,我想为此制作一个Android应用程序。因此,我想在不使用Web服务器的情况下将数据发送到8266,这可能吗?
是否可以在不创建Web服务器的情况下将数据发送到ESP8266?
我正在通过Web服务器访问ESP8266的GPIO引脚。现在,我想为此制作一个Android应用程序。因此,我想在不使用Web服务器的情况下将数据发送到8266,这可能吗?
Answers:
是的,您可以在不使用Web服务器的情况下将数据发送到ESP8266,但您可能要使用其中一个,或使用与之相关的功能。
ESP8266是具有WiFi无线电和网络堆栈的相当通用的计算设备,因此,您可以实现几乎所有您想在代码中描述的合理协议。
但是,实现外观和行为很像供人类消费的微型网页的协议已变得非常流行。
即,而不是您的客户端连接并做类似的事情
GET /index.html HTTP/1.1
它可能会说
GET /gpio/15/value HTTP/1.1
该URL不是指特定文档,而是指您要访问的设备上的某些数据。你可以做类似的事情POST
,PATCH
,DELETE
等请求。
除非您要构建供人类使用的页面,否则通常交换的数据将不是HTML页面。通常,它可能类似于JSON。所以举个例子
GET /gpio/15/value HTTP/1.1
可能会触发类似
{"gpio": 15, "direction": "in", "value": 0}
同样,您可以通过说出一个端点来设置客户端可以设置GPIO的端点
POST /gpio/15 HTTP/1.1
{"direction": "out", "value": 1}
如果回答此类查询的程序是“ Web服务器”,则在某种程度上是语义或实现特定的问题-它可以是运行各种帮助程序任务以处理数据和gpios的Web服务器(就像服务页面的服务器可能会动态通过数据库查询生成其某些内容),或者它可以是专用程序,既处理数据又知道如何使用HTTP。
当然,使用HTTP交换JSON负载只是多种处理方式中的一种-它恰好是当前流行的一种,它重用了许多类似于Web服务器的概念,甚至在一定程度上甚至允许使用Web浏览器用于检测。
还需要记住的是,当电话和ESP8266是同一家庭WiFi网络的客户端时,这种方案通常在本地最有效。如果电话不是“在家”,或者只是在移动网络上,允许它到达ESP8266意味着允许外部请求进入家庭网络,最好避免这种情况。在这种情况下,使用一种协议非常普遍,其中ESP8266设备和电话都独立地连接到外部中继服务器,该服务器在它们之间传递消息。MQTT是通常用于具有基于中继服务器的体系结构的系统的方案示例。
DELETE
港口的实施;-)