Freie GPIO's am ESP32

Hallo zusammen,
ich habe hier ein Projekt (ESPimatik) auf einem NodeMCU1.0 (ESP12-E) laufen. Etwas angepasst, damit in der Arduino IDE die ESP Bibliothek 2.4.1 verwendet werden kann. Ging vorher nur mit 2.0.1 wegen Base64 Problemen. Der kompilierte Code ist jetzt auch um 10kB schlanker.
Mir gehen aber die freien Pins aus. DS10B20 auf GPIO15 funktioniert z.B nicht, weil dann der ESP nicht mehr bootet. Relais an dem GPIO geht auch nicht.
Hat der ESP32 mehr GPIO's, die beim booten keinen bestimmten Pegel(HIGH/LOW) haben müssen?
Dann würde ich auf den 32 umsteigen, schon wegen dem Speicherplatz.

Gruß
Fred

Hallo,

Relais direkt an einem µC Pin funktioniert nirgends, das müssten schon absolute Spielzeugteile sein. Ein Transistor wird dafür immer benötigt und noch etwas mehr. Da du dich eh schon auf den größeren Speicher freust nimm den ESP32 und fertig.

Relais direkt an einem µC Pin funktioniert nirgends, das müssten schon absolute Spielzeugteile sein.

Da sind die kleinen blauen chinesischen Spielzeugrelays dran. Für eine LED Lampe und eine 12V Wasserpumpe reichen die schon.
Ich kann halt nur nicht mehr als 6 GPIO's benutzen (2,4,5,12,13 und 14). Bei allen anderen bootet der ESP nicht mehr.
Ich lass mir jetzt einfach mal einen ESP32 schicken und probiere das Teil aus. Weniger freie GPIO's werden es schon nicht sein.

Hast Du Dich mal informiert, welchen Strom die Ausgänge der ESP8266 / ESP32 treiben können und welchen Du brauchst, um die LED des Optokopplers zu treiben?

Gruß Tommy

Nö, aber du kannst mich ja mal aufklären.

Hallo,

im Datenblatt steht 12mA als Maximum. Ich würde nicht über 10mA gehen, weil ich annehme das mit 12mA das absolute maximum gemeint ist, welches eigentlich extra ausgewiesen wird. Das Ganze bei 3,3V.
Entweder Kleinsignaltransistoren verwenden die eine hohe Verstärkung haben oder ein Mosfet der "3,3V fähig" ist. Die findet man jedoch selten im TO-220 Gehäuse. Eher SOIC-8 oder noch kleiner.

https://tttapa.github.io/ESP8266/Chap04%20-%20Microcontroller.html

An Portexpander hatte ich vorhin nicht gedacht, weil die Dinger fast nix kosten - gute Idee. :wink:

@noiasca
Flash ist noch ausreichend vorhanden. Das Projekt wächst aber weiter.
Die Konfiguration der ganzen App erfolgt über HTML Seiten und wird im Eerom gespeichert. Da die Konfiguration nur 1-2 mal im Monat geändert wird, sollte das den Speicher nicht gleich killen. Als Alternative könnte ich auch auf eine SD Card ausweichen.
Wenn ich jetzt so einen I2C Expander integriere, müsste ich 80% des Sketches und alle HTML Seiten neu schreiben. :(( kotz
Ich will bei dem Projekt nicht schon wieder auf einen Raspi umsteigen. Ein ZeroW kostet jetzt zwar nicht die Welt, aber vieeeeel Zeit, um die Geschichte umzuschreiben.

@Doc_Arduino
Ich habe eine 4-Relay Platine am NodeMCU dran hängen, funktioniert 1A.
Angeblich brauchen die nur 7mA zum Schalten.

freddy64:
Angeblich brauchen die nur 7mA zum Schalten.

Ich würde schon auf mehr Sicherheit bauen, damit die Hardware auch in ein paar Wochen noch funktioniert.
Grüße Uwe

freddy64:
Hallo zusammen,
ich habe hier ein Projekt (ESPimatik) auf einem NodeMCU1.0 (ESP12-E) laufen. Etwas angepasst, damit in der Arduino IDE die ESP Bibliothek 2.4.1 verwendet werden kann. Ging vorher nur mit 2.0.1 wegen Base64 Problemen. Der kompilierte Code ist jetzt auch um 10kB schlanker.
Mir gehen aber die freien Pins aus. DS10B20 auf GPIO15 funktioniert z.B nicht, weil dann der ESP nicht mehr bootet. Relais an dem GPIO geht auch nicht.
Hat der ESP32 mehr GPIO's, die beim booten keinen bestimmten Pegel(HIGH/LOW) haben müssen?
Dann würde ich auf den 32 umsteigen, schon wegen dem Speicherplatz.

Gruß
Fred

Naja Relais geht schon. Brauchst halt eine separate Spannungsversorgung in höhe von 5V und min. 1A.
Hab auch Relais über mein MCU gesteuert bekommen, sobald bekannte RFIDs gescannt werden schalten je nach Recht (je nach RFID-Code) unterschiedliche Relais.

freddy64:
@Doc_Arduino
Ich habe eine 4-Relay Platine am NodeMCU dran hängen, funktioniert 1A.
Angeblich brauchen die nur 7mA zum Schalten.

Hast Du die mal gemessen?

Gruß Tommy

Hi

Spricht was gegen Port-Expander (I²C/SPI für normale I/O) für die normalen Brot&Butter-Aufgaben?

MfG

Hallo,

es spricht nichts gegen einen Portexpander, bei mir meist MCP23S17 an SPI.
Man kann auch am ESP8266 ziemlich viele Pins direkt nutzen. GPIO15 für ein Relais ist z.B. kein Problem, Basiswiderstand, Transistor, Relais ran und fertig. Evtl. noch einen externen 2,2k PullDown an den GPIO, der auf der NodeMCU ist recht hochohmig. Bei der Relaiskarte müßte man den Schaltplan befragen und evtl. eingreifen, ein Optokoppler gegen + geht z.B. nicht, weil der den GPIO zur Bootzeit auf H ziehen würde. Ein Optokoppler zwischen GPIO und GND der mit H einschaltet wäre kein Problem.
Einge GPIO zappeln auch beim Booten des ESP etwas rum, da können Relais gern mal klappern usw.
GPIO0, 2,4,5,12,13,14,15 sind nutzbar, man muß eben die Abhängigkeiten beachten.

Gruß aus Berlin
Michael

Mit 15 kOhm gegen GND kann man das Zappeln beim Booten eindämmen.

Gruß Tommy

Gpio 1 und 3 sind doch auch nutzbar, wenn die serielle nicht gebraucht wird

Und übrigens, der ESP8266 hat kein EEPROM. Nur eine EEPROM Emulation, wobei dafür der Flash benutzt wird. Sollte man beachten, da es Probleme mit den Daten gibt, wenn während des Speicherns der Strom ausfällt.

SD-Karte brauchst du auch nicht, da kannst du Spiffs verwenden. Es sei denn, du willst Sie rauszunehmen können.