- Adafruit 5X8 NeoPixel Shield til Arduino
- Forståelse af kommunikationsprocessen mellem Blynk App og Arduino
- Komponenter, der kræves
- Adafruit RGB LED-skærm og Arduino - hardwareforbindelse
- Konfiguration af Blynk-applikationen
- Arduino-kodestyring af Adafruit WS2812B RGB LED-skærm
- Uploade koden til Arduino Board
I løbet af et par år bliver RGB-LED'er populære dag for dag på grund af sin smukke farve, lysstyrke og lokkende lyseffekter. Derfor bruges det mange steder som et dekorativt emne, et eksempel kan være hjemmet eller et kontor. Vi kan også bruge RGB-lysene i køkkenet og også i en spilkonsol. De er også gode i et barns legerum eller soveværelser med hensyn til stemningsbelysning. Tidligere brugte vi WS2812B NeoPixel LED'er og ARM Microcontroller til at opbygge en Music Spectrum Visualizer, så tjek det, hvis det er interessant for dig.
Derfor vil vi i dette projekt bruge et Neopixel-baseret RGB LED-matrixskærm, Arduino og Blynk-applikation til at producere mange fascinerende animationseffekter og farver, som vi vil være i stand til at kontrollere med Blynk-appen. Så lad os komme i gang !!!
Adafruit 5X8 NeoPixel Shield til Arduino
Det Arduino-kompatible NeoPixel Shield indeholder fyrre individuelt adresserbare RGB-LED'er, hver har WS2812b-driver indbygget, som er arrangeret i en 5 × 8 matrix for at danne dette NeoPixel Shield. Flere NeoPixel Shields kan også tilsluttes for at danne et større Shield, hvis det er et krav. For at kontrollere RGB-lysdioderne kræves en enkelt Arduino-pin, så i denne vejledning har vi besluttet at bruge pin 6 i Arduino til at gøre det.
I vores tilfælde får LED'erne strøm fra Arduinos indbyggede 5V-pin, hvilket er tilstrækkeligt til at give strøm til "en tredjedel af LED'erne" med fuld lysstyrke. Hvis du har brug for strøm til flere lysdioder, kan du klippe det indbyggede spor og bruge en ekstern 5v-forsyning til at drive skjoldet ved hjælp af den eksterne 5V-terminal.
Forståelse af kommunikationsprocessen mellem Blynk App og Arduino
8 * 5 RGB LED-matrixen, der bruges her, har fyrre individuelt adresserbare RGB-LED'er baseret på WS2812B-driver. Den har 24-bit farvekontrol og 16,8 millioner farver pr. Pixel. Det kan styres med “One wire control” -metoden. Det betyder, at vi kan styre hele LED-pixlen ved hjælp af en enkelt kontrolpind. Mens jeg arbejder med lysdioderne, har jeg gennemgået databladet for disse lysdioder, hvor jeg finder skærmens driftsspændingsområde er 4 V til 6 V, og det nuværende forbrug finder ud af 50 mA pr. LED ved 5 V med rød, grøn, og blå ved fuld lysstyrke. Det har beskyttelse mod omvendt spænding på de eksterne strømstifter og en reset-knap på skjoldet for at nulstille Arduino. Den har også en ekstern strømindgangsstift til lysdioder, hvis der ikke er tilstrækkelig strøm gennem interne kredsløb.
Som vist i det skematiske diagram ovenfor skal vi downloade og installere Blynk-applikationenpå vores smartphone, hvor parametre som farve, lysstyrke kan kontrolleres. Efter indstilling af parametrene, hvis der sker ændringer i appen, er det til Blynk-skyen, hvor vores pc også er tilsluttet og klar til at modtage de opdaterede data. Arduino Uno er forbundet til vores pc via USB-kabel med en kommunikationsport åbnet, med denne kommunikationsport (COM-port) kan data udveksles mellem Blynk-skyen og Arduino UNO. PC anmoder om data fra Blynk-skyen med konstante tidsintervaller, og når der modtages opdaterede data, overfører den dem til Arduino og træffer brugerdefinerede beslutninger som at kontrollere RGB-ledet lysstyrke og farver. RGB LED-skjoldet er placeret på Arduino-LED'en og tilsluttet via en enkelt datapind til kommunikation, som standard er den tilsluttet via D6-stiften i Arduino.De serielle data, der sendes fra Arduino UNO, sendes til Neopixel shied, som derefter reflekteres på LED-matrixen.
Komponenter, der kræves
- Arduino UNO
- 8 * 5 RGB LED-matrixskærm
- USB A / B-kabel til Arduino UNO
- Bærbar / pc
Adafruit RGB LED-skærm og Arduino - hardwareforbindelse
WS2812B Neopixel-LED'erne har tre ben, den ene er til data og den anden to bruges til strøm, men dette specifikke Arduino-skjold gør hardwareforbindelsen meget enkel, alt hvad vi skal gøre er at placere Neopixel LED-matrixen på toppen af Arduino UNO. I vores tilfælde er LED drevet fra standard Arduino 5V Rail. Efter placering af Neopixel Shield ser opsætningen ud som nedenfor:
Konfiguration af Blynk-applikationen
Blynk er et program, der kan køre over Android- og IOS- enheder til at styre alle IoT-enheder og apparater ved hjælp af vores smartphones. Først og fremmest skal der oprettes en grafisk brugergrænseflade (GUI) for at kontrollere RGB LED-matrixen. Applikationen sender alle de valgte parametre fra GUI til Blynk Cloud. I modtagersektionen har vi Arduino tilsluttet pc'en via et serielt kommunikationskabel. Derfor anmoder pc om data fra Blynk-skyen, og disse data sendes til Arduino til nødvendig behandling. Så lad os komme i gang med opsætningen af Blynk-applikationen.
Før installationen skal du downloade Blynk-applikationen fra Google Play-butikken (IOS-brugere kan downloade fra App Store). Efter installation skal du tilmelde dig ved hjælp af din e-mail-id og adgangskode.
Oprettelse af et nyt projekt:
Efter vellykket installation skal du åbne applikationen, og der får vi en skærm med indstillingen " Nyt projekt ". Klik på den, så vises en ny skærm, hvor vi skal indstille parametrene som projektnavn, kort og forbindelsestype. I vores projekt skal du vælge enheden som " Arduino UNO " og forbindelsestype som " USB " og klikke på " Opret".
Efter den vellykkede oprettelse af projektet får vi et godkendelses-id i vores registrerede mail. Gem Authenticate ID til fremtidig reference.
Oprettelse af grafisk brugergrænseflade (GUI):
Åbn projektet i Blynk, klik på “+” tegnet, hvor vi får de widgets, som vi kan bruge i vores projekt. I vores tilfælde har vi brug for en RGB-farvevælger, der er angivet som “zeRGBa” som vist nedenfor.
Indstilling af widgets:
Efter at have trukket widgets til vores projekt, skal vi nu indstille dens parametre, der bruges til at sende RGB-farveværdierne til Arduino UNO.
Klik på ZeRGBa, så får vi en skærm med navnet ZeRGBa-indstilling. Indstil derefter Output-indstillingen til " Flet " og indstil stiften til "V2", som er vist på billedet nedenfor.
Arduino-kodestyring af Adafruit WS2812B RGB LED-skærm
Efter afslutning af hardwareforbindelsen skal koden uploades til Arduino. Den trinvise forklaring af koden vises nedenfor.
Først skal du inkludere alle de nødvendige biblioteker. Åbn Arduino IDE, gå derefter til fanen Skitse og klik på indstillingen Inkluder bibliotek-> Administrer biblioteker . Søg derefter efter Blynk i søgefeltet, og download og installer derefter Blynk-pakken til Arduino UNO.
Her bruges “ Adafruit_NeoPixel.h ” biblioteket til at styre RGB LED Matrix. For at inkludere det kan du downloade Adafruit_NeoPixel- biblioteket fra det givne link. Når du har fået det, kan du medtage det med indstillingen Inkluder ZIP-bibliotek.
#define BLYNK_PRINT DebugSerial #include #include
Derefter definerer vi antallet af lysdioder, som kræves til vores LED-matrix, og vi definerer også det pin-nummer, der bruges til at styre LED-parametrene.
#definer PIN 6 #definer NUM_PIXELS 40
Derefter er vi nødt til at placere vores blink-godkendelses-id i et auth- array, som vi har gemt tidligere.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Her bruges serielle softwarepinde som fejlfindingskonsol. Så Arduino-stifterne er defineret som fejlfindingsserie nedenfor.
#omfatte
Inde i opsætningen initialiseres seriel kommunikation ved hjælp af funktionen Serial.begin , blynk er forbundet med Blynk.begin og ved hjælp af pixels.begin () initialiseres LED-matrixen.
ugyldig opsætning () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Inde i loop () har vi brugt Blynk.run () , som kontrollerer for indkommende kommandoer fra blynk GUI og udfører operationerne i overensstemmelse hermed.
ugyldig sløjfe () { Blynk.run (); }
I den sidste fase skal de parametre, der blev sendt fra Blynk-applikationen, modtages og behandles. I dette tilfælde blev parametrene tildelt en virtuel pin “V2” som beskrevet tidligere i installationsafsnittet. BLYNK_WRITE- funktionen er en indbygget funktion, der bliver kaldt, når den tilknyttede virtuelle pin tilstand / værdi ændres. Vi kan køre kode inde i denne funktion ligesom enhver anden Arduino-funktion.
Her er BLYNK_WRITE- funktionen skrevet for at kontrollere for indgående data på virtuel pin V2. Som vist i afsnittet Blink-opsætning blev farvepixeldataene flettet og tildelt V2-stiften. Så vi er også nødt til at de-flette igen efter afkodning. Fordi vi styrer LED-pixelmatrixen, har vi brug for alle 3 individuelle farvepixeldata som rød, grøn og blå. Som vist i koden nedenfor blev tre indekser af matrixen læst som param.asInt () for at få værdien af rød farve. Tilsvarende blev alle de to andre værdier modtaget og lagret i 3 individuelle variabler. Derefter tildeles disse værdier til Pixel-matrixen ved hjælp af pixels.setPixelColor- funktionen som vist i koden nedenfor.
Her bruges pixels.setBrightness () -funktionen til at kontrollere lysstyrken og pixels.show () -funktionen bruges til at vise den indstillede farve i Matrix.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Uploade koden til Arduino Board
Først skal vi vælge PORT af Arduino inde i Arduino IDE, så skal vi uploade koden til Arduino UNO. Efter en vellykket upload skal du notere det portnummer, der skal bruges til vores serielle kommunikationsopsætning.
Herefter skal du finde scriptmappen til Blynk-biblioteket på din pc. Det bliver installeret, når du installerer biblioteket, min var i, "C: \ Brugere \ PC_Name \ Dokumenter \ Arduino \ biblioteker \ Blynk \ scripts"
I scriptmappen skal der være en fil med navnet “blynk-ser.bat”, som er en batchfil, der bruges til seriel kommunikation, som vi skal redigere med notesblok. Åbn filen med notesblok, og skift portnummeret til dit Arduino-portnummer, som du har noteret i det sidste trin.
Efter redigering skal du gemme filen og køre batchfilen ved at dobbeltklikke på den. Derefter skal du se et vindue som vist nedenfor:
Bemærk: Hvis du ikke kan se dette vindue vist ovenfor, og det bliver bedt om at oprette forbindelse igen, kan det muligvis skyldes fejlen i forbindelse med pc'en med Arduino-skjoldet. I så fald skal du kontrollere din Arduino-forbindelse til pc'en. Derefter skal du kontrollere, om COM-portnummeret vises i Arduino IDE eller ej. Hvis den viser den gyldige COM-port, er den klar til at fortsætte. Du skal køre batchfilen igen.
Endelig demonstration:
Nu er det tid til at teste kredsløbet og dets funktionalitet. Åbn Blynk-applikationen, åbn GUI'en og klik på knappen Afspil. Derefter kan du vælge en af dine ønskede farver, der skal reflekteres på LED-matrixen. Som vist nedenfor, i mit tilfælde har jeg valgt den røde og blå farve, den vises på Matrix.
På samme måde kan du også prøve at lave forskellige animationer ved hjælp af disse LED-matricer ved at tilpasse kodningen lidt.