- Adafruit 5X8 NeoPixel Shield für Arduino
- Den Kommunikationsprozess zwischen Blynk App und Arduino verstehen
- Erforderliche Komponenten
- Adafruit RGB LED Shield und Arduino - Hardware-Verbindung
- Konfigurieren der Blynk-Anwendung
- Arduino Code zur Steuerung von Adafruit WS2812B RGB LED Shield
- Hochladen des Codes auf das Arduino Board
Im Laufe einiger Jahre werden RGB-LEDs aufgrund ihrer schönen Farbe, Helligkeit und verlockenden Lichteffekte von Tag zu Tag beliebter. Deshalb wird es vielerorts als Dekorationsgegenstand verwendet, ein Beispiel kann das Haus oder ein Büro sein. Wir können die RGB-Leuchten auch in der Küche und auch in einer Spielekonsole verwenden. Sie eignen sich auch hervorragend für Kinderspielzimmer oder Schlafzimmer, wenn es um stimmungsvolle Beleuchtung geht. Zuvor haben wir die NeoPixel-LEDs WS2812B und den ARM-Mikrocontroller verwendet, um einen Music Spectrum Visualizer zu erstellen. Überprüfen Sie dies, ob dies für Sie interessant ist.
Aus diesem Grund werden wir in diesem Projekt eine Neopixel-basierte RGB-LED-Matrix, Arduino- und Blynk-Anwendung verwenden, um viele faszinierende Animationseffekte und Farben zu erzeugen, die wir mit der Blynk-App steuern können. Also lasst uns anfangen!!!
Adafruit 5X8 NeoPixel Shield für Arduino
Das Arduino-kompatible NeoPixel Shield enthält vierzig individuell adressierbare RGB-LEDs, in die jeweils der WS2812b-Treiber integriert ist, der in einer 5 × 8-Matrix angeordnet ist, um dieses NeoPixel Shield zu bilden. Wenn dies erforderlich ist, können auch mehrere NeoPixel-Schilde zu einem größeren Schild verbunden werden. Zur Steuerung der RGB-LEDs ist ein einzelner Arduino-Pin erforderlich. In diesem Lernprogramm haben wir uns daher für Pin 6 des Arduino entschieden.
In unserem Fall werden die LEDs über den eingebauten 5-V-Pin des Arduino mit Strom versorgt, was ausreicht, um etwa ein Drittel der LEDs bei voller Helligkeit mit Strom zu versorgen. Wenn Sie mehr LEDs mit Strom versorgen müssen, können Sie die eingebaute Leiterbahn abschneiden und eine externe 5-V-Versorgung verwenden, um die Abschirmung über den externen 5-V-Anschluss mit Strom zu versorgen.
Den Kommunikationsprozess zwischen Blynk App und Arduino verstehen
Die hier verwendete 8 * 5-RGB-LED-Matrix verfügt über vierzig individuell adressierbare RGB-LEDs, die auf dem WS2812B-Treiber basieren. Es verfügt über eine 24-Bit-Farbsteuerung und 16,8 Millionen Farben pro Pixel. Sie kann mit der Methode „One Wire Control“ gesteuert werden. Das heißt, wir können das gesamte LED-Pixel mit einem einzigen Steuerstift steuern. Während ich mit den LEDs arbeite, habe ich das Datenblatt dieser LEDs durchgesehen, wo ich finde, dass der Betriebsspannungsbereich der Abschirmung 4 V bis 6 V beträgt und der Stromverbrauch 50 mA pro LED bei 5 V mit rot, grün, ermittelt wird. und blau bei voller Helligkeit. Es verfügt über einen Sperrspannungsschutz an den externen Stromversorgungsstiften und eine Reset-Taste am Shield, um das Arduino zurückzusetzen. Es verfügt auch über einen externen Stromeingangspin für LEDs, wenn über die internen Schaltkreise nicht genügend Strom zur Verfügung steht.
Wie in der obigen schematischen Darstellung gezeigt, müssen wir die Blynk-Anwendung herunterladen und installierenauf unserem Smartphone, wo die Parameter wie Farbe, Helligkeit gesteuert werden können. Wenn nach dem Einrichten der Parameter Änderungen an der App vorgenommen werden, erfolgt dies in der Blynk-Cloud, in der auch unser PC angeschlossen ist und bereit ist, die aktualisierten Daten zu empfangen. Das Arduino Uno ist über ein USB-Kabel mit einem geöffneten Kommunikationsport mit unserem PC verbunden. Mit diesem Kommunikationsport (COM-Port) können Daten zwischen der Blynk-Cloud und Arduino UNO ausgetauscht werden. Der PC fordert in konstanten Zeitintervallen Daten aus der Blynk-Cloud an. Wenn aktualisierte Daten empfangen werden, werden diese an Arduino übertragen und benutzerdefinierte Entscheidungen wie die Steuerung der RGB-LED-Helligkeit und der Farben getroffen. Die RGB-LED-Abschirmung befindet sich auf der Arduino-LED und ist zur Kommunikation über einen einzelnen Daten-Pin verbunden. Standardmäßig ist sie über den D6-Pin von Arduino verbunden.Die von Arduino UNO gesendeten seriellen Daten werden an das verschobene Neopixel gesendet, das dann auf der LED-Matrix reflektiert wird.
Erforderliche Komponenten
- Arduino UNO
- 8 * 5 RGB LED Matrix Abschirmung
- USB A / B Kabel für Arduino UNO
- Laptop / PC
Adafruit RGB LED Shield und Arduino - Hardware-Verbindung
Die WS2812B- Neopixel-LEDs haben drei Pins, einer für Daten und zwei für die Stromversorgung. Diese spezielle Arduino-Abschirmung macht die Hardware-Verbindung jedoch sehr einfach. Wir müssen lediglich die Neopixel-LED-Matrix oben auf Arduino UNO platzieren. In unserem Fall wird die LED über die Standard-Arduino 5V-Schiene mit Strom versorgt. Nach dem Platzieren des Neopixel Shield sieht das Setup wie folgt aus:
Konfigurieren der Blynk-Anwendung
Blynk ist eine Anwendung, die über Android- und IOS- Geräte ausgeführt werden kann, um alle IoT-Geräte und -Geräte mit unseren Smartphones zu steuern. Zunächst muss eine grafische Benutzeroberfläche (GUI) erstellt werden, um die RGB-LED-Matrix zu steuern. Die Anwendung sendet alle ausgewählten Parameter von der GUI an die Blynk Cloud. Im Empfängerbereich haben wir Arduino über ein serielles Kommunikationskabel mit dem PC verbunden. Daher fordert der PC Daten aus der Blynk-Cloud an, und diese Daten werden zur erforderlichen Verarbeitung an Arduino gesendet. Beginnen wir also mit dem Setup der Blynk-Anwendung.
Laden Sie vor dem Setup die Blynk-Anwendung aus dem Google Play Store herunter (IOS-Benutzer können sie aus dem App Store herunterladen). Melden Sie sich nach der Installation mit Ihrer E-Mail-ID und Ihrem Passwort an.
Neues Projekt erstellen:
Öffnen Sie nach erfolgreicher Installation die Anwendung und dort wird ein Bildschirm mit der Option „ Neues Projekt “ angezeigt. Klicken Sie darauf und es erscheint ein neuer Bildschirm, in dem Sie die Parameter wie Projektname, Karte und Verbindungstyp festlegen müssen. Wählen Sie in unserem Projekt das Gerät als " Arduino UNO " und den Verbindungstyp als " USB " aus und klicken Sie auf " Erstellen".
Nach der erfolgreichen Erstellung des Projekts erhalten wir eine Authentifizierungs-ID in unserer registrierten Mail. Speichern Sie die Authentifizierungs-ID zur späteren Bezugnahme.
Erstellen der grafischen Benutzeroberfläche (GUI):
Öffnen Sie das Projekt in Blynk und klicken Sie auf das Pluszeichen (+), um die Widgets zu erhalten, die wir in unserem Projekt verwenden können. In unserem Fall benötigen wir einen RGB-Farbwähler, der wie unten gezeigt als „zeRGBa“ aufgeführt ist.
Einstellen der Widgets:
Nachdem wir die Widgets in unser Projekt gezogen haben, müssen wir nun die Parameter festlegen, mit denen die Farb-RGB-Werte an Arduino UNO gesendet werden.
Klicken Sie auf ZeRGBa, dann erhalten Sie einen Bildschirm mit dem Namen ZeRGBa-Einstellung. Stellen Sie dann die Ausgabeoption auf „ Zusammenführen “ und den Pin auf „V2“, wie in der Abbildung unten gezeigt.
Arduino Code zur Steuerung von Adafruit WS2812B RGB LED Shield
Nach Abschluss der Hardwareverbindung muss der Code auf Arduino hochgeladen werden. Die schrittweise Erklärung des Codes ist unten dargestellt.
Schließen Sie zunächst alle erforderlichen Bibliotheken ein. Öffnen Sie die Arduino IDE, gehen Sie zur Registerkarte Skizze und klicken Sie auf die Option Bibliothek einschließen-> Bibliotheken verwalten . Suchen Sie dann im Suchfeld nach Blynk und laden Sie das Blynk-Paket für Arduino UNO herunter und installieren Sie es.
Hier wird die Bibliothek „ Adafruit_NeoPixel.h “ zur Steuerung der RGB-LED-Matrix verwendet. Um es einzuschließen , können Sie die Adafruit_NeoPixel- Bibliothek über den angegebenen Link herunterladen. Sobald Sie das erhalten haben, können Sie es mit der Option ZIP-Bibliothek einschließen einbinden.
#define BLYNK_PRINT DebugSerial #include #include
Dann definieren wir die Anzahl der LEDs, die für unsere LED-Matrix benötigt wird, und wir definieren die Pin-Nummer, die zur Steuerung der LED-Parameter verwendet wird.
#define PIN 6 #define NUM_PIXELS 40
Dann müssen wir unsere Blink-Authentifizierungs-ID in ein Auth- Array einfügen , das wir zuvor gespeichert haben.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Hier werden serielle Software-Pins als Debug-Konsole verwendet. Daher werden die Arduino-Pins unten als Debug-Serie definiert.
#einschließen
Innerhalb Setup, serielle Kommunikation wird Funktion initialisiert mit Serial.begin , blynk verwendet verbunden Blynk.begin und mit pixels.begin (), die LED - Matrix initialisiert wird.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }}
Innerhalb der Schleife () haben wir Blynk.run () verwendet , das nach eingehenden Befehlen von der blynk-GUI sucht und die Operationen entsprechend ausführt.
void loop () { Blynk.run (); }}
In der letzten Phase müssen die Parameter, die von der Blynk-Anwendung gesendet wurden, empfangen und verarbeitet werden. In diesem Fall wurden die Parameter einem virtuellen Pin „V2“ zugewiesen, wie weiter oben im Abschnitt „Setup“ erläutert. Die BLYNK_WRITE- Funktion ist eine integrierte Funktion, die aufgerufen wird, wenn sich der Status / Wert des zugeordneten virtuellen Pins ändert. Wir können Code in dieser Funktion wie jede andere Arduino-Funktion ausführen.
Hier wird die Funktion BLYNK_WRITE geschrieben, um am virtuellen Pin V2 nach eingehenden Daten zu suchen . Wie im Abschnitt Blink-Setup gezeigt, wurden die Farbpixeldaten zusammengeführt und dem V2-Pin zugewiesen. Wir müssen also auch nach dem Dekodieren wieder zusammenführen. Denn zur Steuerung der LED-Pixelmatrix benötigen wir alle 3 einzelnen Farbpixeldaten wie Rot, Grün und Blau. Wie im folgenden Code gezeigt, wurden drei Indizes der Matrix wie param.asInt () gelesen, um den Wert der roten Farbe zu erhalten. In ähnlicher Weise wurden alle anderen zwei Werte empfangen und in 3 einzelnen Variablen gespeichert. Anschließend werden diese Werte mithilfe der Funktion pixels.setPixelColor der Pixelmatrix zugewiesen, wie im folgenden Code gezeigt.
Hier wird die Funktion pixels.setBrightness () zur Steuerung der Helligkeit und die Funktion pixels.show () zur Anzeige der eingestellten Farbe in der Matrix verwendet.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); für (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }}
Hochladen des Codes auf das Arduino Board
Zuerst müssen wir den PORT des Arduino in der Arduino IDE auswählen, dann müssen wir den Code in Arduino UNO hochladen. Notieren Sie sich nach einem erfolgreichen Upload die Portnummer, die für unser Setup für die serielle Kommunikation verwendet wird.
Suchen Sie danach den Skriptordner der Blynk-Bibliothek auf Ihrem PC. Es wird installiert, wenn Sie die Bibliothek installieren, meine war in, "C: \ Benutzer \ PC-Name \ Dokumente \ Arduino \ Bibliotheken \ Blynk \ Skripte"
Im Skriptordner sollte sich eine Datei mit dem Namen "blynk-ser.bat" befinden, eine Batchdatei, die für die serielle Kommunikation verwendet wird und die wir mit dem Editor bearbeiten müssen. Öffnen Sie die Datei mit dem Editor und ändern Sie die Portnummer in Ihre Arduino-Portnummer, die Sie im letzten Schritt notiert haben.
Speichern Sie die Datei nach dem Bearbeiten und führen Sie die Batchdatei aus, indem Sie darauf doppelklicken. Dann müssen Sie ein Fenster wie das folgende sehen:
Hinweis: Wenn Sie dieses oben gezeigte Fenster nicht sehen können und aufgefordert werden, die Verbindung wiederherzustellen, liegt dies möglicherweise an dem Fehler bei der Verbindung des PCs mit dem Arduino-Schild. Überprüfen Sie in diesem Fall Ihre Arduino-Verbindung zum PC. Überprüfen Sie danach, ob die COM-Portnummer in der Arduino IDE angezeigt wird oder nicht. Wenn der gültige COM-Port angezeigt wird, kann er fortfahren. Sie sollten die Batchdatei erneut ausführen.
Abschließende Demonstration:
Jetzt ist es Zeit, die Schaltung und ihre Funktionalität zu testen. Öffnen Sie die Blynk-Anwendung, öffnen Sie die GUI und klicken Sie auf die Schaltfläche Wiedergabe. Danach können Sie eine beliebige Farbe auswählen, die auf der LED-Matrix reflektiert werden soll. Wie unten gezeigt, habe ich in meinem Fall die Farbe Rot und Blau ausgewählt. Diese wird in der Matrix angezeigt.
In ähnlicher Weise können Sie auch versuchen, mithilfe dieser LED-Matrizen verschiedene Animationen zu erstellen, indem Sie die Codierung ein wenig anpassen.