当前位置:首页 > 物联网 > IoT设计分享
[导读]NeoPixel LED灯条是可编程的RGB LED灯条,可以编程生成任何所需的照明模式。NeoPixel可以在任何组合和亮度下产生多种颜色。它消耗更少的电力,可以通过编程单独解决。在本项目中,我们将学习使用ESP32和Blynk应用程序控制WS2812 NeoPixel 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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭