物联网和家庭自动化确实是最近几天的热门话题。我们自己构建可以与万维网通信并可以从世界任何地方访问的东西,听起来真的很酷,不是吗?
可是等等!!!这听起来也很复杂???….
对我来说也是如此,我认为构建可以与互联网交互的事物将花费大量的时间和技巧。不,我完全错了,这要归功于Espressif Systems的出色模块ESP8266。现在,您可以借助此模块轻松地为物联网项目打开大门。只要我们遵循正确的步骤,这个低成本,小巧的模块就可以创造奇迹,并且非常简单易用。
本教程旨在向您介绍此ESP8266-01模块, 并帮助您入门。也许,您已经带来了模块并在尝试使用它时卡住了。然后,并非只有您一个人担心,许多人发现很难开始使用该模块,因为该模块没有适当的指导或文档。这就是制作本教程的原因。请按照此处的说明进行操作,您应该能够立即启动并运行ESP8266-01模块,在这里,我们将使用FTDI USB转TTL串行适配器模块对ESP8266进行编程。在教程末尾查看详细的视频。
在进入本主题之前,让我们介绍一下ESP8266-01 Module的一些基础知识。
什么是ESP8266?
大多数人将ESP8266称为WIFI模块,但实际上它是一个微控制器。ESP8266是由总部位于上海的Espressif Systems开发的微控制器的名称。该微控制器具有执行WIFI相关活动的能力,因此被广泛用作WIFI模块。
ESP8266模块有多种类型,从ESP8266-01到ESP8266-12。我们在本教程中使用的是ESP8266-01,因为它是最便宜的一种,并且容易获得。但是,所有ESP模块都只有一种ESP处理器,不同之处仅在于所使用的分线器类型。ESP8266-01的分线板将仅具有2个GPIO引脚,而在其他板中则更高。
下表给出了模块的完整规格
电压 |
3.3伏 |
目前的消费 |
10uA-170毫安 |
闪烁期间的最大电流消耗 |
800毫安 |
快闪记忆体 |
16MB(正常为512K) |
处理器 |
Tensilica L106 32位 |
处理器速度 |
80-160MHz的 |
内存 |
32K + 80K |
通用输入输出 |
17(但大多数是多路复用的) |
模数转换器 |
1(10位) |
最大TCP连接数 |
5 |
好的,令规范感到惊讶的是,是的,ESP8266模块带有一个ADC转换器,在为设备闪烁时确实会消耗0.8A的很高电流。
还请检查我们基于ESP8266的各种有趣的IoT项目。
WiFi理论基础:
传输控制协议(TCP),互联网协议(IP),用户数据报协议(UDP),访问点(AP),站(Sta),服务集标识符(SSID),应用程序编程接口(API),Web服务器… 。
以上所有条款对您有意义吗?
如是。然后,BINGO您可以跳到这一部分,然后转到下一部分。
如果不。然后,您一定是众多电气专业学生中的一员,就像我刚被介绍所有这些东西时所做的那样,他们眨了眨眼大部分这些术语。因此,让我们快速浏览所有这些术语,因为只有这样我们才能进入物联网世界。
传输控制协议(TCP):
我们大多数人都知道这意味着什么。是的,这些是互联网工作所依据的一组规则。由于ESP8266具有建立WIFI连接的功能。在较高级别,Wi-Fi可以通过无线链路参与TCP / IP连接。您可以使ESP在TCP / IP协议或UDP协议上运行。
用户数据报协议(UDP):
UDP也是互联网协议的另一种类型。这种通信比TCP快,但准确性较差。原因是TCP在其通信期间使用了确认,而UDP没有。TCP主要用于要求高可靠性的网络中。UDP用于速度优先于可靠性的地方。例如,在视频会议中使用UDP,因为即使不传输某些像素,它也不会对视频质量造成太大影响,但是速度非常重要。
ESP8266的大多数项目和代码都围绕TCP / IP运行,而UDP则受其影响最小。
接入点(AP)和站(STA):
一旦开始使用ESP模块,您将经常遇到这两个术语。假设您和您的朋友想在智能手机上浏览互联网,但由于他没有活动的互联网连接,因此您决定打开热点,然后您的朋友连接到该热点。在这里,您与Internet建立连接的电话是接入点(AP),而您的朋友在使用Internet的电话称为站点(STA)。
ESP8266模块可以用在AP模式,STA模式或STA模式和AP模式(组合)三种模式下。
服务集标识符(SSID):
这是一个简单的术语。几乎我们所有人都使用过WIFI。Wi-Fi网络的名称称为其SSID。当我们有一个站点要连接的多个访问点时,该站点应该知道它应该连接到哪个访问点,因此每个访问点(AP)都有一个标识,称为SSID。
应用程序编程接口(API):
简而言之,API是使您接受请求,对其进行处理并向您的系统返回所需结果的使者。我们在互联网上进行的大多数活动都使用API,例如当您预订机票,进行在线购买等时。每个网站都将您链接到API,API在其中完成了部分工作,例如注册,付款等。那里。
ESP8266使用API与互联网进行通信。例如,如果它想知道时间,气候或其应以相应网站的API形式请求的任何内容。该网站将收到请求,并将所需结果返回给我们的ESP模块。
网络服务器:
Web服务器是负责显示网站内容的东西。该特定网站的所有内容将被加载到其Web服务器中。有些专用计算机的工作仅是充当Web服务器。我们还可以将ESP8266编程为网络服务器,并从世界任何地方连接到它。
好的,这足以让我们开始。现在,让我们动手使用硬件。
使用ESP8266进行编程的类型:
ESP8266模块有两种工作方式。本教程将帮助您入门。一种方法是使用AT命令。另一种方法是使用Arduino IDE。让我们了解它的含义。
工厂出厂的所有ESP8266模块都将加载默认固件(SDK + API)。该固件将帮助您通过AT指令对ESP8266模块进行编程。
另一种方法是使用Arduino IDE(不需要板)及其库直接对ESP8266模块进行编程。所有项目都可以通过两种方法完成。但是,如果您开始使用Arduino IDE对ESP8266进行编程,则可能无法使用AT命令,因为默认SDK可能已损坏。在这种情况下,您必须使用默认设置刷新ESP。我们将在另一个教程中进行介绍。
编程ESP8266模块的硬件:
ESP8266是一个8端子模块。相同的引脚如下所示。
不幸的是,该模块不是面包板友好的,因此我们不能将其直接安装到面包板上。同样与Arduino不同的是,它没有内置的USB转串口驱动程序。因此,我们必须使用“ FTDI USB转TTL串行适配器模块”与之通信。确保FTDI板也可以在3.3V电压下工作;下面显示了我们在本教程中使用的那个。
现在,我们知道应该用3.3V为ESP8266供电。但是电流消耗为0.8A,因此如果使用我们的FTDI突破板供电,它可能无法按预期工作。因此,我们必须构建自己的供电电路。在这里,我们将LM317用于供电;有关制造完整硬件的详细信息,请参见后面的部分。
所需材料:
- 穿孔板
- ESP8266-01
- FTDI突破委员会
- LM317
- 0.1uf电容器
- 10uf电容器
- 桶杰克
- Bergstik男性和女性
- 按钮
- 连接线
- 12V适配器为电路板供电。
电路说明:
该板的原理图如下所示
有些人可能已经尝试过直接通过FTDI为ESP供电并使其正常工作,但是以下是使用很少的其他组件来构建自己的板的原因:
- 只有很少的FTDI板可以为ESP模块提供足够的电流。在闪烁期间,很少有ESP模块会比其他模块消耗大电流。因此,拥有自己的电源总是安全的,并且将电源电路集成在点板而不是面包板上会更容易。
- 在上传代码之前,我们应该始终重置ESP模块,建立自己的开发板将帮助我们轻松地重置模块。我们使用按钮来重置ESP8266。
- GPIO0引脚在使用Arduino进行编程时必须接地,而在使用AT命令时必须保持自由状态,如果我们构建自己的电路板,则可以轻松切换该引脚。我们已经使用跳线在AT命令模式和Arduino IDE编程模式之间进行切换。
- 所有编程均使用串行通信完成,如果使用试验板,则端子松动可能会导致一半错误,并迫使我们使模块重新闪烁。
话虽如此,您可以选择使用面包板还是制作自己的板来对模块进行编程。如果仍要使用面包板,则可以使用面包板构建与上述相同的电路。只是外观会有所不同,本教程中的所有其他说明将应用相同。
对ESP8266进行编程的构建板:
因此,在这里我们正在构建用于对ESP8266模块进行编程的电路板,该模块具有自己的供电电路来为ESP8266供电。
如前所述,我们的模块在编程时将需要约800mA的电流。因此,由于LM317的源极电流接近1.2A,因此我们使用LM317可变电压调节器构建了自己的电源模块。LM317的输入电压将为12V,这将使用12V 2A壁挂适配器提供。LM317的输出将通过使用220ohm和360ohm的电阻恒定地调节到3.3V。另请使用LM317检查我们的电池充电器电路,以了解有关LM317的更多信息。
LM317输出电压的计算公式如下:
Vout = 1.25 *(1+(R2 / R1))
其中,R1为220ohm,R2为360ohm。
ESP8266模块按照下表所示的引脚进行连接。
销号 |
ESP引脚名称 |
连接到 |
1个 |
地面 |
FTDI模块的接地 |
2 |
GPIO2 |
保持自由或连接至冰棍以备将来使用 |
3 |
GPIO0 |
切换以在编程模式之间切换 |
4 |
接收 |
FTDI模块的发送 |
5 |
Tx |
FTDI模块的接收 |
6 |
CH_PH |
来自LM317的3.3V |
7 |
重启 |
按钮重置模块 |
8 |
Vcc |
来自LM317的3.3V |
为了轻松地在AT命令模式和Arduino编程模式之间切换,我放置了一个开关(跳线),当使用Arduino IDE时该开关会将GPIO 0接地,而在使用AT命令时将其悬空。
有一个按钮,当按下按钮会重置ESP模块。只需通过按钮将ESP模块的RST引脚连接到接地轨即可。每次在对ESP模块进行编程之前,都应将其重置。
组装好电路后,其外观应如下所示。
我曾经使用过Perf板,但是如果您感兴趣的话,也可以使用面包板(如上所述)。下面的视频显示了完整的构建和说明。
一旦完成连接。在没有ESP和FTDI电路板的情况下为电路板加电,并检查ESP模块位置的Vcc和Ground端子上的3.3V是否正确。现在,确保FTDI板处于3.3V模式,并将FTDI和ESP模块连接至板。
打开适配器电源,然后将其连接到板上,ESP模块应以红色点亮。
然后使用微型USB到USB电缆将FTDI板连接到计算机,并导航到计算机上的设备管理器,您应该会发现FTDI板已连接到COM端口,如下所示:
现在是时候开始动手编写ESP8266模块了。您可以先使用AT命令,然后再使用Arduino IDE。不要忘记查看我们其他基于ESP8266的项目。