Weerstation ( Ard.. en nu online verder )
14 berichten
• Pagina 2 van 2 • 1, 2
Re: Weerstation ( Ard.. en nu online verder )
De link naar de nieuwe code staat hier: https://www.hubbit.nl/service/arduino/
Advertisement
Re: Weerstation ( Ard.. en nu online verder )
Heeft iemand een werkende oplossing gevonden ? Ik denk dat de suggestie van Ardfun het dichtst bij de oplossing komt, alleen begrijp ik toch nog niet hoe je zo'n SSL certificaat krijgt, en vooral, hoe je dat in de sketch verwerkt. Is het iemand wel gelukt?
Al de aangegeven links naar nieuwe versies van de software werken trouwens niet meer (hubbit.nl bestaat niet meer, ook niet via reshift).
Enno
Al de aangegeven links naar nieuwe versies van de software werken trouwens niet meer (hubbit.nl bestaat niet meer, ook niet via reshift).
Enno
Re: Weerstation ( Ard.. en nu online verder )
Voor buienradar is er een goed alternatief.
Zie: http://weerlive.nl/delen.php
Met de weerlive API kan je maximaal 300x per dag KNMI weergegevens van elke willekeurige plaats opvragen.
(dus ongeveer elke 5 minuten).
Ik heb met behulp van de bibliotheek 'HTTPSRedirect' ook nog geprobeerd buienradar werkend te krijgen maar dat is (nog) niet gelukt.
https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect
Er zou een oplossing mogelijk moeten zijn voor de HTTPS zonder certificaten, dus geen of weinig extra beveiliging.
Dit lijkt mij voor weergegevens ook geen bezwaar.
m.v.g. Nico
Zie: http://weerlive.nl/delen.php
Met de weerlive API kan je maximaal 300x per dag KNMI weergegevens van elke willekeurige plaats opvragen.
(dus ongeveer elke 5 minuten).
Ik heb met behulp van de bibliotheek 'HTTPSRedirect' ook nog geprobeerd buienradar werkend te krijgen maar dat is (nog) niet gelukt.
https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect
Er zou een oplossing mogelijk moeten zijn voor de HTTPS zonder certificaten, dus geen of weinig extra beveiliging.
Dit lijkt mij voor weergegevens ook geen bezwaar.
m.v.g. Nico
Re: Weerstation ( Ard.. en nu online verder )
Het xml file van buienradar is verplaatst naar https://data.buienradar.nl/1.0/feed/xml
De header van de oorspronkelijke url geeft de verplaatsing aan, echter daarbij worden andere veldnamen gebruikt dan de bibliotheek 'HTTPSRedirect' verwacht.
Een oplossing via die bibliotheek is dus (nog) niet mogelijk.
Een andere oplossing is het gebruik van de bibliotheek '<WiFiClientSecureBearSSL.h>' ZONDER certificaat door de instructie:
Zie voorbeeld code hieronder.
Nadeel van de xml van buienradar blijft dat er veel data geleverd wordt (ALLE weerstations) er kan pas bij ontvangst een weerstation worden geselecteerd.
m.v.g. Nico
Code voorbeeld, (gewijzigd standaardvoorbeeld -> BasicHttpsClient)
De header van de oorspronkelijke url geeft de verplaatsing aan, echter daarbij worden andere veldnamen gebruikt dan de bibliotheek 'HTTPSRedirect' verwacht.
Een oplossing via die bibliotheek is dus (nog) niet mogelijk.
Een andere oplossing is het gebruik van de bibliotheek '<WiFiClientSecureBearSSL.h>' ZONDER certificaat door de instructie:
- Code: Alles selecteren
client->setInsecure();
Zie voorbeeld code hieronder.
Nadeel van de xml van buienradar blijft dat er veel data geleverd wordt (ALLE weerstations) er kan pas bij ontvangst een weerstation worden geselecteerd.
m.v.g. Nico
Code voorbeeld, (gewijzigd standaardvoorbeeld -> BasicHttpsClient)
- Code: Alles selecteren
/**
BasicHTTPSClient.ino
Created on: 20.08.2018
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecureBearSSL.h>
// Fingerprint for demo URL, expires on June 2, 2021, needs to be updated well before this date
//const uint8_t fingerprint[20] = {0x40, 0xaf, 0x00, 0x6b, 0xec, 0x90, 0x22, 0x41, 0x8e, 0xa3, 0xad, 0xfa, 0x1a, 0xe8, 0x25, 0x41, 0x1d, 0x1a, 0x54, 0xb3};
const uint8_t fingerprint[20] = "";
ESP8266WiFiMulti WiFiMulti;
void setup() {
Serial.begin(115200);
// Serial.setDebugOutput(true);
Serial.println();
Serial.println();
Serial.println();
for (uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("SSID", "Password");
}
void loop() {
// wait for WiFi connection
if ((WiFiMulti.run() == WL_CONNECTED)) {
std::unique_ptr<BearSSL::WiFiClientSecure>client(new BearSSL::WiFiClientSecure);
//client->setFingerprint(fingerprint);
client->setInsecure();
HTTPClient https;
Serial.print("[HTTPS] begin...\n");
//if (https.begin(*client, "https://jigsaw.w3.org/HTTP/connection.html")) { // HTTPS
if (https.begin(*client, "https://data.buienradar.nl/1.0/feed/xml")) { // HTTPS
Serial.print("[HTTPS] GET...\n");
// start connection and send HTTP header
int httpCode = https.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTPS] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
String payload = https.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str());
}
https.end();
} else {
Serial.printf("[HTTPS] Unable to connect\n");
}
}
Serial.println("Wait 10s before next round...");
delay(10000);
}
14 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: avedoyun en 8 gasten