Este tópico contém respostas, possui 2 vozes e foi atualizado pela última vez por  Giovanni Bauermeister 7 meses .

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #78429

    rtadeupl
    Participante

    Boa noite, estou com esta API do clima tempo http://apiadvisor.climatempo.com.br/api/v1/forecast/locale/6879/days/15?token=9abca298b8c2f78e643146eafbb38340 que me retorna o json abaixo:

    {

    “id” :6897

    “<span class=”json-viewer style-scope key-name”>name</span>“: “<span class=”json-viewer style-scope stringValue”>Belo Horizonte</span>“

    “state”:”MG”

     

    • Este tópico foi modificado 8 meses por  rtadeupl.
    • Este tópico foi modificado 8 meses por  rtadeupl.
    0
    #78433

    rtadeupl
    Participante

    TEXTO COMPLETO

    Boa noite, estou com esta API do clima tempo http://apiadvisor.climatempo.com.br/api/v1/forecast/locale/6879/days/15?token=9abca298b8c2f78e643146eafbb38340 que me retorna o json abaixo:
    {

    “id“: 6879
    “name“: “Belo Horizonte“
    “state“: “MG“
    “country“: “BR “
    “data“:
    {

    “date“: “2018-10-02“
    “date_br“: “02/10/2018“
    “humidity“: {

    “min“: 52
    “max“: 95
    }
    “rain“: {

    “probability“: 90
    “precipitation“: 10
    }………….

    eu preciso somente da variável “probability” que usarei em conjunto com um sensor de umidade do solo. Tentei seguir pelo curso do FreeRtos porem não estou conseguindo. Alguém poderia me ajudar com um exemplo de código por favor? Abaixo tem um codigo basico que fiz e está funcionando, porem ele imprime o json completo:

    #include <WiFi.h>
    #include <HTTPClient.h>

    const char* ssid = “Restaurante_Tadeu”;
    const char* password = “04190525”;

    void setup() {

    Serial.begin(9600);
    delay(4000);
    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(10000);
    Serial.println(“Connecting to WiFi..”);
    }

    Serial.println(“Connected to the WiFi network”);

    }

    void loop() {

    if ((WiFi.status() == WL_CONNECTED)) { //Check the current connection status

    HTTPClient http;

    http.begin(“http://apiadvisor.climatempo.com.br/api/v1/forecast/locale/6879/days/15?token=9abca298b8c2f78e643146eafbb38340”);
    int httpCode = http.GET();
    if (httpCode > 0) { //Check for the returning code

    String payload = http.getString();
    Serial.println(httpCode);
    Serial.println(payload);
    }

    else {
    Serial.println(“Error on HTTP request”);
    }

    http.end(); //Free the resources
    }

    delay(10000);

    }

    0
    #80879

    Olá amigo!

    Já experimentou usar a biblioteca ArduinoJson?

    https://github.com/bblanchon/ArduinoJson

    Neste post que fiz usei para receber dados de cor RGB em formato JSON via HTTP

    Como controlar fita de leds por wifi usando ESP8266

    No seguinte trecho faço a conversão para os objetos individuais de cada cor Red Green e Blue

    // recebe os dados RGB, imprime na serial e chama funcao para mudanca de cor da fita de LED
    void handleColorData() {
      String data = server.arg("plain");
      server.send(204,"");
      StaticJsonBuffer<200> jBuffer;
      JsonObject& jObject = jBuffer.parseObject(data);
      int colorR = jObject["r"];
      int colorG = jObject["g"];
      int colorB = jObject["b"];
      Serial.print(colorR);
      Serial.print(" : ");
      Serial.print(colorG);
      Serial.print(" : ");
      Serial.println(colorB);
      changeColor(colorR, colorG, colorB);
      digitalWrite(led, !digitalRead(led));  
    }

    No seu caso o payload seria todo o JSON, aí basicamente é só separar em objetos

    Espero que ajude!

    0
Visualizando 3 posts - 1 até 3 (de 3 do total)

Você deve fazer login para responder a este tópico.