Iluminação AC Inteligente com Arduino UNO e Relé – Controle Automático
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Lâmpada Fluorescente Compacta (Economia de Energia) | 1 |
| Fonte DC 5V | 1 |
| Jumpers (genéricos) | 1 kit |
| Módulo Relé (genérico) | 1 |
| Componentes Eletrônicos UTSOURCE | 1 |
Ferramentas e Máquinas Necessárias
- Chave de fenda (Philips para módulo relé)
Aplicativos e Serviços Online
- Microsoft Visual Studio 2015 (gratuito para Arduino) ou Arduino IDE
Sobre o Projeto
Luzes Inteligentes para Casa
Neste projeto, aprendemos a usar relé com sensor ultrassônico e Arduino para tornar luzes de casa (ou qualquer dispositivo) mais inteligentes.
Objetivo: Lâmpada econômica apaga ao sair do cômodo e acende ao retornar. Implementação fácil e rápida.
Pré-requisito: Conhecimento básico de Arduino.
⚠ ATENÇÃO: Este projeto usa alta tensão AC. Se tem < 16 anos ou pouca experiência, tenha supervisão de pessoa experiente na parte AC.
Alternativa segura: Complete o projeto com dispositivos DC de baixa tensão — prova o mesmo conceito. Avisarei claramente quando a parte perigosa começar.
Componentes
- Arduino Uno
- Multímetro
- Jumpers
- Protoboard
- Módulo Relé
- Sensor ultrassônico HC-SR04 + biblioteca NewPing (se primeira vez instalando biblioteca externa, veja aqui)
- Fonte DC (opcional)
- Chave de fenda Philips (para bornes do relé)
- Lâmpada econômica com soquete e plugue de parede (usei cabo de rádio velho para o plugue)
- Pistola de cola quente para isolar fios (preferível fita isolante)











Preparando o Ultrassônico

Conecte o sensor ultrassônico ao Arduino conforme imagem. Testaremos depois.
Módulo Relé: Conecte um canal (meu tem 2): VCC → 5V, IN1 → Pino 8 do Arduino (ou outro).
Importante: Meu módulo é active-low. Para descobrir o seu: ligue VCC/GND, toque IN em 5V — se nada acontece, é active-low; confirme tocando IN no GND. Mais sobre active-low vs active-high.

A Lâmpada (⚠ ALTA TENSÃO - CUIDADO!)


Um terminal da lâmpada direto no plugue. O outro: corte no meio, uma ponta no NO1 (Normalmente Aberto) do relé, outra no COM1, daí ao plugue.

Circuito final (lâmpada simplificada). Hardware pronto.

O código faz:
- Mede distância do ultrassônico
- Detecta se alguém passou pela porta
- Inverte estado da luz
Lendo Valores do Ultrassônico
Exemplo da biblioteca — imprime distância:
sonar.ping_cm(); // Centímetros
sonar.ping_inch(); // Polegadas
Define pinos e alcance máximo.

Problema: Ultrassônico às vezes lê distância errática.

Isso faria a luz piscar inadvertidamente. Soluções:
- Múltiplas leituras + média
- Filtro de mediana: Ordena leituras em array, pega valor central — remove ruído esporádico. NewPing já implementa:
sonar.ping_median(unsigned byte numReadings)(máx 512). Retorna tempo de eco; converta comsonar.convert_cm()ouconvert_in().
Outro detalhe: Sensor lê 0 se nada à frente. Solução: se 0, defina como MAX_DISTANCE. Código final de leitura (distance global):

Detectando Passagem
Distância crítica = metade da largura da porta (garante detecção de passagem). Luz só troca quando algo passa na frente — se alguém fica parado, nada acontece.

Pronto! Anexo projeto Visual Studio completo (pequena edição na biblioteca: alocação dinâmica em vez de arrays variáveis — VS não permite — + documentação).
Componentes eletrônicos em utsource.net
Se útil, respeite o projeto. Outros projetos: Arduino Color Mixer, RC Car com 1Sheeld, Artigo: Desenvolvendo Arduino com Visual Studio.
Código
Smart House Light (Arduino)
Controla relé baseado na leitura do ultrassônico:
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
#define RELAY_LINE1_PIN 8
#include "NewPing.h"
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
unsigned int critical_distance_cms = 50;
bool state = 0;
void setup() {
Serial.begin(9600);
pinMode(RELAY_LINE1_PIN, OUTPUT);
digitalWrite(RELAY_LINE1_PIN, HIGH); // Luz desligada (active-low)
}
void loop() {
delay(50);
unsigned int distance = readDistance();
Serial.print("Ultrassonico: ");
Serial.print(distance);
Serial.println("cm");
if (distance < critical_distance_cms) {
while (distance < critical_distance_cms) {
distance = readDistance();
delay(5);
}
state = !state;
if (state) {
Serial.println("Porta Aberta!");
digitalWrite(RELAY_LINE1_PIN, LOW); // Liga luz
} else {
Serial.println("Porta Fechada!");
digitalWrite(RELAY_LINE1_PIN, HIGH); // Desliga luz
}
}
}
unsigned int readDistance() {
unsigned int distance = sonar.convert_cm(sonar.ping_median(7));
if (distance == 0) distance = MAX_DISTANCE;
return distance;
}
Teste Ultrassônico (Arduino)
Imprime leituras do sensor:
// Exemplo NewPing - ping ~20x/seg
#include <NewPing.h>
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(115200);
}
void loop() {
delay(50);
Serial.print("Ping: ");
Serial.print(sonar.ping_cm());
Serial.println("cm");
}
Smart House Lights (Projeto Visual Studio completo)
https://github.com/shakram02/Arduino_SmartHouseLights.git
Esquemáticos

Processo de manufatura
- Detector de Idiomas TinyML com Edge Impulse no Arduino Nano 33 BLE Sense
- Construa um Jogo em Tempo Real com Giroscópio: Arduino Nano + Sensor MPU-6050
- Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
- Registrador de Temperatura e Umidade com Arduino, DHT11 e Ethernet Shield
- Sistema Automático de Rega de Plantas com Arduino
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Tênis Inteligentes com Auto-Ajuste e Colheita de Energia Integrada
- Medição de Distância em Tempo Real com Sonar Arduino e Visualização no Processing
- Celebre com Luz e Som: Projeto Arduino DIY de Aniversário
- Controle Suave de Brilho de LED com Bolt IoT e Arduino UNO