Dispositivos Arduino e AC - Luzes Automáticas
Componentes e suprimentos
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 |
Ferramentas e máquinas necessárias
|
Aplicativos e serviços online
![]() |
| |||
![]() |
|
Sobre este projeto
Smart House Lights
Neste projeto, aprenderemos como usar o relé com sensor ultrassônico e Arduino para tornar as luzes de nossa casa (ou qualquer dispositivo) mais inteligentes.
Nosso objetivo é fazer com que uma lâmpada economizadora de energia desligue quando você sair da sala e ligue quando você voltar. É tão fácil para implementar e leva um pouco de tempo.
Este tutorial assume básico Conhecimento do Arduino. Se você já usou o Arduino antes, está tudo bem.
Cuidado:este projeto usa fonte de alimentação CA de alta tensão; se você tiver menos de 16 anos ou não tiver experiência suficiente, deve ter uma pessoa experiente para ajudá-lo com a parte CA.
No entanto, você pode concluir o projeto usando dispositivos DC que funcionam em baixa tensão e irão provar o mesmo conceito. Declararei o aviso claramente quando começar a ser perigoso.
Componentes
1) Arduino Uno

2) Multímetro

3) Fios de ligação

4) Placa de ensaio

5) Módulo Realy

6) Sensor ultrassônico (HC-SR04) e biblioteca ultrassônica para o Arduino você encontra aqui chama-se biblioteca (New Ping), se é a primeira vez que instala uma biblioteca externa ao Arduino verifique este link.

7) Fonte de alimentação DC (opcional)

8) Chave de fenda (tipo + para o módulo de relé)

9) Lâmpada economizadora de energia com suporte e plugue de parede (usei um cabo de força de rádio antigo para obter o plugue).

Também usei uma pistola de cola para prender as pontas dos fios, você deve usar uma fita isolante.

10) Visual Studio para escrever código Arduino, quer saber como? verifique este link, é totalmente grátis ou você pode usar o IDE do Arduino.
Vamos começar.

Preparando o ultrassônico
Primeiramente, saberemos como conectar o sensor ultrassônico ao Arduino, que é ilustrado na imagem abaixo. Mais tarde, descreveremos como testar o sensor ultrassônico.

O Módulo de Relé
Em seguida, conectaremos um canal do módulo de relé (já que o que tenho tem 2 canais), o pino Vcc vai para 5v e o IN1 vai para o pino 8 do Arduino (ou qualquer pino de sua escolha).
É importante notar que meu módulo de relé está ativo-baixo, para saber qual é a diferença entre ativo-baixo e ativo-alto verifique este link. Portanto, antes de continuar você deve saber o modo ativo do seu relé, para fazer isso você simplesmente conecta o Vcc e o GND normalmente e então conecta o pino IN a 5V se nada acontecer, então ele está ativo baixo para garantir que conecte o pino IN ao GND.

A lâmpada
Em seguida, prepare a lâmpada para ser conectada ao plugue da parede e o relé um terminal será conectado diretamente no plugue, o outro terá um corte no meio do caminho, uma extremidade do corte irá para o modo Normalmente aberto pino (NO1) no módulo de relé, o outro irá para o pino COM1 e depois para o plugue.


O circuito final torna-se (A lâmpada é simplificada :))

Agora terminamos com o hardware.

O código faz o seguinte
- Mede a distância do ultrassom
- Verifica se alguém passou pela porta
- Muda o estado da luz
Lendo valores do ultrassônico
Agora vamos tentar o sensor ultrassônico, este é o exemplo da biblioteca, é muito simples e direto, pois apenas imprime a distância que lê.
Você pode obter a distância em centímetros ou polegadas usando (sonar é o nome da instância ultrassônica).
sonar.ping_cm ();
// Ou
sonar.ping_inch ();
Como podemos ver, também define os pinos do sensor ultrassônico e a faixa máxima desejada.

Infelizmente, às vezes o sensor ultrassônico lê uma distância defeituosa de vez em quando.

O que pode manter a luz acesa e apagada involuntariamente, para corrigir esse problema devemos fazer uma série de leituras e selecionar sua média, outra forma de consertar é usar o filtro de mediana que simplesmente faz uma série de leituras, classifica-as em uma matriz e seleciona o valor no meio, que é tão legal para remover o ruído se ocorrer com frequência.
Felizmente, a biblioteca NewPing tem esse filtro implementado em uma função chamada
sonar.ping_median (byte sem sinal numReadings);
Você simplesmente passa o número de leituras que deseja considerar como uma amostra máxima de 512, pois elas estão usando byte sem sinal .
esta função retorna o tempo que o eco usado para retornar, que deve ser convertido para a unidade de comprimento que você está usando, isso também é prontamente implementado na biblioteca usando
sonar.convert_cm (unsigned int echoTime);
// Ou
sonar.convert_in (unsigned int echoTime);
O último problema com o ultrassom é que lê 0 se não houver nada na frente dele , isso é resolvido simplesmente dizendo a ele para definir a distância para MAX_DISTANCE se for 0, finalmente o código para ler o sensor torna-se (a distância é uma variável global):

Detectando que algo passou
Agora vamos começar a codificação, para saber que alguém passou pelo ultrassônico deve ler uma distância crítica que pode ser simplesmente a metade da largura da porta. por isso temos sempre a certeza de que alguém está a passar pela porta.
Outra coisa que quero ter em mente é que a luz apenas mudar quando algo passou na frente do ultrassom, isso significa que se alguém ficar parado na frente dele, nada acontecerá. O código para fazer isso é o seguinte

Parabéns !! agora que você terminou, anexarei todo o projeto do Visual Studio enquanto faço uma pequena edição na biblioteca (usei alocação de memória dinâmica em vez de arrays de tamanho variável - como o Visual Studio não permite -) e adicionei alguma documentação.
Verifique os componentes eletrônicos em utsource.net
Por favor, respeite este projeto se você achar útil, outros projetos:
Arduino color mixer
Carro RC usando 1Sheeld
Artigos
Desenvolvendo Arduino usando Visual Studio
Código
- Iluminação interna inteligente
- Teste ultrassônico
Smart House Light Arduino
Este código obtém a leitura de entrada do ultrassônico e controla o relé de acordo#define TRIGGER_PIN 12 // Pino do Arduino amarrado ao pino do gatilho no sensor ultrassônico. # Define ECHO_PIN 11 // Pino do Arduino amarrado ao pino do eco no sensor ultrassônico . # define MAX_DISTANCE 200 // Distância máxima para a qual queremos pingar (em centímetros). A distância máxima do sensor é estimada em 400-500cm. [este é um número arbitrário] #define RELAY_LINE1_PIN 8 # inclui o sonar NewPing "NewPing.h" (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Configuração de NewPing de pinos e distância máxima.unsigned int critical_distance_cms =50; // Distância de corte na qual a luz mudará [este é um número arbitrário] bool state =0; void setup () {Serial.begin (9600); // Abra o monitor serial em 115200 baud para ver os resultados do ping. pinMode (RELAY_LINE1_PIN, OUTPUT); digitalWrite (RELAY_LINE1_PIN, HIGH); // Apaga a luz} void loop () {delay (50); // Aguarde 50 ms entre os pings (cerca de 20 pings / s). 29 ms deve ser o menor atraso entre os pings. distância interna sem sinal =readDistance (); // Distância atual de qualquer objeto voltado para o sensor ultrassônico Serial.print ("Ultrasonic:"); Serial.print (distância); // Envia o ping, obtém a distância em cm e imprime o resultado (0 =fora da faixa de distância definida) Serial.println ("cm"); // Alguém está perto da porta if (distanceTeste ultrassônico Arduino
Código para fazer com que as impressões ultrassônicas tenham o valor que está lendo// ----------------------------------- ---------------------------------------- // Exemplo de esboço da biblioteca NewPing que faz um ping cerca de 20 vezes por segundo.// ------------------------------------------ --------------------------------- # include#define TRIGGER_PIN 12 // Arduino pin amarrado a pino de disparo no sensor ultrassônico. # define ECHO_PIN 11 // Pino do Arduino amarrado ao pino de eco no sensor ultrassônico. # define MAX_DISTANCE 200 // Distância máxima para a qual queremos pingar (em centímetros). A distância máxima do sensor é avaliada em 400-500cm. Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Configuração de NewPing de pinos e configuração de distância máxima.void () {Serial.begin (115200); // Abra o monitor serial em 115200 baud para ver os resultados do ping.} Void loop () {delay (50); // Aguarde 50 ms entre os pings (cerca de 20 pings / s). 29 ms deve ser o menor atraso entre os pings. Serial.print ("Ping:"); Serial.print (sonar.ping_cm ()); // Enviar ping, obter a distância em cm e imprimir o resultado (0 =fora da faixa de distância definida) Serial.println ("cm");} Luzes da casa inteligente
Este é o projeto completo para Visual Studio com a biblioteca editadahttps://github.com/shakram02/Arduino_SmartHouseLights.git
Esquemas
Este é o circuito completo que descreve todo o projeto
Processo de manufatura
- Detector de linguagem TinyML baseado em Edge Impulse e Arduino
- Jogo Arduino Gyroscope com MPU-6050
- Dados digitais Arduino
- Registrador de dados de temperatura e umidade
- Sistema de rega automática de plantas com Arduino
- Encontre-me
- Sapatos inteligentes (com laço automático e geração de eletricidade)
- Sonar usando arduino e exibição no IDE de processamento
- Feliz Aniversário:Luzes e sons
- Controle de brilho do LED usando Bolt e Arduino