Forum: Projekte & Code ESP32 5-Kanal Dimmer


von Andreas J. (ajbln)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

hier mein kleines Addon-Projekt für meine Saunasteuerung 
(Beitrag "Saunasteuerung").
Der Dimmer steuert 24V 5-Kanal LED Stripes (RGB+Warmweiß+Kaltweiß).
Ich hab diese hier:
https://www.amazon.de/gp/product/B07XBZ2XDF/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

Eingesetzt wird ein ESP32 D1 Mini NodeMCU:
https://www.amazon.de/gp/product/B08BTYCGVV/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1

In meinem Fall steuert die Saunasteuerung über MQTT und das Türsignal 
ein spezielles Topic.
Wird die Tür geschlossen, werden die LEDs auf ein schwaches Gelb 
runtergedimmt (warmweiß war meiner Freundin noch immer zu kalt ;-) ).
Öffnet man die Tür, werden alle Kanäle wieder auf 100% gedimmt.
Da unsere Sauna eine komplette Glasfront hat, hat man während der 
Saunagänge kein grelles Licht mehr.
Und auch eine visuelle Kontrolle, dass die Tür richtig zu ist (sonst 
würde die Sauna nach 1 min abschalten).
Für die Platine habe ich dann noch ein kleines Kästchen gedruckt. Die 
LED-Stripes selbst habe ich einfach nur auf Wasserrohe in unserem Keller 
geklebt. Auf die Oberseite der Rohe, so dass wir indirektes Licht haben. 
Die Rohre gehen genau um die Sauna herum.
Und die LEDs ersetzen jetzt die komplette Kellerbeleuchtung, sie sind 
also richtig hell bei 100%.

Über Arduino (oder in meinem Fall PlattformIO) kann man damit aber auch 
sehr gut andere Projekte umsetzen.

VG
Andy

von Panzer H. (panzer1)


Lesenswert?

Moin,
wie hast Du die Ansteuerung der LEDs gelöst?
Kannst Du dazu die Schaltung zeigen?
Danke und VG

von Andreas J. (ajbln)


Angehängte Dateien:

Lesenswert?

Panzer H. schrieb:
> Moin,
> wie hast Du die Ansteuerung der LEDs gelöst?
> Kannst Du dazu die Schaltung zeigen?
> Danke und VG

Moin,
na klar. Über N-Channel Mosfets (bis 30V, 5,8A).
VG

von Johannes S. (Gast)


Lesenswert?

sowas bekommt man für 10€ fertig, am Black Friday vielleicht noch 
günstiger:
https://www.amazon.de/Vaorwne-Controller-DC5-24V-Eingang-Streifen/dp/B088T796S2/ref=pd_lpo_60_t_0/257-0844745-4608740?_encoding=UTF8&pd_rd_i=B088T796S2
Mit Tasmota oder Espurna gibt es fertige Firmware die auch MQTT spricht 
oder Hue oder WeMo emuliert.

von Andreas J. (ajbln)


Lesenswert?

Johannes S. schrieb:
> sowas bekommt man für 10€ fertig, am Black Friday vielleicht noch
> günstiger:

Klar gibt's sowas auch fertig.
Vorteil hier ist nur, dass man den Controller einfach aufstecken und 
selbst programmieren kann. Bei Fertiglösungen muss man sich da erst 
irgendein Jtag-Adapter basteln, Schaltpläne suchen oder 
rekonstruieren...

von Johannes S. (Gast)


Lesenswert?

ja, man braucht einen USB-seriell Adapter, der sollte aber in keinem 
guten Haushalt fehlen. Programmieren dauert incl. Stiftleiste einlöten 
keine 5 Minuten. Wenn Tasmota/Espurna/ESPEasy einmal drauf sind geht 
auch OTA, habe ich gerade gestern mit Tasmota gemacht. Mit der Hue 
Emulation erkennt Alexa den Controller auch sofort. Einfacher geht es 
kaum.
https://tasmota.github.io/docs/devices/H801/

von Andreas J. (ajbln)


Lesenswert?

Ich mag die ESP32 halt lieber als die üblichen ESP8266.
Ich hab mir da mittlerweile schon eine recht umfangreiche Bibliothek 
gebaut (meine eigentliche Profession ;-) )...


Meine main sieht z.B. so aus:
1
#include <Arduino.h>
2
3
#include "Hardware/PWM.h"
4
#include "Devices/WifiController.h"
5
#include "Devices/MqttClient.h"
6
7
static constexpr Signal::Type WifiConnected = 1;
8
static constexpr Signal::Type WifiSignal    = 2;
9
static constexpr Signal::Type LightOn       = 3;
10
11
PWM pwm1{5000, 16};
12
PWM pwm2{5000, 16};
13
14
WifiController wifi_controller{WifiConnected, WifiSignal};
15
MqttClient mqtt_client{"SaunaLight", WifiConnected, "192.168.178.106"};
16
17
void
18
led_on(bool on)
19
{
20
  if (on) {
21
    for (int dutyCycle = 0; dutyCycle <= 255; dutyCycle++) {
22
      pwm1.dimm_16(dutyCycle);
23
      pwm2.dimm_16(dutyCycle);
24
      delay(2);
25
    }
26
  } else {
27
    pwm1.dimm_16(180);
28
    pwm2.dimm_16(0);
29
  }
30
}
31
32
void
33
setup()
34
{
35
  Serial.begin(115200);
36
  delay(10);
37
  Serial.println("Start...");
38
39
  // R + G = yellow
40
  pwm1.attach(Pin::IO27);  // R
41
  pwm1.attach(Pin::IO25);  // G
42
43
  // Rest...
44
  pwm2.attach(Pin::IO32);  // B
45
  pwm2.attach(Pin::IO12);  // CW
46
  pwm2.attach(Pin::IO4);   // WW
47
48
  led_on(true);
49
50
  Signal::Manager::connect(LightOn, [](Signal::Value const& val) {
51
    bool const on = val.Data.Bool;
52
    Serial.print("FullOn=");
53
    Serial.println(on);
54
    led_on(on);
55
  });
56
57
  mqtt_client.publish(WifiSignal, "sauna_light/wifi_signal");
58
  mqtt_client.publish(LightOn, "sauna_light/light_on");
59
  mqtt_client.subscribe(LightOn, Signal::ValueType::Bool, "sauna/light_on");
60
61
  Loop::setup();
62
}
63
64
void
65
loop()
66
{
67
  Loop::loop();
68
}

von Oliver S. (phetty)


Lesenswert?

Johannes S. schrieb:
> 
https://www.amazon.de/Vaorwne-Controller-DC5-24V-Eingang-Streifen/dp/B088T796S2/ref=pd_lpo_60_t_0/257-0844745-4608740?_encoding=UTF8&pd_rd_i=B088T796S2

So einen habe ich auch, der hat in meiner Version allerdings nur 512K 
und das ist für ein heutiges Tasmota etwas zu knapp.

von Kaper N. (Gast)


Lesenswert?

Johannes S. schrieb:
> sowas bekommt man für 10€ fertig

Verzeihung - haben solche fertigen ESP8266 RGBWWW-Dimmer noch Pins frei?
WiFi brauche ich gar nicht unbedingt, aber ein paar Taster und Sensoren.

von Kaper N. (Gast)


Lesenswert?


von MaWin (Gast)


Lesenswert?

Andreas J. schrieb:
> Wird die Tür geschlossen, werden die LEDs auf ein schwaches Gelb
> runtergedimmt (warmweiß war meiner Freundin noch immer zu kalt ;-) ).
> Öffnet man die Tür, werden alle Kanäle wieder auf 100% gedimmt

Hmm, 2 Glühlampen und ein Schalter am Strom vom Saunaofen taten es da 
nicht ?

Nun fehlt noch eine Bedieneinheit  übernimmt das dein Smartphone ? Alle 
2 Jahre ein Neues ? Läuft die Software auf dem nächsten ?

Und was macht die Elektronik, in der Sauna, an den LEDs montiert  in 
Hitze und Luftfeuchte, lebt die in 2 Jahren noch ?

Ein Netzteil brauchst du auch noch, ein billiges USB 
Handy-Steckernetzteil, meinst du, das lebt in 2 Jahren noch ?

von Johannes S. (Gast)


Lesenswert?

Rx/Tx und eventuell die beiden LED. Aber da ist Andreas Lösung 
flexibler, in dem H801 ist der ESP ja direkt eingelötet. Tasmota sollte 
auch auf Andreas ESP32 laufen, da gibt es auch eine Version für, habe 
ich aber noch nicht ausprobiert.

Die LED Stripes sahen gut aus, habe ich auch bestellt. Werden die sehr 
warm wenn WW+CW volle Pulle laufen?

von Andreas J. (ajbln)


Angehängte Dateien:

Lesenswert?

MaWin schrieb:
> Hmm, 2 Glühlampen und ein Schalter am Strom vom Saunaofen taten es da
> nicht ?
Die LEDs hängen am Lichtschalter vom Keller und sollen auch angehen, 
wenn die Sauna aus ist.

> Nun fehlt noch eine Bedieneinheit  übernimmt das dein Smartphone ? Alle
> 2 Jahre ein Neues ? Läuft die Software auf dem nächsten ?
Nein, Handyanbindung ist nicht geplant. Die Saunasteuerung reicht.
Aber zwei Displays (siehe Bild) habe ich noch angeschlossen. Eins vor 
der Sauna, da die analogen Sensoren nichts taugen. Und eine für die 
Wohnung, damit wir sehen, ob die Sauna warm genug ist. Software ist aber 
noch nicht fertig. Uhrzeit fehlt noch. Die Daten kommen (per MQTT) vom 
Banksensor.

> Und was macht die Elektronik, in der Sauna, an den LEDs montiert  in
> Hitze und Luftfeuchte, lebt die in 2 Jahren noch ?
Nein, eine stinknormale Halogen leuchtet da nur. LEDs taugen bei den 
Temperaturen leider nichts. Bzw. müssten gekühlt werden, was mir zu viel 
Aufwand ist.

> Ein Netzteil brauchst du auch noch, ein billiges USB
> Handy-Steckernetzteil, meinst du, das lebt in 2 Jahren noch ?
Nein, ein dickes Meanwell werkelt da in einem gedruckten Gehäuse, die 
LEDs ziehen bei knapp 4m ordentlich und werden auch gut warm, werden 
aber durch die Alufolien der Rohre mitgekühlt.

: Bearbeitet durch User
von Andreas J. (ajbln)


Lesenswert?

Kaper N. schrieb:
> Verzeihung - haben solche fertigen ESP8266 RGBWWW-Dimmer noch Pins frei?
> WiFi brauche ich gar nicht unbedingt, aber ein paar Taster und Sensoren.

Da müsstest Du wohl direkt an den ESP8266 gehen.

Johannes S. schrieb:
> Rx/Tx und eventuell die beiden LED. Aber da ist Andreas Lösung
> flexibler, in dem H801 ist der ESP ja direkt eingelötet. Tasmota sollte
> auch auf Andreas ESP32 laufen, da gibt es auch eine Version für, habe
> ich aber noch nicht ausprobiert.
Also für Tasmota würde ich beim ESP8266 bleiben.
Die Vorteile vom ESP32 liegen im DIY-Bereich. Massiv viele Pins, die 
fast alle universell einsetzbar sind (PWM, Analog, Interrupts, teilweise 
Touch, 2 CPUs, mehrere Threads sind möglich) und eben 4MB Flashspeicher. 
Mit Filesystem als Datengrab oder für Konfigurationen, wenn man es 
braucht...

> Die LED Stripes sahen gut aus, habe ich auch bestellt. Werden die sehr
> warm wenn WW+CW volle Pulle laufen?
Ja, werden sie wie gesagt. Also man sollte sie schon auf irgendwas 
draufkleben, das Wärme ableiten kann. Aluprofile oder was auch immer...

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Andreas J. schrieb:
> Hallo Zusammen,
> hier mein kleines Addon-Projekt

hi, mir gefällt die blaue silikon matte, wo kommt die her?

von Andreas J. (ajbln)


Lesenswert?


: Bearbeitet durch User
von Björn (Gast)


Lesenswert?

Hi,

Ich habe eine ähnliche Idee, bei der ich LEDs zeitgesteuert dimmen 
möchte...

Oder auch Lüfter temperaturgesteuert schalten möchte...

Ist der Schaltplan alles, was man für Dein Projekt benötigt, oder gibt 
es da noch weitere Pläne?

Ich würde alles via Webinterface einstellbar machen wollen und mit einer 
kleinen Anzeige Statusinfos anzeigen lassen...

Der angegebene Quellcode: ist das alles, was man für Dein Projekt 
benötigt? Darf man sich alles wegfinden und in das eigene Projekt 
einfügen?

Gruss Björn

von Andreas J. (ajbln)


Lesenswert?

Hi Björn,

ja, der Schaltplan ist komplett. Und bis heute funktioniert auch noch 
alles.
Ist ja schon eine Weile her ;-)
Der Quellcode war nur ein Auszug. Den würde ich heute auch nicht mehr 
nehmen.
Ich mache heute alles über ESPHome in Home Assistant und schreibe keine 
eigenen Programme mehr dafür, sondern nur noch Scripte und 
Automatisierungen in Home Assistant. Ist viel viel einfacher, die 
Weboberfläche inklusive und damit geht alles deutlich schneller und 
stabiler. Und die Firmware, die nur noch aus Sensoren und Ports besteht 
kannst Du einfach über OTA flashen, ohne irgendwas auszubauen und 
anzuschließen.

VG
Andy

von Björn (Gast)


Lesenswert?

OK,

Dann werde ich heute Nacht die Platine für mein Gehäuse entwerfen...

Und dann das Programm, allerdings wird's einmal LED Steuerung, einmal 
Temperatur Steuerung, und eine Steuerung für 5 Peristaltik Pumpen...

Hoffentlich wird's was...

Was ich Klasse finde, das der Spannungsregler bis 30V ab kann, dann bin 
ich deutlich freier in der Bauteilauswahl...

Vielen Dank, das Du Dir vor 2 Jahren die Arbeit gemacht hast... ;)

Gruss Björn

von Andreas J. (ajbln)


Angehängte Dateien:

Lesenswert?

Heute benutze ich so eine Art Modulbaukasten.
Da sind im Prinzip die Ports des ESP32 auf Steckerleisten rausgeführt, 
an die ich dann alles mögliche an Sensoren und Aktoren anschließen kann.
Hier ist es konkret eine Osmosewasser-Nachfüllautomatik für mein 
Aquarium.
Ich hab so kleine Module entwickelt mit verschiedenen Mosfets und für 
verschiedene Sensoren. Beliebig erweiterbar mit zuschaltbarem 12V 
Konverter (für die Pumpe).
Anbei mal meine Homeassistant-Oberfläche für's Büro. Falls Du es nicht 
kennst.
Rechts siehst Du im Aquarium (Süßwasser) Bereich auch, wie ich die 
Platine derzeit steuere.
Mal so als Idee für eigene Projekte...

VG
Andy

von Björn (Gast)


Angehängte Dateien:

Lesenswert?

Jetzt wird's interessant...

Ich will die Schaltungen auch für ein AQ bauen, allerdings in das 
Gehäuse eines STC-1000...

Da will ich halt die Lichtsteuerung mit Sonnenaufgang und Untergang 
haben, dann Lüfter Steuerung zum Kühlen und evtl Dosierpumpen für 
NPK-Dünger und CO2...

Und für die Allgemeinheit veröffentlichen...

Und HA nutze ich nicht, eigentlich gar keine der 
Automatisierungssoftware

von Andreas J. (ajbln)


Lesenswert?

Nice, ja, so ähnlich habe ich es früher auch gemacht. ;-)

Bis mich dann die SmartHome Geschichte überzeugt hat.
Ich kann jederzeit den Zustand meiner Geräte über mein Handy checken und 
kann eingreifen, ohne dass ich direkt davor stehe.
Selbst wenn meine Automatisierungen scheitern und ich gerade im Urlaub 
bin.
Und ich bekomme Nachrichten auf mein Handy, wenn irgendwas wichtiges 
ansteht.
Das Nachfüllwasser ist alle, die Temperatur zu hoch, ist alles simpel 
einzurichten...

Aber ich will Dich nicht überzeugen ;-), für mich hat es nur vieles 
vereinfacht. Ich hab viel zu viel Zeit für das Schreiben der Firmware 
verbraten. Heute muss ich mir nur noch Gedanken darüber machen, wie ich 
die Sensoren/Aktoren an irgendein ESP anschließe. Danach sind sie mit 
wenigen Klicks live...

VG
Andy

von mIstA (Gast)


Lesenswert?

Kaper N. schrieb:
> haben solche fertigen ESP8266 RGBWWW-Dimmer noch Pins frei?

Also bei den H801 sind RX/TX/GPIO0 ganz einfach nutzbar; für die sind 
schon Löcher zum einlöten von nem Pinheader vorhanden. Außerdem gibts 
noch 2 LEDs die ebenfalls jeweils an einem eigenen GPIO hängen; damit 
müßte man diese beiden ebenfalls problemlos (ohne direkt am ESP 
rumzufummeln) abgreifen können. Dazu die fünf PWM-Kanäle - viel mehr 
GPIOs hat der ESP8266 dann eh nicht mehr.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.