Hallo ich habe ein Problemm mit dem Seriallen Monitor

Wenn ich auf dem ESP8266 den Seriellen Monitor öffne kommt nur so ein wir war Text: ⸮⸮⸮⸮Qz9⸮⸮⸮{m⸮5⸮z⸮T⸮k⸮⸮⸮3{-5⸮⸮⸮͎⸮⸮⸮H. Woran kann das liegen ?

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>

// Set up GPIO pin
const int pump_pin = 8;
void setup() {
  // Initialize serial communication
  Serial.begin(9600);

  // Set pump_pin as output
  pinMode(pump_pin, OUTPUT);
}
// Define function to start or stop the pump
void control_pump(bool on) {
  if (on) {
    Serial.println("Startet die Bewässerung...");
    digitalWrite(pump_pin, HIGH);
    delay(420000); // in milliseconds
    digitalWrite(pump_pin, LOW);
    Serial.println("Bewässerung fertig");
  }
  else {
    digitalWrite(pump_pin, LOW);
    Serial.println("Pumpe gestoppt");
  }
}

// Define function to continuously check weather and pump status
void auto_mode() {
  // Define start times for pump operation
  String start_times[] = {"06:00", "20:00"};
  int num_start_times = sizeof(start_times)/sizeof(start_times[0]);

  while (true) {
    // Get current time
    WiFiClient client;
    HTTPClient http;
    http.begin(client, "http://worldtimeapi.org/api/timezone/Europe/Berlin");
    int httpCode = http.GET();
    if (httpCode > 0) {
      String payload = http.getString();
      int time_index = payload.indexOf("datetime\":\"") + 12;
      String current_time = payload.substring(time_index, time_index + 5); // Extract hour and minute
      Serial.print("Aktuelle Zeit: ");
      Serial.println(current_time);

      // Check if it's time to start pump
      for (int i = 0; i < num_start_times; i++) {
        if (current_time == start_times[i]) {
          // Make API request to get weather data
          String api_key = ":)";
          String city = ":)";
          String postal_code = ":)";
          String url = "http://api.weatherapi.com/v1/current.json?key=" + api_key + "&q=" + city + "&postal_code=" + postal_code;
          http.begin(client, url);
          httpCode = http.GET();
          if (httpCode > 0) {
            String payload = http.getString();
            DynamicJsonDocument doc(1024);
            DeserializationError error = deserializeJson(doc, payload);
            if (error) {
              Serial.print("Fehler beim Analysieren des Wetter-API-Antwort: ");
              Serial.println(error.c_str());
              return;
            }
            const char* weatherCondition = doc["current"]["condition"]["text"];
            Serial.print("Wetterbedingungen: ");
            Serial.println(weatherCondition);
            // Check if it's raining
            if (strstr(weatherCondition, "rain") != NULL) {
              Serial.print("Es regnet, die Pumpe bleibt bis zur nächsten Uhrzeit aus.");
            } else {
              // Turn on pump for 7 minutes
              control_pump(true);
              delay(420000);
              control_pump(false);
            }
            // End HTTP connection
            http.end();
          } else {
            Serial.println("Fehler beim Verbinden mit dem Wetter-API-Server");
          }
          delay(60000); // Wait 1 minute before checking again
        }
      }
    }
  }
}

void loop() {
auto_mode();
}

das kann an der falschen Baud-Rate liegen, die im Sketch angegeben mit der im Seriellen Monitor eingestellten übereinstimmen sollte.. nein Muss! :wink:

Der SerMon so eingestellt wie im Sketsch?

Du möchtest den Monitor auf 74880 Baud stellen, damit du die Meldungen lesen kannst.
Das ist der Default für System Meldungen.

Ist hier wohl nicht das Problem.
Die System Meldungen kommen VOR dem Sketch.

Ist hier wohl nicht das Problem.
Die System Meldungen kommen VOR dem Sketch.

Wenn ich es auf 74880 Baud umstelle kommt das raus:
17:12:29.383 -> ⸮⸮⸮PV⸮⸮ET⸮⸮⸮⸮T⸮⸮K⸮⸮u⸮U+UZ⸮R⸮T⸮⸮T⸮⸮⸮⸮Eu⸮⸮T⸮UQ⸮⸮jP⸮⸮⸮⸮u⸮⸮⸮⸮⸮ZT⸮(E⸮⸮⸮⸮Q⸮UEu⸮⸮⸮⸮⸮⸮⸮jPE⸮u⸮⸮E+⸮⸮TT)UZV⸮⸮⸮(ZV⸮⸮⸮⸮(Q⸮⸮QQ⸮U⸮rf cal sector: 1020
17:12:29.429 -> freq trace enable 0
17:12:29.429 -> rf[112] : 0⸮⸮⸮
⸮PV⸮⸮ET⸮⸮⸮⸮T⸮⸮K⸮⸮u⸮U+UZ⸮R⸮T⸮⸮T⸮⸮⸮⸮⸮u⸮⸮T⸮UQ⸮⸮jP⸮⸮⸮⸮u⸮⸮⸮⸮⸮ZT⸮(E⸮⸮⸮⸮Q⸮UEu⸮⸮⸮⸮⸮⸮⸮jPE*⸮u⸮⸮E+⸮⸮TT)UZV⸮⸮⸮(ZV⸮⸮⸮⸮(Q⸮⸮QQ⸮*U⸮rf cal sector: 1020
17:12:37.921 -> freq trace enable 0
17:12:37.921 -> rf[112] : 0⸮

Bei einer Baudrate von 115200 kommt das raus was hat das zu bedeuten ?
17:16:03.130 -> wdt reset
17:16:03.176 -> load 0x4010f000, len 3424, room 16
17:16:03.176 -> tail 0
17:16:03.176 -> chksum 0x2e
17:16:03.176 -> load 0x3fff20b8, len 40, room 8
17:16:03.176 -> tail 0
17:16:03.176 -> chksum 0x2b
17:16:03.176 -> csum 0x2b
17:16:03.176 -> v00047520
17:16:03.176 -> ~ld
17:16:03.222 -> ⸮⸮⸮⸮o⸮s⸮⸮N|⸮d⸮⸮d c⸮⸮⸮⸮⸮r⸮d⸮n⸮⸮N⸮l ⸮⸮r⸮l⸮l⸮

Das sind die System Meldungen von denen ich sprach.
Die kommen bei mir, bei 74880 Baud.
Bei allen ESP8266.
Du siehst mich verwundert!

Alles nach dem ~ld sind Ausgaben deines Programms.

1 Like

Anscheinend liegt es nicht an der Bautrate ich habe mall den Code veröffentlicht, vieleicht ist ja im Code ein Fehler

Dann stelle doch mal Code und Monitor auf 115200.

Gruß Tommy

Ok, aber mal nur so hat der Code offensitchliche Fehler ?

Habe ich gemacht er hat aber immernoch sowas raus:
17:31:08.862 -> ets Jan 8 2013,rst cause:4, boot mode:(3,6)
17:31:08.862 ->
17:31:08.862 -> wdt reset
17:31:08.862 -> load 0x4010f000, len 3424, room 16
17:31:08.862 -> tail 0
17:31:08.862 -> chksum 0x2e
17:31:08.862 -> load 0x3fff20b8, len 40, room 8
17:31:08.862 -> tail 0
17:31:08.862 -> chksum 0x2b
17:31:08.862 -> csum 0x2b
17:31:08.862 -> v00047520
17:31:08.862 -> ~ld
17:31:08.908 -> ⸮⸮⸮e⸮n⸮{⸮⸮n|⸮l⸮⸮$`b⸮⸮|{⸮l⸮n⸮⸮n⸮

Da es im seriellen Monitor nicht 1ne sache anzeigt aus dem Script

Wie kommst du auf GPIO 8? ist doch reseviert für Speicher.
was für 8266 ist das?

Wen du meinst D8 dann ist das GPIO15 :wink:

https://www.amazon.de/AZDelivery-NodeMCU-ESP8266-ESP-12E-Development/dp/B074Q27ZBQ/ref=sr_1_4?__mk_de_DE=ÅMÅŽÕÑ&keywords=esp&qid=1682696654&s=computers&sr=1-4 diesen habe ich

OK, danke

Ist das eine Fehlermeldung oder warum startet das Programm auf dem ESP nicht ?

17:47:41.279 -> ets Jan 8 2013,rst cause:2, boot mode:(3,6)
17:47:41.279 ->
17:47:41.279 -> load 0x4010f000, len 3424, room 16
17:47:41.279 -> tail 0
17:47:41.279 -> chksum 0x2e
17:47:41.279 -> load 0x3fff20b8, len 40, room 8
17:47:41.279 -> tail 0
17:47:41.279 -> chksum 0x2b
17:47:41.279 -> csum 0x2b
17:47:41.279 -> v00047520
17:47:41.279 -> ~ld
17:47:41.371 -> ⸮œ⸮e⸮o⸮r⸮⸮n|⸮$⸮$`"⸮e⸮|{⸮⸮l⸮o⸮⸮n⸮

Schau mal hier ausdrucken wirst öfters brauchen :wink:

ok, danke

Das ist eine Meldung das er wegen eines Problemes neu startet.