Inhaltsverzeichnis:

MQTT-Stimmungslichter mit ESP32 - Gunook
MQTT-Stimmungslichter mit ESP32 - Gunook

Video: MQTT-Stimmungslichter mit ESP32 - Gunook

Video: MQTT-Stimmungslichter mit ESP32 - Gunook
Video: Garagen Überwachung mit einem ESP12 und Tasmota 2024, Juli
Anonim
MQTT Stimmungslichter mit ESP32
MQTT Stimmungslichter mit ESP32

Ich war schon seit einiger Zeit versucht, auf den LED-Zug aufzuspringen, also rannte ich raus und nahm einen LED-Streifen zum Spielen. Am Ende habe ich diese Stimmungslichter gemacht. Sie können mit MQTT gesteuert werden, wodurch alle möglichen Smarts hinzugefügt werden können.

Dies ist ein gutes Wochenendprojekt, wenn Sie nichts anderes vor haben und sich die Hände schmutzig machen wollen, um etwas zu machen.

Beachten Sie, dass der Zweck dieses Instructable darin besteht, mein Projekt zu dokumentieren und Ideen mit anderen zu teilen, und nicht unbedingt solide Anweisungen und Methoden bereitzustellen. In diesem Sinne, lesen Sie weiter!

Lieferungen

Elektronik:

  • 1x ESP32-Entwicklungsboard
  • 1x 0,96" I2C OLED-Display
  • 1x Summer
  • 1x Fassbuchse
  • 1x 12V Netzteil (Strom hängt von der Länge Ihres Streifens ab)
  • 1x LM2596 Abwärtswandler
  • 1x Common-Anode-RGB-LED-Streifen
  • 3x IRFZ44N-MOSFETs
  • 3x BC547-Transistoren
  • 3x 10kΩ Widerstände
  • 4x 100Ω Widerstände
  • 1x Prototyping-Board
  • 4x Schraubklemmen
  • Stift- und Buchsenleisten
  • Draht (ich habe einsträngige verwendet)

Andere Hardware und Tools:

  • Ihr Wunschmaterial für ein Gehäuse (ich habe MDF verwendet)
  • Flaches, leitfähiges Material für Berührungskontakte (ich habe ein dünnes Aluminiumblech verwendet)
  • Sägen, Bohrer, Schleifpapier usw.
  • Lötkolben und Freunde
  • Heißkleber

Ich würde dringend empfehlen, sich nicht für einen ESP32 mit integriertem OLED-Display zu entscheiden, da es sehr schwierig wird, dafür einen gut ausgerichteten Ausschnitt in Ihrem Gehäuse zu machen.

Schritt 1: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik

Der beigefügte Schaltplan zeigt alle erforderlichen Anschlüsse, außer den Touch-Eingängen. Es gibt auch ein relativ vages Steckbrettdiagramm, das zeigt, wie ein MOSFET verdrahtet wird, falls der Schaltplan nicht ausreicht.

Leistung

Ein LM2596-Abwärtswandler setzt die 12 V von der Stromversorgung auf 5 V für die VIN des ESP herunter. Stellen Sie sicher, dass Ihr Netzteil für die Länge des verwendeten LED-Streifens richtig ausgelegt ist. Mein 2 Meter langer Streifen zieht etwas mehr als 2 Ampere.

Pins und Peripheriegeräte

Vier Touch-Pins werden für Touch-Eingaben verwendet. Mein ESP32-Board wurde mit einem angeschlossenen OLED-Display geliefert, dessen I2C-Pins fest verdrahtet waren. Dies verwendet vier PWM-Pins, einen für jede Farbkomponente (rot, grün und blau) und einen für den Summer.

MOSFET-Durcheinander

MOSFETs wurden gewählt, um die schnellen Schaltzeiten für PWM und relativ hohe Ströme zu bewältigen. Für jede Farbkomponente gibt es einen MOSFET. Ich habe separate NPN-BJTs (BC547) zusammen mit einem Pull-up-Widerstand verwendet, um die IRFZ44Ns anzusteuern, da die 3,3-V-Digitalsignale vom ESP32 möglicherweise nicht ausgereicht haben, damit die MOSFETs so viel Strom wie nötig leiten. MOSFETs auf Logikebene wie den IRLZ44N gibt es, aber ich habe sie erst entdeckt, nachdem ich alles zusammengelötet hatte. Wie auch immer, mein Streifen, der ~ 2A zeichnet, funktioniert gut.

Löten

Schraubklemmen werden verwendet, um an den LED-Streifen anzuschließen, und Buchsenleisten zum Anschließen des ESP32, falls ich einen von ihnen ersetzen wollte, ohne Dinge zu entlöten. Das Löten dauerte ungefähr zwei Stunden und war sehr einfach. Ich habe meinem LED-Streifen auch einige längere Drähte gegeben.

Warum ich mich für den ESP32 entschieden habe

Es hat WiFi und Bluetooth an Bord (obwohl ich im Moment nur WiFi verwendet habe), und ich hatte eines herumliegen, das ich unbedingt benutzen wollte. Die Touch-Eingänge waren auch für die Schnittstelle am Controller praktisch, da sie nur einen Draht zu einem Kontakt benötigen. Wenn Sie möchten, könnte der ESP32 jedoch leicht durch einen Mikrocontroller wie den ESP8266 ersetzt werden.

Schritt 2: Code

Ich habe das Arduino-Toolset (eigentlich die Arduino-Erweiterung für VS Code:)) verwendet, um dies zu programmieren. Es gibt großartige Tutorials wie dieses für die ersten Schritte mit der ESP32- und Arduino-IDE, falls Sie dies noch nicht getan haben.

Es stehen vier verschiedene Modi zur Verfügung: statische Farbe, zufällige Farbe, Rot-Alarm und Blau-Alarm. Es gibt vier Berührungseingaben für Aufwärts, Abwärts, Weiter und Alarmstufe Rot. Touch verwendet Interrupts.

Ich habe auch MQTT zu den Werken hinzugefügt, damit ich es über WLAN steuern kann. Ich versuche, ein Gefühl für die großen Drei der Web-App (HTML, CSS, JS) zu bekommen, also habe ich eine (aber ziemlich hässliche) Webseite mit Star Trek-Thema entworfen, die mit einem MQTT-Broker kommuniziert, um die Stimmungslichter zu steuern.

Mein gesamter Code ist im Anhang zu finden, zusammen mit einer Kurzanleitung, deren Dateiname Sie möglicherweise ändern möchten, um ihn zu einem Markdown zu machen. Verschieben Sie alle Dateien in einen Ordner mit dem Namen "ESP32MQTTMoodLighting", bevor Sie ihn mit Arduino öffnen.

Beachten Sie, dass mein Code funktioniert, aber wahrscheinlich nicht der beste ist. Aber das sollte keine Rolle spielen, denn du wirst sowieso deine eigenen schreiben, oder?:)

Schritt 3: Gehäuse und Montage

Gehäuse und Montage
Gehäuse und Montage
Gehäuse und Montage
Gehäuse und Montage
Gehäuse und Montage
Gehäuse und Montage
Gehäuse und Montage
Gehäuse und Montage

Während des Lockdowns war das einzige Material, das ich in die Finger bekam, eine 5 mm MDF-Platte. Ich machte die großen Schnitte mit einer normalen Bügelsäge und gab alles einen guten Sand. Ein doppelter Anstrich mit Emaillefarbe beendete die Hauptvorbereitung.

Rückseite

Ich wollte, dass meine Box leicht zu öffnen ist, also habe ich meine gesamte Elektronik mit vier M2-Leiterplatten-Abstandshaltern an der Rückseite montiert. In mein Perfboard waren bereits M2-Löcher gebohrt. Meine Abstandshalter hatten unten kleine Gewindestummel, die ich im MDF befestigen wollte. Aber ich hatte keinen M2-Bohrer. Also markierte ich die Position jedes Lochs und benutzte einen kleinen Schlitzschraubendreher, um die Löcher manuell auszumeißeln. Grob, aber effektiv. Die Durchmesser der Löcher waren nur wenig kleiner als die des Gewindeabschnitts des Abstandshalters. Ich habe die Abstandshalter ein paar Mal in und aus den Löchern gedreht, was sie erweitert und fast eingefädelt hat.

Schließlich saßen die Abstandshalter fest in ihren Löchern und hielten das Perfboard an Ort und Stelle. Da mein MDF sehr dick war, zeigte sich nichts auf der anderen Seite.

Ich bohrte das Loch für die Strombuchse und machte einen Schlitz für die LED-Streifendrähte, direkt darunter, wo sich meine Schraubklemmen befanden.

Frontblende

OLED-Display-Ausschnitt

Ich begann meinen Ausschnitt für die OLED mit ein paar Starterlöchern und feilte sie auf Größe. Es endete damit, dass es sehr wackelig und falsch ausgerichtet war. Das Nicht-Überprüfen von Messungen mag dabei eine Rolle gespielt haben, aber ersparen Sie sich einige Mühe, indem Sie kein Entwicklungsboard mit eingebauter OLED verwenden. Es ist viel einfacher, das Display einfach an Ihrem Loch zu montieren.

Verbinder

Ich habe einen Stecker aus einigen männlichen und weiblichen Headern hergestellt. Ein Ende war mit den Drähten verbunden, die mit den Berührungskontakten auf der Vorderseite verbunden waren, während die andere Seite Drähte zu den Berührungseingängen des ESP führte. Damit konnte die Frontplatte bei Bedarf komplett von der Rückseite entfernt werden, ohne die Lötstellen zu stören. Wenn Sie etwas anderes an Ihrer Frontplatte montieren, möchten Sie möglicherweise auch einen Anschluss dafür herstellen.

Touch Pads

Die Berührungskontakte wurden aus etwas Aluminiumblech hergestellt. Ich schneide es, um die vier benötigten Pads zu erhalten, und vergewisserte mich, dass es keine gezackten Kanten gab. Dann bohrte ich Löcher in die Frontplatte, gerade groß genug für einen Draht. Damit das Lötzinn an den Pads haften bleibt, habe ich einen kleinen Teil einer Seite mit Sandpapier abgerieben, um die oxidierte Schicht zu entfernen, und dann schnell abgewischt, um alle Partikel zu entfernen. Ich führte jeden Draht durch das entsprechende Loch in der Frontplatte und lötete jeden an sein Pad. Stellen Sie sicher, dass Ihr Lötmittel auf der Rückseite keine zu große Ausbuchtung erzeugt, da dies das Pad nicht bündig mit dem Panel abschließen kann.

Schließlich fügen Sie etwas Heißkleber auf die Rückseite jedes Pads und drücken Sie sie auf die Frontplatte. Wenn Sie zu viel hinzufügen, sitzen die Pads angehoben von der Platte. Entfernen Sie überschüssigen Kleber, der möglicherweise unter den Pads herausgedrückt wurde.

Der Rest

Die Seitenteile sind recht übersichtlich. Ein Schnellzugriffsloch zu den Schraubklemmen war mehr Mühe als es wert war. Ich habe die Seitenwände mit der Frontplatte heiß verklebt.

Klettverschluss an zwei Kanten hält das Vorderteil an der Rückwand. Durch die Lücken kann der Ton des Summers entweichen. Wenn du einen besseren Job machst als ich, solltest du nicht mit etwas enden, das aussieht wie das Vorschulhandwerk eines 5-Jährigen:)

Mein LED-Streifen hatte eine klebrige Rückseite (ich bin sicher, Ihrer auch). Ich habe meine so montiert, dass das Licht von der Wand diffundiert.

Schritt 4: Stecken Sie es ein

Steck es ein!
Steck es ein!

Sie sollten jetzt ein komplettes MQTT-gesteuertes Stimmungslicht haben. Ich habe meine an meinem Schreibtisch montiert, wo sie der manchmal eintönigen Arbeit einen Hauch von Farbe verleiht. Die Nacht ist die ideale Zeit, um die Leute damit zu beeindrucken.

Ich hoffe, es hat Ihnen Spaß gemacht, dieses Instructable zu lesen und ein paar Ideen für Ihre eigenen Projekte zu bekommen. Wie ich bereits erwähnt habe, bin ich ein Anfänger, und dies ist mein erstes Instructable. Ich würde mich über Tipps und Kommentare freuen.

Empfohlen: