Der Haupttab (Esp8266 WebServer) und der Ordner (mit allen Tabs) müssen unbedingt den selben Namen haben.
Als Haupttab bezeichne ich den Tab der "setup()" und "loop()" enthält.
Esp8266 WebServer Tab
Der Webserver ist der erste Tab, auf dem sich alles aufbauen lässt.
Inklusive Arduino OTA um Updates online zum ESP8266 zu senden.
Mit dem Login Manager für deine ESP8266 Projekte brauchst du die Netzwerk-Zugangsdaten (SSID und Passwort)
nicht mehr fest codieren.
Eingabe der Zugangsdaten mittels Captive Portal. Es wird ein Access-Point mit dem Namen "EspConfig" erstellt.
Die Zugangsdaten werden nicht menschenlesbar im Dateisystem gespeichert.
Dies ist die Klassiche Version, bei jedem schalten wird die komplette Webseite neu gesendet.
Um die Webseite im Browsers aufzurufen gib die IP deines ESP gefolgt von "/led" ein. zB.:
"http://192.168.179.44/led"
Auf der Webseite werden automatisch die Bezeichnungen der Schaltflächen die du im Sketch unter "NAME[]" einträgst angezeigt.
Diese Namen werden nur beim ersten Aufruf der Webseite zum Browser gesendet und anschließend aus dem Local Storage gelesen.
Die Html Datei muss im Filesystem des Esp gespeichert werden.
Sollte die Anzahl der Ds18b20 Sensoren nicht mit der der Adressen übereinstimmen, wird Fehler angezeigt.
............................................
Esp8266 BME280 Tab
Die Klimadaten werden zur Anzeige auf der Webseite jede Sekunde aktuallisiert.
Die Messwerte werden mittels Javascript "Fetch.Api" zum Browser übertragen.
Es ist auch Möglich zwei Esp.. mit Bme280 Sensor auf einer Webseite darstellen.
Sollte der Bme280 Sensor nicht gefunden werden, wird Fehler angezeigt.
............................................
Esp8266 mit zwei BME280 Tab
Zwei BME280 mit der selben I2C Adresse lassen sich, dank "Pin mapping", mit dem Esp8266 auslesen.
Beide Sensoren werden jede Sekunde nacheinander abgefragt.
Entgegen allem was ich bis jetzt über den I2C Bus gelesen habe, hängt der Aussensensor erfolgreich an
einem 5 Meter langen Anschlußkabel.
Die Html Datei muss im Filesystem des Esp gespeichert werden.
............................................
Esp8266 Dual Relais Tab
2-Kanal Relais schalten ohne die Webseite zu erneuern. Dazu brauchst du kein JQuery oder Ajax.
Der Tab Dual Relais ist für LOW und HIGH aktive Relais, Solid State Relais oder Mosfet geeignet. Dies muss
vor dem Hochladen einmalig im Tab eingestellt werden.
Der Schaltzustand der Relais wird beim öffnen der Webseite eingelesen.
Der Buttontext und die Kontrolleuchten werden bei jedem Schalten aktualisiert.
Die Webseite inklusive animierte SVG-Grafik zur Anzeige der Helligkeit.
ESP8266 Filesystem Manager
LittleFS Upload Download Delete von Dateien mittels Browser.
Füge die "LittleFS.ino", vorzugsweise als Tab, zu deinem Webserver Sketch hinzu und rufe anschliesend
unter Angabe der IP deines Esp8266 die fs.html über die Adresszeile deines Browsers auf.
Sortierung der Dateien ist mittels Klick auf den Pfeil im untersten Listeneintrag
Neu!
ETag Unterstüzung: ab Core Version 2.7.0.
Beim Hovern mit der Maus über dem Datei Namen wird der Zeitpunkt der letzten Änderung eingeblendet.
Sortierung der Dateien nach Zeit der letzten Änderung.
............................................
ESP8266 Datei Manager
Spiffs sollte nicht mehr verwendet werden!
Spiffs Upload Download Delete von Dateien von einer HTML-Seite
Füge die "spiffs.ino", vorzugsweise als Tab, zu deinem Webserver Sketch hinzu und rufe anschliesend
unter Angabe der IP deines Esp8266 die spiffs.html über die Adresszeile deines Browsers auf.
Beispielsweise so "http://192.168.179.44/spiffs.html"
Wenn sich im Spiffs (Speicher) des Esp8266 noch keine "spiffs.html" befindet wird ein kleiner Helfer zu
deinen Browser gesendet mit dem du die "spiffs.html" und die "style.css" hochladen kannst.
Hast du die "spiffs.html" erfolgreich in den Speicher deines Esp8266 geladen siehst du die Esp8266 Datei
Verwaltung.
Jetzt kannst du loslegen. Upload Download Delete Html CSS usw. hochladen LOG Dateien
einsehen/runterladen.
Die Sortierung der Dateien ist mittels Klick auf den Pfeil im untersten Listeneintrag möglich.
Der Dateiname dient gleichzeitig als Link zur Seite bzw. zur Ansicht (Textdatei) im Browser.
Es ist nicht möglich Dateien hochzuladen, die größer sind als der noch verfügbare Speicher.
Eine gute Erklärung für die notwendige Begrenzung findest du auf
Ullis Roboter Seite.
Getestet von 1 MB bis 16 MB Flash. Getestet mit Nodmcu, Wemos D1 Mini Pro, Sonoff Switch, Sonoff Dual
SMTP2GO Free hat ein Limit von 25 E-Mails pro Stunde / 1.000 E-Mails pro Monat.
Deshalb die Funktion "sendmails();" niemals unlimitiert aufrufen.
Die Serverantwort von smtp2go.com, ob die Übertragung erfolgreich war, wird nicht blockierend
ausgewertet.
Bei Zeitüberschreitung wird eine Fehlermeldung gesendet.
............................................
Esp8266 UDP Unicast Tab
Senden und empfangen von Nachrichten per UDP.
Unicast ist der Informationsfluss zwischen nur zwei Netzteilnehmern.
Das Sonoff Dual mit zwei integrierten Relais benutze ich zum schalten meiner Aussenbeleuchtung.
Mit integrierten Betriebsstundenzähler seperat für jeden LED Fluter.
Sonoff flashen
Arduino IDE unter Werkzeuge einstellen.
Board: "Generic ESP8266 Module"
Flash Size: "(1M 128k SPIFFS)"
alle anderen beibehalten
Die erste Programmierung des Sonoff Dual erfolgt mittels eines USB to TTL Serial Adapter, der für 3.3V
geeignet ist.
Danach über Arduino OTA.
Der Wlan-Präsenzmelder kann bei Abwesenheit aller Personen als Anwesenheitssimulator mittels einer Lichtquelle verwendet werden.
Oder spezielle Funktionen der Heizung und/oder Lüftung bei Anwesenden Personen auslösen.
............................................
Esp8266 DHT22 Tab
Temperatur Luftfeuchte Taupunkt Hitzeindex
Die Klimadaten werden zur Anzeige auf der Webseite aller zwei Sekunden aktuallisiert.
Funktioniert erst ab Arduino Core Version 2.4.0 aufwärts.
Füge die "admin.ino", vorzugsweise als Tab, zu deinem Webserver Sketch hinzu und lade anschliesend
mit Hilfe der Esp8266 Dateiverwaltung die admin.html in das Filesystem.
Die Spiffs.ino ist zum ausführen der Admin.ino erforderlich.
Die "Admin.ino" funktioniert jetzt auch mit Linux. Danke an Gerhard für die freundliche Unterstüzung.
Zeitzone auswählen und durch einen Mausklick ausserhalb der Liste übernehmen.
Bitte beachte das die Sommerzeit für Asia/Tehran nicht angezeigt wird.
Wahrscheinlich werden die Julianischen Tagesnummern in dieser Zone nicht interpretiert.
Die Lokalzeit.ino ist für die Zeitschaltuhr erforderlich
Der Tab Zeitschaltuhrdual ist für LOW und HIGH aktive Relais, Solid State Relais oder Mosfet geeignet.
Dies muss vor dem Hochladen einmalig im Sketch, im Tab Zeitschaltuhr.ino, eingestellt werden. Es lassen sich
bis zu 8 Ein-/Aus-Programme pro Gerät einstellen.
Die Anzahl der Schaltprogramme muss im Sketch analog der Anzahl im Html Dokument eingestellt sein!
Die optische Schaltzustandsanzeige ist gleichzeitig der Button zum manuellen Ein-/Ausschalten der Ausgänge.
Die Html Datei muss im Filesystem des Esp gespeichert werden.
Das erfolgreiche speichern der Schaltzeiten auf dem Esp8266 Webserver wird im Webinterface angezeigt.
Ansicht Zeiteinstellung Mobil Device Android
............................................
Esp8266 Zeitschaltuhr Singel Tab
Die Anzahl der möglichen Schaltzeiten lässt sich zwischen 1 und 60 einstellen.
Der Lokalzeit Tab ist für die Zeitschaltuhr erforderlich.
Die Schaltzeiten werden im Spiffs des Esp8266 gespeichert. Auf der Webseite werden die aktuell eingestellten
Schaltzeiten angezeigt.
Windgeschwindigkeit- und Richtung mit Fifo Puffer für die Anzeige der maximalen und durchschnittlichen Geschwindigkeit der Stunde, des Tages und der Woche.
Der AHT10 ist ein digitaler Sensor zur Messung der Temperatur und Luftfeuchte. Er wird über den I2C-Bus angesprochen. Der Messbereich liegt zwischen -40°C bis +85°C und 0% bis 100%.
Ich werte die Daten zwischen den Kommas aus, die Kommas nehme ich zur Lokalisierung der benötigten Daten.
Vielen DAnk für Deine Hilfe!
Antwort:
Json Objekt, beginnt mit { und endet mit }. Es enthält eine durch Kommata geteilte, ungeordnete Liste von Eigenschaften.
Die Eigenschaften bestehen aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt (Schlüssel : Wert).
Im Sketch werden zusätzlich die für den Schlüssel erforderlichen Anführungszeichen maskiert.
Im Esp32 Admin Tab sieht man wie es ohne Maskierung geht.
Gruß Fips
mat-sche ✪ ✪ ✪ ❘ 18.04.2021
Hallo Fips,
danke für Deine Antwort.
inzwischen habe ich die betreffenden html Seiten neu im VSC erstellt und lassen sich hochladen.
Antwort:
Gut das es funktioniert, nur bleibt das Phänomen für immer verborgen!
Gruß Fips
mat-sche ✪ ✪ ✪ ❘ 18.04.2021
Hallo Fips,
Ich nutze Deinen Sketch zur Zeitschaltuhr und baue diesen mit eigenen Tab und Webseiten im SpiffS aus.
Meine Webseiten erstelle ich mit MS studio Code und habe jetzt seit kurzem ein Problem bestimmte Seiten hochzuladen.
Da ich noch blutiger Anfänger bin, ändere ich Daten in der html Seite und lade diese über ESP8266 Filesystem Manager auf den ESP. Die debug Funktion habe ich aktiviert und gibt mir folgendes aus
... Data: 2048
und dabei bleibt der Vorgang stehen.
Die Datei wird unvollständig übertragen und es fehlt die Hälfte der Daten. Die Datei wird im fs nur angezeigt, wenn ich eine "intakte Seite" hochlade.
Lade ich eine andere Datei hoch, erhalte ich die korrekt zu übertragenen Dateigröße.
Die Seite wird korrekt übertragen und befinden sich im spiffs.
Woran könnte das liegen?
Antwort:
Da mir besagte Datei nicht zur Verfügung steht kann ich es nicht testen.
Du könntest den Flash deines NodeMcu einmal komplett löschen.
Gruß Fips
Michael ✪ ✪ ✪ ❘ 15.04.2021
Ich habe den Access Point Tab zum Verbinden verwendet, aber Schwierigkeiten mit meinem Handy (Android 6.0.1) und der IP-Adresse 10.0.0.0
Mit 192.168.1.1 geht's wunderbar.
Gibt es da eine Erklärung?
Antwort:
Nein, anscheinend hat Android damit ein Problem.
Mit 10.0.0.1 als IP geht es auch mit Android.
Natürlich kannst du auch eine andere IP aus den Privaten Adressbereichen von IPv4 verwenden.
Gruß Fips
georg ✪ ✪ ✪ ❘ 12.04.2021
hallo Fips,
bei diesem:
Esp8266 Login Manager mit Captive Portal Tab
wird man nach der einmaligen übertragung der zugangsdaten zum heimischen netzwerk in diesem wlan immer automatisch angemeldet. Kann man es so einstellen, dass man sich wahlweise automatisch in zwei wlans anmeldet, da wo man gerade ist?
gruss georg
Antwort:
Nein, das kann der Tab nicht.
Gruß Fips
Alf R ✪ ✪ ✪ ❘ 09.04.2021
Hallo Fips,
mit dem "Esp8266 Login Manager mit Captive Portal Tab" habe ich ein Problem.
Wenn ich
- den connect- Tab einbinde, in setup() und loop() die Eintäge mache
- LittleFS einbinde
- LittleFS formatiere und die fs.html hochschiebe
stürzt mir der ESP in dem Moment ab, in dem ich mich mit dem Soft AP verbinde.
Wenn ich manuell die wifi.dat erstelle (mit den richtigen Daten), verbindet sich der ESP mit dem Netzwerk.
Wenn ich manuell die wifi.dat erstelle (mit dem falschen Paßwort oder der falschen ssid), stürzt der ESP wieder ab.
In keinem Fall kommt die HTML Maske zum eingeben der login-Daten ....
Antwort:
Wie du im Soft AP Modus eine "fs.html" hochladen kannst ist mir ein Rätsel, bei mir startet immer sofort das Captive Portal.
Der Esp stürtzt nicht ab, es wird momentan ein "ESP.restart()" durchgeführt wenn die Verbindung zum Router fehlschlägt.
Das Konzept bezüglich des "ESP.restart()" werde ich nochmals überdenken.
Lösche bitte vor erneuten Versuchen den Flash des Esp komplett.
Antwort:
Keine Ahnung wie da eine "95" rein kommt, es sind nur 16 Windrichtungen. Demzufolge kann "95" auch nicht angezeigt werden. Auch "44.0" ist zu hoch, das wäre ein Orkan.
Gruß Fips
Uwe Sauerbrey ✪ ✪ ✪ ❘ 14.03.2021
Hallo Fips
Ich versuche den Windmesser ans Laufen zu bringen. Soweit alles ok, aber mir fehlt der Richtungszeiger. Der wird einfach nicht angezeigt. Wie funktioniert das, per Javascript? Ist bei den genutzten Browser enabled. Gleiches Ergebnis bei Chrome, Firefox und Edge.
Hast du einen Tipp für mich.
Gruß Uwe
Vielen Dank für die vielen Anregungen
Antwort:
Alle Werte werden gleichzeitig mit JavaScript geholt, wieso dann nur der Pfeil für die Windrichtung fehlt kann ich nicht verstehen.
Eben nochmal mit Chrome und Firefox geprüft, funktioniert das bei mir.
Schau mal in die Browser Konsole ob das Json richtig ankommt.
Im Array 0 steht der Wert für die Windrichtung.
Gruß Fips
georg ❘ 26.02.2021
hallo Fips,
etwas fehlt mir noch zum verständnis: z.b. der dimmer, wenn ich zwei brauche um zwei vorgänge zu steuern, habe ich dann zwei html seiten (dimmer_rot/dimmer_gruen)? oder nur eine und zwei funktionen in der TAB (pwmLed_rot(); und pwmLed_gruen() oder beides? oder wie?
gruss georg
Antwort:
Ob man ein oder zwei Html Seiten bzw. Funktionen verwendet ist Geschmackssache!
Zweimal "server.on("/do", []() ..." geht aber nicht.
Du könntest einmal "server.on("/red", []() ..." und einmal "server.on("/green", []() ..." in einer Funktion verwenden.
Gruß Fips
georg ✪ ✪ ✪ ❘ 19.02.2021
hallo Fips,
habe jetzt alles mal auf "0" runtergefahren und neu aufgesetzt, jetzt funktionierts! Das problem bestand wohl auch darin, dass der upload mit der IDE funktion "ESP8266 sketch data upload" nicht funktioniert hat. Die hat die files zwar gefunden, aber nicht hochgeladen. Das geht immer noch nicht, wenn die dateien aber mit deinem filemanager hochgeladen werden läufts...
Danke noch einmal, einfach perfekt!
gruss georg
Antwort:
Danke für die Rückmeldung!
Nutze doch besser die Portable Arduino IDE, um das "neu aufsetzen" zu vermeiden!
ich habe ein Verständnisproblem wie Du den String
zusammensetzt.
Kannst Du mir bitte eine kurze erklärung geben, wie die einzelnen Zeichen/-Kombinationen zusammengehören.
Ich benötige einen String in der Form für die serielle Übertragung:
[&A/Wlan,sketchName(),__DATE__,WiFi.localIP().toString(),]
Ich werte die Daten zwischen den Kommas aus, die Kommas nehme ich zur Lokalisierung der benötigten Daten.
Vielen DAnk für Deine Hilfe!
Antwort:
Json Objekt, beginnt mit { und endet mit }. Es enthält eine durch Kommata geteilte, ungeordnete Liste von Eigenschaften.
Die Eigenschaften bestehen aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt (Schlüssel : Wert).
Im Sketch werden zusätzlich die für den Schlüssel erforderlichen Anführungszeichen maskiert.
Im Esp32 Admin Tab sieht man wie es ohne Maskierung geht.
Gruß Fips
danke für Deine Antwort.
inzwischen habe ich die betreffenden html Seiten neu im VSC erstellt und lassen sich hochladen.
Antwort:
Gut das es funktioniert, nur bleibt das Phänomen für immer verborgen!
Gruß Fips
Ich nutze Deinen Sketch zur Zeitschaltuhr und baue diesen mit eigenen Tab und Webseiten im SpiffS aus.
Meine Webseiten erstelle ich mit MS studio Code und habe jetzt seit kurzem ein Problem bestimmte Seiten hochzuladen.
Da ich noch blutiger Anfänger bin, ändere ich Daten in der html Seite und lade diese über ESP8266 Filesystem Manager auf den ESP. Die debug Funktion habe ich aktiviert und gibt mir folgendes aus
... Data: 2048
und dabei bleibt der Vorgang stehen.
Die Datei wird unvollständig übertragen und es fehlt die Hälfte der Daten. Die Datei wird im fs nur angezeigt, wenn ich eine "intakte Seite" hochlade.
Lade ich eine andere Datei hoch, erhalte ich die korrekt zu übertragenen Dateigröße.
Die Seite wird korrekt übertragen und befinden sich im spiffs.
Woran könnte das liegen?
Antwort:
Da mir besagte Datei nicht zur Verfügung steht kann ich es nicht testen.
Du könntest den Flash deines NodeMcu einmal komplett löschen.
Gruß Fips
Mit 192.168.1.1 geht's wunderbar.
Gibt es da eine Erklärung?
Antwort:
Nein, anscheinend hat Android damit ein Problem.
Mit 10.0.0.1 als IP geht es auch mit Android.
Natürlich kannst du auch eine andere IP aus den Privaten Adressbereichen von IPv4 verwenden.
Gruß Fips
bei diesem:
Esp8266 Login Manager mit Captive Portal Tab
wird man nach der einmaligen übertragung der zugangsdaten zum heimischen netzwerk in diesem wlan immer automatisch angemeldet. Kann man es so einstellen, dass man sich wahlweise automatisch in zwei wlans anmeldet, da wo man gerade ist?
gruss georg
Antwort:
Nein, das kann der Tab nicht.
Gruß Fips
mit dem "Esp8266 Login Manager mit Captive Portal Tab" habe ich ein Problem.
Wenn ich
- den connect- Tab einbinde, in setup() und loop() die Eintäge mache
- LittleFS einbinde
- LittleFS formatiere und die fs.html hochschiebe
stürzt mir der ESP in dem Moment ab, in dem ich mich mit dem Soft AP verbinde.
Wenn ich manuell die wifi.dat erstelle (mit den richtigen Daten), verbindet sich der ESP mit dem Netzwerk.
Wenn ich manuell die wifi.dat erstelle (mit dem falschen Paßwort oder der falschen ssid), stürzt der ESP wieder ab.
In keinem Fall kommt die HTML Maske zum eingeben der login-Daten ....
Antwort:
Wie du im Soft AP Modus eine "fs.html" hochladen kannst ist mir ein Rätsel, bei mir startet immer sofort das Captive Portal.
Der Esp stürtzt nicht ab, es wird momentan ein "ESP.restart()" durchgeführt wenn die Verbindung zum Router fehlschlägt.
Das Konzept bezüglich des "ESP.restart()" werde ich nochmals überdenken.
Lösche bitte vor erneuten Versuchen den Flash des Esp komplett.
Gruß Fips
JSON auf der Console sieht so aus:
0 "95"
1 "44.0"
2 "44.0"
3 "44.0"
4 "5.5"
5 "44.0"
6 "0.8"
7 "44.0"
Antwort:
Keine Ahnung wie da eine "95" rein kommt, es sind nur 16 Windrichtungen. Demzufolge kann "95" auch nicht angezeigt werden. Auch "44.0" ist zu hoch, das wäre ein Orkan.
Gruß Fips
Ich versuche den Windmesser ans Laufen zu bringen. Soweit alles ok, aber mir fehlt der Richtungszeiger. Der wird einfach nicht angezeigt. Wie funktioniert das, per Javascript? Ist bei den genutzten Browser enabled. Gleiches Ergebnis bei Chrome, Firefox und Edge.
Hast du einen Tipp für mich.
Gruß Uwe
Vielen Dank für die vielen Anregungen
Antwort:
Alle Werte werden gleichzeitig mit JavaScript geholt, wieso dann nur der Pfeil für die Windrichtung fehlt kann ich nicht verstehen.
Eben nochmal mit Chrome und Firefox geprüft, funktioniert das bei mir.
Schau mal in die Browser Konsole ob das Json richtig ankommt.
Im Array 0 steht der Wert für die Windrichtung.
Gruß Fips
etwas fehlt mir noch zum verständnis: z.b. der dimmer, wenn ich zwei brauche um zwei vorgänge zu steuern, habe ich dann zwei html seiten (dimmer_rot/dimmer_gruen)? oder nur eine und zwei funktionen in der TAB (pwmLed_rot(); und pwmLed_gruen() oder beides? oder wie?
gruss georg
Antwort:
Ob man ein oder zwei Html Seiten bzw. Funktionen verwendet ist Geschmackssache!
Zweimal "server.on("/do", []() ..." geht aber nicht.
Du könntest einmal "server.on("/red", []() ..." und einmal "server.on("/green", []() ..." in einer Funktion verwenden.
Gruß Fips
habe jetzt alles mal auf "0" runtergefahren und neu aufgesetzt, jetzt funktionierts! Das problem bestand wohl auch darin, dass der upload mit der IDE funktion "ESP8266 sketch data upload" nicht funktioniert hat. Die hat die files zwar gefunden, aber nicht hochgeladen. Das geht immer noch nicht, wenn die dateien aber mit deinem filemanager hochgeladen werden läufts...
Danke noch einmal, einfach perfekt!
gruss georg
Antwort:
Danke für die Rückmeldung!
Nutze doch besser die Portable Arduino IDE, um das "neu aufsetzen" zu vermeiden!
Gruß Fips