我有一个 NodeMCU (ESP8266) 板,我想通过互联网控制它。我试图找到一个解决方案,我不必在我的路由器上设置任何配置,如端口转发。我想出了以下解决方案:
我有一个网站,用户可以在其中更改设备状态(状态是指例如 GPIO5 引脚值高或低),然后将其保存到共享托管服务器上的数据库中。NodeMCU 会定期(例如每 5 秒)向数据库发送一个 HTTP GET 请求。根据从数据库接收到的值,NodeMCU 板将引脚值更改为高或低。如果 NodeMCU 更改其状态(例如,引脚值从 HIGH 变为 LOW),则新设备状态将通过 HTTP POST 请求发送到数据库。设备还会定期(例如每 60 秒)发送 HTTP POST 请求,以便用户可以在网站上监控设备状态。
这个配置有几个问题:
NodeMCU和用户之间没有实时连接(设备响应总是有延迟)
该设备每天向共享托管服务器发送数千个查询。例如,如果 GET 请求每 5 秒发送一次,那么一台设备每天会产生 17280 次查询。
所以我的问题是这种配置在共享主机或任何类型的主机上的实用性如何,这种配置的替代方案或改进是什么,以及如何与 NodeMCU 建立连接,以便设备仅在以下情况下向数据库发送 GET 请求用户在数据库中更改设备状态。
