Forum: Mikrocontroller und Digitale Elektronik ESP32-Daten von Webseite auf PC speichern


von GerK (Gast)


Lesenswert?

Eines vorweg: bin nur Hobbyist, daher bitte nicht zu wild mit
Fachausdrücken herumwerfen.

Was hab ich: Einen ESP32 der über WLAN Wetterdaten von OpenWeather holt,
sie auswertet und lokal auf dem ESP32 in eine Datei schreibt und 
zusätzlich
in einfacher Form auf eine Webseite ausgibt.

Was möchte ich: Die Wetterdaten gleich auf dem PC speichern.

Bräuchte Hinweise in welche Richtung ich mich orientieren müßte.
Bin da ziemlich planlos.

MfG
GerK

von Nick M. (Gast)


Lesenswert?

Du könntest auf dem ESP einen Server-port öffnen, der, sobald offen, die 
Daten losschickt.
Auf dem PC öffnest Du genau den port auf dem ESP und liest die Daten.

Format kannst du machen wie du willst.
WLan hast du ja.

von Klaus R. (klara)


Lesenswert?

Nick M. schrieb:
> Auf dem PC öffnest Du genau den port auf dem ESP und liest die Daten.

OK, und womit öffne ich auf dem PC den Serverport?
mfg Klaus

von Stefan F. (Gast)


Lesenswert?

Klaus R. schrieb:
> OK, und womit öffne ich auf dem PC den Serverport?

Mit irgeneiner Programmiersprache und den dazugehörigen 
Netzwerk-Bibliotheken. Qt ist diesbezüglich ganz angenehm, wenn man erst 
dessen Event-Handling mit Signalen und Slots verstanden hat.

von Horst72 (Gast)


Lesenswert?

Ich finde diese Forum cool...

Da sagt ein Patient:
Ich bin krank!

Und der erste Doc sagt:
Mach einfach bei Dir 'ne
Nierentransplantation, du kannst
das!

Und der zweite Doc sagt:
Du kannst da auch noch noch 'ne
Bein-OP machen, mit einem Mikroskop
ist das dann ganz einfach...

Nun, ggf. würde es wohl eher helfen,
wenn der Patient mehr Einzelheiten zu
seiner Krankheit ansagt:
- was ist das für ein Programm auf dem ESP32
- hast Du da die Quelltexte?
- was ist das für ein PC? Mac, Win, Linux?
- warum sollen die Wetterdaten auf den PC?
- was hast Du dann dort damit vor?
usw. usw.

Andererseits,
bei Programmwünschen für den PC ist man
zu 98% nicht der Erste, der so etwas
möchte, da 'mal rum-googlen fördert dann
meist schnell etwas zu Tage...

Man könnte auch einfach 'mal
rum-DuckDuckGo-n, ob es das ESP32-Programm
nicht auch in einer Art einer passenden
PC-Version gibt, dann brauch man gleich
keinen Datenaustausch zwischen PC und
ESP32.

Wie gesagt, z.Z. weiß man nix genaues vom
Patient...

von Nick M. (Gast)


Lesenswert?

Horst72 schrieb:
> Wie gesagt, z.Z. weiß man nix genaues vom
> Patient...

Ja. Und ich gehe davon aus, dass meine Antwort Fragen des TO provoziert 
damit man in etwa weiß was er kann und will.

In Tcl ist die PC Seite mit weniger als 20 Zeilen Code erledigt. Geht 
auch mit anderen Scriptsprachen sehr einfach.

von Horst72 (Gast)


Lesenswert?

Nick M. schrieb:
> Ja. Und ich gehe davon aus, dass meine Antwort Fragen des TO provoziert
> damit man in etwa weiß was er kann und will

Man könnte ja auch direkt gleich danach fragen,
macht es doch einfacher und schneller...

von Nick M. (Gast)


Lesenswert?

Horst72 schrieb:
> Man könnte ja auch direkt gleich danach fragen,

Warum soll ich mir mehr Mühe geben als der TO?

von Horst72 (Gast)


Lesenswert?

Also Erziehung durch Provokation?

Wird das dann nicht so etwas wie das:
Schreiben nach Gehör?

von STK500-Besitzer (Gast)


Lesenswert?

GerK schrieb:
> Was möchte ich: Die Wetterdaten gleich auf dem PC speichern.
>
> Bräuchte Hinweise in welche Richtung ich mich orientieren müßte.
> Bin da ziemlich planlos.

Wenn du lokal eine Datei speichern kannst, kannst du auch auf eine 
Netzwerkfreigabe zugreifen?

von GerK (Gast)


Lesenswert?

Mea culpa,

wollte nicht einen Roman verfassen, aber wo ihr recht habt, habt ihr 
recht.

Vorkentnisse: AVR Programmierung mit Bascom, ein wenig VB.

Den ESP bearbeite ich mit Micropython und bin recht frisch darin.
Auf dem Pc läuft Win10.

Das ganze dient nur zu lernzwecken meinerseits. Und wie im 
Eröffnungspost
geschrieben, bin ich nur Hobbyist ohne tiefere Netzwerkkentnisse und 
dgl.

Natürlich befrage ich auch eine Suchmaschine meiner Wahl. Das richtige
selektieren der Ergebnisse ist nicht so leicht.

Hoffe habe ein wenig mehr für Klarheit gesorgt.

MfG

von Stefan F. (Gast)


Lesenswert?

Horst72 schrieb:
> Also Erziehung durch Provokation?

Wenn du einfach gerade heraus fragst, wirst du beleidigt, blöde Fragen 
zu stellen.

Und zwar von den Themen-Erstellern, die selbst blöde angefangen haben.

von Stefan F. (Gast)


Lesenswert?

GerK schrieb:
> Natürlich befrage ich auch eine Suchmaschine meiner Wahl. Das richtige
> selektieren der Ergebnisse ist nicht so leicht.

Versuche es mal mit "Visual Basic Sockets".

von Nick M. (Gast)


Lesenswert?

GerK schrieb:
> Den ESP bearbeite ich mit Micropython und bin recht frisch darin.

Ah! Das ist ja ein guter Start!
Also, schau dir an, wie du damit einen Server-Socket (also eingehende 
"Anrufe" annehmend) aufmachemn kannst.
Und auf dem PC ist es dann mit Python noch einfacher.

Ich kann kein Python.

von Timmo H. (masterfx)


Lesenswert?

Ich würde einfach auf dem ESP nen Webserver aufmachen und via wget oder 
so regelmäßig die Daten vom ESP abholen:
1
String getContentType(String filename) { // convert the file extension to the MIME type
2
  if (filename.endsWith(".html")) return "text/html";
3
  else if(filename.endsWith(".htm")) return "text/html";
4
  else if(filename.endsWith(".css")) return "text/css";
5
  else if(filename.endsWith(".js")) return "application/javascript";
6
  else if(filename.endsWith(".png")) return "image/png";
7
  else if(filename.endsWith(".gif")) return "image/gif";
8
  else if(filename.endsWith(".jpg")) return "image/jpeg";
9
  else if(filename.endsWith(".ico")) return "image/x-icon";
10
  else if(filename.endsWith(".bmp")) return "image/bmp";
11
  else if(filename.endsWith(".xml")) return "text/xml";
12
  else if(filename.endsWith(".pdf")) return "application/x-pdf";
13
  else if(filename.endsWith(".zip")) return "application/x-zip";
14
  else if(filename.endsWith(".gz")) return "application/x-gzip";
15
  return "text/plain";
16
}
17
18
void setup() {
19
//...
20
  server.onNotFound([]() {                              // If the client requests any URI
21
    if (!handleFileRead(server.uri()))                  // send it if it exists
22
      server.send(404, "text/plain", "404: Not Found"); // otherwise, respond with a 404 (Not Found) error
23
  });
24
//...
25
}
26
27
bool handleFileRead(String path) { // send the right file to the client (if it exists)
28
  Serial.println("handleFileRead: " + path);
29
  if (path.endsWith("/")) path += "index.html";          // If a folder is requested, send the index file
30
  String contentType = getContentType(path);             // Get the MIME type
31
  String pathWithGz = path + ".gz";
32
  if (SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)) { // If the file exists, either as a compressed archive, or normal
33
    if (SPIFFS.exists(pathWithGz))                         // If there's a compressed version available
34
      path += ".gz";                                         // Use the compressed verion
35
    File file = SPIFFS.open(path, "r");                    // Open the file
36
    size_t sent = server.streamFile(file, contentType);    // Send it to the client
37
38
    
39
    file.close();                                          // Close the file again
40
    Serial.println(String("\tSent file: ") + path);
41
    Serial.println(String("\tSent size: ") + sent);
42
    return true;
43
    
44
  }
45
  Serial.println(String("\tFile Not Found: ") + path);   // If the file doesn't exist, return false
46
  return false;
47
}

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.