/* ESP32 WiFi example */
#include <ArduinoJson.h>
#include <WiFiClientSecure.h>
WiFiClientSecure client;
int userSelection = 0;
void setup() {
Serial.begin(115200);
// setup WiFi
Serial.println("Initializing WiFi...");
WiFi.mode(WIFI_STA); Serial.println("Connecting to WiFi ");
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("\nWiFi connected.IP address: ");
Serial.println(WiFi.localIP());
client.setInsecure();//skip verification
Serial.println("\nStarting connection to server...");
if (client.connect("modis.ornl.gov", 443)) {
Serial.println("connected ");
client.println("GET/rst/api/v1/MOD13Q1/subset?latitude=35.958767&longitude=-84.287433&startDate=A2018049&endDate=A2018049&kmAboveBelow=1&kmLeftRight=1 HTTP/1.0");
client.println("Host: modis.ornl.gov");
client.println("Accept: */*");
client.println("Accept-Encoding: application/json");
client.println("Connection: close");
client.println();
}
}
void loop() {
DynamicJsonDocument doc(24576);
DeserializationError error = deserializeJson(doc, client);
if (error) {
Serial.print("deserializeJson() failed: ");
Serial.println(error.c_str());
return;
}
const char* xllcorner = doc["xllcorner"]; // "-7587440.68"
const char* yllcorner = doc["yllcorner"]; // "3997462.12"
double cellsize = doc["cellsize"]; // 231.656358264
int nrows = doc["nrows"]; // 9
int ncols = doc["ncols"]; // 9
const char* band = doc["band"]; // "all"
double latitude = doc["latitude"]; // 35.958767
double longitude = doc["longitude"]; // -84.287433
const char* header = doc["header"];
for (JsonObject subset_item : doc["subset"].as<JsonArray>()) {
const char* subset_item_modis_date = subset_item["modis_date"]; // "A2018049", "A2018049", "A2018049", ...
const char* subset_item_calendar_date = subset_item["calendar_date"]; // "2018-02-18", "2018-02-18", ...
const char* subset_item_band = subset_item["band"]; // "250m_16_days_blue_reflectance", ...
const char* subset_item_tile = subset_item["tile"]; // "h11v05", "h11v05", "h11v05", "h11v05", "h11v05", ...
const char* subset_item_proc_date = subset_item["proc_date"]; // "2021319204744", "2021319204744", ...
JsonArray subset_item_data = subset_item["data"];
int subset_item_data_0 = subset_item_data[0]; // 229, 1134, 1451, 0, 548, -5056, 5120, 419, 2116, 4517, ...
int subset_item_data_1 = subset_item_data[1]; // 264, 1012, 1378, 0, 526, -5048, 5120, 410, 2116, 4474, ...
int subset_item_data_2 = subset_item_data[2]; // 264, 1012, 1350, 0, 504, -5048, 5120, 410, 2116, 4563, ...
int subset_item_data_3 = subset_item_data[3]; // 390, 1468, 1537, 0, 587, -5170, 4860, 1604, 2116, 4472, ...
int subset_item_data_4 = subset_item_data[4]; // 390, 1468, 2095, 0, 780, -5170, 4860, 1604, 2116, 4573, ...
int subset_item_data_5 = subset_item_data[5]; // 351, 1280, 2387, 0, 789, -5170, 4860, 1604, 2116, 5031, ...
int subset_item_data_6 = subset_item_data[6]; // 351, 1280, 2002, 0, 789, -5170, 4860, 1604, 2116, 4346, ...
int subset_item_data_7 = subset_item_data[7]; // 478, 1670, 2018, 0, 828, -5170, 4860, 1604, 2116, 4181, ...
int subset_item_data_8 = subset_item_data[8]; // 478, 1670, 1660, 0, 612, -5170, 4860, 1604, 2116, 4612, ...
int subset_item_data_9 = subset_item_data[9]; // 342, 1664, 1520, 0, 577, -5201, 4860, 1613, 2116, 4496, ...
int subset_item_data_10 = subset_item_data[10]; // 437, 1469, 1962, 0, 633, -5203, 4860, 1604, 2116, ...
int subset_item_data_11 = subset_item_data[11]; // 437, 1469, 1962, 0, 633, -5203, 4860, 1604, 2116, ...
int subset_item_data_12 = subset_item_data[12]; // 390, 1468, 2307, 0, 791, -5170, 4860, 1604, 2116, ...
int subset_item_data_13 = subset_item_data[13]; // 390, 1468, 2696, 0, 861, -5170, 4860, 1604, 2116, ...
int subset_item_data_14 = subset_item_data[14]; // 410, 1463, 2074, 0, 708, -5170, 4860, 1604, 2116, ...
int subset_item_data_15 = subset_item_data[15]; // 410, 1463, 1557, 0, 563, -5170, 4860, 1604, 2116, ...
int subset_item_data_16 = subset_item_data[16]; // 356, 1220, 1660, 0, 612, -5171, 4860, 1595, 2116, ...
int subset_item_data_17 = subset_item_data[17]; // 356, 1220, 1660, 0, 612, -5171, 4860, 1595, 2116, ...
int subset_item_data_18 = subset_item_data[18]; // 342, 1664, 2196, 0, 736, -5201, 4860, 1613, 2116, ...
int subset_item_data_19 = subset_item_data[19]; // 437, 1469, 2196, 0, 736, -5203, 4860, 1604, 2116, ...
int subset_item_data_20 = subset_item_data[20]; // 437, 1469, 2405, 0, 953, -5203, 4860, 1604, 2116, ...
int subset_item_data_21 = subset_item_data[21]; // 390, 1468, 2363, 0, 1025, -5170, 4860, 1604, 2116, ...
int subset_item_data_22 = subset_item_data[22]; // 367, 1491, 1489, 0, 636, -5048, 5120, 410, 2116, ...
int subset_item_data_23 = subset_item_data[23]; // 410, 1463, 1557, 0, 563, -5170, 4860, 1604, 2116, ...
int subset_item_data_24 = subset_item_data[24]; // 450, 1152, 1369, 0, 512, -5040, 5119, 401, 2116, ...
int subset_item_data_25 = subset_item_data[25]; // 332, 1125, 1309, 0, 504, -5040, 5119, 401, 2116, ...
int subset_item_data_26 = subset_item_data[26]; // 332, 1125, 1537, 0, 609, -5040, 5119, 401, 2116, ...
int subset_item_data_27 = subset_item_data[27]; // 437, 1469, 1860, 0, 680, -5203, 4860, 1604, 2116, ...
int subset_item_data_28 = subset_item_data[28]; // 437, 1469, 1860, 0, 680, -5203, 4860, 1604, 2116, ...
int subset_item_data_29 = subset_item_data[29]; // 437, 1469, 1730, 0, 632, -5203, 4860, 1604, 2116, ...
int subset_item_data_30 = subset_item_data[30]; // 382, 990, 1281, 0, 549, -5040, 5119, 401, 2116, 4000, ...
int subset_item_data_31 = subset_item_data[31]; // 424, 1388, 1423, 0, 555, -5203, 4860, 1604, 2116, ...
int subset_item_data_32 = subset_item_data[32]; // 302, 1278, 1222, 0, 471, -5040, 5119, 401, 2116, ...
int subset_item_data_33 = subset_item_data[33]; // 302, 1278, 1432, 0, 573, -5040, 5119, 401, 2116, ...
int subset_item_data_34 = subset_item_data[34]; // 305, 1209, 1694, 0, 678, -5032, 5119, 392, 4164, ...
int subset_item_data_35 = subset_item_data[35]; // 305, 1209, 1679, 0, 641, -5032, 5119, 392, 4164, ...
int subset_item_data_36 = subset_item_data[36]; // 228, 899, 1287, 0, 423, -5173, 5119, 410, 2116, 5052, ...
int subset_item_data_37 = subset_item_data[37]; // 408, 1353, 1073, 0, 361, -5048, 5120, 410, 2116, ...
int subset_item_data_38 = subset_item_data[38]; // 408, 1353, 1239, 0, 470, -5048, 5120, 410, 2116, ...
int subset_item_data_39 = subset_item_data[39]; // 382, 990, 1586, 0, 606, -5040, 5119, 401, 2116, 4470, ...
int subset_item_data_40 = subset_item_data[40]; // 424, 1388, 1877, 0, 736, -5203, 4860, 1604, 2116, ...
int subset_item_data_41 = subset_item_data[41]; // 351, 1452, 1665, 0, 673, -5203, 4859, 1595, 2116, ...
int subset_item_data_42 = subset_item_data[42]; // 302, 1278, 1360, 0, 537, -5040, 5119, 401, 2116, ...
int subset_item_data_43 = subset_item_data[43]; // 305, 1209, 1449, 0, 584, -5032, 5119, 392, 4164, ...
int subset_item_data_44 = subset_item_data[44]; // 305, 1209, 1596, 0, 612, -5032, 5119, 392, 4164, ...
int subset_item_data_45 = subset_item_data[45]; // 228, 899, 1291, 0, 452, -5173, 5119, 410, 2116, 4813, ...
int subset_item_data_46 = subset_item_data[46]; // 309, 1383, 1395, 0, 503, -5203, 4860, 1604, 2116, ...
int subset_item_data_47 = subset_item_data[47]; // 269, 1009, 1586, 0, 606, -5168, 5118, 401, 2116, ...
int subset_item_data_48 = subset_item_data[48]; // 296, 1298, 1569, 0, 619, -5168, 5118, 401, 2116, ...
int subset_item_data_49 = subset_item_data[49]; // 296, 1298, 1620, 0, 630, -5168, 5118, 401, 2116, ...
int subset_item_data_50 = subset_item_data[50]; // 345, 1613, 1749, 0, 700, -5203, 4859, 1595, 2116, ...
int subset_item_data_51 = subset_item_data[51]; // 345, 1613, 1693, 0, 686, -5203, 4859, 1595, 2116, ...
int subset_item_data_52 = subset_item_data[52]; // 283, 1200, 1632, 0, 617, -5164, 5118, 392, 4164, ...
int subset_item_data_53 = subset_item_data[53]; // 264, 1156, 1933, 0, 706, -5203, 4859, 1586, 4164, ...
int subset_item_data_54 = subset_item_data[54]; // 309, 1383, 1821, 0, 718, -5203, 4860, 1604, 2116, ...
int subset_item_data_55 = subset_item_data[55]; // 269, 1009, 1527, 0, 559, -5168, 5118, 401, 2116, ...
int subset_item_data_56 = subset_item_data[56]; // 269, 1009, 1551, 0, 600, -5168, 5118, 401, 2116, ...
int subset_item_data_57 = subset_item_data[57]; // 296, 1298, 1651, 0, 639, -5168, 5118, 401, 2116, ...
int subset_item_data_58 = subset_item_data[58]; // 357, 1493, 1883, 0, 700, -5203, 4859, 1595, 2116, ...
int subset_item_data_59 = subset_item_data[59]; // 345, 1613, 1749, 0, 700, -5203, 4859, 1595, 2116, ...
int subset_item_data_60 = subset_item_data[60]; // 345, 1613, 1798, 0, 690, -5203, 4859, 1595, 2116, ...
int subset_item_data_61 = subset_item_data[61]; // 264, 1156, 1985, 0, 648, -5203, 4859, 1586, 4164, ...
int subset_item_data_62 = subset_item_data[62]; // 264, 1156, 1772, 0, 479, -5203, 4859, 1586, 4164, ...
int subset_item_data_63 = subset_item_data[63]; // 376, 1083, 1501, 0, 512, -5168, 5118, 401, 2116, ...
int subset_item_data_64 = subset_item_data[64]; // 301, 1333, 1854, 0, 587, -5235, 4858, 1595, 4164, ...
int subset_item_data_65 = subset_item_data[65]; // 301, 1333, 1885, 0, 638, -5235, 4858, 1595, 4164, ...
int subset_item_data_66 = subset_item_data[66]; // 265, 997, 1633, 0, 557, -5164, 5118, 392, 4164, 4913, ...
int subset_item_data_67 = subset_item_data[67]; // 265, 997, 1647, 0, 488, -5164, 5118, 392, 4164, 5428, ...
int subset_item_data_68 = subset_item_data[68]; // 264, 1156, 2028, 0, 614, -5203, 4859, 1586, 4164, ...
int subset_item_data_69 = subset_item_data[69]; // 264, 1156, 1768, 0, 540, -5203, 4859, 1586, 4164, ...
int subset_item_data_70 = subset_item_data[70]; // 244, 803, 1751, 0, 470, -5203, 4859, 1586, 4164, ...
int subset_item_data_71 = subset_item_data[71]; // 244, 803, 1183, 0, 411, -5203, 4859, 1586, 4164, ...
int subset_item_data_72 = subset_item_data[72]; // 434, 1520, 1865, 0, 628, -5234, 4859, 1604, 2116, ...
int subset_item_data_73 = subset_item_data[73]; // 301, 1333, 2039, 0, 569, -5235, 4858, 1595, 4164, ...
int subset_item_data_74 = subset_item_data[74]; // 301, 1333, 1885, 0, 638, -5235, 4858, 1595, 4164, ...
int subset_item_data_75 = subset_item_data[75]; // 265, 997, 1532, 0, 442, -5164, 5118, 392, 4164, 5521, ...
int subset_item_data_76 = subset_item_data[76]; // 247, 1183, 1775, 0, 504, -5235, 4858, 1595, 4164, ...
int subset_item_data_77 = subset_item_data[77]; // 236, 902, 1684, 0, 528, -5164, 5118, 392, 4164, 5226, ...
int subset_item_data_78 = subset_item_data[78]; // 264, 1156, 1633, 0, 434, -5203, 4859, 1586, 4164, ...
int subset_item_data_79 = subset_item_data[79]; // 244, 803, 1417, 0, 423, -5203, 4859, 1586, 4164, ...
int subset_item_data_80 = subset_item_data[80]; // 244, 803, 1149, 0, 466, -5203, 4859, 1586, 4164, ...
}
client.stop();
}