Mudanças entre as edições de "Preparação para o Projeto"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 259: Linha 259:
 
  A0, A1, A2, A3, A4, A5.
 
  A0, A1, A2, A3, A4, A5.
  
'''RSP_STATUS 17 (1 Byte )'''
 
 
Valor com tamanho igual a 1 byte enviado como  decimal. Tipo de mensagem de resposta que define o valor de leitura da porta analógica solicitada em mensagem do tipo 16.
 
 
'''Identificador do Controlaor - Id XBee'''
 
 
Valor com tamanho igual a 1 byte enviado como  decimal. Pode assumir os valores 1 ou 2, referente ao Controlador do ambiente.
 
  
 
'''Porta'''
 
'''Porta'''

Edição das 03h14min de 6 de maio de 2015

DOMÓTICA

INTRODUÇÃO

  • DOMÓTICA COM ANDRÓID -

A domótica permite o controle de diversas funções da casa, quer seja de forma automática ou através de um comando remoto, da Internet ou do seu celular. Este projeto visa encontrar ideias para controle e monitoramento residencial através de celular e placa microcontrolada. Através de programas desenvolvidos para uso em celular baseado em sistema operacional Android e também para microcontrolador da família Atmega (Arduino) com o objetivo de controlar diretamente cargas de corrente alternada como lâmpadas, motores, etc. Na programação do celular será utilizado o programa gratuito App Inventor do MIT .

Este projeto foi motivado pela Monografia sob o título “DroidLar - Automação residencial através de um celular Andróid”, defendida por Michel Vinicius de Melo Euzebio, apresentada e aprovada em agosto de 2011 a Coordenação do Curso Superior de Tecnologia em Sistemas de Telecomunicações do Instituto Federal de Santa Catarina para a obtenção do diploma de Tecnólogo em Sistemas de Telecomunicações. http://wiki.sj.ifsc.edu.br/images/b/b7/TCC_MichelEusebioMello.pdf

O objetivo desse trabalho é dimensionar o projeto em questão para turmas da disciplina de PI-1 executarem, simplificando e omitindo detalhes muito complexos para os alunos da primeira fase.


Os sistemas de automação residencial oferecem muitas opções, muitos possibilitam a utilização de aplicativos em smartfones .O DroidLar consiste num sistema de automação residencial onde é possível controlar dispositivos de uma residência utilizando como interface de controle celulares Android.

A arquitetura do DroidLar foi construída de forma centralizada, ou seja, um servidor central gerencia toda a rede. Este é capaz de se comunicar tanto com as interfaces de controle quanto com os dispositivos controladores. O DroidLar é dividido em três partes: Cliente Android; Servidor de Automação Residencial (SAR); Arduino.

O cliente Android atua como uma interface de controle no sistema e se comunica pela rede IP, os kits Arduino funcionam como controladores de dispositivos e utilizam ZigBee para a comunicação, já o SAR é o servidor central, ele se comunica tanto pela rede IP quanto por ZigBee e tem como principal função transferir as mensagens entre essas duas redes.

O SAR deve ficar continuamente conectado na rede IP, fazendo a verificação de pedidos e atualização do status dos dispositivos. O aplicativo no telefone poderia conectar com a WebDB para verificar o status dos dispositivos e solicitar uma nova configuração para os ambientes.

Uma das propostas para simplificar o projeto é usar inicialmente um módulo bluetooth para a comunicação, migrando posteriormente para a comunicação via rede IP.



ESPECIFICAÇÕES DO SISTEMA

DESCRIÇÃO DO PRODUTO

Este documento descreve um sistema de automação para residência controlado por celulares ou tablets com sistema operacional Android.


AppServidor.png
Figura 1: Sistema de automação.


O sistema oferece comunicação entre usuário e os eletroeletrônicos de sua residência através de uma conexão sem fio. Essa conexão entre o celular ou tablet do usuário e o servidor de automação residencial, possibilita controle e verificação de status de eletroeletrônicos como iluminação, irrigadores de jardim, aparelhos de climatização, portões eletrônicos, sensores, entre outros.


ESPECIFICAÇÕES DO PRODUTO

Descrição do Sistema

Três componentes com funções específicas constituem o sistema: o Aplicativo para controle do sistema usando celular ou tablet; o Servidor de automação residencial; e os Controladores de Eletroeletrônicos.



AppServerEDs.png
Figura 2: Componentes do sistema de automação.


O Aplicativo atua como interface de controle Homem-Máquina e se comunica com o Servidor usando tecnologia sem fio. O Servidor gerência a rede fazendo a ponte entre o APP e os controladores de eletroeletrônicos.

Os controladores de eletroeletrônicos tem a função de acender lâmpadas, fechar persianas, ligar aparelhos de ar-condicionado etc.

O Aplicativo possui interfaces com botões que permitem procurar e conectar o Servidor de Automação, escolher um ambiente da casa onde se localiza o eletroeletrônico que se quer controlar, escolher o eletroeletrônico e enviar comandos para execução de tarefas ou leitura do status desses eletroeletrônicos e sensores.

Os controladores permitem controlar eletroeletrônicos em ambientes internos e externos da residência.

Nos ambientes internos o sistema permite por exemplo ascender ou apagar as luzes dos ambientes, regular a intensidade da iluminação, ligar/desligar e regular a temperatura dos condicionadores de ar, abrir ou fechar persianas, regular o volume do som, verificar a temperatura de um ambiente e ligar ou desligar aparelhos eletrônicos.

Nos ambientes externos é possível por exemplo ascender ou apagar as luzes do jardim e piscina, ligar ou desligar motores, regular ou verificar a temperatura da água de piscinas, abrir e fechar portões.

A figura abaixo mostra os componentes do sistema. É possível visualizar as ligações entre cada componente do sistema, os ambientes e eletroeletrônicos controláveis por cada controlador.


AMBIENTES.png
Figura 3: Diagrama do sistema.

PROJETO

Sumário

1-Introdução

2-Projeto Preliminar

2.1-Visão Geral do Sistema

2.2-Interface com Usuário - APP

2.3-Servidor de Automação - Coordenador

2.4-Controladores de Eletroeletrônicos – Dispositivos Finais

3-Projeto Detalhado

3.1-Interface com Usuário

3.2-Servidor de Automação

3.3-Controladores de Eletroeletrônicos

3.4-Descrição do Protocolo de Comunicação

3.5-Configurando os módulos XBee

3.6-Gravando o código no microcontrolador Arduino

3.7-Testes

3.8-Erros previstos



1-Introdução

Este documento apresenta o projeto para o sistema de automação residencial com Android, Arduino e módulos XBee.

2-Projeto Preliminar

2.1-Visão Geral do Sistema

A estrutura proposta para o sistema especificado é mostrada abaixo.


SISTEMAPI.png

O sistema é subdividido em três subsistemas:

• APP para controle do sistema de automação

• Servidor de Automação

• Controladores de Eletroeletrônicos


A arquitetura do sistema foi definida de forma centralizada. O Servidor gerencia toda a rede, sendo capaz de comunicar-se tanto com o APP quanto com os Controladores de Eletroeletrônicos.

2.2-APP para controle do sistema de automação

O App permite a comunicação e o controle do sistema. Ele atua como interface Homem-Máquina, enviando mensagens ao Servidor de Automação. Essas mensagens são enviadas como Strings e contém campos que definem parâmetros da mensagem. A comunicação entre o APP e o Servidor é feita usando tecnologia Bluetooth.

2.3-Servidor de Automação

O Servidor do sistema, pode comunicar-se nas duas redes (Bluetooth e ZigBee) e faz a ponte entre o APP e os dispositivos finais, recebendo e encaminhando as mensagens nas duas redes.

2.4-Controladores de Eletroeletrônicos

Os controladores de eletroeletrônicos tem a função de executar os comandos enviados pelo APP, tais como acender lâmpadas, fechar persianas, ligar aparelhos de ar-condicionado. Os Controladores recebem as mensagens pela rede sem fio e executam os comandos determinados pelo usuário, acionando os eletroeletrônicos. Esses Controladores também enviam mensagens de confirmação de recebimento de mensagem e status dos eletroeletrônicos para o Coordenador.


3.2-Servidor de Automação

Para desempenhar a função de Servidor da rede foi escolhido o microcontrolador Arduino.

A plataforma Arduino é uma ferramenta simples e fácil de usar mesmo para leigos em programacão e eletrônica. Essas características tornaram ela uma plataforma muito utilizada para o desenvolvimento de prototipos. Por se tratar de uma plataforma aberta de hardware e software, qualquer um pode montar protótipos com kits Arduino.

O kit Arduino é composto por um um microcontrolador que contém um código a ser executado, além de portas de entrada e saída digitais, portas para comunicação serial, portas de entrada analógicas e de saída PWM (Power Wave Modulation), onde é possível controlar o nível de tensão da saída.

Nessas portas de entrada e saída é possível conectar botões, sensores, LEDs ou quaisquer outros dispositivos elétricos, tornando inúmeras as possibilidades de uso para essa plataforma.


ArduinoUno.jpg


Na topologia escolhida o Coordenador desempenha função fundamental na rede, ou seja, tem todo o controle da rede, assumindo um papel central e fazendo a comunicação direta com o APP e todos os dispositivos finais. Toda a informação transmitida tem que passar pelo Coordenador, por esse motivo seu código deve processar as mensagens das duas redes, Bluetooth e Zigbee.


A expansão das funcionalidades da plataforma Arduino é possível através da conexão de diversos shields e módulos de comunicação encontrados no mercado.

Para a conexão com o dispositivo Andróid, por exemplo, pode ser usado o shield bluetooth HC-06. Similar ao módulo da figura abaixo.


HC06.png


Para a comunicação entre o Servidor e os Controladores Finais foram escolhidos os módulos XBee.

XBee é a marca da Digi International para uma família de módulos de rádio comunicação. Esses rádios operam usando o protocolo ZigBee, utilizado para aplicações que exigem baixas taxas de transmissão de dados e baixo consumo de energia.


Xbee Pro2 g.jpg


3.3-Controladores de Eletroeletrônicos

O microcontrolador Arduino também foi escolhido para desempenhar a função de Controlador de Eletroeletrônicos e o módulo Xbee para a comunicação com o Servidor.


Os valores dos pinos enviados do Aplicativo de Automação variam de 1 a 6, assim, uma função identifica o tipo de mensagem e define a porta correta que deve ser comutada ou lida conforme o esquema da figura abaixo.

PortasArduino.png


Ou seja, se o programa receber na variável APP_command o tipo de mensagem MSG_DIGITALWRITE com valor 10 e na variável pin_num o valor 1, o subsistema de Gerenciamento de comando App executa o comando solicitado no pino digital 2 (primeiro pino digital após pinos 0 e 1, RX e TX). Se o programa receber na variável APP_command o tipo de mensagem MSG_DIGITALWRITE com valor 10 e na variável pin_num o valor 2, o subsistema de Gerenciamento de comando App executa o comando solicitado no pino digital 4 (segundo pino digital após pinos 0 e 1, RX e TX).

De maneira semelhante, a função processa o valor correto dos pinos digitais PWM e dos pinos analógicos.

A figura abaixo relaciona os eletroeletrônicos com as portas do Arduino usadas para seu controle.

SimbolosEletros.png


Com o valor correto da porta definido pela função anterior, os comandos são executados conforme os parâmetros recebidos.

Se o controlador receber corretamente a mensagem do servidor e executar os comandos conforme solicitado, é montada e enviada em seguida uma mensagem de retorno para confirmar o recebimento da mensagem ou enviar valores de retorno.


Valor com tamanho igual a 1 byte enviado como decimal. Define tipo de mensagem para que o microcontrolador ligado ao dispositivo final execute um comando de acionamento ou desligamento de um dos seus pinos digitais. Após o envio desse tipo de mensagem é aguardado mensagem de confirmação do tipo 12.

Os pinos reservados para acionamento digita na placa Arduinol, ou seja, com valores 0 ou 1 são os pinos:

D2, D4, D7, D8, D12, D13.

MSG_ANALOGWRITE 11 (1 Byte )

Valor com tamanho igual a 1 byte enviado como decimal. Define tipo de mensagem para que o microcontrolador ligado ao dispositivo final execute um acionamento de um dos pinos digitais com PWM. Após o envio desse tipo de mensagem é aguardado mensagem de confirmação do tipo 12.

Os pinos reservados para acionamento digital com PWM, ou seja, com valores que podem variar entre 0 e 255 são os pinos:

D3, D5, D6, D9, D10, D11.

RSP_COMANDO 12 (1 Byte )

Valor com tamanho igual a 1 byte enviado como decimal. Tipo de mensagem que confirma a execução de um comando após uma mensagem do tipo 10 ou 11.

MSG COMANDOB.png

MSG_DIGITALREAD 13 (1 Byte )

Valor com tamanho igual a 1 byte enviado como decimal. Define mensagem de pedido de leitura de uma das portas digitais seguintes:

D2, D4, D7, D8, D12, D13.

Após o envio desse tipo de mensagem é aguardado mensagem de resposta do tipo 15, com o valor solicitado (0 ou 1) num de seus campos.


RSP_LEITURA 15 (1 Byte )

Valor com tamanho igual a 1 byte enviado como decimal. Tipo de mensagem de resposta que define o valor de leitura da porta digital PWM solicitada em mensagens do tipo 13 e 14.

MSG_STATUS 16 (1 Byte )

Valor com tamanho igual a 1 byte enviado como decimal. Define mensagem de pedido de leitura de uma das portas analógicas do microcontrolador. As portas analógicas do microcontrolador que permitem essa leitura são as seguintes:

A0, A1, A2, A3, A4, A5.


Porta

Valor com tamanho igual a 1 byte enviado como decimal. Pode assumir valores de 1 a 6 e indicam a porta onde o eletroeletrônico está ligado no Controlador.

Valor

Valor com tamanho igual a 1 byte enviado como decimal. Assume valores entre 0 e 255 e indicam o estado do eletroeletrônico ou o valor de ajuste.


Cada eletroeletrônico é acionado por uma das portas do Arduino. A figura abaixo relaciona os eletroeletrônicos com as portas do Arduino usadas para seu controle.

SimbolosEletros.png