怎样用Internet控制ESP8266

电子说

1.2w人已加入

描述

概述

尽管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

下图显示了电路图中使用的ESP8266 WiFi模块的引脚。有关实际引脚图,请参阅开始使用ESP8266和ARDUINO 项目。

ESP8266

必需的组件

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。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分