Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A automação residencial está se tornando cada vez mais popular, permitindo que os usuários controlem diversos dispositivos em suas casas de maneira eficiente e conveniente. Utilizar o Arduino para criar projetos de automação residencial é uma excelente maneira de aprender sobre eletrônica e programação, além de proporcionar soluções práticas para o dia a dia. Neste artigo, vamos desenvolver um projeto de automação residencial utilizando um Arduino, relé, sensor de temperatura e um módulo Wi-Fi. O objetivo é controlar um ventilador com base na temperatura ambiente e permitir o controle remoto via internet.
Project: O projeto consiste em criar um sistema de automação residencial que controla um ventilador com base na temperatura ambiente. Quando a temperatura ultrapassar um determinado limite, o ventilador será ligado automaticamente. Além disso, o sistema permitirá o controle remoto do ventilador via internet, utilizando um módulo Wi-Fi ESP8266. O projeto tem como objetivos principais:
Components List:
Examples:
// Incluindo as bibliotecas necessárias
#include <DHT.h>
#include <ESP8266WiFi.h>
// Definindo os pinos
#define DHTPIN 2 // Pino de dados do sensor DHT11
#define DHTTYPE DHT11 // Tipo de sensor DHT
#define RELAYPIN 3 // Pino de controle do relé
// Configurando o sensor DHT
DHT dht(DHTPIN, DHTTYPE);
// Configurações da rede Wi-Fi
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
// Variáveis globais
WiFiServer server(80);
float temperaturaLimite = 25.0; // Temperatura limite para ligar o ventilador
void setup() {
// Inicializando a comunicação serial
Serial.begin(115200);
// Inicializando o sensor DHT
dht.begin();
// Configurando o pino do relé como saída
pinMode(RELAYPIN, OUTPUT);
digitalWrite(RELAYPIN, LOW); // Ventilador desligado inicialmente
// Conectando à rede Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi conectado!");
// Iniciando o servidor
server.begin();
}
void loop() {
// Lendo a temperatura do sensor DHT11
float temperatura = dht.readTemperature();
// Verificando se a leitura é válida
if (isnan(temperatura)) {
Serial.println("Falha ao ler do sensor DHT!");
return;
}
// Exibindo a temperatura no monitor serial
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" *C");
// Controlando o ventilador com base na temperatura
if (temperatura > temperaturaLimite) {
digitalWrite(RELAYPIN, HIGH); // Liga o ventilador
} else {
digitalWrite(RELAYPIN, LOW); // Desliga o ventilador
}
// Verificando se há novos clientes conectados
WiFiClient client = server.available();
if (client) {
String request = client.readStringUntil('\r');
client.flush();
// Verificando o comando recebido via HTTP
if (request.indexOf("/LIGAR") != -1) {
digitalWrite(RELAYPIN, HIGH); // Liga o ventilador
} else if (request.indexOf("/DESLIGAR") != -1) {
digitalWrite(RELAYPIN, LOW); // Desliga o ventilador
}
// Enviando resposta ao cliente
client.print("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n");
client.print("<!DOCTYPE HTML>\r\n<html>\r\n");
client.print("Ventilador: ");
if (digitalRead(RELAYPIN) == HIGH) {
client.print("Ligado");
} else {
client.print("Desligado");
}
client.print("<br><a href=\"/LIGAR\">Ligar</a><br>");
client.print("<a href=\"/DESLIGAR\">Desligar</a><br>");
client.print("</html>");
delay(1);
client.stop();
}
}
Comentários detalhados no código:
DHT.h
e ESP8266WiFi.h
são incluídas para usar o sensor de temperatura DHT11 e o módulo Wi-Fi ESP8266.setup()
.setup()
, e o servidor é iniciado.loop()
, a temperatura é lida do sensor DHT11 e exibida no monitor serial.