利用Blynk應(yīng)用程序用ESP32控制WS2812新像素LED
掃描二維碼
隨時(shí)隨地手機(jī)看文章
NeoPixel LED燈條是可編程的RGB LED燈條,可以編程生成任何所需的照明模式。NeoPixel可以在任何組合和亮度下產(chǎn)生多種顏色。它消耗更少的電力,可以通過編程單獨(dú)解決。在本項(xiàng)目中,我們將學(xué)習(xí)使用ESP32和Blynk應(yīng)用程序控制WS2812 NeoPixel LED條。
組件的要求
?25個(gè)LED WS2812B新像素LED帶
?5V, 2amp電源
?ESP32開發(fā)板
?電路試驗(yàn)板
?跳線
WS2812 LED帶工作
WS2812 LED燈條是一種可尋址的柔性燈條,在增加美麗的照明效果方面非常有用。這些LED燈帶由5050 RGB LED供電,其中內(nèi)置WS2812 LED驅(qū)動(dòng)器。每個(gè)LED消耗60mA電流,可以從5V直流電源供電。它有一個(gè)單一的輸入數(shù)據(jù)引腳,可以從微控制器的數(shù)字引腳饋送。
特點(diǎn):
?可單獨(dú)尋址的RGB led
?每像素1680萬色
?單線數(shù)字控制
?工作電壓:5V DC
?電流要求:每個(gè)LED 60mA
?柔性LED結(jié)構(gòu)
?5050 RGB LED與WS2812驅(qū)動(dòng)程序
線路圖
WS2812 ESP32的電路圖如下:
Blynk應(yīng)用程序設(shè)置與ESP32的新像素
Blynk是一個(gè)可以在Android和IOS設(shè)備上運(yùn)行的應(yīng)用程序,可以使用我們的智能手機(jī)控制任何物聯(lián)網(wǎng)設(shè)備。我們可以創(chuàng)建自己的圖形用戶界面來設(shè)計(jì)物聯(lián)網(wǎng)應(yīng)用程序GUI。我們以前在ESP32上使用Blynk,并使用Blynk構(gòu)建了許多其他基于物聯(lián)網(wǎng)的項(xiàng)目。
在安裝之前,從Google Play商店下載Blynk應(yīng)用程序(IOS用戶可以從Apple store下載),并使用您的電子郵件id和密碼注冊(cè)。
創(chuàng)建一個(gè)新項(xiàng)目:
安裝成功后,打開應(yīng)用程序,點(diǎn)擊“新建項(xiàng)目”。然后它將彈出一個(gè)新屏幕,我們需要在其中設(shè)置項(xiàng)目名稱、電路板和連接類型等參數(shù)。本項(xiàng)目選擇設(shè)備為“ESP32 Dev Board”,連接類型為“Wi-Fi”,點(diǎn)擊“Create”。
在成功創(chuàng)建項(xiàng)目之后,我們將在注冊(cè)郵件中獲得一個(gè)身份驗(yàn)證ID。保存身份驗(yàn)證ID以供將來參考。
創(chuàng)建GUI:
在Blynk中打開項(xiàng)目,單擊“+”符號(hào),它將顯示許多小部件。在我們的例子中,我們需要一個(gè)RGB顏色選擇器,它被列為“zeRGBa”和一個(gè)按鈕,將用于改變LED條的操作模式。
在Widgets中設(shè)置參數(shù):
將小部件拖到項(xiàng)目后,現(xiàn)在設(shè)置用于將控件值的顏色和模式發(fā)送到ESP32的參數(shù)。
單擊ZeRGBa,然后我們將得到一個(gè)名為ZeRGBa設(shè)置的屏幕。然后將輸出選項(xiàng)設(shè)置為“合并”,并將引腳設(shè)置為“V2”,如下圖所示。同樣,在按鈕設(shè)置中,將輸出引腳設(shè)置為“V3”,如下圖所示。
在Arduino IDE中安裝ESP32板
在將代碼上傳到ESP32之前,我們需要在Arduino IDE中安裝板,如果您之前沒有這樣做的話。ESP32單板的安裝步驟如下:
1. 打開Arduino IDE,進(jìn)入File> Preferences
2. 在“附加板管理器URL”字段中鍵入,然后單擊“確定”。如果在該字段中已經(jīng)有其他url,則使用逗號(hào)(“,”)分隔。
3. 現(xiàn)在轉(zhuǎn)到Tools > Board > Boards Manager。在“單板管理器”窗口的搜索框中輸入ESP32,選擇espressif系統(tǒng)最新版本的ESP32單板,單擊“安裝”。
4. 安裝完成后,進(jìn)入“Tools ->Board ->”,選擇“ESP32 Dev Module”?,F(xiàn)在您可以使用Arduino IDE對(duì)ESP32進(jìn)行編程。
ESP32新像素LED條帶控制代碼
ESP32 NeoPixel的完整代碼在本教程的末尾給出。代碼的逐步解釋如下所示。
首先,將所有必需的庫包含到代碼中。打開Arduino IDE,然后轉(zhuǎn)到選項(xiàng)卡Sketch并單擊選項(xiàng)Include Library-> Manage Libraries。在搜索框中搜索“Blynk”,下載并安裝ESP32版本的Blynk軟件包。
這里“Adafruit_NeoPixel.h”用于控制RGB LED條。要包含Adafruit_NeoPixel.h庫,請(qǐng)從此鏈接下載庫并使用“include ZIP library”選項(xiàng)包含它。
然后定義LED條中使用的LED的數(shù)量,以及用于控制LED參數(shù)的PIN號(hào)。
在此之后,聲明NeoPixel strip對(duì)象,其中參數(shù)1是NeoPixel strip中的像素?cái)?shù),參數(shù)2是使用的ESP32 PIN號(hào),參數(shù)3是像素類型標(biāo)志。
然后,定義網(wǎng)絡(luò)憑據(jù),如網(wǎng)絡(luò)SSID和密碼。編寫您自己的網(wǎng)絡(luò)憑據(jù)來代替ssid[]并傳遞一個(gè)[]數(shù)組。在auth[]數(shù)組中,寫入我們之前保存的Blynk身份驗(yàn)證ID。
在setup()中,串行通信使用函數(shù)Serial.begin初始化。在這里,Blynk使用Blynk連接。使用pixels.begin()初始化NeoPixel LED條。
在infinite loop()中,我們使用了blynk .run(),它檢查來自blynk GUI的傳入命令并相應(yīng)地執(zhí)行操作。
這里寫入BLYNK_WRITE函數(shù)來檢查V3和V2虛擬終端的傳入數(shù)據(jù),然后將它們分配到三個(gè)不同的變量中。這里的變量r, g, b表示所選顏色的紅,綠,藍(lán)代碼的值。然后將這些值發(fā)送給用于驅(qū)動(dòng)LED條的函數(shù)static1。
Static1()函數(shù)用于驅(qū)動(dòng)不同顏色的LED條。在這里,像素。setPixelColor用于按照我們所需的顏色驅(qū)動(dòng)LED。
Animation1()函數(shù)用于使用led運(yùn)行自定義動(dòng)畫。不同的動(dòng)畫可以根據(jù)用戶的選擇制作,如下圖所示。
用ESP32測(cè)試NeoPixel
硬件連接成功完成后,在ESP32中上傳完整的代碼,您將根據(jù)您的程序找到照明的NeoPixels。
本文編譯自iotdesignpro