Open top menu
sábado, 4 de julho de 2015

Hoje vamos apresentar um projeto de automação com o Automation Shield 2.0, Arduino Nano, Bluetooh HC-06, RTC DS1307 e um aplicativo Android para controle da placa.

Aplicativo Android
É o programa de gerenciamento e acionamento das saídas no Android. Ele foi desenvolvido nativamente com o Android Stúdio e é compatível com dispositivos Android com a versão 4.0 Ice Cream Sandwich ou Superior.

Tela principal para acionamento das saídas e visualização dos horários de agendamento:

Tela para seleção do dispositivo bluetooth:


Tela para ajuste do horário da placa de automação:


Tela para alteração dos nomes e agendamento de horários das sáidas da placa:


Lista de componentes
1 - Placa Automation Shield 2.0, a venda em nossa loja virtual.
1 - Arduino NANO V3.0
1 - RTC DS1307.
1 - LCD 1602 com interface serial I2C.
1 - Módulo Bluetooth JY-MCU ou HC-06.
4 - Fios com conectores MODU para conexão do módulo.
1 - Fita RGB
1 - Resistor de 10K para montagem de divisor de tensão para conexão com o módulo Bluetooth .
1 - Resistor de 20K para montagem de divisor de tensão para conexão com o módulo Bluetooth .
1 - Fonte 12V x 3A.

Conexões do projeto

A placa JY-MCU/HC-06 Bluetooth pode ser encontrada em uma versão com alimentação entre 3.6 e 6V. Apenas essa versão pode ser alimentada diretamente através do pino OUT + 5V do Shield. Módulos que possuem nível lógico de 3,3V devem usar o level shifter ou divisor de tensão entre as conexão do pino TX do Arduino e RX do módulo Bluetooth.

O módulo utilizado nesse projeto possui faixa de alimentação 3~6V e nível de sinal 3,3V. Conecte o resistor de 10K entre o pino TX do Shield/Arduino e o pino RX do módulo bluetooth e o resistor de 20K de entre o pino RX do módulo bluetooth e o pino GND.


Conexões das saídas
Para segurança do circuito, sempre utilize um fusível e uma chave geral conforme exemplo acima.

Códigos fonte do projeto

O projeto é dividido em dois módulos:

Módulo Controlador.
O módulo controlador é o código fonte que roda no Arduino Nano do shield de automação. O módulo controlador recebe os comandos de acionamento, agendamento e configuração de data do módulo aplicativo e aciona as saídas. O módulo controlador é responsável em armazenar em memória não volátil (EEPROM) todos os comandos recebidos do usuário, de forma que, se em uma eventual queda de energia ou reinicialização do shield, ele inicie mantendo os estados das saídas de acordo com o último comando do usuário. O módulo Controlador é dividido nos principais métodos:

Setup
Método responsável em iniciar o shield, variáveis e ler os dados da EEPROM. O módulo controlador possui a variável EEPROMComandos  que está atribuída com o valor false. Alterando para true ela irá gravar na EEPROM os últimos comandos recebidos, dessa forma, se ocorrer uma queda de energia e a placa reiniciar, ela será restabelecida com os últimos comandos enviados pelo usuário. A EEPROM do Arduino tem uma vida útil de 100.000 gravações, manter na EEPROM todos os comandos recebidos irá inutilizá-la, sendo assim, verifique qual será a quantidade de comandos enviados diariamente para determinar a vida útil. As variáveis de horário de agendamento e modo são gravadas diretamente na EEPROM e não devem ser removidas.


Loop
O método Loop é executado continuamente, ele executa os métodos responsáveis pela leitura da serial e acionamento das saídas.
getDateDs1307()
Atualiza as variáveis de data/hora com o horário do RTC.

aguardacomandos();
Monitora a porta serial aguardando os comandos recebidos pelo módulo bluetooth.

Acionamento de Saídas

Agendamento de Saídas

Configuração de Data/Hora do RTC.

Alteração de modo Agendado / Manual.

RetornaComandos();
Retorna na porta serial para leitura do aplicativo o estado de todas as saídas dos relés, potência, data/hora do RTC e se a placa está sendo executada no modo Manual ou Agendado.

ModoAuto();
O método verifica se cada saída está no horário agendado e aciona no período pré-agendado. No modo Agendado não é permitida o acionamento manual das saídas.

PrintLcd();
Método que escreve no LCD o horário e status das saídas do LCD. A ligação do LCD é opcional.

Para evitar falhas no processo de upload, sempre desconecte o Arduino do Shield ou remova as conexões com o Bluetooth antes da conexão com o USB.

Módulo Aplicativo

O módulo aplicativo é o programa de gerenciamento e acionamento das saídas para rodar no Android. Ele foi desenvolvido nativamente com o Android Studio, ele pode ser baixado aqui. Para os usuários que não tem interesse em customizar a aplicação, eu mantenho o apk compilado no github.

Os principais método são:
beginListenForCommands
Método que recebe lê os dados enviados pela placa de automação e atualiza a interface.

 Connect
Método que estabele a conexão com o bluetooth do dispositivo Android e placa de Automação.


EnviaComandoDigital
Método que envia o comando digital para acionamento da placa de Automação



O exemplo de hardware e software desse projeto é compatível apenas com dispositivos com sistema operacional Android e versão 4.0 Ice Cream Sandwich ou superior.

No vídeo abaixo podemos ver todo o processo de pareamento, instalação do programada, configuração, acionamento e agendamento da placa pelo aplicativo Android.


O código fonte está disponível no github, em breve publicaremos novos projetos com o AutomationShield 2.0
Tagged

9 comentários :

  1. Olá Sergio,

    atualmente estou realizando algumas oficinas sobre Arduino, e um dos temas destas oficinas é aplicações básicas com Arduino Uno e shield´s com Reles.
    Por ser um curso Básico para participantes sem conhecimento em programação mas na maioria profissionais da área de elétrica e alarmes, muitos tem
    Me questionado sobre algum kit para que eles possam estudar e comercializar de forma rápida. Vendo a sua solução (AutomationShield 2.0),excelente
    Por sinal, gostaria se saber se você se incomode de eu adquirir os Kit´s com você e repassar aos participantes dos treinamentos. Poderia ate, se você permitir,
    Incluir no treinamento a demonstração do produto e uma explicação básica sobre o funcionamento e instalação.

    Caso concorde, me diga como adquirir o primeiro Kit e qual valor eu devo praticar para os participantes.

    Certo da atenção, agradeço antecipadamente,
    Atenciosamente,

    Jose Martins

    ResponderExcluir
    Respostas
    1. José Martins, Boa tarde!

      Sim, claro, esse é um dos objetivos do site.
      Entre em contato pela loja virtual - > Fale Conosco.

      Excluir
  2. Olá Sergio,

    atualmente estou realizando algumas oficinas sobre Arduino, e um dos temas destas oficinas é aplicações básicas com Arduino Uno e shield´s com Reles.
    Por ser um curso Básico para participantes sem conhecimento em programação mas na maioria profissionais da área de elétrica e alarmes, muitos tem
    Me questionado sobre algum kit para que eles possam estudar e comercializar de forma rápida. Vendo a sua solução (AutomationShield 2.0),excelente
    Por sinal, gostaria se saber se você se incomode de eu adquirir os Kit´s com você e repassar aos participantes dos treinamentos. Poderia ate, se você permitir,
    Incluir no treinamento a demonstração do produto e uma explicação básica sobre o funcionamento e instalação.

    Caso concorde, me diga como adquirir o primeiro Kit e qual valor eu devo praticar para os participantes.

    Certo da atenção, agradeço antecipadamente,
    Atenciosamente,

    Jose Martins

    ResponderExcluir
  3. Parabéns pelo belo trabalho me ajudou muito. Obrigado

    ResponderExcluir
  4. Muito legal, a anos venho pensando num projeto muito similar, mas um pouco mais simples, pensava em faze-lo com Garagino ou um trinket, com apenas dois reles e um dimmer.

    ResponderExcluir
  5. Boa tarde. Como faço para compra esse modulo???
    Obrigado

    ResponderExcluir
  6. Como faço??? Não consegue volta o anuncio pelo ML?

    ResponderExcluir