- Adafruit 5X8 NeoPixel Shield за Arduino
- Разбиране на процеса на комуникация между приложението Blynk и Arduino
- Необходими компоненти
- Adafruit RGB LED щит и Arduino - хардуерна връзка
- Конфигуриране на приложението Blynk
- Код за управление на Arduino Adafruit WS2812B RGB LED щит
- Качване на кода на Arduino Board
В продължение на няколко години RGB светодиодите стават популярни всеки ден благодарение на красивия си цвят, яркост и примамливи светлинни ефекти. Ето защо се използва на много места като декоративен елемент, пример може да бъде домът или офисът. Също така, можем да използваме RGB светлините в кухнята, а също и в игрална конзола. Страхотни са и в детска стая за игра или спални по отношение на осветлението на настроението. Преди това използвахме светодиодите WS2812B NeoPixel и микроконтролера ARM, за да създадем визуализатор на музикален спектър, така че проверете това, ако това ви е интересно.
Ето защо в този проект ще използваме Neopixel базиран RGB LED матричен щит, Arduino и приложението Blynk, за да създадем много очарователни анимационни ефекти и цветове, които ще можем да контролираме с приложението Blynk. Така че нека да започнем !!!
Adafruit 5X8 NeoPixel Shield за Arduino
Съвместимият с Arduino NeoPixel Shield съдържа четиридесет индивидуално адресируеми RGB светодиода, всеки от които има вграден драйвер WS2812b, който е подреден в матрица 5 × 8, за да формира този NeoPixel Shield. Няколко щита NeoPixel също могат да бъдат свързани, за да образуват по-голям щит, ако това е изискване. За да контролирате RGB светодиодите, е необходим един пин Arduino, така че в този урок решихме да използваме пин 6 на Arduino, за да го направим.
В нашия случай светодиодите се захранват от вградения 5V щифт на Arduino, което е достатъчно за захранване на „една трета от светодиодите” при пълна яркост. Ако трябва да захранвате повече светодиоди, тогава можете да изрежете вградената следа и да използвате външно 5v захранване за захранване на екрана с помощта на външния 5V терминал.
Разбиране на процеса на комуникация между приложението Blynk и Arduino
Използваната тук 8 * 5 RGB LED матрица има четиридесет индивидуално адресируеми RGB светодиода, базирани на драйвер WS2812B. Той има 24-битов цветен контрол и 16,8 милиона цвята на пиксел. Може да се контролира с методологията „Едножилен контрол“. Това означава, че можем да контролираме целия LED пиксел с помощта на един контролен щифт. Докато работя със светодиодите, преминах през техническия лист на тези светодиоди, където установих, че обхватът на работното напрежение на екрана е от 4 V до 6 V, а текущата консумация е 50 mA на светодиод при 5 V с червено, зелено, и синьо при пълна яркост. Той има защита от обратно напрежение на външните захранващи щифтове и бутон за нулиране на щита за нулиране на Arduino. Той също има външен захранващ щифт за светодиоди, ако няма достатъчно количество енергия чрез вътрешна схема.
Както е показано на схематичната диаграма по-горе, трябва да изтеглим и инсталираме приложението Blynkна нашия смартфон, където параметрите като цвят, яркост могат да се контролират. След настройване на параметрите, ако се случат някакви промени в приложението, това е в облака Blynk, където нашият компютър също е свързан и готов да получи актуализираните данни. Arduino Uno е свързан с нашия компютър чрез USB кабел с отворен комуникационен порт, с този комуникационен порт (COM порт) могат да се обменят данни между облака Blynk и Arduino UNO. Компютърът изисква данни от облака на Blynk на постоянни интервали от време и когато се получат актуализирани данни, той ги прехвърля на Arduino и взема дефинирани от потребителя решения като контрол на RGB яркостта и цветовете. RGB LED щитът е поставен върху Arduino LED и е свързан чрез един пин за данни за комуникация, по подразбиране е свързан чрез D6 щифт на Arduino.Серийните данни, изпратени от Arduino UNO, се изпращат към Neopixel shied, който след това се отразява на LED матрицата.
Необходими компоненти
- Arduino UNO
- 8 * 5 RGB LED матричен щит
- USB A / B кабел за Arduino UNO
- Лаптоп / компютър
Adafruit RGB LED щит и Arduino - хардуерна връзка
Светодиодите WS2812B Neopixel имат три извода, единият е за данни, а други два се използват за захранване, но този специфичен Arduino щит прави хардуерната връзка много проста, всичко, което трябва да направим, е да поставим матрицата Neopixel LED в горната част на Arduino UNO. В нашия случай светодиодът се захранва от Arduino 5V Rail по подразбиране. След поставяне на Neopixel Shield, настройката изглежда по-долу:
Конфигуриране на приложението Blynk
Blynk е приложение, което може да работи на устройства с Android и IOS, за да контролира всякакви IoT устройства и уреди с помощта на нашите смартфони. На първо място, трябва да се създаде графичен потребителски интерфейс (GUI) за управление на RGB LED матрицата. Приложението ще изпрати всички избрани параметри от GUI до Blynk Cloud. В секцията за приемници имаме Arduino, свързан към компютъра чрез сериен комуникационен кабел. Следователно, компютърът изисква данни от облака Blynk и тези данни се изпращат на Arduino за необходима обработка. И така, нека започнем с настройката на приложението Blynk.
Преди настройката изтеглете приложението Blynk от магазина на Google Play (потребителите на IOS могат да изтеглят от App Store). След инсталацията се регистрирайте, използвайки вашия имейл адрес и парола.
Създаване на нов проект:
След успешна инсталация отворете приложението и там ще получим екран с опция „ Нов проект “. Кликнете върху него и ще се появи нов екран, където трябва да зададем параметри като име на проекта, съвет и тип връзка. В нашия проект изберете устройството като „ Arduino UNO “ и тип връзка като „ USB “ и кликнете върху „ Създаване“.
След успешното създаване на проекта, ние ще получим удостоверяващ идентификатор в препоръчаната ни поща. Запазете удостоверителния идентификатор за бъдещи справки.
Създаване на графичен потребителски интерфейс (GUI):
Отворете проекта в Blynk, щракнете върху знака „+“, където ще получим джаджите, които можем да използваме в нашия проект. В нашия случай се нуждаем от RGB Color Picker, който е посочен като „zeRGBa“, както е показано по-долу.
Задаване на джаджи:
След плъзгане на приспособленията към нашия проект, сега трябва да зададем неговите параметри, които се използват за изпращане на цветните RGB стойности до Arduino UNO.
Кликнете върху ZeRGBa, тогава ще получим екран с име ZeRGBa настройка. След това задайте опцията Output на „ Merge “ и задайте щифта на „V2“, което е показано на изображението по-долу.
Код за управление на Arduino Adafruit WS2812B RGB LED щит
След завършване на хардуерната връзка, кодът трябва да бъде качен в Arduino. Поетапното обяснение на кода е показано по-долу.
Първо, включете всички необходими библиотеки. Отворете Arduino IDE, след това отидете в раздела Скица и кликнете върху опцията Включване на библиотека-> Управление на библиотеките . След това потърсете Blynk в полето за търсене и след това изтеглете и инсталирайте пакета Blynk за Arduino UNO.
Тук библиотеката “ Adafruit_NeoPixel.h ” се използва за управление на RGB LED матрицата. За да го включите, Можете да изтеглите библиотеката Adafruit_NeoPixel от дадената връзка. След като го получите, можете да го включите с опцията Включване на ZIP библиотека.
#define BLYNK_PRINT DebugSerial #include #include
След това дефинираме броя на светодиодите, който е необходим за нашата LED матрица, също така дефинираме пин-номера, който се използва за управление на светодиодните параметри.
#define PIN 6 #define NUM_PIXELS 40
След това трябва да поставим нашия мигащ идентификатор за удостоверяване в аутентивен масив, който сме запазили по-рано.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Тук серийните щифтове на софтуера се използват като конзола за отстраняване на грешки. И така, пиновете на Arduino са дефинирани като сериен за отстраняване на грешки по-долу.
#include
Вътре в настройката серийната комуникация се инициализира с помощта на функцията Serial.begin , blynk се свързва с помощта на Blynk.begin и с помощта на pixels.begin () се инициализира LED матрицата.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Вътре в цикъла () използвахме Blynk.run () , който проверява за входящи команди от GUI на blynk и изпълнява съответно операциите.
невалиден цикъл () { Blynk.run (); }
На последния етап параметрите, изпратени от приложението Blynk, трябва да бъдат получени и обработени. В този случай параметрите бяха разпределени към виртуален щифт “V2”, както беше обсъдено по-рано в раздела за настройка. Функцията BLYNK_WRITE е вградена функция, която се извиква всеки път, когато състоянието / стойността на свързания виртуален щифт се промени. можем да стартираме код вътре в тази функция, точно както всяка друга функция на Arduino.
Тук е написана функцията BLYNK_WRITE, за да се провери за входящи данни на виртуален щифт V2. Както е показано в раздела за настройка на мига, данните за цветните пиксели са обединени и са присвоени на щифта V2. Така че ние също трябва да се обединим отново след декодиране. Тъй като за да контролираме LED матрицата на пикселите, се нуждаем от всичките 3 отделни цветни пикселни данни, като червено, зелено и синьо. Както е показано в кода по-долу, три индекса на матрицата се четат като param.asInt (), за да се получи стойността на червения цвят. По същия начин всички останали две стойности бяха получени и съхранени в 3 отделни променливи. След това тези стойности се присвояват на матрицата Pixel, използвайки функцията pixels.setPixelColor, както е показано в кода по-долу.
Тук функцията pixels.setBrightness () се използва за управление на яркостта, а функцията pixels.show () се използва за показване на зададения цвят в матрицата.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); за (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Качване на кода на Arduino Board
Първо, трябва да изберем ПОРТА на Arduino вътре в IDE на Arduino, след това трябва да качим кода в Arduino UNO. След успешно качване, запишете номера на порта, който ще се използва за настройка на серийната ни комуникация.
След това намерете папката със скриптове на библиотеката Blynk на вашия компютър. Той се инсталира, когато инсталирате библиотеката, моята беше вътре, “C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ скриптове”
В папката със скриптове трябва да има файл с име „blynk-ser.bat“, който е партиден файл, използван за серийна комуникация, който трябва да редактираме с тефтер. Отворете файла с бележник и променете номера на порта на вашия номер на порт Arduino, който сте отбелязали в последната стъпка.
След редактирането запазете файла и стартирайте партидния файл, като щракнете двукратно върху него. След това трябва да виждате прозорец, както е показано по-долу:
Забележка: Ако не можете да видите този прозорец, показан по-горе, и той бъде подканен да се свърже отново, това може да се дължи на грешката във връзката на компютъра с Arduino щита. В този случай проверете връзката си с Arduino с компютъра. След това проверете дали номерът на COM порта се показва в IDE на Arduino или не. Ако показва валидния COM порт, значи е готов за продължаване. Трябва да стартирате партидния файл отново.
Финална демонстрация:
Сега е време за тестване на веригата и нейната функционалност. Отворете приложението Blynk и отворете GUI и щракнете върху бутона Възпроизвеждане. След това можете да изберете всеки от желаните цветове, които да бъдат отразени на LED матрицата. Както е показано по-долу, в моя случай съм избрал червения и синия цвят, той се показва на матрицата.
По същия начин можете също да опитате да правите различни анимации, като използвате тези LED матрици, като персонализирате малко кодирането.