利用Blynk应用程序用ESP32控制WS2812新像素LED
扫描二维码
随时随地手机看文章
NeoPixel LED灯条是可编程的RGB LED灯条,可以编程生成任何所需的照明模式。NeoPixel可以在任何组合和亮度下产生多种颜色。它消耗更少的电力,可以通过编程单独解决。在本项目中,我们将学习使用ESP32和Blynk应用程序控制WS2812 NeoPixel LED条。
组件的要求
•25个LED WS2812B新像素LED带
•5V, 2amp电源
•ESP32开发板
•电路试验板
•跳线
WS2812 LED带工作
WS2812 LED灯条是一种可寻址的柔性灯条,在增加美丽的照明效果方面非常有用。这些LED灯带由5050 RGB LED供电,其中内置WS2812 LED驱动器。每个LED消耗60mA电流,可以从5V直流电源供电。它有一个单一的输入数据引脚,可以从微控制器的数字引脚馈送。
特点:
•可单独寻址的RGB led
•每像素1680万色
•单线数字控制
•工作电压:5V DC
•电流要求:每个LED 60mA
•柔性LED结构
•5050 RGB LED与WS2812驱动程序
线路图
WS2812 ESP32的电路图如下:
Blynk应用程序设置与ESP32的新像素
Blynk是一个可以在Android和IOS设备上运行的应用程序,可以使用我们的智能手机控制任何物联网设备。我们可以创建自己的图形用户界面来设计物联网应用程序GUI。我们以前在ESP32上使用Blynk,并使用Blynk构建了许多其他基于物联网的项目。
在安装之前,从Google Play商店下载Blynk应用程序(IOS用户可以从Apple store下载),并使用您的电子邮件id和密码注册。
创建一个新项目:
安装成功后,打开应用程序,点击“新建项目”。然后它将弹出一个新屏幕,我们需要在其中设置项目名称、电路板和连接类型等参数。本项目选择设备为“ESP32 Dev Board”,连接类型为“Wi-Fi”,点击“Create”。
在成功创建项目之后,我们将在注册邮件中获得一个身份验证ID。保存身份验证ID以供将来参考。
创建GUI:
在Blynk中打开项目,单击“+”符号,它将显示许多小部件。在我们的例子中,我们需要一个RGB颜色选择器,它被列为“zeRGBa”和一个按钮,将用于改变LED条的操作模式。
在Widgets中设置参数:
将小部件拖到项目后,现在设置用于将控件值的颜色和模式发送到ESP32的参数。
单击ZeRGBa,然后我们将得到一个名为ZeRGBa设置的屏幕。然后将输出选项设置为“合并”,并将引脚设置为“V2”,如下图所示。同样,在按钮设置中,将输出引脚设置为“V3”,如下图所示。
在Arduino IDE中安装ESP32板
在将代码上传到ESP32之前,我们需要在Arduino IDE中安装板,如果您之前没有这样做的话。ESP32单板的安装步骤如下:
1. 打开Arduino IDE,进入File> Preferences
2. 在“附加板管理器URL”字段中键入,然后单击“确定”。如果在该字段中已经有其他url,则使用逗号(“,”)分隔。
3. 现在转到Tools > Board > Boards Manager。在“单板管理器”窗口的搜索框中输入ESP32,选择espressif系统最新版本的ESP32单板,单击“安装”。
4. 安装完成后,进入“Tools ->Board ->”,选择“ESP32 Dev Module”。现在您可以使用Arduino IDE对ESP32进行编程。
ESP32新像素LED条带控制代码
ESP32 NeoPixel的完整代码在本教程的末尾给出。代码的逐步解释如下所示。
首先,将所有必需的库包含到代码中。打开Arduino IDE,然后转到选项卡Sketch并单击选项Include Library-> Manage Libraries。在搜索框中搜索“Blynk”,下载并安装ESP32版本的Blynk软件包。
这里“Adafruit_NeoPixel.h”用于控制RGB LED条。要包含Adafruit_NeoPixel.h库,请从此链接下载库并使用“include ZIP library”选项包含它。
然后定义LED条中使用的LED的数量,以及用于控制LED参数的PIN号。
在此之后,声明NeoPixel strip对象,其中参数1是NeoPixel strip中的像素数,参数2是使用的ESP32 PIN号,参数3是像素类型标志。
然后,定义网络凭据,如网络SSID和密码。编写您自己的网络凭据来代替ssid[]并传递一个[]数组。在auth[]数组中,写入我们之前保存的Blynk身份验证ID。
在setup()中,串行通信使用函数Serial.begin初始化。在这里,Blynk使用Blynk连接。使用pixels.begin()初始化NeoPixel LED条。
在infinite loop()中,我们使用了blynk .run(),它检查来自blynk GUI的传入命令并相应地执行操作。
这里写入BLYNK_WRITE函数来检查V3和V2虚拟终端的传入数据,然后将它们分配到三个不同的变量中。这里的变量r, g, b表示所选颜色的红,绿,蓝代码的值。然后将这些值发送给用于驱动LED条的函数static1。
Static1()函数用于驱动不同颜色的LED条。在这里,像素。setPixelColor用于按照我们所需的颜色驱动LED。
Animation1()函数用于使用led运行自定义动画。不同的动画可以根据用户的选择制作,如下图所示。
用ESP32测试NeoPixel
硬件连接成功完成后,在ESP32中上传完整的代码,您将根据您的程序找到照明的NeoPixels。
本文编译自iotdesignpro