带ESP8266-01的I2C!?||探索ESP8266:第1部分

6,161

100

11

简介:I2C与ESP8266-01!?||探索ESP8266:第1部分

关于:电子爱好者:热爱探索应用电子和嵌入式系统领域,有助于贡献和分享创意。绿色能源爱好者

大家好!有了这个指导,我将写作和记录一系列的项目提到和探索各种隐藏(相当未开发)的微型ESP8266-01无线模块的功能。

您知道ESP8266-01支持I2C通信吗?是的,这是真的,这个小模块躺在无人看管的一个角落,你的电子工作台有能力支持这个惊人的通信协议。该模块主要用于使用模块的Tx和Rx引脚的串行通信来连接和提供到项目的WiFi连接。但实际上,这个廉价的模块本身就是一个功能非常强大的微控制器,也可以作为独立项目使用。

在本教程中,我们将探讨I2C通信协议,并与OLED显示器接口,以显示一些动画和自定义数据。

So without any further delay let's jump into some theory and finally a practical application showing the hidden talents of this little buddy!

步骤1:首先:检查数据表

这个main microcontroller of the ESP8266-01 module is Espressif'sESP8266EX型与arduino上更流行的微控制器相比,它的功能相当强大。

这个小东西有以下规格:

  1. CPU:Tensilica L106 32位处理器
  2. 1MB of programmable memory!
  3. 广泛的通信协议,如:I2S、I2C、UART和SPI
  4. It also has a PWM feature and interestingly also an ADC!

Okay so enough of good talks.Does this acually support I2C? Yes,and a quick look through the data sheet confirms this feature as well.

In this step I have attached the snapshots of the sections of datasheet that clearly mentions the communication capability and the pins required for I2C connections.

I2C is a very powerful communication protocol and used just 2 pins to communicate:

  1. 这个SDA公司(这是数据管脚)
  2. 这个SCL(或SCK在某些情况下,这是时钟引脚)

通过I2C连接的系统具有主从式通信拓扑结构。在这里,我们可以有多个主设备和多个从设备以及。但是主设备如何与特定的从设备进行通信呢?在这里,每个设备都有自己的唯一地址,可以用来访问(或与特定设备通信)。该设备可以是输出设备,如非常流行的OLED屏幕,也可以是输入设备,如MPU6050或BMP180传感器。

回到ESP8266,我附上了数据表中提到I2C细节部分的快照。这里最重要的是SDA公司或者数据管脚实际上是GPIO2管脚,该管脚位于WiFi模块的管脚中。那SCL针呢?好吧,我们只剩下GPIO 0引脚作为可用引脚,所以我们可以在编码过程中将其分配为SCL引脚。

我还附上了数据表供您参考

步骤2:连接模块

我们现在对I2C的工作原理有了基本的了解,并且有可能在我们的ESP8266模块中实现同样的功能。在此步骤中,您可以看到ESP8266和OLED显示屏的基本连接概述。正如您所看到的,这两个模块都有一个共同的电源,理想情况下最大应为3.3伏到2.7伏,因为ESP是一个3.3伏兼容设备,任何更高的电压都可能损坏电路板。但我已经测试了这个电路板,并在5伏的逻辑工作,虽然它变得更热,所以让我们不要冒任何风险,坚持3.3伏的电源。这里GPIO2与SDA相连,GOIP0与SCK相连。Chu PD与Vcc相连,以启用模块的功能。

Step 3: Breadboard Setup

现在要测试这个设置,我以前做了一些mod和适配器,这样我就可以很容易地编程并将ESP8266固定到试验板上。你知道,ESP8266不是一个面包板友好的模块,所以我做了一个小适配器,让我插入面包板上最重要的引脚和访问它方便。

对此我有一个指导:

案板友好ESP8266-01突破董事会://www.sledutah.com/Breadboard-Friendly-。。。

你可以通过这个指令,使自己的小适配器在很短的时间。

Next up is programming: For this I have used the CH340G USB to serial converter which can communicate with the ESP via serial interface and upload codes accordingly.

我也设置了一个bradboard,你也可以买那些现成的CH340编程器板,你可以直接插入ESP进行编程。我个人希望他们都在一个试验板上,所以我做了我的选择。

在第一幅图中,您可以看到ESP的设置以及编程器的设置。

在下一张图中,您可以看到我已经将ESP适配器下面的2条电线焊接到了GPIO引脚上,GPIO引脚连接到OLED显示器的SDA和SCL。我已经加载了一个动画代码,它成功地显示这些完美无瑕。

你问的密码呢?好吧,这是下一步

第四步:编码。。

上传一些测试代码是下一步要做的事情,我想上传Adafruit OLED库提供的示例动画草图。

该库的链接是:https://github.com/adafruit/adafruit\u SSD1306

这个code definitely needs to be modified in order for the ESP to work and communicate with the OLED-Here in the code we also specify GPIO as the SCK pin.

下面是代码的简要摘要,供您参考也附在本步骤中。

  1. 导入用于初始化和设置OLED显示器的库
  2. 为I2C通信导入Wire库。
  3. 设置OLED的宽度和高度
  4. 将GPIO 0初始化为SDA引脚
  5. Specifying the OLED address and setting up the text size and colour of the display
  6. 代码的其余部分可以在Adafruit库示例中找到。我刚加了软管代码。

一切就绪后,现在我们必须选择适当的COM端口,并选择通用的ESP8266作为我们的目标董事会。你呢可以检查此步骤中的代码段。

第五步:让事情变得简单一点。。

为了使使用ESP8266-01更容易一点,我决定做一个类似于ESP8266-01的开发板。这个小板包括以下内容:

  1. USB到串行编程器
  2. 用于编程的microUSB端口
  3. A voltage regulator
  4. GPIO and power pins female header
  5. A switch to toggle between programming mode and running mode
  6. 指示数据通信的LED

有了这是更容易上传和测试程序,我做了这样一种方式,我可以直接插入到女性头OLED引脚!

我相信这将是非常有帮助的你,如果你想把这个很好,然后你猜对了,我有一个指导这也是:)

ESP-O-One:制作自己的ESP开发板://www.sledutah.com/ESP-O-One-Making-You。。。

Step 6: Final Words

呸!我觉得知道了这个很酷的功能,就可以用这个功能强大且极简的电路板打开很多可能性,因为我们知道很多传感器和设备都使用I2C通信。

你可以看到,我已经附加了OLED与我的开发板运行动画草图,我希望这些信息将有助于你在许多方面与这个板的实验。

Feel free to share your feedbacks and suggestions in the comment section below and do watch the video at the beginning of the tutorial so as to get detailed information about this project and while you are there, don't forget to give that video a like and even consider subscribing! that would be awesome.

I will be documenting the later stages of this project and other capabilities of the ESP boards as mentioned earlier. Thanks again for going through my instructable and have a good day!

一个人做了这个项目!

建议

  • Make it Glow Contest

    Make it Glow Contest
  • 第一次作家大赛

    第一次作家大赛
  • PCB Challenge

    PCB Challenge

11讨论

0
尼尔斯2U

三天前

很好的教程!
Yes, of course I2C has been around a while and lots of people have written about it....
我最近才偶然发现它,也对它能做些什么印象深刻——写了一篇教学文章提到它,仅仅是因为我想分享我的乐趣——没有先研究谁,什么,在哪里。。。。

你在报道这个话题方面做得确实好得多,报道得更详细。
因此,非常感谢您的出色工作!
我也很喜欢ESP-O-One,还有你的第二部分:-)

0
杰特拉莫托

4 days ago

感谢分享你的项目。顺便问一下,这个项目需要多大的内存?从512K到16MB有多个ESP8266-01可用。

0
gta18

4 days ago

谢谢分享!

0
乌萨瓦25

4天前回复

欢迎光临!

0
悸动

4 days ago

这是伟大的-我一直在考虑尝试ESP模块,所以这是非常有益的。谢谢!

0
乌萨瓦25

4天前回复

太好了!谢谢分享你的感受!

1
乌萨瓦25

回复16 days ago

谢谢你引起我的注意。事实上,我是自己发现这个特性的,直到我无意中发现了你的评论,并浏览了这篇文章,发现人们已经用一种更好的方式记录了它。总是有可能两个相似的东西可以礼貌地共存:)

0
约瑟帕拉齐兹

回复16 days ago

从我的角度看,你的指导是非常明确和良好的书面。同样的想法(不是你所说的两个不同的想法)可以用两种不同的方法来解释。这就是所有的教学内容:教学。这就是事实,只要你不假装是原作者,给他应得的荣誉。我不介意自己动手的家伙我是说不管你的消息来源是什么。或者你想让我们相信你自己在ESP8266上发现了I2C?

0
乌萨瓦25

11天前回复

完全同意。我想说的是,我已经阅读了数据表,然后实现了这个特性。直到我在你的评论中看到diyè的指导,我才看到。好吧,对于一个同时看到这两个指令的人来说,我似乎有点复制了这些概念,但事实并非如此。我继续用这个指导性的表格记录我的发现。相信我自己发现了这个功能,这取决于读者,我尊重:)

2
约瑟帕拉齐兹

回复16 days ago

It's not wiser who works harder, but who reads more.