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