ESP8266-01和IOT的GPIOS ||探索ESP8266:第3部分

323.

3.

1

简介:扩展ESP8266-01和IOT的GPIOS ||探索ESP8266:第3部分

关于:电子爱好者:喜欢探索应用电子产品和嵌入式系统的领域,激动人员贡献和分享创意。绿色能源爱好者

大家好!这种指示器恰好是我的ESP系列的第3部分,我继续尝试并探索ESP 8266-01板的各种功能。在该系列的第一部分和第二部分中,我提到了该小板的精彩能力来支持I2C通信,并且还使用多个I2C设备界面。

您可以在上一个部分中阅读有关这些功能的更多信息:

第1部分:https://www.sledutah.com/i2c-with-the-esp8266 ...

第2部分:https://www.sledutah.com/esp8266-01-with-mult ...

在该系列的这一部分,我们将展望扩展ESP8266的GPIO引脚,并使用物联网控制引脚!

对于IOT集成,我们将使用Blynk应用程序,这非常简单地与IOT项目集成。

让我们联系这个指示!


第1步:GPIO扩展器

PCF8574是一种非常流行的基于I2C的GPIO扩展器,它有2个引脚来控制I2C地址和8个GPIO引脚,当然可以配置为输入或输出。这也是通过I2C连接的16乘2个LCD模块中使用的芯片。

自从我们知道ESP8266模块支持I2C,这芯片是扩展我的ESP-O-One Loard的GPIO的完美选择。

如果您想知道,这款ESP-O-One Lobs是什么,它是我的esp8266 01 WiFi模块的定制开发板。

您可以在此说明中查看更多有关此定制板的信息:https://www.sledutah.com/esp-oone-making-您...

返回芯片,您有3个引脚A0,A1和A2,可用于设置特定芯片的I2C地址。由于芯片附带可编程地址特征,我们可以基本上可以基于8个此类芯片基于提供给3引脚的电压,我们可以通过I2C单独访问64个GPIO引脚。

我还附上了这个芯片的数据表,以便准备好参考

第2步:制作第一路:LED图案

在上一步中讨论了基于I2C的I / O扩展器的基础知识。现在是时候测试理论并将一些LED挂钩到IC的8 I / O引脚。自然所有这8个引脚将被声明为输出,因为它们将切换LED。

因此,我们在面包板上进行基本连接,并将10K拉动10K向上拉动IC的SDA和SCL引脚。

我的面包板设置结果表明,因为我所做的esp-o-One的电路板,我被从ESP 8266的麻烦保存了,因为我制作了ESP-O-One的电路板,它具有用于VCC,地面,GPIO 0和GPIO2的直接访问引脚。

第3步:编码序列

对于第一个实验,我们将以顺序方式闪烁连接到I / O端口的8个LED。

可以将其简化为以下步骤:

  1. 初始化PCF8574和线路库
  2. 将所有8个引脚声明为输出。
  3. 创建函数以顺序闪烁LED并在循环功能中连续调用它。

由于我们可以通过我们可以在线社区上网的简化库,可以轻松实现PCF8574。

图书馆的链接:https://github.com/xreef/pcf8574_library.

现在,由于引脚标记为P0,P1等而不是仅为数值样式,我已在数组中声明引脚并使用用于循环以将每个引脚配置为输出。此方法为同一目的节省了很多重复编码。接下来,我们声明将其0x20以十六进制分配为0x20,在我们的情况下,A1和A2接地。您可以参考上一步中的图表,以了解地址的想法。

接下来,GPIO 0和GPIO 2引脚被声明为CACK和WIRE中的SDA .Begin()函数。

循环部分非常简单,它呼叫所述模式无休止地切换PCF8574的每个引脚,为我们提供我们所需的模式。

在此步骤中,代码与少量其他模式相连。

第4步:下一步:添加IOT功能

看到通过ESP板精美地显示LED序列非常有意思。下一步是将IoT功能包含在我们的项目中。为此,我们将使用Blynk IoT平台,因为它非常易于使用和与包括ESP和Arduino板的项目集成。

这里的计划是在Blynk应用程序上使用滑块功能来控制LED模式工作的延迟或速度。更改滑块位置相应地改变图案速度。

此处的代码可以分解为以下步骤:

  1. 导入Blynk库
  2. 提供WiFi凭据和身份验证令牌
  3. 初始化blynk.run()函数并使用虚拟引脚连接到滑块作为输入
  4. 使用滑块位置返回的值操纵延迟。

在Blynk应用程序上创建项目后,我们初始化一个滑块功能,该功能链接到虚拟引脚0,并返回0到5范围的值。

我们定义blynk.write()函数以读取V0引脚返回的数字。此函数由闪烁的fucntion内部调用,因此它已在循环函数之外定义。

现在基于滑块位置,我们使用一系列If else语句来改变模式的延迟。

您可以自由地使用我的代码并了解工作。

第5步:添加更多功能

我能够通过Blynk应用程序成功控制LED模式的速度。在脑海中的下一件事是控制速度,并用应用程序切换不同的模式。

这里的想法是使用4个按钮来在4个不同的模式和滑块之间切换,以控制模式显示的速度。

所以代码可以分解到最后一个代码,只有开始是按钮的逻辑

  1. 将虚拟引脚分配给每个按钮
  2. 使用blynk.write()对于每个虚拟引脚以更改变量的值。
  3. 在循环部分中,检查此变量的值并调用相应的函数

代码正如往常所附加的概念

第6步:结论

它是在ESP 8266上实施IOT的成功项目,并使用流行的PCF8574 IC扩展GPIO。

我希望您喜欢这种指示序列探索和试验ESP8266的隐藏功能。

随时分享评论部分的反馈和建议,我希望这篇文章对您有所帮助。

到那时,在下一个指导中见到你!

是第一个分享

    建议书

    • 微控制器比赛

      微控制器比赛
    • 自动化比赛

      自动化比赛
    • 让它发光比赛

      让它发光比赛

    讨论