ThingSpeak com ESP8266 permite armazenar, processar e analisar dados de forma remota. Integrar o ESP8266 com a nuvem pode expandir significativamente as capacidades dos seus projetos, permitindo monitoramento e controle em tempo real de qualquer lugar do mundo.
Introdução aos Serviços de Nuvem
Os serviços de nuvem permitem armazenar, processar e analisar dados de forma remota. A integração do ThingSpeak com ESP8266 pode expandir significativamente as capacidades dos seus projetos, permitindo monitoramento e controle em tempo real de qualquer lugar do mundo.
A integração com serviços de nuvem utilizando ThingSpeak com ESP8266 e o Arduino IDE permite a criação de projetos IoT (Internet das Coisas) eficientes e acessíveis. Neste artigo, vamos explorar como enviar dados de temperatura e umidade para o ThingSpeak, um serviço de nuvem popular, utilizando apenas o ESP8266.
Serviços de Nuvem Populares
Existem vários serviços de nuvem que podem ser integrados com o Arduino, incluindo:
- ThingSpeak: Uma plataforma IoT que permite coletar, armazenar e visualizar dados de sensores.
- Firebase: Uma plataforma de desenvolvimento de aplicativos que oferece banco de dados em tempo real.
- AWS IoT: Um serviço da Amazon Web Services para conectar dispositivos IoT à nuvem.
Esquema de Ligação do Hardware para Integrar o ThingSpeak com ESP8266
Material necessário:
Nosso site cresce com seu apoio! Ao visitar as ofertas abaixo e realizar suas compras pelos links de afiliados, você nos ajuda a manter o conteúdo atualizado e gratuito. Aproveite as melhores ofertas da Amazon!
Componentes necessários: | Compre aqui: |
---|---|
1x ESP8266 (como NodeMCU, ou Wemos D1-Mini) | Amazon |
1x Sensor de Temperatura e Umidade DHT22 | Amazon |
1x Protoboard | Amazon |
1x Kit Cabos Jumper | Amazon |

Conexões:
- Conecte o pino VCC do sensor DHT ao 3.3V do ESP8266.
- Conecte o pino GND do sensor DHT ao GND do ESP8266.
- Conecte o pino de dados do DHT (geralmente marcado como OUT ou DATA) ao pino D4 (GPIO2) do ESP8266.
- Se necessário, adicione um resistor pull-up de 10kΩ entre o pino de dados e o pino VCC do DHT
Configuração do Software
1. Instale a Biblioteca DHT:
- No Arduino IDE, clique no ícone de Gerenciador de Bibliotecas na barra lateral esquerda.
- Na barra de busca, digite “DHT sensor library” e clique em Instalar.
2. Instale a Biblioteca ThingSpeak:
- No Arduino IDE, clique no ícone de Gerenciador de Bibliotecas na barra lateral esquerda.
- Na barra de busca, digite “ThingSpeak” e clique em Instalar.
Configuração do ThingSpeak
Pàssos para configurar o ThingSpeak:
- Acesse o ThingSpeak e crie uma conta.
- Faça login e clique em “Channels” > “New Channel“.
- Nomeie o canal e configure dois campos:
- Field 1: Temperatura
- Field 2: Umidade
- Salve as configurações e copie:
- O Channel ID.
- A Write API Key (encontrada na aba API Keys).
Código Completo para o Projeto: Integrando o ThingSpeak com ESP8266
#include <DHT.h> // Inclui a biblioteca para o sensor DHT
#include <ESP8266WiFi.h> // Inclui a biblioteca para a conexão Wi-Fi no ESP8266
#include <ThingSpeak.h> // Inclui a biblioteca para comunicação com o ThingSpeak
#define DHTPIN D4 // Define o pino digital onde o sensor DHT está conectado
#define DHTTYPE DHT22 // Define o tipo de sensor DHT (DHT11 ou DHT22)
DHT dht(DHTPIN, DHTTYPE); // Inicializa o sensor DHT
WiFiClient client; // Cria um cliente Wi-Fi
const char* ssid = "SEU_SSID"; // Define o SSID da rede Wi-Fi
const char* password = "SUA_SENHA"; // Define a senha da rede Wi-Fi
unsigned long myChannelNumber = YOUR_CHANNEL_NUMBER; // Define o número do canal ThingSpeak
const char* myWriteAPIKey = "YOUR_API_KEY"; // Define a chave de API para escrita no ThingSpeak
void setup() {
Serial.begin(115200); // Inicializa a comunicação serial a 115200 bps
dht.begin(); // Inicializa o sensor DHT
WiFi.begin(ssid, password); // Conecta à rede Wi-Fi
while (WiFi.status() != WL_CONNECTED) { // Aguarda a conexão Wi-Fi ser estabelecida
delay(500); // Espera 500ms
Serial.print("."); // Imprime um ponto na serial para indicar que está tentando conectar
}
ThingSpeak.begin(client); // Inicializa a comunicação com o ThingSpeak
}
void loop() {
float h = dht.readHumidity(); // Lê a umidade do sensor DHT
float t = dht.readTemperature(); // Lê a temperatura do sensor DHT
if (isnan(h) || isnan(t)) { // Verifica se a leitura do sensor falhou
Serial.println("Failed to read from DHT sensor!"); // Imprime uma mensagem de erro na serial
return; // Sai da função loop se a leitura falhou
}
ThingSpeak.setField(1, t); // Define o campo 1 do ThingSpeak com o valor da temperatura
ThingSpeak.setField(2, h); // Define o campo 2 do ThingSpeak com o valor da umidade
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); // Envia os dados para o ThingSpeak
delay(20000); // Espera 20 segundos antes de fazer uma nova leitura e envio
}
CEnviando Dados para o ThingSpeak com ESP8266
Com o código acima, o ESP8266 se conecta à rede Wi-Fi e envia dados de temperatura e umidade para o ThingSpeak a cada 20 segundos.
Lembre-se e Substitua:
- SEU_SSID e SUA_SENHA pelos dados da sua rede Wi-Fi.
- YOUR_CHANNEL_NUMBER e YOUR_API_KEY pelos valores fornecidos pelo ThingSpeak.
Solução de Problemas ao usar ThingSpeak com ESP8266
Problemas comuns e soluções:
1. Falhas na conexão Wi-Fi:
- Verifique o SSID e a senha.
- Certifique-se de que o roteador está funcionando e que o ESP8266 está dentro do alcance.
2. Erro na leitura do sensor (nan):
- Confira as conexões do sensor DHT.
- Certifique-se de que o tipo do sensor está configurado corretamente no código.
3. Erro ao enviar dados ao ThingSpeak com ESP8266:
- Confirme se o número do canal e a chave de API estão corretos.
- Verifique se o ThingSpeak não está limitando a frequência de envios (15 segundos para contas gratuitas).
Melhorias e Extensões Futuras
- Adicionar mais sensores: Expanda o projeto para incluir sensores como pressão barométrica (BMP180) ou luminosidade (LDR).
- Notificações em tempo real: Integre o projeto com serviços como IFTTT ou Firebase para alertas em casos de valores críticos.
- Visualização avançada: Use os gráficos e widgets do ThingSpeak para criar dashboards interativos.
Otimizando o Consumo de Energia
Para projetos alimentados por bateria, considere utilizar os modos de baixa potência do ESP8266, como o deep sleep, que pode ser ativado entre as medições para economizar energia.
ESP.deepSleep(20e6); // Dorme por 20 segundos
C++Conclusão
Integrando o ThingSpeak com ESP8266 e a plataforma Arduino IDE é uma maneira poderosa de monitorar e registrar dados ambientais. O ThingSpeak facilita a visualização e análise desses dados, tornando-o uma excelente escolha para projetos IoT. Com as práticas descritas, você pode criar sistemas robustos e escaláveis para diversas aplicações..
Links úteis:
- Link para a página Oficial da MathWorks -ThingSpeak Documentation.
- Link GitHub Adrafruit DHT Sensor Library
- Link GitHub Arduino Core for ESP8266 WiFi chip
Conheça mais…
