Hallo mal abgesehen von einer "exeption (28)" des ESP 8266 blicke ich noch nicht ganz durch, wie ich aus dem wifi Modul die Antworten des Host heraus kriege. Aber von vorne, einfach nur das Wetter abholen mit [c] if (!client.connect(server, httpsPort)) { Serial.println(F("Keine Verbindung zu Openweather.map!")); client.stop(); } // Sende den HTTP GET request: client.println("GET /data/2.5/forecast?q=" + nameOfCity + "&APPID=" + apiKey + "&lang=de&mode=json&units=metric&cnt=1 HTTP/1.1"); client.println(F("Host: api.openweathermap.org")); client.println(F("User-Agent: ESP8266")); client.println(F("Connection: close")); client.println(); [c] Ich versuche ein Beispiel aus dem Netz zu verstehen: https://www.arduinoslovakia.eu/blog/2018/5/ziskanie-udajov-o-pocasi-pomocou-esp8266?lang=en aber das läuft auch nicht durch, ist vermutlich zu alt, sowhl der JSON Parser als auch die API von Openweather haben sich inzwischen geändert. Ich kann mich nur noch über eine https Verbindung dort einloggen, unverschlüsselt klappt nicht mehr. Und eine Exeption 28 wird auch erzeugt. Wo liegt die Antwort des Hosts wenn das wifi Modul diesen GET ausgeführt hat? Wie kriege ich das zu verarbeiten, was der Host mir schickt? Später dann zu solchen Ausdrücken DynamicJsonBuffer jsonBuffer(4096); JsonObject& root = jsonBuffer.parseObject(client); Aber eines nach dem anderen..... Gruss, Christian
Hallo, ich gebe zu, da habe ich selber nichts gemacht, aber vielleicht hilft Di irgendwas aus https://github.com/ThingPulse/esp8266-weather-station-color weiter. Läuft hier seit Weihnachten, vorher lief die Wunderground-Version. Ich habe da nur den Touch rausgeworfen, weil ich ein Display ohne dran hatte und eine Taste dafür eingebuat. Gruß aus Berlin Michael
Hi, danke für den Link..... habs aber für meine paar LEDs schon. Der ESP 8266 hat Bugs, soviel ist klar. Diese JSON Lib verlangt String.h, alles läuft damit. Und mit der Sequenz kriege ich jetzt auch ein paar Infos raus, die ich benutzen kann. Mehr brauhce ich nicht. Inzwischen hat jemand eine ganze Lib geschrieben für openweathermap.org aber das ist zu aufgeblasen für meine kleine Spielerei. Die Daten des Host werden per Int wohl empfangen und können mit client.read und client.find etc geholt und durchsucht werden. Was passiert, wenn der Puffer voll ist weiss ich noch nicht. Auch blöd, dass der esp8266 das gleiche PROGMEM Thema hat, wie der AVR. Auch hier werden alle Strings im Ram abgelegt und man muss wieder diese Konstrukte mit PTSR bauen und _P Funktionen benutzen. Sonst ist das RAM sehr schnell voll. Dann doch lieber Cortex... Gruss, Christian JsonArray& list = root["list"]; JsonObject& nowT = list[0]; JsonObject& later = list[1]; String city = root["city"]["name"]; String weatherID = nowT["weather"][0]["id"]; String weatherMain = nowT["weather"][0]["main"]; String weatherNow = nowT["weather"][0]["description"]; String weatherIDLater = later["weather"][0]["id"]; String weatherMainLater = later["weather"][0]["main"]; String weatherLater = later["weather"][0]["description"];
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.