#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String apiKey = "CWA-E7E1DFDF-BB61-484B-B138-5CA5951D89F1";
String weatherApiUrl_2 = "https://opendata.cwa.gov.tw/api/v1/rest/datastore/O-A0003-001?Authorization=";
const char* doc2; //OK
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(weatherApiUrl_2 + apiKey + "&StationName=%E8%87%BA%E5%8D%97");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
DynamicJsonDocument doc(1024);
//Serial.println(payload);
deserializeJson(doc, payload);
//DynamicJsonDocument doc2(1024),doc3(1024);
//String doc2; //not OK
//doc2=doc["records"];
doc2=doc["result"]["resource_id"];
//doc3=doc2["Station"];
Serial.println(doc2);
//String payload2;
//serializeJson(doc2, payload2);
//Serial.println(payload2);
//float temperature = doc["records"]["Station"][0]["WeatherElement"]["AirTemperature"];
Serial.print("temperature is");
//Serial.println(temperature);
}
}
delay(1000); // Fetch and send data every 60 seconds
}