- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 59

Thema: ESP8266, arduinoIDE, etliche Probleme

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686

    Ratlos

    Hallo Mitleser,

    nochmal kurz die Aufgabe: 2 Module, ein Empfänger- und Anzeigemodul "Flag" und ein Überwachungsmodul "Pbox", beide als ESP8266MOD 12-F. Zur Information die aktellen Codes; es sind etliche LED-Aktionen und Textzeilen zum Debuggen eingefügt. Die Funktion wurde meist ohne diese "Debug"-Einfügungen getestet, funktionierte gleich bis auf immer wieder gleiche, meist aber geänderte ip´s. Diese meist sehr zufälligen, von mir nicht beeinflussbaren ip-Änderungen sind mein eigentliches Problem. Bisher :-/ Vielleicht kann/will jemand helfen? Danke im Voraus.
    Anmerkung: die drei Platinen wurden testweise auch mal getauscht, um ihre vollständige Funktionalität sicher zu stellen.

    Einschub CODEs
    Code:
    //  Programm Flag-ESP aus "ESP8266 Das Projektbuch", Seiten 27ff ... korr 08072023
    //  Beginn: bearbeitet am 20.07.2023 00:44 => hh:mm     Boardeinstellg >>FLAG<< auf Board #01
    //        . . . . . . .
    //Aktuell bearbeitet 02 08 23 0944  GENAU abstimmen mit Projektbuch, ABER eigene Fix-Daten
    
      #include <ESP8266WiFi.h>
      #include <ESP8266WebServer.h>
      #include <Servo.h>
    
      #define  LED 2                             // LED16=D0; LED wird mit "low" eingeschaltet, "high" => aus
                                                  // LED2 =!D4 (int. LED)
      const char* ssid      = "NodeKTM";             //  Empfänger ist hier FLAG  ! ! <<< Aufrufer = Postbox ! !
      const char* password = "12345678";            //Enter Password here
    
      IPAddress       ip (192,168,  1, 92);
      IPAddress local_ip (192,168,  1, 92);
      IPAddress gateway  (192,168,  1,  1);
      IPAddress subnet   (255,255,255,  0);
    
      Servo myservo;
      String inString;
      ESP8266WebServer server(80);
    // --------------------------
      void handleRoot()
      {
        server.send(200, "text/plain", "ESP Flag Server");
        Serial.println("\r\nhandleRoot on");           // ###> 1 Zeile Einfügung
      }
    // --------------------------
      void handleFlag()
      {
        server.send(200, "text/plain", "Flag is up");
    //      1 Zeile Einfügung zur besseren Veständlichkeit
        Serial.println("\r\nhandleFlag on");           // ###> 1 Zeile Einfügung
        delay(1500);
      }
    // ---------------------------------------------------------------------------------------------------------
      void setup()                             // ssid = "FLAG";
      {                                         // Sequenz setup Start
        Serial.begin(115200);
        delay( 2000);                       
        Serial.println("\r\n");             // Start mit neuer Zeile
    // -------------------------------------------------------
    // -------------------------- #01 Beginn zu LED, LED IST aus
        pinMode(LED, OUTPUT);               // Port Ausgang D0 schalten
        digitalWrite(LED, HIGH);            // LED ein        LED (1)           LED I   EIN    IIIIIII    das erste Mal
        delay( 1000);                       
    // -------------------------- #01  Ende  zu LED, LED IST an
    // -------------------------- #02  Beginn  zu LED, LED IST an
        digitalWrite(LED, LOW );                // LED aus    LED (0)           LED     A U S   00000000  das erste Mal
    // -------------------------- #02  Ende  zu LED, LED geht aus
    // -------------------------------------------------------
        delay( 2000);                       // Verzögerungszeit zur sicheren Ausgabe von seriell
    //###  Zusatz - für Debug-/Informations-/Orientierungszwecke
        Serial.println("FLAG.xxx11, #03, NodeKTM, 1++8 .1.92, 0508 17h08,");   // Quelle Code und Board-Nr
                                            // 11h17: Zeile ?79? : myservo.write(0); zugefügt
    //  Serial.println("\r\n") ;
    // -------------------------- Beginn "alter" WiFi-Beginn aus "..Projektbuch.."
    //  WiFi.begin(ssid, password);         // im Original(-buch) steht "pass" statt password
    //  WiFi.config(ip, gateway, subnet);
    // -------------------------- Ende   "alter" WiFi-Beginn
    // -------------------------- Beginn "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
        WiFi.softAP(ssid, password);
        WiFi.softAPConfig(local_ip, gateway, subnet);
    // -------------------------- Ende "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
    // -------------------------- #03 Beginn zu LED, LED ist aus
        digitalWrite(LED, HIGH );                // LED an        LED (1)           LED I   EIN    IIIIIII    das zweite Mal
    // -------------------------- #03  Ende  zu LED, LED geht an
        delay( 1000);                           // Verzögerungszeit zur sicheren Ausgabe
        while (WiFi.status() != WL_CONNECTED)   //####    "FLAG"=Anzeige
        {
          delay(  500);
          Serial.print(".");
        }                                       //
    // -------------------------- #04 Beginn zu LED, LED ist an
        digitalWrite(LED, LOW );                // LED aus        LED (0)           LED     A U S   00000000  das zweite Mal
    // -------------------------- #04  Ende  zu LED, LED geht aus
    //###  Serial.println("") ;
    //  >>>>    Übernahme aus Simpl-..Srv.. ------------//  first line of the code snippet below, for
    //  example, indicates that when a server receives an HTTP request on the root (/) path, it will
    //  call the handle_OnConnect() function. Important to note that the URL specified is a relative path.
    //    server.on("/", handle_OnConnect);
    //    Serial.println("") ;
    //    Serial.print("Datei xxxx1.ino für FLAG. ");
    // -------------------------- 
        Serial.print("Verbunden mit ");
        Serial.println(ssid);
        Serial.print("localIP address: ");
        Serial.println(WiFi.localIP()) ;
        myservo.attach(13);                     // Syntax servo.attach :
    //- myservo.write(0);                       // servo.attach(pin); oder servo.attach(pin, min, max)
        delay(1500);                            // servo.attach(pin, min, max) mindefault 544, max 2400
    //  myservo.write(0);
    //- myservo.detach();
        server.on("/",handleRoot) ;
        server.on("/flag/", handleFlag);
    //      >>>>    Übernahme aus Simpl-..Srv..
    //  ..if the client requests a URL that isn’t specified with
    //  server.on(). It should give a 404 error (Page Not Found)
    //  as a response
    //  server.onNotFound(handle_NotFound);
    // -------------------------- #05 Beginn zu LED, LED ist aus
        digitalWrite(LED, HIGH);                // LED ein        LED D4 (1)           LED   ein, das dritte Mal
    // -------------------------- #05  Ende  zu LED, LED ist an
        delay(1500);                            // servo.attach(pin, min, max) mindefault 544, max 2400
    // -------------------------- #06 Beginn zu LED
        digitalWrite(LED, LOW );               // LED aus        LED D4 (0)            LED   aus, das dritte Mal
        delay(1500);                            // servo.attach(pin, min, max) mindefault 544, max 2400
    // -------------------------- #06  Ende  zu LED
        server.begin();
        Serial.println("HTTP server started");
      }                             // Sequenz setup Ende
    
      void loop(void)
      {
        server.handleClient();
    /* -------------------------- #05 Beginn zu LED
        digitalWrite(LED, HIGH);                // LED ein        LED D4 (1)
        delay(  50);                            //
    // -------------------------- #05  Ende  zu LED
    // -------------------------- #06 Beginn zu LED
        digitalWrite(LED, LOW );               // LED aus        LED D4 (0)
        delay( 1000);                            //
    // -------------------------- #06  Ende  zu LED
                                                          */
      }
    //  E N D E    des originalen Codes
    // -------------------------- 
    // -------------------------- 
    //  void handle_OnConnect()
    //  {
    //    Serial.println("handle OnConnect");
    //  }
    //  void handle_NotFound() 
    //  {
    //    server.send(404, "text/plain", "Not found");
    //  }
    // -------------------------- 
    // --------------------------
    Code:
    //  Programm Postbox-ESP aus "ESP8266 Das Projektbuch", Seiten 35ff ... korr 08072023
    /*      bearbeitet am 20.07.2023 23:46 => hh:mm    setup mit delay(1500) vor+nach Serial.println
            . . . .    P B O X
    aktuell bearbeitet 05 08 2023 17h43
                    /               /               /               /                 */
      #include <ESP8266WiFi.h>
    
      const char* ssid      = "NodeKTM";              // Dies hier ist Postbox       (Empfänger ist FLAG/2)
      const char* pass      = "12345678";           //
      const char* serverIp  = "192,168,1,92";         // Adresse aktuell 01 08 2023 17h54
    
    // --------------------------                ------------------------
    
      int serverPort = 80;
      WiFiClient client;
    // --------------------------
      void setup()
      {
        Serial.begin(115200);
          delay( 2000);
        Serial.println("");                     // Anmelde"text"; (Pbox #02,) nur Zeilenvorschub
        Serial.println("Pbox-xxx12, #02, NodeKTM, 1++8, .1.92, 0508-17h42");                   // Anmelde"text"; Pbox #02, Zeilenvorschub
    
        WiFi.begin (ssid, pass);                  //
    
        while (WiFi.status() != WL_CONNECTED)
        {
          delay(  500);
          Serial.print(".");
        }
    
        delay( 1000);
        Serial.println("");
        Serial.println("Pbox-xxx12, #02, NodeKTM, 1++8, .1.92, 0508-17h42");
        Serial.print("\r\nverbunden mit :  ");
        Serial.print(ssid);
        Serial.print("\r\nIP address/WiFi.localIP() :  ");
        Serial.println(WiFi.localIP());
    //  >>>>>>>><   neu    
        Serial.print("serverIp ist :"); Serial.print(serverIp);Serial.println("");
    
        if ( !client.connect(serverIp, serverPort) )
          {
            Serial.println("connect fail");
          }
    
        client.print("GET /flag/");
        client.println(" HTTP/1.1");
        client.print("Host: ");
        client.println(serverIp);
        client.println("Connection: close");
        client.println();
        client.stop();
        delay(1500);                      //
        ESP.deepSleep(0);
      }
    
      void loop() { }
    Code:
    // softIPtst.ino
    #include <ESP8266WiFi.h>                    
    //  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    void setup()
    {
      Serial.begin(115200);
      delay( 1000);
      Serial.println("");    Serial.println("");    Serial.println("- - - -");
      delay( 1000);  
      Serial.println("setting up softAPtst; n01 05082023 16h40");
      Serial.println("AP testen: NodeKTM, 12345678");
      boolean result = WiFi.softAP("NodeKTM", "12345678");
      delay( 2000);  
      if (result = true)
      {
        Serial.println("ready! Step: '1' ca 2sec");
      }
      else
      {
        Serial.println("failed!");
      }
    }
    
    //  - - - - - - - - - - - - - - - - - -
    void loop()
    {
      Serial.printf("station connected = %d\n", WiFi.softAPgetStationNum());
    /*  if ( !WiFi.softAPgetStationNum() )
      digitalWrite(LED, LOW);            // LED ein
      if ( WiFi.softAPgetStationNum() ) 
      {
        digitalWrite(LED, HIGH );            // LED aus
        delay(  200);
      }
      else { delay(  200); }
      delay(  800);
      digitalWrite(LED, HIGH );            // LED aus     */
      delay( 1000);
    //  Serial.println();
    }
    Platine/Programm Flag startet einen WLAN-AP, "NodeKTM", "ip(192,168,1,92)" - und horcht auf ein Signa (alternativ mal testweise vor allem anderen die softAP - erfolglos)l. Nach dem Start geht er in eine while-Schleife
    ........while (WiFi.status() != WL_CONNECTED)
    und sendet ohne "CONNECTED" dauernd einen Punkt auf die serielle Schnittstelle. Mit dem Zeitpunkt "CONNECTED" soll die Schleife verlassen werden in die eigentliche "loop"-Routine mit
    ........server.handleClient();
    Aktuell (ohne softAPtst) gibts nur eine endlose Ausgabe (USB-seriell) von Punkten. Die WLAN-Liste am Win10-PC zeigt die SSID (NodeKTM) mit - zum Zeitpunkt dieses Berichtes - IPv4 192.168.1.93 und IPv4-DNS-Server 192.168.1.92 (gelegentlich auch 192.168.4.2/192.168.4.1 oder siehe Bild unten auch mal ne 169.254.134.222 !!!).

    Pbox startet (jetzt) ebenfalls einen WLAN-AP mit gleichen Parametern: SSID, ip, Passwort etc., fragt wie oben:
    ........while (WiFi.status() != WL_CONNECTED)
    und sendet ohne "CONNECTED" dauernd einen Punkt auf die serielle Schnittstelle. Mit dem Zeitpunkt "CONNECTED" soll Verbindung genannt werden und der Controller in Tiefschlaf gehen. Die loop-Schleife bleibt leer.
    Bei einem Power-on/off bzw. dem funktionsbedingten Pinnsignal erfolgt der RESET.

    Die letzten Experimente brachten keine Verbindung nach der eben beschriebenen Vorgehensweise. Es sei denn . . . .

    Die Platine NodeMCU-ESP8266MOD 12-F enthält das Programm "softPStst". Sie fragt
    ........boolean result = WiFi.softAP("NodeKTM", "12345678");
    auf dem WLAN "NoteKTM" ab und meldet die Anzahl der erkannten aktiven Stationen.
    Beim aktuellen Testbetrieb - eben, noch OHNE die beiden Platinen/Programme "FLAG" und "Pbox" wurde WLAN erstellt mit IPv4 192.168.4.2 und IPv4-DNS-Server 192.168.4.1.
    Werden die beiden Platinen/Programme "FLAG" und "Pbox" zuerst eingeschaltet werden andere oder gleiche IPs erstellt; fast durchwegs andere. Werden "FLAG" und "Pbox" vor der "softPStst" bestromt (dabei zeigen sie die "."Punktfolge im Dauerstrom) schaltet nach rund fünf bis sechs Sekunden nach Bestromen der "softPStst" die "Pbox" aus der Punktesenderei weiter.

    ........Bild Text Pbox

    Dabei trifft Pbox diese falschen IPs nicht, soweit ich die zufälligerweise gleichen IPs feststellte, war die Pbox aber auch bei gemeinsamer IP nicht über "Connection: close" bis zum "deepSleep" durchgekommen.

    Ich finde keine weitere Möglichkeit das Ganze zu richten. Die Version über Mail oder Messenger (hatte Andree-HB ja Ende 20222 beschrieben) wollte ich eigentlich nicht nehmen - niemand in der Familie hat nen Messenger laufen ...

    PS: Bilder aus diesem Thread vor diesem Posting werden demnächst gelöscht.
    Geändert von oberallgeier (06.08.2023 um 18:07 Uhr)
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. Kopfsache - und ein m1284, etliche Servos, viel Alu
    Von oberallgeier im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 85
    Letzter Beitrag: 08.09.2024, 20:56
  2. [ERLEDIGT] STM32F103C8T6 Mini Board unter Linux mit STlink und ArduinoIDE
    Von oderlachs im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 0
    Letzter Beitrag: 08.04.2018, 14:22
  3. ArduinoIDE go STM32 BluePill keine Erfolge gross
    Von oderlachs im Forum Arduino -Plattform
    Antworten: 2
    Letzter Beitrag: 20.02.2018, 11:32
  4. Per ArduinoIDE PWM auf AtTiny
    Von Cysign im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 05.09.2015, 21:25
  5. ArduinoIDE(Linux) findet Port nicht
    Von oderlachs im Forum Arduino -Plattform
    Antworten: 4
    Letzter Beitrag: 08.11.2014, 14:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress