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
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.
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
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.
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...
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.
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...
Horst72 schrieb: > Man könnte ja auch direkt gleich danach fragen, Warum soll ich mir mehr Mühe geben als der TO?
Also Erziehung durch Provokation? Wird das dann nicht so etwas wie das: Schreiben nach Gehör?
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?
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
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.
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".
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.