Blynk使用NodeMCU控制WS2812新像素LED带
扫描二维码
随时随地手机看文章
led几乎用于所有的装饰照明,但它们大多数只产生一种颜色。因此,为了创造一个美丽的光模式,使用多色LED条,这不仅消耗更多的电力,而且难以管理。今天我们使用的是新一代LED- NeoPixel,它可以产生1680万种颜色。NeoPixels是可编程的,通过正确的编程,它可以创建许多美丽的照明模式。这里将使用NodeMCU和Blynk应用程序通过互联网控制NeoPixel LED条的颜色和亮度。Blynk是一个智能手机应用程序,使用它我们可以通过智能手机控制任何基于物联网的应用程序。
组件的要求
•WS2812b LED带- 1米
•5V, 2amp电源
•ESP8266 NodeMCU
•LED带状连接器
WS2812新像素LED带工作
WS2812 LED条是可寻址和可编程的柔性LED条,在创建定制照明效果方面非常有用。这些LED灯带由5050 RGB LED供电,其中内置WS2812 LED驱动器。每个LED消耗60mA电流,可以从5V直流电源供电。它有一个单一的输入数据引脚,可以从微控制器的数字引脚馈送。
特点:
•可单独寻址的RGB led
•每像素1680万色
•单线数字控制
•工作电压:5V DC
•电流要求:每个LED 60mA
•柔性LED结构
•5050 RGB LED与WS2812驱动程序
连接图:
NeoPixel NodeMCU的电路图如下:
下图显示了NeoPixel ESP8266的设置
用于控制新像素的Blynk应用程序设置
Blynk是一款运行在Android和IOS设备上的应用程序,可以使用智能手机控制任何基于物联网的应用程序。我们以前使用Blynk与NodeMCU和树莓派来控制LED,也使用Blynk应用程序建立一个气象站。它允许您为物联网应用程序创建图形用户界面。在这里,我们将设置Blynk应用程序,使用NodeMCU ESP8266通过Wi-Fi控制NeoPixel LED。
所以首先从Google Play商店下载并安装Blynk应用程序(IOS用户可以从App store下载),并使用您的电子邮件id和密码注册。
创建一个新项目:
安装成功后,打开应用程序,点击“新建项目”。然后它将弹出一个新屏幕,我们需要在其中设置项目名称、Board和连接类型等参数。对于这个NeoPixel ESP8266项目,选择设备为NodeMCU,连接类型为Wi-Fi,然后点击“创建”。
在成功创建项目之后,我们将在挂号邮件上获得一个身份验证ID。保存身份验证ID以供将来参考。
创建GUI:
在Blynk中打开项目,单击“+”符号来添加控件来控制NeoPixel。在我们的例子中,我们需要一个RGB颜色选择器,它被列为“zeRGBa”和一个滑块,将用于LED条的亮度控制。
在Widgets中设置参数:
在拖动小部件之后,它们现在设置用于将颜色和亮度值发送给NodeMCU的参数。
点击ZeRGBa,进入ZeRGBa设置,将输出选项设置为“合并”,将引脚设置为“V3”,如下图所示。类似地,在滑块设置中,将输出引脚设置为“V2”。
编程NodeMCU使用Wi-Fi控制NeoPixel
成功完成Blynk应用程序设置后,现在使用Arduino IDE在NodeMCU中上传代码。
要用Arduino IDE编程NodeMCU,请进入File - > preferences - >Settings。
在“附加板管理器URL”字段中输入,然后单击“确定”。
现在转到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中输入esp, esp8266将在下面列出。现在选择最新版本的电路板并单击install。
安装完成后,进入“工具>单板> NodeMCU 1.0(ESP-12E模块)”。现在您可以使用Arduino IDE对NodeMCU进行编程。
完整的代码连同视频在最后给出。代码的逐步解释如下所示。
首先,包括所有必需的库。打开Arduino IDE,然后转到选项卡Sketch并单击选项Include Library-> Manage Libraries。在搜索框中搜索Blynk,下载并安装ESP8266版本的Blynk软件包。
要包含FastLED.h库,请从这里下载库并使用include ZIP library选项包含它。
现在,在代码中定义所有参数,如使用的LED数量,LED类型和颜色顺序。另外,定义RGB LED的数据输入引脚连接的数据引脚D1。然后,在ssid[]中定义您的Wi-Fi用户名和密码,并传递一个数组[]。在auth[]数组中,写入我们之前保存的Blynk身份验证ID。
在setup()函数中,使用serial初始化串行通信。使用Blynk.begin开始并连接到Blynk云。另外,使用FastLED.addLeds设置LED的类型和数量。
在infinite loop()中,我们使用Blynk.run()检查来自Blynk GUI的传入命令并相应地执行操作。
这里写入BLYNK_WRITE函数来检查V3和V2虚拟终端的传入数据,然后将它们分配到三个不同的变量中。这里的变量r, g, b表示所选颜色的Red, Green和Blue代码的值。同样,这里的数据用于存储LED的亮度值。然后将这些值发送给用于驱动LED条的函数static1。
Static1()函数用于驱动LED灯条,控制LED灯条的亮度。和FastLED。setBrightness用于设置LED的亮度。同样FastLED。显示功能用于根据需要的颜色驱动LED。
使用Arduino IDE将完整的代码上传到NodeMCU后,您可以在Blynk移动应用程序中控制NeoPixels LED条的颜色和亮度,如下图所示。
本文编译自iotdesignpro