Índice:
- Etapa 1: LED sensível à luz
- Etapa 2: Mini interruptor de alimentação
- Etapa 3: segunda fotocélula
- Etapa 4: LED RGB
- Etapa 5: Sensor de temperatura
- Etapa 6: Motorredutor DAGU
- Etapa 7: Código
Vídeo: EF230 Smart Home Project: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Peças e materiais necessários:
- 1 Arduino MKR 1000
- 3 tábuas de pão
- 2 mini fotocélulas
- 1 Transistores NPN
- 1 mini interruptor de alimentação
- 1 LED - RGB (4 pinos)
- 1 LED (cor de sua escolha)
- 1 diodo 1N4148
- 1 Resistores de 10K Ohm
- 5 Resistor de 100 Ohm
- 1 Sensor de Temperatura TMP36
- 1 Motorredutor de relação DAGU 48: 1
- 25 fios de jumper
- Cabo USB
- Programa MATLAB
-
Guia do Experimento SIK para a Placa Arduino 101 / Genuino 101 - Link do Guia do Experimento SIK
Este projeto detalha o design conceitual de um sistema doméstico inteligente que usaria dados para ajudar os proprietários a otimizar o uso de energia e a segurança. Inclui um sensor de luz para acender as luzes externas à noite, um sensor de luz para segurança e um sensor de temperatura e ventilador para controle de temperatura interna.
Etapa 1: LED sensível à luz
- A configuração do LED sensível à luz deve representar as luzes externas de uma casa que se acendem à noite.
- Quando a mini fotocélula detecta uma quantidade reduzida de luz, o LED acende.
- Para uma casa inteligente, isso tem implicações de energia e segurança. Isso economizará energia, deixando as luzes apagadas durante o dia e proporcionará maior segurança à noite.
- A fiação e configuração exatas para esta parte do projeto podem ser encontradas no experimento 7 no Guia de experimentos SIK.
Etapa 2: Mini interruptor de alimentação
- A mudança é a primeira etapa no processo de segurança da casa inteligente.
- Quando ligado, o switch iniciará uma resposta perguntando ao usuário se deseja entrar no modo 'Casa' ou 'Ausente'.
- Se o modo 'Casa' for selecionado, a segurança será considerada desarmada, mas selecionar o modo 'Ausente' armará o sistema de segurança.
- A fiação para esta parte do projeto pode ser encontrada no experimento 6 no Guia de Experimentos. Para fins de casa inteligente, os LEDs e seus fios de conexão encontrados no experimento 6 não precisam ser incluídos.
Etapa 3: segunda fotocélula
- A segunda fotocélula funciona como um sensor de movimento para o sistema de segurança da casa inteligente.
- O sensor é usado apenas quando o sistema é colocado no modo 'Ausente' conforme descrito na etapa anterior.
- Se a fotocélula experimenta uma diminuição na quantidade de luz que recebe, ela reconhece isso como um movimento dentro da casa.
- A configuração para esta parte do projeto pode ser encontrada no experimento 7 no Guia de experimentos SIK. No entanto, apenas a fotocélula e seus fios de conexão precisam ser incluídos na fiação.
Etapa 4: LED RGB
- O LED RGB é usado em conjunto com o mini interruptor de alimentação e a segunda fotocélula para o sistema de segurança da casa inteligente.
- As três cores diferentes são usadas como indicadores para o residente em uma casa inteligente.
- Quando o sistema é colocado no modo 'Home', o LED fica azul. Quando o sistema é colocado no modo 'Ausente', o LED fica verde. Quando a fotocélula usada como sensor de movimento é acionada, a luz pisca em vermelho.
- A fiação para o LED RGB pode ser encontrada no experimento 3 do Guia de experimentos SIK.
Etapa 5: Sensor de temperatura
- O sensor de temperatura é a parte principal da conservação de energia em uma casa inteligente.
- O residente pode inserir uma temperatura desejada para sua casa quando a casa inteligente estiver em uso.
- O sensor de temperatura é como o sistema sabe a que distância a temperatura real está da temperatura desejada.
- A configuração do sensor de temperatura pode ser encontrada no experimento 9 do Guia de experimentos SIK.
Etapa 6: Motorredutor DAGU
- O motor permite que a casa inteligente regule a temperatura da casa com base na temperatura desejada e nas leituras do sensor de temperatura.
- Atuando como a unidade de CA em casa, o motor girará em velocidades diferentes com base em quanto mais alta a temperatura real do que a temperatura desejada. Quanto maior a diferença, mais rápido o motor gira.
- A fiação para o motor pode ser encontrada no Guia do Experimento no experimento 11.
Etapa 7: Código
- O código para a casa inteligente inclui várias interfaces de usuário que permitem ao residente entender facilmente como funciona e alterar facilmente as configurações.
- Com o sistema de casa inteligente, o residente receberá um alerta por e-mail se o sensor de movimento for acionado enquanto ele estiver ausente.
- A única alteração que precisa ser feita é inserir as informações do e-mail do remetente e do endereço de e-mail do destinatário.
limpar a; limpar s; claro m; clc; feche tudo; % Limpe as variáveis arduino e servo para que possam ser redefinidas todas as vezes para que o código seja executado de forma eficaz ("clear m" é necessário para que um dos loops while funcione corretamente) a = arduino (); % Defina a variável arduino
s = servo (a, 'D6'); % Definir a variável servo
% Inicializar variáveis de e-mail para e-mail de aviso do sistema de segurança
emails = {'inserir endereço do destinatário'}; % Matriz de e-mails para os quais o e-mail de segurança será enviado
% Configurações de preferência de e-mail necessárias para usar um Gmail para enviar e-mails de
setpref ('Internet', 'E_mail', 'endereço de e-mail do remetente');
setpref ('Internet', 'SMTP_Username', 'nome do remetente');
setpref ('Internet', 'SMTP_Password', 'senha do remetente');
props = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'true');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
% Assunto do email e variáveis de texto
subj = 'Alerta de intruso em sua casa';
text = 'Olá, este é o seu sistema de segurança Smart Home informando que foi detectado movimento fora de sua casa. Tomamos as medidas necessárias e contatamos as autoridades para você. Fique seguro.';
enquanto verdadeiro
prompt = {'Insira a temperatura inicial desejada (entre 65F e 85F):'}; % Prompt para menu de entrada do usuário
dlgtitle = 'Seleção de temperatura'; % Título para o menu de entrada do usuário
dims = [1 30]; % Dimensões para menu de entrada do usuário
definput = {'72'}; % Entrada padrão que aparece quando o menu é aberto pela primeira vez
tempsel_array = inputdlg (prompt, dlgtitle, dims, definput); % Menu pop-up de entrada do usuário que salvará o número inserido em um array
if ~ isempty (tempsel_array)% Se a matriz NÃO estiver vazia
tempsel_char = cell2mat (tempsel_array); % Converte o array em uma string de caracteres
tempsel = str2double (tempsel_char); % Converte a cadeia de caracteres em números
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Grave a temperatura selecionada em seu canal ThingSpeak
break% Quebra do loop while para que o menu não apareça várias vezes
else% Se o usuário clicar em cancelar em vez de inserir uma temperatura
msg1 = msgbox ('Nenhuma temperatura selecionada, o padrão é 85F', 'Aviso!'); % Mensagem exibida ao usuário após clicar em cancelar
waitfor (msg1); % Espere que a caixa de mensagem feche antes de continuar
tempsel = 85; % Defina a temperatura para o que foi declarado na caixa de mensagem
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Grave a temperatura selecionada em seu canal ThingSpeak
break% Quebra do loop while para que o menu não apareça várias vezes
fim
fim
enquanto verdadeiro
chID = 745517; % ThingSpeak Channel ID
writeKey = 'G9XOQTP8KOVSCT0N'; % Chave para acesso ao canal ThingSpeak
% Inicializar sensores para buscar dados
tempread = readVoltage (a, 'A3'); % Leia a tensão do sensor de temperatura
lightl1 = readVoltage (a, 'A2'); % Do nível de luz para o fotorresistor indo para o LED vermelho
lightl2 = readVoltage (a, 'A5'); % De nível de luz para o fotorresistor indo para o sistema de segurança
switchv = readVoltage (a, 'A0'); % Do valor para o switch
% Converte os dados de temperatura de tensão para graus Fahrenheit
tempC = (temperatura - 0,5) * 100; % Converte a tensão em temperatura em Celsius
tempF = (tempC * 9/5) + 32; % Converter temperatura em Celsius para temperatura em Fahrenheit
% Inicializa os números dos pinos para o LED multicolorido
redp = 'D9'; % Pin para luz vermelha do LED
greenp = 'D10'; % Pino para luz verde do LED
bluep = 'D11'; % Pin para luz azul do LED
if tempsel <tempF% Se a temperatura selecionada for maior que a temperatura ambiente
writePosition (s, 1); % Servo começará a se mover
pause (10)% Servo continuará girando por 10 segundos para representar que o AC desligaria após um determinado período de tempo
writePosition (s, 0); % Desligue o ventilador para continuar o código sem o ventilador ligado
tempsel = 150; % Altere o valor da temperatura para sair do circuito após o ventilador ter desligado, novamente apenas com o propósito de continuar o código
fim
if lightl1 <= 3% Se o primeiro fotorresistor detectar um nível de luz baixo
writeDigitalPin (a, 'A1', 1); % Liga o LED vermelho que representa as luzes externas
else% Se o nível de luz estiver alto novamente
writeDigitalPin (a, 'A1', 0); % Desligue o LED vermelho quando o nível de luz estiver alto o suficiente novamente
fim
if switchv> 3% Se o switch estiver ligado
A = existe ('m', 'var'); % Verifique a existência da variável 'm', ela será inicializada para o loop while e permitirá que seja interrompida quando um item de menu for selecionado (é por isso que o clear m deve ser feito no início do código)
enquanto A == 0% Loop será executado até que a variável 'm' exista
menutext = 'Qual modo de segurança você gostaria de entrar?'; % Texto para o menu de segurança
escolhas = {'Casa', 'Fora'}; % Opções para o menu de contexto de segurança
m = menu (menutext, escolhas); % Menu pop-up para modos de sistema de segurança
break% Garante que o loop while seja interrompido para que o menu não apareça várias vezes
fim
if m == 1% Se o modo 'Home' for selecionado
writeDigitalPin (a, bluep, 1); % Ligue apenas a luz azul no LED de mudança de cor
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
elseif m == 2% Se o modo 'Ausente' for selecionado
writeDigitalPin (a, bluep, 0);
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 1); % Ligue apenas a luz verde no LED de mudança de cor
if lightl2 <= 3% Se o nível de luz no segundo fotorresistor é baixo, representando o movimento detectado pelo sistema de segurança
sendmail (emails, assunto, texto); % Enviar um e-mail com as propriedades de e-mail definidas anteriormente writeDigitalPin (a, greenp, 0); % Flash vermelho ligado e desligado 2 vezes
writeDigitalPin (a, redp, 1);
pausa (0,3)
writeDigitalPin (a, redp, 0);
pausa (0,3)
writeDigitalPin (a, redp, 1);
pausa (0,3)
writeDigitalPin (a, redp, 0);
pausa (0,3)
writeDigitalPin (a, redp, 1); % Termine com vermelho sólido após piscar para mostrar que há movimento até que o nível de luz volte a subir
msg2 = msgbox ('Intruso detectado pelo sistema de segurança, um e-mail foi enviado aos proprietários para informá-los.', 'AVISO!'); % Caixa de mensagem para informar o usuário sobre o movimento e sobre o e-mail enviado. Waitfor (msg2)% Aguarde até que a caixa de mensagem feche antes de continuar
outro
writeDigitalPin (a, greenp, 1); % Assim que o nível de luz aumentar novamente, ele voltará a ficar verde
fim
fim
elseif switchv <3,3% se o switch estiver desligado
writeDigitalPin (a, bluep, 0); % Desligue o LED completamente para mostrar que o sistema de segurança está desligado
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
fim
fim
Recomendado:
Smart Home by Raspberry Pi: 5 etapas (com imagens)
Smart Home da Raspberry Pi: Já existem vários produtos que tornam o seu apartamento mais inteligente, mas a maioria deles são soluções proprietárias. Mas por que você precisa de uma conexão com a Internet para ligar a luz do seu smartphone? Essa foi uma das razões para eu construir meu próprio Smar
STONE LCD com Smart Home: 5 etapas
STONE LCD com Smart Home: Hoje, eu tenho o display da unidade de porta serial da STONE, que pode se comunicar através da porta serial do MCU, e o design lógico da interface do usuário deste display pode ser projetado diretamente usando o software VGUS fornecido no site oficial da STONE, que é muito convenie
Alexa Smart Home System usando o módulo de relé NodeMCU: 10 etapas
Alexa Smart Home System usando o módulo de relé NodeMCU: neste projeto de IoT, fiz o sistema Alexa Smart Home Automation usando o NodeMCU ESP8266 & Módulo de relé. Você pode controlar facilmente a luz, o ventilador e outros eletrodomésticos com o comando de voz. Para conectar o alto-falante inteligente Echo Dot ao
Automatic Smart Plant Pot - (DIY, 3D Printed, Arduino, Self Watering, Project): 23 etapas (com imagens)
Automatic Smart Plant Pot - (DIY, 3D Printed, Arduino, Self Watering, Project): Olá, Às vezes, quando saímos de casa por alguns dias ou estamos muito ocupados, as plantas da casa (injustamente) sofrem porque não são regadas quando estão preciso disso. Esta é a minha solução. É um vaso de plantas inteligente que inclui: Reservatório de água embutido. Um senso
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 etapas
Sonoff B1 Firmware Home Automation Openhab Google Home: Eu realmente gosto do firmware Tasmota para meus interruptores Sonoff. Mas a não estava muito feliz com o firmware Tasmota no meu Sonoff-B1. Não consegui integrá-lo totalmente ao meu Openhab e controlá-lo por meio do Google Home. Portanto, escrevi minha própria empresa