电子说
概述
尽管ESP8266 WiFi模块的主要目的是将互联网连接引入我们的小型DIY项目,但我相信到目前为止我们还没有完全利用ESP8266 WiFi模块的功能,即一个真正的IoT(物联网)项目。
我想通过互联网实际控制ESP8266,让ESP8266项目更进一步。在这个过程中,我们将学习如何通过互联网控制连接到ESP8266 WiFi模块的一个GPIO引脚的LED(仅用于演示工作)来控制ESP8266,即ESP8266的另一个网络未连接到
这与WiFi控制的LED项目有什么不同?
非常好题。这个项目和早期的项目实际上有两个不同之处。第一个区别是ESP8266 WiFi模块是如何控制的。在之前的项目中,我通过WiFi网络控制ESP8266,即通过与ESP8266连接到同一网络的计算机或电话控制ESP8266。
来到这个项目,目的是是通过互联网控制ESP8266,即通过互联网连接从世界任何地方的计算机或电话控制。
第二个区别是ESP8266 WiFi模块的配置方式。如果你还记得,我特别提到ESP8266 WiFi模块必须用AT命令固件刷新,我们将通过上传到Arduino的程序控制ESP8266。
但是,在这个项目中,我将直接将代码上传到ESP8266 WiFi模块的ROM中(现有的程序或固件将被删除)。
现在我们已经看到了差异,让我们继续进行项目的电路图和电路设计。
电路图
以下电路用于通过互联网控制ESP8266。让我们先看一下这些组件,然后详细解释电路的设计。
下图显示了电路图中使用的ESP8266 WiFi模块的引脚。有关实际引脚图,请参阅开始使用ESP8266和ARDUINO 项目。
必需的组件
Arduino UNO(作为USB转串口转换器)
ESP8266(ESP-01)WiFi模块
滑动开关(SPDT开关)
按钮
1KΩ电阻(1/4瓦)
2.2KΩ电阻(1/4瓦)
330Ω电阻(1/4瓦)
LED
连接电线
迷你面包板
注意:
Arduino UNO用作USB转串口转换器。所以,我已经从Arduino UNO Board中移除了ATmega328p微控制器。如果您有专用的USB转串口转换器(USB转TTL),那么您将不需要Arduino。
此外,我已经制作了一个简单的ESP8266分线板一个名为 DIY PCB FOR ESP8266 的早期项目。它包含与ESP8266 WiFi模块相关的所有重要组件。我将在此项目中使用相同的电路板。
电路设计
将ESP8266的VCC和GND连接到Arduino的3.3V和GND。 CH_PD引脚也连接到3.3V电源。按钮连接在复位引脚和GND之间。
ESP8266 WiFi模块的TX引脚连接到Arduino的TX引脚,ESP8266的RX引脚连接到连接到Arduino的RX引脚,但通过一个由两个电阻(1KΩ和2.2KΩ)组成的分压器。
LED连接到ESP8266的GPIO2引脚。最后,GPIO0引脚连接到SPDT开关的极点(滑动开关的中心端子)。开关的一个投射端子连接到GND,另一个投射端子保持打开,但可以用于GPIO连接。
代码
必须将以下程序上传到ESP8266 WiFi模块。它将设置WiFi连接并创建一个简单的HTML页面,可以使用ESP8266的IP地址进行访问。
注意:
在将代码上传到ESP8266之前,请确保在Arduino Boards部分中选择了“Generic ESP8266 Module”。
有关如何将程序上传到ESP8266的更多信息,请参阅ESP8266和Arduino项目入门。
在代码中输入WiFi网络的详细信息。
我已将ESP8266 WiFi模块的静态IP地址分配为“192.168.1.254”。在确认没有其他具有此IP地址的设备后,我选择了此地址。分配静态IP地址时,请确保相同。
除静态IP地址外,还必须提供其他信息,如默认网关和子网掩码。您可以通过在Windows的命令提示符下键入“ipconfig”来找到它。
工作
要上传代码,将GPIO0引脚滑动到编程模式(将GPIO0连接到GND),然后按RESET开关。在Arduino IDE中选择正确的板和端口后,上传代码。
上传代码后,将开关滑动到正常模式并按一下RESET按钮。打开串行监视器。在那里,您可以看到WiFi连接的详细信息。
您还可以看到ESP8266 WiFi模块的IP地址。由于我分配了一个静态IP地址,我会得到相同的。如果您已选择不分配静态IP地址,则使用路由器分配的地址。
在代码中,我在端口255创建了服务器。所以,服务器的URL将是http://192.168.1.254:255 。
在连接到同一WiFi网络的计算机或手机中打开网络浏览器并输入以上内容提到的URL。将打开一个简单的HTML页面,其中包含少量文本和链接。下图是已打开URL的手机的屏幕截图。
您可以点击指向的特定链接在本地控制LED,即在WiFi网络内。
如何通过互联网控制ESP8266?
现在是通过互联网控制ESP8266 WiFi模块的技巧部分。有两种方法可以实现这一目标。一种方法是使用端口转发,我将在此项目中使用,另一种方法是使用专用的远程服务器,如ThingSpeak或aREST。
我已经设置我的ESP8266 WiFi模块的静态IP地址,下一步是继续进行端口转发。
从任何浏览器打开路由器页面并使用路由器登录详细信息登录。转到路由器的Port Forwarding页面(取决于路由器,在我的情况下是我的WAN设置)。
启用端口转发并提供本地服务器IP地址等必要的详细信息( ESP8266的静态IP地址),端口号等,并保存设置。
现在,转到具有高级安全设置的Windows防火墙并添加新的入站规则。选择“端口”的规则类型并指定端口号。
打开任何Web浏览器并搜索“我的IP地址是什么”。它会生成路由器的WAN IP地址。请记下来。
现在,从另一台计算机(任何未连接到与ESP8266相同的WiFi网络的计算机),键入您刚才记下的IP地址端口号。例如,如果您的IP地址是183.92.192.58且端口号是255,则在任何Web浏览器中键入“183.92.192.58:255”。您现在将获得用于控制LED的HTML页面。
重要说明:
建议不要使用端口转发,因为它会将计算机打开到外部,并且很容易受到病毒或恶意软件的攻击。《/span》
此外,还有许多ISP(Internet服务提供商)不允许端口转发。
另一种方法是使用ThingSpeak或aREST等专用安全服务器。
下一个项目,我将向您展示如何使用其中一种服务从互联网上控制ESP8266。
全部0条评论
快来发表一下你的评论吧 !