Archiv verlassen und diese Seite im Standarddesign anzeigen : ESP8266, arduinoIDE, etliche Probleme
oberallgeier
14.07.2023, 10:29
Guten Tag ESP-Fans und Helfer,
der ESP8266 hatte mir gefallen, die Möglichkeit als Numbercruncher (Link (https://www.roboternetz.de/community/threads/77124-Suche-arithmetischen-Co-Prozessor-f%C3%BCr-Atmel-8Bitter?p=667421&viewfull=1#post667421)). Dazu war (m)ein Einstieg in die arduino-IDE notwendig. Gelegentlich kann ich mit der auch umgehen - SEHR bescheiden, oft recht unklar.
Ein schickes Programm zum Bedienen von GPIOs hatte ich nach etlichen Fehlfunden entdeckt (Link (https://dl.dropbox.com/scl/fi/p0khmwdmtnamljw7jsgsw/Code-LME-GPIO-aktuell-13-07-2023-13h32.txt?rlkey=rg3050ud5njpdntkq6itoomlh&dl=0)). Das läuft problemlos, ist klar, "durch(ein?)sichtig", nachvollziehbar.
Dann also dieses Projektchen mit dem Briefkasten. Quelle hier - Projektbuch.. (https://www.ebay.de/itm/134634212631?chn=ps&norover=1&mkevt=1&mkrid=7071533165376683&mkcid=2&itemid=134634212631&targetid=4582833206194171&device=c&mktype=&googleloc=&poi=&campaignid=376712745&mkgroupid=1267737623409783&rlsatarget=pla-4582833206194171&abcId=9300540&merchantid=87778&msclkid=b6f16ed110aa11c032d90a6013df7dd6). War schnell abgekupfert - nach einigen Korrekturen auch übersetzbar und konnte geflasht (https://dl.dropboxusercontent.com/scl/fi/jg7xeucmdv8mgipm50itr/AZE12F_FLAG-11-07-2023-11h02-dot-ino-als-textdatei.txt?rlkey=dgqnhjp7yctm39wiilwd73ywe&dl=0) werden.
SELTSAM war die vom ESP(AP) eingerichtete SSID. Im Code stand anfangs die SSID 'Meinabc' mit Passwort 'MeinPasswortabcd' (beide in Wirklichkeit anders), in der Netzwerkliste des PCs tauchte das aber zuerst auf als 'ESP-9CDE85', später (mit Initialisierung auf 'ESP-9CDE85') als 'AZ12F' und gestern abends wieder anders als im Code geschrieben.
Neben vielen vielen Fragen und Unklarheiten zuerst eine Frage
Wieso taucht eine SSID auf, die ich garnicht gecodet hatte, während im hier davor genannten Fall alles lief wie geschrieben?
Im Voraus danke für Eure Hilfe.
jcrypter
14.07.2023, 16:41
Hi, ich erinnere mich, dass ich diese Probleme auch schon mal hatte.
Ist eine Weile her. Ich hatte damals das Gefühl, dass es durchmehrfaches flashen behoben wurde.
ich hab gerade mal gegooglet und das gefunden https://arduinodiy.wordpress.com/2021/02/25/strange-behaviour-in-esp8266-accesspoint-was-password-related/
Das weckte meine Erinnerung, dass ich damals auch mit den Credentials gespielt habe. Vielleicht hilft dir der Artikel.
Die Buchstabenkombinationen hängen wohl mit der Mac Adresse des Moduls zusammen, diese werden genutzt wenn die von dir gesetzten Credentials nicht funktionieren. Warum die dann aber auch variieren.... keine Ahnung.
Edit: https://stackoverflow.com/questions/69040548/esp8266-soft-ap-displays-the-wrong-name das hier bestätigt das ein bisschen
Crypi
SELTSAM war die vom ESP(AP) eingerichtete SSID. Im Code stand anfangs die SSID 'Meinabc' mit Passwort 'MeinPasswortabcd' (beide in Wirklichkeit anders), in der Netzwerkliste des PCs tauchte das aber zuerst auf als 'ESP-9CDE85', später (mit Initialisierung auf 'ESP-9CDE85') als 'AZ12F' und gestern abends wieder anders als im Code geschrieben.
diese seltsamen kurzzeichen (erscheinen in der liste der beim router (fritzbox?) angemeldeten netzwerkteilnehmer) werden von dem ESP unabhängig von irgendwelchem code festgelegt, man kann sie im verzeichnis der fritzbox verändern und auch festlegen, dass immer die gleiche IP zugeordnet werden soll. Zumindest ist es meine erfahrung mit ESP...
Rabenauge
15.07.2023, 12:36
Die ESP haben ein -undokumentiertes!-Eigenleben, über das nur wenig bekannt ist-daher setze ich die Dinger auch nicht mehr in unsicheren Umgebungen ein.
Teilweise sind aber auch schlichtweg irgendwelche Librarys fehlerhaft.
Das, was jcrypter sagt, stimmt: wenn das Ding aus irgendeinem Grund keine richtige SSID erzeugen kann, dann bastelt es sich ne eigene zusammen.
Inzwischen gehe ich da so vor:
WiFi.mode(WIFI_AP); // in WiFi.mode(WiFi_AP) ändern
WiFi.begin();
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("Wunderlampe");
Das funktioniert prächtig.
oberallgeier
15.07.2023, 14:55
Vielen Dank Euch für Eure Hinweise und Ratschläge!
.. diese Probleme auch schon mal hatte.. Buchstabenkombinationen hängen wohl mit der Mac Adresse des Moduls zusammen..
CrypiDanke Crypi, ich habs gleich getestet, die MAC Adresse ausgelesen; das funktionierte überraschend gut (Klau-ware). Aber der (formale) Zusammenhang ist mir nicht klar geworden. Selbst nicht beim Ändern z.B. nur sieben Bits nehmen und so.
// ESPtest - Auslesen der MAC-Adresse mit 115200Bd 14072023-18h12
#include <ESP8266WiFi.h>
WiFiClient espClient;
// - - - - - - -
void setup()
{
Serial.begin(115200);
delay( 500);
// - - -
Serial.println();
Serial.print("MAC: ");
Serial.println(WiFi.macAddress());
delay( 1000);
Serial.print("\r");
Serial.print("MAC: ");
Serial.println(WiFi.macAddress());
delay( 1000);
}
void loop(){}
// - - - - - - -
.. diese seltsamen kurzzeichen (erscheinen in der liste der beim router (fritzbox?) angemeldeten netzwerkteilnehmer) werden von dem ESP unabhängig von irgendwelchem code festgelegt ..Inka, das kann ich nur bestätigen. Hier scheint eine der (wohl nicht allzu seltenen) Macken der ganzen arduino-Core-Philosophie zu liegen. Die ist ja äusserst spärlich zugänglich. Und meine Tests mit unterschiedlichen cores/packages bestätigen das. So ist mancher "lauffähige" Code lässt sich nur mit bestimmten Package-Versionen kompilieren - manchmal läufts mir mit "esp8266, 2.0.0 + 2.2.0, manchmal dagegen erst mit der neuesten 3.1.2. War mir erst aufgefallen als ich mit der 2.2.0 angefangen hatte und danach auf ".. update .." geklickt hatte. Schlechte Idee :-/ Aber so nen Compiler-Offset zu machen kommt mir auch recht schwierig vor . . .
.. Die ESP haben ein -undokumentiertes!-Eigenleben .. Inzwischen gehe ich da so vor: ..Hmmm, interessant. Danke Rabenauge, werd ich testen (im Moment ists hier rum etwas "uncool" - brütend heiss - nix für Denksportaufgaben.
jcrypter
17.07.2023, 10:45
Moin,
ich versteh den Zusammenhang mit der Fritzbox nicht? Es ging doch darum welchen Namen das vom ESP erzeugte WLAN hat, nicht um die Zuweisung einer IP oder der Devicename wenn der ESP sich in einem bestehenden WLAN anmeldet.
Hast Du mal versucht dein Passwort für das vom ESP erzeugte WLAN zu verändern gemäß der Links die ich gepostet hatte?
Crypi
oberallgeier
18.07.2023, 10:04
.. Hast Du mal versucht dein Passwort für das vom ESP erzeugte WLAN zu verändern gemäß der Links die ich gepostet hatte? ..Klar, natürlich hatte ich das gleich getestet. Der Erfolg blieb eher aus: Kontrolle auf Sonderzeichen - ich hatte ja nur Ziffern und Buchstaben verwendet, kein Leerzeichen, Unterstrich etc, keine sonstigen Sonderzeichen. Bei der Erweiterung des Passwortes (123456) auf sieben, später 8 Zeichen gabs dann keinen Erfolg: im Gegenteil, es war auch keine SSID mehr zu sehen (Netzwerkliste aus Win10, daneben auch Android 12 SKQ1..). Ich hatta auch weiter im www gesucht, die Ratschläge waren stets ziemlich so wie von Dir.
Zwischendurch mal - EIN Mal - meldete sich ein WLAN - mit der "alten" SSID "NodeMCU" statt der aktuell gecodeten "NodeKLM". Total seltsam. Erneutes flashen brachte "Besserung" - nun meldete sich keine SSID . . . .
.. ich versteh den Zusammenhang mit der Fritzbox nicht ..Ehrlich: ich vestehs auch nicht wirklich. Das ist ja wesentlich an meinem aktuellen Problem : die WLANerei verstehe ich nicht.
Weitere Versuche mit andern Platineneinstellungen in der IDE (NodeMCU 0.9, NodeMCU 1.0) brachten auch keine Besserung. Aktuell sind vier Platinen (2 Stk AZ-Delivery D1 Mini ESP8266MOD 12-F und 2 Stk AZ-Delivery NodeMCU LuaLolin V3 ESP8266MOD 12-F) nicht mehr WLAN-fähig.
(M)Ein einfaches Blinkprogramm läuft auf jeder Platine problemlos.
void loop() {
delay( 2000); // 2,0 Sek Pause
lang(); lang(); lang(); zp(); // Langes Zeichen mit Pause >> „Dah“ etwa 3-mal so lang wie „Dit“
kurz(); kurz(); kurz(); zp(); // zp: Zeichenpause zwischen Zeichen+Buchstaben Länge eines „Dah“
lang(); lang(); lang();
}
Aktuell denk ich dran neue Platine zu klonen (z.B. (https://haus-automatisierung.com/projekt/2018/10/25/projekt-esp-firmware-klonen.html)) - aber das wäre auch unbefriedigend und nur blinder Aktionismus. Besser scheint die Absicht dieses Projekt zu vergessen :-/
Ergänzung:
Grad eben habe ich mal auf ne Ausgabe über UART gewartet (?Stackprobleme?):
HTTP server started
Exception (29):
epc1=0x4000e1b2 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
ctx: sys
sp: 3ffffce0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3ffffe80: 3fff0f4c 0000002c 00000000 401004f4
3ffffe90: 40213be6 40213ba4 00000000 40106dd4
3ffffea0: 60000600 00000000 000002e1 40213c27
3ffffeb0: 00000001 00001388 3ff20200 ffffffff
3ffffec0: 402317e7 ffffffc4 4022aa6a 00000001
3ffffed0: 4022ecce 00000001 3ffee5e0 00000064
3ffffee0: 4022aa81 00000001 3ffee5e0 026e12e7
3ffffef0: 00000001 3fffdad0 3ffefd20 00000030
3fffff00: 4022bce5 402118ed 3ffede70 40213ba4
3fffff10: 3fff0f4c 3ffef234 3fff0f4c 40213bae
3fffff20: 3ffede70 00000000 0000000d 3ffe9214
3fffff30: 4021196b 3ffede70 00000000 4022900e
3fffff40: 4021173b 3ffede88 3ffee5e0 026ebc26
3fffff50: 00000000 3ffede88 3ffee5e0 026ebc26
3fffff60: 40211be4 00c27d38 3ffee5b8 3ffee5e0
3fffff70: 4021c239 3ffede88 3ffee5e0 026eafdb
3fffff80: 4021c27e 3fffdab0 00000000 3fffdcb0
3fffff90: 3ffee608 3fffdad0 3ffefd20 40205cab
3fffffa0: 40000f49 40000f49 3fffdab0 40000f49
<<<stack<<<
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1264, room 16
tail 0
chksum 0x0f
csum 0x0f
~ldHTTP server started
jcrypter
18.07.2023, 11:28
Hast Du versucht Tutorials dazu durchzuarbeiten?
https://www.aranacorp.com/en/configure-an-esp8266-as-a-wi-fi-access-point/
https://randomnerdtutorials.com/esp8266-nodemcu-access-point-ap-web-server/ hier wird noch ein Sensor verwendet, dass musst Du entsprechend anpassen, allerdings hab ich mit den Tutorials von denen gute Erfahrungen gemacht
https://siytek.com/how-to-set-up-esp8266-as-a-wifi-access-point-ap-mode/
Für Änderungen bzgl SSID o.Ä. hab ich für mich festgestellt, dass ein "stromweg" Neustart zuverlässiger funktioniert als ein auf andere Art initiierter Neustart.
Ab welchem Punkt gehts nicht mehr weiter?
Funktioniert es noch sich in bestehende Netzwerke einzuwählen? Bezogen auf deine Aussage, dass sie nicht mehr WLAN-fähig sind.
Der http Server ist ja für den ersten Versuch einen AP zu erzeugen nicht notwendig, ich würd erstmal alles an Code rauswerfen das nicht für diese Grundfunktionalität notwendig ist.
Zu der Fehlermeldeung als solcher kann ich nichts sagen.
Crypi
oberallgeier
18.07.2023, 11:48
Hast Du versucht Tutorials dazu durchzuarbeiten ..Ppuh - danke für die schnelle Anwort. Tutorials - ich habe mit Tutorials ziemlich "unten" angefangen weil ichfür die arduino-IDE praktisch keinerle Vorkenntisse hatte. Ach, Neustart durch "stromweg" hatte ich auch gemacht, meist nicht genau genug dokumentiert und beobachtet. Manchmal mit dem Effekt dass ein erschienener AP nicht mehr auftauchte.
Ansonsten muss ich (haushaltsbedingt und Verpflichtungen entsprechend) mal bis frühestens abends oder (über)morgen pausieren.
(M)Ein einfaches LED-Programm, "SOS" blinken, funktioniert. Egal was vorher nicht funktionierte. Scheint also ausschließlich ein WLAN-Problem zu sein. Meins :-/
Rabenauge
20.07.2023, 10:39
Bei einigen dieser ESP-bestückten Platinen (ich nutze nahezu nur noch die Wemos-Mini(Clone)-Dinger) gab es mal das Problem, dass man nach dem Flashen noch den Reset-Knopf drücken musste (oder kurz den Strom wegnehmen) damit die das geflashte Programm auch starten.
Fällt mir gerade ein...
oberallgeier
20.07.2023, 11:23
.. gab es mal das Problem, dass man nach dem Flashen noch den Reset-Knopf drücken musste ..Danke. Stimmt - soweit ich das aus Berichten kenne. Geht bis "Erst Reset drücken, dann bestromen". Hatte ich recht oft probiert. Dies und Varianten halfen mir nicht.
- - - Aktualisiert - - -
Licht am Ende des . . .
Grüß Dich Crypi!
Hast Du versucht Tutorials dazu durchzuarbeiten ..Danke für Deine Aufmunterung (und Geduld); an sich hätte ich das Thema Tutorials ja nicht gleich bei meinem Einstieg in die arduino-IDE zur Seite schieben sollen. Aber nach Deiner Anregung hats ja doch (klar!) geholfen.
Nachdem etliche, zahlreichen Berichte Probleme zur ESP-Programmierung ähnlich wie meine beschreiben, liegt ja da irgendwo der Hase im Pfeffer. Den vielen Lösungsansätzen folgten anschließend selten Erfolgsberichten. Egal - die Grundlagen mussten sein. Dem einen oder andern Hilfsansatz bin ich gefolgt. Mancher ging nicht, mancher half nicht :-/
Ein Ausweg scheint anderswo zu liegen. Markant war ja, dass manche meiner wenigen Progrämmchen nach kompilieren und flashen Rudimente (insbes. SSID - aber vielleicht auch mehr?) von früheren, auch anderen meiner arduino-Quellen enthielten. Grübel - nachguck - nachdenk - Einfall: aber möglicherweise hatte einer der Problemberichte den Hinweis enthalten die "Arbeitsdateien" zu löschen die von der IDE angelegt wurden. Also suchen. Meine Arbeitsmitschrift (Logbuch, meist projekt- oder themen (https://dl.dropbox.com/scl/fi/8x0dvs79yn5l2imphumyl/Auszug-Log-ardu-IDE.txt?rlkey=nn6bfjdnhtn9lz5awgg2usoqk&dl=0)bezogen) enthielt dazu nix. Egal - ich habs gefunden. Zahllose Dateien mit kryptischen Zahlennamen:
557700679194777941011014646 20.07.2023 0830
5577006791947779410201385402 20.07.2023 0830aber typischerweise mit paarweise gleichem Zeitstempel.
Gestern spääät abends mal einen längeren Block (50? 80?) gelöscht.
Danach ein kleines ESP-Progrämmchen "mit WLAN" in die IDE geladen, kompiliert+geflasht. Läuft einwandfrei mit halb so langer SSID und Passwort wie vorher. Die zwei kryptischen Dateien löschen. Noch zwei Tests mit andern Progrämmchen, mit und ohne WLAN. Läuft.
Bisher also keine erkennbaren Probleme, ich bleibe misstrauisch.
PS: ich weiß, dass die Dateien laut Explorer leer sind
jcrypter
20.07.2023, 11:46
Toll, dass es jetzt klappt!
Hoffentlich kommst Du jetzt mit dem eigentlichen Projekt voran!
Crypi
oberallgeier
22.07.2023, 11:53
Toll, dass es jetzt klappt .. mit dem eigentlichen Projekt ..Ich bemühte mich.
Mal eine gründliche "Ortsänderung". Alten Notebook (ACER Aspire E 17/W10pro) rausgeholt, arduino-IDE installiert, Projektdatei für EINE Platine (AZ..D1Mini..12-F,#02) mit Stick übertragen - Kontrolle auf "unsichtbare Dateien" am Stick - auch keine unsichtbaren Directories feststellbar.
Datei *.ino redigiert, z.B. SSID Pbox und Passw. 1234. Datei kompiliert und geflasht. In der Liste verfügbarer WLAN-Netze taucht eine SSID "NodeKMU" auf, einloggen ist nicht möglich. Mehrere Neustarts, Ab- und Wiederankoppeln der Platine bringts nicht . . .
Ich gebs auf, macht wirklich keinen Spass mehr. Suspekt ist mir u.a. der Übertragungsweg des SSID-Namens NodeKMU. Bleiben da Rudimente auf dem Kontroller gespeichert? Wieso wird keine neue ID und PW angenommen? Fragen wäre da, aber all die Mühe scheint es mir nicht mehr wert. Als kleine Platinchen mit einigen Anschlüssen und einem flotten Arbeitstakt sind die ESP´s ja auch ohne WLAN noch zu gebrauchen.
Zusatz/Hindernis2: Der Briefkasten ist in der Hausmauer bündig eingebaut. Der Kasten ist Stahlblech. Es ist äusserst zweifelhaft, dass die 2,4 GHz irgendwie da rauskommen und dann noch durch zwei Ziegelmauern bis in die Wohnung bzw. an die geplante Meldestelle laufen. (Die nackte ESP-Platine schaffts grad noch.) Eine äussere Antenne ?? wäre nicht wirklich "vandalensicher".
hallo Joe,
ich verwende die ESP's in allen ihren variationen und mit allen kommunikationsmöglichkeiten, die sie mitbringen seit jahren - solche probleme mit dem wlan kenne ich nicht... Wäre interessant mal den code zu sehen? Auch gerne per PM, wenn du es nicht hier posten willst...
oberallgeier
23.07.2023, 19:49
Ich bin (überraschend) ein bisschen vorangekommen. Mal sehen, wie es weiter geht. Näheres kommt noch.
Mal ne VorSCHAU (https://dl.dropbox.com/scl/fi/0b65znmfhmmqw4xvyximy/WLAN-Pbox-02.JPG?rlkey=lmorlpozzuq3jyltyqu47pxlm&dl=0).
Rabenauge
24.07.2023, 23:55
Schau doch bitte mal in die Konsole der Arduino-IDE.
Die ESP spucken einiges an Meldungen aus- wenn dort immer wieder (mit geringem zeitlichen Abstand) das Gleiche erscheint, dann bleibt er hängen und rebootet.
Du kannst in deinem Code dann gut platzierte Debug-Meldungen unterbringen, um rauszufinden, wo er hängen bleibt.
Falls es sowas ist, das ist lösbar...das hatte ich auch etliche Male, hab es aber immer hingekriegt.
Und ja, wie gesagt: die Dinger haben ein gewisses...Eigenleben.
Nicht alles ist dokumentiert.
oberallgeier
25.07.2023, 18:23
.. wenn dort .. dann bleibt er hängen .. Debug-Meldungen.. wo er hängen bleibt ..Ja, das war eine der Ursachen mit denen ich kämpfte. Hatte allerlei Meldungen eingefügt (hatte ja wirklich keine Ahnung was da läuft . .) und damit nur das Chaos vergrößert. Langsam komm ich auf den Grund meiner Probleme.
.. Nicht alles ist dokumentiert.Na ja, ich weiß manchmal g arnicht wonach ich suchen soll - mal ehrlich geschrieben.
Danke für die Hinweise.
Rabenauge
26.07.2023, 14:31
Setzt mal an irgendeine Stelle in die Hauptschleife ein yield().
Das ermöglicht dem ESP, Hintergrundprozesse abzuarbeiten (das ganze WLAN-Gedöns ist so einer).
Bringt oft Stabilität.
jcrypter
26.07.2023, 14:50
Hi,
versuch bei der einen Platine doch mal den Quellcode der vorher funktioniert hat.
Als Passwort 1234 zu nehmen wird wohl nicht funktionieren. Das ist zu kurz.
Darin sind sich alle Quellen einig die ich habe finden können.
Oder teile wirklich mal deinen Quelltext.
Crypi
oberallgeier
30.07.2023, 11:06
.. versuch .. den Quellcode der vorher funktioniert hat .. Oder teile .. deinen Quelltext. //CrypiProblem: Ein Server ist vom Client nicht ansprechbar; Basis ESP8266.
Projekt:
Eine WLAN-Server-Client-Kombination aus zwei ESP8266 soll die Information eines im Briefkasten angekommenen Poststücks in einen Wohnraum weiterleiten und da anzeigen. Im Wohnraum wird ein ESP8266 als AP (alternativ, eigener Versuch: soft-AP) eingerichtet mit dem Programm FLAG. Im Briefkasten wird mit einem gleichen ESP und einem Sensor der Client mit dem Programm "Pbox" eingerichtet. Durch den Einwurf von Post wird der Client resettet, aus dem "Tiefschlaf" geweckt, meldet das dem Server und geht wieder in den Tiefschlaf. Der Server zeigt durch Einschalten eines Signals den Empfang dieser Nachricht, die vom eingeworfenen Postgut ausgelöst wurde. Das Projekt ist in dem "ESP8266-Projektbuch" beschrieben; Autor Martin Mohr. "ESP" meint hier eine kleine Platine mit ESP8266 12-F, USB-Buchse, 5Vzu3,3V-Wandler etc.
Abbildung ESP-Projektbuch.JPG (https://dl.dropbox.com/scl/fi/aqbgk3qgv5peu2h23lgbk/ESP-Projektbuch.JPG?rlkey=v27rasjd1gurlo9aycr26xnpx&dl=0)
Realisierung
Dieses Projekt "Briefkasten-is-was-drin-Sensor" mit "Signalausgabe" habe ich nach der Beschreibung in der ebook-Ausgabe "Das ESP8266-Projektbuch" angefangen. Die beiden Programmteile "FLAG" für Signalausgabe im Wohnbereich und "PBox" für Briefkasten+Sensor wurden ausgelesen (schlechte PDF, leider viele Lese-, Schreib- und daraus Compilier-Fehler) und als separate *ino-Codes abgelegt. Arbeitsbasis Arduino IDE 2.1.1 mit core esp8266 3.1.2.
Abbildung ArduinoIDE2-1-1.JPG (https://dl.dropbox.com/scl/fi/spy0unj7r6c8xkbltn3j4/ArduinoIDE2-1-1.JPG?rlkey=2pt47vnd7h31nmzoutukxus4c&dl=0)
Nach compilieren und flashen der beiden Programme ist die WLAN-SSID nicht bzw. nicht zuverlässig zu finden. Im folgenden Code sind Zeilen aus dem Originaltext blau markiert. Wenn die blauen Zeilen (alt, original) durch die roten (neu erstellt) ersetzt werden (Kommentarmarken!) wird ein WLAN-Server (Abbildung (https://dl.dropbox.com/scl/fi/coblk82xxi3nkqw2g09wh/NodeKTM-WLAN-IPv4-x121-17h17.JPG?rlkey=740hv7bkxvyw0px54yzgv9syh&dl=0)) aufgebaut und feststellbar.
..FLAG..
// Programm Flag-ESP aus "ESP8266 Das Projektbuch", Seiten 27ff ... korr 08072023
/* Beginn: bearbeitet am 20.07.2023 00:44; Board #01, Einstellg >>FLAG<< auf
. . . . . . .
Aktuell bearbeitet 27 07 2023 13h30 übernommen aus D:\..\A2_00\Etest1\AZ..6h14.txt */
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "NodeKTM"; // Empfänger ist hier FLAG ! ! <<< Aufrufer = Postbox ! !
//## const char* pass = "12345678"; //
// / / / / / / Neue/geänderte Deklrarationen etc
const char* password = "12345678"; //Enter Password here
IPAddress local_ip(192,168,1,119);
// \ \ \ \ \ \ Neue/geänderte Deklarationen etc
IPAddress ip(192,168,1,120);
IPAddress gateway(192,168,1,1); // 22072023-1810 geändert von 1 auf 100 >>>>> nutzt nix, zurück auf 1
IPAddress subnet(255,255,255,0);
//
String inString;
ESP8266WebServer server(80);
// --------------------------
void handleRoot()
{
server.send(200, "text/plain", "ESP Flag Server");
}
// --------------------------
void handleFlag()
{
server.send(200, "text/plain", "Flag is up");
delay(1500);
}
// -------------------------------------------------------
void setup() // ssid = "FLAG";
{ // Sequenz setup Start
Serial.begin(115200);
Serial.println("\r\n") ;
// -------------------------- Beginn "alter" WiFi-Beginn aus "..Projektbuch.."
// WiFi.begin(ssid, password); // im Original (-buch) steht "pass"
// WiFi.config(ip, gateway, subnet);
// -------------------------- Ende "alter" WiFi-Beginn
// -------------------------- Beginn "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
WiFi.softAP(ssid, password);
WiFi.softAPConfig(local_ip, gateway, subnet);
delay(100);
// -------------------------- Ende "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
delay( 1000);
while (WiFi.status() != WL_CONNECTED) //#### "FLAG"=Anzeige
{
delay( 500);
Serial.print(".");
} //
Serial.println("") ;
Serial.print("Datei ESPtst1.ino für FLAG. ");
Serial.print("Verbunden mit ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP()) ;
delay(1500);
server.on("/",handleRoot) ;
server.on("/flag/", handleFlag);
server.begin();
Serial.println("HTTP server started");
} // Sequenz setup Ende
void loop(void)
{
server.handleClient();
}
..Pbox..
// Programm Postbox-ESP aus "ESP8266 Das Projektbuch", Seiten 35ff ... korr 08072023
/* bearbeitet am 20.07.2023 23:46 => hh:mm setup mit delay(1500) vor+nach Serial.println
. . . .
aktuell bearbeitet 27 07 2023 11:04 Code für Pbox aus "..Projektbuch.." übernommen/kontrolliert
27 07 2023 11h30 >> geändert nur ssid > "NodeKTM" und pass > "12345678"
27 07 2023 14h00 >> und geändert: delay nach "serial.begin"
/ / / / */
#include <ESP8266WiFi.h>
const char* ssid = "NodeKTM"; // Dies hier ist Postbox (Empfänger ist FLAG/2)
const char* pass = "12345678"; //
//## const char* serverIp = "192,168,1,119"; // wie FLAG geändert auf 20 am 24.07.2023-17h46
const char* serverIp = "192,168,1,122"; // 29.07.2023-16h28 neu; laut WLAN-Daten von Board#01/NodeKTM
// Versuche: 16h45: 117, 16h46 118, 16:53 119, 17:00 120, 17:17 121, 17h26 122
int serverPort = 80;
WiFiClient client;
// --------------------------
void setup()
{
Serial.begin(115200);
delay( 1000);
Serial.println("\r\n"); // Anmelde"text"; Pbox #02, Zeilenvorschub
WiFi.begin (ssid, pass); //
while (WiFi.status() != WL_CONNECTED)
{
delay( 500);
Serial.print(".");
}
delay( 1000);
Serial.println("");
Serial.print("Pbox verbunden mit ");
Serial.print(ssid);
Serial.print(", IP address: ");
Serial.println(WiFi.localIP());
if ( !client.connect(serverIp, serverPort) )
{
Serial.println("connect fail");
}
client.print("GET /flag/");
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverIp);
client.println("Connection: close");
client.println();
client.stop();
delay(1500); //
ESP.deepSleep(0);
}
void loop() { }
Abb NodeKTM-WLAN-IPv4-x121-17h17.JPG (https://dl.dropbox.com/scl/fi/coblk82xxi3nkqw2g09wh/NodeKTM-WLAN-IPv4-x121-17h17.JPG?rlkey=740hv7bkxvyw0px54yzgv9syh&dl=0)
Problem:
Der Server ist vom Client nicht ansprechbar. Seine IPv4-Adresse *.121 ist nicht erreichbar, siehe Terminaldarstellung. Variation der serverIp im Programm Pbox von 192,168,1,117 bis *.122 zeigten keinen Erfolg.
Abb Terminal_28072023-23h52.JPG (https://dl.dropbox.com/scl/fi/a15hs79qs9z5nxafpcfao/Terminal_28072023-23h52.JPG?rlkey=6qdnrq5k4o8x4f9p76b7fu5qy&dl=0) Abb Terminal_29072023-17h42.JP (https://dl.dropbox.com/scl/fi/tle33bg58otvly3m63acr/Terminal_29072023-17h42.JPG?rlkey=bgvm42usdufiuvz5trcenprcn&dl=0)G
Kennt jemand dieses Problem? Bitte um Hilfe.
Wo sind meine Fehler? Sind die angezeigten IPs, siehe Bild "NodeKTM-WLAN..", richtig? Muss für die Kommunikation eine andere erstellt/angesprochen werden? Welche?
Danke im Voraus
Die beiden Programmteile "FLAG" für Signalausgabe im Wohnbereich und "PBox" für Briefkasten+Sensor wurden ausgelesen (schlechte PDF, leider viele Lese-, Schreib- und daraus Compilier-Fehler) und als separate *ino-Codes abgelegt. Arbeitsbasis Arduino IDE 2.1.1 mit core esp8266 3.1.2.
das wäre für mich ein grund sich ein andres beispiel zu suchen...
EDIT:
der hier (https://polluxlabs.net/esp8266-projekte/erhalte-eine-nachricht-aufs-smartphone-wenn-die-post-da-ist/) schreibt zwar, dass sein projekt noch nicht so funktioniert wie es sollte, allerdings ist die suche nach dem fehler vermutlich einfacher als in einem vom pdf eingescannt code. Man müsste das aufbauen und schauen warum es nicht funktioniert. Und er arbeitet ja auch dran. Übrigens ist das das erste mal, dass ich so einen hinweis sehe. bemerkenswert!
oberallgeier
31.07.2023, 14:53
das wäre für mich ein grund sich ein andres beispiel zu suchen...Wars für mich auch fast(schon, beinahe). Aber wenn ich da weitermache, bekomme ich vielleicht einen kleinen Schimmer über WLAN und seine Teile. IoT lässt grüssen *gg*.
.. der hier (https://polluxlabs.net/esp8266-projekte/erhalte-eine-nachricht-aufs-smartphone-wenn-die-post-da-ist/) schreibt zwar, dass sein projekt noch nicht so funktioniert wie es sollte, allerdings ist die suche nach dem fehler ..Meine Fehlersuche endet vorerst in einer Art Debug-Version mit zwei verschiedenen IPs beim Aufruf durch den Client: 92 und 93. Angezeigt wird für den Server 92! Aber die Ausgaben deuten auf Probleme. Nur - ich kann das nicht enträtseln.
Darstellungen:
Eigenschaften des Server (https://www.dropbox.com/scl/fi/cai3h4w8e1joz89kx91wi/NodeKTM-WLAN-IPv4-92_3107-13h09.JPG?rlkey=6j80fzm9io1fwbngv2y19nk86&dl=0)s.
Ausgabe "93" (https://dl.dropbox.com/scl/fi/9zmdgway5d420mqacnidv/Terminal_31072023-13h15.JPG?rlkey=ockpggc4rsrlyw0g101cwaae6&dl=0)
Ausgabe "92 (https://dl.dropbox.com/scl/fi/pmiy528wvk5i605nltg87/Terminal_31072023-13h45.JPG?rlkey=th2296d6csaoozecp1fsdkgyd&dl=0)"
Code
Vielleicht findet hier jemand die Lösung/Erklärung und hilft mir aus dem Dunkel... ?
Vielleicht findet hier jemand die Lösung/Erklärung und hilft mir aus dem Dunkel... ?
wurde ja schon ein paar mal erwähnt: das letzte funktionierende codebeispiel für das zusammenspiel zwischen client und server noch einmal flashen, evtl. - um einen defekt auszuschliessen - einen anderen D1mini verwenden, und vielleicht auch wirklich ganz unten bei dem problem anfangen. Wenn das zusammenspiel client/server bei dem einfachen codebeispiel funktioniert, kann man experimentieren, weil man eine basis hat auf die man immer wieder zurückkehren kann. So stocherst du wirklich nur im dunkeln herum :-(
- - - Aktualisiert - - -
ich habe hier (https://www.easydatenbank.de/der-intelligente-briefkasten) noch ein beispiel gefunden, da wird die benachrichtigung aus dem briefkasten nicht zwischen einem AP und einem client gesendet, sondern über pushover auf ein smartphone. Man wird also auch unterwegs benachrichtigt, wenn post kommt. Auch eine gute idee. Habs noch nicht ausprobiert, noch keine zeit gefunden, kommt aber noch. Und man kann beide esp's testen, ob sie ok sind...
oberallgeier
01.08.2023, 11:24
Grüß Dich Crypi,
da ist mir die Antwort auf Dein Posting "auf der Strecke" geblieben. Sorry. Hol ich jetzt nach, bevor ich andere Aktionen starte.
.. ich versteh den Zusammenhang mit der Fritzbox nicht..Versteh ich auch nicht.
.. Hast Du mal versucht dein Passwort für das vom ESP erzeugte WLAN zu verändern gemäß der Links die ich gepostet hatte ..Danke im Nachhinein für Deinen Hinweis. Feines Werkzeug, sehr nützlich. Ich hatte gleich mehrere Tests gemacht: a) das Progrämmchen abwechselnd auf eine von meine BEIDEN ESP-Platinchen geflasht. Dazu abwechselnd auf mein WLAN24 (2,4GB) bzw WLAN5 (5GB) eingestellt. Die Testobjekte über Terminal verbunden und dann kam stets sauber die Antwort:
setting up soft-AP
ready!
station connected = 0
station connected = 0
… Kommentar: WLAN24 oder W..5 eingekoppelt
station connected = 1
je nachdem, über welche WLAN-Instanz ich den PC eingewählt hatte.
Das gleiche Ergebnis auch bei dem Test:
ESPBoard#01 mit "WLAN-Server-schaltet-2LEDs" und ESPBoard#2 mit dem "setting up soft-AP"-tester. Gleicher Wechsel von 0 auf 1, sobald das WLAN "NodeKLM" übers Smartphone aktiviert wurde.
Gleichzeitig ist(war) dies für mich die Feststellung, dass beide ESP-Boards einwandfrei arbeiten. Hatte ich übrigens gestern auch noch gemacht. (Diese ganze Versuchsgeschichte ist s..mässig aufwendig, wenn mans halbwegs ordentlich macht - na ja.)
jcrypter
01.08.2023, 13:14
Moin,
ich bin jetzt unsicher wie der Stand ist.
Du konntest beide Module in Betrieb nehmen, beide können sich ins WLAN einwählen.
Der nächste Schritt ist jetzt das Erzeugen eines eigenen WLAN durch ein Modul und das Einwählen in dieses Netz durch das Zweite?
Also die beiden Quelltexte die Du mit farbigen Anmerkungen vor einer Weile gespostet hast?
Ist das so richtig?
Crypi
oberallgeier
01.08.2023, 17:40
.. wie der Stand ist ..Vielleicht eine Erkenntnis. Stand - hmmm - blöd ausgedruckt - kein Stand (Ruhe) sondern "alles fließt". Aber der Reihe nach.
In den Eigenschaften des WLANs "NodeKLM" hatte ich zuletzt ausgelesen die IP: 192.168.1.92.
Da wurde also der Server (hier "FLAG" auf Platine #01) auf die ip 192.168.1.92 gestellt, geflasht und am Terminal getestet; bleibt "am Strom". Ok. Dann den Client ("Pbox", Platine #02) ebenfalls auf 192.168.1.92, geflasht und am Terminal getestet; bleibt "am Strom".
Nun die frische NodeMCU-Platine hervorgeholt (liegt ja seit Tagen rum). Den "setting up soft-AP"-tester einprogrammert und angeworfen. Und - siehe da - der "soft-AP"-tester" zeigt ne Reihe "station connected = 0", dann ein paar "station connected = 1", danach wieder "station connected = 0". Heißt: der Client hatte den Server angesprochen - wurde verstanden und ging - programmgemäß schnell in den Tiefschlaf. Das Terminal der ESP-Pbox zeigte zwei gleiche Adressen, aber trotzdem (s)ein "connect fail". Na ja, immerhin war ja ein "connected" feststellbar gewesen.
Klingt schon halbwegs gut. In der WLAN-Liste am PC die Eigenschaften des WLANs NodeKLM anhand der Windows-Liste des PC ausgelesen - wen wunderts - IP = 192.168.1.92.
Zur Belohnung und Entspannung ab in die Kletterhalle.
Danach die Platinen wie eben oben bestromt und den "setting up soft-AP"-tester angeworfen. Nur "station connected = 0", Abbruch nach ner Minute oder länger. Wegen (m)eines schon länger bestehenden Verdachtes mal die IP des NodeKLM ausgelesen. Alles klar - IP = 192.168.4.1.
Daraus mein aktueller Schluss "alles fließt" - sprich: ich kann keine feste IP in den ESP rüberbringen. Ich wüsste auch nicht wie das g eht. Aber der Test von heute vormittgs, oben beschrieben, zeigt, dass bei gleicher/verlässlicher IP ein Kontakt möglich ist. Nur - wie fixiere ich die IP? Mal später nachsehen obs dafür ne Lösung gibt. Evtl. ist der softAP des Rätsels Lösung. Aber jetzt ist wieder mal ein paar Tage Pause fällig.
PS: Möglicherweise liegt das Problem auch in der Geschichte AP oder softAP. Denn mit den beiden Programmzeilen "blau" und "rot" - oben (https://www.roboternetz.de/community/threads/78304-ESP8266-arduinoIDE-etliche-Probleme?p=669166&viewfull=1#post669166), funktioniert nur die rote Variante. Nur die rote (WiFi.softAP...) zeigt auch eine WLAN-Instanz in der Wlanliste des PC. Die blaue (WiFi.begin...) erstellt mir - laut der genannten Liste - keine sichtbare WLAN-Verbindung :-/// .
oberallgeier
06.08.2023, 15:23
Hallo Mitleser,
nochmal kurz die Aufgabe: 2 Module, ein Empfänger- und Anzeigemodul "Flag" und ein Überwachungsmodul "Pbox", beide als ESP8266MOD 12-F. Zur Information die aktellen Codes; es sind etliche LED-Aktionen und Textzeilen zum Debuggen eingefügt. Die Funktion wurde meist ohne diese "Debug"-Einfügungen getestet, funktionierte gleich bis auf immer wieder gleiche, meist aber geänderte ip´s. Diese meist sehr zufälligen, von mir nicht beeinflussbaren ip-Änderungen sind mein eigentliches Problem. Bisher :-/ Vielleicht kann/will jemand helfen? Danke im Voraus.
Anmerkung: die drei Platinen wurden testweise auch mal getauscht, um ihre vollständige Funktionalität sicher zu stellen.
Einschub CODEs
// Programm Flag-ESP aus "ESP8266 Das Projektbuch", Seiten 27ff ... korr 08072023
// Beginn: bearbeitet am 20.07.2023 00:44 => hh:mm Boardeinstellg >>FLAG<< auf Board #01
// . . . . . . .
//Aktuell bearbeitet 02 08 23 0944 GENAU abstimmen mit Projektbuch, ABER eigene Fix-Daten
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Servo.h>
#define LED 2 // LED16=D0; LED wird mit "low" eingeschaltet, "high" => aus
// LED2 =!D4 (int. LED)
const char* ssid = "NodeKTM"; // Empfänger ist hier FLAG ! ! <<< Aufrufer = Postbox ! !
const char* password = "12345678"; //Enter Password here
IPAddress ip (192,168, 1, 92);
IPAddress local_ip (192,168, 1, 92);
IPAddress gateway (192,168, 1, 1);
IPAddress subnet (255,255,255, 0);
Servo myservo;
String inString;
ESP8266WebServer server(80);
// --------------------------
void handleRoot()
{
server.send(200, "text/plain", "ESP Flag Server");
Serial.println("\r\nhandleRoot on"); // ###> 1 Zeile Einfügung
}
// --------------------------
void handleFlag()
{
server.send(200, "text/plain", "Flag is up");
// 1 Zeile Einfügung zur besseren Veständlichkeit
Serial.println("\r\nhandleFlag on"); // ###> 1 Zeile Einfügung
delay(1500);
}
// ---------------------------------------------------------------------------------------------------------
void setup() // ssid = "FLAG";
{ // Sequenz setup Start
Serial.begin(115200);
delay( 2000);
Serial.println("\r\n"); // Start mit neuer Zeile
// -------------------------------------------------------
// -------------------------- #01 Beginn zu LED, LED IST aus
pinMode(LED, OUTPUT); // Port Ausgang D0 schalten
digitalWrite(LED, HIGH); // LED ein LED (1) LED I EIN IIIIIII das erste Mal
delay( 1000);
// -------------------------- #01 Ende zu LED, LED IST an
// -------------------------- #02 Beginn zu LED, LED IST an
digitalWrite(LED, LOW ); // LED aus LED (0) LED A U S 00000000 das erste Mal
// -------------------------- #02 Ende zu LED, LED geht aus
// -------------------------------------------------------
delay( 2000); // Verzögerungszeit zur sicheren Ausgabe von seriell
//### Zusatz - für Debug-/Informations-/Orientierungszwecke
Serial.println("FLAG.xxx11, #03, NodeKTM, 1++8 .1.92, 0508 17h08,"); // Quelle Code und Board-Nr
// 11h17: Zeile ?79? : myservo.write(0); zugefügt
// Serial.println("\r\n") ;
// -------------------------- Beginn "alter" WiFi-Beginn aus "..Projektbuch.."
// WiFi.begin(ssid, password); // im Original(-buch) steht "pass" statt password
// WiFi.config(ip, gateway, subnet);
// -------------------------- Ende "alter" WiFi-Beginn
// -------------------------- Beginn "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
WiFi.softAP(ssid, password);
WiFi.softAPConfig(local_ip, gateway, subnet);
// -------------------------- Ende "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
// -------------------------- #03 Beginn zu LED, LED ist aus
digitalWrite(LED, HIGH ); // LED an LED (1) LED I EIN IIIIIII das zweite Mal
// -------------------------- #03 Ende zu LED, LED geht an
delay( 1000); // Verzögerungszeit zur sicheren Ausgabe
while (WiFi.status() != WL_CONNECTED) //#### "FLAG"=Anzeige
{
delay( 500);
Serial.print(".");
} //
// -------------------------- #04 Beginn zu LED, LED ist an
digitalWrite(LED, LOW ); // LED aus LED (0) LED A U S 00000000 das zweite Mal
// -------------------------- #04 Ende zu LED, LED geht aus
//### Serial.println("") ;
// >>>> Übernahme aus Simpl-..Srv.. ------------// first line of the code snippet below, for
// example, indicates that when a server receives an HTTP request on the root (/) path, it will
// call the handle_OnConnect() function. Important to note that the URL specified is a relative path.
// server.on("/", handle_OnConnect);
// Serial.println("") ;
// Serial.print("Datei xxxx1.ino für FLAG. ");
// --------------------------
Serial.print("Verbunden mit ");
Serial.println(ssid);
Serial.print("localIP address: ");
Serial.println(WiFi.localIP()) ;
myservo.attach(13); // Syntax servo.attach :
//- myservo.write(0); // servo.attach(pin); oder servo.attach(pin, min, max)
delay(1500); // servo.attach(pin, min, max) mindefault 544, max 2400
// myservo.write(0);
//- myservo.detach();
server.on("/",handleRoot) ;
server.on("/flag/", handleFlag);
// >>>> Übernahme aus Simpl-..Srv..
// ..if the client requests a URL that isn’t specified with
// server.on(). It should give a 404 error (Page Not Found)
// as a response
// server.onNotFound(handle_NotFound);
// -------------------------- #05 Beginn zu LED, LED ist aus
digitalWrite(LED, HIGH); // LED ein LED D4 (1) LED ein, das dritte Mal
// -------------------------- #05 Ende zu LED, LED ist an
delay(1500); // servo.attach(pin, min, max) mindefault 544, max 2400
// -------------------------- #06 Beginn zu LED
digitalWrite(LED, LOW ); // LED aus LED D4 (0) LED aus, das dritte Mal
delay(1500); // servo.attach(pin, min, max) mindefault 544, max 2400
// -------------------------- #06 Ende zu LED
server.begin();
Serial.println("HTTP server started");
} // Sequenz setup Ende
void loop(void)
{
server.handleClient();
/* -------------------------- #05 Beginn zu LED
digitalWrite(LED, HIGH); // LED ein LED D4 (1)
delay( 50); //
// -------------------------- #05 Ende zu LED
// -------------------------- #06 Beginn zu LED
digitalWrite(LED, LOW ); // LED aus LED D4 (0)
delay( 1000); //
// -------------------------- #06 Ende zu LED
*/
}
// E N D E des originalen Codes
// --------------------------
// --------------------------
// void handle_OnConnect()
// {
// Serial.println("handle OnConnect");
// }
// void handle_NotFound()
// {
// server.send(404, "text/plain", "Not found");
// }
// --------------------------
// --------------------------
// Programm Postbox-ESP aus "ESP8266 Das Projektbuch", Seiten 35ff ... korr 08072023
/* bearbeitet am 20.07.2023 23:46 => hh:mm setup mit delay(1500) vor+nach Serial.println
. . . . P B O X
aktuell bearbeitet 05 08 2023 17h43
/ / / / */
#include <ESP8266WiFi.h>
const char* ssid = "NodeKTM"; // Dies hier ist Postbox (Empfänger ist FLAG/2)
const char* pass = "12345678"; //
const char* serverIp = "192,168,1,92"; // Adresse aktuell 01 08 2023 17h54
// -------------------------- ------------------------
int serverPort = 80;
WiFiClient client;
// --------------------------
void setup()
{
Serial.begin(115200);
delay( 2000);
Serial.println(""); // Anmelde"text"; (Pbox #02,) nur Zeilenvorschub
Serial.println("Pbox-xxx12, #02, NodeKTM, 1++8, .1.92, 0508-17h42"); // Anmelde"text"; Pbox #02, Zeilenvorschub
WiFi.begin (ssid, pass); //
while (WiFi.status() != WL_CONNECTED)
{
delay( 500);
Serial.print(".");
}
delay( 1000);
Serial.println("");
Serial.println("Pbox-xxx12, #02, NodeKTM, 1++8, .1.92, 0508-17h42");
Serial.print("\r\nverbunden mit : ");
Serial.print(ssid);
Serial.print("\r\nIP address/WiFi.localIP() : ");
Serial.println(WiFi.localIP());
// >>>>>>>>< neu
Serial.print("serverIp ist :"); Serial.print(serverIp);Serial.println("");
if ( !client.connect(serverIp, serverPort) )
{
Serial.println("connect fail");
}
client.print("GET /flag/");
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverIp);
client.println("Connection: close");
client.println();
client.stop();
delay(1500); //
ESP.deepSleep(0);
}
void loop() { }
// softIPtst.ino
#include <ESP8266WiFi.h>
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void setup()
{
Serial.begin(115200);
delay( 1000);
Serial.println(""); Serial.println(""); Serial.println("- - - -");
delay( 1000);
Serial.println("setting up softAPtst; n01 05082023 16h40");
Serial.println("AP testen: NodeKTM, 12345678");
boolean result = WiFi.softAP("NodeKTM", "12345678");
delay( 2000);
if (result = true)
{
Serial.println("ready! Step: '1' ca 2sec");
}
else
{
Serial.println("failed!");
}
}
// - - - - - - - - - - - - - - - - - -
void loop()
{
Serial.printf("station connected = %d\n", WiFi.softAPgetStationNum());
/* if ( !WiFi.softAPgetStationNum() )
digitalWrite(LED, LOW); // LED ein
if ( WiFi.softAPgetStationNum() )
{
digitalWrite(LED, HIGH ); // LED aus
delay( 200);
}
else { delay( 200); }
delay( 800);
digitalWrite(LED, HIGH ); // LED aus */
delay( 1000);
// Serial.println();
}
Platine/Programm Flag startet einen WLAN-AP, "NodeKTM", "ip(192,168,1,92)" - und horcht auf ein Signa (alternativ mal testweise vor allem anderen die softAP - erfolglos)l. Nach dem Start geht er in eine while-Schleife
........while (WiFi.status() != WL_CONNECTED)
und sendet ohne "CONNECTED" dauernd einen Punkt auf die serielle Schnittstelle. Mit dem Zeitpunkt "CONNECTED" soll die Schleife verlassen werden in die eigentliche "loop"-Routine mit
........server.handleClient();
Aktuell (ohne softAPtst) gibts nur eine endlose Ausgabe (USB-seriell) von Punkten. Die WLAN-Liste am Win10-PC zeigt die SSID (NodeKTM) mit - zum Zeitpunkt dieses Berichtes - IPv4 192.168.1.93 und IPv4-DNS-Server 192.168.1.92 (gelegentlich auch 192.168.4.2/192.168.4.1 oder siehe Bild unten auch mal ne 169.254.134.222 !!!).
Pbox startet (jetzt) ebenfalls einen WLAN-AP mit gleichen Parametern: SSID, ip, Passwort etc., fragt wie oben:
........while (WiFi.status() != WL_CONNECTED)
und sendet ohne "CONNECTED" dauernd einen Punkt auf die serielle Schnittstelle. Mit dem Zeitpunkt "CONNECTED" soll Verbindung genannt werden und der Controller in Tiefschlaf gehen. Die loop-Schleife bleibt leer.
Bei einem Power-on/off bzw. dem funktionsbedingten Pinnsignal erfolgt der RESET.
Die letzten Experimente brachten keine Verbindung nach der eben beschriebenen Vorgehensweise. Es sei denn . . . .
Die Platine NodeMCU-ESP8266MOD 12-F enthält das Programm "softPStst". Sie fragt
........boolean result = WiFi.softAP("NodeKTM", "12345678");
auf dem WLAN "NoteKTM" ab und meldet die Anzahl der erkannten aktiven Stationen.
Beim aktuellen Testbetrieb - eben, noch OHNE die beiden Platinen/Programme "FLAG" und "Pbox" wurde WLAN erstellt mit IPv4 192.168.4.2 und IPv4-DNS-Server 192.168.4.1.
Werden die beiden Platinen/Programme "FLAG" und "Pbox" zuerst eingeschaltet werden andere oder gleiche IPs erstellt; fast durchwegs andere. Werden "FLAG" und "Pbox" vor der "softPStst" bestromt (dabei zeigen sie die "."Punktfolge im Dauerstrom) schaltet nach rund fünf bis sechs Sekunden nach Bestromen der "softPStst" die "Pbox" aus der Punktesenderei weiter.
........Bild Text Pbox (https://dl.dropbox.com/s/k5p0pldk2ijk21s/Terminal_Pbox_0608%2023%2011h32.JPG?dl=0)
Dabei trifft Pbox diese falschen IPs nicht, soweit ich die zufälligerweise gleichen IPs feststellte, war die Pbox aber auch bei gemeinsamer IP nicht über "Connection: close" bis zum "deepSleep" durchgekommen.
Ich finde keine weitere Möglichkeit das Ganze zu richten. Die Version über Mail oder Messenger (hatte Andree-HB ja Ende 20222 beschrieben) wollte ich eigentlich nicht nehmen - niemand in der Familie hat nen Messenger laufen ...
PS: Bilder aus diesem Thread vor diesem Posting werden demnächst gelöscht.
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:
// 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:
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?
oberallgeier
08.08.2023, 14:05
.. 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
oberallgeier
10.08.2023, 10:24
.. 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 (https://dl.dropbox.com/scl/fi/6fh5zayk6o524ju5ihg84/Terminal-5-softAP-100823-10h12.JPG?rlkey=smmzg9cxijabkapvi1zham1qx&dl=0) 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.
oberallgeier
10.08.2023, 16:39
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.
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.
jcrypter
11.08.2023, 08:05
Also funktioniert es jetzt?
Crypi
oberallgeier
11.08.2023, 13:26
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).
- - - -
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
jcrypter
11.08.2023, 13:46
Super!
Das freut mich sehr.
Viel Erfolg wenn es jetzt an das geht worum es eigentlich gehen sollte.
Crypi
oberallgeier
15.08.2023, 18:17
.. 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
// 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
// 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
// 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.
oberallgeier
29.08.2023, 11:09
.. 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.
// 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.
oberallgeier
30.08.2023, 09:48
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?
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...
oberallgeier
30.08.2023, 17:01
.. 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 (https://dl.dropbox.com/scl/fi/5n3odlugu9yjljl0g1wxf/FLG3776-75-mod.JPG?rlkey=gx4rsonjf7wt6t2pv1xrplnpu&dl=0) 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).
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?
oberallgeier
05.09.2023, 23:45
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 (https://dl.dropbox.com/scl/fi/5fx5w2birvbmbk6f3ruq7/ESP8266-D1Mini-Platine-Dx-GPIO.JPG?rlkey=lcce7bn1jg16ctr4c25avvrdy&dl=0) (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.
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 :-)
oberallgeier
10.09.2023, 16:13
.. Steht Dein briefkasten voll im schatten ..Eigentlich schon. Hier ist ein hübsches Vordach vor der Eingangstüre, davor ein paar Treppen (ist ja im Prinzip ne gaaanz leichte Hanglage die nach genau Westen abfällt). Das Vordach ist bei Regen und im Winter unbezahlbar - man kann bei fast jeder Wetterkapriole trocken in die Garage . . . die keinen direkten Zugang ins Hausinnere hat. Unter diesem Vordach ist der Briefkasten in die Wand bündig eingelassen. Soweit ich es sehe steht die Sonne allenfalls zu einigen Herbst- und Frühjahrstagen am späten Nachmittag so, dass dieser Wandabschnitt kurz in der Sonne steht. Klar - könnte man irgendeine Leitung legen . . . Aber das ginge mir gegen den Strich, weil ich diese völlige Abkopplung der (ESP-)Briefkastenstation so schick finde.
oberallgeier
24.09.2023, 17:06
Ein Update - sozusagen. Einerseits hat der ESP8266 recht viel Flasspeicher, aber andererseits könnte ein Programm auch mal knapp und funktionell geschrieben werden, minimalistisch und trotzdem funktionell. ZB. mal die Textausgaben der Entwicklungsversion weglassen und so - wenns sicher läuft ... Daher hier statt der 44 (reinen) Codezeilen vom 15.08.2023, 17:17 nur noch kümmerliche 13 Zeilen. Denn beispielsweise: "ESP.deepSleep(0);" bedeutet ja sozusagen "alles aus".
// Programm Postbox-ESP aus "ESP8266 Das Projektbuch", Seiten 35ff ... korr 08072023
/* . . . . P B O X
bearbeitet 20.07.2023 23:46 => hh:mm setup mit delay(1500) vor+nach Serial.println
bearbeitet 27 07 2023 11:04 Code für Pbox aus "..Projektbuch.." übernommen/kontrolliert
27 07 2023 11h30 >> geändert nur ssid > "NodeKTM" und pass > "12345678"
. . . . . .
bearbeitet 12 09 2023 17h02 Pbox12 gekürzt - alle delays etc, keine Ausgaben ! !
bearbeitet 12 09 2023 19h20 WiFi.begin ist der erste Befehl ! ! !
aktuell bearbeitet 16 09 2023 19h12 reference zu 'loop' muss sein. Weniger geht kaum?
- - - - - - - - - - - - - - - - - - - - - - - - */
#include <ESP8266WiFi.h>
#define LED LED_BUILTIN // D4 = LED_BUILTIN = GPIO2 (TxD1)
const char* ssid = "NodeKTM"; // Dies hier ist Postbox Empfänger ist FLAG
const char* pass = "1234567890"; //
// - - - - - - - - - - - - -
void setup()
{
WiFi.begin ( ssid, pass ); // Aus Laufzeitgründen ist hier der erste Befehl ! ! !
pinMode ( LED, OUTPUT ); // Port als Ausgang schalten
digitalWrite ( LED, LOW ); // LEDbuiltin EINschalten () => Signal "Einschalten erkannt"
delay ( 5000 ); //
ESP.deepSleep( 0 ); // Danach ==>> tut sich nix mehr, !auch LED geht off
}
// - - - - - - - - - - - - - 13 zu 44
void loop() { } // reference to `loop' muss sein
// E N D E Code ------------------------------------------------------------------------x
Und jetzt mal eine Frage:
Kennt ihr das Problem, dass ne Haushaltswaschmaschine z.B. im Keller steht, jedenfalls deutlich abseits des Wohnbereiches? Da will man (na ja, meist ists frau) doch gern merken, ob die Wäsche fertig ist, ob die Maschine ihren Job gemacht hat. Hmmmmm - Maschine aufschrauben und per gelötetem Anschluss die "OFF"-LED anzapfen? Würd ich nicht tun. Aber vielleicht nen LDR als Sensor vor die "OFF"-LED klemmen/kleben/pappen/irgendwiedranmachen . . . und ne entsprechende Schaltung zur ESP-Postkasten-Platine? Das Ganze in ne wasserdichte (IP44?? oder so) Schachtel mit Akku - - und . . . Ich weiß aber nicht, wieviele Etagen so ein neuerer Bau vom ESP bewältigt wird. Das scheint mir aber ein sinnvolleres Gimmick zu sein als ein Briefkastenwächter.
Was haltet ihr davon?
Rabenauge
24.09.2023, 19:19
Wieso nimmst du für das Waschmaschinen-Problem nicht nen eigenen ESP?
Ich meine, ehe du da mit Kabelgedöns anfängst...?
Ich benutze gerne die kleinen Wemos D1 Mini für die unmöglichsten Spielereien (Hotspot mit CP mitten im Wald, verschiedene Sensorik daheim...eben wirklich jeden Kram), weil die kaum was kosten (<5€/Stück).
Wenn du das richtig schick machen willst, setz dir nen MQTT-Broker auf irgendeinem deiner Rechner auf (schon ein Raspi kann das, ohne dass man es an der Performance irgendwie merkt, im Hintergrund), und lass die Clients darüber laufen.
Dann kannst du dir beliebige Möglichkeiten bauen, das Ganze auszugeben, selbst ne Handy-App wäre denkbar.
Man kann sich aber z.B. auch nen Hintergrunddienst für den Laptop schreiben, sich ein Info-Terminal an die Wand hängen oder so..eben _was man will_.
Durch den MQTT-Broker ist das Ganze nach und nach beliebig ausbaubar.
oberallgeier
24.09.2023, 19:59
Wieso nimmst du für das Waschmaschinen-Problem nicht nen eigenen ESP .. Durch den MQTT-Broker ist das Ganze nach und nach beliebig ausbaubar.Danke Sly für die Hinweise. Für die Waschmaschinenfrage hatte ich schon an einen eigenen ESP gedacht (sind ja wirklich s..billig).
MQTT sagte mir bisher nichts - muss ich mal nachsehen - sicher ein hübscher (Denk-)Anstoss.
021aet04
25.09.2023, 10:07
Für die Fertigmeldung könntest du einen Stromsensor verwenden. Einfach in die Zuleitung und den Strom kontrollieren. Wenn die Waschmaschine fertig ist müsste der Verbrauch runter gehen.
oberallgeier
26.09.2023, 09:16
Für die Fertigmeldung .. einen Stromsensor verwenden ..Danke, das klingt ja nach ner sehr praktischen Idee!
.. in die Zuleitung und den Strom kontrollieren ..Bisher habe ich nur Schwachstrom gemessen (Klein(st)motoren und Servos von unter TTL-Bereich bis rund 15V, <5A). Na ja, ne Stromzange kenne ich vom "hörensagen", Anschlüsse kenn ich von meinen Multimetern - aber Netzspannung ist etwas das ich doch meide. Da muss ich mich mal sachkundig machen.
021aet04
26.09.2023, 10:18
Als Stromsensor geht am einfachsten soetwas.
https://www.pollin.at/p/aktiver-stromsensor-vacuumschmelze-t60404-n4646-x66282-15-a-5-v-180070
Bei passiven Stromwandler braucht man einen Bürdewiderstand. Du musst auch auf den Nennstrom achten. Der im Link hat 15A Nennstrom (alle 3 Leiter parallel).
Es gibt auch welche, die haben nur eine Öffnung, da muss man einfach einen Leiter durchführen.
MFG Hannes
aber solche dinge gehen doch nur wenn man mindestens die stromzuleitung aufschneidet oder die waschmaschine aufschraubt...
ich würde nach anderen möglichkeiten suchen...
Rabenauge
26.09.2023, 19:50
Mikrofon?
Wenn X Minuten Ruhe ist im Keller, dürfte die Maschine fertig sein.
021aet04
27.09.2023, 06:03
Aufschneiden oder auftrennen muss man nichts.
Es gibt mehrere Möglichkeiten.
1) https://www.conrad.at/de/p/strapubox-sg-1022-stecker-gehaeuse-121-x-66-x-55-kunststoff-schwarz-1-st-520345.html?gclid=CjwKCAjwgsqoBhBNEiwAwe5w0yO2g-rtPHOX4nSGcudN6tXSx6ApzHyuHIGy04CEmKRb1jYI5OSbkBoC NlkQAvD_BwE&utm_source=google&utm_medium=organic&utm_campaign=shopping&ef_id=CjwKCAjwgsqoBhBNEiwAwe5w0yO2g-rtPHOX4nSGcudN6tXSx6ApzHyuHIGy04CEmKRb1jYI5OSbkBoC NlkQAvD_BwE:G:s
In so einem Gehäuse gibt man den Sensor. Somit kommt das direkt in die Zuleitung.
2) Man nimmt eine kurze Verlängerung. Entfernt ein Stück der Isolation und führt den Leiter durch den Sensor.
Es gibt mehrere Möglichkeiten, aber am Handy zu schreiben ist etwas schwierig, könnte Zuhause schauen.
Es gibt auch klappbare Stromsensoren.
MFG Hannes
1) https://www.conrad.at/de/p/strapubox-sg-1022-stecker-gehaeuse-121-x-66-x-55-kunststoff-schwarz-1-st-520345.html?gclid=CjwKCAjwgsqoBhBNEiwAwe5w0yO2g-rtPHOX4nSGcudN6tXSx6ApzHyuHIGy04CEmKRb1jYI5OSbkBoC NlkQAvD_BwE&utm_source=google&utm_medium=organic&utm_campaign=shopping&ef_id=CjwKCAjwgsqoBhBNEiwAwe5w0yO2g-rtPHOX4nSGcudN6tXSx6ApzHyuHIGy04CEmKRb1jYI5OSbkBoC NlkQAvD_BwE:G:s
In so einem Gehäuse gibt man den Sensor. Somit kommt das direkt in die Zuleitung.
super idee!
und in so ein gehäuse liesse sich ja einiges mehr einbauen...
oberallgeier
27.09.2023, 11:56
Für die Fertigmeldung könntest du einen Stromsensor verwenden .. Wenn die Waschmaschine fertig ist müsste der Verbrauch runter gehen.Wie ich schon schrieb, das klingt ja nach ner sehr praktischen Idee!
Blöd halt, dass ich längere Zeit ne Entwicklungsabteilung hatte - und Betriebszustände "gut", "schlecht" oder "fail" meist nur dann glaubte, wenn ich sie möglichst genau kannte. Hilft Trabbel zu vermeiden und auch "unauffindbare" Fehler zu finden *gg*. (Beispiel: teils extrem wichtig sich um vorgelagerte Betriebzustande und ihre zeitlichen Schwankungen genau zu informieren wenn man für den Prozess ne Maschine entwickelt oder verkauft).
Also - Verbrauchsmesser in die Steckdose und mal geguckt. "Alles aus" zeigte tatsächlich 0 mA. Maschine an => Anzeige : 44 mA. Variierte auch nicht beim Einstellen unterschiedlicher Programme. Schon wieder blöd: ich weiß, dass diese Maschine mitunter Ruhephasen hat. Beispiel: öfters, meist nach dem Schleudern und anschließendem Hin- und Herdrehen der Trommel zum wieder Auflockern der Wäsche steht "alles" still, nur die Anzeige ist an - klar. Auch in Phasen zwischen Schleudergängen unterschiedlicher Richtung wird wohl die Steuerung nur nen Timer am Laufen haben um das Auslaufen der Trommel abzuwarten (jaaajaaa - Annahme - aber ich kenne die Pausen). Fazit: beim Ablauf eines vollständigen Waschganges werden Pausen auftreten, in denen die aufgenommene Leistung nicht oder kaum vom Zustand "Maschine an ohne Funktion" unterscheidbar ist.
Wirklich schade - die Idee ist ja gut. Danke dafür und danke für den Hinweis auf das schicke Gehäuse.
Mikrofon?
Wenn X Minuten Ruhe ist im Keller, dürfte die Maschine fertig sein.Whow ! DAS ist ja wirklich praktisch erprobt (Wohnungstüre auf - in´n Keller gehorcht - und schon gewusst!). Und wenn der Nachbar wieder ein Ster Holz spaltet oder sägt - oder Rasen mäht - na ja, das hört man/frau ja selber. Ausserdem: kein Automat funzt immer störungsfrei.
jcrypter
27.09.2023, 12:42
Was sprach gegen deine ursprüngliche Idee des Lichtsensors vor der LED der Waschmaschine?
Crypi
Rabenauge
27.09.2023, 19:56
Alles lösbar: klar bleibt die Maschine zwischendurch mal stehen, meine aber schaltet sich irgendwann ganz ab.
Falls deine das nicht macht: wie lange steht sie denn (ohne fertig zu sein) maximal?
Kann man rauskriegen, denke ich...und eben erst _dann_ Alarm ausgeben, wenn diese Zeit überschritten wurde.
Mikrofone kann man auch "nach hinten" einigermassen abschirmen, so dass Fremdgeräusche erst gar nicht (oder sehr viel schwächer, was ja reicht) wahrgenommen werden. Manche Maschinen geben auch, wenn sie fertig sind, nen "Pieeeepppp" aus, den dürfte man auch recht einfach als solchen erkennen können.
Oder diese komischen Geräusche, die entstehen, wenn die Maschine versucht, die Trommel "öffnungsfreundlich" zu drehen (hat mein Toplader "brrrrrumm.......brrrrrrumm....brrrrrrumm..."- das macht er _nur_ zum Schluss).
Ich halte die Detektion der Stromaufnahme (Waschmaschine) auch für die sinnvollste Variante, besonders da dies auch ohne mechanische Anpassungen für nachfolgende Maschinen verwendet werden könnte, so man die Parameter variabel gestaltet oder entsprechende „Intelligenz“ integriert.
Es gibt nämlich doch mehr zu beachten, als man im ersten Moment vermutet. Schon ein aktiver Knitterschutz bewegt die Trommel periodisch weiter, hier wären also auch diese Zeitabstände zu beachten…
Allerdings ist dies auch alles lösbar, denn Laundrify (als ein Hersteller solcher Zwischenstecker) erkennt die Zustände weitestgehend selbst und man bekommt diese per Notifikation auf Handy/Watch. Auf Grund teilweise fehlenden WLAN, hatten Sie vor 2-3 Jahren auch NB-IoT in Arbeit, habe es aber dann nicht mehr verfolgt.
LED Überwachung ist sicher einfacher, aber je nach Maschinentyp schwerer übertragbar auf Folgegeräte und mit mechanischen Anpassungen verbunden.
würde da nicht schon ein smartplug über alexa steuer- und abfragbar reichen? Klar der bastelefekt und erfolg fehlt, aber...
oberallgeier
30.09.2023, 10:35
Was sprach gegen deine ursprüngliche Idee des Lichtsensors vor der LED der Waschmaschine?
CrypiEinmal meine Gewohnheit eine Idee ne Weile abzulegen und sie erst nach Tagen wieder rauszuholen.
Auf jeden Fall aber danke ich allen Mithelfern von denen gute und praktischen Ansätze dazu gekommen sind.
Die zeitliche Funktion (z.B. bei der Lärmfrage und andern) ist sowieso gegeben - da der "Wächter" viel Zeit im deep sleep verbringen wird/soll. Ne minütliche Aktualisierung wird völlig ausreichen - für welche Variane auch immer.
Eine schöne Idee ist ja die Detektion der Stromaufnahme über einen Zwischenstecker. Das wäre auch für manch andere Aufgabe zu gebrauchen. Und der Lärmwächter - aber holla!! Jedenfalls viele gute Ideen. Ne kleine ESP"pille" mit nem Li-Ion-Akku (14500 oder gar 10440) finde ich immer noch schick genug. Die Anbringung - - da fällt mir sicher was passables ein.
......https://cdn-reichelt.de/resize/150/150/web/artikel_ws/X200/SBC-ESP8266-12F-1.jpg?20210317
Mit nem Laboraufbau werd ich mal anfangen.
Dank an alle für die Mithilfe.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.