Erste gehversuche mit dem ESP32

Ich habe mir das erstemal den ESP32 vorgenommen. Habe ein Miniprogramm reingeladen, und verändert, wieder reingeladen, ein anderes einfaches Testprogramm geladen und getestet, und, und, und, hat immer funktioniert.
Dann, auf einmal kein Programm laden mehr möglich.
"Beim Hochladen des Sketches ist ein Fehler aufgetretten"
Dann habe ich mich erinnert, dass schon oft im Forum als Abhilfe zum Laden der Tipp kann, dass man werend des Connectings die BootTaste eine kurze Zeit drücken soll. Ja tatsächlich, dann wird das Programm wieder geladen. Klappt auch jedesmal.
ABER WARUM muss ich plötzlich immer wieder diese BOOT Taste beim Connecting drücken???
eine Minute vorher konnte ich die selben Programme IMMER ohne dieses Spielchen laden. Jetzt plötzlich immer nur noch mit dem drücken der Boot Taste.

Gibt es irgend einen Grund für diese plötzliche Änderung? Ich habe nichts anderes gemacht, wie vorher. Und das ist immer noch so :roll_eyes:

Servus
Franz

Hallo,
Anscheinend ist da was spitz auf Schnaps, Google Mal danach es gibt eine Lösung mit einem zusätzlichen Kondensator. Ich weiß aber nicht mehr wo der angeschlossen werden soll . Vermutlich zwischen reset und ... sorry Ich weiß es nicht mehr
Heinz

Nachtrag

Schau Mal hier , ich hab's gefunden

1 Like

Der Klassiker... Ja, genau das ist die Lösung. Das Design ist da echt dumm - der ESP32 zieht sich beim Reboot mangels Spannung den EN für Millisekunden selbst auf LOW und paralysiert sich dabei. Manchmal klappt es, weil irgendwelche Restspannungen anstehen. Ich habe den Elko immer als erstes auf dem Breadboard :grin:

Es scheint sich um eine Art Glücksspiel zu handeln. Beim ersten Kauf benötigten alle ESP32 diesen Kondensator, bei mir 10 µF aus der Bastelkiste, zwischen EN und GND. Beim zweiten Kauf funktioniert der Upload ohne.

Basisprogramm mit OTA unter Verwendung eines Kondensators drauf, danach nur noch OTA = Upload Over The Air.

sehe ich auch so.
Der zweite Sketch nach einem Blink ist etwas mit OTA.

Wenn ich mich richtig erinnere, habe ich diese Idee von Dir geklaut :blush:

1 Like

Hööö, das schein ja schon sehr bekannt zu sein. Danke für die Antworten. Dann heize ich mal mein Leimeisen an. Ich habe ja gleich mal 5 Stück gekauft, wollte aber ohne Info jetzt nicht gleich den nächsten schießen. Aber dann habe ich ja offenbar nichts gekillt :grinning:

Bis später
Franz

Danke jetzt macht er wieder was er soll :grinning:

Schönes WE
Franz

1 Like

Auf zwei zusammengesteckte Breadboard SYB-46 paßt ein ESP32 auch gesteckt drauf.

Ja, habe mir alles bestellt. Am Montag sollte alles kommen, also Sensorshielder, 3 Breadboard´s, Display´s. Ich muss ja jetzt das erste mal auf 3,3 Volt einsteigen. Wollte ich eigentlich vermeiden, aber wenn schon dann richtig. Diese ESP32 sind ja schon erstaunlich gut.

Das wird genaus wie das hier für den Nano.

Franz

Dann wirst Du eine Überaschung erleben, denn das paßt nur, wenn Du je einen Stromverteiler abmachst und zwei verwendest:

grafik

Ich verwende wieder diese Sensorshielder:


Bei denen habe ich bessere Steckverbindungen und die BreadBoards nur zu anstecken von LED´s, Tasten und Gedöhns. Diese Shielder gibts ja ziehmlich für alle. Und bei dem Breadboards habe ich schon die bestellt, wo man die +/- Leisten abnehmen kann, dass ich auch so anstecken kann wie du da abgebildet hast.

Chapeau! So komfortabel bin ich dann doch nicht ausgestattet.

Meine ESP32 haben bislang alle Attacken mit 5 V problemlos überstanden, da brauchst Du Dir keine Gedanken zu machen.

Die kleinen OLEDs finde ich ganz praktisch für IPs, JSON Nachrichten und dergleichen.

Ich bin gespannt, was Du kreierst :slightly_smiling_face:

Ich auch :roll_eyes: :grinning:

Das ist gut zu wissen. Ich versuche immer alles so zu konstruieren, dass ich dann ohne groß nachzudenken einfach verkabeln kann. Aber ich schaffe es trotzdem immer wieder, was zu killen :thinking: .........aber die Händler sind ja froh wenn man wieder neu einkauft :grinning:

Die Oleds sind auch Neuland bei mir, wie die ESP´s.

Ja...
Das hatten wir doch schon mal.... @uxomm - dem ich dafür noch immer dankbar bin - war damals so nett und hat das rauskopiert: Bonsaino - automatisches Pflanzensystem - #14 by uxomm
und: esp32 und externer ATmega 328p - pu - #27 by my_xy_projekt
Ich habe mich damals nicht ohne Grund sehr weit rausgelehnt. Ich hatte die DaBla in der ursprünglichen Fassung gesehen; die sind aber irgendwie gänzlich nicht mehr auffindbar.
Auch nicht in der waybackmachine.

Dann mal ein ausbaufähiges Programm zum Einstieg aus meiner Bastelkiste, basierend auf den Tabs von Fips:

#include <ArduinoOTA.h>
#include <Wire.h>
#include <U8g2lib.h>  // als U8g2 im Bibliotheksverwalter zu finden

//U8G2_SSD1306_128X64_NONAME_F_HW_I2C oled(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
U8G2_SH1106_128X64_NONAME_F_HW_I2C oled(U8G2_R0);
/* VDD - 3.3V
 * GND - GND
 * SCL - GPIO22
 * SDA - GPIO21
 */
void Connect() {                            // Funktionsaufruf "Connect();" muss im Setup nach "spiffs();" eingebunden werden
  const char *ssid = "Esp32AP";             // << kann bis zu 32 Zeichen haben
  const char *password = "12345678";        // << mindestens 8 Zeichen jedoch nicht länger als 64 Zeichen
  WiFi.mode(WIFI_AP);
  if (WiFi.softAP(ssid, password)) {
    anzeigeOLED("Verbinde dich mit");
    anzeigeOLED(ssid);
    anzeigeOLED(String("IP: " + WiFi.softAPIP().toString()).c_str());
  } else {
    anzeigeOLED("Fehler beim Erstellen.");
  }
}

void anzeigeOLED(const char * text) {
  const byte ZEILEMAX = 8;
  const byte SPALTEMAX = 22;
  static char buf[ZEILEMAX][SPALTEMAX] = {" ", " ", " ", " ", " ", " ", " ", " "};
  oled.clearBuffer();              // clear the internal memory
  oled.setFont(u8g2_font_6x12_tr); // choose a suitable font
  for (byte zeile = 0; zeile < ZEILEMAX; zeile++) {
    oled.setCursor(0, ((zeile + 1) * 8) - 1);
    for (byte spalte = 0; spalte < (SPALTEMAX - 1); spalte++) {
      if (zeile < (ZEILEMAX - 1)) {
        buf[zeile][spalte] = buf[zeile + 1][spalte];
        if (buf[zeile][spalte] == '\0') {
          break;
        }
      } else {
        buf[zeile][spalte] = text[spalte];
        buf[zeile][spalte + 1] = '\0';
        if (buf[zeile][spalte] == '\0') {
          break;
        }
      }
      oled.print(buf[zeile][spalte]);
    }
  }
  oled.sendBuffer();          // transfer internal memory to the display
}

void setup() {
  oled.begin();
  Connect();
  delay(1000);
  anzeigeOLED("Los geht's Franz!");
  ArduinoOTA.begin();
}

void loop() {
  ArduinoOTA.handle();
}

Hinweise:

  WiFi.mode(WIFI_AP);
  if (WiFi.softAP(ssid, password)) {

öffnet ein eigenes, vom Router unabhängiges WLAN, bei dem man sich anmelden muß:

grafik

OTA geht bei mir nur im privaten Netzwerk:

grafik

Der Aufbau sieht bei mir so aus:

Ich wünsche Dir viel Spaß!

1 Like

Danke, dann habe ich ja schon mal ein paar Aufgaben. :smiley:

Habe heute schon die Shielder zu den ESP32 bekommen. Aber leider passen die nicht wirklich. Die Steckleisten des Shieldes sind 2mm weiter zusammen als die Pfostenstecker Leisten auf der CPU. Das schaut dann so aus:

die ESP's gibts in unterschiedlichen breiten (und unterschiedlicher PIN-Anzahl) ... daher genau schauen was gekauft wird.

Das sieht "spannend" aus :skull: