有人愿意帮我解决这个问题吗?
如何从不同网络连接/控制Nodemcu esp8266 wi-fi模块,以便从任何家庭/房屋外部控制物联网设备?
我正在为物联网家庭自动化使用的NodeMCU ESP8266存在来自不同网络的互联网连接问题。
实际上,在一个类项目的案例中,我已经使用了互联网上的一些代码(也复制了一些代码,并从一些网站获得了帮助),也使用了Blynk来控制我的ESP8266。但我不想做一款个人应用,通过这款应用,我可以在家外控制我的设备。
我已经连接了我的WI-FI路由器和我的家庭网络!!它工作得很好,但我不知道如何在不同的网络上做同样的事情。
如果可能的话,我想任何人都可以帮助我……
谢谢。献给所有人。
发布于 2019-03-22 01:15:26
这个问题已经在Arduino和Internet of Things StackExchange站点上得到了更详细的回答。总而言之:
为了安全起见,很难启动到另一个本地网络上的设备的连接。WiFi网络上的设备受到防火墙的保护,使其不受互联网的影响,防火墙通常配置为返回对设备发送的请求的响应,但会阻止所有未经请求的消息。即使防火墙允许给定端口上的传入连接,也需要“端口转发”或其他自定义配置,以使意外消息到达网络上的多个设备之一(这些设备通常共享网络的同一公共IP地址,并且外部系统的消息在没有路由器转发的情况下无法到达正确的本地地址)。
暴露于这种未经请求的请求的任何设备都有被攻击的风险,并可能对网络上的其他系统构成风险。因此,更安全的做法是让防火墙保持不变,而不是让设备订阅外部for服务器,该服务器充当传入消息的邮箱。然后,您可以从任何有internet连接的地方向服务器发送请求,服务器将存储这些请求,并在ESP请求时将它们转发到ESP8266。在您的ESP8266上使用服务器端代理程序(如Mosquitto )和客户端(如PubSubClient )的MQTT协议可以适用于这种发布-订阅模型,并且工具站点和堆栈站点上都提供了MQTT教程和解释。
发布于 2019-04-04 17:36:42
您可以使用Arduino IDE对ESP8266设备进行编程。
https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/
在Arduino IDE中安装ESP8266之后。您需要将ESP8266连接到WiFi路由器(已连接internet )。一旦您的设备连接到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)发送和接收数据。
https://stackoverflow.com/questions/55275261
复制相似问题