Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
O monitoramento de sensores é uma aplicação crucial em diversos campos, como automação residencial, agricultura de precisão e sistemas de segurança. Utilizando a plataforma Arduino, é possível criar sistemas de monitoramento eficientes e customizáveis que coletam e processam dados de diferentes tipos de sensores. Este artigo aborda a criação de um projeto de monitoramento de temperatura e umidade utilizando um sensor DHT11, um display LCD 16x2 e um módulo WiFi para enviar os dados para uma plataforma online.
Projeto: O projeto consiste em monitorar a temperatura e a umidade de um ambiente utilizando um sensor DHT11, exibir os dados em um display LCD 16x2 e enviar essas informações para uma plataforma online através de um módulo WiFi ESP8266. O objetivo é criar um sistema simples e eficiente que permita o acompanhamento remoto das condições ambientais.
Lista de componentes:
Exemplos:
Código para leitura do sensor DHT11 e exibição no LCD:
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2 // Pino digital onde o DHT11 está conectado
#define DHTTYPE DHT11 // Definindo o tipo de sensor DHT
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço I2C do LCD
void setup() {
lcd.begin();
lcd.backlight();
dht.begin();
lcd.print("Inicializando...");
delay(2000);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
lcd.clear();
lcd.print("Erro no sensor");
return;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Umid: ");
lcd.print(h);
lcd.print(" %");
delay(2000); // Atualiza a cada 2 segundos
}
Código para enviar dados para uma plataforma online usando ESP8266:
#include <ESP8266WiFi.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const char* server = "api.thingspeak.com";
String apiKey = "SUA_API_KEY";
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi conectado");
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Erro ao ler o sensor DHT");
return;
}
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
if (client.connect(server, 80)) {
String postStr = apiKey;
postStr += "&field1=";
postStr += String(t);
postStr += "&field2=";
postStr += String(h);
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
Serial.println("Dados enviados para ThingSpeak");
}
client.stop();
}
delay(20000); // Envia a cada 20 segundos
}