- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
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 Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    also, ich weiss nicht ob das was ich hier schreibe nun deinen vorstellungen entspricht, hoffe es aber:

    btw: ich verwende linux, unter windows kann das alles ein bischen anders aussehen...
    --------------------------------------

    - ich habe zwei jungfräuliche ESP8266 genommen
    - auf eines den code "post_box_ESP.ino" unverändert geflasht
    - auf das andere den folgenden "soft_AP_KTM.ino" code geflasht:

    Code:
    // board nodeMCU 1.0
    #include <ESP8266WiFi.h>
    
    IPAddress       ip (192, 168,  1, 92);
    IPAddress local_ip (192, 168,  1, 92);
    IPAddress gateway  (192, 168,  1,  250);
    IPAddress subnet   (255, 255, 255,  0);
    
    void setup()
    {
      Serial.begin(115200);
      delay( 1000);
      Serial.println("");    Serial.println("");    Serial.println("- - - -");
      delay( 1000);
      Serial.println("sett
      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());
    
      delay( 1000);
     ing 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());
    
      delay( 1000);
     
    }
    der AP NodeKTM erscheint nun auf dem PC unter den netzwerken, in den eigenschaften des netzwerkes habe ich die IP und anderes eingetragen:
    Klicke auf die Grafik für eine größere Ansicht

Name:	settings_AP_KTM.png
Hits:	12
Größe:	58,9 KB
ID:	35948

    nun kann ich mich in diesem AP mit dem PC, smartphone anmelden und auch der zweite ESP8266 mit dem "PostBox" code meldet sich nach einem reset für ein paar sekunden an. Ist das so ok, oder habe ich es völlig falsch verstanden?
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.700
    .. linux, unter windows kann das .. anders aussehen .. der AP NodeKTM erscheint nun auf dem PC unter den netzwerken, in den eigenschaften des netzwerkes habe ich die IP und anderes eingetragen .. oder habe ich es völlig falsch verstanden?
    Danke für Deine Mühe! Du hast das meiste schon richtig vestanden. Großer Dank für den Hinweis zu den Netzwerkeigenschaften: nun habe ich da etliches zusätzlich gelernt . . . das freut mich.

    Deinen Code hatte ich aufgespielt (leicht modifiziert - 2 loops und so), unter Netzwerkeigenschaften von meinem PC aus Netwerk und dessen Eigenschaften gellöscht (in der shell). Danach (rundum gewechselt alle drei Platinen: FLAG, Pbox und softAD..) eine der Platinen das Netzwerk anmelden lassen und danach wie Du den Rest gestartet. Ja, wie schon früher berichtet (mit Code und Bildern) wird ein Netzwerk erstellt und die Meldung auf der Platine "softAP.." zeigt an, dass eine, manchmal zwei "station connected=.." sind. Auch die Pbox meldet sich am "NodeKTM" an - und bringt, wie bisher immer ihr "..connect: fail". Kein Wunder, wie immer sind leider inwischen die Netzwerkadressen verändert. Und das ist mir unverständlich, ich bekomme es auch nicht wieder gerichtet. Teilweise - wie nach Aufspielen des Codes von Dir, in einem Testlauf - ist die vorgegebene IP 192.168.1.1 eingerichtet, aber es wird von z.B. der Postbox die 192.168.4.2 gezeigt.

    Ich gebs auf - ich kriegs nicht hin. Schade.

    Muss mich mal nach nem passenden Messenger umsehen, vielleicht finde ich irgendwo nen sauberen, funktionierenden Code für die Geschichte mit dem Senden von eMails - vielleicht krieg ich das hin.

    Danke für die Mühe
    Ciao sagt der JoeamBerg

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

    DER Hinweis . . .

    Zitat Zitat von inka Beitrag anzeigen
    .. den code "post_box_ESP.ino" unverändert .. den folgenden "soft_AP_KTM.ino" code ..
    Im Original spielen ja zwei andere Softwarepaketchen zusammen: "Postbox" als Sensorik "Post ist da" und "Flag" als Empfänger des Sensoriksignals und Anzeige. Aber - huiii - da war mir eingefallen . . .

    Im Umkreis meines Projektchens sind ja vermutlich keine namensgleichen WLANstationen. Also reicht die Kombination Pbox und SoftAP. Letztere mal für Testzwecke etwas stärker *gg* modifiziert - und aktuell (Start direkt vor diesem Post) läuft ein Lanzeittest (ca. 30000 *2 sec, das sind rund neun Stunden). >> Software modifizieren, auf die MiniPlatinchen (Format ca. 2x ESP9266-blank) flashen. Und - nix. Also identische Software auf eine NodeMCU flashen - und es läuft! (mehrere Wechsel der Platinen - Fazit die "kleine" läuft nicht als "Anzeige", die NodeMCU schon).

    Hier die anfängliche Anzeige von eben (nu gehts in die Kletterwand *gg*) und die soll noch die paar Stunden mal laufen. Weiter dann bis in zwei, drei Tagen. Es muss ja noch die "Flag"funktion implementiert werden, wiederholt getestet im Laboraufbau - und dann mal sehen ob das aus dem Briefkasten auch funzt.
    Ciao sagt der JoeamBerg

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

    Zwischendurch

    Testlauf-Protokoll etwas über sechs (6) Stunden. Anfangs Aufzeichnung teils unterbrochen - Terminal war absichtlich abgekoppelt (disconnect).

    ages .. Anzahl gesamte WLAN-tests
    anz0 .. Anzahl Nullen in ages (WLAN Nod...M nicht aktiv/sichtbar)
    anz1 .. Anzahl Einsen in ages (WLAN Nod...M aktiv/sichtbar)
    Dabei ist "aktiv" =: Pbox auf Sendung, "nicht aktiv" =: Pbox in deep sleep. Pbox wird aktiviert durch Druck auf /RES, generiert WLAN und geht auf Tiefschlaf.
    Code:
    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 =900 anz0 =892 anz1 =8
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 
    ages =930 anz0 =918 anz1 =12
    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 =960 anz0 =948 anz1 =12
    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 =990 anz0 =978 anz1 =12
    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 =1020 anz0 =1008 anz1 =12
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 
    ages =1050 anz0 =1034 anz1 =16
    . . . . . .
    . . . . . .
    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 =4140 anz0 =4120 anz1 =20
    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 =4170 anz0 =4150 anz1 =20
    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 =4200 anz0 =4180 anz1 =20
    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 =4230 anz0 =4210 anz1 =20
    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 =4260 anz0 =4240 anz1 =20
    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 =4290 anz0 =4270 anz1 =20
    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 =4320 anz0 =4300 anz1 =20
    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 =4350 anz0 =4330 anz1 =20
    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 =4380 anz0 =4360 anz1 =20
    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 =4410 anz0 =4390 anz1 =20
    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 =4440 anz0 =4420 anz1 =20
    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 =4470 anz0 =4450 anz1 =20
    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 =4500 anz0 =4480 anz1 =20
    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 =4530 anz0 =4510 anz1 =20
    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 =4560 anz0 =4540 anz1 =20
    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 =4590 anz0 =4570 anz1 =20
    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 =4620 anz0 =4600 anz1 =20
    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 =4650 anz0 =4630 anz1 =20
    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 =4680 anz0 =4660 anz1 =20
    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 =4710 anz0 =4690 anz1 =20
    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 =4740 anz0 =4720 anz1 =20
    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 =4770 anz0 =4750 anz1 =20
    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 =4800 anz0 =4780 anz1 =20
    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 =4830 anz0 =4810 anz1 =20
    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 =4860 anz0 =4840 anz1 =20
    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 =4890 anz0 =4870 anz1 =20
    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 =4920 anz0 =4900 anz1 =20
    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 =4950 anz0 =4930 anz1 =20
    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 =4980 anz0 =4960 anz1 =20
    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 =5010 anz0 =4990 anz1 =20
    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 =5040 anz0 =5020 anz1 =20
    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 =5070 anz0 =5050 anz1 =20
    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 =5100 anz0 =5080 anz1 =20
    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 =5130 anz0 =5110 anz1 =20
    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 =5160 anz0 =5140 anz1 =20
    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 =5190 anz0 =5170 anz1 =20
    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 =5220 anz0 =5200 anz1 =20
    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 =5250 anz0 =5230 anz1 =20
    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 =5280 anz0 =5260 anz1 =20
    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 =5310 anz0 =5290 anz1 =20
    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 =5340 anz0 =5320 anz1 =20
    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 =5370 anz0 =5350 anz1 =20
    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 =5400 anz0 =5380 anz1 =20
    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 =5430 anz0 =5410 anz1 =20
    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 =5460 anz0 =5440 anz1 =20
    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 =5490 anz0 =5470 anz1 =20
    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 =5520 anz0 =5500 anz1 =20
    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 =5550 anz0 =5530 anz1 =20
    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 =5580 anz0 =5560 anz1 =20
    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 =5610 anz0 =5590 anz1 =20
    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 =5640 anz0 =5620 anz1 =20
    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 =5670 anz0 =5650 anz1 =20
    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 =5700 anz0 =5680 anz1 =20
    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 =5730 anz0 =5710 anz1 =20
    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 =5760 anz0 =5740 anz1 =20
    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 =5790 anz0 =5770 anz1 =20
    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 =5820 anz0 =5800 anz1 =20
    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 =5850 anz0 =5830 anz1 =20
    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 =5880 anz0 =5860 anz1 =20
    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 =5910 anz0 =5890 anz1 =20
    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 =5940 anz0 =5920 anz1 =20
    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 =5970 anz0 =5950 anz1 =20
    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 =6000 anz0 =5980 anz1 =20
    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 =6030 anz0 =6010 anz1 =20
    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 =6060 anz0 =6040 anz1 =20
    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 =6090 anz0 =6070 anz1 =20
    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 =6120 anz0 =6100 anz1 =20
    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 =6150 anz0 =6130 anz1 =20
    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 =6180 anz0 =6160 anz1 =20
    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 =6210 anz0 =6190 anz1 =20
    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 =6240 anz0 =6220 anz1 =20
    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 =6270 anz0 =6250 anz1 =20
    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 =6300 anz0 =6280 anz1 =20
    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 =6330 anz0 =6310 anz1 =20
    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 =6360 anz0 =6340 anz1 =20
    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 =6390 anz0 =6370 anz1 =20
    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 =6420 anz0 =6400 anz1 =20
    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 =6450 anz0 =6430 anz1 =20
    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 =6480 anz0 =6460 anz1 =20
    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 =6510 anz0 =6490 anz1 =20
    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 =6540 anz0 =6520 anz1 =20
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 
    ages =6570 anz0 =6546 anz1 =24
    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 =6600 anz0 =6576 anz1 =24
    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 =6630 anz0 =6606 anz1 =24
    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 =6660 anz0 =6636 anz1 =24
    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 =6690 anz0 =6666 anz1 =24
    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 =6720 anz0 =6696 anz1 =24
    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 =6750 anz0 =6726 anz1 =24
    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 =6780 anz0 =6756 anz1 =24
    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 =6810 anz0 =6786 anz1 =24
    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 =6840 anz0 =6816 anz1 =24
    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 =6870 anz0 =6846 anz1 =24
    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 =6900 anz0 =6876 anz1 =24
    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 =6930 anz0 =6906 anz1 =24
    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 =6960 anz0 =6936 anz1 =24
    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 =6990 anz0 =6966 anz1 =24
    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 =7020 anz0 =6996 anz1 =24
    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 =7050 anz0 =7026 anz1 =24
    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 =7080 anz0 =7056 anz1 =24
    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 =7110 anz0 =7086 anz1 =24
    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 =7140 anz0 =7116 anz1 =24
    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 =7170 anz0 =7146 anz1 =24
    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 =7200 anz0 =7176 anz1 =24
    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 =7230 anz0 =7206 anz1 =24
    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 =7260 anz0 =7236 anz1 =24
    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 =7290 anz0 =7266 anz1 =24
    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 =7320 anz0 =7296 anz1 =24
    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 =7350 anz0 =7326 anz1 =24
    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 =7380 anz0 =7356 anz1 =24
    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 =7410 anz0 =7386 anz1 =24
    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 =7440 anz0 =7416 anz1 =24
    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 =7470 anz0 =7446 anz1 =24
    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 =7500 anz0 =7476 anz1 =24
    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 =7530 anz0 =7506 anz1 =24
    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 =7560 anz0 =7536 anz1 =24
    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 =7590 anz0 =7566 anz1 =24
    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 =7620 anz0 =7596 anz1 =24
    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 =7650 anz0 =7626 anz1 =24
    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 =7680 anz0 =7656 anz1 =24
    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 =7710 anz0 =7686 anz1 =24
    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 =7740 anz0 =7716 anz1 =24
    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 =7770 anz0 =7746 anz1 =24
    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 =7800 anz0 =7776 anz1 =24
    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 =7830 anz0 =7806 anz1 =24
    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 =7860 anz0 =7836 anz1 =24
    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 =7890 anz0 =7866 anz1 =24
    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 =7920 anz0 =7896 anz1 =24
    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 =7950 anz0 =7926 anz1 =24
    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 =7980 anz0 =7956 anz1 =24
    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 =8010 anz0 =7986 anz1 =24
    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 =8040 anz0 =8016 anz1 =24
    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 =8070 anz0 =8046 anz1 =24
    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 =8100 anz0 =8076 anz1 =24
    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 =8130 anz0 =8106 anz1 =24
    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 =8160 anz0 =8136 anz1 =24
    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 =8190 anz0 =8166 anz1 =24
    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 =8220 anz0 =8196 anz1 =24
    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 =8250 anz0 =8226 anz1 =24
    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 =8280 anz0 =8256 anz1 =24
    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 =8310 anz0 =8286 anz1 =24
    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 =8340 anz0 =8316 anz1 =24
    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 =8370 anz0 =8346 anz1 =24
    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 =8400 anz0 =8376 anz1 =24
    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 =8430 anz0 =8406 anz1 =24
    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 =8460 anz0 =8436 anz1 =24
    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 =8490 anz0 =8466 anz1 =24
    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 =8520 anz0 =8496 anz1 =24
    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 =8550 anz0 =8526 anz1 =24
    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 =8580 anz0 =8556 anz1 =24
    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 =8610 anz0 =8586 anz1 =24
    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 =8640 anz0 =8616 anz1 =24
    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 =8670 anz0 =8646 anz1 =24
    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 =8700 anz0 =8676 anz1 =24
    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 =8730 anz0 =8706 anz1 =24
    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 =8760 anz0 =8736 anz1 =24
    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 =8790 anz0 =8766 anz1 =24
    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 =8820 anz0 =8796 anz1 =24
    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 =8850 anz0 =8826 anz1 =24
    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 =8880 anz0 =8856 anz1 =24
    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 =8910 anz0 =8886 anz1 =24
    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 =8940 anz0 =8916 anz1 =24
    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 =8970 anz0 =8946 anz1 =24
    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 =9000 anz0 =8976 anz1 =24
    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 =9030 anz0 =9006 anz1 =24
    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 =9060 anz0 =9036 anz1 =24
    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 =9090 anz0 =9066 anz1 =24
    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 =9120 anz0 =9096 anz1 =24
    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 =9150 anz0 =9126 anz1 =24
    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 =9180 anz0 =9156 anz1 =24
    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 =9210 anz0 =9186 anz1 =24
    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 =9240 anz0 =9216 anz1 =24
    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 =9270 anz0 =9246 anz1 =24
    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 =9300 anz0 =9276 anz1 =24
    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 =9330 anz0 =9306 anz1 =24
    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 =9360 anz0 =9336 anz1 =24
    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 =9390 anz0 =9366 anz1 =24
    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 =9420 anz0 =9396 anz1 =24
    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 =9450 anz0 =9426 anz1 =24
    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 =9480 anz0 =9456 anz1 =24
    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 =9510 anz0 =9486 anz1 =24
    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 =9540 anz0 =9516 anz1 =24
    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 =9570 anz0 =9546 anz1 =24
    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 =9600 anz0 =9576 anz1 =24
    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 =9630 anz0 =9606 anz1 =24
    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 =9660 anz0 =9636 anz1 =24
    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 =9690 anz0 =9666 anz1 =24
    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 =9720 anz0 =9696 anz1 =24
    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 =9750 anz0 =9726 anz1 =24
    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 =9780 anz0 =9756 anz1 =24
    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 =9810 anz0 =9786 anz1 =24
    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 =9840 anz0 =9816 anz1 =24
    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 =9870 anz0 =9846 anz1 =24
    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 =9900 anz0 =9876 anz1 =24
    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 =9930 anz0 =9906 anz1 =24
    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 =9960 anz0 =9936 anz1 =24
    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 =9990 anz0 =9966 anz1 =24
    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 =10020 anz0 =9996 anz1 =24
    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 =10050 anz0 =10026 anz1 =24
    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 =10080 anz0 =10056 anz1 =24
    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 =10110 anz0 =10086 anz1 =24
    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 =10140 anz0 =10116 anz1 =24
    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 =10170 anz0 =10146 anz1 =24
    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 =10200 anz0 =10176 anz1 =24
    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 =10230 anz0 =10206 anz1 =24
    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 =10260 anz0 =10236 anz1 =24
    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 =10290 anz0 =10266 anz1 =24
    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 =10320 anz0 =10296 anz1 =24
    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 =10350 anz0 =10326 anz1 =24
    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 =10380 anz0 =10356 anz1 =24
    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 =10410 anz0 =10386 anz1 =24
    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 =10440 anz0 =10416 anz1 =24
    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 =10470 anz0 =10446 anz1 =24
    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 =10500 anz0 =10476 anz1 =24
    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 =10530 anz0 =10506 anz1 =24
    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 =10560 anz0 =10536 anz1 =24
    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 =10590 anz0 =10566 anz1 =24
    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 =10620 anz0 =10596 anz1 =24
    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 =10650 anz0 =10626 anz1 =24
    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 =10680 anz0 =10656 anz1 =24
    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 =10710 anz0 =10686 anz1 =24
    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 =10740 anz0 =10716 anz1 =24
    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 =10770 anz0 =10746 anz1 =24
    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 =10800 anz0 =10776 anz1 =24
    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 =10830 anz0 =10806 anz1 =24
    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 =10860 anz0 =10836 anz1 =24
    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 =10890 anz0 =10866 anz1 =24
    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 =10920 anz0 =10896 anz1 =24
    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 =10950 anz0 =10926 anz1 =24
    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 =10980 anz0 =10956 anz1 =24
    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 =11010 anz0 =10986 anz1 =24
    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 =11040 anz0 =11016 anz1 =24
    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 =11070 anz0 =11046 anz1 =24
    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 =11100 anz0 =11076 anz1 =24
    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 =11130 anz0 =11106 anz1 =24
    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 =11160 anz0 =11136 anz1 =24
    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 =11190 anz0 =11166 anz1 =24
    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 =11220 anz0 =11196 anz1 =24
    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 =11250 anz0 =11226 anz1 =24
    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 =11280 anz0 =11256 anz1 =24
    0 0
    Für den nächsten Testlauf (die nächsten Tage, über Nacht) sind minimale Änderungen geplant. Z.B. LED- und/oder Servoanzeige.
    Geändert von oberallgeier (10.08.2023 um 15:52 Uhr)
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585
    Also funktioniert es jetzt?
    Crypi

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

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

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

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

Labornetzteil AliExpress