有人愿意帮我解决这个问题吗?
如何连接/控制来自不同网络的Nodemcu esp8266 wi-fi模块,以便从任何家庭/房屋外控制iot设备?
我用于IOT家庭自动化的NodeMCU ESP8266的不同网络的互联网连接问题。
实际上,在一个类项目的情况下,我已经从互联网上使用了一些代码(也包括了一些代码并从一些网站获得了帮助),并且还使用了Blynk来控制我的ESP8266。但不是我想制作个人应用程序,通过该应用程序,我可以在家外控制我的设备。
我已经使用家庭网络连接了我的WI-FI路由器!!它运作良好,但我不知道如何从不同的netwrok做同样的事情。
如果可能,我想任何人都可以帮助我......
谢谢。给大家。
在Arduino和Internet of Things StackExchange网站上已经对此进行了更详细的回答。综上所述:
为安全起见,很难开始连接到另一个本地网络上的设备。防火墙保护WiFi网络上的设备免受因特网的影响,防火墙通常配置为返回对设备发送的请求的响应,但阻止所有未经请求的消息。即使防火墙允许给定端口上的传入连接,也需要“端口转发”或其他自定义配置,以使意外消息到达网络上的多个设备之一(设备通常共享网络的相同公共IP地址,外部系统的消息无法在没有路由器转发的情况下到达正确的本地地址。
任何暴露于此类未经请求的请求的设备都有受到攻击的风险,并可能对网络上的其他系统造成风险。因此,使防火墙保持相同更安全,而是使设备订阅外部网络服务器,该网络服务器充当传入消息的邮箱。然后,您可以通过互联网连接向服务器发送请求,服务器将存储它们并在ESP询问时将它们转发到ESP8266。使用像Mosquitto这样的服务器端代理程序和ESP8266上的PubSubClient等客户端的MQTT协议可以用于这种发布 - 订阅模型,并且MQTT教程和解释在工具站点和堆栈站点都可用。
您可以使用Arduino IDE对ESP8266设备进行编程。
https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/
在Arduino IDE中安装ESP8266之后。您需要连接ESP8266和WiFi路由器(已连接互联网)。设备连接WiFi路由器后。您可以使用MQTT协议与服务器进行通信。您可以在Arduino中使用以下库在ESP8266中实现MQTT客户端。 ESP8266用于从不同的网络发送和接收数据。 ESP8266订阅了一个特定主题。您可以从不同的MQTT客户端向该主题发布数据。
https://github.com/Imroy/pubsubclient
使用以下链接可以更加熟悉MQTT协议
https://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt
您可以使用MQTTfx桌面应用程序从NodeMcu(ESP8266)发送和接收数据。