Você está na página 1de 7

Anais do XX Congresso Brasileiro de Automtica

Belo Horizonte, MG, 20 a 24 de Setembro de 2014

O USO DO ASTERISK PARA O CONTROLE REMOTO DE SISTEMAS DE AUTOMAO


MICHEL C. DIAS, DAIANA C. LUCENA, ELIEL P. SANTOS
Laboratrio de Telefonia e Redes Convergentes, Departamento de Engenharia Eltrica, Instituto Federal de
Educao, Cincia e Tecnologia da Paraba - IFPB
Avenida Primeiro de Maio, 720 - Jaguaribe, Joo Pessoa - PB, 5015-430
E-mails: michel.dias@ifpb.edu.br, daiana000@gmail.com, elielpoggi@gmail.com
Abstract This work describes a multiuser platform that allows the remote and concurrent control of automation systems
which uses an Arduino as main controller. It user interface is an IVR (Interactive Voice Response) that send commands over the
TCP/IP network established for the remote systems to be controlled. The platform was developed with Asterisk VoIP software
which is in public domain, free and widely spread in Internet. The validation occurred through two experiments set up and tested
in laboratory. The result is a low cost and open VoIP platform that fulfills what was described above.
Keywords Asterisk, Automation Systems, Arduino, VoIP.
Resumo Este trabalho descreve uma plataforma multiusurio que permite o controle remoto e concorrente de sistemas de automao que utilizam o Arduino como controlador principal. A interface com o usurio uma URA (Unidade de Resposta audvel) que de acordo com as interaes dos usrios envia comandos para os sistemas remotos a serem controlados. A plataforma
foi desenvolvida com o software VoIP Asterisk que de domnio pblico, gratuito e amplamente utilizado na Internet. A validao foi feita em dois experimentos realizados em laboratrio. O resultado uma plataforma aberta e baixo custo que atende o
proposto no artigo.
Palavras-chave Asterisk, Sistemas de Automao, VoIP.

Algumas funcionalidades como o acesso a bases


de dados e comunicao com recursos externos podem ser executadas atravs de scripts em outras linguagens de programao, tais como Python, PHP
(Hypertext Preprocessor) e Perl a partir do plano de
discagem por meio do AGI (Asterisk Gateway Interface) (MACURA et. al, 2012), (KELLERl, 2009),
(QUADEER, SHAH & GOEL, 2012).
O Arduino uma placa eletrnica em cdigo
aberto, sendo o seu ambiente para desenvolvimento
um software tambm em cdigo aberto.
O objetivo deste trabalho propor uma plataforma aberta VoIP (Voice Over IP), de baixo custo,
multiusurio e que permite acesso concorrente para
controle remoto de mltiplos sistemas de automao.
A plataforma desenvolvida permite gerenciar e
direcionar mltiplas chamadas telefnicas para o
controle de processos de automao, e pode ser aplicada de diversas situaes. um sistema de baixo
custo j que necessita apenas de um computador com
o software Asterisk instalado, uma placa Arduico
para cada sistema de automao a ser controlado e
uma conexo de rede TCP/IP entre os dois. E aberta porque utiliza apenas softwares/plataformas em
cdigo aberto. Por outro lado, o Asterisk pode tambm ser instalado em um dispositivo Android para
controlar uma quantidade pequena de dispositivos
Arduino. Estas caractersticas agregam plataforma
proposta, alta flexibilidade e escalabilidade.
Tecnologias como bluetooth, GPRS e Web Service tem sido utilizadas em sistemas de automao.
Comumente surgem novas pesquisas na rea de sistemas de automao utilizando diferentes mecanismos para o controle remoto (JIN et. al, 2000),
(KAPICAK et. al, 2011), (LEE & CHOI, 2003). A
plataforma proposta, sendo modular, aberta e facil-

Introduo

cada vez mais frequente o uso de sistemas de


automao para resolver problemas do cotidiano.
Solues so dadas nas mais variadas reas, desde
segurana at na rea de sade. No entanto, em muitos casos, um dos fatores que dificultam a implementao das solues de automao o custo. Alm
disto, os sistemas comerciais em sua grande maioria
so de difcil alterao e evoluo tecnolgica. Diante do exposto, este artigo contribui para sanar estas
deficincias ao propor um sistema de baixo custo
formado por solues de software gratuito (Asterisk)
de cdigo aberto, e hardware livre (Arduino, 2013).
O software Asterisk (ASTERISK, 2013), normalmente utilizada como PABX VoIP (Voice Over
IP) em empresas, contm um conjunto de aplicaes
e funes que podem ser utilizadas para fins de automao. Estas permitem gerenciar e direcionar chamadas telefnicas, atravs de uma URA (Unidade de
Resposta Audvel), a processos de automao, controlando equipamentos remotamente, reduzindo custos e criando um sistema flexvel. Um servidor centralizado executando o Asterisk pode ser responsvel
pelo gerenciamento das chamadas e pelo envio de
comandos pela rede TCP/IP aos sistemas a serem
controlados (GONALVES, 2009), (KAPICAK et.
al, 2011).
O Asterisk um software em cdigo aberto que
executa as funes de uma central telefnica e recebe
diversas contribuies de programadores de todo o
mundo. O software pode ser customizado de acordo
com as necessidades do usurio (ASTERISK, 2013).

1674

Anais do XX Congresso Brasileiro de Automtica


Belo Horizonte, MG, 20 a 24 de Setembro de 2014

mente modificvel, pode ser utilizada junto a essas


novas tecnologias.
Atualmente, o Asterisk vem sendo utilizado por
diversos usurios em projetos para automao residencial (EGUINO, 2013) (HACKWORTH, 2012).
So prncpios de trabalhos como por exemplo em
(GRAVEN, 2009) que se baseiam a automao residencial utilizando Asterisk no qual possvel controlar aplicaes atravs dele. Projetos que descrevem a
integrao do GSM com o Asterisk na qual o usurio
consegue registrar um servidor asterisk em celulares
e em computadores tambm tem sido alvo de pesquisas (GUPTA, AGRAWAL & QADEER, 2013).
Este trabalho est organizado da seguinte forma:
inicialmente descrito que microcontrolador foi utilizado como tambm o software Asterisk. Em seguida
explicado como estabelecida a comunicao entre
o Asterisk e o Arduino e a arquitetura da plataforma.
Ao fim, so apresentadas a validao da plataforma e
as consideraes finais.

Figura 1 Elementos de um Arduino Uno (ARDUINO


BRASIL, 2013).

3 Asterisk
A plataforma Asterisk foi criada pela companhia
Digium, tem sido utilizado por pequenas e grandes
empresas, call centers, operadoras, provedores VoIP
e agncias governamentais em todo o mundo.
A estrutura dinmica da plataforma Asterisk
permite ao cliente adequar o cenrio da empresa aos
diversos recursos tecnolgicos por meio de aplicaes tais como: correio de voz, conferncias, bilhetagem, chamadas em fila, call agents (gerencia funes
como roteamento de ligaes e sinalizao), Distribuio Automtica de Chamadas (DAC), Unidade de
Resposta Audvel (URA), msica em espera, gravao da chamada, bloqueio de chamadas, entre outras.
Essas aplicaes so caractersticas padronizadas ou
que podem ser inseridas no software por meio do
plano de discagem (MADSEN, MEGGELEN &
SMITH, 2011).
Existem trs tipos de dispositivos finais que podem ser usados para o estabelecimento de comunicao via rede TCP/IP: Telefone IP, Softfone e ATAs
(Analog Terminal Adaptors). Um Telefone IP possui
a interface de um telefone convencional, e pode conectar-se diretamente a uma rede. O Softfone uma
aplicao em software que se pode executar em um
computador ou em um celular, exercendo a funo de
um telefone. ATAs so designados para permitir que
telefones convencionais possam ser conectados a
rede.
A arquitetura do Asterisk organizada em mdulos, isto , componentes carregveis que possibilitam
a execuo de uma funcionalidade especifica, como o
driver de um canal (chan_sip.so) ou um recurso que
permite conexo com uma tecnologia externa
(func_odbc.so).
O plano de discagem o ponto central do Asterisk, composto por contextos, extenses, prioridades
e aplicaes. por onde passam todas as chamadas, e
o que determina como elas devem ser processadas.
Pode ser configurado utilizando a sintaxe tradicional
em /etc/Asterisk/extensions.conf.

2 Arduino
O Arduino um circuito eletrnico para controle
de entrada/sada de dados baseada no microcontrolador AVR de 8 bits, de arquitetura Harvard (memria
de dados e de programa so fisicamente separadas),
da Atmel. Seu projeto foi iniciado na cidade de Ivre,
Itlia, em 2005, com o intuito de interagir em projetos escolares, com um oramento menor que outros
sistemas de prototipagem disponveis na poca. De
forma que as pessoas tivessem acesso ao cdigofonte do software e ao projeto do hardware (sendo
assim open-source), podendo estender e adequar a
plataforma s suas necessidades (ARDUINO, 2013).
O Arduino pode ter suas funcionalidades estendidas atravs de shields, que so placas contendo
dispositivos adicionais como receptores GPS, mdulos Ethernet, bluetooth, zigBee, etc. Estes conectamse ao Arduino por barras de pinos empilhveis, mantendo o layout e permitindo que outro shield se encaixe acima.
Para o desenvolvimento do trabalho foi utilizado
um Arduino Uno, que responsvel por receber os
comandos de um Ethernet shield, process-los e enviar sinais para que os dispositivos sejam acionados.
A Figura 1 apresenta os elementos de um Arduino
Uno (ARDUINO BRASIL, 2013).

1675

Anais do XX Congresso Brasileiro de Automtica


Belo Horizonte, MG, 20 a 24 de Setembro de 2014

Os contextos mantem blocos isolados no plano


de discagem, sendo definidos por um nome entre
colchetes ([]). Uma extenso definida em um contexto est isolada de extenses em outro contexto.
Quando um canal configurado (no arquivo sip.conf
ou iax.conf), um dos parmetros necessrio o contexto, que especifica o ponto no plano de discagem,
onde as instrues devem comear a ser executadas.
A Figura 2 ilustra isto (MADSEN, MEGGELEN &
SMITH, 2011).

O SIP trata cada conexo como um par, negociando o estabelecimento da conexo entre eles, e
transporta apenas a sinalizao sobre TCP ou UDP.
O RTP (Real Time Protocol) usado junto ao SIP ou
H.323 para a transmisso dos pacotes de dados (que
contm o udio das chamadas) (GONALVES,
2013).
O IAX (Inter-Asterisk eXchange) um protocolo
de aplicao aberto, que utiliza um processo de registro e autenticao similar ao SIP e foi produzido com
o objetivo de estabelecer comunicao entre dois
servidores Asterisk. A sinalizao do canal e o fluxo
de dados so enviados por uma nica porta UDP
(4569) (o protocolo RTP no utilizado para o
transporte do udio), e consegue reduzir a vazo utilizada, atravs de uma caracterstica denominada
trunk que possibilita a multiplexao de vrias chamadas utilizando um nico cabealho. E o IAX2 (2
verso do protocolo IAX) foi desenvolvido para funcionar em uma rede que utilize NAT (Network
Adress
Translation)
(GONALVES,
2013),
(MADSEN, MEGGELEN & SMITH, 2011).
Em uma rede IP os dados sero transportados
utilizando como protocolo de transporte, o TCP,
UDP ou SCTP.
O TCP quase nunca utilizado em VoIP, pois
embora garanta a entrega dos dados, acrescenta um
atraso significativo, aumentando a latncia, no sendo eficiente para comunicao em tempo real. O proposito do TCP garantir a entrega dos pacotes, e por
isto, vrios mecanismos so implementados, como
numerao dos pacotes, confirmao da entrega e
retransmisso de pacotes perdidos. Diferentemente
do TCP, o UDP no oferece nenhuma garantia de
entrega dos dados, conseguindo que os pacotes cheguem ao destino final em um intervalo de tempo menor.
O SCTP (Stream Control Transmission Protocol) foi desenvolvido para suprir as limitaes do
TCP e do UDP. Consegue implementar tcnicas mais
eficazes de controle de congestionamento (evitando
tambm ataques de negao de servio), garante a
sequncia dos pacotes entregues e apresenta baixa
latncia [2, (KELLER, 2009)].

Figura 2 Relao entre um arquivo de configurao do canal e o


contexto no plano de discagem (MADSEN, MEGGELEN &
SMITH, 2011).

As extenses que so identificaes dentro de


cada contexto definem os passos a serem seguidos no
plano de discagem. Cada extenso composta por
um nome (ou nmero), prioridade (que define qual
passo ir ser executado) e aplicao. A sintaxe a
seguinte:
exten => nome, prioridade, aplicao()
As prioridades so numeradas sequencialmente,
comeando com 1, e cada uma executa uma aplicao especifica. A prioridade n pode ser utilizada
para indicar que a anterior mais 1 deve ser executada.
As aplicaes executam uma ao especifica
como tocar um som, procurar algo no banco de dados, desligar ou atender uma chamada, entre outros.
O funcionamento e a operao do Asterisk esto
baseados em quatro componentes bsicos: protocolo,
driver do canal, CODEC e aplicaes.
3.1 Protocolo
Os protocolos de transporte TCP (Transport
Control Protocol) e UDP (User Datagram Protocol)
no foram desenvolvidos tendo como prioridade o
fluxo de dados em tempo real. E os dispositivos finais devem lidar com a perda de pacotes, aguardando
a chegada de alguns, requisitando uma retransmisso
ou desconsiderando os que foram perdidos. No entanto, na transmisso de voz, se pacotes so perdidos
ou ocorrer um atraso superior a 150 milissegundos
haver dificuldades em continuar uma conversao.
Sendo necessrio para o estabelecimento de uma conexo/chamada VoIP entre dispositivos finais um
protocolo de sinalizao (MADSEN, MEGGELEN
& SMITH, 2011).
Quanto aos protocolos de sinalizao, a recomendao H.323 foi largamente implementada em
redes VoIP (Voice Over IP). Atualmente, tem se tornado comum o uso do SIP (Session Initiation Protocol), considerado mais simples em relao ao H.323.

3.2 Driver do canal


So necessrios para a realizao de chamadas.
Cada protocolo utilizado (SIP, IAX, etc.) possui um
driver especfico como descrito a seguir: chan_iax2 promove conexo entre dois terminais IAX, chan_sip
- driver do protocolo SIP, chan_mgcp - driver do
protocolo MGCP, chan_dahdi - possibilita comunicao com a RTPC (Rede Pblica de Telefonia Comutada), entre outros. O driver do canal age como
um gateway para o Asterisk.
3.3 CODEC
Software dedicado a codificar e decodificar uma
informao digital. O propsito dos algoritmos de
codificao apresentar diferentes relaes entre
1676

Anais do XX Congresso Brasileiro de Automtica


Belo Horizonte, MG, 20 a 24 de Setembro de 2014

Um processo envia e recebe mensagens da rede


utilizando uma interface de software denominada
socket, que a interface de programao pelas quais
as aplicaes de rede so inseridas na Internet. uma
interface ou porta entre o processo de aplicao e a
camada de transporte dentro de uma mquina, que
especifica os detalhes de como o programa aplicativo
interage com o protocolo. Uma vez que o socket for
estabelecido, os aplicativos podem transferir informaes (KUROSE & ROSS, 2010), (COMER,
2000).
Para realizar a comunicao entre o Arduino e o
Asterisk, estabeleceu-se um socket UDP, atravs de
um script, utilizando uma classe da programao
PHP, o PHPAGI (PHPAGI, 2013). Este foi especificamente criado para o desenvolvimento de aplicaes
com o AGI (Asterisk Gateway Interface) e est disponvel para uso e distribuio sob os termos da
GNU GPL (General Public License). O Asterisk espera
encontrar
o
script
no
diretrio
/var/lib/Asterisk/agi-bin/ para que o AGI possa execut-lo. E os parmetros recebidos pelo Asterisk durante a execuo do menu da URA, so passados
para o script PHP atravs do AGI. A sintaxe utilizada
no plano de discagem a seguinte:
exten => nome, prioridade, AGI(<nome do arquivo>, valor1, valor2, valor3).
Os parmetros valor1, valor2 e valor3 sero armazenados respectivamente em $argv[1], $argv[2] e
argv[3]. A varivel $argv[ ] um array prprio da
linguagem PHP que armazena todos os parmetros
passados para o script PHP, neste caso enviado atravs do plano de discagem do Asterisk, do arquivo
extensions.conf. Os parmetros so as informaes
que o usurio escolheu durante o menu da URA.
Para a abertura do socket utilizou-se a funo
fsockopen(), que apresenta a sintaxe: fsockopen ($Arduino_ip, $Arduino_port, $errno, $errstr), onde
$Arduino_ip, $Arduino_port, $errno e $errstr so
variveis que contm respectivamente, o endereo IP
do Arduino, o nmero da porta, uma mensagem de
erro e o valor 0 caso haja algum problema na inicializao do socket (PHP, 2013).

eficincia e qualidade. So caracterizados de acordo


com a taxa de compresso, perda de pacotes, vazo
utilizada e processamento computacional exigido,
possibilitam a deteco de silncio e gerao do rudo de conforto. Como a vazo finita, o nmero de
conversaes simultneas que uma conexo pode
estabelecer est diretamente relacionado ao CODEC
utilizado.
3.4 Aplicaes
As aplicaes definem, dentro do plano de discagem (extensions.conf), as aes que devem ser
aplicadas s chamadas, so responsveis por exemplo, pelo estabelecimento da comunicao, toque de
uma gravao, recebimento de dgitos e desligamento
de uma chamada.
As aplicaes so invocadas a partir do plano de
discagem. O plano de discagem realiza o gerenciamento das chamadas determinando a sequncia de
passos por onde a chamada ser conduzida. A maioria das caractersticas como VoiceMail, conferncia,
call center so executadas como aplicaes.
3.5 AGI (Asterisk Gateway Interface)
Em vrias situaes se faz necessrio estender as
funcionalidades da plataforma Asterisk utilizando
aplicaes externas. O AGI permite ao desenvolvedor realizar o controle das chamadas ou parte dele, na
linguagem de programao de sua escolha, como
Perl, PHP e Python. Isto permite integrar o Asterisk
com outros sistemas, como um Arduino. Para isto,
criado um script em /var/lib/Asterisk/agi-bin/, que
ser executado por meio do AGI a partir do plano de
discagem. A sintaxe dentro do plano de discagem
deve ser a seguinte: exten => nome, prioridade, AGI
(<nome do arquivo>) (KELLER, 2009), (AGI,
2013).
Neste trabalho utilizou-se um script em PHP,
executado atravs do AGI, para estabelecer uma conexo, via socket, entre a plataforma Asterisk e o
Arduino.
3.6 AstDB (Asterisk Database)
O AstDB foi utilizado neste trabalho para armazenamento/consulta do login e senha dos usurios,
necessrio durante a etapa de autenticao, para acesso ao menu da URA. Este um banco de dados interno do Asterisk que armazena os dados em grupos
chamados famlias com valores identificados por
chaves, onde cada chave possui um valor nico. Cada
valor alocado est associado a uma famlia. Os dados
do AstDB ficam no arquivo /var/lib/Asterisk/astdb.

5 Arquitetura da Plataforma
A plataforma implementada formada por um servidor Asterisk com uma URA configurada, os dispositivos a serem acionados, telefone IP, softfone ou
telefone analgico com um ATA e uma placa Arduino com Ethernet shield para cada localidade a ser
controlada. A Figura 3 ilustra a arquitetura geral da
plataforma.

4 Estabelecimento da Comunicao
Esta seo ir descrever como se estabeleceu a
comunicao entre o servidor Asterisk e o Arduino
para o envio de comandos de controle.

1677

Anais do XX Congresso Brasileiro de Automtica


Belo Horizonte, MG, 20 a 24 de Setembro de 2014

O arquivo de configurao do plano de discagem


o extensions.conf, onde esto as aplicaes e funes necessrias para o desenvolvimento do projeto.
Nele est configurada uma URA, que est relacionada a cada um dos usurios, j que estes podem possuir diferentes dispositivos a controlar. Ao escolher as
opes durante o menu da URA, o AGI executa o
programa em linguagem PHP, passando as opes
em forma de argumentos.
O plano de discagem possui uma etapa de autenticao, no qual o usurio deve digitar seu login e sua
senha para que possa ter acesso ao sistema. Caso erre
o login ou a senha, o usurio retorna a um estgio
anterior para repetir o processo de identificao. Estes dados foram previamente armazenados no banco
de dados do Asterisk, o astDB, onde cada usurio
possui sua entrada correspondente.
O bloco designado como interface eltrica
composto por um circuito de chaveamento capaz de
elevar a corrente recebida do Arduino (40 mA), e
possibilitar o acionamento de dispositivos em 220 V.
Na programao do Arduino, para que alguns
dispositivos pudessem permanecer acionados por um
intervalo de tempo determinado pelo usurio, utilizou-se um temporizador interno atravs da funo
millis(), que retorna o tempo em milissegundos desde
que o programa corrente est em execuo. Este nmero estoura aproximadamente aps 50 dias
(ARDUINO, 2013).
vlido salientar que utilizar um temporizador interno apresenta os seguintes inconvenientes: preciso
na contagem, acumulando erros em perodos muito
longos e ao ser desligado a contagem interrompida,
sendo reiniciada quando o dispositivo for novamente
energizado. E devido estrutura do sistema, cada vez
que o usurio acessar outro menu na URA, o programa tambm ser reiniciado, interrompendo a temporizao. A soluo seria utilizar um RTC (Real Time
Clock), que um mdulo capaz de gerar uma contagem de tempo precisa a partir da oscilao de um
cristal (no valor padro de 32 KHz, (KAPICAK et.
al, 2011), (LEE & CHOI, 2003)), armazenando a
data (com ano, ms e dia) e a hora, minuto e segundo.
Mantendo a contagem de tempo mesmo que a energia
principal seja desligada, atravs de uma bateria de
backup. Para a comunicao destes mdulos com
microcontroladores geralmente se utiliza o protocolo
IC (Inter-Integrated Circuit).

Figura 3 - Arquitetura geral do sistema. Fonte: Prpria.

A Figura 4 ilustra a arquitetura detalhada do sistema mostrando alguns pontos especficos.

Figura 4 - Arquitetura detalhada do sistema. Fonte: Prpria.

Conforme pode ser observado na Figura 4, o


funcionamento da plataforma ocorre da seguinte forma:
1. Inicialmente, o usurio inicia uma chamada
direcionada ao servidor Asterisk utilizando
um telefone IP (hardware ou software).
2. Quando a chamada estabelecida, o usurio
direcionado a um processo de autenticao, em que um login e uma senha so solicitados.
3. Caso o passo 2 seja bem sucedido, o usurio
pode acessar o menu, para controle dos dispositivos, da URA.
4. De acordo com as escolhas do usurio, o Asterisk ir receber e processar tons DTMF
(Dual-Tone Multi-Frequency), que correspondero dentro do menu, a um dos dispositivos configurados previamente.
5. A escolha do usurio direcionada a uma
ao, de acordo com o que foi configurado
no plano de discagem (dialplan).
6. O script PHP ser executado atravs do
AGI, estabelecendo comunicao e enviando os comandos para o Arduino.
7. O Arduino envia sinais de controle para os
dispositivos.

6 Validao da Plataforma
Para fins de validao da plataforma construramse em laboratrio dois experimentos. No primeiro, o
usurio realiza uma chamada telefnica utilizando um
softfone configurado com uma conta SIP no servidor
Asterisk. O usurio escolhe opes atravs do menu
da URA e os comandos so enviados para os dispositivos atravs da rede. A inteno deste cenrio si-

Na configurao do softfone foram utilizados os


protocolos SIP/RTP para o estabelecimento da chamada, alternativamente o protocolo IAX poderia ter
sido usado.

1678

Anais do XX Congresso Brasileiro de Automtica


Belo Horizonte, MG, 20 a 24 de Setembro de 2014

mular o controle de dispositivos comumente utilizados em utilizados em automao residencial.


A plataforma utilizada durante o experimento pode ser visualizada na Figura 5. A interface eltrica
entre o Arduino e os dispositivos composta basicamente por rels e transistores atuando como chave. O
Arduino fornece uma corrente mxima de 40 mA, e
quatro de seus pinos esto configurados como sada e
ligados a transistores que por sua vez iro fazer com
que os rels comutem, sempre que o pino correspondente estiver em nvel lgico alto, ativando os dispositivos. A sada de tenso de 5 VCC do Arduino, que
estava sendo alimentado via USB, foi utilizada para
alimentar o circuito de chaveamento, o motor e o
cooler.

Figura 7 Prottipo desenvolvido para irrigao residencial.


Fonte: Prpria.

Assim como acontece para o sistema de irrigao,


o plano de discagem pode ser adequado para receber
o intervalo de tempo (em minutos) durante o qual o
usurio deseje acionar os demais dispositivos.
Consideraes Finais
Neste trabalho foi proposta uma soluo para sistemas de automao. Inicialmente foi realizado um
estudo das ferramentas a serem utilizadas, o software
Asterisk e a plataforma microcontrolada Arduino. E
posteriormente como a comunicao entre eles seria
feita. Ao fim apresentou-se o sistema implementado
em laboratrio.
A soluo simples, de baixo custo e baseada em
plataformas bem estabelecidas e abertas a modificaes como o Asterisk e a placa Arduino com Ethernet
shield. Desta forma, reduziu-se o tempo de desenvolvimento e facilitaram-se futuras alteraes no sistema. Alm disso, considera-se a soluo abrangente,
pois pode ser utilizada em vrios campos diferentes
da automao tais como residencial, agrcola, industrial, engenharia biomdica.
Em trabalhos futuros o sistema pode ser modificado. Outra plataforma microcontrolada que permita
comunicao pela Internet pode ser utilizada. O sistema pode utilizar o reconhecimento de voz, em vez
do recebimento de dgitos.
Com relao segurana do sistema, foi implementada uma autenticao do usurio na URA atravs do login e senha. Mas, outras questes relacionadas segurana do trfego das informaes dos usurios pela rede devem ser consideradas. Devem-se
procurar solues que permitam garantir a confidencialidade e integridade dos dados transmitidos. Neste
sentido prope-se construir uma aplicao no Asterisk e fazer uma modificao no software do Ethernet
shield para que se possa estabelecer um tnel criptografado entre a URA e as plataformas microcontrolada.
Prope-se tambm estender os cenrios de validao para problemas relacionados assistncia a pessoas com necessidades especiais dentro do contexto
de tecnologia e-health. A ttulo de exemplo, um tetraplgico poderia utilizar o sistema para realizar

Figura 5 - Plataforma utilizada durante o experimento. Fonte:


Prpria.

Estabeleceu-se comunicao entre o Asterisk e o


Ethernet shield atravs do socket criado pelo programa em PHP, e o Arduino foi responsvel por gerenciar os sinais de sada.
O segundo cenrio implementado foi um sistema
de irrigao temporizado. Nele o usurio determina o
tempo em minutos em que o sistema deve permanecer ativo, atravs da URA. Para realizar a irrigao
utilizou-se uma vlvula solenoide normalmente fechada. O seu princpio de funcionamento consiste em
uma bobina (formada por um condutor enrolado atravs de um cilindro) que, quando energizada, gera
uma fora fazendo com que o mbolo da vlvula seja
deslocado, permitindo a passagem do fluido, neste
caso a gua. O tipo de vlvula utilizada, ilustrada
pela Figura 6, a que est presente em mquinas de
lavar roupa. Na Figura 7 mostrado o prottipo desenvolvido.

Figura 6 Valvula solenoide utilizada. Fonte: Prpria.

1679

Anais do XX Congresso Brasileiro de Automtica


Belo Horizonte, MG, 20 a 24 de Setembro de 2014

2012 35th International Conference on , vol., no., pp.263 266.


MADSEN, L., MEGGELEN, J., V., and BRYANT, R. (2011).
Asterisk: The Definitive Guide. 3 ed. USA: OReilly Media.
QADEER, M.A.; SHAH, K. and GOEL, U., (2012). Voice - Video
Communication on Mobile Phones and PCs' Using Asterisk
EPBX. Communication Systems and Network Technologies
(CSNT), 2012 International Conference on. pp.534-538.
PHP.
PHP
Manual.
Disponvel
em:
<http://www.php.net/manual/pt_BR/language.functions.php
> Acesso em: 22 Jan 2013.
PHPAGI. PHPAGI: Where PHP connects to Asterisk. Disponvel
em: <http://phpagi.sourceforge.net/> Acesso em: 20 Jan
2013.

tarefas como ligar luzes, levantar a cama e ligar a


televiso sem o auxlio de outras pessoas bastando
para isso apenas adicionar o reconhecimento de voz
soluo.
Quanto ao acionamento de dispositivos por um
tempo predeterminado (com aplicao em um sistema
de irrigao, por exemplo), um hardware adicional
deve ser utilizado, um mdulo RTC. Pois com a funo millis() ou outra funo/procedimento que funcione como temporizador e seja interno ao Arduino, o
horrio em que o dispositivo deve ser desligado ser
perdido a cada reinicializao do programa, o que
ocorre a cada vez que o usurio acessa um menu diferente na URA, ou a cada vez que o Arduino for realimentado.
Referncias Bibliogrficas
AGI. AGI Scripting with PHP. Disponvel em: < http://www.itpredial.com/class/weekly-notes/week4-notes/agi-scriptingwith-php> Acesso em: 10 Fev 2013.
ASTERISK. Disponvel em: <http://www.asterisk.org/>. Acesso
em: 15 Jul 2013.
ARDUINO.
Arduino
Uno.
Disponvel
em:
<http://Arduino.cc/en/Main/ArduinoBoardUno> Acesso em:
23 Jan 2013.
ARDUINO BRASIL. Nova verso do Arduino: Uno. Disponvel
em: < http://www.arduinobrasil.com/2011/01/uno/> Acesso
em: 23 Mar 2013.
COMER, D., E. Redes de Computadores e Internet. 4 ed.
Bookman Companhia Editora Ltda, So Paulo, 2007.
EGUINO, A. (2013). Asterisk & Z-Wave demo. Disponvel em:
<http://domotica4all.com/2013/11/asterisk-z-wave-demo-invoip2day-2013/>. Acesso em: 12 Jun 2014.
GONALVES, F., E. Configuration Guide for Asterisk PBX: How
to build and configure a PBX with Open Source Software. 2
ed. V.Office Networks LTDA, 2007.
GRAVES, M. (2009). Controlling Applications From Asterisk.
Disponvel
em
:
<http://www.mgraves.org/2009/01/controlling-applicationsfrom-asterisk/> Acesso em: 13 Jun 2014.
GUPTA, P; AGRAWAL, N and QADEER, M. A (2013). GSM
and PSTN Gateway for Asterisk EPBX. Wireless and Optical Communications Networks (WOCN), 2013 Tenth International Conference on.
HACKWORTH, J. (2012). Home Automation with Asterisk and
FreePBX.
Disponvel
em:
<http://www.jordanhackworth.com/home-automation-withasterisk-and-freepbx/>. Acesso em: 12 Jun 2014.
JIN, J., JIN+, J., WANG, Y., ZHAO, K. and HU, J. (2008)
Development of Remote-Controlled Home Automation
System with Wireless Sensor Network. Fifth IEEE
International Symposium on Embedded Computing, pp.
169-173.
KAPICAK, L., NEVLUD, P., ZDRALEK, J., DUBEC, P. and
PLUCAR, J (2011). Remote Control of Asterisk via Web
Services. Telecommunications and Signal Processing, pp.
27-30.
KELLER, A. Asterisk na prtica. 1 ed. So Paulo: Novatec,
2009.
KUROSE, J., F., ROSS, K., W. Redes de Computadores e a
Internet: Uma Abordagem Top-down. 5 ed. AddisonWesley, 2010.
LEE, Y., K. and CHOI, J., W. (2003). Remote-Controlled Home
Automation System via Bluetooth Home Network. SICE
Annual Conference in Fukui, August 4-6, pp. 2824-2829.
MACURA, L.; VOZNAK, M.; TOMALA, K. and SLACHTA, J.
(2012).
Embedded
multiplatform
SIP
server
solution, Telecommunications and Signal Processing (TSP),

1680