Todos nós estamos familiarizados com a palavra 'Automação', onde a interação humana é mínima e as coisas podem ser controladas automaticamente ou remotamente. A automação residencial é um conceito muito popular e exigente no campo da Eletrônica, e também estamos fazendo nossos melhores esforços para tornar este conceito facilmente compreensível e administrável como Projetos Eletrônicos. Já desenvolvemos vários tipos de projetos de automação residencial com um vídeo e código em funcionamento, verifique:
- Domótica baseada em DTMF
- Domótica baseada em GSM usando Arduino
- Automação residencial controlada por PC usando Arduino
- Automação residencial controlada por Bluetooth usando 8051
- Automação residencial controlada por infravermelho usando Arduino
E neste projeto, vamos construir nosso próximo projeto de automação residencial usando MATLAB e Arduino, que é um sistema de automação residencial baseado em GUI usando Arduino e MATLAB
Componentes:
- Arduino UNO
- Cabo USB
- ULN2003
- Relé 5 volts
- Lâmpada com suporte
- Fios de conexão
- Computador portátil
- Fonte de energia
- PVT
Explicação de trabalho:
Neste projeto, estamos utilizando MATLAB com Arduino para controlar os eletrodomésticos, através de uma Interface Gráfica de Usuário em Computador. Aqui usamos comunicação com fio para enviar dados do computador (MATLAB) para o Arduino. No lado do computador, usamos a GUI no MATLAB para criar alguns botões para controlar eletrodomésticos. Para comunicação entre o Arduino e o MATLAB, primeiro precisamos instalar o “ Suporte MATLAB e Simulink para Arduino ” ou “ Arduino IO Package ”. Para fazer isso, siga as etapas abaixo ou confira o vídeo abaixo:
- Baixe o pacote Arduino IO aqui. Você precisa se inscrever antes de fazer o download.
- Em seguida, grave / faça upload do arquivo adioe.pde para o Arduino usando o IDE do Arduino. Este arquivo adioe.pde pode ser encontrado em Arduino IO Package - ArduinoIO \ pde \ adioe \ adioe.pde
- Em seguida, abra o software MATLAB, vá até a pasta Arduino IO, abra o arquivo install_arduino.m e execute-o no Matlab. Você verá uma mensagem de “pastas do Arduino adicionadas ao caminho” na janela de comando do MATLAB, significa que o caminho do MATLAB está atualizado para as pastas do Arduino.
É assim que fazemos o Arduino, nos comunicamos com o MATLAB. O método acima é adequado para "MATLAB R2013b ou versões anteriores", se você estiver usando a versão superior do MATLAB (como R2015b ou R2016a), você pode clicar diretamente na guia Complementos no MATLAB e depois clicar em "Obter pacotes de suporte de hardware", de onde você pode instalar pacotes Arduino para MATLAB.
Depois de instalar os arquivos, agora você pode criar uma GUI para o projeto de automação residencial. Basicamente na GUI, estamos criando botões de pressão para controlar os eletrodomésticos a partir do computador. Os botões podem ser criados acessando “Interface gráfica do usuário” no menu “Novo” no MATLAB. Além disso, podemos definir o nome e as cores desses botões, criamos 8 botões, nos quais seis para LIGAR e DESLIGAR três eletrodomésticos e dois botões para LIGAR e DESLIGAR todos os eletrodomésticos simultaneamente.
Agora, depois de criar os botões, ao clicar no botão Executar na janela da GUI, será solicitado que você salve este arquivo da GUI (com extensão.fig), também conhecido como ' arquivo fig'. Assim que você salvou o arquivo, ele criará automaticamente um arquivo de código (com extensão.m), também conhecido como ' arquivo M' (veja a captura de tela abaixo), onde você pode colocar o Código (fornecido na seção Código abaixo). Você pode baixar o arquivo GUI e o arquivo de código para este projeto aqui: Home_Automation_system.fig e Home_Automation_system.m (clique com o botão direito e selecione Salvar link como…), ou você mesmo pode criá-los como explicamos.
Após a codificação, agora você pode finalmente executar o arquivo.m da janela de código, você verá “Tentando conexão..” na janela de comando. Em seguida, uma mensagem “Arduino conectado com sucesso” aparece, se tudo correr bem. E finalmente você verá a GUI (botões) criada anteriormente na janela da GUI, de onde você pode controlar os eletrodomésticos apenas clicando nos botões do seu Computador. Certifique-se de que o Arduino esteja conectado ao Arduino via cabo USB. Aqui neste projeto usamos 3 lâmpadas para demonstração, que indica Ventilador, Luz e TV.
O trabalho de todo o projeto, desde a instalação do pacote de suporte do Arduino MATLAB até ligar ou desligar o aparelho, pode ser entendido no vídeo ao final.
Explicação do circuito:
O circuito deste projeto é muito fácil. Aqui, usamos uma placa Arduino UNO e um driver de relé ULN2003 para relés de acionamento. Três relés SPDT de 5 volts são conectados aos pinos 3, 4 e 5 do Arduino, através do driver de relé ULN2003, para controlar LIGHT, FAN e TV respectivamente.
Explicação de programação:
Quando pressionamos qualquer botão da janela da GUI, ele envia alguns comandos para o Arduino e o Arduino faz essa operação. Depois de instalar o pacote de suporte do Arduino MATLAB IO, podemos acessar o Arduino a partir do MATLAB usando as mesmas funções do Arduino, com algumas pequenas variações, como:
Para tornar um pino HIGH no Arduino, escrevemos código como digitalWrite (pin, HIGH)
No MATLAB usaremos esta função com a ajuda de um objeto ou variável como, e assim por diante.
Antes de fazer isso, temos que inicializar a variável assim:
Neste projeto, não há código do Arduino, exceto o código ou arquivo do pacote de suporte do Arduino MATLAB. Conforme explicado anteriormente, esse arquivo de código (arquivo.m) é gerado automaticamente ao salvar o arquivo GUI (arquivo.fig). Já existe algum código pré-escrito no arquivo.m. Basicamente, essas são funções de retorno de chamada para botões de pressão, significa que podemos definir o que deve acontecer ao clicar nesses botões.
No código MATLAB, primeiro inicializamos a porta serial e a tornamos um objeto usando uma variável. E então podemos começar a programar como o Arduino usando a variável.
limpar ar; ar global; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
Na função de retorno de chamada de cada botão, escrevemos o código relacionado para ligar ou desligar os respectivos eletrodomésticos, conectados ao Arduino via relé. Como por exemplo, a função de retorno de chamada para Light ON é fornecida abaixo:
função light_on_Callback (hObject, eventdata, handles)% hObject handle to light_on (veja GCBO)% eventdata reservado - a ser definido em uma versão futura do MATLAB% trata da estrutura com manipuladores e dados do usuário (veja GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Da mesma forma, podemos escrever o código nas funções de retorno de chamada de todos os botões, para controlar os outros eletrodomésticos conectados, verifique o código MATLAB completo abaixo (arquivo.m).