Forum: Offtopic Datei über Browser abrufen?


von Thomas (kosmos)


Lesenswert?

Hallo, vielleicht kann mir jemand kurz helfen, da ich in dieser Hinsicht 
keinerlei Erfahrung habe.

Es gibt einen ESP8266 welcher einen Server aufsetzt und eine einzige 
Datei mit Logwerten vorhält, man kann sich per WLAN drauf verbinden mehr 
aber auch nicht, es gibt keine Weboberfläche. Anbei mal das Programm des 
ESP's

Hat jemand eine Idee wie man über die Eingabeaufforderung oder über eine 
.html Datei ein HTTP-GET absetzt um an die Datei zu kommen?

Vielen Dank schonmal
1
#include <ESP8266WiFi.h>
2
#include <LittleFS.h>
3
#include <ESPAsyncTCP.h>
4
#include <ESPAsyncWebServer.h>
5
6
const char *ssid = "Logger";
7
const char *password = "12345678";
8
9
AsyncWebServer server(80);
10
File logFile;
11
12
void setup() {
13
  Serial.begin(115200);
14
  WiFi.mode(WIFI_STA);
15
  WiFi.softAP(ssid, password);
16
  LittleFS.begin();
17
  logFile = LittleFS.open("/Log.txt", "a+");
18
19
  server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {
20
    request->send(LittleFS, "/Log.txt", "text/plain");
21
  });
22
23
  server.on("/clear", HTTP_GET, [](AsyncWebServerRequest * request) {
24
    logFile.close();
25
    logFile = LittleFS.open("/Log.txt", "w");
26
    request->send(200, "text/plain", "Log File Cleared!");
27
  });
28
29
  server.begin();
30
}

von Steve van de Grens (roehrmond)


Lesenswert?

http://ip-adresse/

Allerdings passen diese beiden Zeilen nicht zusammen:
1
WiFi.mode(WIFI_STA);
2
WiFi.softAP(ssid, password);

Schau dir mal die Doku dazu an.

: Bearbeitet durch User
von Achim M. (minifloat)



Lesenswert?

Thomas schrieb:
> Hat jemand eine Idee wie man über die Eingabeaufforderung oder über eine
> .html Datei ein HTTP-GET absetzt um an die Datei zu kommen?

Mit einem Browser einfach http://[ESP8266-IP-oder-hostname]/ und er 
müsste dir das Textfile anzeigen.
MIME-type hast du ja mit "plain text" angegeben, das bekommt der Browser 
dann auch mitgeteilt. "http://"; ist wichtig, weil der Browser sonst 
automatisch https nutzt.

So habe ich hier im Heimnetz einen ESP8266, der mir eine Webseite mit 4 
Schiebereglern anzeigt, welche den Inhalt der ersten 4 Kanäle eines 
DMX512-Datenstroms setzen. Genutzt wird das für eine billige 
Bühnentechnik-LED-Bar hinter der Glotze. Die Schiebereglerdaten werden 
als XML über GET geholt und über POST gesendet. Das ist Teil der 
Webseite und es läuft im Browser per Javascript. Schreib mir eine PN 
wenn du es haben willst.

mfg mf

von Purzel H. (hacky)


Lesenswert?

Ein HTTP-Get wird vom Browser abgesetzt. Jetzt muss der Controller nur 
darauf mit einer Webseite antworten

von Stephan S. (uxdx)


Lesenswert?

Du könntest wget oder curl benutzen, um eine Datei vom Server zu holen.

von Thomas (kosmos)


Lesenswert?

Purzel H. schrieb:
> Ein HTTP-Get wird vom Browser abgesetzt. Jetzt muss der Controller nur
> darauf mit einer Webseite antworten

So will ich das eigentlich machen, dachte eine kleine HTML Datei 
aufrufen die das Commando absetzt. Bin in der Hinsicht Newbie, jemand 
eine Idee wie das auszusehen hätte?

von Purzel H. (hacky)


Lesenswert?

Du musst es schaffen, dass die Anfrage des Browsers zum Controller 
kommt. zB indem der Controller eine IP hat, oder darstellt.
Sei der Controller mit einem Ethernet versehen mit einer IP 
192.168.1.110, dann einfach die Seite aufrufen : 
http://192.168.1.110/index.html
Falls der Controller nur eine serielle Schnittstelle hat, benoetigst du 
einen Dienst, welcher IP nach Serial umsetzt. Ein kleines Prograemmchen, 
welches als dienst laeuft

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.