- 3D-Druck Einstieg und Tipps         
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.707
    .. 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

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

    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

  3. #3
    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

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.707
    .. 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

  5. #5
    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
    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.
    ich hatte mal mit einem gyrosensor die lage eines menschlichen (meines) körpers erfolgreich sensiert, es ging da um rückenlage und schlafapnoe. Vielleich auch eine möglichkeit die lage des deckels zu erfassen?
    gruß inka

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.707
    ich hatte mal mit einem gyrosensor .. erfolgreich sensiert .. Vielleich auch eine möglichkeit .. ?
    Vermutlich schon - aber der (ver-)braucht doch dauernd Strom? Ich fände eine stromlose Schaltmöglichkeit an dieser Stelle bessser (in manchen Anleitungen wird sogar ein Bewegungsmelder verwendet ?!?!?!). Ich versuch mich demnächst an einem Taster. Bei mir sind mehrere zur Auswahl (aus der Krimskramskiste) - mit recht unterschiedlichen Betätigungskräften. Die Zahlenwerte sind gemessene Betätigungskräfte in Gramm als Anzeige auf der Küchenwaage bei der Kontaktgabe.

    BTW: die Farben der LEDs wurden geändert gemäß DIN EN 60073, Farbcodes für Anzeigengeräte und Bedienteile. Daher grüne LED: normaler, einwandfreier Zustand; hier: blinkt im Normalbetrieb. Blaue LED (Anzeige, nicht builtin): definierte Handlung gefordert; hier: Pbox hat ausgelöst. Die onboard-LED wird (wohl?) dauerhaft abgeschaltet.
    Geändert von oberallgeier (06.09.2023 um 09:45 Uhr) Grund: Gramm oder . . .
    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
    Vermutlich schon - aber der (ver-)braucht doch dauernd Strom? Ich fände eine stromlose Schaltmöglichkeit an dieser Stelle bessser
    es wird natürlich auch rein mechanisch gehen, vor 20 jahren hätte ich es wahrscheinlich auch versucht (ich komme eigentlich beruflich aus der feimnechanischen ecke), de keine oder kaum andere möglichkeit einer - bezahlbaren - elektronischen lösung vorhanden...

    Steht Dein briefkasten voll im schatten? Seitdem ich ein e-auto, e-bikes, balkonkraftwerk und sonst noch was mit akkus und solarpanels betreibe, versuche ich alles, oder fast alles mit elektronischen mitteln zu lösen. Für einen hammer sind halt alle probleme identisch mit nägeln
    gruß inka

Ä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
  •  

12V Akku bauen