- 3D-Druck Einstieg und Tipps         
Ergebnis 31 bis 40 von 59

Thema: ESP8266, arduinoIDE, etliche Probleme

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #32
    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

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

fchao-Sinus-Wechselrichter AliExpress