简介:扩展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。
可以将其简化为以下步骤:
- 初始化PCF8574和线路库
- 将所有8个引脚声明为输出。
- 创建函数以顺序闪烁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模式工作的延迟或速度。更改滑块位置相应地改变图案速度。
此处的代码可以分解为以下步骤:
- 导入Blynk库
- 提供WiFi凭据和身份验证令牌
- 初始化blynk.run()函数并使用虚拟引脚连接到滑块作为输入
- 使用滑块位置返回的值操纵延迟。
在Blynk应用程序上创建项目后,我们初始化一个滑块功能,该功能链接到虚拟引脚0,并返回0到5范围的值。
我们定义blynk.write()函数以读取V0引脚返回的数字。此函数由闪烁的fucntion内部调用,因此它已在循环函数之外定义。
现在基于滑块位置,我们使用一系列If else语句来改变模式的延迟。
您可以自由地使用我的代码并了解工作。
第5步:添加更多功能
我能够通过Blynk应用程序成功控制LED模式的速度。在脑海中的下一件事是控制速度,并用应用程序切换不同的模式。
这里的想法是使用4个按钮来在4个不同的模式和滑块之间切换,以控制模式显示的速度。
所以代码可以分解到最后一个代码,只有开始是按钮的逻辑
- 将虚拟引脚分配给每个按钮
- 使用blynk.write()对于每个虚拟引脚以更改变量的值。
- 在循环部分中,检查此变量的值并调用相应的函数
代码正如往常所附加的概念
第6步:结论
它是在ESP 8266上实施IOT的成功项目,并使用流行的PCF8574 IC扩展GPIO。
我希望您喜欢这种指示序列探索和试验ESP8266的隐藏功能。
随时分享评论部分的反馈和建议,我希望这篇文章对您有所帮助。
到那时,在下一个指导中见到你!
讨论
3天前第2步
谢谢亲