Forum: Mikrocontroller und Digitale Elektronik "Mini-Webserver" ESP8266/ArduinoIDE


von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

Im Anhang der noch etwas unvollständige Code meines Webservers für den 
ESP8266.

Hintergrund sind meine Experimente mit dem ESP8266.
Anregung war der
- HTTP 1.1 Webserver for ESP8266
- for ESP8266 adapted Arduino IDE
- Stefan Thesen 04/2015
und seine Hinweise zu HTML 1.1

Die ArduinoIDE hat da bei mir erstmal gewonnen gegen die 
Originalinstallation des SDK.

Warum Mini-Webserver? Es ist nur soviel Webserver, wie ich im Moment für 
meine Sachen brauche.

HTML 1.1 wird (hoffentlich) sauber erzeugt.
Die Webseiten liegen im SPIFFS des ESP und können somit mit einem 
beliebigen Editor erstellt werden.
Aufruf der IP ohne Seitenangabe zeigt die index.html an.
Aufruf mit Seitenangabe eben diese, wenn vorhanden, sonst gibt es einen 
404.

Erster Zweck war die Anzeige meiner schon einige Jahre existierenden 
Sensoren, dazu hängt am ESp ein RFM12 433MHz.
http://www.avr.roehres-home.de/sensoren/index.html

Zum Zugriff auf dem ESP:
es gibt 1 globales Arrays mit Textersetzungen innerhalb des HTML-Codes.
Platzhalter im HTML-Text ist ~a~ bis ~z~, der Array-Index ist 
entsprecehnd 0 ... 25.
Es können also maximal 26 Stellen ersetzt werden.
Bei mir sind das zur Zeit 16 Sensorwerte.
Das Array muß von den entsprechenden Routinen aktuell gehalten werden 
und wird beim Aufruf der Seite genutzt.

Weiter gibt es eine Struktur, die den Pfad enthält, der angefordert 
wurde und alle dekodierten Parameter des Aufrufs in 2 Array Indes und 
Value.

Weiter muß eine Funktion useraction() existieren, diese wird nach Füllen 
der Parameterstruktur aufgerufen und kann abhängig von der gewünschten 
Funktion eben z.B. PortPins setzen/lesen usw.
Innerhalb der Funktion kann dann das Replace-Array enzsprechend 
modifiziert werden, so das die Webseite dann auch die aktuellen Daten 
anzeigt.

Als Beispiel liegt die Seite text.html dabei, die Formularbeispiele sind 
direkt aus SelfHTML kopiert, ist zum Testen und Verstehen.

C ist nicht meine stärkste Seite, der Source ist also sicher eher 
durchwachsen. Einerseits sollte er stabil funktionieren, andererseits 
hat man auf dem ESP genug Reserve an Speicherplatz, Ram und 
Rechenleistung für sowas.

Das Beipiel läuft im Station-Mode, es muß also SSID und Passwort 
eingetragen werden. Dann Falschen und das Filesystem aufspielen.

Infos zum Filesystem:
http://esp8266.github.io/Arduino/versions/2.0.0/doc/filesystem.html#flash-layout

ArduinoIDE ist die 1.6.5,
ESP8266 die Version 2.1.0-rc1
Die Board-URL dazu
http://arduino.esp8266.com/staging/package_esp8266com_index.json
einfach in den Voreinstellungen eintragen und im Boardmanager 
installieren.

Es compiliert auch fehlerfrei unter der IDE 1.1.7 mit der ESp 2.2.0.
Bei mir läuft es auf einem SEP8266-12 mit 32MBit (4MB) Flash mit 1MB 
SPIFFS.
Auch ein ESP-01 mit 4MBit (512kB) Flash reicht noch, SPIFFS dann 64kB.
Es emphielt sich, den Upload-Speed auf 921600 zu stellen, sonst muß man 
beim Filesystem-Upöoad Geduld mitbringen.
Mit CH340 oder FTDI232 habe ich da keine Probleme.

Vielleicht kann ja jemand damit was anfangen oder hat Kritik, Hinweise 
oder Ideen.

Das Bild zeigt unten die Ausgabe des Webservers mit meinen Sensoren.
Das Tool zur Anzeige habe ich im Netz gefunden:
http://www.stefanbion.de/htmlwindow/index.htm

Im Browser ist die Seite test.html

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Marc (Gast)


Lesenswert?

Hallo;
"C ist nicht meine stärkste Seite, der Source ist also sicher eher
durchwachsen. "

Ich glaube nicht das das hier relevant ist ;-)

Viel wichtiger das du uns überhaupt an deinen Erfahrungen teilhaben 
läßt.

Wie du schreibst: Mindestens als Inspiration , danke sehr ;-))

Gruß

von Peter B. (funkheld)


Angehängte Dateien:

Lesenswert?

Hallo, guten Tag.

Welchen Einfluß hat bitte diese Warnung beim Ablauf des Programmes:

Gruss

von Jay (Gast)


Lesenswert?

Peter B. schrieb:
> Hallo, guten Tag.
>
> Welchen Einfluß hat bitte diese Warnung beim Ablauf des Programmes:
>
> Gruss

C Code als C++ compiliert?

von Ulrich F. (Gast)


Lesenswert?

Peter B. schrieb:
> Welchen Einfluß hat bitte diese Warnung beim Ablauf des Programmes:

Wenn man alle warnings in den Voreinstellungen der IDE aktiviert wirft 
es einige von der Sorte.
Bisher noch keine Probleme festgestellt.

von Peter B. (funkheld)


Lesenswert?

Mit der Arduino IDE 1.6.7 compiliert.

Gruss

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

erstmal Danke für die Reaktionen.

Die Warnung gibt die 1.6.5 bei mir aus, die 1.6.7 dagegen nicht.
Dafür moniert diese einen byte - char Typkonflikt, habe ich inzwischen 
behoben.
Ich habe da mal weiter gebaut und jetzt habe ich ein richtiges Problem:

Die angehängte Version ist mehr eine Debug-Version.
Dazugekommen sind die MIME-Typen für .ico, bin, jpg, .css und .js.
CSS und Javascript noch nicht getestet.
Im SPIFFS-Ordner sind Testdatein dazu.

Nun das Problem: mein Bekannter hat bei seinem Projekt festgestellt, daß 
sprintf und snprintf  Probleme mit der Erzeugung von Strings > ca. 3kB 
haben.
Der ESP crasht auf verschiedene Weise.

Ich habe nur die String Klasse benutzt, hatte aber auch zufällige 
Crashs, sowohl wdt als auch nur Stacktrace und Neustart.
Der ESP8266 reserviert lau Espressif-Forum 2x 2290Byte als Buffer.
Ich bin also an die Grenze gegangen und das scheint beim ESP8266-12 zu 
stimmen.
Für einen ESP8266-02 gehen nur ca. 1890Byte maximal, warum auch immer.

Das eigentliche Problem: ich ersetze ja etliches mit string.replace().
Das passt auch, Debug per serieller und Schreiben als Datei ins SPIFFS 
ergeben genau den erzeugten String.

Beim Senden mit client.print() fehlen hinter die letzten Zeichen, sie 
fehlen immer hinten, es sind verscheiden viele, je nach Ersetzungen.
Das fällt nicht unbedinbgt auf, der Firefox mault auch über kaputte 
<body><html> nicht, da hilft nur die Anzeige des Seitenquelltextes.

Das ergibt für mich keinen Sinn...

#FILE_DEBUG aktiviert im Moment die Ausgabe über die serielle und das 
Schreiben ins Filesystem. Die Datei kann man mit 
xxx.xxx.xxx.xxx/datei.bin runterladen.
Manchmal kommt man dazu nicht, da crasht der ESP mittendrin.
Das scheint aber ein zusätzliches Timingproblem mit der seriellen zu 
sein, mit 250000 klappt es fast immer.

mit /test.html?debug=xxx wird xxx zu Ersetzen genutzt, man kann also mit 
verschiedenen Längen experimentieren.

Bei /form.html sieht man es auch je nach gewählten Optionen.

Ich habe auch string.replace durche ine eigene Routine ersetzt, ist nur 
auskommentiert. Außerdem den String in ein Char-Array gewandelt und mit 
client.write ausgegeben, keine Änderung.

Die Ausgabe bei .bin und .jpg benutzt die gleiche Puffergröße und luft 
auch mit einem 249kB .jpg stabil.

Auf einem -01 großß.jpg natürlich löschen, außerdem MAX_PAKT_LEn besser 
auf
1800 setzen.

Vielelicht hat ja jemand eine Idee.

Ach ja: OTA-Update ist drin, stört unter der 1.6.5 nicht, geht aber da 
auch nicht, weil Erweiterung für die Schnittstelle erst in der 1.6.7 
drin ist. Für den SPIFFS-Upload mit OTA muß das Java-Tool in Version 
0.2.0 installiert sein.

Gruß aus Berlin
Michael

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

alles zurück, wenn man im Header die falsche Länge schickt kommt die 
auch falsch...

Im Anhang die funktionierende Version.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Andreas K. (andreas_k209)


Lesenswert?

cooles Projekt! Das werde ich mal durchstöbern und interessantes 
rauspicken :) ArduinoOTA & SPIFFS kannte ich noch nicht.

Ich lass den "Content-Length:" bei meinem Projekt* weg, wenn ich nicht 
weiß wie viele bytes übertragen werden sollen.

Mit der Puffergröße hatte ich auch schon Probleme, danke für Deine Info 
- ich habe meinen durch Experimente auf 1000 Bytes eingestellt.

Nachtrag 1:
kannst Du noch die "FS.h"/"ArduinoOTA.h" (etc.) mit in Deine zip 
Aufnehmen? unter der 1.6.5 habe ich diese Fehlermeldung:

"ESP_Webserver_HTTP11-test.ino:25:16: fatal error: FS.h: No such file or 
directory
compilation terminated.
Fehler beim Kompilieren."

oder gibt es die irgendwo anders?

Nachtrag 2: Und wie kommen die Dateien ("index.html" etc.) in das 
Arduino Projekt?


*https://github.com/polygontwist/ESP8266_WebServer_i2c

danke

: Bearbeitet durch User
von Andreas K. (andreas_k209)


Lesenswert?

Nachtrag 1 hat sich erledigt, ich hatte noch eine alte esp-package drauf 
:-/
mit der aktuellen 2.0.0 bekomme ich ein:

"In file included from ESP_Webserver_HTTP11-test.ino:27:0:
html_tools.h:18:1: warning: 'typedef' was ignored in this declaration 
[enabled by default]
 };"

aber er kompiliert durch. evtl. sollte ich die Arduino IDE auch mal 
aktualisieren...

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

die Content-Length im Header ist bei HTTP 1.1 Pflicht. Das weglassen ist 
dann eigentlich HTTP 1.0 mit falscher Kennzeichnung.
Die Browser igrnorirens sowas in den meisten Fällen, aber leider nicht 
immer. Gibt dann überraschende Effekte.
Zusammen mit anderen "Einsparungen" macht es die Sache schnell instabil 
und dann heißt es "das stürzt sowieso alle paar Tage ab".

OTA geht erst ab der IDE 1.6.7., die davor kennen die virtuelle serielle 
Schnittstelle dafür noch nicht.

Das .typdef kannst Du rauslöschen, das erledigt der Präprozessor der 
ArdionoIDE wohl alleine oder meine C/C++-Kenntnisse reichen da nicht 
aus.

Bei GitHub beim SPIFFS liegt ein Java-Tool, daß muß wie beschrieben in 
den Sketchordner nach /tools/ESP8266/tool/

Pass auf den Pfad auf tools und tool, hat mich auch erst verwirrt.
Nimm unbedingt die aktuelle Version von dort (0.2.0) war es bei mir.

Dann gibt es einen neuen Menüpunkt "ESP8266 Sketch Data Upload" unter 
Werkzeuge. Das schickt den Inhalt von /data zum ESP. Das geht auch mit 
der 1.6.5. der serielle Monitor der IDE muß dazu geschlossen werden, 
sonst kommt das Tool an die COM nicht ran.

Zu Deinen Daten: schau Dir mal an, wie ich das mit den Ersetzungen 
gelöst habe, ist sicher noch nicht ideal.

Gruß aus Berlin
Michael

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

ich schreibe mal in meinem alten Thread weiter...

Ich bin inzwischen komplett auf den ESP8266Webserver umgestiegen und 
habe mein Konzept mit SPIFFS usw. damit zusammengebaut.

Dabei ist mir ein interessantes Problem zur Geschwindigkeit aufgefallen.

Aber erstmal allgemein: wenn jemand ein NodeMCU oder einen ESP8266-12 
zur Hand hat und testen will hier die Einstellungen:
Arduino-IDE v1.6.7 (neuere gehen sicher auch), ESP8266 v2.2.0 stable.
Board NodeMCU oder Generic ESP
Flash 4MB/3MB SPIFFS
(in Sketch steht noch 1MB, geht auch, für mein Problem aber bitte 3MB 
nehmen).
Baudrate möglichst hoch setzen (ich nutze sowie nur noch 921000, dauert 
sonst zu lange).

Webseiten sind dem data-Ordner zu entnehmen, index.html zeigt natürlich 
nur dummy-Werte an.

upload.html legt eine Datei ins SPIFFS. Dateinmane nur ohne Leerzeichen 
drin, Dateiendungen in Kleinbuchstaben.

Ein .jpg Bild hochladen (sollten schon 500-600kB sein).
Das Bild dann im Browser aufrufen mit [ip]/bildname.jpg

Der Upload bei rund 500kB dauert nur rund 2s.
Die Anzeige in Firefox/Chrome usw. dagegen ewig.
Mit dem IE (Win7 hier) ist das Bild in 1-2s angezeigt.
Einen neuren Windows-Browser (Edge) habe ich hier nicht zur Verfügung.

Das Problem ist offenbar das verzörte ACK des TCP-Stacks.
Der ESP8266 wartet nach jedem gesendeten Paket auf das ACK des 
Empfängers.
Das kommt aber ungünstigsten Falls erst nach 200ms. Normalerweise werden 
heutzutage mehrere Pakete gesendet bis ein ACK erwartet wird. Dazu muß 
der Server aber diese Pakete alle puffern, um sie notfalls neu versenden 
zu können. Das macht (kann) der ESP nicht, sicher Speicherfrage.

Wenn der Effekt bei auch auftritt, mal den RegEdit bemühen.
Ich habe das mal der MS-Knowledgebase entnommen:

    Registrierungs-Editor starten.
    Suchen Sie, und klicken Sie dann auf den folgenden 
Registrierungsunterschlüssel:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\In 
terfaces\<Interface  GUID>
    Auf der Bearbeiten Menü, zeigen Sie auf Neue, und klicken Sie dann 
auf DWORD-Wert.
    Benennen Sie den neuen Wert TcpAckFrequency, und weisen sie den Wert 
1.
    Beenden Sie den Registrierungseditor.
    Starten Sie Windows für diese Änderung wirksam wird.

Die Einstellung hat praktisch keine sonstigen Auswirkungen, bei 
langsamen/unzuverlässigen Verbindungen (DSL mit wenig Upstream) könnte 
es etwas bremsen.

Das Ergebnis auf dem ESP ist, daß ein 600kB Bild in weniger als 2s 
angezeigt wird. Datenraten also um 500kB/s statt 6kB/s...

Es wäre schön, wenn jemand das mal testen könnte.

Gruß aus berlin
Michael

: Bearbeitet durch User
von e-d (Gast)


Lesenswert?

Hallo, Michael!
Hab's mal mit dem ESP12F probiert(Arduino 1.6.5) und klappt, nachdem ich 
den CH314ser-Treiber installiert habe.
Das bild.jpg war in ~0.5sec da!
Danke für deine Arbeit!

Gruß aus Demmin..

von e-d (Gast)


Lesenswert?

- korrekter: CH341SER;

von Michael U. (amiga)


Lesenswert?

Hallo,

Vielen Dank für Deine Rückmeldung.
Ich werde dann mal die upload-Seite zur config-Seite machen.
Umschaltung auf AP wenn das WLAN nicht zu erreichen ist kommt rein, die 
Zugangsdaten will ich dann von dort eintragen, einen Mini-Filemanager 
für das SPIFFS und eine config-Liste für MQTT, damit ich schnell einen 
subscribe hinzufügen kann.

Außerdem soll er im AP-Mode alle xx Minuten einen Client-Connect 
versuchen und den AP wieder ausmachen, wenn er wieder ins lokale WLAN 
kommt.
Das fiel meinem Bekannten ein, der schaltet sein WLAN manchmal ab und 
dann ist es blöd, wenn die ESP nicht sauber wieder zurückwechseln wenn 
es wieder da ist.

Gruß aus Berlin
Michael

von e-d (Gast)


Lesenswert?

Michael U. schrieb:
> der schaltet sein WLAN manchmal ab und
> dann ist es blöd, wenn die ESP nicht sauber wieder zurückwechseln wenn
> es wieder da ist.

Das erscheint mir sinnvoll, da ich bei Nichtanwesenheit sogar meine 
Fritzbox vom Netz trenne.

von Stefan F. (Gast)


Lesenswert?

> die Content-Length im Header ist bei HTTP 1.1 Pflicht

Sicher? Ich zittiere aus RFC2616:

"Applications SHOULD use this field to indicate the transfer-length of 
the message-body, unless this is prohibited by the rules in section 
4.4."

SHOULD ist nicht MUST.

Ich zittiere zwei von mehreren Alternativen aus Section 4.4:

"... the transfer-length is defined by use of the "chunked" 
transfer-coding"

"By the server closing the connection."

Wobei ich die Verbindung nur im Notfall schließen würde. Chunked 
Übertragungen eignen sich in der Praxis durchaus bei unbekannter 
Content-Length. Der Browser zeigt dann halt keinen Prozentbalken an.

von Stefan F. (Gast)


Lesenswert?

Wegen dem TCP-Ack:

Die Konfigurationsmöglichkeiten in der Windows Registry hat Microsoft 
bei jeder Windows Version immer wieder verändert. Teilweise sogar bei 
Service Packs. Das ist echt lästig.

Linux scheint das Timing automatisch anzupassen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Win7 zumindest hat offenbar intern als default verzögert ACK aktiv, der 
Eintrag dazu existierte in meiner Rgistry nicht, ich mußte ihn erst 
anlegen und entsprechend setzen.
Ich finde den Link nicht mehr weider, irgendjemamd hatte das Problem mit 
Safari auf einem Mac aber auch.

Schade ist eher, daß auch im Espressif-Forum u.ä. solche Sachen meist im 
"könnte sein oder vielelicht oder auch nciht" enden.
Ich habe mich mit der upload-Funktion bei Webserver und SPIFFS 
rumgeärgert, Dokus oder Beispiel sind irgendwei Fehlanzeige.
Den FSBrowser als example anzubieten finde ich schon fast frech, ich 
wollte schnell mal in seine edit-Seite schauen und dann liegt die als 
.gz da und besteht aus einer endlosen JS-Funktion usw, wo man ewig 
brauchen würde, das html-Formular zusammenzustoppeln...

Gruß aus Berlin
Michael

von Stefan F. (Gast)


Lesenswert?

> Win7 zumindest hat offenbar intern als default verzögert ACK aktiv

Das haben alle Betriebsysteme seit ca 1995. Anwendungsprogramme können 
es durch die Option TCP_NODELAY deaktivieren. Die mir bekannten Web 
Browser haben dazu jedoch leider keine Einstellmöglichkeit.

Aber ich denke, wenn die Anzahl der embedded Webserver steigt, werden 
die Web Browser vielleicht bald eine entsprechende Einstellmöglichkeit 
haben.

Andere Tools, wie curl und netcat hatten quasi schon immer eine 
entsprechende Kommandozeilenoption.

> Schade ist eher, daß auch im Espressif-Forum u.ä. solche Sachen
> meist im "könnte sein oder vielelicht oder auch nciht" enden.

Ja, nicht nur dort. Das Thema ist nur wenigen Web Entwickler bekannt und 
noch weniger Elektronikern. Obwohl es gerade dort ein immer 
wiederkehrendes Problem ist.

In der Vergangenheit gab es zahlreiche Workarounds, die leider nur 
zeitweise funktionierten. Ich habe daher aufgegeben, auf Workarounds und 
Registry Einträge zu setzen. Ich benutze diese eingeschränkten embedded 
Webserver (die ein ACK für jedes Paket benötigen) nur noch für Sachen, 
wo der Delay egal ist. An anderen Stellen setze ich auf andere (auf IP 
basierende) Protokolle und selbst geschriebene Programme.

von Michael U. (amiga)


Lesenswert?

Hallo

Stefan U. schrieb:
> Ja, nicht nur dort. Das Thema ist nur wenigen Web Entwickler bekannt und
> noch weniger Elektronikern. Obwohl es gerade dort ein immer
> wiederkehrendes Problem ist.

Du hast mir damit zumindest dazu verholfen, auf meine alten Tage ein 
paar Bildungslücken zu füllen.

Für mich ist es immernoch mehr ein ausloten der Möglichkeiten und 
Grenzen des ESP. Ich werde wohl kaum einen Bilderserver mit dem ESP 
bauen. Obwohl: ein Bilderrahmen ginge wohl schon, es dürfte letztlich an 
einem geeigent ansteuerbaren Display scheitern, nichtmal die Chinsen 
haben das billiges. ;)

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Andreas K. (andreas_k209)


Lesenswert?

zumindest diese kleinen Displays mit I2C etc. gehen wunderbar :)
hab selbst ein kleines oLED dran gehabt. Auf YT hatte auch jemand nen 
analogen TV angesteuert (https://www.youtube.com/watch?v=SSiRkpgwVKY).

salü

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

ja, auch die 1,8" Arduino-Dispaly aus China sind kein Problem.

Ja, sowas wie in dem Video geht, UKW-Radio könnte auch gehen.
Mit PC-Grafikkarte wurde schon DVB-T gemacht...
http://bellard.org/dvbt/

Ich dachte eher an ein preiswertes größeres Display in 16 Bit oder 
besser, kombiniert mit einem ESP als Bilderrahmen, der die Bilder direkt 
vom NAS holt.
Der Transfer zum Display müßte ja nichtmal so schnell sein, wenn man das 
neue Bild von oben nach unten schreibt. hätte man sogar einen 
Übergangseffekt gratis.
Dafür sind die Dispalys aber zu teuer und einen digitalen Bilderrahmen 
oder ein altes Tablett zu schlachten ist wegen der Ansteuerung sinnlos.

Ein Display mit Framebuffer und schnellem SPI wäre ideal, dürfte nur 
nicht viel kosten...
Eben nur Display, ESP und Strom dran.

Ich habe jetzt erstmal meinen "Filebrowser" und Konfig-Editor eingebaut.
Läuft alles, Upload ging ja schon getrennt, den muß ich noch mit in die 
Seite einbauen.

PS: ja, der html-Code ist altbacken, keine Zeit und zuwenig Ahnung, um 
das auf die Schnelle mit CSS usw. aufzuhübschen...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Hi Michael,
nette Arbeit. Ich habe es jetzt auch mal mit der Arduino IDE versucht 
und konnte Deinen Webbrower gut zum Laufen bringen.
Vorher habe ich mit Lua und NodeMCu experimentiert und festgestellt, daß 
der kleine doch recht schnell ausgereizt ist.
Magst Du den Browser auch noch veröffentlichen. Das sieht auch gut aus.
Bin gerade dabei, etwas mit CSS und Ajax/Jacvascript auf dieser Basis zu 
basteln. Das werde ich dann auch hier reinstellen wenn es fertig ist.

Gruß
Andreas

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe meine "Spielwiese" mal rangehängt so wie sie ist.
Vorher in der config.txt Deine WLAN-Daten eintragen,
ohne sollte er sich aber auch so als AP melden.
Im Source gibt es noch WLAN-Daten, falls es keine config.txt gibt.

Die Seiten sind Testseiten, die Sensor-Geschichte läuft bei mir 
allerdings auch real mit den Daten meiner RFM2-Sensoren und der 
Energiemess-Teile.

Im Source ist noch GetPicture() drin und base64.
Fliegt aber vermutlich wieder raus.
Eine Bilddatei kann so größenabhängig entweder zum Nachladen in der 
Webpage sein oder sie wird base64-codiert eingefügt.
Ob es Vorteile bei der Geschwindigkeit in der Darstellung ibt, ist noch 
unklar, außerdem wird bei Dateigrößen über 3-4k temporär der Ram 
knapp...

Die Webseiten aktuell zu gestalten steht zwar irgendwo auf meinem Plan, 
aber die Zeit...

Falls was unklar ist, eben fragen. Source ist sicher das Gelbe vom Ei, 
was C/C++ usw. angeht, eigentlich kann ich das garnicht (wirklich 
richtig).

Gruß aus Berlin
Michael

von e-d (Gast)


Angehängte Dateien:

Lesenswert?

Damit das mit dem "Upload" funktioniert, kann dies eingebaut werden:
- aus
  http://www.esp8266.com/viewtopic.php?f=32&t=5779&sid=8b823d1abc10fba8bd9a254fbf420c82

server_upload;

von Andreas B. (bitverdreher)


Angehängte Dateien:

Lesenswert?

Hallo,

e-d schrieb:
> Damit das mit dem "Upload" funktioniert, kann dies eingebaut werden:
bei mir funktionierte der Upload.
Tip: Stell mal Dein PW Deines Routers um. ;-)

Hier mal meine aktuelle Version.
Ich habe das mal um eine Indexdatei ergänzt und die vorherige Index.html 
in sensors.html umbenannt. Da ist jetzt auch eine reelle DS18B20 Abfrage 
drin
Meine Kaffemaschine lief vorher unter LUA und war arschlangsam. Habe es 
mal spaßeshalber mit reingenommen. Das werde ich jetzt wohl auf 
Websockets umstellen.
Es paßt ja viel rein in den Kleinen. Löschen kann mal immer noch. ;-)
Sieht etwas chaotisch aus, eben eine Spielwiese.

Gruß
Andreas

: Bearbeitet durch User
von e-d (Gast)


Lesenswert?

Andreas B. schrieb:
> Tip: Stell mal Dein PW Deines Routers um. ;-)

Habe ich sofort getan, als ich es bemerkte :-)

von Klaus G. (bluenic)


Lesenswert?

Herzlichen Dank an Michael und alle, die durch ihren Input zum Gelingen 
beigetragen haben.
Die "Spielwiese" vom 25.05.2016 (ist ja nun schon ein wenig her) läuft 
wie geschmiert und dient mir als willkommene Grundlage für ein eigenes 
Projekt zur Messung von Umweltdaten (Bosch BME280 und Partikelsensor 
SDS011 vom Chinesen - ist aber noch nicht eingetroffen).
Viele Grüße
Klaus

von Steffen (Gast)


Lesenswert?

Super Arbeit!

Will auch nur mal Danke für die Inspiration sagen!

Gruß
Steffen

von Hanspeter S. (kendo1)


Lesenswert?

Auch von mir ein grosses Dankeschön !!!

Nun wäre es ja toll, Deine Lösung auf den ESP32 zu portieren zu können.

Leider fehlt da noch einiges im ESP32 Arduino Core.

Wie siest Du das?

Gruss HP

von Hanspeter S. (kendo1)


Lesenswert?

Also, bin gerade fertig mit der Portierung nsch ESP32!!!!

Werde das Ganze dokumentieren und hier reinstellen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.