MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … · 1.4 Estrutura da Monografia ... CPU - Central...
Transcript of MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … · 1.4 Estrutura da Monografia ... CPU - Central...
MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA
SEÇÕES DE ENGENHARIA ELÉTRICA, ELETRÔNICA E DE COMPUTAÇÃO
BRUNO NARDI DE CARVALHO DANTAS
JEFFERSON COSTA DE MATOS
VICTOR LAURINDO HORTA FERREIRA
SISTEMA MODULAR DE AUTOMAÇÃO RESIDENCIAL SOBRE CAN BUS
Rio de Janeiro
2014
INSTITUTO MILITAR DE ENGENHARIA
BRUNO NARDI DE CARVALHO DANTAS
JEFFERSON COSTA DE MATOS
VICTOR LAURINDO HORTA FERREIRA
SISTEMA MODULAR DE AUTOMAÇÃO RESIDENCIAL SOBRE CAN BUS
Projeto Final de Curso apresentado aos Cursos de Graduação em Engenharia Elétrica, Engenharia Eletrônica e Engenharia de Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção de graduação.
Orientador: Prof. Amarildo Teodoro da Costa, D.Sc.
Rio de Janeiro
2014
INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80, Praia Vermelha Rio de Janeiro-RJ CEP 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá
incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre
bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica e completa.
Os conceitos expressos neste trabalho são de responsabilidade dos autores e
dos orientadores.
xxx.xx Dantas, B. N. C.; Matos, J. C; Ferreira, V. L. H. xxxxx
Sistema modular de automação residencial sobre CAN BUS / Bruno Nardi de Carvalho Dantas; Jefferson Costa de Matos; Victor Laurindo Horta Ferreira – Rio de Janeiro: Instituto Militar de Engenharia, 2014. 67p.
Projeto Final de Curso (graduação) – Instituto Militar
de Engenharia – Rio de Janeiro, 2014. 1. Domótica (Robótica). 2. Casa Inteligente (Robótica). I. Dantas, Bruno Nardi de Carvalho; Matos, Jefferson Costa de; Ferreira, Victor Laurindo Horta. II. Instituto Militar de Engenharia
CDD xxx.xx
2
INSTITUTO MILITAR DE ENGENHARIA
BRUNO NARDI DE CARVALHO DANTAS JEFFERSON COSTA DE MATOS
VICTOR LAURINDO HORTA FERREIRA
SISTEMA MODULAR DE AUTOMAÇÃO RESIDENCIAL SOBRE CAN BUS
Projeto Final de Curso apresentado aos Cursos de Graduação em Engenharia Elétrica, Engenharia Eletrônica e Engenharia de Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção de graduação.
Orientador: Prof. Amarildo Teodoro da Costa, D.Sc. Aprovado em 2014 pela seguinte Banca Examinadora:
_____________________________________________ Prof. Amarildo Teodoro da Costa, D.Sc., do IME
_____________________________________________ Prof. Ricardo Choren Noya, D.Sc., do IME
_____________________________________________ Prof. Santos Sandro de Lima, M.C., do IME
Rio de Janeiro
2014
3
SUMÁRIO LISTA DE ILUSTRAÇÕES ......................................................................................... 4 LISTA DE TABELAS .................................................................................................. 5 LISTA DE ABREVIATURAS ....................................................................................... 6 1 INTRODUÇÃO ...................................................................................................... 9 1.1 Objetivo ................................................................................................................. 9 1.2 Justificativa .......................................................................................................... 10 1.3 Metodologia ......................................................................................................... 11 1.4 Estrutura da Monografia ...................................................................................... 11 2 ARQUITETURA DO SISTEMA ........................................................................... 13 2.1 Visão geral do sistema ........................................................................................ 13 2.2 Abstração em camadas ....................................................................................... 14 2.3 Protocolos de comunicação ................................................................................ 15 2.3.1 Gramática Slave - Android ............................................................................... 15 2.3.2 Gramática Android - Slave ............................................................................... 16 2.4 Arquitetura da rede Uni-multicast via filtragem e mascaramento CAN ............... 17 2.5 Funcionalidades e limitações .............................................................................. 19 3 SOFTWARE ........................................................................................................ 21 3.1 O Cliente Android ................................................................................................ 21 3.2 Interface de controle e identificação de módulos ................................................ 21 3.3 Interfaceamento Android – Master via Service .................................................... 22 3.4 Diagrama de classes e heranças ........................................................................ 23 4 HARDWARE ....................................................................................................... 26 4.1 Estrutura física de um nó ..................................................................................... 26 4.1.1 Nó Master ......................................................................................................... 27 4.1.2 Nó Slave 1 - Lâmpada LED IR ......................................................................... 32 4.1.3 Nó Slave 2 - Climatizador ................................................................................. 36 4.2 Firmware .............................................................................................................. 40 5 ROTEIRO DA PRÁTICA REALIZADA ............................................................... 45 6 CONCLUSÃO ..................................................................................................... 48 7 REFERÊNCIAS BIBLIOGRÁFICAS ................................................................... 51 8 APÊNDICE .......................................................................................................... 55 8.1 Figuras da prática realizada ................................................................................ 55
4
LISTA DE ILUSTRAÇÕES
FIG 2.1 – Abstração em camadas dos protocolos empregados............................. 14
FIG 3.1 – Diagrama de classes e heranças geral................................................... 24
FIG 3.2 – Detalhe da construção de diferentes tipos de nós.................................. 25
FIG 4.1 – Esquema da geral da prática realizada................................................... 26
FIG 4.2 – Diagrama simplificado do Nó Master....................................................... 28
FIG 4.3 – Diagrama de pinos do microcontrolador. (MICROCHIP, 2007, p.2)........ 29
FIG 4.4 – Diagrama de blocos RN42N. (ROVING, 2013, p.1)................................ 30
FIG 4.5 – Esquemas de osciladores. (ARNEROBOTICS, 2014)............................ 30
FIG 4.6 – Esquema de ligação capacitor. (MICROCHIP, 2007, p. 23)................... 31
FIG 4.7 – Diagrama de pinos do transceiver. (MICROCHIP, 2010, p.1)................. 32
FIG 4.8 – Diagrama de blocos do transceiver. (MICROCHIP, 2010, p.1)............... 32
FIG 4.9 – Diagrama do nó Slave 1.......................................................................... 33
FIG 4.10 – Interface do transceiver CAN com o barramento e o PIC. (MIKROELEKTRONIKA, 2010)..............................................................
34
FIG 4.11 – Esquemático do Fotoacoplador 4n25. (FAIRCHILD , 2002, p.1).......... 35
FIG 4.12 – Conjunto Lâmpada e controle remoto. (MERCADO LIVRE, 2014)....... 36
FIG 4.13 – Diagrama do nó Slave 2........................................................................ 37
FIG 4.14 – Diagrama de Pinos e de Lógica do Fotoacionador. (TEXAS INSTRUMENTS, 1995 p.1)....................................................................
38
FIG 4.15 – Diagrama de Pinos do TRIAC empregado. (SNUBBERLESS & STANDARD, 2002, p.1).........................................................................
39
FIG 4.16 – Esquemático para acionamento de cargas indutivas. (TEXAS INSTRUMENTS, 1995, P.4)..................................................................
40
FIG 5.1 – Esquema inicial da prática 45
FIG 5.2 – Comando Refresh................................................................................... 45
FIG 5.3 – Estado da lâmpada.................................................................................. 46
FIG 5.4 – Estado do climatizador............................................................................ 46
FIG 5.5 – Comando para ligar luz........................................................................... 46
FIG 5.6 – Comando para acionar ventilador........................................................... 47
5
LISTA DE TABELAS
TAB 2.1 – Gramática Android – Slave…………………………………………………… 16
TAB 2.2 – Gramática Slave – Android…………………………………………………… 17
TAB 2.3 – Máscaras e comportamentos………………………………………………...
18
TAB 4.1 – Seleção de capacitores (MICROCHIP, 2007, p. 23)………………………
31
6
LISTA DE ABREVIATURAS
ACK - Acknowledge ADC - Analogic Digital Converter API - Application Programming Interface CAN BUS - Controller Area Network Bus CPU - Central Processing Unit GUI - Graphical User Interface IDE - Integrated Development Environment I/O - Input/Output KWh - KiloWatt-hora LDR - Light Dependant Resistor MACA - Multiple Access Colision Avoidance MVC - Model-View-Controller OSI - Open Systems Interconnection PLC - Power Line Carrier RAM - Random Access Memory ROM - Read-only Memory SMD - Surface-Mount Device TC - Transformador de Corrente TRIAC - Triode for Alternating Current UART - Universal Asynchronous Receiver/Transmitter USART
-
Universal Synchronous-Asynchronous Receiver/Transmitter
USB - Universal Serial Bus UML - Unified Modeling Language UUID - Universally Unique Identifier
7
RESUMO
A confiabilidade e a facilidade de emprego do protocolo CAN BUS são
amplamente consagradas na eletrônica embarcada presente na comunicação de
dispositivos, em especial na indústria automotiva, mas ainda pouco exploradas no
campo da automação residencial. Neste trabalho, é proposto um modelo modular
que se baseia no protocolo CAN BUS para implementação de um sistema domótico,
tendo como base o protocolo Bluetooth e um aplicativo Android para o
interfaceamento com o usuário final. O sistema é capaz de detectar mudanças na
rede dinamicamente, enviando comandos e alterando o estado da rede domótica
conforme as ações do usuário.
Com o objetivo de demonstrar a empregabilidade do sistema, o presente
trabalho conclui a proposta através da implementação de uma rede domótica,
ratificando os conceitos apresentados.
Palavras-chave: automação residencial, domótica, CAN BUS.
8
ABSTRACT
The trustiness and reliability of the CAN BUS protocol are widely consecrated
among modern embedded systems, mainly on the automotive industry, but yet not
fully explored by the domotics field. The following work proposes a domotic modular
model based on the CAN BUS, supported by a Bluetooth interface provided by an
Android device. The system is capable of detecting changes dynamically on the
domotic net by sending commands autonomously, according to the previous user
settings and preferences. It also responds and updates the user screen according to
the number of connected devices, providing updated information about the whole
network.
This work concludes the proposal by implementing a domotic network, showing
its vast usability and ratifying the presented concepts.
Keywords: home automation, domotics, CAN BUS.
9
1 INTRODUÇÃO
A domótica consiste em um sistema integrado de hardware e software capaz de
controlar todos os ambientes de uma residência através de um só equipamento,
incluindo temperatura, luminosidade, som, segurança, entre outros (BOLZANI,
2004). O termo casa inteligente relaciona-se a uma residência que apresenta um
sistema de automação baseado na tecnologia domótica. Conforme CARVALHO
afirma (2008, p. 20), a casa inteligente pode ser definida como uma “[residência]
equipada com objetos inteligentes interligados por uma rede doméstica, capaz de
transmitir informações entre objetos e um mecanismo para conectar o ambiente com
meios de comunicação externos”.
MOLINA (2008) definiu o conceito de domótica como o conjunto de sistemas
capazes de automatizar e controlar diferentes instalações de uma residência. As
definições referentes à automação e controle se cruzam ao se acender uma
lâmpada, ao se agir em algum motor, ao colher informações do meio, entre outras
inúmeras interações possíveis do usuário final com o meio. Dessa forma, pode-se
definir domótica como a integração da tecnologia com a concepção de um projeto de
engenharia, de maneira que seja possível transformar e facilitar a convivência em
um recinto.
Iniciativas relacionadas a práticas em tecnologias assistivas têm ganhado maior
ênfase no meio acadêmico. Com o objetivo de prover segurança, comodidade,
facilidade na execução das tarefas do dia-a-dia em casas e acessibilidade a pessoas
portadoras de alguma deficiência, a automação residencial vem sendo desenvolvida
e aplicada em muitas partes do mundo, inclusive no Brasil.
A crescente demanda por tecnologias mais acessíveis, e que sejam capazes de
fomentar a indústria nacional, sinalizam uma grande oportunidade para o
desenvolvimento de sistemas domóticos que atendam às demandas listadas.
1.1 Objetivo
O presente trabalho tem como objetivo geral a prototipagem e implementação de
uma rede de automação residencial modular baseada no protocolo CAN BUS. Como
10
objetivos específicos, lista-se: projetar uma rede que permita a inserção e remoção
de nós dinamicamente, implementar um software para a plataforma Android capaz
de interfacear os comandos do usuário final e o estado dos sensores; projetar um
conjunto de nós capaz de se comportar de maneira modularizável, possibilitando o
intercambeamento de funções com mínima ou nenhuma alteração nos barramentos
físicos pré-estabelecidos.
Como metas, o projeto deverá implementar um aplicativo Android funcional e
desenvolver uma rede CAN BUS contendo, no mínimo, um nó de interfaceamento
Bluetooth, um nó com controle de infra-vermelho e um nó para climatização de um
ambiente.
1.2 Justificativa
Dados os objetivos previamente atingindos em DANTAS et al., 2013, na qual
verificou-se a total adaptação do protocolo CAN BUS ao projeto de um ambiente
doméstico, surge a necessidade de se planejar como seria possível extrair o
potencial prometido por tal protocolo, incluindo a modularização de dispositivos e a
vasta possibilidade de interfaceamentos. Isso posto, o trabalho justifica-se como
exemplificação e assertiva concreta de que é factível a implementação com nós
diversificados, com funcionalidades específicas, com interfaceamento prático por
parte do usuário final.
A crescente demanda por equipamentos modernos e práticos, que possam
servir como parte integrante de uma estrutura domótica de baixo custo, vem
crescendo dentre as empresas de tecnologia da informação (STARTUPI, 2014), e a
aquisição dessa tecnologia tem se mostrado cada vez mais acessível (SAPOTECH,
2014).
Os resultados alcançados por esse trabalho servirão como apoio a novas
implementações para sistemas domóticos de baixo custo, principalmente pela
indústria nacional, permitindo que sejam desenvolvidos serviços de apoio para
diversos usuários, incluindo pessoas que demandem algum tipo de tecnologia
assistiva.
11
1.3 Metodologia
A montagem dos nós foi feita de modo simples, aproveitando ao máximo os
conhecimentos levantados anteriormente em nosso projeto de iniciação à pesquisa.
Após definirmos as funcionalidades a serem implementadas, iniciou-se o
desenvolvimento da estrutura física. Os microcontroladores receberam códigos mais
simples no início, com comandos simples, e foram ganhando complexidade a cada
meta atingida. Em paralelo, o desenvolvimento do aplicativo Android seguiu a
padronização dos protocolos de alto nível estabelecidos. Era possível a realização
de testes independentes ao isolarmos o módulo Bluetooth dos demais componentes,
deixando somente uma alimentação simples de 5 volts e conectando em curto os
pinos de RX e TX do módulo.
Por fim, houve a integração de todos os sistemas, quando os nós, barramentos
e interface final com o usuário foram testadas e aprimoradas, a fim de garantir o
correto funcionamento de todo o sistema prototipado. A última modificação incluiu a
extensão dos cabos CAN_HIGH e CAN_LOW entre os nós, replicando as distâncias
comumente aplicadas em uma residência. A inserção e remoção dinâmicas de nós
da rede CAN também foi testada com sucesso.
1.4 Estrutura da Monografia
Este projeto final de curso está dividido nos seguintes capítulos: Introdução,
Arquitetura do Sistema, Software, Hardware e Conclusão.
O segundo capítulo aborda uma visão geral do sistema, introduzindo termos
utilizados, bem como as estratégias de implementação. Em seguida, aborda-se de
forma detalhada a abstração em camadas, que explica o caminho percorrido entre o
usuário final e os nós que executarão o comando desejado, bem como enviarão de
volta informações colhidas por sensores atrelados aos nós, ou ainda informações
sobre os estados dos nós. Finalizando o capítulo, formalizam-se os protocolos de
alto nível criados para realizar a comunicação entre os dispositivos da rede,
explicitando as gramáticas que definem o significado de cada símbolo terminal
transmitido. A arquitetura que permite a modularização da rede através da filtragem
12
e mascaramento de endereços via CAN também é mostrada. Por fim, são
destacadas as funcionalidades e limitações impostas pela arquitetura adotada.
O terceiro capítulo comenta a estrutura do cliente Android implementado. A
interface de controle é abordada, citando também como funciona o sistema de
identificação de módulos e o esquema de criação de novos tipos de nós no client-
side. A identificação dos módulos é detalhada e, finalizando o capítulo, o
interfaceamento entre Android e Master é comentado, explicando suas vantagens e
possibilidades.
Por sua vez, o quarto capítulo detalha as características dos circuitos
implementados nos nós, abordando componentes utilizados, bem como dados
trazidos pelos fabricantes e demais dados necessários para se replicar os circuitos.
A pinagem e a arquitetura de baixo nível também é indicada, inclusive sendo
mostrada a diferença entre os nós Master e Slave. Comenta-se a estrutura do
firmware e suas partes principais ao final do capítulo.
Ao concluirmos o trabalho, os códigos implementados são apresentados,
sintetizando as experiências vivenciadas, e sugestões para trabalhos futuros são
formalizadas.
13
2 ARQUITETURA DO SISTEMA
Nesse capítulo, serão discutidas as principais decisões de projeto que definiram
a arquitetura do sistema domótico. Será feita uma revisão geral do funcionamento do
sistema, bem como uma análise dos protocolos de comunicação em um esquema
em camadas. As gramáticas que formalizam a linguagem de mais alto nível entre os
dispositivos finais e o controlador serão esmiuçados e, em seguida, o emprego do
mascaramento e filtragem de mensagens CAN será detalhada, mostrando de que
forma foi possível a implementação de uma rede unicast-multicast entre os nós. Por
fim, as funcionalidades e limitações do sistema serão abordadas.
2.1 Visão geral do sistema
O sistema projetado tem como meta permitir que a rede domótica possa ser
modularizada e comandada remotamente, partindo de um dispositivo Android
portando capacidade para Bluetooth. A interação de um usuário ocorre da seguinte
forma:
ü Ao abrir o aplicativo, o usuário conecta seu dispositivo Android ao
endereço Bluetooth da rede domótica.
ü Logo após se conectar, ele receberá uma atualização do status da rede, e
poderá então visualizar quais sensores/atuadores estarão disponíveis
naquele momento na rede.
ü Ao selecionar um dos sensores/atuadores da rede, haverá uma lista de
comandos disponível, conforme a finalidade do sensor/atuador.
ü O usuário, então, poderá enviar comandos para o sensor/atuador,
recebendo o feedback do novo estado da rede assim que seu comando
for processado.
ü Caso algum sensor/atuador seja acrescentado ou removido do sistema, o
usuário será notificado em seu dispositivo móvel, recebendo a nova
configuração via Bluetooth.
14
Para tornar possível essa interação, é necessário introduzirmos os conceitos que
definem as partes componentes do projeto. São eles:
ü Cliente Android - aplicativo desenvolvido para permitir a interação do usuário
final com a rede domótica. Será abordado de forma mais contundente no
Capítulo 3.
ü Nós - circuitos modulares, interligados pelos barramentos CAN, que são
capazes de receber um acoplamento externo. Esse acoplamento externo
poderá conter sensores, atuadores ou ainda um módulo de interface
Bluetooth. Caso receba um módulo de interface Bluetooth, esse nó é
chamado de Master. Caso receba outro tipo de acoplamento, esse nó é
chamado de Slave. Entretanto, ambos os nós possuirão o mesmo firmware,
sendo que a região do código que será acessada é definida apenas pelo
acoplamento externo. Mais detalhes serão disponibilizados no Capítulo 4.
2.2 Abstração em camadas
A fim de tornar mais didática e mais clara a arquitetura de comunicação de
nosso sistema, foi adotado um esquema de abstração em camadas representando a
forma com que as partes componentes se comunicam, conforme apresentado na
FIG 2.1.
FIG 2.1 – Abstração em camadas dos protocolos empregados
15
2.3 Protocolos de comunicação
Os protocolos-padrão de comunicação usados para comunicação entre
camadas são basicamente o protocolo Bluetooth e o CAN BUS. Entretanto, para
otimizar a quantidade de bits a ser transmitida, bem como padronizar a alocação das
informações nas streams de bits, foi criada uma gramática que condensa e formaliza
a transmissão de informações, abstraindo os detalhes de mais baixo nível para os
protocolos já citados anteriormente. Ratificando os fatores levantados anteriormente
no Trabalho de Iniciação à Pesquisa (DANTAS et al., 2013), o protocolo CAN foi o
escolhido, dentre diversos fatores, por apresentar baixo custo.
Suas principais propriedades compreendem (CAN, 2014):
ü priorização de mensagens
ü garantia de tempos de latência
ü configuração altamente flexível e adaptável
ü recepção multicast com sincronização de tempo
ü consistência de dados por todo o sistema
ü possibilita implementação de redes multimaster
ü sinalização e detecção de erros
ü retransmissão automática de mensagens corrompidas sempre que o
barramento tornar-se ocioso
ü distinção entre erros temporários e falhas permanentes de nós, anulando
automaticamente os nós defeituosos dentro da rede
2.3.1 Gramática Slave - Android
Um nó do tipo Slave será capaz de enviar apenas um tipo de mensagem,
chamada de "Update". Essa mensagem consiste em uma concatenação de bits que
identificam, primeiramente, o tipo de módulo que está acoplado àquele nó; em
seguida, o código identificador daquele nó na rede de automação e, por fim, uma
cadeia de bits que sinalizam o estado daquele nó. Como simplificação, adotou-se
apenas três bytes para identificar esses estados. Entretanto, essa quantidade
poderá ser tão grande quanto desejarmos. Cada nó Slave poderá ter seu estado
16
definido por esse array de bytes, que recebeu o nome de de NODE_STATUS. Como
exemplo, a posição 0 do array sinaliza se o módulo está ligado ou desligado. As
demais posições detalham as configurações daquele módulo. Como exemplo, é
possível citar uma lâmpada multicolorida de LED. A posição 0 indica luz ligada ou
desligada; a posição 1 indica a cor da lâmpada, e a posição 3, a intensidade do
brilho. Da mesma forma, um ar condicionado poderá adotar outras padronizações,
desde que coerentes com o cliente Android. Vale ressaltar que, no futuro, caso
venham a ser desenvolvidos novos nós, basta subirmos uma atualização ao cliente
Android que ele será capaz de identificar e enviar comandos personalizados àquele
módulo.
Regras: M -‐> Update Update -‐> UPDATE + NodeType + NodeId + Status0 + Status1 + Status2 Símbolos terminais: UPDATE -‐> 0x01 ;Instrução NodeType -‐> 0x## ;Tipo de nó (Ex.: 0x01 – lâmpada) NodeId -‐> 0x## ;Id do nó Status0 -‐> 0x## ;NODE_STATUS[0] Status1 -‐> 0x## ;NODE_STATUS[1] Status2 -‐> 0x## ;NODE_STATUS[2]
TAB 2.1 – Gramática Slave – Android.
2.3.2 Gramática Android - Slave
As mensagens que partem do Android, com destino a algum Slave, podem ser de
dois tipos. A mensagem "RequestUpdate" sinaliza um pedido de atualização do estado
dos nós da rede CAN. Ao receber uma mensagem desse tipo, os nós respondem uma
mensagem contendo informações sobre seu estado, bem como suas características
(qual é o tipo de módulo que está acoplado, entre outros), ou seja, uma mensagem
Update.
Por sua vez, a mensagem "Set" tem a finalidade de alterar o estado de um dos
Slaves. Dessa forma, o Slave entenderá que deverá modificar seu estado para
corresponder à solicitação realizada. Cada Slave é identificado por um conjunto de bits.
Para simplificação, como já foi citado, adotou-se oito bits para identificar o dispositivo,
mas vale ressaltar que esse número poderá ser tão grande quanto nós desejarmos.
Continuando o exemplo anterior, da lâmpada de LED, caso o Slave receba uma
mensagem SET 0xZZ 0x00 0x01, a mensagem tem como destino o nó de identificador
17
ZZ, e seu status de índice 0 receberá o valor 1. O firmware irá atualizar seu estado local
e, em seguida, o comando acenderá a lâmpada. Como forma de demonstrar a execução
do comando, o slave envia uma mensagem Update de volta ao cliente, de modo a
alertá-lo sobre seu novo estado.
Regras: M -‐> RequestUpdate | SetMessage RequestUpdate -‐> REQ_UPDATE SetMessage -‐> SET + NodeId + StatusNumber + Value Símbolos terminais: REQ_UPDATE -‐> 0x02 ;Instrução SET -‐> 0x03 ;Instrução NodeId -‐> 0x## ;Id do nó de destino StatusNumber -‐> 0x## ;Posição do NODE_STATUS Value -‐> 0x## ;Valor
TAB 2.2 – Gramática Slave – Android
2.4 Arquitetura da rede Uni-multicast via filtragem e mascaramento CAN
Por definição, as redes CAN são redes broadcast – todas as mensagens
enviadas são recebidas por todos os demais nós. Entretanto, não é interessante que
todos os nós aceitem todas as mensagens que correm pela rede. Para
implementarmos esse tipo de comunicação, o protocolo CAN nos oferece
ferramentas de grande utilidade: são as máscaras e filtros. Semelhante a uma rede
IP, as máscaras e filtros possibilitam que se defina a aceitação e a rejeição de um
conjunto de endereços de remetentes de forma simples e direta.
Inicialmente, é importante destacarmos a diferença entre aceitação e
recebimento de uma mensagem. Por ser uma rede broadcast, todos os nós
receberão as mensagens válidas. As mensagens, ao chegarem a um nó, possuem
um identificador em seu cabeçalho, que corresponde a um conjunto de 29 bits (ou
11 bits, caso seja empregada a versão A do protocolo CAN). A máscara define quais
desses bits serão utilizados para verificação do aceite da mensagem. Os bits do filtro
correspondentes às posições dos bits setados em 1 na máscara serão então
comparados, um a um, aos bits do identificador do nó, também nas mesmas
posições. Se o resultado de todas as comparações (entre bits do filtro e bits do
18
identificador) for positivo, a mensagem é aceita. Caso contrario, a mensagem não é
aceita pelo nó. Como exemplo, foram listadas as situações possíveis descritas na
TAB 2.3.
Suponha um nó com ID 0x0012ff88.
Máscara Comportamento
0x1FFFFFFF Só serão aceitas mensagens cujos IDs sejam exatamente 0x0012ff88
0x1FFFFFF0 Não serão comparados os 4 bits menos significativos. Logo, serão aceitas mensagens com IDs entre 0x0012ff80 e 0x0012ff88
0x00000000 Serão aceitas todas as mensagens, independentemente do identificador (broadcast) TAB 2.3 – Máscaras e comportamentos.
Seguindo esse princípio, modelou-se a rede CAN do sistema domótico em um
sistema Unicast/Multicast. Os nós que desempenharem papel de Master (ou seja,
terão conexão com o mundo exterior através de um módulo Bluetooth acoplado)
serão nós setados em modo Broadcast, ou seja, apresentarão máscara CAN
0x00000000, recebendo e aceitando todas as mensagens que trafegarem pelo
barramento. Entretanto, os nós desempenhando papel de Slave têm necessidade de
se comunicarem somente com o Master e, portanto, apresentarão uma máscara
mais restritiva. Tal restrição permite que os nós Slave aceitem somente as
mensagens oriundas de um ou mais nós Master e, portanto, passe a ignorar
mensagens dos demais nós Slave. Sendo assim, o nó Slave terá uma máscara CAN
0x1FFFFFFF, no caso de haver somente um nó mestre, ou 0x1FFFFFFE, caso haja dois
mestres, e assim sucessivamente, restringindo sempre o tráfego de mensagens.
Os recursos de mascaramento e filtragem oferecidos pela rede CAN servem
como uma abstração intermediária, sendo possível, dessa forma, implementar uma
rede unicast/multicast. A comunicação entre um nó Slave e o Master será uma rede
Unicast (para o caso em que houver somente um mestre) e a comunicação do
Master para os Slaves será uma rede Multicast (considerando o caso em que haja
mais de um mestre, e as mensagens entre mestres sejam ignoradas para se manter
a consistência na rede).
19
2.5 Funcionalidades e limitações
As principais funcionalidades apresentadas pelo sistema projetado são listadas a
seguir:
ü O sistema responde dinamicamente à inserção e remoção de nós no
barramento, sem que haja necessidade de reboot de nenhum componente.
ü O sistema é capaz de aceitar a criação de novos módulos, inclusive de
tecnologias que ainda estejam por ser criadas, bastando apenas a
adaptação de um novo módulo, garantindo a conexão física, e uma
atualização simples do software Android, incluindo novas implementações
dos tipos de nós adicionados e seus estados.
ü O sistema é capaz de receber múltiplos usuários, ou seja, é possível que
haja mais de um usuário enviando comandos à rede CAN. Todo comando é
aceito, e o comando que será mantido deverá ser sempre o último a ser
enviado, ou seja, o mais recente.
ü O tempo de resposta dos dispositivos é bastante satisfatório (menos de 1
segundo), visto que o barramento CAN consegue atingir, em nosso sistema,
velocidades de até 1Mb/s.
ü Limite de funcionalidades que um nó pode apresentar é definido,
previamente, pela memória interna de um microcontrolador (32KB). O
programa ocupa menos de 2KB, restando mais de 30.000 posições de
configurações para cada nó. Foi utilizado um máximo de 3 posições no
sistema desenvolvido, e resultados suficientemente adequados foram
alcançados.
ü Quantidade teórica máxima de nós que uma rede pode possuir também é
definida pela rede CAN-B, cujos endereços podem ter o máximo de
1FFFFFFF bits, ou seja, 31 bits, o que corresponde a dois bilhões de nós.
Entretanto, sem que haja repetidoras para intensificar a potência do sinal, a
rede atual comporta cerca de 80 nós, mantendo a mesma velocidade de
transmissão. A necessidade de inserção de repetidoras depende da
capacitância, velocidade máxima requerida, comprimento dos nós e
topologia da rede demandados.
20
Entretanto, tal arquitetura está limitada pelas seguintes características:
ü Baixa taxa de transferência Bluetooth impede que haja streaming de grandes
quantidades de dados, como vídeo.
ü Caso haja mais de um usuário conectado ao sistema, não há nenhum
esquema de preempção de comandos, nem hierarquia de usuários. Basta
que o usuário saiba a senha de acesso do Bluetooth para poder inserir
comandos na rede, alterando seu estado.
ü Arquitetura CAN ainda requer o emprego de um barramento físico entre os
nós da rede (fios CAN_HIGH e CAN_LOW). O barramento, entretanto, é
minimizado, visto que a rede CAN, broadcast por definição, não requer
nenhuma conexão entre nós especificamente, basta que um nó se acople à
rede em qualquer ponto. Por outro lado, já existem trabalhos em que se usa
a Arquiterura CAN com outros meios sem ser o par trançado, como foi visto
em nossa Iniciação à Pesquisa. Por simplicidade, escolheu-se adotar este
esquema para explorar as funcionalidades de modularização e adequação
ao Android dentro da proposta.
21
3 SOFTWARE
3.1 O Cliente Android
A função do cliente Android é servir de interface entre o usuário final e o sistema
domótico, interpretando os dados e os protocolos que percorrem a rede. Além disso,
permite que o usuário envie comandos, setando e alterando o estado dos nós e
módulos acoplados. O aplicativo foi batizado como "AutomaHome", e programado
através da IDE Eclipse, com os add-ons fornecidos pelo Android Software
Development Kit e pelo Android Development Tools.
O projeto foi dividido em quatro pacotes:
ü canbus, que contém as representações das Views do Android;
ü canbus.btmanager, que controla o Service e a comunicação via Bluetooth;
ü canbus.mvc, que contém classes que definem as representações dos nós
(modelo, na forma de CanNode), e do controlador (EngineController);
ü canbus.types, que contém a representação dos diversos tipos de nós, bem
como os comandos correspondentes.
3.2 Interface de controle e identificação de módulos
Os Intents são controlados por uma classe instanciada no Service, chamada de
EngineController. Essa classe trata as Strings recebidas e as interpreta através do
método "handleIncomingDataFromMaster". Por sua vez, esse método verifica os
campos da mensagem recebida. Ele verifica se a mensagem é válida (ou seja, uma
mensagem de Update), e atualiza o ArrayList de nós que representa a rede CAN. Os
nós foram modelados através de uma classe chamada "CanNode". Os CanNodes
possuem um tipo pré-definido, que deve herdar da classe abstrata "NodeType".
Como exemplo, um nó que tenha o identificador de uma lâmpada, e que ainda não
esteja instanciado no ArrayList de nós, será representado por um CanNode do tipo
NodeTypeLampada. As classes NodeTypeXXX definem a interpretação dos bytes,
tanto quanto à posição correspondente ao NODE_STATUS do firmware quanto ao
significado e aos valores correspondentes ao status que se deseja definir. Além
22
disso, também contém informações a serem usadas pela View, ou seja, um logo que
ilustre aquele tipo, bem como um nome (ex.: um ícone dentro da pasta de
Resources que represente uma lâmpada, bem como o nome "Lâmpada"). O código
a seguir detalha a instanciação do tipo NodeTypeLampada:
public NodeTypeLampada() { this.iconResource = R.drawable.ic_lightbulb; this.typeCode = Values.TYPE_LAMP; this.typeName = "Lâmpada"; this.comandos = new ArrayList<Comando>(); comandos.add(new Comando("ON", (byte)0x00, (byte)0x01)); comandos.add(new Comando("OFF", (byte)0x00, (byte)0x02)); comandos.add(new Comando("R", (byte)0x01, (byte)0x01)); comandos.add(new Comando("G", (byte)0x01, (byte)0x02)); comandos.add(new Comando("B", (byte)0x01, (byte)0x03)); comandos.add(new Comando("W", (byte)0x01, (byte)0x04)); }
3.3 Interfaceamento Android – Master via Service
A comunicação entre Android e Master é feita de modo persistente através de
um Service. Os Services são classes que compreendem tarefas que rodam no
background do aplicativo, e a comunicação entre Service e Activity é realizado
através de LocalBroadcasts. Dessa forma, foi possível desacoplar completamente o
esquema de comunicação com a arquitetura de visualização (ViewTree) do Android.
Caso fosse mantida a lógica de comunicação Bluetooth atrelada a Activity, não seria
possível manter o estado da comunicação continuamente, ou seja, caso o usuário
abrisse temporariamente outro aplicativo, ou até mesmo se a tela mudasse de
orientação, a Activity anterior seria terminada, a conexão Bluetooth atrelada seria
perdida, e todo o processo de pareamento e comunicação deveria ser reinicializado.
Os principais Intents que servem de comunicação entre Service e Activity estão
declarados a seguir:
public static final String INTENT_CONNECT_SUCCESS = "connect_success"; public static final String INTENT_CONNECT_ERROR = "connect_error"; public static final String INTENT_DATA_ARRIVED_FROM_SENSOR = "data_arrived_from_sensor"; public static final String EXTRA_DATA_ARRIVED_LABELS = "extra_data_arrived_labels"; public static final String EXTRA_DATA_ARRIVED_VALUES = "extra_data_arrived_values";
23
Segundo MAZIDI (2008), microprocessadores usuais (tais como a família Intel
x86 ou a família Motorola PowerPC), não contêm RAM, ROM, nem portas de
entrada e saída de dados (I/O ports) no próprio chip. Por essa razão, são
normalmente chamados de “general-purpose microprocessors”, ou de emprego
geral.
Dessa forma, um projeto de sistema que pretenda empregar um
microprocessador de uso geral deve prever a inclusão de RAM, ROM, portas de
entrada/saída de dados e timers a fim de tornar tal sistema funcional. Embora a
necessária inserção de componentes possa trazer acréscimo no tamanho físico e no
custo total do projeto, os sistemas com microprocessadores contam com uma maior
versatilidade no dimensionamento da memória e dos componentes necessários, pois
são particularizados para cada projeto. O mesmo não ocorre em projetos
envolvendo microcontroladores: esses componentes contam com uma quantidade
pré-fixada de memória RAM, ROM, portas I/O, todos embutidos em um mesmo chip,
junto de um microprocessador (CPU). Segundo MAZIDI (2008, p. 24), essa
quantidade limitada de memória, aliada ao pequeno espaço ocupado, torna os
microcontroladores “ideais para diversas aplicações em que custo e espaço devem
ser otimizados”. Nessas aplicações, o espaço físico necessário, a potência
necessária e o preço por unidade são muito mais críticos que o poder de
processamento, e não deve se superdimensionar sua estrutura.
Visto que o presente projeto visa montar uma rede de domótica de tamanho
reduzido, na qual não há, em geral, necessidade para grande capacidade de
processamento (apenas acionamento de servo-motores, processamento de sinais
de sensores, conversões simples de sinais analógicos e digitais), e o baixo custo é
crucial, deve-se então empregar microcontroladores em cada nó de nosso
barramento CAN.
3.4 Diagrama de classes e heranças
A fim de ilustrarmos a organização de nossa arquitetura Android, foram criados
dois diagramas de classes, baseados em UML, conforme a FIG 3.1. O primeiro
deles, mais geral, inclui o nome das classes, o pacote nas quais elas estão
incluídas, mas omite parâmetros e métodos para facilitar a visualização. Perceba
24
que, dentro de nosso MVC, a classe EngineController controla a conexão Bluetooth,
através do BTService, que a mantém funcional mesmo que o usuário saia do
aplicativo temporariamente (jogando-o no background do sistema operacional) e
volte a se comunicar mais tarde sem que haja queda na conexão. Nosso modelo é
representado pela classe CanNode, que replica as configurações dos nós
encontrados na rede. A cada novo nó inserido e detectado na rede, um nó é
adicionado ao "canNodeList". A Main é nossa Activity, que no Android corresponde
ao View do MVC. A classe Values possui alguns valores constantes para referência,
e a classe Comando indica quais são os possíveis comandos que podem ser
executados por determinado tipo de nó, incluindo ali os valores dos respectivos
bytes que simbolizam tais ações nos microcontroladores.
FIG 3.1 – Diagrama de classes e heranças geral.
O segundo diagrama, exibido na FIG 3.2, tem o objetivo de detalhar a relação
entre a classe abstrata de tipos de nós, os tipos de nós implementados que
estendem dessa classe abstrata (no caso, NodeTypeLampada e NodeTypeClima, e
sua relação com a classe CanNode, que é possuidora de um dos tipos disponíveis.
26
4 HARDWARE
4.1 Estrutura física de um nó
O nó é definido como um conjunto de hardware que possui como componentes:
microcontroladores, sensores e atuadores, e possui uma função específica dentro da
rede no qual está inserido.
Dentro do escopo deste trabalho, os nós se comunicam via CAN BUS entre os
nós da mesma rede. Além disso, o nó poderá utilizar outro protocolo de
comunicação caso haja necessidade de comunicação com algum dispositivo que
esteja fora da rede física CAN. Como exemplo, um nó pode receber mensagens de
outro nó na rede via CAN BUS e retransmiti-lo para um dispositivo móvel (Celular)
através de um módulo Bluetooth.
FIG 4.1 – Esquema da geral da prática realizada.
Dependendo da complexidade da tarefa a ser realizada pelo nó, o
microcontrolador terá, além de sensores ou atuadores acoplados, componentes
eletrônicos com a finalidade de compatibilizar eletronicamente o microcontrolador e
seus atuadores/sensores e outros componetes para o funcionamento tanto do
27
microcontrolador como dos sensores/atuadores, como, por exemplo, o oscilador que
fornece o clock preciso para o microcontrolador.
Desta forma, tendo em vista o grande número de funcionalidades possíveis e a
complexidade que cada nó pode gerar, este trabalho irá apresentar dois nós, que
foram nomeados de acordo com sua funcionalidade dentro do escopo do trabalho.
O presente trabalho, em seu experimento, tem como meta a automação de
uma rede composta por três nós, sendo dois nós Slave com uma lâmpada colorida
de LED em um e um motor elétrico no outro (ventilador); e um Nó Master, que
contém o Bluetooth, conforme a FIG 4.1.
O nós Slave executam as tarefas para as quais eles são especificados e
retornam dados pertinentes à rede e ao usuário. O nó Master é responsável por
receber as mensagens vindas da rede CAN e transmiti-las ao usuário por Bluetooth,
além de receber os dados do celular e repassá-las à rede CAN.
4.1.1 Nó Master
De acordo com o proposto na seção 4.1, o nó Master terá como função receber
e enviar mensagens através do protocolo CAN-BUS e comunicar-se com mundo
exterior à rede CAN. Foi resolvido que o nó Master tivesse como conexão com um
celular (Smartphone) através do protocolo Bluetooth (conforme digrama na FIG 4.2).
Para que essa conexão seja viável, foi necessário o seguinte material:
ü 1 Microcontrolador
ü 1 Módulo Bluetooth
ü 1 Oscilador
ü 2 Capacitores
ü 1 Transceiver
28
FIG 4.2 – Diagrama simplificado do Nó Master.
4.1.1.1 Microcontrolador
O Microcontrolador é o grande gerenciador ou cérebro deste nó, controlando
todos os procedimentos de acordo com o seu firmware. Este dispositivo se comunica
principalmente com o Bluetooth pela sua porta USART e com a rede CAN com os
pinos CAN Tx e CAN Rx, que se ligarão ao transceiver. Dentre os diversos
microcontroladores disponíveis no mercado, decidiu-se estudar e implementar em
nossa pesquisa, devido ao seu baixo custo, à vasta variedade de chips compatíveis
e à versatilidade proporcionada durante a inclusão ou exclusão de nós em um
circuito, o modelo PIC 18F2580, da Microchip, ilustrado na FIG 4.3. Além de ter seu
custo reduzido, a família 18Fxx8 já possui vasta biblioteca de métodos adaptados
para o protocolo CAN, possibilitando empregarmos a máxima capacidade que o
protocolo CAN BUS nos oferece. A série de microcontroladores 18F foi desenvolvida
pela Microchip Inc. para uso em aplicações complexas, tais como a comunicação via
protocolos TCP/IP, CAN, USB e Zigbee, entre outros. Além disso, este
microcontrolador foi utilizado no IP deste mesmo assunto e tem sido o
microcontrolador de estudo nas cadeiras da sessão de engenharia elétrica no
Instituto Militar de Engenharia.
29
FIG 4.3 – Diagrama de pinos do microcontrolador. (MICROCHIP, 2007, p.2)
4.1.1.2 Bluetooth
O módulo Bluetooth faz a interface entre o microcontrolador o celular por meio das
ondas de rádio. Este dispositivo se comunica por porta serial com o microcontrolador e
por ondas eletromagnéticas moduladas conforme o protocolo de comunicação
Bluetooth. Além disso, tem os pinos auxiliares de RTS (request to send) e CTS (clear to
send) para controle do fluxo de informação. O dispositivo escolhido pra executar esta tarefa foi o chip RN 42 da microchip. Esse
módulo, de classe 2, permite a comunicação entre dispositivos Bluetooth versão 2.1 em
um raio de 20 metros sem obstáculos (apresenta antena que permite conexões em
taxas de até 3Mbps, com saída de +4dBm e sensibilidade de recepção de -80dBm);
possui criptografia interna padrão de 128bits e funções de correção de erros em pacotes
(ROVING, 2013). O módulo RN42 ainda possui perfis de baixo consumo de corrente (como o modo
“deepsleep”, que consome 26µA em um circuito de 3.3V, podendo mesmo assim ser
descoberto e pareado, passando então a consumir 30mA ao se conectar), adaptando-se
perfeitamente ao circuito a ser utilizado. Dessa forma, ao integrarmos o RN42 ao circuito
do microcontrolador, o sistema CAN tornou-se apto a receber e transmitir mensagens
via Bluetooth mediante interfaceamento serial, o que foi essencial para a comunicação
com o celular. Uma visão geral de seu digrama pode ser vista na FIG 4.4.
30
FIG 4.4 – Diagrama de blocos RN42N. (ROVING, 2013, p.1)
4.1.1.3 Oscilador
O oscilador tem como principal funcão selecionar a correta frequência de
funcionamento dos ciclos de instrução do PIC. Existem diversas formas de seleção
do esquema do oscilador, tais como RC (com resistores e capacitores), XT (com
cristais de baixa potencia), XT (com cristais comuns), HS (com cristais de alta
frequência) e com oscilador externo, de acordo com a FIG 4.5. Foi utilizado um
cristal de clock que fornece uma frequência de 8.000 KHz, suficientemente pequena
para atingirmos a precisão necessária aos componentes e aos comandos.
FIG 4.5 – Esquemas de osciladores. (ARNEROBOTICS, 2014)
31
4.1.1.4 Capacitor
Os capacitores atuam juntamente com o oscilador para a seleção da frequência de
oscilação. Eles se ligam em uma extremidade ao cristal externo e com o outro terminal
nos pinos OSC 1 e OSC 2 do PIC18F2580, conforme esquema da FIG 4.6. Foi utilizada
a estrutura XT de oscilação do Microcontrolador PIC, pois é confiável e não depende de
circuitos alheios ao sistema. Para a correta seleção do valor de capacitância, é
necessário ver a indicação do fabricante do PIC, conforme a TAB 4.1.
FIG 4.6 – Esquema de ligação capacitor. (MICROCHIP, 2007, p. 23)
TAB 4.1 – Seleção de capacitores (MICROCHIP, 2007, p. 23)
4.1.1.5 Transceiver
O transceiver é o responsável por compatibilizar o nível de sinal do barramento
CAN para o trabalhado no microcontrolador. Foi escolhido o chip MCP2551 para
executar tal tarefa, pois, além de ser do mesmo fabricante do Microcontrolador,
existe extensa bibliografia para apoiar a prática. Sua configuração pode ser
realizada através da chamada de funções previamente oferecidas pela biblioteca
CAN, incluída na IDE mikroC para PIC
32
A estrutura interna do MCP2551 é mostrada na FIG 4.7. Esse chip suporta até 1
Mbps e pode operar com até 24V no barramento CAN. Inclui uma proteção contra
curto-circuito e desligamento automático térmico, o que lhe dá uma robustez maior
perante as falhas típicas deste modelo, detalhado na FIG 4.8. Além disso, possui
proteção contra picos de tensão e operação com baixa energia para aplicações onde
a economia de energia é requerida, ou quando se quer aumentar a confiabilidade.
FIG 4.7 – Diagrama de pinos do transceiver. (MICROCHIP, 2010, p.1)
FIG 4.8 – Diagrama de blocos do transceiver. (MICROCHIP, 2010, p.1)
4.1.2 Nó Slave 1 - Lâmpada LED IR
O nó Slave, através das mensagens vindas do nó Master, possui um
microcontrolador que irá gerar sinais que atuarão sobre um módulo infravermelho de
acordo com a ordem recebida. Com o intuito de isolar o circuito do microcontrolador,
33
foi confeccionado também um módulo fotoacoplador. Para que essa conexão seja
viável, foi necessário o seguinte material:
ü 1 Microcontrolador
ü 1 Transceiver
ü 1 Oscilador
ü 2 Capacitores
ü 1 Módulo fotoacoplador
ü 1 Módulo IR
A FIG 4.9 mostra a disposição do circuito Slave 1 – Lâmpada LED IR.
FIG 4.9 – Diagrama do nó Slave 1.
34
4.1.2.1 Microcontrolador
O Microcontrolador empregado é o PIC 18F2580, o mesmo empregado em
todos os nós. Nas suas portas de I/O de RC0 a RC5, ele se comunica com o módulo
fotoacoplador. Além disso, este módulo foi construído com três LEDs de
identificação de operação. Quando o circuito recebe uma informação via CAN, ele
acende o LED ligado à porta RB4; quando transmite algum dado para o transceiver,
ele liga RB5; e o LED à porta RB6 é um indicador de status do PIC. Esta
padronização foi particurlarmente útil na identificação e mapeamento de falhas. 4.1.2.2 Oscilador
Seguem a mesma configuração do nó mestre (estrutura base). 4.1.2.3 Capacitores
Seguem a mesma configuração do nó mestre (estrutura base). 4.1.2.4 Transceiver
Tem configuração semelhante ao nó Master. Vale resaltar na FIG 4.10 o modo
de se conectar esse dispositivo com os demais elementos do nó.
FIG 4.10 – Interface do transceiver CAN com o barramento e o PIC.
(MIKROELEKTRONIKA, 2010)
35
4.1.2.5 Módulo Fotoacoplador
O módulo fotoacoplador é utilizado neste nó para isolar o circuito do
Microcontrolador com o módulo IR. Desta maneira, uma pane em qualquer um
destes circuitos não se expande ao demais. Um diagrama simplificado do dispositivo
selecionado para este fim é mostrado a seguir.
FIG 4.11 – Esquemático do Fotoacoplador 4n25. (FAIRCHILD , 2002, p.1)
O 4n25 é um fotoacoplador de uso geral que já está bastante consolidado no
mercado. Ele é confeccionado com um diodo emissor de Gálio-Arsênio acoplado a
um fototransistor que é excitado pela base do transistor.
Este conjunto sera empregado como chave, isto é, quando o diodo conduzir,
uma luz infravermelha será emitida dentro do chip; esta luz, por sua vez, irá saturar
a base do fototransistor que fechará o contato. Por outro lado, enquanto o diodo não
conduzir, a base do fototransitor não estará polarizada e este entrará em corte
(chave aberta).
4.1.2.6 Módulo IR
O módulo Infravermelho foi empregado para acionar uma lâmpada colorida feita
com LED. Este conjunto foi escolhido por possuir diversas funções, e por poder
representar também uma diversidade de dispositivos que poderia ser controlada a
partir de um controle remoto comum. Este módulo foi tratado como caixa preta, de
onde se aproveitou o controle para implementar os contatos que fariam os
comandos para a lâmpada.
36
Seria possível, da mesma forma, implementar um módulo IR próprio. Entretanto,
como esta é uma tecnologia consolidada e o foco da pesquisa se dá na utilização da
Rede CAN, preferiu-seutilizar o módulo pronto projetando apenas a interface.
FIG 4.12 – Conjunto Lâmpada e controle remoto. (MERCADO LIVRE, 2014)
O modelo aquirido possui as seguintes características: lâmpada de um LED
RGB com soquete padrão de lâmpadas E27; controle remoto que permite a troca
das cores (até 16 cores), aplicação de efeitos (Flash, Strobe, Fade, Smooth),
aumento/diminuição da intensidade da luz, bem como ligar e desligar a lâmpada.
Apresenta potência de 3 watts bivolt (110V~220V). É fabricado em fibra de alumínio,
com tempo de uso estimado em 50 mil horas, provendo economia de até 90% em
relação as lâmpadas comuns. Não emite luz ultravioleta. Suas dimensões são 6 cm
de comprimento x 4,9 cm de diâmetro, e pode ser empregada como luz Spot (Spot
Light). 4.1.3 Nó Slave 2 - Climatizador
O nó Slave 2, através das mensagens vindas do nó Master, possui um
microcontrolador que irá gerar sinais que atuarão sobre um módulo de acionamento
de um ventilador. Apesar de ser uma carga única, a ideia aqui era simular o
acionamento de qualquer carga tipo indutiva (motor, ar-condicionado, etc).
Além disso, nosso intuito foi montar um sensor de temperatura que poderia
comandar o ligamento do ventilador de acordo com um parâmetro de temperarura à
escolha do usuário. Entretanto, este último objetivo não foi alcançado, pois atingiu-
se o limite do firmware na versão gratuita da IDE utilizada. Apesar disso, em nossas
37
experiências, foi possível ler temperaturas individualmente e acionar o motor de
forma separada. A FIG 4.13 ilustra os principais componentes deste nó.
FIG 4.13 – Diagrama do nó Slave 2.
Os componentes essenciais para a realização da tarefa delineada acima foram:
ü 1 Microcontrolador
ü 1 Transceiver
ü 1 Oscilador
ü 2 Capacitores
ü 1 Módulo fotoacionador
ü 1 Módulo de Potência
4.1.3.1 Microcontrolador
O Microcontrolador usado é o PIC 18F2580, o mesmo empregado nos demais
nós. Na sua porta de I/O RC5, o microcontrolador se comunica com o módulo
38
fotoacionador. Do mesmo modo que o nó Slave 1, o nó “climatizador” possui LEDs
de identificação de operação.
4.1.3.2 Oscilador
Seguem a mesma configuração do nó mestre (estrutura base).
4.1.3.3 Capacitores
Seguem a mesma configuração do nó mestre (estrutura base).
4.1.3.4 Transceiver
Tem configuração semelhante ao nó Master. Por outro lado, como este nó foi
empregado no meio na linha, não possui o resistor de terminação entre os fios CAN
High e CAN Low do barramento.
4.1.3.5 Módulo Fotoacionador
Este módulo tem bastante semelhança com o módulo fotoacionador do nó Slave
1. Sua principal função é receber o sinal vindo do microcontrolador e acionar o
dispositivo que permitirá o acionamento da carga.
A partir de uma corrente no foto-diodo (polarização direta), o componente ativará
o interruptor bilateral do TRIAC interno, conforme FIG 4.14. Isso permitirá comutar a
tensão de corrente alternada, liberando corrente suficiente para acionar o dispositivo
de potência.
FIG 4.14 – Diagrama de Pinos e de Lógica do Fotoacionador. (TEXAS
INSTRUMENTS, 1995 p.1)
O dispositivo selecionado para este fim foi o MOC3020, da Texas Instruments.
Consolidado no mercado há mais de três décadas, o dispositivo é uma referência
quando se fala na classe de optoacopladores/optoisoladores. Possui a robustez de
39
poder trabalhar até temperaturas de mais de 100 graus celcius, além de oferecer
uma elevada tensão de isolação (7.5 KV). Possui, de igual modo, corrente de
polarização direta compatível com as características do PIC18F2580.
4.1.3.6 Módulo de Potência
O módulo de Potência é assim denominado por possuir o conjuto de
dispositivos que acionarão a carga principal, que é a mais potente do circuito
(160W). Umas das possíveis soluções para este acionamento seria usar relés de
baixa tensão. Entretanto, devido à sua baixa confiabilidade, associada à redução de
sua vida conforme o número de manobras, preferiu-se usar o dispositivo eletrônico
do estado sólido chamado TRIAC.
O TRIAC é o equivalente a dois SCR ligados em antiparalelo. Tal configuração
permite que ele conduza em ambos os sentidos, conforme corrente passante pelo
Gate. O TRIAC é usado para chavear corrente alternada (AC). O gate pode ser
disparado com tensão positiva ou negativa. Após o disparo no gate, o TRIAC passa
a conduzir até que a corrente alternada mude de sentido, isto é, no próximo
semiciclo da senóide. Quando isto ocorre, é necessário um outro pulso no gate.
Geralmente, o gate do TRIAC é disparado por um diodo chamado DIAC, que em
nosso caso é o MOC2021. Este diodo conduz quando a tensão passa de um certo
nível, geralmente 20 ou 30V (BURGOS ELETRÔNICA).
O dispositivo usado para este fim foi o BTA/TO 220. Considere as FIG 4.15 e
4.16, que ilustram não só a pinagem do dispositivo, como também a disposição
deste em nosso circuito. O BTA alia velocidade de comutação à capacidade de
condução considerável em regime nominal (10A). Assim, ele pode ser usado em
atividades diversas de chaveamento, desde uma operação liga e desliga como
também estratégias de controle de velocidade, dimerização e outras.
40
FIG 4.15 – Diagrama de Pinos do TRIAC empregado. (SNUBBERLESS &
STANDARD, 2002, p.1)
FIG 4.16 – Esquemático para acionamento de cargas indutivas. (TEXAS
INSTRUMENTS, 1995, P.4)
4.2 Firmware
O firmware foi desenvolvido na linguagem C através da versão gratuita da IDE
"mikroC PIC". Uma limitação imposta pelo sistema se deve ao fato de que o
firmware, após ter sido compilado, não poder contar com mais de 2.000 palavras de
instrução. Dessa forma, programas que contam com o auxílio de muitas bibliotecas
externas – tais como as bibliotecas para comunicação CAN, comunicação USART,
conversores ADC, entre outros – passam a não ser compiláveis pela versão gratuita,
limitando a possível exploração das funcionalidades do dispositivo. Especialmente
no nó climatizador, foi possível executar operações de controle de temperatura
mediante sensoreamento remoto, acionando automaticamente o ventilador. Todavia,
ao integrarmos a funcionalidade do CAN, o firmware passou a não ser mais
41
compilável. O preço de uma licença professional, – por volta de US$ 300 – mostrou-
se, portanto, impeditivo ao nosso trabalho.
O firmware foi organizado em três grandes blocos: o primeiro bloco definia
parâmetros comuns a todos os sensores e ao sistema como um todo, bem como as
máscaras CAN e valores de identificação dos diversos tipos, oferecendo maior
clareza ao código. Já o segundo bloco era constituído por um conjunto de funções
que eram usadas com grande frequência, incluindo e agrupando diversos métodos
de configuração de parâmetros CAN, USART, setup de LEDs para debug e métodos
de funcionalidade. Dois desses métodos merecem maior destaque: são os métodos
refresh_node() e configurar_node_status(). Por fim, o terceiro bloco inclui a rotina
main(), definindo a ordem de execução das funções exercidas e o loop principal que
chama os métodos de apoio.
A modularidade de nosso firmware foi conquistada mediante o uso dos métodos
configurar_node_status() e refresh_node(). Esses métodos definem a configuração
inicial de um nó ao ser ligado e como um nó deve reagir para cada mudança de
estado detectada. Como fora citado na gramática, cada nó possui um array com
capacidade para três bytes chamado de "NODE_STATUS". Para fins de
simplificação, foi adotado um array pequeno, mas poderiam ter sido adotados arrays
ainda menores. Esse array reproduz o estado de um nó. Cada posição do array
corresponde a um estado do nó. Por exemplo, no nó lâmpada, a primeira posição
(posição zero) corresponde ao estado ligado/desligado; e a segunda posição, à cor
ativada naquele momento (R, G, B ou W). A terceira posição não tinha nenhum
significado nesse nó. O método configurar_node_status() definia quais seriam os
valores iniciais a serem adotados por esse nó assim que ele ligasse pela primeira
vez, ou seja, se aquele nó começaria ligado/desligado, e, caso ligado, qual cor seria
a cor default. O método refresh_node() atualiza o estado real do nó baseado na
configuração em memória do array NODE_STATUS. Portanto, ao receber alguma
mensagem requisitando alguma mudança em seu atual estado, o método
refresh_node() era invocado e, ao interpretar os bytes que representavam seu novo
estado, tomava as medidas correspondentes (ou seja, se seu NODE_STATUS[0]
fosse modificado para 0x02, que correspondia ao estado "desligado", esse nó
executaria os comandos para que o controle IR fosse acionado na posição que
desligasse a lâmpada).
42
O conjunto de bytes que correspondiam a cada possível estado de um nó era
replicado no Android. Dessa forma, caso se desenvolva um novo nó, de um novo
tipo, basta que o aplicativo seja atualizado, de maneira que fosse capaz de enviar
novos comandos de mudança de estado e também pudesse interpretar os bytes que
viriam em caso de uma mensagem de requisição de update de estado dos nós.
Veja a seguir alguns trechos do código que exemplificam os três blocos. O
primeiro bloco, também podendo ser incluído como um header file externo,
declarava as constantes comuns: // PARAMETROS PADRAO const unsigned int NODE_QTD_STATUS = 3; const unsigned int NODE_TOTAL_BITS_STAT = NODE_QTD_STATUS + 3; const unsigned char TYPE_LAMP = 0x01; const unsigned char TYPE_IR = 0x02; const unsigned char INSTRUCT_UPDATE = 0x01; const unsigned char INSTRUCT_REQ_UPDATE = 0x02; const unsigned char INSTRUCT_SET = 0x03; const char END_CHAR = 13; // VARIAVEIS CAN unsigned char sdata[8], read_flag, rdata[8]; unsigned short config_flag, send_flag, len; char SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg; long MASTER_ID = 0x00007777, mask, id;
Já o segundo bloco incluía inúmeros helper methods, dentre os quais se destaca
o método que configurava o sentido das portas para o uso dos LEDs, e outro método
que configurava os parâmetros de temporização do CAN, bem como o método
configurar_node_status() para o nó lâmpada. /* * Configura as portas especificas (TRIS, etc) para o LED de RX e LED de TX */ void configurar_LED(void){ TRISC = 0x00; // o TRISB esta sendo setado no metodo CAN Delay_ms(10); PORTB.B4 = 0; Delay_ms(10); PORTB.B5 = 0; Delay_ms(10); PORTB.B6 = 0; Delay_ms(10); PORTC.B6 = 0; Delay_ms(10); } void configurar_CAN(void) { // Parametros CAN TRISB = 0x08;
43
// canbus timing parameters SJW = 3; BRP = 8; Phase_Seg1 = 3; Phase_Seg2 = 3; Prop_Seg = 1; // Configuracao config_flag = _CAN_CONFIG_SAMPLE_THRICE & _CAN_CONFIG_PHSEG2_PRG_ON & _CAN_CONFIG_STD_MSG & _CAN_CONFIG_DBL_BUFFER_ON & _CAN_CONFIG_VALID_STD_MSG & _CAN_CONFIG_LINE_FILTER_OFF; read_flag = 0; send_flag = _CAN_TX_PRIORITY_0 & _CAN_TX_STD_FRAME & _CAN_TX_NO_RTR_FRAME; // Inicializar modulo CAN CANInitialize(SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, config_flag); // Setar modo config CANSetOperationMode(_CAN_MODE_CONFIG, 0xFF); mask = 0; // QUEREMOS QUE O MESTRE RECEBA MENSAGEM DE TODOS! // Setando todas as MASK1 para FFFFFF... CANSetMask(_CAN_MASK_B1, mask, _CAN_CONFIG_STD_MSG); // Setando todas as MASK2 para FFFFFF... CANSetMask(_CAN_MASK_B2, mask, _CAN_CONFIG_STD_MSG); // Setando id do filtro B2_F3 para 0 (RECEBE DE TODOS) CANSetFilter(_CAN_FILTER_B2_F3, 0, _CAN_CONFIG_STD_MSG); // Setando CAN para modo normal CANSetOperationMode(_CAN_MODE_NORMAL, 0xFF); Delay_ms(100); } /* * Configuracao inicial do modulo (luz) */ void configurar_node_status(void) { NODE_STATUS[0] = 0x01; NODE_STATUS[1] = 0x04; NODE_STATUS[2] = 0x00; PORTC.B0 = 0; Delay_ms(100); PORTC.B1 = 0; Delay_ms(100); PORTC.B2 = 0; Delay_ms(100); PORTC.B3 = 0; Delay_ms(100);
44
PORTC.B4 = 0; Delay_ms(100); PORTC.B5 = 0; Delay_ms(100); }
Por fim, o terceiro bloco inclui a rotina main(), responsável por chamar os demais
métodos na ordem correta, bem como parsear as mensagens que chegavam e
montar as mensagens de REQ_UPDATE. A função main era comum a todos os
firmwares de todos os nós Slave. Os nós Master possuíam algumas rotinas para
recepção de mensagens seriais via USART, pois é o interfaceamento empregado
pelo módulo Bluetooth ao microcontrolador – algo que não fora empregado nos
demais nós (embora possa muito bem ser empregado, sem restrições).
45
5 ROTEIRO DA PRÁTICA REALIZADA
Com o objetivo de demonstrar a viabilidade do presente trabalho, foi realizado
um experimento prático. A prática foi demonstrada através da requisição de
comandos, mediante o aplicativo desenvolvido, e as respectivas ações do sistema.
Os passos demonstrados a seguir levam em consideração todo o hardware
descrito no capítulo 4 deste trabalho, o qual está implementado em uma rede CAN
funcional, além do uso do aplicativo descrito no capítulo 3 do presente trabalho, que
está instalado em um celular com sistema Android 4.4.
1º Passo: Considere o esquema inicial descrito na FIG 5.1:
FIG 5.1 – Esquema inicial da prática
Iremos executar o comando refresh (FIG 5.2):
FIG 5.2 – Comando Refresh
46
Com isso, o software irá enviar uma mensagem à rede para verificar quais nós
estão ativos. Com o esquema atual, serão recebidas duas mensagens.
A mensagem vinda do nó Slave 1 (FIG 5.3):
FIG 5.3 – Estado da lâmpada
E a mensagem do nó Slave 2 (FIG 5.4):
FIG 5.4 – Estado do climatizador
2º passo: Após reconhecida a rede, iremos acionar os nós na rede.
Para a lâmpada led (Slave 1) será enviado o comando da FIG 5.5.
FIG 5.5 – Comando para ligar luz
47
Com a mensagem enviada através do celular pelo protocolo Bluetooth, o nó
Master irá enviar o comando para ligar a lâmpada led através da rede CAN para o
nó Slave 2 que irá acionar o módulo IR, o qual ligará a lâmpada led.
O mesmo raciocínio pode ser aplicado para o acionamento do Climatizador
(Slave 2) com o comando da FIG 5.6.
FIG 5.6 – Comando para acionar ventilador
Pode-se concluir através da demonstração que, com o software instalado no
aparelho celular, é possível acionar quaquer carga indutiva, como foi feito no
acionamento do ventilador, e qualquer aparelho que opere através de um comando
por Infra-vermelho, como foi demosnntrado atráves do acionamento da lâmpada led
com a tecnologia IR. Mais ilustrações da prática realizada podem ser observadas no
capítulo 8.
48
6 CONCLUSÃO
A presente pesquisa teve por objetivo a prototipagem e implementação de uma
rede de automação residencial modular baseada no protocolo CAN BUS. As redes
CAN apresentam ótima confiabiliadade, sendo normalmente empregadas em
ambientes com ruídos mecânicos e elétricos, como, por exemplo, em automóveis.
Para isso, foi projetada uma rede que permite a inserção e remoção de nós
dinamicamente, implementado um software para a plataforma Android capaz de
interfacear os comandos do usuário final e o estado dos sensores. A flexibilidade do
acréscimo e retirada de nós é particurlarmente importante em uma residência devido
às constantes mudanças que ocorrem no perfil da família e no tipo de
eletrodomésticos: um apartamento de idosos tem, por exemplo, um conjunto de
equipamentos que difere de uma moradia de jovens universitários. Além disso, dado
o ciclo de vida médio de aparelhos eletrônicos modernos, que é de cinco anos, é
comum que haja grande quantidade de eletrodomésticos sendo renovados a cada
ano, salientando a necessidade de se desenvolver um sistema que apresente alta
adaptabilidade.
Isso posto, foi implementado um conjunto de nós capaz de se comportar de
maneira modularizável. Primeiramente, dois módulos foram confeccionados. O
primeiro a ser projetado foi o nó Slave 1, ou “Lâmpada LED IR”, que possui um
microcontrolador que gera sinais que atuam sobre um módulo infravermelho de
acordo com a ordem recebida da rede CAN, tudo com o intuito de controlar a
luminosidade de um local através de um lampada led que, por sua vez, é operada
via infravermelho. Em seguida, foi construído o nó Master, que tem como função
receber e enviar mensagens através do protocolo CAN BUS e comunicar-se com
mundo exterior à rede CAN. Decidiu-se que o nó Master tivesse como conexão com
um celular (smartphone) através do protocolo Bluetooth.
Os tipos de nós desenvolvidos representam boa parte das cargas que podem
ser empregadas nas casas modernas. O módulo Slave 1 atua em um controle
remoto IR: desta maneira poderíamos controlar qualquer equipamento que possui
esse tipo de controle, tais como televisores, aparelhos de ar-condicionado, DVDs,
entre outros. O módulo Slave 2 age em um ventilador (que é uma carga tipo
49
motor/indutiva). Sendo assim, podemos enquadrar nessa categoria outros tipos de
carga, tais como geladeiras, máquinas de lavar, bem como qualquer motor auxiliar
empregado na automação residencial.
Com o objetivo de introduzir escalabilidade na implementação dessa rede, foi
adotado, no client side, um modelo de software baseado no MVC, no qual o Model
era materializado por uma classe CanNode, possuidora, por sua vez, de alguma
instância de implementação da classe abstrata NodeType, definindo qual era o tipo
de nó que se tratava. Portanto, ao serem criados novos tipos de nós (hardware),
basta ao desenvolvedor do programa Android implementar novas classes que
herdem da classe abstrata NodeType, inserindo ali os bytes descritores do novo nó.
Com a padronização da comunicação entre os módulos, foi possível criar um
ambiente capaz de receber um novo módulo sem que se altere o firmware dos
demais nós existentes. Para fins de comprovação da escalabilidade do sistema, foi
projetado um novo módulo. O novo nó, denominado Slave 2, ou “Climatizador”, atua
através das mensagens vindas do nó Master e possui um microcontrolador que gera
sinais que atuam sobre um módulo de acionamento de um ventilador (carga
indutiva). Esse módulo foi conectado diretamente à rede física do par trançado, já
pertencente à rede CAN dos outros dois módulos previamente projetados. Para que
o novo módulo fosse descoberto na rede, foi necessária apenas a atualização do
software do Android, mantendo-se, desta forma, intactos a rede física pré-existente e
os firmwares anteriores.
A partir da construção conceitual, da escrita do firmware, da implantação dos
módulos em protoboards e da implementação do software de controle no sistema
Android, foi possível observar a aplicabilidade efetiva dos conceitos anteriormente
mencionados, além da escalabilidade obtida a partir da correta aplicação da
modularização.
Para trabalho futuros, pode-se verificar a viabilidade da implantação da rede
aqui desenvolvida em um local que já possua uma infra-estrutura de cabos de pares
trançados, com o objetivo de verificar uma possível queda na taxa de transmissão
devido às distâncias entre os nós. Também se sugere realizar um estudo para a
colocação das terminações resistivas características da rede CAN. Uma sugestão
nessa direção seria a criação de um dispositivo que fosse conectado à extremidades
dos cabos de rede já existentes (anteriormente ligados a um backbone ou ao
50
roteador local). Esse dispositivo poderia incluir em sua composição as terminações
resistivas adequadas para o sistema, de modo a obedecer a exigência do protocolo
CAN. Existe grande relevância nesse estudo, visto que há grande incidência de
cabos de rede que anteriormente eram usados para o acesso à internet, mas que,
devido à conjuntura atual, não são mais utilizados dado o crescimento das redes
sem fio, compondo assim uma potêncial infra-estrutura que pode abrigar o sistema
do presente trabalho.
Quanto ao software desenvolvido para Android, destacam-se como possíveis
melhorias para trabalhos futuros: aperfeiçoar a interface gráfica do cliente Android
(ampliando a experiência do usuário e adaptando melhores Views para o sistema) e
permitir o controle e gerenciamento de usuários, definindo prioridade de comandos
caso mais de um cliente se comunique com um Master.
Diante do exposto, foi visto que é perfeitamente viável utilizar o CAN BUS como
protocolo de automação residencial. Além disso, vive-se um momento em que as
pessoas e empresas buscam soluções velozes e confiáveis para a chamada “casa
inteligente”. Assim sendo, esse projeto vai ao encontro dos anseios de
consumidores e grandes desenvolvedores.
51
7 REFERÊNCIAS BIBLIOGRÁFICAS
ALIEVE, César Adriano. Automação Residencial com Utilização de Controlador Lógico Programável. Novo Hamburgo-RS: Centro Universitário Feevale, 2008. Monografia (Graduação em Ciência da Computação).
ANDROID. Developer Reference Documentation: Bluetooth Adapter. Disponível
em <developer.android.com/reference/android/bluetooth/BluetoothAdapter.html>. Acesso em 28 fev. 2013.
ARNEROBOTICS. Microcontroladores PIC- Teoria Parte 2. Disponível em:
<http://www.arnerobotics.com.br/eletronica/Microcontrolador_PIC_teoria_2.htm>. Acesso em 03 Out. 2014.
BARBOSA, Roberto Luiz Guimaraes. Rede CAN. Belo Horizonte-MG: UFMG, 2003.
Disponível em <http://www.cpdee.ufmg.br/~elt/docs/DSP/Resumo_CAN.pdf>. Acesso em 02 jun 2013.
BEIKIRCH,Helmut. CAN-Transceiver for field bus powerline communications.
Disponível em <http://www.isplc.org/docsearch/Proceedings/2000>. Acesso em 31 mai. 2013.
BOSCH do Brasil. Disponível em:
<http://www.bosch.com.br/br/autopecas/produtos>. Acesso em 15 out. 2012. BRAGA, Newton C. O uso de microcontroladores para acionamento de
tiristores. Disponivel em: <http://www.newtoncbraga.com.br/index.php/artigos/54-dicas/5393-col088.html>. Acesso em 23 mai. 2013.
BURGOSELETRÔNICA. Tiristores. 2010. Disponível em:
<http://www.burgoseletronica.net/tiristores_triac.html>. Acesso em 02 out. 2014. CAN Specification, Version 2.0. Robert Bosch GmbH. Stuttgard, 1991. Disponível em
<http://www.bosch-semiconductors.de/media/pdf_1/canliteratur/can2spec.pdf>. Acesso em 02 out. 2014.
CARVALHO, Rafael Lima de. Sistema de identificação para a casa inteligente
utilizando som. 146 p. Rio de Janeiro-RJ: Instituto Militar de Engenharia, 2008. Dissertação (Mestrado em Sistemas de Computação).
CENSI, Angela. Sistema para Automacao e Controle Residencial Via e-mail.
Blumenal; Universidade Regional de Blumenal, 2001 Monografia (Graduação em Ciência da Computação) . Disponível em: <campeche.inf.furb.br_tccs_2001-I_2001-1angelacensivf>. Acesso em: 13 out. 2012.
52
CHERMONT, Marlon Gripp; CUGNASCA, Carlos Eduardo et al. Sistema Supervisório para Redes LonWorks. São Paulo-SP: USP. Disponivel em <http://www.p2s.com.br/team/scanovas/files/sist_superv_lonworks.pdf>. Acesso em 01 jun. 2013.
DANTAS, Bruno; FERREIRA, Victor; MATOS, Jefferson. Estudos de Dispositivos
utilizados para a automação residencial – Domótica. Iniciação à Pesquisa. Rio de Janeiro: IME, 2013.
FAIRCHILD SEMICONDUTOR. General Purpose 6-PIN Phototransistor
optocoupler. 2002. Disponível em: <http://teslabs.com/meteotek08/fitxers/ datasheets/4N28.pdf>. Acesso em: 01 out. 2014.
FERNANDES, Pedro Miguel de Miranda. Aplicações Domóticas para Cidadãos
com Paralisia Cerebral. Aveiro-Portugal: Universidade de Aveiro, 2001. Dissertação (Mestrado em Tecnologia Domótica). Disponível em: <http://portal.ua.pt/thesaurus/default1.asp?OP2=0&Serie=0&Obra=28&H1=1&H2=0>. Acesso em 01 jun. 2013.
GUIMARÃES, Alexandre. CAN BUS: Barramento Controller Area Network –
implementação. São Paulo: PUC, 2012. IBRAHIM, Dogan. Controller Area Network Projects. Londres, Reino Unido:
Elektor International, 2011. LECHETA, Leandro Pires. Sistema de Iluminação Residencial: uma análise
sobre alternativas para redução do consumo de energia elétrica. 86 p. Cascavel-RS: Faculdade Assis Gurgacz, 2006. Monografia (Graduação em Engenharia de Controle e Automação). Disponível em: <http://www.aureside.org.br/temastec/ilum_resid_TCC.pdf>. Acesso em 22 ago. 2012.
LIMA, Sandro Santos de. Análise e Desenvolvimento de um Ambiente de
Simulação para Apli-cações Domóticas. Rio de Janeiro-RJ; Instituto Militar de Engenharia, 2005. Dissertação (Mestrado em Sistemas e Computação).
LINS, Vitor; MOURA, Waldson. DOMÓTICA: AUTOMAÇÃO RESIDENCIAL. Recife-
PE, UNIBRATEC. Disponível em: <http://www.unibratec.edu.br/tecnologus/wp-content/uploads/2010/12/lins_moura.pdf>. Acesso em 12 mar. 2013.
MANTOVANI, Eduardo. Aplicações e Limitações da Tecnologia LonWorks na
Automação. São Paulo-SP: Escola Politécnica da USP,1998. Disponível em: <www.conceitotecnologia.com.br__artigos_lonworks_aplicacoes_e_limitacoes> Acesso em 12 mar. 2013.
MAZIDI, Muhammad Ali; McKINLAY, Rolin. CAUSEY, Danny. PIC Microcontroller
and Embedded System: using Assembly and C for PIC18. EUA: Pearson, 2008.
53
MERCADO LIVRE. Spot Led Rgb Gu 10 com Controle Remoto Colorido. 2014. <http://produto.mercadolivre.com.br/MLB-583172724-spot-led-rgb-gu10-com-controle-remoto-colorido-_JM>. Acesso em 05 out. 2014.
MICHAELIS. Dicionário da Língua Portuguesa. Disponível em
<michaelis.uol.com.br>. Acesso em 13 mar. 2013. MICROCHIP. MCP2551 High-Speed CAN Tranceiver. 2010. Disponível em:
<https://www.sparkfun.com/datasheets/DevTools/Arduino/MCP2551.pdf> Acesso em 29 set. 2014.
_______. PIC 18F2480/2580/4480/4580 Data Sheet. 2007. Disponível em:
<http://ww1.microchip.com/downloads/en/DeviceDoc/39637d.pdf> Acesso em 30 set. 2014.
MOLINA, Pablo Fernández. Diseño de nodos inteligentes para instalaciones
domóticas basadas en bus. 89 p. Espanha: Universitat Politecnica Superior de Casteldefels, 2008. Trabajo de Fin de Carrera (Ingeniería Técnica de Telecomunicaciones, especialidad en Sistemas de Telecomunicación).
PATTERSON, David A.; HENNESSY, John L. Computer Organization and Design:
The hardware/software interface. 3. ed. EUA: Morgan Kaufmann, 2009. QUINDERÉ, Patrick Romero Frota. Casa Inteligente: um protótipo de sistema de
automação residencial de baixo custo. Fortaleza-CE: Faculdade Farias Brito, 2009. Monografia (Graduação em Ciência da Computação).
ROVING. Roving Networks – Bluetooth modules. RN42Class 2 Bluetooth module
description. Disponível em <http://www.rovingnetworks.com/products/RN42>. Acesso em 2 mar. 2013.
SENSORES, Mecatrônica. Diponível em:
<http://mecattec.blogspot.com.br/2011/07/sensores.html>. Acesso em 15 out. 2012.
SNUBBERLESS & STANDARD. BTA/BTB10 Series - 10A TRIACs. 2002.
Disponível em: <http://www.st.com/web/en/resource/technical/document/ datasheet/CD00004894.pdf>. Acesso em 02 out. 2014.
SAPOTECH. Google volta a investir na domótica com compra de empresa de
videovigilância. Disponível em <http://tek.sapo.pt/noticias/telecomunicacoes/ google_volta_a_investir_na_domotica_com_compr_1387069.html>. Acesso em 02 out. 2014.
SÓ ALARME, 2012. Disponível em <http://www.soalarmes.com>. Acesso em 15 out.
2012.
54
STARTUPI. Microsoft abre aceleradora focada em domótica nos EUA. Disponível em <http://startupi.com.br/2014/06/microsoft-abre-aceleradora-focada-em-domotica-nos-eua/ >. Acesso em 02 out. 2014.
TEXAS INSTRUMENTS. MOC3020 Thru MOC3023 optocouplers / optoisolators.
1998. Disponível em: <http://www.ti.com/lit/ds/symlink/moc3022.pdf>. Acesso em 01 out. 2014.
THOMAZINI, Daniel; ALBUQUERQUE, Pedro. Sensores Industriais: Fundamentos
e Aplicações. 4. ed. São Paulo: Érica, 2005. VARGAS, Alessandra. Estudo sobre Comunicação de Dados via Rede Elétrica
para Aplicações de Automação Residencial/Predial. 65 p. Porto Alegre-RS: Universidade Federal do Rio Grande do Sul, 2004. Monografia (Graduação em Engenharia de Computação).
VARGASP. Acopladores Ópticos. Disponível em: <http://www.vargasp.com/download/livros/Automac4.pdf>. Acesso em 02 out. 2014.
XILINX. Powerline Technologies in Home Networking. Disponivel
em:<http://www.xilinx.com/esp/consumer/home_networking/pdf_files/ch_7_plc/complete.pdf>. Acesso em 05 abr. 2013.