Ein RGB LED Strip bietet eine einfache und kostengünstige Möglichkeit zur (indirekten) Beleuchtung. In diesem Blog-Eintrag beschreibe ich wie es möglich ist, mit einem ESP8266 Mikrocontroller und etwas Arduino Code, eine solchen RGB LED Strip über das eigene WLAN zu steuern. Der ESP8266 stellt dafür im Heimnetzwerk eine REST API zur Verfügung. Diese kann sowohl zur Automatisierung im Smart Home oder aber auch direkt auch zur Steuerung über Computer oder Smartphone genutzt werden.

ESP8266 Mikrocontroller

Der ESP8266 ist ein 32bit Mikrocontroller der chinesischen Firma espressif. Die ersteren Versionen waren wohl nicht besonders stabil, inzwischen erfreut sich der verbesserte Chip dank seiner Features und des Preises aber einer wachsenden Gemeinde von Fans. Es gibt verschiedene Module, die alle Gemeinsam haben, dass sie für den Preis von ca. 2 Euro eine günstige Möglichkeit zum basteln mit Netzwerk-Fähigkeit (WLAN) sind. Die Unterschiede liegen vor allem in der Anzahl den nutzbaren Pins (GIPOs) und der Größe des Flash Speichers. Stefan Frings hat zu den Modulen eine schöne Übersicht erstellt.

Der ESP8266 lässt sich (auch) mit der Arduino Plattform programmieren was insbesondere für Bastler und Hobby-Elektronik den Ein- und Umstieg erleichtert. Die Chips brauchen eine Spannungsversorgung von 2,5 bis 3,6V, so dass man sie in einem 3,3V Stromkreis mit vielen aus dem Arduino Bereich bekannten Sensoren nutzen kann. Mit einigen Tricks lässt sich zudem der Energieverbrauch stark reduzieren, so dass sich Projekte fernab der Steckdose realisieren lassen.

Besonders viele Fans hat der ESP8266 aufgrund seiner geringen Kosten und Konnektivität im Bereich Hausautomatisierung gefunden. Das gilt sowohl für Selbstbauprojekte als auch für fertige Produkte. Die beliebten Sonoff * Geräte basieren zum Beispiel auf den Chips.

Für den Einstieg in die ESP8266 Welt ist ein Entwicklerboard wie das NodeMCU * zu empfehlen. Dieses bring neben dem Chip schon ein paar Hilfsschaltungen zur Programmierung und Stromversorgung mit.

Aufbau der Hardware zur RGB LED Wifi Steuerung

Um einen RGB LED Strip mit einem ESP8266 jetzt „WLAN-fähig“ zu machen braucht es neben dem Mikrocontroller und dem LED Strip selbst eigentlich nur noch drei Transistoren und die passende Schaltung.

Benötigte Hardware

Bezeichnung Preis
RGB LED Strip * ca. 19,00 Euro
NodeMCU Entwickler Board * ca. 8,00 Euro
3x IRLB 8721 MOSFET N-Channel ca. 2,00 Euro

Für den Aufbau wird außerdem ein Experimentier Steckboard * mit entsprechenden Kabel benötigt. Wer ein solches noch nicht besitzt und sich an den Nachbau machen möchte, sollte am besten gleich zu einem Set * greifen, dass neben dem Steckbrett und Kabel noch weitere Bauteile enthält die man häufiger benötigt.

Steckbrett Prototyp

Fritzing: Prototypischer Aufbau zur Steuerung des RGB LED Stip

In dieser Schaltung wurde schon eine eigene 3,3V Spannungsversorgung für das NodeMCU Modul basierend auf den 12,0V die wir für den RGB LED Strip sowieso benötigen integriert. Für Testzwecke ist dies nicht zwingend nötig, da wir das NodeMCU Modul auch direkt über USB mit Strom versorgen können. Zu der Spannungsversorgung gleich noch etwas mehr.

Prototyp mit NodeMCU, MOSFETs und RGB LED Stip

Aufbau auf gefertigter Platine mit ESP-12E

Theoretisch kann man das Projekt mit dem Steckbrett abschließen und direkt weiter zum Punkt Software springen (bzw. damit erst mal den Prototyp testen und weiterentwickeln). Wer die ganze Schaltung später aber hinter dem Schrank verstecken möchte, dem rate ich zu einer gefertigten Platine. Die Gründe sind schnell aufgezählt: Zum einen ist die Schaltung deutlich kleiner aber trotzdem robuster und auch die Querschnitte der einzelnen Leiter können besser dimensioniert werden.

Eine eigene Platine kann man theoretisch auch mit einem NodeMCU Modul aufbauen und dieses verlöten, ich habe mich allerdings dafür entscheiden ein ESP-12E Modul zu nehmen und nur die benötigten Funktionen des NodeMCU nachzubauen.

Liste der benötigten Bauteile

Zusätzlich bzw. als Alternative zu den oben aufgeführten Teilen benötigen wir für den Aufbau mit einem ESP-12E auf einer Platine noch die folgenden Teile:

Bezeichnung Preis
ESP-12E Modul * (als Alternative zum NodeMCU) ca. 4,00 Euro
LD1117V33 Spannungsregler * ca. 5,00 Euro
2x 100nF Kondensator * ca. 4,00 Euro
10uF Kondensator * ca. 4,00 Euro
4x 10k Widerstand * ca. 2,00 Euro
2x DIP-4 Drucktaster * ca. 1,00 Euro

Ich habe an dieser Stelle nur Beispiel-Links zu Amazon gesetzt. Dort erwirbt man meistens gleich mehrere der Bauteile. Wie bei vielen elektronischen Bauteilen handelt es sich pro Bauteil um einen „Cent-Artikel“ die es teilweise günstiger bei Reichelt, Conrad oder auch AliExpress * gibt.

Schaltplan

Eagle Schaltplan des RGB LED Controller mit ESP-12

Der Schaltplan für den Aufbau mit einem ESP-12E ist nur leicht komplexer. Wir müssen zwei wesentliche Funktionen des NodeMCU nachbauen: Die Spannungsversorgung und was wir zum programmieren des Chips brauchen.

Ganz rechts in der Schaltung finden wir die drei aus dem Prototypen bekannten MOSFET vom Typ IRLB 8721. Diese sind mit GND, dem ESP-12E und einer Anschlussleiste zum späteren Anschluss des RGB Strip verbunden. Die 12V Eingangsspannung leiten wir ein Mal direkt an die Anschlussleiste des RGB Strip weiter und schalten parallel dazu den LD1117V33 Spannungsregler wie im Datenblatt beschreiben. Jetzt haben wir eine stabile 3,3V Versorgung zum Betrieb unseres Mikrocontroller. Der Kondensator C3 sowie die Widerstände R1 bis R4 werden im Datenblatt für den ESP-12E für eine verbesserte Stabilität empfehlen bzw. dienen als Pull-Up Widerstände für die beiden Taster S1 (Flash) und S2 (Reset) die später das programmieren erleichtern. Hierzu empfiehlt es sich auch die TX und RX Pins sowie die Spannungsversorgung des ESP-12E auf eine Pin-Leiste zu legen .

Platine zum Aufbau

Die Platinen habe ich bei ALLPCB * produzieren lassen. Ich habe den Service vor kurzem entdeckt und muss sagen das ich mit dem Preis-Leistung Verhältnis äußerst zufrieden bin. Früher habe ich Leiterbahnen noch mit Edding auf mit Kupfer beschichtete Platten gezeichnet, die Platine dann geätzt, per Hand gebohrt und bestückt. Neben dem Arbeitsaufwand war das immer mit Folgeaufwand wie dem ordentlichen Entsorgen der benötigten Chemikalien verbunden und sicher auch nicht ganz ungefährlich. Die Variante am Rechner zu entwickeln und die Produktion durch in Auftrag zu geben gefällt mir deutlich besser.

Bisher habe ich neben dem RGB Wifi Controller noch eine zweite Platine ähnlicher Größe bei ALLPCB anfertigen lassen. Die Produktions- und Lieferzeit ist dafür, dass die Produktion & Versand aus China erfolgen mit rund einer Woche Laufzeit absolut zufriedenstellend. Einziger Nachteil ist, dass man immer gleich mindesten 5 Platinen bestellen muss.

Platinen von ALLPCB Deteilansicht der Platine von ALLPCB Bestückte Platine

Das bestücken der Platine mit den Bauteilen geht mit etwas Übung sehr schnell von der Hand. Die Nachdem die Platine mit den Bauteilen bestückt ist kann diese dann in einem kleinem Gehäuse untergebracht werden. Bei dem Gehäuse unbedingt auf Öffnungen für die Lüftung achten. Beim Spannungsregler ist zudem ein kleiner Kühlkörper absolut zu empfehlen, bei den MOSFETs sind diese eher optional.

Aufbau in Gehäuse verschraubt und verkabelt.  Aufbau beim Programmieren mit USB zu TTL Serial FTDI Adapter Gehäuse nach dem Zusammenbau

Beim Anschluss von Stromversorgung und Netzteil an die Platine gibt es viele denkbare Optionen. Ich habe zum Beispiel auf der Platine verwendet Anschlussklemmen, man könnte die Kabel aber auch direkt verlöten. In das Gehäuse habe ich eine DIN Buchse eingebaut und mir ein DIN Stecker Kabel für den RGB LED Strip gelötet. Der Vorteil ist, dass die DIN Stecker-/Buchsenkombination beim Stecken verpolungssicher ist. Für die Stromversorgung habe ich im Gehäuse eine Buchse für Hohlstecker eingebaut. Dadurch konnte ich das mit dem RGB LED Strip gelieferte Netzteil weiterverwenden.

Software zur RGB LED Wifi Steuerung

Wie schon erwähnt ist in meinen Augen einer der großen Vorteile der ESP8266 Microcontroller, dass sich dieser mit der Arduino Plattform und seiner C-ähnlichen Programmiersprache und insb. den vielen Bibliotheken und Beispielen programmieren lässt. Damit das funktioniert muss man im Board Manager der IDE noch die ESP8266 Boards hinzufügen. Dazu einfach die Einstellungen öffnen und unter „Zusätzliche Boardverwalter-URLs“ die URL http://arduino.esp8266.com/stable/package_esp8266com_index.json eintragen. Anschließend kann die esp8266 Platform unter Werkzeuge > Boards > Boardverwalter installiert werden. Eine ausführlichere Anleitung dazu findet ihr beim ESP8266 Arduino GitHub Projekt

Hinweis, Juni 2022: Der Code auf GitHub wurde inzwischen etwas überarbeitet. Aktuell können zwischen Code und  Artikel einige Unstimmigkeiten drin sein.

Ich habe eine für den RGB LED Controller eine kleine REST-API zur Steuerung geschrieben. Diese kann man entweder programmatisch zur Automatisierung nutzen oder man nutzt die ebenfalls integrierte, grafische Oberfläche und steuert seinen RGB LED Strip mit dem Controller dadrüber.

Der Code für das ganze Projekt ist in meinem esp8266-arduino-wifirgb Projekt auf Github zu finden. Wenn ihr das Projekt nachbaut, das Github-Projekt klonen oder downloaden und dann in die Arduino IDE importieren. Anschließend müssen vor dem aufspielen auf den Mikrocontroller noch einige Anpassungen vorgenommen werden.

Konfiguration

Im Haupt-Sketch des Arduino Projektes, der WifiRGB.ino müssen jetzt ein paar Anpassungen gemacht werden. Für Arduino Einsteiger: Das ist der erste Tab, der mit WifiRGB beschriftet ist.

Netzwerkeinstellungen

Als Erstes müssen die Netzwerkeinstellungen an das eigene WLAN angepasst werden:

const char* ssid = "your_ssid";
const char* password = "your_wifi_password";
const char* deviceName = "wifi-rgb";

Der deviceName ist dabei frei wählbar, solange es kein Gerät mit dem gleichen Namen im Netzwerk gibt.

Ich empfehle die Netzwerkeinstellungen manuell festzulegen und eine feste IP-Adresse zu vergeben. So ist der Controller später immer unter der gleichen Adresse ansprechbar.

IPAddress clientIP(192, 168, 178, 250); //the IP of the device
IPAddress gateway(192, 168, 178, 1); //the gateway
IPAddress subnet(255, 255, 255, 0); //the subnet mask

Wenn ihr stattdessen DHCP nutzen möchtet, könnt ihr die drei Zeilen ignorieren und müsst die Zeile

WiFi.config(clientIP, gateway, subnet);

entweder mit zwei // einkommentieren oder ganz entfernen. Beim Booten gibt der RGB LED Wifi Controller später die IP-Adresse über die Serielle Schnittstelle aus. Da man aber bestimmt nicht immer einen Seriellen Monitor angeschlossen hat muss man die Adresse ggf. auch auf anderem Weg herausfinden. Daher meine Empfehlung für eine feste IP.

RGB Pins anpassen

Wenn mein Schaltplan eins zu eins verwendet wird, können die folgenden Zeilen einfach so stehen bleiben. Wer aber eigene Anpassungen vornehmen möchte oder beim verlöten zwei Kabel vertauscht hat kann mit den folgenden drei Zeilen die RGB Pins anpassen.

#define REDPIN 12
#define GREENPIN 14
#define BLUEPIN 5

Ich habe die drei Zeilen übrigens gebraucht, weil in meinem ESP-12 Eagle Package die Package Pins des ESP-12 für das Board nicht richtig belegt waren…

Verbindungsanzeige über interne LED

Im Standard habe ich die LED des ESP-12 so konfiguriert, dass diese sobald die WLAN Verbindung hergestellt ist leuchtet. Wer eine eigene LED verwenden möchte kann den Pin in der Zeile

#define BUILTIN_LED 2

ändern. Alternativ kann man auch die Zeilen

pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output
digitalWrite(BUILTIN_LED, LOW); // Turn the LED ON by making the voltage LOW after wifi is connected

auskommentieren oder entfernen um die Funktion ganz zu entfernen wenn die Statusanzeige stört.

Flashen der Firmware auf den ESP8266

Ist man mit den individuellen Anpassungen fertig kann den Sketch kompilieren und auf den ESP8266 kopieren. In der Arduino IDE geht das mit einem Klick, man muss lediglich vorher den Chip direkt per USB Kabel (NodeMCU) oder mit einem USB zu TTL Serial FTDI Adapter * (eigene Platine mit ESP-12) anschließen und den richtigen COM Port auswählen. Das NodeMCU Board ist in der IDE hinterlegt, für den ESP-12E habe ich die folgenden Einstellungen verwendet.

Programmiereinstellungen ESP12

Beim Programmieren des ESP8266 (egal ob ESP12 oder NodeMCU) sollte man zur Sicherheit die 12V Spannungsversorgung für den RGB LED Strip trennen.

REST API

Sobald der Controller gestartet ist wartet dieser unter der URL http://ip-adress/api/v1/state auf Befehle. Zur Steuerung muss ein HTTP POST Request an die URL gesendet werden. Der Body muss dabei einen JSON mit entweder einem RGB-Farbwert oder einen HSV-Farbwert enthalten.

Die Werte im JSON selbst sind denke ich selbsterklärend:

RGB HSV
{
  "state": "ON",
  "brightness": 100,
  "color": {
    "mode": "rgb",
    "r": 255,
    "g": 125,
    "b": 75
  },
  "mode": "SOLID"
}
{
  "state": "ON",
  "brightness": 100,
  "color": {
    "mode": "hsv",
    "h": 250,
    "s": 50,
    "v": 50
  },
  "mode": "SOLID"
}

Der Parameter mode ist ein bisschen vorweg gegriffen, da aktuell nur eine Farbe unterstützt wird. Wahrscheinlich werde ich hier in Zukunft aber noch mehr Modi einbauen.

Benutzeroberfläche

Wem das ganze jetzt etwas zu technisch und theoretisch war und es lieber bunt und praktisch mag, der kann nach dem starten des Controllers mit seinem Webbrowser die Adresse http://ip-adress/ui aufrufen.

Im Hintergrund passiert hier nichts anderes, als dass Befehle an die oben vorgestellte REST-API gesendet werden.

Ausblick

Mit dem aktuellem Stand lässt sich bereit vieles realisieren. In Verbindung mit Plattformen wie ioBroker oder openHAB lässt sich der RGB LED Strip dank der API einfach integrieren. Damit sind der Automatisierung keine Grenzen mehr gesetzt. Auch eine Steuerung über Amazon Alexa * oder Apple Homekit lässt sich mit solchen Plattformen sehr einfach einrichten.

Die Software kann (und soll) natürlich auch noch weiterentwickelt werden. Auf der ToDo-Liste stehen ein einfacheres Set-Up mit einem eigenen Netzwerk zum Einrichten, weitere Funktionen für das ansteuern des Lichtes wie pulsieren oder Übergänge. Neben REST sind auch andere Protokoll-Implementierungen wie MQTT denkbar. Zu guter Letzt hat die grafische Oberfläche auch noch Luft nach oben.

Disclosure: Ich habe in diesem Artikel sogenannte Affiliate-Links verwendet und sie mit einem „*“ gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhalte ich eine Provision vom Verkäufer, für den Besteller entstehen dabei keine Mehrkosten.


101 Kommentare

Tobias Friedrich · 5. August 2018 um 22:09

Hallo Chris,
ich finde die Anleitung wirklich super!
Ich hab noch nie so eine Platine selbst gemacht, kannst du mir das Layout zukommen lassen?

Vielen Dank
Beste Grüße
Tobias

    Chris · 6. August 2018 um 19:28

    Hallo Tobias,

    ich habe dir die Dateien mal hochgeladen. Bei der Projektdatei bin ich mir jetzt gerade nicht sicher, das GERBER File ist definitiv falsch. Die verwendete ESP-Library in EAGLE hatte vertauschte Pins, so dass die Belegung nicht stimmte. Das kann man in dem Arduino Software-Sketch aber korrigieren.

    Die Eagle Projektdatei: https://chrisklinger.de/wp-content/uploads/2018/08/WifiRGB_eagle.zip
    GERBER Dateien: https://chrisklinger.de/wp-content/uploads/2018/08/WifiRGB_gerber.zip

    Viele Grüße
    Chris

      Matthes · 11. Mai 2019 um 15:04

      Liegt der Fehler der GERBER Dateien auch nur in der falschen Pinbelegung? Wenn ja, welche Pins müsste man vertauschen?

      Vielen Dank

        Chris · 12. Mai 2019 um 14:37

        Ja, in der GERBER sind auch nur die Pins „falsch“. Dabei handelt es sich im GIPO 4/5, man müsste also im Arduino Sketch die Zeile #define BLUEPIN 5 in #define BLUEPIN 4 ändern.

Tobias Friedrich · 7. August 2018 um 09:07

Hallo Chris,

vielen Dank, soweit ich das sehe sind nur Pin4 und Pin5 beim ESP vertauscht. Das hab ich mal korrigiert und versuch jetzt mal mein Glück bei ALL PCB!
Vielen Dank

Markus · 10. September 2018 um 20:39

Hallo Chris,
Ich verwende die gleichen Mosfets und ebenfalls einen ESP8266 jedoch habe ich das Problem das meine Fets nicht „voll durch schalten“ dabei hab ich meine Komponenten genau gleich am Steckbrett gesteckt. Ist es Möglich das auch deine Fets nicht die ganzen 12V schalten?
LG Markus

    Chris · 1. Oktober 2018 um 22:26

    Hallo Markus,
    ich habe mir gerade mal die Mühe gemacht und die Mosfets in einer einfachen Schaltung ohne Verbraucher durchzumessen. Bei mir kommen da die vollen 12V durch:

    Arbeitest du auf einer Steckplatine? Dort sind manchmal ziemliche Widerstände versteckt, welche bis zu ein paar hundert mV kosten können.

      Clemens · 4. November 2018 um 14:48

      Hallihallo,
      danke erstmal für die coole Idee und die gut verständliche Beschreibung.
      Ich habe allerdings das gleiche Problem wie Markus. Meine MosFETs schalten auch max 11V durch. Ich habe zwar andere verwendet (http://www.onsemi.com/pub/Collateral/RFP70N06-D.pdf), die sollten aber bei gemessenen 3,3V am Gate auch voll durchschalten, oder?

      Mfg,
      Clemens

        Chris · 8. November 2018 um 19:51

        Ich habe das gestern noch mal gemessen und kann in der Tat auch einen Spannungsabfall von 1 bis 1,3 Volt messen. Aber nur wenn eine Last (in meinem Fall 5 Meter LED Stripe, also ca. 1A Strom pro MOSFET) dranhängt. Bei dem IRLB8721 kann ich mir das aber noch nicht so richtig erklären, der sollte laut Datenblatt auch mit Last nur einen minimalen Spannungsabfall haben.
        Bei dem RFP70N06 könnte das schon Problematisch sein mit nur 3,3V VGS Spannung, siehe Fig. 7/8 im Datensheet.
        Ich hab mir jetzt noch mal andere MOSFETS bestellt und werde berichten…

          Chris · 2. Dezember 2018 um 12:55

          Mal ein Update: Auch vom Datenblatt bessere MOSFETs (IRF 3708) schalten bei mir nur ca. 11 V durch. Ich vermute daher, dass dieser Verlust durch den LED Strip selber zustande kommt. Wir haben bei 5 Meter LED Stripe immerhin 10 Meter Leitungslänge (hin & zurück). Ich kann auf meinem LED Stripe auf 5 Metern 1,7 Ohm Leitungswiderstand messen. Bei ca. 0,5A Stromaufnahme (Labornetzteil) sind die 1-1,5V da auch theoretisch als Leitungsverlust drin. Bei 10 Metern sollte das noch blöder aussehen.
          Abhilfe können da wohl mehrere Einspeisungen mit entsprechenden Leitungsquerschnitten und geringerem Verlust machen. Oder zumindest die Einspeichung an der Mitte des LED Stripe statt am Ende. Ob die +1V am Ende dann aber den Aufwand wert sind muss jeder selber entscheiden.

          Marcel · 28. Dezember 2021 um 00:02

          Alternativ 24V Strips verwenden…

Markus · 18. September 2018 um 09:24

Hallo Chris,

sehr gute Anleitung! Ich bin dabei deine RGB Steuerung nachzubauen. Kannst du mir verraten was du für ein Gehäuse für deine Platine verwendet hast?

Gruß
Markus

    Chris · 30. September 2018 um 09:36

    Hallo Markus, ich habe das GEH KS 42 Gehäuse von Reichelt verwendet: https://www.reichelt.de/kleingehaeuse-72-x-50-x-42-mm-geh-ks-42-p8162.html
    Die Abmessungen passen bei mir ziemlich genau, je nach Stecken geht es evt. auch noch etwas kompakter.

      Felix · 6. Januar 2021 um 23:25

      Hallo,
      ein sehr cooles Projekt, auch wenn es schon etwas älter ist. Ich bin dabei die Platine bisschen umzudesignen, um einen 4. MOSFET für White bereitzustellen. Jedoch habe ich eine Frage zum Gehäuse: Die y-Distanz der Bohrlöcher ist nicht konsistent (Datenblatt Gehäuse: 39 mm; PCB: 34 mm). Aber gemäß den Fotos passt ja die Abmessung. Ich sehe den Fehler nicht. Ist es wirklich das GEH KS 42 Gehäuse?

      Viele Grüße
      Felix

        Chris · 6. Januar 2021 um 23:55

        Hallo Felix,
        ja ist es, allerdings kam das bei mir aus der „Grabbelkiste“ und ich hatte im Kommentar vergessen zu erwähnen: Die Serien Bohrlöcher in dem Gehäuse hab ich mit dem Dremel „rausgeflext“ und die Platine an neuen Löchern mit Abstandshaltern „durchverschraubt“. Die Kontermuttern schauen bei mir unten raus. Das ist mir neulich selbst auf die Füße gefallen, als ich das ganze nachgebaut habe… Geht besser, wenn du ehh schon an der Platine bist 😉

          Felix · 7. Januar 2021 um 00:26

          Hallo Chris,
          besten dank für die schnelle Antwort. Gut, dann werde ich die Löcher im Layout mal entsprechend anpassen 😉

majuss · 7. Oktober 2018 um 15:03

Dein Guide ist wirklich fantastisch! Aber wie auch Tobias ganz oben habe ich noch nie PCBs bestellt, könntest du bitte ein Screenshot hochladen, was genau eingestellt werden muss (Dimension, Layer, Dicke etc.). Ich bin da ziemlich verloren bei den ganzen Parametern 😀

    Chris · 10. Oktober 2018 um 19:37

    Vielen Dank. Ich hoffe das hilft dir weiter:

      majuss · 21. Oktober 2018 um 20:39

      Hi! Danke für den Screenshot 🙂 Hat mir geholfen und mittlerweile habe ich auch schon alles zusammengebastelt. Folgendes Problem: Ich flashe den Code auf den ESP, aber auf IP/UI läd es 5x und dann kackt es ab.

      Folgendes habe ich gemacht: Git clone, auf dein Repo, das .ino file geöffnet und zugestimmt das es in ein extra Ordner geschoben wird. Dann das Board hinzugefügt: NodeMCU 1.0 ESP-12E Module und ausgewählt. Dann „include library“ und dein Unterordner im Repo ausgewählt. Jetzt bei lib hinzufügen nochmal auf den selben Namen wie der Unterordner und der entsprechende Include-code wurde hinzugefügt. Dann habe ich bei den Libraries ArduinoJson 5.13.3 installiert (da es mit 6.5 beta überhaupt nicht kompiliert, siehe Github issue). Dann richtigen serial Port ausgewählt und erfolgreich geflasht. Wenn ich nur auf die IP gehe, funktioniert alles ohne Probleme, aber sobald ich auf IP/ui gehe, geht gar nichts, im serial output sieht man, dass er es dreimal versucht, aber er zeigt sofort die stacktrace an. Kannst du mir bitte helfen 🙂 ?

    Florian · 28. April 2020 um 17:32

    Ich habe das selbe mit einem Esp12 wie oben beschrieben gemacht mit den irfz44n mosfets und das ganze dann nochmal mit einem esp01 beim esp01 war die Lichterkette sehr dunkel aber beim esp12 war sie normal hell kannst du mir vielleicht sagen was ich daran verändern muss oder was das Problem ist ?

      Chris · 29. April 2020 um 21:13

      Moin Florian, ne das kann ich mir leider gar nicht erklären. Ich habe leider auch keinen esp01 zum testen hier und es bisher nur mit esp12er Modellen probiert.
      Hattest du das ganze auf einem Steckbrett aufgebaut und beim 12er mal alle Verbindungen geprüft. Ich erinnere mich an einen ähnlichen Fehler wo der 12V Pin auf einmal einen riesen Widerstand auf dem Steckbrett hatte und an einem anderem Pin problemlos lief.

majuss · 23. Oktober 2018 um 10:38

Hm sieht sehr schlecht aus: https://imgur.com/a/a0kvLah

Hier noch der originale Stacktrace: https://pastebin.com/craXmVna

majuss · 23. Oktober 2018 um 18:43

Ich hab schon 2 Kommentare gepostet, aber keins ist durchgekommen. Schaltest du sie manuell frei oder werden sie weggefiltet wenn sie Links enthalten? Leider gibt es hier bei dir keine Bestätung nach dem Motto: „Kommentar erfolgreich gesendet“.

    majuss · 23. Oktober 2018 um 19:14

    Ich habe einfach mal ein github issue geöffnet, dort ist die Kommunikation doch wesentlich angenehmer 😉

    Chris · 23. Oktober 2018 um 19:34

    Ja muss ich. Das mit der Bestätigung versuch ich bei Zeiten mal einzubauen …

majuss · 24. Oktober 2018 um 21:21

Hey ich bin mal wieder 😉

Ich habe den Controller nun erfolgreich mit einem Aqua Computing RGB Strip zum laufen gebracht. Aber mit den Yeelight RGB Strips tut sich nicht sehr viel bzw. ist Rot ultra hell, Grün super schwach und Blau komplett aus. Die Pins hab ich schon vertauscht bringt alles nichts. Beschriftet ist der Strip NUR mit einem „+“ das dann den 12 V Pin abbildet, bzw. VCC auf dem Board. Die anderen 3 Pins haben eben keine Beschriftung… Die LED Chips haben ganz gewöhnliche 2x 3 Pins, also können es keine 5V digitalen sein.

    Chris · 25. Oktober 2018 um 17:06

    Ich kenne die Yeelight RGB Strips leider nicht. Grundsätzlich ist es aber so, dass bei gleicher Spannung Rot heller als Grün und Grün wieder heller als Blau ist. Das ist aufgrund der unterschiedlichen Halbleiter so und sollte sich bei jedem RGB Strip mehr oder weniger beobachten lassen.

    Bzgl. des Yeelight würde ich mal empfehlen diesen an den Orginal Controller anzuschließen und dann bei 100% Weiß, Rot, Grün und Blau die Spannungen der einzelnen Pins ggü. dem + Pin zu messen.

      majuss · 25. Oktober 2018 um 19:20

      Danke für die Hinweise! Leider besitze ich keinen originalen Controller und bin an die Strips nur durch Zufall geraten. Aber Jemand im Arduino Forum schrieb:

      „Had the same red-only problem with a light kit ordered online (sorry, not here). I also got about 50% dim green. Turns out the LED strip is rated at 24V (not 12!) but the instruction „recommended“ DC transformer supplies of 12V 6A. Poor documentation on my kit.
      Seems as though some RGB lights supply 8v potential across each color channel. If you provide less voltage, the lights are dim. That’s my working hypothesis anyways- since 12V supplied yielded only Red and half-bright Green (no blue).“

      Ich glaube ich werde also mein Glück mit einem 24 V Netzteil und diesem Schätzchen: https://www.conrad.de/de/gaptec-lme78-03-10-dcdc-wandler-print-24-vdc-33-vdc-1000-ma-33-w-anzahl-ausgaenge-1-x-1603783.html versuchen. Das sollte funktionieren, oder?
      Im schlimmsten Fall Schrotte ich eben 1 m.

        Chris · 27. Oktober 2018 um 21:41

        Ohne jetzt detailliert ins Datenblatt geschaut zu haben sind die MOSFETS ja mit bis zu 30V angegeben. Von daher ja, sollte gehen 🙂 In meinen Augen spricht auch nichts gegen den verlinkten Regler um den ESP zu versorgen.

          Wolfgang · 26. Februar 2019 um 13:45

          Ich kann bestätigen dass es mit 24V auch funktioniert – die LED-Strips von Ikea werden auch mit 24V betrieben.

          Die Spannungsversorgung muss man da allerdings wirklich mit einem DC-DC-Wandler wie majuss machen – ich denke aber, dass das je nach (Geld- und Temperatur-)Budget auch für die 12V-Variante sinnvoll sein könnte.

majuss · 10. November 2018 um 17:40

Ich habs hinbekommen! Mit dem von mir verlinkten Regler und entsprechenden Voltage stepper funzen meine 24 V Strips jetzt 100% korrekt! Was cool wäre, wenn du nen Gerber Board für den 24 V Regler hochlädst, denn die Pins von dem Teil sind komplett anders und somit musste ich jetzt Kabel nehmen um ihn anzubringen. 24 V Strips lassen sich dann auch auf über 10 M verlängern 🙂

majuss · 27. November 2018 um 18:45

Hallo Chris,

ich bin auf etwas sehr interessantes gestoßen: https://github.com/xoseperez/espurna.
Mit Hilfe dieser Lib lässt sich der 8266 auch sofort in Home-Assistant etc. integrieren. Auch Alexa und Google-Assistant sind dann kein Problem. Vlt. findest du ja mal Zeit damit rumzuspielen 🙂 Denn im Moment lässt sich der Controller nur schwer irgendwo einbinden.

    Chris · 2. Dezember 2018 um 12:48

    Gibt es eine konkrete Anbindung die dich interessiert? Ich hatte bisher nur auf dem Zettel noch mal das MQTT Protokoll zu integrieren.
    Die Alexa Integration mache ich aktuell über iobroker da ich bei mir so oder so mehrere Protokolle und Schnittstellen zusammenfahren muss.

majuss · 2. Dezember 2018 um 15:51

Konkret interessiert mich die Integration in Home Assistant, aber die kann auch über MQTT laufen: https://www.home-assistant.io/components/light.mqtt_json/

Elmar · 13. Dezember 2018 um 18:55

Guten Tag und cooles Projekt.
Ich habe ein ähnliches Projekt, jedoch ohne Website.
Nun habe ich mal dieses Sketch ausprobiert. Es läuft gleich super von Anfang an.
Ein Problem habe ich jedoch und vielleicht könnt ihr dieses lösen:
Und zwar habe ich eine Schaltung, wo die Mosfets positiv durchschleifen, nicht wie hier negativ.
Das Problem macht sich in sofern bemerkbar, das wenn die Helligkeit hoch gestellt ist, meine LEDs dunkle sind und umgekehrt. Kann man das Problem vielleicht im Hauptsketch (WiFiRGB) abändern, vielleicht am Ende bei den Formeln (switch/case)?

Über eure Anregungen und Hilfen wäre ich sehr dankbar.

    Chris · 15. Dezember 2018 um 15:49

    Hi, der Sketch ist dafür nicht optimal weil es ne ganze Menge stellen gibt. Nach deiner Beschreibung müsstest du alle analogWrite mit dem Kehrwert ersetzen. Der Block ab Zeile 219 müsste also wie folgt aussehen:

    // Set Output
    analogWrite(REDPIN, (int)(1/mappedRed));
    analogWrite(GREENPIN, (int)(1/mappedGreen));
    analogWrite(BLUEPIN, (int)(1/mappedBlue));

    Gibt leider keine zentrale Stelle wo man das anpassen kann, ich nehme das mal auf die To-Do Liste auf…

Mark · 11. Februar 2019 um 15:28

Hallo Chris, super Tutorial. Ich habe mir die Teile bestellt und es wurden zuerst die NodeMCU geliefert.
Die Programmierung der Controller geht super.

Mein Projekt soll mehrere NodeMCU gleichzeitig steuern (also ein LEDStreifen auf der Schrankwand, einer hinter der Couch u.s.w.)
Wie kann ich mit einem Befehl mehrere Controller gleichzeitig ansprechen?

Meine Idee: 1 Controller ist der Master mit einem angepassten WebIf, also mit Buttons für Controller1,Controller2… und einem Button für alle zusammen.
Ich habe aber noch keine Ahnung wie ich das umsetzen soll.

Für einen kurzen Hinweis wäre ich sehr dankbar.

Vielen Dank und bitte weiter so 😉

    Chris · 11. Februar 2019 um 20:43

    Hallo Mark, die aktuelle Webinterface Implementierung mit iro.js sendet in Zeile 55 nur per Javascript den neuen Status an die REST API des lokalen Controller.
    Du könntest z.B. in das aktuelle oder ein neues Interface ein paar Checkboxen einbauen (und die dann mit CSS hübsch aussehen lassen…), den Status an der Stelle abfragen und den neuen Status auch an andere Controller REST API Endpunkte senden.

t0bybr · 13. Februar 2019 um 01:50

Hallo,

vielen Dank für den ausführlichen Artikel. Ich plane gerade etwas ähnliches und habe die Anleitung mal nachgebaut, jedoch mit einem 24V LED Streifen der zusätzlich zu den RGB LEDs auch noch warm- und kaltweiße LEDs hat. Leider habe ich auch das Problem, dass bei voller Helligkeit die LEDs sehr dunkel sind. Sind die MOSFETs für 24V ungeeignet?

    Chris · 27. Februar 2019 um 23:00

    Ich nehme an du hast dann wie weiter oben beschrieben auch 24V Input Spannung und verwendest für den ESP einen DC Wandler… eigentlich sollte das dann problemlos gehen. Was man immer mal machen kann ist einen sehr einfachen Arduino Sketch zu bauen der einen PIN einfach auf an schaltet. Dann sieht man die Helligkeit.

    Was bei mir bzgl. dimmen noch wichtig war sind Zeile 55-57 im Sketch der die PWM Range steuert. Aber wenn du da nichts geändert hast sollte das eigl. passen.

Stefan · 25. Februar 2019 um 18:29

Hallo Chris, schliesse mich an, super Tutorial. Sehe ich das richtig, dass ich in deinem WifiRGB_eagle.zip die Route von Pin 14 auf Pin 13 ändern muss und dann von ALLPCB herstellen lassen kann?

Christof · 1. März 2019 um 13:47

Hi Chris!
Ich habe heute Dein Arduino Code mal als Alternative zu meiner Tasmota Umsetzung ausprobiert.
Ich habe mit meinem Stripe leider das Problem, das ich kein Gelb erhalte. Alle anderen Farbe (insbesondere RGB) funktionieren einwandfrei. Es kommt statt Gelb immer eine Grün raus. Da ich das Problem auch mit Tasmota habe, schätze ich liegt es an dem Stripe.
Aber vielleicht hast Du ja noch einen Tipp für mich ?

Danke und Gruß,
Christof

    Chris · 31. März 2019 um 15:03

    Hallo Christof, mit welchem Parametern steuerst du den Controller für Gelb den an? Sattes Gelb solltest du mit folgendem JSON bekommen?

    {
    "state": "ON",
    "brightness": 100,
    "color": {
    "mode": "rgb",
    "r": 255,
    "g": 255,
    "b": 0
    },
    "mode": "SOLID"
    }

Marco · 26. März 2019 um 23:45

Hallo, auch von mir ein Dankeschön für diese Anleitung!
Kannst Du was zur Temperaturentwicklung am Spannungsregler sagen, der dürfte doch bei 12V ziemlich warm werden!?
Grüße

    Chris · 31. März 2019 um 15:05

    Hallo Marco, ad-hoc kann ich nur sagen dass ich im Alltag noch keine Probleme festgestellt habe. Ich habe wie auf den Bildern zu sehen aber auch einen Kühlkörper auf dem Spannungsregler.
    Wenn ich die Zeit finde kann ich bei Interesse gerne auch mal einen Testaufbau machen und die genaue Temperatur messen.

marius · 29. April 2019 um 14:58

Hey, ich meld mich mal auch wieder 🙂
Wäre es nicht am einfachsten, wenn du einfach ein Template für Tasmota bereitstellst? Dann ist MQTT etc. sofort alles dabei und sogar auto-discovery (und hunderte andere sinnvolle Tasmota features).

    Chris · 12. Mai 2019 um 14:46

    Wahrscheinlich ja, mir fehlt es aktuell leider einfach an der Zeit mich damit zu beschäftigen 😉

agre · 19. Juli 2019 um 08:07

Hi, danke für die Anleitung. Zwei Fragen: wo hast du die Infos zum stabileren Betrieb des ESP-12E her? Ich finde die nirgends, auch nicht im Datenblatt, das mir vorliegt. Sollten rein theoretisch nicht auch Pull-Downs an der Gate-Seite der FETs sein?

Philipp · 3. Dezember 2019 um 22:51

Hallo,
ich versuche, deine Anleitung nachzuvollziehen und frage mich: ist es so, dass die Mosfets nochmal kleine „Schalter“ sind zwischen dem Netzteil und den LEDs? Ich hätte gedacht dass beim Dimmen der Strom kleiner sein muss und diese Initiative vom Netzteil ausgehen muss. Oder ist es so dass der konstante Strom vom Netzteil die LEDs schützt, man aber dahinter per PWM eingreifen kann wie man will? Ich hoffe, die Frage ist einigermaßen verständlich, ich hab da gleich mehrere Fragezeichen wie du merkst …

    Chris · 14. Dezember 2019 um 10:58

    Ich hoffe ich verstehe deine Frage: Ja, die Mosfets sind kleine Schalter die in der PWM Frequenz die LEDs an- und ausschalten. Das menschliche Auge nimmt dadurch dann weniger Licht war, das „flackern“ siehst du aber idR bei ausreichend hoher Frequenz nicht. Es funktioniert also nicht so wie der klassische Lampendimmer für die Wohnzimmerlampe.

Holger · 7. Dezember 2019 um 19:30

Hallo,
hab deine Hardware benutzt und Software getestet, lief alles sehr gut.
Da mir Json aber zu sperrig ist habe ich eine eigene Software mit MQTT im Einsatz.
Für die Platine hätte ich mir Bestückung wahlweise mit SMD Bauteilen sowie einen Gate zu Source Widerstand gewünscht.
Holger

    Chris · 14. Dezember 2019 um 11:05

    Hallo Holger, das klingt spannend. Ich muss sagen ich hab mit MQTT bei anderen Geräten so meine „Stabilitätsprobleme“ im Sinne von immer mal wieder nicht ansprechbar und bin davon noch nicht der größte Fan geworden.
    Zu dem Thema Gate-Source Widerstand muss ich mich mal einlesen und auch SMD ist ein Thema. Bisher bin ich aber lieber bei „klassischen“ Bauteilen geblieben, was man natürlich an der Größe der Platine merkt.

Malte · 26. Januar 2020 um 13:33

Und die Blaue LED auf dem ESP8266 leuchtet auch nicht nach hochladen des Sketchs

Malte · 26. Januar 2020 um 13:55

Hallo,
Ich habe den Sketch meiner meinung nach so Konfigurirt wie oben, den sketch kompiliert und dann ohne fehlermeldung hoch geladen. Bei mir leuchtet dann das blaue LED nicht und die Rest-API website ist nicht erreichbar (Fehlermeldung 404). Könnte mir bitte jemand sagen was ich falsch gemacht habe.

    Chris · 26. Januar 2020 um 22:45

    Hallo Malte, kannst du evt. mal die Ausgaben der Seriellen Konsole (idealerweise vom Upload und dann von einem Restart) hier posten? Damit wäre eine deutlich gezieltere Fehleranalyse möglich.

MAlte · 26. Januar 2020 um 13:57

Hallo,
Ich habe den Sketch meiner meinung nach so Konfigurirt wie oben, den sketch kompiliert und dann ohne fehlermeldung hoch geladen. Bei mir leuchtet dann das blaue LED nicht und die Rest-API website ist nicht erreichbar (Fehlermeldung 404). Könnte mir bitte jemand sagen was ich falsch gemacht habe!

Malte · 27. Januar 2020 um 01:30

Danke für deine schnelle Antwort der Fehler war dass mein Vater eingestellt hat das fremde Mac-Adressen nicht ins Wlan kommen. Also der Esp8266 hat jetzt eine Verbindung zum WLAN macht bloß noch nicht ganz was er soll aber dass schaffe ich glaube ich auch.

Und ich habe noch Mal eine Frage zur Platine die du bei ALLPCB produzieren lassen hast. Und zwar gibt’s da auch noch einen anderen Link den dieser Link ist nicht mehr da bzw. kommt die Meldung „Es tut uns leid.
Die von Ihnen gesuchte Seite konnte nicht gefunden werden.“ . Was kann ich da gegen tun oder wo kann man so eine Platine noch finden ?

Malte · 29. Januar 2020 um 19:17

Ich bin mir nicht sicher ob jemand meine Frage gelessen hat daher will ich sie nochmal wieder holen! Und zwar ob es noch einen anderen Link zur Platine gibt ? Den der oben angegebene Link ist nicht mehr da bzw. kommt die Meldung „Es tut uns leid.
Die von Ihnen gesuchte Seite konnte nicht gefunden werden.“ . Was kann ich da gegen tun oder wo kann man diese eine Platine noch finden ?

Malte · 31. Januar 2020 um 01:49

Danke Chris,
für deine Antwort und Mühe!

Ich finde übrigens deine Anleitung echt super, denn sie ist auch für Anfänger verständlich !

Guido · 5. April 2020 um 22:03

Hi Chris,
super Projekt, das würde ich auch ganz gerne mit 20m 5050 Stripes nachbauen. Das würden bei 30LEDs/m max. 30W ergeben, ich denke die FETs schaffen das noch ganz gut.
Ich habe eher Fragen zu Software,w as nicht so meine Stärke ist. Und zwar würde ich es ganz gerne in ioBroker einbinden. Meine anderen ESP habe ich über MQTT eingebunden. Wie kann ich hier den Server für MQTT einstellen?
Wegen der Helligkeit. Einstellbar von 0-100% als PWM? Wie ist die Frequenz? Gehen auch Zwischenschritte wie 0,5% oder gar 0,1%?

Danke für Infos!
Grüße

    Chris · 8. April 2020 um 16:40

    Hallo Guido,
    MQTT steht seit längerem auf der Feature Wunschliste, wird von der Implementierung zur Einbindung aber (noch) nicht unterstützt.

    Ich habe im iobroker mehrere States angelegt:
    rest.0.room0.rgb.level.color.hue
    rest.0.room0.rgb.level.color.saturation
    rest.0.room0.rgb.level.dimmer
    rest.0.room0.rgb.level.switch

    Diese habe ich dann über ein Javascript mit der REST Schnittstelle verknüpft und kann alles auch per iobroker steuern.
    Das Script findest du hier:
    https://gist.github.com/c-klinger/8c2a07d2abb4ecdd919b180162a1bcd1

    Evt. ist das für dich auch eine Lösung?

      Guido · 10. April 2020 um 21:46

      Alles klar, vielen Dank.
      Werde das mal die Tage ausprobieren.

        Guido · 28. April 2020 um 14:31

        Hi Chris,

        habe die SW auf einen Wemos D1 Mini aufgeflasht und scheint zu laufen. Zumindest der Webserver mit der UI Oberfläche, den Rest kann ich erst testen, wenn ich die FETs und den Stripe angeschlossen habe.
        Jedoch sehe ich bei ioBroker noch nichts. Ich habe das verlinkte Script bei ioBroker eingefügt und gestartet. Das wirft auch keinen Fehler, jedoch sehe keine Objekte. Oder muss man die händisch noch anlegen?

        Grüße

          Chris · 29. April 2020 um 21:08

          Puhh es ist inzwischen auch schon fast zwei Jahre her, das ich das Script geschrieben habe (und seit dem nicht mehr angefasst habe…)
          Kann gut sein, dass man die Objekte ein Mal selber anlegen muss. Ich habe zumindest auf die schnelle keine Stelle im Script gefunden die das automatisch macht.

Guido · 29. April 2020 um 23:05

Über die Weboberfläche läuft es sauber.
Datenpunkte habe ich auch mal in ioBroker angelegt. Hier ist aber noch was nicht in Ordnung, dann ich kann über den Datenpunkt außer dass das Stripe ausschaltet nichts steuern. Auch werden die Datenpunkte nicht verändert, wenn ich das Stripe über die Weboberfläche verstelle
Also entweder ist die Art/Typ oder sowas an den Datenpunkten nicht in Ordnung oder die Verknüpfung zw. Datenpunkt und Script ist nicht i.O.
Muss ich dafür im Code oder Script noch etwas verändern, außer im Java die IP Adresse des ESPs?

Grüße

Guido · 4. Mai 2020 um 08:14

Nachtrag:
Habe es mit der Tasmota Firmware und in ioBroker über den SONOFF Adapter hinbekommen.

Jones · 1. Juni 2020 um 23:28

Mega gut!
Funkt das auch mit diesen RGB+WW(Warmweiß) LED Streifen?
Ideales Projekt für meinen Wohnwagen 😀
Merci bien!

Florian · 6. Juni 2020 um 16:49

Hi Chris,

ich habe vor meine Terrasse mit Hilfe deiner Anleitung zu beleuchten. Mein Plan war 4x 3m Streifen parallel an den MOSFETs anzuschließen und mit einem entsprechenden 12V Trafo zu versorgen. Können die MOSFETs das abhaben, oder sollte ich für jeden Streifen eigene MOSFETs vorsehen?

Gruß

    Chris · 6. Juni 2020 um 20:46

    Hallo Florian, die kurze Antwort wäre: Ja das geht in der Theorie.

    Die lange Antwort: Das hängt neben den MOSFETs vor allem aus an der Kombination Netzteil und LED Stripe ab. Gehen wir mal von einem 60 LED pro Meter RGB Stripe aus, dann haben wir ca. 1,2A Stromaufnahme pro Meter LED Stripe (es gibt auch LED Stripes mit nur 30 LED pro Meter und/oder anderen Charakteristiken). In unserem Fall haben wir pro Kanal ungefähr 0,4A. Du planst jetzt mit 12 Meter und damit 4,8A pro Kanal.

    Ich nehme aus dem Datenblatt des IRLB8721 mal den konservativsten Stromfluss
    ID @ TC = 100°C Continuous Drain Current, VGS @ 10V), da verkraftet der MOSFET noch 44A. Da haben wir also gar kein Problem.

    Allerdings hast du wenn du alle Kanäle auf 100% machst so ca. 14,4A am Netzteil anliegen, dass dürften zumindest die meistens mitgelieferten Steckernetzteile nicht mehr mitmachen.

Megamano · 20. Juni 2020 um 14:20

Nur so als frage. Könnte man das projekt nicht mit der spotify api erweitern und dann hätte man einen LedStripe der auf die musik reagiert?

Philipp Schulz · 19. September 2020 um 12:42

Servus Chris,
Erstmal vielen Dank für die Tolle Anleitung, so kann selbst ich als Laie, der noch in den Anfängen steckt schnell Projekte mit meinen LEDs verwirklichen. Wie ist es allerdings wenn die Schaltung 24/7 am Netz hängt? Hat der 12 V Stecker dann immer auch wenn die Mosfets komplett zu geschaltet sind den vollen Verbrauch?

    Chris · 21. November 2020 um 22:32

    Hallo Philipp, nein wenn die LEDs aus sind hast du nur den Verbrauch des ESP.

christele · 20. November 2020 um 09:41

Hallo chris, ich habe das set byw. alle im Bild dargestellten Komponente bestellt. Die Schaltung habe 1/1 wie im Bild gebaut. Der Code funktioniert gut, aber die LEDs werden nicht eingeschaltet. In der Schaltung wird für den BLUE_led den PIN D8 verwendet und im Code steht #define BLUEPIN 5. Sollte es nicht 15 sein? da D8` der Nummer 15 entspricht? Ich habe sogar damit versucht aber es funktioniert nicht. Auf dem Foto hast du keinen Kondensatoren zum Test verwendet. Ginge auch ohne? Danke

    Chris · 21. November 2020 um 22:55

    Hi, ja das Foto kann irritieren. Ich verwende habe dort meine ich die Spannungsversorgung über USB verwendet und die 12V für die LED Strips von einem zweiten Netzteil genommen.
    Die Frage mit den Pins ist leider nicht so einfach, es gibt da wohl einen Unterschied zwischen dem ESP12 und dem ESP12E/F (den heute jeder verwendet). Ich meine da mal gelesen zu haben, die Pin-Belegung hat sich geändert. Die Schaltskizze zeigt auf GPIO4, daher versuche mal PIN 19. Ich muss das mal korrigieren…
    Wenn deine LEDs gar nicht gehen, ist der Fehler aber vermutlich nicht der Pin. Denn auch mit einem falschen Pin müsstest du zwei Kanäle zum leuchten bringen können.

    Vermutlich funktioniert der Spannungswandler auch ohne Kondensatoren, im Datenblatt stehen sie für den Referenzaufbau aber drin.

      Fischerboot · 17. Januar 2021 um 18:14

      Hi Chris.
      Hast du bei dem Aufbau mit der NodeMCU 5V separiert von der 12V LED versorgung nicht Probleme mit GND?
      USB versorung und das 12V netzteil werden, ja nicht die selbe masse haben, oder?

        Chris · 22. Januar 2021 um 00:03

        Alles eine Masse wie im Schaltplan zu sehen. Habe bisher keine Probleme festgestellt und wüsste auch nicht welche es da geben sollte.

          Marcel · 15. Februar 2021 um 15:13

          „Für Testzwecke ist dies nicht zwingend nötig, da wir das NodeMCU Modul auch direkt über USB mit Strom versorgen können.“
          Diese Testkonfiguration müsste doch 2 Massen haben. Das Netzteil fur die 12V und das Netzteil arbeiten ja unabhängig voneinander.

          Chris · 15. Februar 2021 um 23:12

          Hallo Marcel, ja das Stimmt du hast dann von 2 Spannungsversorgungen GND. Die kannst du aber einfach zusammenführen um einen gemeinsamen Bezugspunkt zu haben. Im Fritzing Diagramm des Steckbrettes ist das „angedeutet“.

Mganga · 24. Dezember 2020 um 14:15

Hi, die ArduinoJson Library ist von v5 auf v6 aktualisiert worden. Leider kompiliert der Code so nicht mehr durch. Wird es ein Code-Update auf die ArduinoJson 6 geben?

    Chris · 27. Dezember 2020 um 16:18

    Hallo Mganaga,
    es gibt bereits einen GitHub Branch der v6 kompatibel ist: https://github.com/c-klinger/esp8266-arduino-wifirgb/tree/feature/arduinojson6
    Ich muss bei Zeiten mal den Artikel und den Master Branch nachziehen …

      Mganga · 7. Januar 2021 um 17:35

      Hallo Chris,

      vielen herzlichen Dank, das hatte ich übersehen-

      Kannst Du bitte noch den Link auf den LED-Strip ganz oben bei den Bauteilen aktualisieren? Der läuft auf ne Seite nicht gefunden. Danke

        Chris · 21. Januar 2021 um 23:53

        Hallo, vielen Dank für den Hinweis. Der Link ist aktualisiert.

Frank · 12. Januar 2021 um 12:18

Hallo Chris,

welche lötbaren Schraubklemmen hast Du denn für die Platine verwendet. Ich habe hier noch einige mit RM 5,08mm rumliegen, die sind aber zu breit. Hast Du evtl. einen Link, welche passen? Danke vielmals.

    Chris · 21. Januar 2021 um 23:58

    Hallo Frank,
    das ist RM 3,5 z.B. Bestellnummer AKL 059-02 bzw. AKL 059-04 bei Reichelt.

Thomas · 24. November 2021 um 20:38

Hallo!
Bin auf dein Projekt gestoßen und würde dieses gerne Nachbauen. Da die Mosfets erst bestellt wurden, habe ich mich mal mit der Software beschäftigt. Bei mir wurde der Color Picker auf der UI Seite nur fehlerhaft und nicht bedienbar dargestellt. Habe dann gesehen, das der Code von iro.js schon in einer höheren Version vorhanden ist und diesen in web_iro_js.h aktualisiert. Jetzt wird er korrekt dargestellt und lässt sich auch bedienen. Muss ich aber noch weitere Änderungen vornehmen, da mir im Debug Modus nichts angezeigt wird wenn ich die Farbe ändere?
Danke und Gruß Thomas

    Chris · 28. Dezember 2021 um 15:49

    Hallo Thomas,
    erst mal danke für den Hinweis mit iro.js, ich schreib mir da mal ein generelles Update auf die Liste.
    Warum die Steuerung bei dir nicht funktioniert lässt sich aus der Ferne schwer beurteilen. Hast du mal mit den Webentwickler-Tools des Browsers geschaut ob Fehlermeldungen kommen wenn du die Farbe ändern möchtest? Die web_interface.h enthält den Code der auf Änderungen vom Color-Picker reagiert (Zeile 43ff). Möglich, dass man nach dem Update dort auch noch mal Hand anlegen muss.

Markus · 16. Dezember 2021 um 20:08

Hi Chris,
bin auf der Suche nach einer Web-Lösung für RGB-LED Strips auf deinen Blog gestoßen und habe Deine Anleitung genutzt. Funktioniert einwandfrei – top! Statt der MOSFETS sind´s bei mir drei NPN-Transistoren aus der Grabbelkiste (BD 679) und je ein 1kOhm Widerstand zwischen ESP-GPIO und Transistor. In deine Software muss ich mich noch reinfuchsen – bin nicht so der erfahrene JSON-Kenner! Aber jetzt zu meiner Frage: Hast Du noch weitere Modes implementiert? – Ich suche eine Lösung, die Lichterkette mit einer Farbe blinken zu lassen – also den Mode „BLINK“ 😉

    Chris · 28. Dezember 2021 um 15:56

    Hallo Markus,
    super dass dir das Projekt gefällt 🙂 Nein zu weiteren Modes oder anderen Erweiterungen bin ich noch nicht gekommen. Mit etwas „reinfuchsen“ dürfte das aber tatsächlich relativ einfach zu implementieren sein. Paar globale Variablen definieren (Blink an/aus bzw. Mode, Aktueller Zustand, mappedWerte aus dem letzten API Request) und dann in der Loop-Methode wenn Blink gesetzt ist einfach alle x Millisekunden die GIPOs schalten.

Werner · 3. Januar 2022 um 20:03

Hallo Chris,
ich habe lange nach soetwas gesucht und jetzt die freien Tage genutzt das ganze mal auf einem Steckbrett aufzubauen.
Allerdings muste ich die ArduinoJson in einer 5er Version installieren, weil die 6er einige Dinge geändert hat, mit denen dein Code sich nicht kompillieren läßt. Dies nur so als Hinweis, falls jemand Probleme mit der Kompilierung hat.
Allerdings vermisse ich in der Web-Ansicht noch einen Schalter zum ein- und ausschalten.
Grüße aus dem Rheinland

Wolfgang Hoss · 17. Juni 2022 um 18:56

Ich finde die web_iro_js.h nicht.

    Chris · 17. Juni 2022 um 19:57

    Hallo Wolfgang, ich habe vor einigen Tagen angefangen, dass inzwischen vier Jahre alte Projekt mal auf einen aktuellen Stand zu bringen. Die web_iro_js.h wird nicht mehr benötigt, den Blog Beitrag muss ich bei Gelegenheit noch anpassen.

      Niklas · 9. September 2022 um 12:40

      Also muss man nur „#include „web_iro_js.h““ entfernen? Wenn ich dies mache bekomme ich die Fehlermeldung:
      72 | server.send_P(200, „application/javascript“, IRO_JS);
      ‚IRO_JS‘ was not declared in this scope

      Ps.: Voll cooles Projekt. Würde mich über eine Aktualisierung freuen 🙂

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht.