Blynk使用NodeMCU控制WS2812新像素LED帶
led幾乎用于所有的裝飾照明,但它們大多數(shù)只產(chǎn)生一種顏色。因此,為了創(chuàng)造一個美麗的光模式,使用多色LED條,這不僅消耗更多的電力,而且難以管理。今天我們使用的是新一代LED- NeoPixel,它可以產(chǎn)生1680萬種顏色。NeoPixels是可編程的,通過正確的編程,它可以創(chuàng)建許多美麗的照明模式。這里將使用NodeMCU和Blynk應(yīng)用程序通過互聯(lián)網(wǎng)控制NeoPixel LED條的顏色和亮度。Blynk是一個智能手機(jī)應(yīng)用程序,使用它我們可以通過智能手機(jī)控制任何基于物聯(lián)網(wǎng)的應(yīng)用程序。
組件的要求
?WS2812b LED帶- 1米
?5V, 2amp電源
?ESP8266 NodeMCU
?LED帶狀連接器
WS2812新像素LED帶工作
WS2812 LED條是可尋址和可編程的柔性LED條,在創(chuàng)建定制照明效果方面非常有用。這些LED燈帶由5050 RGB LED供電,其中內(nèi)置WS2812 LED驅(qū)動器。每個LED消耗60mA電流,可以從5V直流電源供電。它有一個單一的輸入數(shù)據(jù)引腳,可以從微控制器的數(shù)字引腳饋送。
特點(diǎn):
?可單獨(dú)尋址的RGB led
?每像素1680萬色
?單線數(shù)字控制
?工作電壓:5V DC
?電流要求:每個LED 60mA
?柔性LED結(jié)構(gòu)
?5050 RGB LED與WS2812驅(qū)動程序
連接圖:
NeoPixel NodeMCU的電路圖如下:
下圖顯示了NeoPixel ESP8266的設(shè)置
用于控制新像素的Blynk應(yīng)用程序設(shè)置
Blynk是一款運(yùn)行在Android和IOS設(shè)備上的應(yīng)用程序,可以使用智能手機(jī)控制任何基于物聯(lián)網(wǎng)的應(yīng)用程序。我們以前使用Blynk與NodeMCU和樹莓派來控制LED,也使用Blynk應(yīng)用程序建立一個氣象站。它允許您為物聯(lián)網(wǎng)應(yīng)用程序創(chuàng)建圖形用戶界面。在這里,我們將設(shè)置Blynk應(yīng)用程序,使用NodeMCU ESP8266通過Wi-Fi控制NeoPixel LED。
所以首先從Google Play商店下載并安裝Blynk應(yīng)用程序(IOS用戶可以從App store下載),并使用您的電子郵件id和密碼注冊。
創(chuàng)建一個新項(xiàng)目:
安裝成功后,打開應(yīng)用程序,點(diǎn)擊“新建項(xiàng)目”。然后它將彈出一個新屏幕,我們需要在其中設(shè)置項(xiàng)目名稱、Board和連接類型等參數(shù)。對于這個NeoPixel ESP8266項(xiàng)目,選擇設(shè)備為NodeMCU,連接類型為Wi-Fi,然后點(diǎn)擊“創(chuàng)建”。
在成功創(chuàng)建項(xiàng)目之后,我們將在掛號郵件上獲得一個身份驗(yàn)證ID。保存身份驗(yàn)證ID以供將來參考。
創(chuàng)建GUI:
在Blynk中打開項(xiàng)目,單擊“+”符號來添加控件來控制NeoPixel。在我們的例子中,我們需要一個RGB顏色選擇器,它被列為“zeRGBa”和一個滑塊,將用于LED條的亮度控制。
在Widgets中設(shè)置參數(shù):
在拖動小部件之后,它們現(xiàn)在設(shè)置用于將顏色和亮度值發(fā)送給NodeMCU的參數(shù)。
點(diǎn)擊ZeRGBa,進(jìn)入ZeRGBa設(shè)置,將輸出選項(xiàng)設(shè)置為“合并”,將引腳設(shè)置為“V3”,如下圖所示。類似地,在滑塊設(shè)置中,將輸出引腳設(shè)置為“V2”。
編程N(yùn)odeMCU使用Wi-Fi控制NeoPixel
成功完成Blynk應(yīng)用程序設(shè)置后,現(xiàn)在使用Arduino IDE在NodeMCU中上傳代碼。
要用Arduino IDE編程N(yùn)odeMCU,請進(jìn)入File - > preferences - >Settings。
在“附加板管理器URL”字段中輸入,然后單擊“確定”。
現(xiàn)在轉(zhuǎn)到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中輸入esp, esp8266將在下面列出。現(xiàn)在選擇最新版本的電路板并單擊install。
安裝完成后,進(jìn)入“工具>單板> NodeMCU 1.0(ESP-12E模塊)”?,F(xiàn)在您可以使用Arduino IDE對NodeMCU進(jìn)行編程。
完整的代碼連同視頻在最后給出。代碼的逐步解釋如下所示。
首先,包括所有必需的庫。打開Arduino IDE,然后轉(zhuǎn)到選項(xiàng)卡Sketch并單擊選項(xiàng)Include Library-> Manage Libraries。在搜索框中搜索Blynk,下載并安裝ESP8266版本的Blynk軟件包。
要包含F(xiàn)astLED.h庫,請從這里下載庫并使用include ZIP library選項(xiàng)包含它。
現(xiàn)在,在代碼中定義所有參數(shù),如使用的LED數(shù)量,LED類型和顏色順序。另外,定義RGB LED的數(shù)據(jù)輸入引腳連接的數(shù)據(jù)引腳D1。然后,在ssid[]中定義您的Wi-Fi用戶名和密碼,并傳遞一個數(shù)組[]。在auth[]數(shù)組中,寫入我們之前保存的Blynk身份驗(yàn)證ID。
在setup()函數(shù)中,使用serial初始化串行通信。使用Blynk.begin開始并連接到Blynk云。另外,使用FastLED.addLeds設(shè)置LED的類型和數(shù)量。
在infinite loop()中,我們使用Blynk.run()檢查來自Blynk GUI的傳入命令并相應(yīng)地執(zhí)行操作。
這里寫入BLYNK_WRITE函數(shù)來檢查V3和V2虛擬終端的傳入數(shù)據(jù),然后將它們分配到三個不同的變量中。這里的變量r, g, b表示所選顏色的Red, Green和Blue代碼的值。同樣,這里的數(shù)據(jù)用于存儲LED的亮度值。然后將這些值發(fā)送給用于驅(qū)動LED條的函數(shù)static1。
Static1()函數(shù)用于驅(qū)動LED燈條,控制LED燈條的亮度。和FastLED。setBrightness用于設(shè)置LED的亮度。同樣FastLED。顯示功能用于根據(jù)需要的顏色驅(qū)動LED。
使用Arduino IDE將完整的代碼上傳到NodeMCU后,您可以在Blynk移動應(yīng)用程序中控制NeoPixels LED條的顏色和亮度,如下圖所示。
本文編譯自iotdesignpro