- Adafruit 5X8 NeoPixel Shield for Arduino
- Forstå kommunikasjonsprosessen mellom Blynk App og Arduino
- Komponenter kreves
- Adafruit RGB LED-skjerm og Arduino - Maskinvaretilkobling
- Konfigurere Blynk-applikasjonen
- Arduino Code Controlling Adafruit WS2812B RGB LED-skjerm
- Laste opp koden til Arduino Board
I løpet av noen år blir RGB-lysdioder populære hver dag på grunn av sin vakre farge, lysstyrke og fristende lyseffekter. Derfor brukes den mange steder som et dekorativt element. Et eksempel kan være hjemmet eller et kontorlokale. Vi kan også bruke RGB-lysene på kjøkkenet og også i en spillkonsoll. De er også flotte i et lekerom eller soverom for barn når det gjelder stemningsbelysning. Tidligere brukte vi WS2812B NeoPixel LED-lampene og ARM-mikrokontrolleren til å bygge en Music Spectrum Visualizer, så sjekk det ut hvis det er interessant for deg.
Derfor skal vi i dette prosjektet bruke et Neopixel-basert RGB LED-matriseskjold, Arduino og Blynk-applikasjon for å produsere mange fascinerende animasjonseffekter og farger som vi vil kunne kontrollere med Blynk-appen. Så la oss komme i gang !!!
Adafruit 5X8 NeoPixel Shield for Arduino
Det Arduino-kompatible NeoPixel Shield inneholder førti individuelt adresserbare RGB-lysdioder hver har WS2812b-driver innebygd, som er ordnet i en 5 × 8 matrise for å danne dette NeoPixel Shield. Flere NeoPixel Shields kan også kobles til for å danne et større Shield hvis det er et krav. For å kontrollere RGB-LED-ene er det nødvendig med en enkelt Arduino-pin, så i denne opplæringen har vi bestemt oss for å bruke pin 6 i Arduino for å gjøre det.
I vårt tilfelle drives lysdiodene fra Arduinos innebygde 5V-pinne, som er tilstrekkelig til å drive omtrent "en tredjedel av lysdiodene" med full lysstyrke. Hvis du trenger å drive flere lysdioder, kan du kutte det innebygde sporet og bruke en ekstern 5v-forsyning for å drive skjermen ved hjelp av den eksterne 5V-terminalen.
Forstå kommunikasjonsprosessen mellom Blynk App og Arduino
8 * 5 RGB LED-matrisen som brukes her, har førti individuelt adresserbare RGB-lysdioder basert på WS2812B-driver. Den har 24-biters fargekontroll og 16,8 millioner farger per piksel. Den kan styres med “One wire control” -metoden. Det betyr at vi kan kontrollere hele LED-piksler ved hjelp av en enkelt kontrollpinne. Mens jeg jobbet med lysdiodene, har jeg gått gjennom databladet til disse lysdiodene der jeg finner at driftsspenningsområdet til skjoldet er 4 V til 6 V og strømforbruket er funnet ut 50 mA per LED ved 5 V med rød, grønn, og blått ved full lysstyrke. Den har beskyttelse mot revers spenning på de eksterne strømpinnene og en tilbakestillingsknapp på skjoldet for å tilbakestille Arduino. Den har også en ekstern strøminngangspinne for lysdioder hvis ikke tilstrekkelig mengde strøm er tilgjengelig gjennom interne kretser.
Som vist i skjematisk diagram ovenfor, må vi laste ned og installere Blynk-applikasjonenpå smarttelefonen vår der parametrene som farge, lysstyrke kan kontrolleres. Etter å ha satt opp parametrene, hvis det skjer noen endringer i appen, er det til Blynk-skyen hvor PCen vår også er koblet til og klar til å motta oppdaterte data. Arduino Uno er koblet til PCen vår via USB-kabel med en kommunikasjonsport åpnet, med denne kommunikasjonsporten (COM-port) kan data utveksles mellom Blynk-skyen og Arduino UNO. PC ber om data fra Blynk sky med jevne tidsintervaller, og når oppdaterte data mottas, overfører den den til Arduino og tar brukerdefinerte beslutninger som å kontrollere RGB-ledet lysstyrke og farger. RGB LED-skjoldet er plassert på Arduino LED og koblet til via en enkelt datapinne for kommunikasjon, som standard er den koblet til via D6-pinnen på Arduino.Seriedataene som sendes fra Arduino UNO sendes til Neopixel shied, som deretter reflekteres på LED-matrisen.
Komponenter kreves
- Arduino UNO
- 8 * 5 RGB LED-matriseskjold
- USB A / B-kabel for Arduino UNO
- Bærbar PC / PC
Adafruit RGB LED-skjerm og Arduino - Maskinvaretilkobling
WS2812B Neopixel LED-lampene har tre pinner, en er for data og en annen to brukes til strøm, men dette spesifikke Arduino-skjoldet gjør maskinvaretilkoblingen veldig enkel, alt vi trenger å gjøre er å plassere Neopixel LED-matrisen på toppen av Arduino UNO. I vårt tilfelle drives LED-en fra standard Arduino 5V-skinne. Etter at Neopixel Shield er plassert, ser oppsettet ut som nedenfor:
Konfigurere Blynk-applikasjonen
Blynk er et program som kan kjøre over Android- og IOS- enheter for å kontrollere alle IoT-enheter og apparater som bruker smarttelefonene våre. Først og fremst må det opprettes et grafisk brukergrensesnitt (GUI) for å kontrollere RGB LED-matrisen. Søknaden vil sende alle de valgte parametrene fra GUI til Blynk Cloud. I mottakerseksjonen har vi Arduino koblet til PC-en via en seriell kommunikasjonskabel. Derfor ber PC om data fra Blynk-skyen, og disse dataene sendes til Arduino for nødvendig behandling. Så la oss komme i gang med Blynk-applikasjonsoppsettet.
Før installasjonen, last ned Blynk-applikasjonen fra Google Play-butikken (IOS-brukere kan laste ned fra App Store). Etter installasjon, registrer deg med e-post-ID og passord.
Opprette et nytt prosjekt:
Etter vellykket installasjon, åpne applikasjonen, og der vil vi få en skjerm med alternativet " Nytt prosjekt ". Klikk på den, så dukker det opp et nytt skjermbilde, der vi må angi parametrene som prosjektnavn, tavle og tilkoblingstype. I prosjektet vårt velger du enheten som “ Arduino UNO ” og tilkoblingstype som “ USB ” og klikker på “ Opprett”.
Etter vellykket opprettelse av prosjektet vil vi få en godkjennings-ID i vår registrerte post. Lagre godkjennings-ID for fremtidig referanse.
Opprette grafisk brukergrensesnitt (GUI):
Åpne prosjektet i Blynk, klikk på “+” tegnet der vi får widgetene som vi kan bruke i prosjektet vårt. I vårt tilfelle trenger vi en RGB Color Picker som er oppført som “zeRGBa” som vist nedenfor.
Stille inn modulene:
Etter å ha dratt widgetene til prosjektet vårt, må vi nå angi parametrene som brukes til å sende fargen RGB-verdier til Arduino UNO.
Klikk på ZeRGBa, så får vi en skjerm som heter ZeRGBa-innstilling. Sett deretter Output-alternativet til " Merge " og sett pinnen til "V2" som vises på bildet nedenfor.
Arduino Code Controlling Adafruit WS2812B RGB LED-skjerm
Etter at maskinvaretilkoblingen er fullført, må koden lastes opp til Arduino. Den trinnvise forklaringen av koden er vist nedenfor.
Først inkluderer du alle nødvendige biblioteker. Åpne Arduino IDE, gå deretter til fanen Skisse og klikk på alternativet Inkluder bibliotek-> Administrer biblioteker . Søk deretter etter Blynk i søkeboksen, og last ned og installer Blynk-pakken for Arduino UNO.
Her brukes “ Adafruit_NeoPixel.h ” -biblioteket til å kontrollere RGB LED-matrisen. For å inkludere det kan du laste ned Adafruit_NeoPixel- biblioteket fra den gitte lenken. Når du har fått det, kan du inkludere det med alternativet Inkluder ZIP-bibliotek.
#define BLYNK_PRINT DebugSerial #include #include
Deretter definerer vi antall lysdioder, som kreves for vår LED-matrise, og vi definerer også pin-nummeret som brukes til å kontrollere LED-parametrene.
#define PIN 6 #define NUM_PIXELS 40
Deretter må vi sette vår blink-autentiserings-ID i en auth- array, som vi har lagret tidligere.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Her brukes programvarens serielle pins som feilsøkingskonsoll. Så, Arduino-pinnene er definert som feilsøkingsserie nedenfor.
#inkludere
Inne konfigurasjonen, Seriekommunikasjon initialisert ved anvendelse av funksjon Serial.begin , er blynk tilkoblet ved hjelp Blynk.begin og ved hjelp pixels.begin (), LED matrise er initialisert.
ugyldig oppsett () { DebugSerial.begin (9600); piksler. begynner (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Inne i loop () har vi brukt Blynk.run () , som sjekker for innkommende kommandoer fra blynk GUI og utfører operasjonene deretter.
ugyldig sløyfe () { Blynk.run (); }
I sluttfasen må parametrene som ble sendt fra Blynk-søknaden mottas og behandles. I dette tilfellet ble parametrene tildelt en virtuell pin "V2" som diskutert tidligere i installasjonsdelen. BLYNK_WRITE- funksjonen er en innebygd funksjon som blir ringt når den tilknyttede virtuelle pinnens tilstand / verdi endres. vi kan kjøre kode inne i denne funksjonen akkurat som alle andre Arduino-funksjoner.
Her er BLYNK_WRITE- funksjonen skrevet for å se etter innkommende data på virtuell pin V2. Som vist i delen Blink-oppsett, ble fargepikseldataene slått sammen og tildelt V2-pinnen. Så vi må også slå sammen igjen etter dekoding. For å kontrollere LED-pikselmatrisen trenger vi alle 3 individuelle fargepikseldata som rød, grønn og blå. Som vist i koden nedenfor, ble tre indekser av matrisen lest som param.asInt () for å få verdien av rød farge. Tilsvarende ble alle de to andre verdiene mottatt og lagret i 3 individuelle variabler. Deretter tildeles disse verdiene til Pixel-matrisen ved hjelp av pixels.setPixelColor- funksjonen som vist i koden nedenfor.
Her brukes pixels.setBrightness () -funksjonen til å kontrollere lysstyrken og pixels.show () -funksjonen til å vise den innstilte fargen i matrisen.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); piksler.klar (); piksler.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { piksler.setPixelColor (i, piksler.Color (r, g, b)); } piksler. show (); }
Laste opp koden til Arduino Board
Først må vi velge PORT av Arduino inne i Arduino IDE, så må vi laste opp koden til Arduino UNO. Etter vellykket opplasting noterer du portnummeret som skal brukes til vårt serielle kommunikasjonsoppsett.
Etter dette, finn skriptmappen til Blynk-biblioteket på PCen. Den blir installert når du installerer biblioteket, mitt var i, “C: \ Users \ PC_Name \ Documents \ Arduino \ biblioteker \ Blynk \ scripts"
I skriptmappen skal det være en fil som heter “blynk-ser.bat”, som er en batchfil som brukes til seriell kommunikasjon som vi trenger å redigere med notisblokken. Åpne filen med notisblokk og endre portnummeret til Arduino-portnummeret som du har notert i det siste trinnet.
Etter redigering, lagre filen og kjør batchfilen ved å dobbeltklikke på den. Deretter må du se et vindu som vist nedenfor:
Merk: Hvis du ikke kan se dette vinduet vist ovenfor, og det blir bedt om å koble til på nytt, kan det skyldes feilen i forbindelse med PC med Arduino-skjoldet. I så fall sjekker du Arduino-tilkoblingen din til PCen. Etter det, sjekk om COM-portnummeret vises i Arduino IDE eller ikke. Hvis den viser den gyldige COM-porten, er den klar til å fortsette. Du bør kjøre batchfilen igjen.
Endelig demonstrasjon:
Nå er det på tide å teste kretsen og dens funksjonalitet. Åpne Blynk-applikasjonen, åpne GUI og klikk på Play-knappen. Etter det kan du velge hvilken som helst av dine ønskede farger som skal reflekteres på LED-matrisen. Som vist nedenfor, i mitt tilfelle har jeg valgt rød og blå farge, den vises på matrisen.
På samme måte kan du også prøve å lage forskjellige animasjoner ved hjelp av disse LED-matrisene ved å tilpasse kodingen litt.