Chciałbym odczytać za pomocą linku bezpośredniego temperaturę i wilgotność z mojej stacji pogodowej.
Używam takiej metody :
Code: Select all
void Temp_Hum_D_Link() {
WiFiClientSecure client;
Serial.print("connecting to ");
Serial.println(host); // tu jest svr1.supla.org
// a pod httpsPort = 433
// pod url - wygenerowany link bezpośredni
if (!client.connect(host, httpsPort)) {
Serial.println("connection failed");
return;
}
Serial.print("requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"User-Agent: ESP8266\r\n" +
"Connection: close\r\n\r\n");
Serial.println("request sent");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
String line = client.readStringUntil('}');
line = line + "}";
Serial.println("reply was:");
Serial.println("==========");
Serial.println(line);
Serial.println("==========");
DynamicJsonBuffer jsonBuffer(200);
JsonObject& root = jsonBuffer.parseObject(line);
if (!root.success()) {
Serial.println("parseObject() failed");
return;
}
int Humi = root["humidity"];
double Temp = root["temperature"];
Serial.print("temperature ");
Serial.println(Temp, 2);
Serial.print("humidity ");
Serial.println(Humi);
Serial.println("closing connection");
////lcd.setCursor(13,(row));
////lcd.print(" ");
//lcd.setCursor(13,(row));
//lcd.print(Temp, 2);
//lcd.print(" C");
////lcd.setCursor(13,(row+1));
////lcd.print(" ");
//lcd.setCursor(13,(row+1));
//lcd.print(Humi);
//lcd.print("%");
}
Code: Select all
connecting to svr1.supla.org
connection failed
Czego może mi brakować, używam wersji biblioteki SuplaDevice z początkowych czasów "Primary GUI" ale ona tu chyba mnie ma zastosowania ?
