- 12V Akku mit 280 Ah bauen         
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 Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585
    Also funktioniert es jetzt?
    Crypi

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    Also funktioniert es jetzt? ..
    Grüß Dich Crypi,
    mal gaaanz vorsichtig ausgedrückt: ja. Ich glaube schon.

    Aktuell habe ich mal die benutzten Platinen (und andere) hergenommen und mit "diesem und jenem" be-flasht. Nur so. Danach die bisherige Versionen leicht modifiziert - Passwort erweitert auf zehn Zeichen - und eine NodeMCU und eine ESP8266MOD (D1 Mini) neu geflasht. Und es läuft wie oben dargestellt. Testlauf von heute vormittags auszugsweise im Codefenster.

    Nächste Aktion ist statt Textausgabe (evtl. - dannn modifiziert zu Debugzwecken) die Ansteuerung von zwei Status-LEDs: grünes Blinken - Abfrage läuft, rotes Dauerlicht - Pbox hatte ein Signal gesendet. Wenn das läuft, dann melde ich mich wieder, dann auch mit Code und Hardware-Spezifikation. Also zwei Tage, evtl. mehr (nu wie üblich ab - heute aufs Bike).

    Code:
    - - - -
    softAPtstneu; Rev. TXTausgabe, n02, 1++0, .1.1, 11082023 11h36
    AP testen: NodeKTM, 1234567890
    ready! Pro Step: ca 2sec
    0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    ages =30 anz0 =26 anz1 =4
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    ages =60 anz0 =56 anz1 =4
    0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    ages =90 anz0 =82 anz1 =8
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    ages =120 anz0 =112 anz1 =8
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585
    Super!
    Das freut mich sehr.

    Viel Erfolg wenn es jetzt an das geht worum es eigentlich gehen sollte.

    Crypi

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    .. Viel Erfolg wenn es jetzt an das geht worum es eigentlich gehen sollte ..
    Mal sehen.

    Der Code für Postbox und "Flag"-Station läuft.

    Mit einigen oben beschriebenen Experimenten (Rumstochereien) hatte ich für mich festgestellte, dass die Postbox mit ner Platine "D1 Mini ESP9266MOD 12-F" läuft, dass aber die Flagstation nur auf ner "NodemMCU ESP9266MOD 12-F" vom gleichen Hersteller einwandfrei und störungsfrei läuft. Bei anderen, eigenen, Erfahrungen bitte um Rückmeldung.

    Die Verdrahtung geht aus dem Codetext hervor - Servo und LEDs und /RES-Taster. LEDs sind nicht notwendig. Die Onboard-LED blinkt auf der Flagstation - laut Code - im Betriebszustand. Auf der Postbox-Station bleiben diese Dinge aus Energiespargründen aus. Der "TASTER" der Postbox ist eine Bastelei nach eigenem Gutdünken - je nach Konstruktion des Briefkastens. Hinweise dazu sind im oben genannten Buch enthalten.

    Zu Testzwecken (nötig/sinnvoll eigentlich nur während der Entwicklungsphase) werden Texte am USB-Anschluss ausgegeben. Dies wurde in beiden Fällen beibehalten - der Energiebedarf ist vermutlich unwesentlich höher, die Funktion leidet nicht . . .

    Dumm, dass ich die Einstellung des Servos auf die beiden Signalstellungs-Endpunkte in den Code verlegt hatte. Da wäre eine integrierte on-board-Einstellung pfiffig gewesen. Aber das hätte den Code doch noch etwas aufgebläht bzw. unübersichtlich(er) gemacht. Dafür füge ich für die NodeMCU das Progrämmchen zum Einstellen der Servos mit.

    Die Geschichte läuft aktuell im Labormodus - also noch NICHT miit dem Postbox-kästchen im Briefkasten. Der Strombedarf der Postbox-Platine wurde im deepSleep gemessen - etwa 45 µA; beim Aufwachen werden für etwa sechs bis acht Sekunden rund 70-80 mA benötigt. Der FlaggenServo fährt beim Start der Anzeige-/FLAGstation in eine Position, nach Empfang eines Postbox-Signals fährt er in die "andere" Position - etwa 90°++.

    Code für die Postbox
    Code:
    //  Autor und © oberallgeier@Roboternetz.de      mit Grundlagen aus
    //  Programm Postbox-ESP aus "ESP8266 Das Projektbuch", Seiten 35ff ... korr 08072023
            . . . .    P box12
            bearbeitet 27 07 2023 11:04   Code für Pbox aus "..Projektbuch.." übernommen/kontrolliert
            . . . . . . . . . . . . . .
    aktuell bearbeitet 15 08 2023 14h40
                    /               /               /               /                 */
      #include <ESP8266WiFi.h>
    
      const char* ssid      = "DEINESSID";              // Dies hier ist Postbox     Empfänger ist FLAG
      const char* pass      = "PASS24680";           //
    
      IPAddress       ip (192, 168,   1,   1);        // aktiviert 08Aug23 1127 >> egal was da steht =>
      IPAddress serverIp (192, 168,   1,   3);        // geändert  15Aug23 1436          "connect fail"
      IPAddress local_ip (192, 168,   1,   2);        // geändert  15Aug23 1436
      IPAddress gateway  (192, 168, 178, 250);        // aktiviert 08Aug23 1127
      IPAddress subnet   (255, 255, 255,   0);        // aktiviert 08Aug23 1127
    // --------------------------                ------------------------
      int serverPort = 80;
      WiFiClient client;
    // --------------------------
      void setup()
      {
        Serial.begin(115200);
        delay( 2000);
        Serial.println("");                       //
        Serial.println("Pbox12 #03 DEINESSID PASS .1.1 15082023 14h40");   // Kennung, Anmeldetext
    
        WiFi.begin (ssid, pass);                  //
    
        while (WiFi.status() != WL_CONNECTED)
        {
          delay(  500);
          Serial.print(".");
        }
    
        delay( 1000);
        Serial.print("verbunden mit :  ");
        Serial.print(ssid);
        Serial.print("\r\nIP address/WiFi.localIP() :  ");
        Serial.println(WiFi.localIP());
        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();
        Serial.println("Exit to deepSleep(0)");               // zugefügt 15Aug23 1436
        delay(1500);                                          //
        ESP.deepSleep(0);
      }
    
      void loop() { }
    //  E N D E     Code      ------------------------------------------------------------------------x
    Code für Anzeige/Flag
    Code:
    // Autor und © oberallgeier@Roboternetz.de,    auf Anregung von inka
    // https://www.roboternetz.de/community/threads/78304-ESP8266-arduinoIDE-etliche-Probleme/page3?p=669220#post669220
    // Speicherort   xxxxxxxxxxxxxxxxxxxxxxxxx\FLAGAP.ino (wird vorm compilieren+flashen evtl umbenannt)
    // board nodeMCU
    /*      bearbeitet 11 08 2023 11h36   . . . . .
            bearbeitet 15 08 2023 09h20   Directory umbenannt, ino-File umbenannt, ID fuer UART geändert
    aktuell bearbeitet 15 08 2023 17h24   Servo eingebunden
                                                                 */
    //  - - - - - - - - - - - - - - - - - - - -
      #include <ESP8266WiFi.h>
      #define LEB D1                                 // D1 = gnLED, LEDBINGO für Anzeige "WLAN war mal an"
      #define SRV D2                                 // D2   Servosignal kommt von D2
      #define LED LED_BUILTIN                        // D4 = LED_BUILTIN
      #define TST D6                                 // D6 = Taster "Quittung"
                                                        
      int     n       =    99;      //   -   -   -   // Zahl der angemeldeten Stationen
      int     anzl    =     0;      //               // Anzahl der Gesamtloops (pro Zeile) = Σl
      int     amax    =    30;      //               // Maximale Loops pro Zeile = Σanzl-max
      int     anz0    =     0;      //   -   -   -   // Anzahl der Gesamtfälle = Σ0
      int     anz1    =     0;      //               // Anzahl der Gesamtfälle = Σ1
      int     ages    =     0;      //               // Anzahl der Gesamtfälle = Σges
      int     aeve    =     0;      //   -   -   -   // Event/-s in der lfdn Zeile => Marke ans Zeilenende
      int     Lcrnt   =     0;      //               // Laufanzeige (current) LED intern/ - im Rhythmus der WLAN-Abfrage/n
                                    //   -   -   -   //
      IPAddress       ip (192, 168,   4,   2);       // Geändert 08Aug23 11h48
      IPAddress gateway  (192, 168, 178, 250);
      IPAddress subnet   (255, 255, 255,   0);
      
    // ----------------------------------------------
      void SRV1P20 ( )                    // Fahre Servo mit Periodenlänge ca 20 ms und Pulslänge ca 1 ms
      {                                   //       =     1-mal mit 1+19 ms
        digitalWrite( SRV, HIGH );        // EINschalten für Puls
        delay ( 1 );
        digitalWrite( SRV, LOW );         // AUSschalten bis Ende Periode
        delay ( 19 );
      }                                   // Servo fahren Ende
    // ----------------------------------------------
      void SRV2P20 ( )                    // Fahre Servo mit Periodenlänge ca 20 ms und Pulslänge ca 2 ms
      {                                   //       =     1-mal mit 2+18 ms
        digitalWrite( SRV, HIGH );        // EINschalten für Puls
        delay ( 2 );
        digitalWrite( SRV, LOW );         // AUSschalten bis Ende Periode
        delay ( 18 );
      }                                   // Servo fahren Ende
    // ----------------------------------------------
    
    void setup()
    {
      Serial.begin(115200);
      delay( 2000);
      Serial.println("");    Serial.println("");    Serial.println("- - - -");
      Serial.println("FLAGAP; Rev. TXT+LED+Servo-Ausgabe, n02, 1++0, .1.1, 15082023 09h20");
      Serial.println("AP: DEINESSID, PASS24680");
      boolean result = WiFi.softAP("DEINESSID", "PASS24680");
      delay(  100);
      if (result = true)
      {
        Serial.println("ready! Ein Step: ca 2sec");
      }
      else
      {
        Serial.println("failed!");
      }
      pinMode( LED, OUTPUT );    // Port als Ausgang schalten
      digitalWrite( LED, LOW );  // LEDbuiltin EINschalten ()
      pinMode( LEB, OUTPUT );    // Port als Ausgang schalten
      pinMode( SRV, OUTPUT );           // Port für Servo als Ausgang schalten
      for ( int n = 0; n < 25; n++ ) { SRV1P20 ( ); }       // Fahre Servo 25 Perioden = ca 1/2 sec mit Puls 1 ms
      delay (  100 );                   // Servo fährt in Grundstellung; kurze Pause zum Nachlaufen
    }
    
    void loop()
    {
    //  WLAN wird abgeprüft. Pro Prüfzyklus ohne WLAN Anzeige "0", mit WLAN Anzeige "1"
      n  =   WiFi.softAPgetStationNum();                      // Wert.
      if ( n == 0 ) anz0 ++;              // Anzahl Fälle "0"
      if (   n    )
      {
        anz1   = anz1 + n;                // Anzahl Fälle "1"
        aeve   =  1;                      // Markiere dass in der laufenden Zeile ein Event (1) stattgefunden hat
        for ( int n = 0; n < 25; n++ ) { SRV2P20 ( ); }       // Fahre Servo 25 Perioden = ca 1/2 sec mit Puls 2 ms
        delay (  100 );                   //  Servo fährt in Meldestellung; kurze Pause zum Nachlaufen
      }
      ages ++;                            // Gesamtzahl aller Fälle - max 36000 - ca. 10 Std
      anzl ++;                            // Anzahl Fälle pro dargestelltem Loop
      Serial.print( n );    Serial.print(" ");
    
    //  Betriebsanzeige : LED schaltet Ein/Aus, LEB an, wenn WLAN erkannt worden war
      if ( Lcrnt ) Lcrnt  = 0;
      else         Lcrnt  = 1;
      if ( Lcrnt ) digitalWrite(LED, LOW);            // LEDbuiltin EINschalten ()
      else digitalWrite(LED, HIGH);
      if (   n   ) digitalWrite(LEB, HIGH);           // LEDBINGO EINschalten
    
      if ( anzl == amax )
      {
        Serial.print("\r\nFLAGAP");                             Serial.print("   ");
        Serial.print("ages =");       Serial.print( ages );     Serial.print("   ");
        Serial.print("anz0 =");       Serial.print( anz0 );     Serial.print("   ");
        Serial.print("anz1 =");       Serial.print( anz1 );
        if ( aeve ) Serial.print("\t\t\t<<<<\t<<<<"); aeve = 0;
        Serial.println("");
        anzl = 0;
      }
      delay( 2000);
    }
    //  E N D E     Code      ------------------------------------------------------------------------x
    Code zum Servoeinstellen
    Code:
    //        Autor : oberallgeier @ Roboternetz.de
    //  Programm Zum Testen der Servosteuerung für "FLAG"; Anschlag-eine-Seite <=> Anschlag-andere-Seite
    //  >>>   hier nur Ansteuerung von Servomotor über Anschluss/Pin D2 eines NodeMCU 
    //        A C H T U N G > > >  Der NodeMCU kann nur ca. 12 mA je Pin ausgeben   < < <   A C H T U N G
    /*      bearbeitet 12 08 2023 23h27   Code für FLAG - hier Servotests, -steuerung "zu Fuss", per for() . . .
    zuletzt bearbeitet 14 08 2023 17h57   Code für FLAG - Servosteuerung "zu Fuss", Modul-Version
    >>  Anmerkung: ! ! Der Schwenkwinkel des Servos wird mit den Variablen "n" in "void loop()" festgelegt   */
    // ------------------------------------------------------------------------------------------------
      #define SRV D2                      // Servosignal kommt von D2
    // ----------------------------------------------
      void SRV1P20 ( )                    // Fahre Servo mit Periodenlänge ca 20 ms und Pulslänge ca 1 ms
      {                                   //       =     1-mal mit 1+19 ms
        digitalWrite( SRV, HIGH );        // EINschalten für Puls
        delay ( 1 );
        digitalWrite( SRV, LOW );         // AUSschalten bis Ende Periode
        delay ( 19 );
      }                                   // Servo fahren Ende
    // ----------------------------------------------
      void SRV2P20 ( )                    // Fahre Servo mit Periodenlänge ca 20 ms und Pulslänge ca 2 ms
      {                                   //       =     1-mal mit 2+18 ms
        digitalWrite( SRV, HIGH );        // EINschalten für Puls
        delay ( 2 );
        digitalWrite( SRV, LOW );         // AUSschalten bis Ende Periode
        delay ( 18 );
      }                                   // Servo fahren Ende
    // ----------------------------------------------
    
    // ----------------------------------------------
      void setup()
      {  
        pinMode( SRV, OUTPUT );           // Port für Servo als Ausgang schalten
      }                                   // Sequenz setup Ende
    // ----------------------------------------------
    
    // ----------------------------------------------
      void loop(void)   // Testfahrt Servo, i-mal hin-und-her, Schwenk typisch ca 30° und ca 120° (je nach Baumuster)
    {
      for ( int i = 0; i < 50; i++ )      // Hin/her fahren. Schwenkwinkel/-zeit kann für den Eigenbedarf angepasst werden.
      {                                   // Schwenkwinkel/-zeit wird in der for-Schleife "n" festgelegt, aktuell nmax = 25
    // ----------------------------------------------
        for ( int n = 0; n < 25; n++ ) { SRV1P20 ( ); }       // Fahre Servo 25 Perioden = ca 1/2 sec mit Puls 1 ms
        delay ( 1000 );                   // Pause zum Nachlaufen des Servo und kurze Pause
        for ( int n = 0; n < 25; n++ ) { SRV2P20 ( ); }       // Fahre Servo 25 Perioden = ca 1/2 sec mit Puls 2 ms
        delay ( 1000 );                   // Pause zum Nachlaufen des Servo
    // ----------------------------------------------
      }                                   // Ende for ( int i = 0; i < 50; i++ ) ....
    }
    //  E N D E     Code      ------------------------------------------------------------------------x
    Wers nachbaut - viel Vergnügen.
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    .. Viel Erfolg wenn es jetzt an das geht worum es eigentlich gehen sollte ..
    Ja, sieht weiter gut aus. Funk aus (Blech-)Briefkasten noch nicht gesichert.

    Danke für das Interesse! Vorsicht beim ändern (kürzen) der Aktivphase des AP! Der Empfang geht nicht ratzfatz! Die delays im Code (unten+oben) sind nötig.

    EIN Bedienungsmangel war der auf FLAG-on stehende Servo ohne Rücksetzmöglichkeit. Rücksetzen wurde daher ermöglicht durch einen Taster mit Pullup10k auf D6. Taster sollte bei/vorEnde der Dunkelphase der onboard-LED: LED_BUILTIN-off=rtLED-on gedrückt werden.

    Code:
    // Autor und © oberallgeier@Roboternetz.de,    auf Anregung von inka
    // https://www.roboternetz.de/community/threads/78304-ESP8266-arduinoIDE-etliche-Probleme?p=669306&viewfull=1#post669306
    // board nodeMCU
    /*      ...
    aktuell bearbeitet 29 08 2023 10h40   Rückstellung FLAG und gnLED per Taster, aktual. Textausgaben auf UART/USB
                                                                 */
    //  - - - - - - - - - - - - - - - - - - - -
      #include <ESP8266WiFi.h>
    
      #define LEB D1                                //  D1 = gnLED, LEB = LEDBingo für Anzeige "WLAN war mal an"
      #define SRV D2                                //  D2   Servosignal kommt von D2
      #define LED LED_BUILTIN                       //  D4 = LED_BUILTIN = GPIO2 (TxD1), komplementär dazu rtLED mit 10k an 5V
      #define TST D6                                //  D6 = Taster "Quittung" => zurücksetzen Servo+gnLED aus "WLAN war mal an"
    //  LED D4 = LED_BUILTIN, D4 schaltet invers die eingebaute LED!!   Es funktionieren D0/1/2/3/4/5/6/7/8, nicht GPIO0/4/16..!!
    //  #define LED  GPIO4          // rtLED wird mit "low" eingeschaltet, "high" => aus      GPIO0/4/16.. funktionieren nicht !!
    //  D6:   - 10K resistor attached to pin D6 from ground
                                                        
      int     n       =    99;      //   -   -   -  //  Zahl der angemeldeten Stationen
      int     anzl    =     0;      //              //  Anzahl der Gesamtloops (pro Zeile) = Σl
      int     amax    =    30;      //              //  Maximale Loops pro Zeile = Σanzl-max
      int     anz0    =     0;      //   -   -   -  //  Anzahl der Gesamtfälle = Σ0
      int     anz1    =     0;      //              //  Anzahl der Gesamtfälle = Σ1
      int     ages    =     0;      //              //  Anzahl der Gesamtfälle = Σges
      int     aeve    =     0;      //   -   -   -  //  Event/-s in der lfdn Zeile => Marke ans Zeilenende
      int     Lcrnt   =     0;      //              //  Laufanzeige (current) LED intern/ - im Rhythmus der WLAN-Abfrage/n
      int     bSt     =     0;      //              //  bSt = buttonState = variable for reading the pushbutton status
                                    //   -   -   -  //
      IPAddress       ip (192, 168,   4,   1);      //  Geändert 08Aug23 11h48 ..4.2 || geänd. 21082023-16h38: ..4.1
      IPAddress gateway  (192, 168, 178, 250);
      IPAddress subnet   (255, 255, 255,   0);
      
    // ----------------------------------------------
      void SRV1P20 ( )                    // Fahre Servo mit Periodenlänge ca 20 ms und Pulslänge ca 1 ms
      {                                   //       =     1-mal mit 1+19 ms
        digitalWrite( SRV, HIGH );        // EINschalten für Puls
        delay ( 1 );
        digitalWrite( SRV, LOW );         // AUSschalten bis Ende Periode
        delay ( 19 );
      }                                   // Servo fahren Ende
    // ----------------------------------------------
      void SRV2P20 ( )                    // Fahre Servo mit Periodenlänge ca 20 ms und Pulslänge ca 2 ms
      {                                   //       =     1-mal mit 2+18 ms
        digitalWrite( SRV, HIGH );        // EINschalten für Puls
        delay ( 2 );
        digitalWrite( SRV, LOW );         // AUSschalten bis Ende Periode
        delay ( 18 );
      }                                   // Servo fahren Ende
    // ----------------------------------------------
    
    void setup()
    {
      Serial.begin(115200);
      delay( 2000);
      Serial.println("");    Serial.println("");    Serial.println("- - - -");
      Serial.println("FLAGAP n02, 1-0, .4.1, 270823 23h30");            // 27 08 2023 23h30
      Serial.println("AP: DEINSSID, 1-0");
      boolean result = WiFi.softAP("DEINSSID", "1234567890");
      delay(  100);
      if (result = true)
      {
        Serial.println("ready! Ein Step: ca 2sec");
      }
      else
      {
        Serial.println("failed!");
      }
      pinMode ( LED, OUTPUT );            // Port als Ausgang schalten
      digitalWrite( LED, LOW );           // LEDbuiltin EINschalten ()
      pinMode ( LEB, OUTPUT );            // Port als Ausgang schalten
      pinMode ( SRV, OUTPUT );            // Port für Servo als Ausgang schalten
      pinMode ( TST, INPUT  );            //  #define TST D6  --  --  D6 = Taster "Quittung"
      for ( int n = 0; n < 25; n++ ) { SRV1P20 ( ); }       // Fahre Servo 25 Perioden = ca 1/2 sec mit Puls 1 ms
      delay (   50 );                     // Servo fährt in Grundstellung; kurze Pause zum Nachlaufen
    }
    
    void loop()
    {
    //  read the state of the pushbutton value:
      bSt   =   digitalRead( TST );
    //  WLAN wird abgeprüft. Pro Prüfzyklus ohne WLAN Anzeige "0", mit WLAN Anzeige "1"
      n  =   WiFi.softAPgetStationNum();                      // Wert.
    //  Serial.println("  und jetzt kommt die Auswertung   :  ");
      if ( n == 0 ) anz0 ++;              // Kein WLAN-Station entdeckt, daher summiere Anzahl Fälle "0"
      if (   n    )                       // Es wurde eine WLAN-Station, oder mehrere, entdeckt
      {
        anz1   = anz1 + n;                // Anzahl Fälle "1"
        aeve   =  1;                      // Markiere dass in der laufenden Zeile ein Event (1) stattgefunden hat
        for ( int n = 0; n < 25; n++ ) { SRV2P20 ( ); }       // Fahre Servo 25 Perioden = ca 1/2 sec mit Puls 2 ms
    //    delay (  100 );                 //  Servo fährt in Meldestellung; kurze Pause zum Nachlaufen
      }
      ages ++;                            // Gesamtzahl aller Fälle - max 36000 - ca. 10 Std
      anzl ++;                            // Anzahl Fälle pro dargestelltem Loop
      Serial.print( n );    Serial.print(" ");
    
    //  Betriebsanzeige : LED schaltet Ein/Aus, LEB an, wenn WLAN erkannt worden war
      if ( Lcrnt ) Lcrnt  = 0;
      else         Lcrnt  = 1;
      if ( Lcrnt ) digitalWrite( LED, LOW );          // LEDbuiltin EINschalten ()
      else digitalWrite( LED, HIGH );
      if (   n   ) digitalWrite( LEB, HIGH );         // LEDBINGO EINschalten
    
      if (  !bSt  )                       //  Wenn Rücktaste gedrückt => Servo => Grundstellung, gnLED off
      {                                   //
        digitalWrite( LEB, LOW );         //  LEDBINGO AUSschalten, weil Rücksetzter gedrückt ist
        for ( int n = 0; n < 25; n++ ) { SRV1P20 ( ); }       // Fahre Servo in Grundstellung, siehe oben
        delay (  100 );                   // Servo fährt in Grundstellung; kurze Pause zum Nachlaufen
      }
    
      if ( anzl == amax )
      {
        Serial.print("\r\nFLAGAP");                             Serial.print("   ");
        Serial.print("ages =");       Serial.print( ages );     Serial.print("   ");
        Serial.print("anz0 =");       Serial.print( anz0 );     Serial.print("   ");
        Serial.print("anz1 =");       Serial.print( anz1 );
        if ( aeve ) Serial.print("\t\t\t<<<<\t<<<<"); aeve = 0;
        Serial.println("");
        anzl = 0;
      }
      delay( 2000);
    }
    //  E N D E     Code      ------------------------------------------------------------------------x
    Eine zusätzliche/andere Einsatzmöglichkeit, statt Briefkasten, fände ich nützlich, überlege ich: Überwachung der "Waschmaschine=fertig" - wenn die Maschine zB im Keller steht und man (frau) nicht dauernd runtergehen möchte. Dazu muss ich noch ne geeignete Sensorik finden und werde demnächst nen LDR probieren.
    Geändert von oberallgeier (29.08.2023 um 14:11 Uhr)
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698

    Strombedarf

    Weiter oben wurde bereits über den Strombedarf berichtet.

    FLAG: Die Anzeige-/FLAGstation wird in meiner Realisierung dauernd bestromt. Man kann natürlich eine "SLEEP"-Routine mit Sekundenschlaf oder ähnlich einführen (siehe Zeitangaben WLAN unten). Der Verbrauch ist (bei meiner Realisierung) mit rund 130 mA im Ruhemodus nicht unbedeutend. Davon zieht - im Ruhemodus - der (MEIN Mini-) Servo an einem der beiden Endpunkte, also OHNE Signalpuls, schlappe 2,5 mA. Aktiv zieht der Servo (je nach Last) auch mal ein paar hundert mA, in der üblichen Bauform mit ner aufgeklebten Papierfahne aber nur wenig; immerhin genug, um bei einem knapp ausgelegten Netzteil immer wieder nen Reset der Platine zu bewirken. 0,5A @ 5V werden üblicherweise genug sein.

    Pbox: Der Strombedarf der Postbox-Platine wurde im deepSleep gemessen (s.o.) - etwa 45 µA; beim Aufwachen werden für bis zu knapp zehn Sekunden rund 70-80 mA benötigt, davon wird rund drei, vier Sekunden der WLAN-AP aktiv. Die mittlerweile im Aktivmodus geschaltete LED_BUILTIN fällt mit unter 10 mA kaum zu Buche. In meinem Fall dauert die Wachphase der Platine etwa 9..10 sec. Hier dürfte ne gute 18650er Lithiumzelle (2Ah) sinnvoll sein. Der Stromstoß, >100mA, beim Start ist erheblich, der ESP ist da ziemlich unartig :-/

    BTW: hat jemand das nachgebaut? Gibts Erfahrungen oder sonstige Kommentare?
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von oberallgeier Beitrag anzeigen
    BTW: hat jemand das nachgebaut? Gibts Erfahrungen oder sonstige Kommentare?
    ich verfolge das mit interesse, habe etwas ähnliches vor, bin allerdings mit meinem balkonkraftwerk und speicher im moment ausgelastet ... Habe mir überlegt, ob ich die stromversorgung des briefkastenmoduls nicht per akku und einem kleinem solarpanel realisiere und der auslöser der nachricht "post ist da" sollte eine erschütterung durch den zufallenden briefkastendeckel sein...
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    .. stromversorgung .. akku und .. solarpanel .. auslöser der nachricht .. erschütterung durch den zufallenden briefkastendeckel ..
    Na prima, wenn die Sonne auf die Briefkastenwand scheint, dann ist das prächtig zeitgemäss! Bravo! Hmm, der zufallende Briefkastendeckel - - - ich müsste dann die Zeit abbestellen, das Spektrum, die Lokalzeitung - vermutlich auch kleinere Päckchen. Wenn die hier reingesteckt werden, dann bleibt oft der Briefkastendeckel offen und die Teile schauen raus. Das sehe ich aber beim üblichen aus-dem-Fenster-schauen nicht.

    Ach ja, ich hatte ja etwas vergessen - noch nicht gelieferte - der Schaltplan der Pbox-Geschichte. Hab ich nicht, aber ich hatte mein übliches Bild des Aufbaus gemacht. Das sollte ja (hoffentlich) reichen !? Achtung: das kleine rote schräge Leitungsstück ganz unten ist (sollte :-/ ) schwarz sein; ist eine GND-Leitung vom linken Versorgungsstreifen. Die braune Leitung in der Mittelrille ist die Signalleitung für den Servo. Links ober der NodeMCU der RESETknopf, zwischen LEDs und Servopfosten der Servo-in-Nullstellung-Knopf (siehe letzes Posting). Der Widerstand am Servo-Pfostenstecker ist der Pullup für den Servotaster auf D6. Die rote Leitung links in der oberen Hälfte und die unter der NodeMCU im untern Teil, auch links, ist 5V. (Aber LiPo reicht auch - geht dann über den Spannungswandler zur ESP-Versorgung).
    Geändert von oberallgeier (30.08.2023 um 16:12 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, 19: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, 13:22
  3. ArduinoIDE go STM32 BluePill keine Erfolge gross
    Von oderlachs im Forum Arduino -Plattform
    Antworten: 2
    Letzter Beitrag: 20.02.2018, 10:32
  4. Per ArduinoIDE PWM auf AtTiny
    Von Cysign im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 05.09.2015, 20:25
  5. ArduinoIDE(Linux) findet Port nicht
    Von oderlachs im Forum Arduino -Plattform
    Antworten: 4
    Letzter Beitrag: 08.11.2014, 13:57

Berechtigungen

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

Labornetzteil AliExpress