ESP32-Daten von Webseite auf PC speichern

Gast #6161002
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
Gast #6161005
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.
Gast #6161356
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...
Gast #6161359
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.
Gast #6161481
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?
Gast #6161651
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
Gast #6161786
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.
#6162994
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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren