//https://circuits4you.com/2019/01/11/nodemcu-esp8266-arduino-json-parsing-example/ #include #include #include const char* SSID = "rede"; const char* PASSWORD = "senha"; String BASE_URL = "http://www.projeto8.migueldebarba.com.br/testejson.php"; String payload; void initSerial(); void initWiFi(); void httpRequest(String path); // ############### OBJECTS ################# // WiFiClient client; HTTPClient http; void setup() { initSerial(); initWiFi(); } // ############# HTTP REQUEST ################ // void httpRequest(String path) { String payload = makeRequest(path); if (!payload) { return; } } String makeRequest(String path) { http.begin(client, BASE_URL); int httpCode = http.GET(); //Send the request if (httpCode > 0) { //Check the returning code payload = http.getString(); //Get the request response payload } if (httpCode < 0) { Serial.println("request error - " + httpCode); return ""; } if (httpCode != HTTP_CODE_OK) { return ""; } String response = http.getString(); http.end(); return response; } // implementacao dos prototypes void initSerial() { Serial.begin(115200); } void initWiFi() { delay(10); Serial.println("Conectando-se em: " + String(SSID)); WiFi.begin(SSID, PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.print("Conectado na Rede " + String(SSID) + " | IP => "); Serial.println(WiFi.localIP()); } void loop() { Serial.println("[GET] /testejson.php"); Serial.println(""); httpRequest("GET"); Serial.println("payload: " + payload); // Cria documento JSON (buffer) StaticJsonDocument<300> doc; // Desserializa DeserializationError error = deserializeJson(doc, payload); if (error) { Serial.print(F("Erro ao desserializar: ")); Serial.println(error.f_str()); return; } // Como é um array, pegamos o primeiro elemento JsonObject painel = doc[0]; // Acessa os campos int idpainel = painel["idpainel"]; const char* mac = painel["mac_idmac"]; const char* nome = painel["nome"]; int ledr = painel["ledr"]; int ledg = painel["ledg"]; int ledb = painel["ledb"]; // Mostra no Serial Serial.println("=== Dados do Painel ==="); Serial.print("ID: "); Serial.println(idpainel); Serial.print("MAC: "); Serial.println(mac); Serial.print("Nome: "); Serial.println(nome); Serial.print("LED R: "); Serial.println(ledr); Serial.print("LED G: "); Serial.println(ledg); Serial.print("LED B: "); Serial.println(ledb); delay(10000); }