Introdução
Neste artigo, mostraremos como criar e interpretar JSON na placa de desenvolvimento ESP32-C6 DevKitC-1 e a Arduino IDE.
Nosso projeto terá como objetivo fazer uma requisição HTTP GET para receber e processar os dados em formato JSON da API OpenWeatherMap, um serviço gratuito de previsão do tempo
Para conhecer mais a placa de desenvolvimento consulte nosso artigo Introdução à Placa ESP32-C6-DevKitC-1: Ideal para IoT
O que é JSON?
O JSON (JavaScript Object Notation) é um formato leve de troca de dados, baseado em texto e fácil de ler tanto para humanos quanto para máquinas. Sendo util para:
- Enviar dados para um servidor por API
- Armazenar dados em arquivos locais
- Padronizar mensagens com qualquer linguagem de programação
Exemplo:
{
"temperatura": 25.6,
"umidade": 70,
"status": "OK"
}
Criando a chave de API
- Crie uma conta gratuita no OpenWeatherMap
- No painel, acesse API Keys e copie sua chave
Instalação de Bibliotecas
Abra a Arduino IDE e siga os passos abaixo:
- Vá em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas.
- Busque por ArduinoJson by Benoit Blanchon
- Instale a biblioteca mais recente
Materiais Necessários
Para desenvolver nossa aplicação os materiais utilizados foram:
- Placa ESP23-C6 DevKitC-1
- Cabo USB-C
- Arduino IDE
Para configurar o ambiente e instalar o suporte a ESP32-C6 veja o artigo ESP32-C6 na Prática: Seu Primeiro “Hello World”
Circuito
Código
Vamos criar uma função para realizar uma requisição GET na API do OpenWeatherMap. Para isso, vamos nos basear no formato da resposta da API, ou seja, a estrutura de dados que será devolvido na requisição. Assim podemos estruturar como receber os dados no nosso código.
#include <ArduinoJson.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include "credentials.h"
// Credenciais de rede WiFi
const char* ssid = SSID;
const char* password = PASSWORD;
// OpenWeatherMap
String apiKey = API_KEY;
String cidade = "Sao%20Paulo,br"; // Espacos devem respeitar a URL-encode e substituir por %20
String url = "http://api.openweathermap.org/data/2.5/weather?q=" + cidade + "&appid=" + apiKey + "&units=metric&lang=pt";
void getOpenWeatherMapData() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http; // Cria uma instância do cliente HTTP
http.begin(url);
int httpCode = http.GET();
if (httpCode == 200) {
String payload = http.getString();
// Criar documento JSON
JsonDocument doc;
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
float temperatura = doc["main"]["temp"];
int umidade = doc["main"]["humidity"];
const char* descricao = doc["weather"][0]["description"];
const char* cidadeNome = doc["name"];
Serial.println("------ Clima Atual ------");
Serial.print("Cidade: ");
Serial.println(cidadeNome);
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
Serial.print("Umidade: ");
Serial.print(umidade);
Serial.println(" %");
Serial.print("Condição: ");
Serial.println(descricao);
Serial.println("-------------------------\n");
} else {
Serial.println("Erro ao interpretar JSON");
}
} else {
Serial.print("Erro na requisição: ");
Serial.println(httpCode);
}
http.end();
}
}
Também criamos duas funções de exemplo de criação e leitura de um documento JSON. O exemplo completo pode ser acessado em:
https://github.com/guilhermefernandesk/ESP32-C6/tree/main/openWeatherMap
Atenção: Caso você tenha um “Erro na requisição: -1”. Tente alterar as credenciais para o hotspot do seu celular.
Resultados

Conclusão
Neste artigo, apresentamos como o ESP32-C6 DevKitC-1 pode facilmente consumir uma API e interpretar dados em JSON utilizando a biblioteca ArduinoJson.
Esse mesmo conceito pode ser expandido para qualquer outra API REST, tornando o ESP32 uma poderosa ponte entre o mundo físico (sensores e atuadores) e o digital (servidores e dashboards).
Convidamos você a explorar outras aplicações integrando o JSON, como: trocar envio de strings por JSON.
Sinta-se à vontade para compartilhar seus resultados com a comunidade, seja por artigos, vídeos ou repositórios abertos. Sua experiência pode inspirar e auxiliar muitos outros desenvolvedores.
Referências
- Introdução à Placa ESP32-C6-DevKitC-1: Ideal para IoT
- ESP32-C6 na Prática: Seu Primeiro “Hello World”
- Current weather data – OpenWeatherMap
- bblanchon/ArduinoJson: 📟 JSON library for Arduino and embedded C++. Simple and efficient.
- https://github.com/guilhermefernandesk/ESP32-C6/tree/main/openWeatherMap




