【问题标题】:Internet connection problem from different network for NodeMCU ESP8266 which I am using for IOT home automation我用于物联网家庭自动化的 NodeMCU ESP8266 来自不同网络的 Internet 连接问题
【发布时间】:2019-08-12 00:03:59
【问题描述】:

有人愿意帮我解决这个问题吗?

如何连接/控制来自不同网络的 Nodemcu esp8266 wi-fi 模块,以便从任何家庭/房屋外部控制物联网设备?

我用于物联网家庭自动化的 NodeMCU ESP8266 来自不同网络的 Internet 连接问题。

实际上,在课堂项目的情况下,我使用了一些来自互联网的代码(也复制了一些代码并从一些网站获得了帮助),还使用了 Blynk 来控制我的 ESP8266。 但我不想制作一个个人应用程序,通过该应用程序我可以在家外控制我的设备。

我已经通过我的家庭网络连接了我的 WI-FI 路由器!! 效果很好, 但我不知道如何从不同的网络做同样的事情。

如果可能的话,我想任何人都可以帮助我......

谢谢。 给大家。

【问题讨论】:

标签: iot esp8266 nodemcu


【解决方案1】:

ArduinoInternet of Things StackExchange 站点上已对此问题进行了更详细的解答。总结:

为了安全起见,很难开始连接到另一个本地网络上的设备。 WiFi网络上的设备受到防火墙的保护,防火墙通常配置为返回对设备发送的请求的响应,但阻止所有未经请求的消息。即使防火墙允许给定端口上的传入连接,也需要“端口转发”或其他自定义配置才能使意外消息到达网络上的多个设备之一(这些设备通常共享相同的网络公共 IP 地址和外部系统的消息在没有路由器转发的情况下无法到达正确的本地地址)。

任何暴露于此类未经请求的请求的设备都有受到攻击的风险,并且可能对网络上的其他系统构成风险。因此,让防火墙保持不变并让设备订阅外部网络服务器会更安全,该服务器充当传入消息的邮箱。然后,您可以从任何具有互联网连接的服务器向服务器发送请求,服务器将存储它们并在 ESP 询问时将它们中继到 ESP8266。在 ESP8266 上使用像 Mosquitto 这样的服务器端代理程序和像 PubSubClient 这样的客户端的 MQTT 协议可以适用于这种发布-订阅模型,并且工具站点和 Stack 站点都提供 MQTT 教程和解释。

【讨论】:

    【解决方案2】:

    您可以使用 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) 发送和接收数据。

    MQTT basic diagram for understanding

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 2017-01-30
      相关资源
      最近更新 更多