Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Projeto de Automação Residencial com Arduino

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:

  • Monitorar a temperatura ambiente utilizando um sensor de temperatura.
  • Ligar ou desligar o ventilador automaticamente com base na temperatura.
  • Permitir o controle remoto do ventilador via internet.

Components List:

  • 1 x Arduino Uno
  • 1 x Sensor de Temperatura DHT11
  • 1 x Módulo Relé
  • 1 x Módulo Wi-Fi ESP8266
  • 1 x Ventilador (pode ser um ventilador pequeno de 5V ou 12V)
  • 1 x Protoboard
  • Jumpers e fios de conexão

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:

  • As bibliotecas DHT.h e ESP8266WiFi.h são incluídas para usar o sensor de temperatura DHT11 e o módulo Wi-Fi ESP8266.
  • Os pinos do Arduino são definidos para o sensor DHT11 e o módulo relé.
  • O sensor DHT11 é inicializado no setup().
  • A conexão Wi-Fi é estabelecida no setup(), e o servidor é iniciado.
  • No loop(), a temperatura é lida do sensor DHT11 e exibida no monitor serial.
  • O ventilador é controlado com base na temperatura lida.
  • O servidor verifica se há novos clientes conectados e processa os comandos HTTP para ligar ou desligar o ventilador.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.