Forum: Mikrocontroller und Digitale Elektronik günstiges 4 relais board mit ESP32-WROOM-E hat wohl eine Macke


von Otto E. (otto_kraut)


Angehängte Dateien:

Lesenswert?

das günstige
ESP32 4-Kanal Relais Modul Binghe ESP32-WROOM Relais 
Entwicklungsplatinen mit WiFi Bluetooth BLE AC220W/DC5-30V 
Stromversorgung Für DIY-Programmierprojekte(LC-Relay-ESP32-4R-A2)

scheint einen Fehler zu haben:

ein Relais 3 wird über GPIO 25 angesteuert.

Sobald ich den ESP32 als Accesspoint nutze, rattert dieses Relais los. 
Meine Vermutung ist dass GPIO 25 etwas mit dem Antennensignalausgang zu 
tun hat.
Bisher sehe ich als einzige Lösung, den Widerstand vor dem 
Treibertransistor abzulöten, und einen externen Widerstand anzulöten, 
der an einen anderen GPIO angeschlossen wird.

Mit diesem Programm habe ich es getestet:
1
 
2
#include <WebServer.h>
3
#include <WiFi.h>
4
5
const char* ssid = "Boiler_Unit";
6
const char* pass = "blahblahblahblah";
7
8
IPAddress ip(192,168,4,1);
9
IPAddress gateway(192,168,4,1);
10
IPAddress subnet(255,255,255,0);
11
12
WebServer boiler(80);  
13
14
void setup() {
15
  // set the digital pin as output:
16
  pinMode(25, OUTPUT);
17
  pinMode(26, OUTPUT);
18
  pinMode(32, OUTPUT);
19
  pinMode(33, OUTPUT);
20
21
  WiFi.softAPConfig(ip, gateway, subnet);
22
  WiFi.softAP(ssid, pass);
23
24
}  // setup
25
26
27
void loop() {
28
29
    digitalWrite (25, HIGH);
30
    delay (1000);
31
    digitalWrite (26, HIGH);
32
    delay (1000);
33
    digitalWrite (32, HIGH);
34
    delay (1000);
35
    digitalWrite (33, HIGH);
36
    delay (1000);
37
    digitalWrite (25, LOW);
38
    digitalWrite (26, LOW);
39
    digitalWrite (32, LOW);
40
    digitalWrite (33, LOW);
41
    delay (1000);
42
    
43
} // loop

Sobald ich in 'setup' die beiden mit Wifi beginnenden Zeilen 
auskommentiere schaltet es normal.

Das Board ist an sich super, ich würde zwar nicht die 220V Versorgung 
nutzen, da ich kein passendes Gehäuse gefunden habe, aber für Hobby 
aufgaben ist es durchaus brauchbar.

Hat jemand eine bessere Idee als das Umlöten, oder habe ich irgendeinen 
Fehler gemacht?

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Otto E. schrieb:
> IPAddress ip(192,168,4,1);
> IPAddress gateway(192,168,4,1);

Das hat zwar mit Deinem Relaisthema nichts zu tun, aber das ist kaputt.

von Georg Z. (georg_z)


Lesenswert?

Möglicherweise das falsche Board in der IDE ausgewählt, ev. tut "ESP32 
Dev Module" o.ä.
https://esp32.com/viewtopic.php?t=32748#p111932

Wie kirnbichler schon anmerkte,  ist die Gateway-IP=IP sinnlos, dürfte 
aber eher nix mit dem Problem zu tun haben.

von Otto E. (otto_kraut)


Lesenswert?

Harald K. schrieb:
> Otto E. schrieb:
>> IPAddress ip(192,168,4,1);
>> IPAddress gateway(192,168,4,1);
>
> Das hat zwar mit Deinem Relaisthema nichts zu tun, aber das ist kaputt.

ich hatte mir zuvor eine Lochrasterplatine mit dem gleichen ESP32 WROOM 
V1.1 aber einem Development Board und mit wire wrap Technik gebaut und 
dabei andere GPIOs für ein 4-fach Solid State Relais genutzt, und das 
Programm funktioniert einwandfrei. Der gezeigte Code ist stark 
vereinfacht und gekürzt, ich nutze auch kein delay() dort, aber der 
Access point funktioniert dort einwandfrei, mit Gateway ...4.1 aber auch 
mit Gateway ...4.0. Spielt anscheinend keine Rolle. Das gezeigte 
Programm hatte ich lediglich geschrieben, um den Fehler genau zu 
lokalisieren.

Gewähltes Board ist:
// tested on ESP32-WROOM_2_DA

Danke für den Tipp, ich versuche mal andere.

von Otto E. (otto_kraut)


Lesenswert?

... anderes Board wählen:

1. Versuch mit ESP32 Dev Module Module

Relais rattert nicht, aber die Accesspoint und Wifi funktionieren auch 
nicht.
(auch nicht mit korrigiertem Gateway 192.168.1.0)

2. Versuch

ESP32C3 Dev Module
A fatal error occurred: This chip is ESP32 not ESP32-C3. Wrong --chip 
argument?

3. Versuch

ESP32S2
A fatal error occurred: This chip is ESP32 not ESP32-S2. Wrong --chip 
argument?

hat jemand eine Idee welches Board ich sonst noch ausprobieren könnte?
Ich habe den Verkäufer kontaktiert, vielleicht hat er eine Antwort.

von Harald K. (kirnbichler)


Lesenswert?

Otto E. schrieb:
> (auch nicht mit korrigiertem Gateway 192.168.1.0)

Das ist auch keine gültige IP-Adresse.

Wenn das Ding mit Deinem heimischen WLAN verbunden werden soll, und Du 
ein Gatewas ("Router") nutzen möchstest, dann muss das die IP-Adresse 
Deines Routers sein. Und mit .0 endet keine gültige /24-IP-Addresse.

von Rainer W. (rawi)


Lesenswert?

Otto E. schrieb:
> Meine Vermutung ist dass GPIO 25 etwas mit dem Antennensignalausgang zu
> tun hat.

Wie kommst du auf die Vermutung, dass beim ESP32-WROOM-32E der 
(digitale) GPIO25 etwas mit dem Antennensignal zu tun haben könnte?
Im Schaltplan (S.33) ist davon nichts zu sehen.
https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Harald K. schrieb:
> Und mit .0 endet keine gültige /24-IP-Addresse.

Darüber lässt sich vortrefflich streiten. Man kann durchaus die (eher 
theoretische) "Netzwerkadresse" einem Host zuweisen. Das funktioniert 
ohne Probleme.

Aber das ist offtopic hier. Wenn Du darüber diskutieren möchtest, öffne 
bitte einen neuen Thread.

Otto E. schrieb:
> (auch nicht mit korrigiertem Gateway 192.168.1.0)

Die Gateway-Adresse muss in demselben Netz wie die eigene Adresse 
liegen. Da die Host-Adresse des ESP 192.168.4.1 lautet, muss das Gateway 
192.168.4.x lauten - x zwischen 0 und 254. Legst Du die Gateway-Adresse 
auf die eigene Host-Adresse (also 192.168.4.1) ist das nicht unbedingt 
verkehrt. Dein ESP kann dann halt keinen Router erreichen, um aus seinem 
Netz herauszukommen. Nicht schlimm, da Dein ESP ja wohl ein Accesspoint 
sein soll - ohne Internet-Anschluss. Setze also die Gateway-Adresse auf 
192.168.4.1, wenn das ein "geschlossenes" Netz sein soll.

von Otto E. (otto_kraut)


Lesenswert?

Harald K. schrieb:
> Otto E. schrieb:
>> (auch nicht mit korrigiertem Gateway 192.168.1.0)
>
> Das ist auch keine gültige IP-Adresse.
>
> Wenn das Ding mit Deinem heimischen WLAN verbunden werden soll, und Du
> ein Gatewas ("Router") nutzen möchstest, dann muss das die IP-Adresse
> Deines Routers sein. Und mit .0 endet keine gültige /24-IP-Addresse.

Auch wenn das voll am Thema vorbei geht:
ich will mich nicht mit dem heimischen WLAN verbinden!

ich erzeuge einen Access Point,

  WiFi.softAPConfig(ip, gateway, subnet);
  WiFi.softAP(ssid, pass);

mit einem Tablet kann ich mich dann mit dem ESP32 verbinden und 
Parameter verändern, oder in den manuell Modus wechseln und Ventile oder 
Heizpatronen ein und ausschalten.

von Otto E. (otto_kraut)


Lesenswert?

Rainer W. schrieb:
> Otto E. schrieb:
>> Meine Vermutung ist dass GPIO 25 etwas mit dem Antennensignalausgang zu
>> tun hat.
>
> Wie kommst du auf die Vermutung, dass beim ESP32-WROOM-32E der
> (digitale) GPIO25 etwas mit dem Antennensignal zu tun haben könnte?
> Im Schaltplan (S.33) ist davon nichts zu sehen.
> 
https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf

Ganz einfach,

aktiviere ich WLAN rattert das Relais, deaktiviere ich es tut es das, 
was ich mittels digitalWrite programmiert habe.
Aber danke für den Schaltplan, bringt mich auf die Idee es mal mit einem 
Development board und Relaismodul auszuprobieren.

: Bearbeitet durch User
von Flip B. (frickelfreak)


Lesenswert?

Wie sieht deine Stromversorgung aus? Versorgst du das Relaisboard am 5V 
anschluss mit langen dünnen litzen oder "Dupont" Kabeln aus 
eisenhäärchen?

von Hobby B. (bastler2022)


Lesenswert?

Otto E. schrieb:
> Bisher sehe ich als einzige Lösung,

Was macht den das Board mit Original Software oder Tosmata ?

Hatte davon auch mal welche im Einsatz allerdings mit Tosmata ohne 
Probleme.

Bin dann aber auf die Version mit Gehäuse und 4 Tastern umgestiegen.
Zeig mal ein Bild von deinem Board, bzw. von dem Aufbau bei Dir.

Habe jetzt auf die Schnelle nur das dazu gefunden bei Amazon. Bin nicht 
zu Hause.

MHCOZY 4 Kanal Trockenkontakt Smart Wireless Zigbee Schalter Relais 
Modul, Arbeit mit Alexa Google Home

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Otto E. schrieb:
> Hat jemand eine bessere Idee als das Umlöten, oder habe ich irgendeinen
> Fehler gemacht?

Was passiert, wenn du in deinem Testprogramm erst das Relais an GPIO26 
und dann das an GPIO25 schaltest, also Zeile 29 und 31 oben tauscht?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Andere Idee: Das Netzteil ist vielleicht zu schwach.

Im WLAN-Betrieb benötigt der ESP sicher mehr Strom als ohne. Zusammen 
mit dem Relais, welches auch noch Strom zieht, könnte es dazu führen, 
dass die Spannung soweit zusammenbricht, dass entweder das Relais 
abfällt oder gar der ESP resettet.

Keine Ahnung, ob das zutrifft. Aber über die verwendete Stromversorgung 
wurde noch nichts erzählt.

von Otto E. (otto_kraut)


Angehängte Dateien:

Lesenswert?

Flip B. schrieb:
> Wie sieht deine Stromversorgung aus? Versorgst du das Relaisboard am 5V
> anschluss mit langen dünnen litzen oder "Dupont" Kabeln aus
> eisenhäärchen?

Wie gesagt wenn ich die WiFi Funktion nicht nehme funktioniert alles 
optimal.
Ich habe es auch mit nur einem Relais probiert, das Ergebnis ist 
dasselbe.

Nun habe ich ESP32 WROOM Development Board mit einem Relais verbunden 
und dasselbe Programm ausprobiert. Das Relais habe ich natürlich an 
Ausgang 26 angesteckt. Das Relais klappert, siehe Video.

Wenn ich GPIO 26 anstatt GPIO 25 nehme schaltet es wie programmiert.

Wenn ich die WLAN Funktion auskommentiere funktioniert es ebenso.

Wie ihr auf dem Video seht, ist das jetzt ein simpler ESP32 WROOM clone, 
der genau dieselbe Macke hat.

Aufbau seht ihr im Video, das 4 Relais Board habe ich benutzt wie es 
ist.

Spannungsversorgung kann es nicht sein, sie ist stabil 5V, welche ich an 
dem erforderlichen Eingang angelegt habe. 3,3V wir generiert.

Die Stromversorgung ist stabil, und nicht das Problem

von Hobby B. (bastler2022)


Lesenswert?

Otto E. schrieb:
> Spannungsversorgung kann es nicht sein, sie ist stabil 5V, welche ich an
> dem erforderlichen Eingang angelegt habe.

Welche Spannungsversorgung nutzt Du für die Relais denn ? Die 5V sind ja 
nicht für beides, bei dem Modul.

von Dieter S. (hotsystems)


Lesenswert?

Otto E. schrieb:
> Das Relais habe ich natürlich an
> Ausgang 26 angesteckt. Das Relais klappert, siehe Video.
>
> Wenn ich GPIO 26 anstatt GPIO 25 nehme schaltet es wie programmiert.

Was denn nun.
Funktioniert es an GPIO 26 richtig oder nicht ?

von Otto E. (otto_kraut)


Lesenswert?

Dieter S. schrieb:
> Otto E. schrieb:
>> Das Relais habe ich natürlich an
>> Ausgang 26 angesteckt. Das Relais klappert, siehe Video.

Sorry Tippfehler, es soll

"Ausgang 25 angesteckt. Das Relais klappert, siehe Video".

heissen!

: Bearbeitet durch User
von Otto E. (otto_kraut)


Lesenswert?

Fehlerursache gefunden aber nicht die Lösung:

auf der Seite von

https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

habe ich die Ursache gefunden:

"Note: ADC2 pins cannot be used when Wi-Fi is used. So, if you’re using 
Wi-Fi and you’re having trouble getting the value from an ADC2 GPIO, you 
may consider using an ADC1 GPIO instead. That should solve your 
problem."


Aber auf dem 4-relais board sind genau zwei dieser Ausgänge and GPIO 
ADC2 pins, nämlich 25 und 26.

Warum nur einer meckert ist natürlich auch nicht geklärt.

Versuche mit
dacDisable(25);

brachten keinerlei Verbesserung.


Bin wieder am Anfang, "Umlöten als einzige Lösung"

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Otto E. schrieb:
> Versuche mit
> dacDisable(25);
> brachten keinerlei Verbesserung.

Schau mal hier rein: 
https://forum.arduino.cc/t/disable-dac-pins-on-pin-25-and-26-on-esp32/883460/11

Dort fand der TO für sich diese Lösung:
1
// Disable DAC1
2
REG_CLR_BIT(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_XPD_DAC);
3
REG_SET_BIT(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_DAC_XPD_FORCE);
4
// Disable DAC2
5
REG_CLR_BIT(RTC_IO_PAD_DAC2_REG, RTC_IO_PDAC2_XPD_DAC);
6
REG_SET_BIT(RTC_IO_PAD_DAC2_REG, RTC_IO_PDAC2_DAC_XPD_FORCE);

Ob das für Dich auch gilt, kann ich nicht beurteilen.

von Otto E. (otto_kraut)


Angehängte Dateien:

Lesenswert?

Hallo Frank,

danke für den Hinweis, so würde es sicher auch gehen, allerdings habe 
ich es gerade schon anders gelöst.

Ich habe die Verbindung auf der Platine vom Mikrocontroller zum 
Headerpin leicht angebohrt. Dies mit einem 1 mm Bohrer den ich nur 
zwischen zwei Fingern gedreht habe, das ging ohne irgend einen Antrieb 
kinderleicht in weniger als einer Minute.
Dann habe ich am Headerpin den Anschluss GPIO25 mit GPIO 27, welcher 
gleich nebenan liegt per Brücke verbunden. Ich nutze also GPIO27 für das 
Relais.

Auf dem beigefügten Photo sieht man einen hellgrauen Fleck, der 
entstanden ist als ich die Platine mit dem 1mm Bohrer angebohrt habe.

Außerdem kann man auch die Brücke sehen ich auf die Headerpinleiste 
gesteckt habe, eventuell kann man auch auf der Rückseite die beiden Pins 
mit einem aufgelöteten Draht verbinden.

Nun funktioniert alles wie gewollt!

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.