Forum: Mikrocontroller und Digitale Elektronik Datei vom Webserver mit ESP8266 einlesen


von T.M .. (max)


Lesenswert?

Hallo,

ich probiere gerade die ESP8266 -12
Auf einem Webserver liegt eine txt-Datei mit 5 Integer Zahlen. 
Temperaturen etc
Gibt es eine Möglichkeit diese Datei mit dem ESP aus dem Internet 
abzurufen und auf einem OLED oä darzustellen?
Ich bin bisher nicht fündig geworden.
Meine ersten Tests mit dem ESP waren mit der Arduino IDE. hat ganz gut 
funktioniert

von Stefan F. (Gast)


Lesenswert?

> Gibt es eine Möglichkeit diese Datei mit dem ESP aus dem
> Internet abzurufen und auf einem OLED oä darzustellen?

Sicher, dazu musst du das Teil programmieren. Auf der Webseite des 
Herstellers kannst du sowohl das Entwicklungskit (SDK) als auch die 
nötige Dokumentation herunter laden.

Das ist aber nichts für Anfänger. Dieses SDK ist auf einem ganz anderen 
Niveau, als Arduino.

Als Kompromiss dazwischen solltest du dir mal das NodeMCU Projekt 
anschauen. Mit dieser Firmware bekommst du die Möglichkeit, das ESP 
Modul mit der Scriptsprache LUA zu programmieren. Ich glaube, das könnte 
Dir gefallen.

http://nodemcu.com/index_en.html

von e-d (Gast)


Lesenswert?

https://github.com/squix78/esp8266-projects/tree/master/arduino-ide/weather-station-v2
Denke, dies könntest Du anpassen.

Hab's hier mal gemacht:
http://www.esp8266.com/viewtopic.php?f=29&t=6228

- allerdings nur zum "Spass an der Freude"..

von Michael U. (amiga)


Lesenswert?

Hallo,

Max .. schrieb:
> Meine ersten Tests mit dem ESP waren mit der Arduino IDE. hat ganz gut
> funktioniert

ich gehe davon aus. daß Du mit der Arduino-IDE den ESp8266 direlt 
programmierst?
In den Beispielen solltest Du den ESP8266HTTPClient finden, 
BasicHTTPClient zeigt Dir, wie Du Deine Datei vom Webserver holst und 
über die serielle ausgibst.

Hier
http://fritzing.org/projects/esp8266-arduino-oled-spi
findest Du was zum kleinen OLED, weiß aber nicht was es taugt.
Ansonsten hatte ja  e-d (Gast) schon was gepostet.

Und laß Dich nicht verwirren: der ESP8266 ist zumindest der 
interessanteste "Arduino", den es zur Zeit wohl gibt.

Gruß aus Berlin
Michael

von T.M .. (max)


Lesenswert?

Boah wow ihr seid großartig!!!

Dieses BasicHtml example hat geholfen!
Irgendwie habe ich das wohl übersehen - peinlich.
Ja, das OLED funktioniert auch bereits.
Das Zeug ist schon großartig, wenn man mal ne Idee umsetzen will ohne 
ein Techniker zu sein und wochenlang irgendwelche Datenblätter wälzen 
will
Merci!

von Michael U. (amiga)


Lesenswert?

Hallo,

fein das es geholfen hat.

Stefan Us (stefanus) schrieb oben:

>Sicher, dazu musst du das Teil programmieren. Auf der Webseite des
>Herstellers kannst du sowohl das Entwicklungskit (SDK) als auch die
>nötige Dokumentation herunter laden.

>Das ist aber nichts für Anfänger. Dieses SDK ist auf einem ganz anderen
>Niveau, als Arduino.

Ich weiß, daß die Meinungen zur Arduino-IDE und teilweise auch zum ESP 
ziemlich auseinandergehen.

Für überschaubare Hobby-Projekte ist die Arduino-IDE im Moment meiner 
Meinung nach ungeschlagen.
Problemlose Installation und es kann losgehen.
Das Problem ist: oben ist die Arduino-IDE mit Zugriff auf die 
Klassenbibliotheken von Arduino.
Darunter liegt eine Art Wrapper/Präprozesor zum ESP-SDK.
Jede Änderung an der IDE oder am SDK benötigt Änderungen an diesem 
"Wrapper".

Du kannst aus der Arduino-IDE auch direkt auf das ESP-SDK zugreifen, 
wenn nötig.
Ein
1
extern "C"
2
{
3
#include "user_interface.h"
4
}
im Sketch bindet den eine Headerdatei ein, die auch wieder 
Hilfskonstrukte enthält, um z.B. mit

  Serial.println(ESP.getFlashChipSpeed(),DEC);

die aktuelle Takfrequenz des Flash auszulesen.
Du kannst die Teile, die dazu benutzt werden
#include "os_type.h",
#include "queue.h"
#include "user_config.h"
#include "spi_flash.h"

usw. auch direkt im Sketch einbinden und nutzen.

Ob das wirklich immer ein Vorteil ist, bezweifle ich.
Warum soll ich die wirlich gute Arbeit der anderen nicht nutzen?

Als Beipiel der ESP8266Webserver:
1
void handleUnknown()
2
{
3
  String filename = webserver.uri();
4
5
  File pageFile = SPIFFS.open(filename, "r"); 
6
  if (pageFile)
7
  {
8
    String contentTyp = getContentType(filename);
9
10
    size_t sent = webserver.streamFile(pageFile, contentTyp);
11
    pageFile.close(); 
12
  }
13
  else
14
  {
15
    notFound(); 
16
  }
17
}

Diese Funktion schickt bei mir eine angeforderte Webseite, die im 
Flashfilesystem existiert, aber keinen Handler hat, mit passendem 
Content-Header zum Webbrowser.

Gibt es also die Datei bild.jpg auf dem ESP, wird sie auageliefert und 
im Browser angezeigt.

Es nutzt die String und die Stream Klasse des Arduino dazu.

Soll ich das wirklich alles selbst programmieren auf SDK-Ebene, obwohl 
es schon existiert?

Gruß aus Berlin
Michael

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.