Índice:

Arduino Smart Home System: 7 etapas
Arduino Smart Home System: 7 etapas

Vídeo: Arduino Smart Home System: 7 etapas

Vídeo: Arduino Smart Home System: 7 etapas
Vídeo: Home Automation 32CH Distribution Board DIY | Smart IOT Project 2023! 2024, Novembro
Anonim
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System

Neste Instructable, mostraremos como criar seu próprio sistema de casa inteligente com o App Designer do MATLAB com uma placa Sparkfun Red. Este Instructable pode ser usado para ajudar a obter uma compreensão básica do App Designer do MATLAB, bem como usar um fotorresistor, servomotor e um sensor de movimento PIR.

Etapa 1: Para começar: materiais

Este projeto requer os seguintes materiais:

- Arduino Uno (para este projeto, usamos uma placa Sparkfun Red)

- Um fotorresistor

- Um minisservo motor

- Um servo motor contínuo

- Um sensor de movimento PIR

- Um sensor de temperatura

- 2 LEDs

- Fios e resistores conforme necessário

Etapa 2: Etapa 2: Abordando o problema a ser resolvido

O principal objetivo deste projeto era criar um sistema doméstico inteligente fácil de usar, codificando uma placa Arduino Uno com MATLAB. Inicialmente, pensamos em trabalhar apenas com um sensor de temperatura e umidade; no entanto, se ficássemos com esses dois sensores, nosso sistema de casa inteligente não seria facilmente comercializável para o público em geral. Decidimos que queríamos criar um sistema geral de energia residencial inteligente que funcionasse como um termostato inteligente e sistema de segurança. Por fim, queríamos trabalhar com o AppDesigner do MATLAB para que o usuário pudesse alterar a casa inteligente com facilidade.

Etapa 3: Etapa 3: Configurando a GUI e o fluxo de código básico

Etapa 3: Configurando a GUI e o fluxo de código básico
Etapa 3: Configurando a GUI e o fluxo de código básico

Para começar, você precisará abrir o AppDesigner do MATLABs e colocar o seguinte:

Dois campos de edição numéricos para uma entrada de limite quente e fria

Um botão para destrancar a porta

E quatro lâmpadas indicadoras para a lareira, porta, ventilador e holofote.

Duas etiquetas para se comunicar com o usuário.

Para este projeto, achamos mais fácil trabalhar com variáveis globais e a função de inicialização dentro do designer. Você precisará dessas variáveis na função de inicialização:

global a

a = arduino ('COM3', 'uno', 'Bibliotecas', 'Servo'); global s global p global hotUI global coldUI global desbloquear temp global global curr_temp global int_light

No momento, só temos uma atribuição para a variável a para que seu computador possa ler o arduino. COM3 pode ser diferente dependendo de qual porta seu computador pode estar usando.

Quando você executa o código, ele começa na função de inicialização criando as variáveis globais e calibrando o sistema. No final desta função, haverá uma função de timer que chama uma propriedade que chamamos de Timer. Dentro dessa propriedade Timer, colocamos o código que executa o sistema inicial para que o cronômetro não execute novamente o código de calibração.

Nota: Não demos nenhuma instrução de fiação para o sistema. Referimo-nos ao manual que acompanha a placa SparkFun Red.

Etapa 4: Etapa 3: Configuração do sistema de termostato

Etapa 3: Configurando o sistema do termostato
Etapa 3: Configurando o sistema do termostato
Etapa 3: Configurando o sistema do termostato
Etapa 3: Configurando o sistema do termostato

A função do termostato funciona da seguinte maneira:

O usuário irá inserir a temperatura que considera ser muito quente ou muito fria. Assim que o termômetro fizer uma leitura, se a casa estiver muito fria, a "lareira" (um LED vermelho) acenderá e aquecerá a casa. Se a casa estiver muito quente, um "ventilador" (servo motor contínuo) ligará o resfriamento da casa.

Para codificar o sistema do termostato:

Começaremos na função de inicialização para exibir a temperatura atual e permitir que o usuário insira seus limites de frio e calor.

p = 'A0'% pino fotorresistor

volt = readVoltage (a, temp); celc = (volt-0,5). * 100; curr_temp = celc * 9/5 + 32; app. Label_4. Text = num2str (curr_temp); % O número da etiqueta pode alterar a pausa (10); % Pode querer mudar !!!!!

Em seguida, concluiremos o sistema de termostato dentro da propriedade Timer.

global curr_temp

coldUI global global uma hotUI global se curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; % Torna a lâmpada da GUI verde writePWMDutyCycle (a, 'D11',.9)% As próximas três linhas de código executam a pausa do ventilador servo (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; % Isso desliga todas as lâmpadas da GUI e o app da lareira. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); fim

Etapa 5: Etapa 4: Configurando o sistema de portas

Etapa 4: Configurando o sistema de portas
Etapa 4: Configurando o sistema de portas

A função da porta funciona da seguinte forma:

Quando você executa o código MATLAB pela primeira vez, o aplicativo pede que você abra a porta para que o fotorresistor possa fazer uma leitura de luz inicial. Depois de concluído, o cronômetro será ativado e o fotorresistor fará leituras de luz secundária. Se a leitura da luz secundária for mais clara do que a inicial, um servo motor irá travar a porta. Se o usuário quiser a porta destrancada, ele pode pressionar um botão no aplicativo que irá destrancar a porta.

Para configurar o servo motor e fotorresistor:

Para codificar o sistema da porta:

Começaremos na função de inicialização para fazer as leituras de luz iniciais.

s = servo (a, 'D9')% O pino pode mudar com base na fiação

app. Label_4. Text = 'Abra a porta para calibrar o sistema'; pausa (15); % Isso dá tempo para o usuário abrir a porta int_light = readVoltage (a, p); app. Label_4. Text = 'Você pode remover seu dedo';

A seguir, iremos completar o código dentro da propriedade Timer

desbloqueio global

global int_light global s global a% Obtenha uma leitura de luz atual para comparar curr_light = readVoltage (a, p); % - Bloquear porta - se int_light <curr_light writePosition (s, 1)% As posições do servo podem diferir por pausa do motor (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; fim% - Destravar porta - se destravar == 1234 pausa (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; fim

Por fim, criaremos o retorno de chamada do botão de desbloqueio. Depois que o usuário pressiona o botão de desbloqueio, o desbloqueio da variável global receberá um número que pode completar a instrução if final na propriedade Timer.

desbloqueio global

desbloquear = 1234;

Etapa 6: Etapa 6: Configuração do sistema de holofotes

Etapa 6: Configuração do sistema de holofotes
Etapa 6: Configuração do sistema de holofotes

A função do holofote funciona da seguinte forma:

Ao iniciar o código MATLAB, o sensor de movimento PIR começará a detectar movimento. Assim que detectar algum tipo de movimento, ele cortará o sinal de energia. Assim que o sinal for cortado, um holofote acenderá do lado de fora da casa.

Para configurar o sistema de holofotes:

Para codificar o sistema de holofotes:

Desta vez, podemos pular para a propriedade Timer porque não precisamos escrever nenhuma variável extra.

humano_detectado = readDigitalPin (a, 'D2'); % Pin pode mudar com base na configuração se human_detected == 0 writeDigitalPin (a, 'D7', 1)% Pin pode mudar app. FloodLightStateLamp. Color = [0,47 0,67 0,19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; fim de writeDigitalPin (a, 'D7', 0)

Etapa 7: Conclusão

Agora que você tem um rascunho de sua GUI com o App Designer e seu código para o Arduino, está pronto para fazer suas próprias edições ou conectar seu Arduino e pronto!

Recomendado: