Inhaltsverzeichnis:

Bluetooth-gesteuerter NeoPixel-Weihnachtsbaum - Gunook
Bluetooth-gesteuerter NeoPixel-Weihnachtsbaum - Gunook

Video: Bluetooth-gesteuerter NeoPixel-Weihnachtsbaum - Gunook

Video: Bluetooth-gesteuerter NeoPixel-Weihnachtsbaum - Gunook
Video: LED Matrix mit Reaktion auf Musik 2024, November
Anonim

Haben Sie sich gefragt, wie Sie dieses Jahr IoT (Internet of Things) in Ihren Weihnachtsbaum integrieren können? Nun, es ist durchaus möglich! Ich persönlich nenne dieses Projekt "ArduXmas", und es besteht aus einem RGB-NeoPixel-LED-Streifen, der von einem Arduino-Board über Bluetooth gesteuert wird. Dies ist ein anfängerfreundliches Projekt und eine großartige Einführung in Arduino e IoT. Holen Sie sich also Ihre Werkzeuge und machen Sie es!

Lieferungen:

Für dieses Projekt benötigen Sie:

  • Arduino (ich habe Nano verwendet, aber jede Version wird funktionieren, stellen Sie nur sicher, dass Sie Ihr Board richtig mit Strom versorgen)
  • NeoPixel WS2812b LED-Streifen
  • HC-06 Bluetooth-Modul
  • 5V 2A DC-Netzteil
  • DC Barrel Power Jack/Connector
  • Phenolitplatte zur Aufnahme der Bauteile
  • Gehäuse Fall
  • Android-Smartphone mit installierter Blynk-App

Schritt 1: Die Schaltung

Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn

Die Elektronik dieses Projekts ist sehr einfach. Das Arduino, das Bluetooth-Modul und der LED-Streifen werden von der 5V-Versorgung gespeist (stellen Sie sicher, dass alle GNDs miteinander verbunden sind). Die Arduino-Platine wird über den 5V-Anschluss mit Strom versorgt (ACHTUNG: Die Stromversorgung des Arduino über den 5V-Anschluss kann Ihr Board beschädigen, wenn Sie nicht aufpassen. Stellen Sie sicher, dass Sie ein geregeltes 5V-Netzteil verwenden und die +5V. nicht verwechseln und GND-Drähte). Der von Ihrem Netzteil gelieferte Strom hängt von der Länge Ihres LED-Streifens ab. Ich verwende 180 LEDs mit 40% der vollen Helligkeit und 2 Ampere halten gut, aber stellen Sie immer sicher, dass Sie den notwendigen Strom liefern (Denken Sie daran: Jede RGB-LED verbraucht etwa 20 mA + 20 mA + 20 mA = 60 mA).

Das HC-06 Bluetooth-Modul ist mit den Pins 0 und 1 (RX, TX) des Arduino verbunden. Denken Sie daran, dass zur Verwendung dieses Moduls der RX-Pin des HC-06 mit dem TX des Arduino und der TX-Pin des HC-06 verbunden ist mit dem RX des Arduino verbunden. Dies sind die seriellen Anschlusspins des Boards und werden verwendet, um die Befehle vom Smartphone zu empfangen. Ich habe einen Schalter hinzugefügt, um das Modul einfach ein- / auszuschalten, damit ich es beim Programmieren der Platine ausschalten kann, sonst kann der Computer nicht mit dem Arduino kommunizieren.

In der Schaltung ist der Datenausgangspin, der zum LED-Streifen führt, der digitale Pin 2, aber Sie können einen beliebigen PWM-Pin auswählen und ihn entsprechend im Code ändern (Denken Sie daran: NeoPixels LED-Streifen haben eine Richtung für das Datensignal. Achten Sie immer auf die Pfeilsymbole in Ihrem Streifen).

Um die Verbindungen herzustellen, verwende ich eine Phenolitplatte mit Löchern, damit sie leicht gelötet und nächstes Jahr auseinander genommen werden kann.

Schritt 2: Das Gehäuse

Das Gehäuse
Das Gehäuse
Das Gehäuse
Das Gehäuse
Das Gehäuse
Das Gehäuse

Für das Gehäuse verwende ich nur das Netzteilgehäuse eines alten Notebooks, das gut zu den Komponenten passt. Sichern Sie alles mit Heißkleber und lassen Sie Löcher für den USB-Anschluss des Arduino, den Schalter des HC-06, den DC-Anschluss und den LED-Streifenanschluss.

Schritt 3: Blyn-App

Blynk-App
Blynk-App
Blynk-App
Blynk-App
Blynk-App
Blynk-App

Für die Kommunikation mit dem Arduino verwenden wir die Blynk-App. Mit Blynk können Sie ganz einfach Schnittstellen erstellen, um Daten vom Smartphone an die Hardware zu senden oder umgekehrt, es ist auch möglich, die Ports des Mikrocontrollers direkt zu steuern, ohne eine Codezeile zu ändern!

HAFTUNGSAUSSCHLUSS: Leider funktioniert diese Anwendung nur für Android-Smartphones, da sich die Bluetooth-Funktion noch in der Beta-Phase befindet und noch nicht für IOS verfügbar ist. Dies bedeutet auch, dass das Projekt nicht als eigenständige App exportiert werden kann.

Richten Sie Ihre App so ein, dass sie das Authentifizierungstoken für Ihr Projekt in Ihrem E-Mail-Posteingang erhält (diese Authentifizierung wird später beim Arduino-Code benötigt). Auf der Website von Blynk gibt es eine großartige Schritt-für-Schritt-Anleitung dazu, sieh es dir an:

Für dieses Projekt verwende ich zwei Schaltflächen zum Einschalten von 2 vorcodierten Lichtanimationen; eine RGB-Komponente zum Einstellen der Farbe des LED-Streifens; ein Schieberegler zur Steuerung der Helligkeit und eine Bluetooth-Komponente zum Verbinden mit dem Arduino. Überprüfen Sie die Bilder, um zu sehen, wie jede Komponente konfiguriert ist. Achten Sie auf die für dieses Projekt verwendeten Pins, da wir die virtuellen Pins von Blynk verwenden. Dies ist eine nette Funktion, die es ermöglicht, Daten von der App an die Hardware zu senden. Weitere Informationen zu virtuellen Pins:

Schritt 4: Arduino-Code

Arduino-Code
Arduino-Code

Es ist Zeit, etwas Code zu erstellen! Die von mir bereitgestellte Datei hat die grundlegende Struktur zum Ausführen des Projekts, Sie können sie jedoch nach Belieben ändern. Damit es jedoch ordnungsgemäß funktioniert, müssen Sie das auth-Zeichen durch das Token ersetzen, das Sie in Ihrem E-Mail-Posteingang erhalten haben. Denken Sie auch daran, die Variablen LED_PIN und LED_COUNT entsprechend Ihrem Setup zu ändern.

Das Verhalten der LEDs wird durch die Variable anim bestimmt, die sich ändert, wenn eine Anfrage von der App eingeht. Sie können beliebig viele Möglichkeiten für Animationen hinzufügen, fügen Sie einfach Ihre Funktion der Schalterstruktur in der Funktion toggleAnimation() hinzu und weisen Sie den entsprechenden virtuellen Pin-Wert oben im Code zu.

Die in loop() laufende Animation ist an einen Timer gebunden, der in 100ms-Intervallen läuft. Dies ist notwendig und ich empfehle nicht, es zu ändern, da es den Befehl Blynk.run() stört und die Verbindung beendet wird, wenn die Blynk-Bibliothek in kurzer Zeit zu viele Anfragen erkennt.

Empfohlen: