Você está na página 1de 0

UNIVAP Universidade do Vale do Paraba

FEAU Faculdade de Engenharia Arquitetura e Urbanismo

Engenharia da Computao
Monitor de Enchentes
Aluno: Josemar de Mendona Flausino

Orientador: Valdir Gil Pillat


Orientador Externo: Leonardo Melo de Lima

Agradeo em primeiro lugar a Deus pela sade, famlia e amigos pelo apoio, aos
orientadores pela disponibilidade, e todos os que de maneira direta ou indireta
contriburam para o desenvolvimento deste projeto.

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

INDICE
1. INTRODUO ...................................................................................................................... 4
2. MATERIAIS E MTODOS................................................................................................... 5
2.1 HARDWARE ................................................................................................................... 5
2.1.1 ARDUINO ..................................................................................................................... 5
2.1.1.1 ARDUINO UNO ........................................................................................................ 6
2.1.2 SHIELDS ....................................................................................................................... 6
2.1.2.1 SHIELD ETHERNET W5100 ................................................................................... 6
2.1.3 SENSOR LA16M40 Icos .............................................................................................. 7
2.2 SOFTWARE..................................................................................................................... 8
2.2.1 MONITORAMENTO ................................................................................................... 8
2.2.1 APLICAO WEB DE NOTIFICAES .................................................................. 9
2.2.1.1 JAVASCRIPT ......................................................................................................... 9
2.2.1.1.1 JQUERY ............................................................................................................... 9
2.2.1.2 PHP .......................................................................................................................... 9
2.2.1.3 MySQL .................................................................................................................. 10
2.3 TCNICAS UTILIZADAS ......................................................................................... 11
2.3.1 RESISTOR DE PULL-UP ....................................................................................... 11
2.3.2 DEBOUNCING ........................................................................................................ 12
2.3.3 INTERRUPO EXTERNA .................................................................................. 13
2.3.4 DESIGN PATTERNS .............................................................................................. 13
2.3.4.1 DATA ACCESS OBJECT DAO......................................................................... 13
2.3.4.2 MODEL, VIEW, CONTROLLER - MVC............................................................. 15
2.4 VISO GERAL DO SISTEMA .................................................................................. 17
2.4.1 MACRO-FLUXO DO PROCESSO ......................................................................... 18
2.5 CDIGOS DO SISTEMA .......................................................................................... 20
2.5.1 CDIGO APLICAO DE MONITORAMENTO................................................ 20
2.5.2 APLICAO WEB DE NOTIFICAES ............................................................. 24
2.6 ESQUEMA DE LIGAO ........................................................................................ 27
3. RESULTADOS E DISCUSSO ......................................................................................... 28
3.1 EFETIVIDADE DA SOLUO ................................................................................... 28
3.2 TWITTER x FACEBOOK ............................................................................................. 30
4. CONCLUSO ...................................................................................................................... 32

Pgina 1

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

RESUMO
Os objetivos deste trabalho so enviar notificaes a algum rgo competente sempre que
houver qualquer elevao atpica do nvel dagua em algum ponto considerado de risco,
enviar notificaes para todas as pessoas que se cadastram no site ou seguem alguma rede
social do projeto, alertando sobre reas que j estejam alagadas, de maneira evitem transitar
por essas reas. Este trabalho utiliza uma soluo hardware software, onde atravs de um
microcontrolador (Arduino) e um sensor, o nvel dagua monitorado e ento um sinal
enviado para um sistema web responsvel por enviar notificaes apenas a um determinado
rgo competente ou publicar nas redes sociais e enviar as notificaes para usurios
cadastrados. A conexo entre o arduino e a internet feita atravs de um shield ethernet
modelo W5100. Como resultado deste trabalho foi obtido um aplicativo com uma soluo
barata, que pode ser adaptada e melhorada para outros fins, que isolada no a soluo para
os problemas relativos a alagamentos, mas que em conjunto com outras ferramentas pode
contribuir para a diminuio do nmero de perdas materiais ou no, ocasionadas pelas
inundaes.
Palavras-Chave: Enchentes, Monitoramento, Arduino, Redes Sociais.

Pgina 2

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

ABSTRACT
The objectives of this work are to send notifications to any competent body whenever there is
any unusual rise in water level at some point considered a risk , send notifications to all
persons registered on the site , or follow some social networking project , alerting areas that
are already flooded , so avoid transit through these areas . This work uses a hardware-software
solution, where through a microcontroller ( Arduino ) and a sensor , the water level is
monitored and then a signal is sent to a web system responsible for sending notifications only
from a particular competent body or post on social networks and send notifications to
registered users . The connection between the Arduino and the internet is via an ethernet
shield model W5100 . As a result of this work has been obtained an application with an
inexpensive solution that can be adapted and improved for other purposes , that alone isn't the
solution to problems related to flooding , but in conjunction with other tools can contribute to
the decrease materials or not losses caused by flooding.
Keywords: Floods, Monitoring, Arduino, social networks.

Pgina 3

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

1. INTRODUO
Diversas regies brasileiras sofrem com o problema de alagamentos, grandes centros
metropolitanos (So Paulo), pequenas cidades no interior, litoral, regies perifricas dos
grandes centros, enfim, muitos brasileiros j perderam seus bens, seus parentes, sua dignidade
em eventos causados pelo perodo de chuvas. Segundo estudo realizado por (Haddad;Santos,
2013) apenas na cidade de So Paulo, as enchentes ao longo do ano de 2008 causaram um
prejuzo estimado de R$ 762 milhes. O professor Eduardo Amaral Haddad ressalta que a
falta de planejamento urbano um agravante que potencializa os efeitos das inundaes. A
situao agravada pelas transformaes que uma urbanizao no planejada ou mal
planejada ocasionou no uso da terra, com a ocupao e a impermeabilizao das vrzeas dos
rios [...] [1]. Segundo a Pesquisa Nacional de Saneamento Bsico de 2008, realizada pelo
IBGE, 51.2 % dos muncipios declararam sofrer inundaes em sua rea urbana nos ltimos 5
anos, sendo que destes, 27.4% alegaram ter pontos de estrangulamento em seu sistema de
drenagem enquanto os outros 23.8% no possuem pontos de estrangulamento em seu sistema
de drenagem mas ainda sim sofreram inundaes [2]. Este ambiente foi o grande fator
motivador para o desenvolvimento deste projeto, proporcionar uma soluo de rpida
implementao e custo acessvel, que pudesse auxiliar a tomada de decises por parte dos
rgos competentes para auxiliar as pessoas mais carentes, objetivando minimizar ao mximo
as perdas materiais e humanas decorrentes s inundaes, bem como informar, atravs de
mensagem de texto, e-mail, e redes sociais, sobre reas metropolitanas que j esto alagadas a
fim de evitar o transito por estas reas.

Pgina 4

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2. MATERIAIS E MTODOS
2.1 HARDWARE
2.1.1 ARDUINO
O Arduino uma placa eletrnica de controle de I/O de cdigo aberto, com base no micro
controlador ATmega, uma soluo de cdigo aberto, sendo assim qualquer pessoa pode
baixar seu esquema eltrico e montar seu prprio Arduino. Inicialmente o Arduino foi
desenvolvido para projetistas e artistas como plataforma de prototipao para cursos de design
de interao, por ser uma soluo de baixo custo e cdigo aberto logo se tornou febre entre
tcnicos e profissionais de eletroeletrnica [3]. A Figura 2.1 apresenta alguns dos modelos de
Arduino:

Figura 2.1 Verses da Plataforma Arduino


Por ser uma soluo hardware software o Arduino se tornou uma poderosa ferramenta para
desenvolver projetos acadmicos e implementaes pessoais/profissionais, pode-se dizer que
o Arduino esta limitado pela criatividade do projetista.

Pgina 5

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.1.1.1 ARDUINO UNO


O Arduino UNO uma verso simples, mais barata e indicada para pequenos projetos. Esta
verso baseada no micro controlador ATMega8U2 (at o release 2), possui 14 pinos digitais
de I/O, 6 pinos analgicos, alimentado com 5 V. A Tabela 2.1 apresenta as principais
caractersticas do Arduino UNO.
Microcontrolador

ATmega328

Tenso de funcionamento
Tenso de entrada (recomendado)
Tenso de entrada (limites)
E / S digital Pinos
Nmero de Pinos de entrada analgica
Corrente DC por I / O Pin
Corrente DC 3.3V para Pino
Memria Flash

5V
7-12V
6-20V
14 (dos quais 6 fornece uma sada PWM)
6
40 mA
50 mA
32 KB ( ATmega328 ), dos quais 0,5 KB
utilizado pelo bootloader
SRAM
2 KB ( ATmega328 )
EEPROM
1 KB ( ATmega328 )
Velocidade do Clock
16 MHz
Tabela 2.1 Detalhamento Tcnico Arduino UNO

2.1.2 SHIELDS
O Arduino j por si s uma plataforma com muitos recursos, mas possvel estender suas
funcionalidades, torn-lo mais poderoso, dinmico e adaptvel a diversas situaes. Para isto
so utilizados os Shields. Os Shields so placas com funes diversas que acopladas ao
Arduino aumentam sua capacidade de realizar tarefas, existem muitos Shields, Bluetooth, XBee, Ethernet, GSM, Display LCD etc.
2.1.2.1 SHIELD ETHERNET W5100
No projeto foi utilizado um Shield Ethernet W5100. Este shield adiciona ao Arduino a
capacidade de se conectar em uma rede Ethernet abrindo um amplo campo de
desenvolvimento. Com este shield pode-se conectar o Arduino em uma rede local, na internet,
possibilitando assim a integrao com sistemas web. A Figura 2.2 apresenta o W5100.

Pgina 6

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

Figura 2.2 Shield Ethernet W5100


Ao acoplar o W5100, os pinos 10, 11, 12, 13 do Arduino UNO se tornam inutilizveis, pois
estes pinos servem para interfacear o shield W5100 com o Arduino, desta maneira estes pinos
no podem mais serem utilizados para outras finalidades. Isto faz com que o arduino uno
passe a ter apenas 9 pinos digitais.

2.1.3 SENSOR LA16M40 Icos


Para o controle da elevao do nvel da gua o sensor utilizado um LA16M40 da marca
Icos, seu funcionamento simples, sendo o acionamento do sensor dado apenas com o
movimento do flutuador magntico que abre/fecha um contato eltrico, funcionando assim
como uma espcie de chave liga/desliga acionada pela variao do nvel da gua. O sensor em
questo apresentado na Figura 2.3.
A Tabela 2.2 apresenta o detalhamento tcnico do sensor LA16M40:
Caracterstica
Especificao
Material:
POM - Poliacetal (porca em PA)
Presso mxima de trabalho:
2bar
Temperatura de trabalho:
-10 a 100C
Cor:
Branco
Densidade mnima do lquido (SG):
0,76
Vedao:
Arruela NBR (borracha nitrlica)
Peso:
30g
Caractersticas eltricas:
NA/NF - SPST
Sada:
Contato On/Off
Tenso mxima de comutao:
220Vac - 100Vdc
Potncia mxima de comutao:
20W/VA - 50W/VA @20ms
Cabo de ligao:
2 x 0,5mm x 40cm - Silicone 125C
Grau de proteo:
IP66
Espessura mxima da parede do reservatrio:
9mm
Raio mnimo para reservatrio cilndrico:
150mm
Tabela 2.2 Detalhamento Tcnico Sensor LA16M40 Icos

Pgina 7

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

Figura 2.3 Sensor de nvel ICOS LA16M40


2.2 SOFTWARE
Do ponto de vista de Software, o desenvolvimento do PROJETO dividido em duas partes:
- Monitoramento;
- Notificao Web.
2.2.1 MONITORAMENTO
A aplicao de monitoramento o cdigo embarcado no Arduino UNO. Todo este cdigo foi
desenvolvido utilizando a linguagem C, e escrito utilizando a Integrated Development
Environment. (IDE, em portugus Ambiente de Desenvolvimento Integrado). Distribuda
juntamente com o Arduino de forma gratuita. A IDE apresentada na Figura 2.4.

Figura 2.4 IDE de desenvolvimento disponibilizada pelo projeto Arduino.

Pgina 8

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.2.1 APLICAO WEB DE NOTIFICAES


A aplicao web de notificao a parte responsvel por receber as informaes enviadas
pelo Arduino atravs de requisies Hypertext Transfer Protocol - HTTP, em portugus
Protocolo de Transferncia de Hipertexto, trat-las e lanar as notificaes, e retornar o ok
ou no para o Arduino. O desenvolvimento desta parte utilizou duas linguagens:
- JavaScript como front-end (client-side), em portugus Lado Cliente;
- PHP como back-end (server-side), em portugus Lado Servidor.
2.2.1.1 JAVASCRIPT
O Javascript uma linguagem de programao interpretada, criada em 1995 pela Netscape,
aps uma pequena contribuio por parte da comunidade Java e por fins comerciais passou a
se chamar JAVAscript, porm comum o engano de achar que Java e Javascript so a mesma
linguagem. hoje uma das linguagens mais utilizadas no desenvolvimento de front-ends [4].
2.2.1.1.1 JQUERY
O JQuery um framework em javascript cross-browser que possibilita a criao de interfaces
ricas, elaborada para simplificar os scripts que rodam do lado cliente. Ela possui como
principais funcionalidades: [5]
- Resoluo de incompatibilidade entre os navegadores;
- Reduo de cdigo;
- Reutilizao do cdigo atravs de plug-ins;
- Disponibilizao de uma vasta quantidade de plug-ins de outros desenvolvedores;
- Trabalha com AJAX e DOM;
- Implementao segura de recursos do CSS1, CSS2 e CSS3.
2.2.1.2 PHP
O PHP uma linguagem de programao interpretada, utilizada na construo de scripts no
lado servidor de aplicaes web, amplamente usada na criao de back-end por se tratar de
uma linguagem, simples, leve e robusta. Surgiu em 1995 criado por Rasmus Lerdof para
substituir uma srie de scripts em Perl que ele usava no desenvolvimento de sua pgina
pessoal, em 1997 recebeu o nome de PHP Hypertext Preprocessor, em 2004 lanou a
verso 5 , a verso mais atual a 5.5.0, e ainda no se tem data prevista para o lanamento do
PHP 6 [6]. As principais caractersticas do PHP so:
- Velocidade e Robustez;
- Estruturado e Suporte a Orientao a Objetos;
- Portabilidade (Escreve uma vez, rode em qualquer lugar);
- Tipagem Dinmica;
- Sintaxe similar a C/C++;
- Open-source, em portugus Cdigo aberto.

Pgina 9

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.2.1.3 MySQL
O MySQL um Sistema Gerenciador de Banco de Dados SGBD. Atualmente um dos
SGBDs mais utilizados no mundo, sendo utilizado por grandes empresas. Exemplo:
Facebook, Google, Adobe, Alcatel dentre outras. Sendo um SGBD, o MySQL possui algumas
caractersticas de todo SGBD como:
- Garante que os dados armazenados sero consistentes;
- As operaes sobre os dados podero ser desfeitas caso ocorra algum problema
durante uma transao de dados;
- Segurana dos dados;
- Rotinas de Back-Up e restaurao dos dados em caso de falha.
E tambm possui algumas caractersticas prprias que o fizeram alcanar o ndice de uso
atual, como:
- Portabilidade, podendo ser instalado em diferentes plataformas;
- Compatibilidade, possui integrao com as principais linguagens de programao;
- Excelente desempenho;
- Estabilidade;
- Facilidade no manuseio;
- Open Source (Cdigo Aberto);
- Suporta Triggers;
- Suporta controle transacional;
- Suporta Cursores, Funes e Procedures.
Atualmente o MySQL esta em sua verso 5.7 [7]

Pgina 10

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.3 TCNICAS UTILIZADAS


Durante o processo de desenvolvimento do PROJETO algumas tcnicas foram sendo
implantadas para solucionar pequenos problemas e aumentar a produtividade.
2.3.1 RESISTOR DE PULL-UP
Resistor de Pull-up o nome dado ao resistor utilizado para evitar a flutuao em pinos
configurados como INPUT (Entrada). Naturalmente todo pino configurado como
INPUT encontra-se em um estado de alta impedncia, algo em torno de 100 M, isto faz
com que a corrente necessria para que o estado lgico deste pino se altere seja muito
pequena. Desta maneira qualquer rudo eletrnico capturado pelo pino ocasionar a
flutuao de seu estado lgico. Na Figura 2.5 apresentada a ligao do resistor para
funcionar como Pull-up.

Figura 2.5 Configurao Resistor de Pull-up


Quando o boto pressionado, o estado lgico do pino de entrada vai para LOW (Baixo). O
resistor R1 limita a corrente da fonte VCC, acrnimo de Voltagem de Corrente Contnua, a
corrente passa pelo boto e vai direto para o Graduated Neutral Density Filter GND, em
portugus, Filtro Graduado de Densidade Neutra, tambm conhecido como terra.
Quando o boto no pressionado, no h conexo entre o pino de entrada e o GND, sendo
assim toda tenso est sobre o resistor, isto faz com que o estado lgico do pino de entrada v
para HIGH (ALTO).
Teoricamente o valor do resistor de pull- up deve ser um dcimo que a impedncia do pino
de entrada, que em geral varia de 100K e 1M. Limitando a corrente para 1mA, basta
utilizar a primeira lei de Ohm U = R x I. Transpondo as variveis R = U x I, portanto:
R = 5V x 0,001A
R = 5k

Pgina 11

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.3.2 DEBOUNCING
Todo dispositivo que possui um contato mecnico, ao ser pressionado gera uma srie de
rudos, conhecidos como spikes, que fazem com que ocorram oscilaes no nvel lgico de
determinado pino, a Figura 2.6 representa essas oscilaes.

Figura 2.6 - Oscilaes geradas no momento em que o contato mecnico acionado.


Durante o espao de tempo em que ocorrem os spikes, qualquer leitura do valor do pino se
tornaria imprecisa, e trabalhando com interrupes externas, torna o sistema instvel, pois os
spikes poderiam gerar a interrupo e provocar falsos resultados no que se espera fazer, no
caso deste projeto, enviar falsas requisies para a aplicao web, responsvel por gerar as
notificaes.
O termo debouncing se refere s tcnicas que so implementadas nos projetos com o objetivo
de neutralizar os efeitos colaterais dos spikes, existem vrias maneiras de se criar uma forma
para garantir a estabilidade do nvel lgico de um pino aps o acionamento de um contato
mecnico, seja atravs do uso de componentes eletrnicos, como por exemplo o uso de
capacitores, ou atravs do tratamento via software. A maneira como o debouncing foi
aplicado no projeto ser demonstrada na seo de apresentao do cdigo.

Pgina 12

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.3.3 INTERRUPO EXTERNA


Uma interrupo externa um evento que causa a pausa do processamento do programa
corrente e comea a processar uma sub-rotina de interrupo, a Figura 2.7 ilustra uma
interrupo externa.

Figura 2.7 Interrupo Externa


Como observado na Figura 2.7, o programa principal executado at que algum evento
externo interrompa esta execuo, que desviada para a rotina da interrupo, aps o fim do
processamento da rotina, o processamento novamente desviado para exatamente o ponto em
que o programa principal foi interrompido para dar continuidade.
2.3.4 DESIGN PATTERNS
No desenvolvimento de software comum se deparar com situaes problemticas pelas
quais outros desenvolvedores j passaram, e como consequncia a utilizao de solues
muito semelhantes, para no dizer iguais, sendo assim nasceram os Padres de Projeto, ou em
ingls Design Pattern, que descreve a maneira de se resolver um dado problema no
processo de desenvolvimento do software, no se trata do cdigo final para resolver o
problema e sim uma descrio de como resolver o problema, por ser um conceito, vo existir
diversas implementaes de um mesmo Pattern, e em diversas linguagens de programao
[8]. No desenvolvimento da aplicao web de notificaes, foram usados alguns Design
Patterns.
- DAO Data Access Object ;
- MVC Model, View, Controller.
2.3.4.1 DATA ACCESS OBJECT DAO
Este Padro de Projeto permite separar a aplicao das operaes de persistncia, Create,
Update e Delete CRUD (em portugus, Criar, Atualizar e Excluir), fazendo com que essas
operaes se tornem transparentes para o software. Este padro de projeto diminui o
acoplamento entre a aplicao e camada de persistncia, pois cria uma camada de abstrao
entre elas. Em outras palavras o software no precisa saber como e onde a informao vai ser
guardada, pois ele conversa apenas com a camada de DAO, e o DAO responsvel por
acessar o banco de dados ou qualquer outra tecnologia que esta sendo usada para persistir as
informaes. Esse design Pattern aumenta a portabilidade da aplicao, uma vez existindo a
camada DAO se houver a necessidade de migrao de uma plataforma de persistncia para
Pgina 13

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

outra, ex.: MySql para Oracle, PostGreSQL para SQLServer, ou ainda um database file dbf
em portugus arquivo de banco de dados, etc, no ser preciso reescrever o cdigo da
aplicao basta apenas trocar a classe de DAO. A Figura 2.8 exemplifica a camada de DAO
separando o cdigo da aplicao das operaes do banco de dados.

Figura 2.8 Representao Grfica DAO


Na Figura 2.8, possvel visualizar a camada da aplicao que faz chamadas camada de
DAO para salvar, atualizar, excluir, selecionar um registro, a partir deste ponto a aplicao
desconhece como e onde o DAO ir executar cada comando, pois a responsabilidade desta
etapa do processo exclusivamente do DAO, portanto haver uma implementao da camada
de DAO para o MySQL, outra para Oracle, e assim para qualquer plataforma que estiver
sendo usada para persistir as informaes.

Pgina 14

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.3.4.2 MODEL, VIEW, CONTROLLER - MVC


O Padro de projeto MVC, divide uma aplicao em 3 partes.
- Modelo (Model);
- Apresentao (View);
- Controlador (Controller).
Delegando a cada uma dessas partes responsabilidades bem definidas tornando a aplicao
menos acoplada, diminuindo os impactos de mudanas e manutenes futuras. O modelo
MVC representado conforme a Figura 2.9.

Figura 2.9 Representao Grfica MVC


As vantagens do uso deste padro de desenvolvimento so: [9]
- Reaproveitamento de cdigo;
- Facilidade na manuteno e implementao de novos recursos;
- Delegao de responsabilidades;
- Cdigo limpo e organizado.
A camada view: pode ser chamada de camada de apresentao, interface com usurio,
pois de responsabilidade desta camada, apresentar os dados vindos do banco de
dados e tratados pelo Controller, a maneira como os dados sero apresentados
responsabilidade desta camada, um dado pode ser representado de diversas maneiras,
com uma tabela, um grid, um diagrama, atravs da view o usurio tambm entra com
os dados no sistema, no projeto esta camada foi desenvolvida com Html e JQuery,
criando a interface para os usurios se cadastrarem no sistema atravs do site do
projeto.
A camada Controller: responsvel pelo controle do fluxo de informao do
sistema, nesta camada que se decide se, o que, como, quando, onde
alguma regra vai ser executada. Ou seja, o Controller faz a intermediao entre view e
Pgina 15

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

modelo, uma vez que as regras de negcios so implementadas na camada modelo e os


dados gerados exibidos na camada view, o Controller executa as regras sobre um
conjunto de dados, da maneira deve ser executada, e envia para a exibio na camada
de visualizao.
A camada Model: responsvel por manipular os dados de forma mais detalhada,
criando ento as regras do negcio, o modelo de negcio, regras que sero executadas
pelo Controller. Tambm no modelo que representa uma informao persistida,
sendo ela vinda de um SGBD, de um arquivo texto, um xml etc. As classes que
representam o modelo do sistema esto apresentadas atravs da Figura 2.20.

Pgina 16

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.4 VISO GERAL DO SISTEMA


De modo geral o sistema funcionar como apresentado na Figura 2.10. O sensor ligado ao
arduino monitora o nvel dagua. Uma vez acionado, o arduino se conecta a internet e envia
uma requisio via protocolo HTTP at o servidor onde a aplicao web est hospedada. Aps
o processamento da requisio as notificaes sero enviadas para Defesa Civil, para usuarios
cadastrados e redes sociais.

Figura 2.10 Viso Geral do Sistema

Pgina 17

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.4.1 MACRO-FLUXO DO PROCESSO


A Figura 2.11 apresenta o macro fluxo do processo correspondente ao cdigo embarcado no
arduino, que tem como responsabilidade verificar o status do sensor e disparar a requisio
para a aplicao web de notificaes.

Figura 2.11 Fluxograma Software embarcado.


De forma macro a Figura 2.11 apresenta o fluxo do processo. Inicialmente o arduino aguarda
at que um evento, acionamento do sensor, dispare uma interrupo. Sempre que houver a
interrupo, o arduino ir validar este evento, para esta validao, aps ocorrer interrupo o
arduino aguarda 1 segundo e efetua uma nova leitura no sensor, se o sensor no estiver
fechado, o arduino aguarda at que outra interrupo ocorra, se o sensor realmente estiver
fechado, ocorre tentativa de conexo ao servidor web, se esta conexo falhar um alarme
sonoro disparado, se a conexo ocorrer com sucesso requisio disparada para a
aplicao web. Quando o retorno do processamento web chegar novamente ao arduino,
verifica-se o retorno positivo, em caso de falha um alarme sonoro disparado.

Pgina 18

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

A Figura 2.12 representa o macro fluxo do processo correspondente aplicao de


notificaes, que tem como responsabilidade postar as notificaes, enviar e-mails e
mensagens de texto para os usurios cadastrados no sistema, e retornar para o arduino uma
mensagem de sucesso ou falha.

Figura 2.12 Fluxograma Aplicao web de notificaes.


A Figura 2.12 representa o macro fluxo do processo do lado web, ou seja, assim que a
requisio vinda do arduino chega at a aplicao. Aps a chegada da requisio verificado
se ela proveniente do arduino, aps essa verificao os dados de localizao do sensor so
recuperados atravs de consultas ao banco de dados. Com essas informaes criado o texto
da notificao e enviado aos destinatrios correspondentes, ou o rgo competente a qual se
destina ou aos usurios cadastrados no sistema, dependendo do tipo de requisio que o
arduino enviou.
Pgina 19

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.5 CDIGOS DO SISTEMA


Nesta seo os cdigos desenvolvidos para a aplicao de monitoramento que ficar
embarcado no arduino, e para a aplicao web de notificaes sero apresentados com os
respectivos comentrios.
2.5.1 CDIGO APLICAO DE MONITORAMENTO
Na Figura 2.13 apresentado o incio do cdigo da aplicao de monitoramento.
- Linhas 1 e 2: incluso das bibliotecas necessrias para o funcionamento do Shield Ethernet
W5100;
- Linha 5: declarao de um array de bytes que guarda o endereo fsico do shield ethernet;
- Linha 6: declarao de um varivel do tipo EthernetClient, tipo este definido na biblioteca
Ethernet.h, que ser responsvel por se conectar com um servidor, realizar as requisies;
- Linha 7: declarao de um array de char que guarda a url de onde esta hospedada a aplicao
web, poderia tambm ser usado o ip do hospedeiro;
- Linha 9: declarao de uma varivel do tipo int que representa o pino onde estar ligado o
buzzer, para os casos em que ocorrer falha na publicao da mensagem no twitter, a atribuio
do valor 5 nesta varivel indica que o buzzer esta ligado no pino 5 do arduino;
- Linha 10: Definio de uma varivel do tipo boolean, chamada segue, esta varivel servir
apenas de controle, para permitir que o arduino faa a requisio web, ou para que o arduino
continue aguardando a interrupo.

Figura 2.13 Cdigo Aplicao de monitoramento


A Figura 2.14 apresenta a funo setup() do arduino, onde so inseridas as linhas responsveis
pela inicializao do arduino. Todo cdigo contido dentro desta funo processado apenas
uma vez, no bootloader da placa, ou seja, apenas quando a mesma energizada.
- Linha 12: Declarao da assinatura do mtodo;
- Linha 13: Define a taxa de transmisso dados seriais em bits por segundo, s esta sendo
utilizado para que seja possvel enviar mensagens no console serial da IDE a fim de se
identificar o que esta acontecendo no momento;
- Linha 14: Define o buzzer que esta no pino 5 como OUTPUT;
- Linha 15: Define a condio lgica inicial do buzzer, neste caso LOW, ou seja, na
inicializao o buzzer estar desligado;
- Linhas16 e 17: Definem a condio lgica inicial dos pinos onde esto localizados os
sensores de nvel, no caso pinos 2 e 3. Por estar usando um resistor de pull-up para evitar a
flutuao natural nos pinos de entrada, quando os sensores esto abertos o estado natural de
cada pino HIGH, por este motivo a inicializao padro dos pinos tambm HIGH. Esta
linha apenas para certificar que o pino v estar em nvel alto ao inicializar o arduino.
Pgina 20

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

- Linha 19 e 20: Definio das interrupes externas, os 3 parmetros significam:


- 0: Seleciona o pino no qual possvel trabalhar com interrupo:
- 0 no Arduino Uno indica o pino 2;
- 1 no Arduino Uno indica o pino 3;
- doRequest: rotina de interrupo a ser chamada quando a interrupo ocorrer;
- FALLING: modo em que a interrupo disparada, FALLING diz que a interrupo
ser disparada sempre que os pinos 2 e 3, passarem do estado lgico alto (HIGH) para o
estado lgico baixo (LOW);
- Linha 22: Inicializao do Shield Ethernet, caso ocorra uma falha ao inicializar o shield uma
mensagem exibida no console, como nesta linha s esta sendo passado como argumento
para a funo o mac definido anteriormente, a atribuio de ip ao shield se dar por DHCP;
- Linhas 26 e 27: Exibem no console o ip atribudo ao shield Ethernet;
- Linha 28: Aguarda 1 segundo, em seguida comea a verificao do sensor.

Figura 2.14 Inicializaes do Arduino


A funo loop(), do arduino executada durante todo o perodo em que o arduino esta ligado,
dentro dela que so colocadas as instrues do sistema, por ser um pouco extensa, ser
apresentada em vrios pedaos para melhor visualizao do cdigo.
A Figura 2.15 mostra o incio da funo loop().
- Linha 32: A primeira instruo dentro da funo loop, a mais importante para o projeto,
pois como dito esta funo, fica executando em loop infinito, ento a responsabilidade desta
linha avaliar expresso !segue. Inicialmente a varivel segue false, enquanto for false,
!segue retornar true, fazendo com que o processamento do arduino fique preso dentro
deste while, Linha 33 Linha 37, apenas exibem na tela os estados dos sensores de
segundo em segundo;
Assim que uma interrupo ocorrer a funo doRequest chamada, esta funo inverte o
valor da varivel segue para true, ao fazer isto, a expresso !segue retornar false, saindo
do while, permitindo ao arduino interpretar as instrues abaixo do while.
- Linha 39 e 41: Aqui se implementa uma variao das tcnicas de debouncing, aps sair do
while, faz com que o arduino aguarde 2 segundos antes de efetuar uma nova leitura aos
sensores de nvel, este tempo para que qualquer oscilao nas portas lgicas tenham se
estabilizado, em seguida se a avaliao da expresso condicional da linha 41 retornar true
ento a interrupo vlida portanto a requisio disparada para a aplicao web, se no,
significa que houve apenas uma oscilao do estado lgico do pino, ou devido aos spikes, ou
Pgina 21

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

qualquer outra ao do meio externo que fez com que uma interrupo invlida fosse gerada;
- Linha 45: Invoca a funo connect() da biblioteca Ethernet.h atravs da varivel cliente,
passando a url do servidor web, e o nmero da porta que se deseja conectar, caso neste ponto
haja uma falha de conexo, o buzzer acionado, pois uma vez sem conexo no ser possvel
enviar notificaes, assim sendo acionado o alarme sonoro.
- Linha 47: Aguarda 1 segundo antes de iniciar a requisio HTTP;
- Linhas 49 e 56: Definem qual requisio ser enviada para web, pois caso o sensor acionado
seja o de elevao atpica, apenas o rgo competente deve ser avisado, caso o sensor
acionado seja o de alagamento, as notificaes para usurios cadastrados devem ser enviadas
alertando que determinada rea esta alagada;
- Linhas 50 e 57: Inicio do cabealho da requisio, nesta linha passa-se aplicao web o
mtodo que esta sendo utilizado, GET, a pgina requisitada redirect.php, e alguns
parametros:
- sensor: indica o sensor que foi ativado;
- id_sensor: guarda a informao do id do sensor, visto que em cada regio monitorada
haver um sensor e cada sensor um nmero que ir identificar o mesmo na aplicao web.
- Linhas 51 e 58: Identificao de qual host esta sendo requisitado pelo arduino, pois num
mesmo hospedeiro pode-se haver mais de um host, e a omisso desta clusula no cabealho
da requisio pode acarretar em um erro de BAD REQUEST;
- Linha 52 e 59: Identificao de quem esta realizando a requisio, no caso adotou-se colocar
a mesma informao enviada pelo browser Mozilla Firefox, a omisso desta clusula pode
resultar tambm em um BAD REQUEST;
- Linhas 53 e 60: Envia uma linha em branco para a aplicao web para identificar o fim do
cabealho da requisio.

Figura 2.15 - Funo loop.


Aps requisio enviada, o retorno da web comea a ser processado, a Figura 2.16 apresenta o
inicio desta etapa.
- Linha 63: A funo available() retorna a quantidade de byte do response da requisio,
caso seja igual zero, significa que ainda no houve o retorno por parte da aplicao web;
- Linha 67: Declarao de uma varivel do tipo String para receber a response da aplicao
Pgina 22

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

web;
- Linha 68: Enquanto houverem caracteres sendo recebidos, so concatenados na varivel
minhaString

Figura 2.16 Funo loop Recebendo resposta da web.


Aps o arduino receber a resposta e guardar em uma string, comea a etapa de parse dessa
string afim de identificar se o retorno foi positivo, esta etapa demonstrada na Figura 2.17.
- Linhas 73 e 74: Extraem do response a mensagem enviada pela aplicao web que diz se
houve sucesso ou no na publicao da mensagem no Twitter;
- Linha 76: se a variavel inicio for maior que -1 significa que a mensagem de ok, msgFP,
foi encontrada;
- Linha 77: se o texto encontrado for diferente de msgFP, significa que a mensagem
retornada pela aplicao web msgNP, e a notificao no foi postada, disparando ento o
aviso sonoro;
- Linha 83: se a varivel incio for igual a -1 significa que o texto que indica se houve
sucesso ou no na publicao no foi encontrada, por segurana ento o alarme sonoro
disparado;
- Linha 90: apenas verifica se a conexo ainda esta ativa, se no estiver encerra a conexo do
cliente com o servidor;
- Linha 95: se houve falha na conexo do arduino com a aplicao web dispara o alarme
sonoro;
- Linha 99: inverte novamente o estado lgico da varivel segue, fazendo-a voltar para
false, assim na prxima interao da funo loop o processamento ficar preso novamente no
while que faz a verificao desta varivel, at que outra interrupo seja gerada;
- Linha 101: se as condies do debouncing no forem satisfeitas, apenas inverte o estado
lgico da variavel segue para true, assim na prxima interao da funo loop o
processamento ficar preso novamente no while que faz a verificao desta varivel, at que
outra interrupo seja gerada;

Pgina 23

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

Figura 2.17 Funo loop parse da resposta.


A Figura 2.18 apresenta a rotina de interrupo:
- Linha 107: Assinatura da funo de interrupo, chamada sempre que houver uma
interrupo externa por falling;
- Linha 108: Inverte o estado lgico da varivel de controle segue para true.

Figura 2.18 Funo de interrupo doRequest().

2.5.2 APLICAO WEB DE NOTIFICAES


A aplicao web foi desenvolvida na linguagem PHP, utilizando alguns design Patterns como
dito anteriormente, o centro da aplicao o Controller.php, este arquivo responsvel por
receber as requisies do arduino e enviar ou as notificaes que so apenas dos rgos
competentes, quando h elevao atpica do nvel dagua, ou as notificaes para as pessoas
cadastradas no site do projeto, alm dos posts nas redes sociais, para os casos de notificaes
de reas alagadas. Tambm de responsabilidade do Controller.php o cadastro de pessoas no
sistema. Seguindo o design Pattern DAO, implementou-se classes responsveis por persistir o
cadastro no sistema. Todas as classes DAO herdam de PDOConnectionFactory que a
classe responsvel por fazer a conexo com o banco de dados. A Figura 2.19 apresenta o
diagrama de classes DAO utilizadas na aplicao web. Ainda sobre a aplicao web o banco
de dados responsvel por armazenar os dados dos usurios cadastrados e da localizao dos
sensores o MySQL, na Figura 2.22 apresentado o Diagrama Entidade-Relacionamento do
banco de dados da aplicao.
Pgina 24

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

Figura 2.19 Diagrama de Classes DAO


Alm das classes DAO, foram criadas 2 classes Modelo. Elas tm como objetivo representar
um novo cadastro e os sensores das reas que o usurio deseja receber as notificaes. A
Figura 2.20 mostra o diagrama das classes de modelo que foram criadas, foi preciso apenas
duas classes de modelo.

Figura 2.20 Diagrama de classes Modelo


O motivo pelo qual o cadastro e seus respectivos sensores foram separados em tabelas
diferentes no banco de dados e classes diferentes, por conta das regras de normalizao de
dados de um banco de dados relacional, como existe uma relao de 1 para N, ou seja, um
usurio pode escolher N sensores, uma boa prtica separar esses registros em tabelas
diferentes e relacion-los atravs de uma chave nica e comum entre ambos.
Pgina 25

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

A fim de deixar o cdigo mais claro, evitando a repetio de cdigo, criou-se duas classes que
encapsulam as funes de envio de e-mail e sms. A Figura 2.21 mostra o diagrama das classes
chamadas de utilitrias foram criadas apenas para tornar a aplicao menos acoplada, e
deixar o cdigo mais limpo:

Figura 2.21 Classes utilitrias.


A Figura 2.22 apresenta o diagrama entidade-relacionamento que representa graficamente as
entidades (tabelas) criadas no banco de dados para a aplicao web, bem como seus atributos
e a relao entre elas.

Figura 2.22 Diagrama Entidade Relacionamento Aplicao Web de Notificaes

Pgina 26

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

2.6 ESQUEMA DE LIGAO


A Figura 2.23 mostra como foi feita a ligao dos componentes, por conta dos sensores da
fabricante ICOS no fazerem parte da biblioteca de componentes do software Fritizing, o
sensor de nvel na Figura 2.22 foi substitudo por um boto, que ao ser pressionado emula o
acionamento do sensor de nvel.

Figura 2.23 Esquema de ligao.

Pgina 27

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

3. RESULTADOS E DISCUSSO
3.1 EFETIVIDADE DA SOLUO
De fato a soluo proposta seria eficaz? Traria realmente algum beneficio tanto para pessoas
com maior poder aquisitivo quanto para as pessoas mais carentes? Para se chegar a algum
resultado sobre estas questes necessrio analisar a soluo dentro de cada contexto
imaginado. Para as regies mais perifricas com pessoas mais carentes, o projeto se prope a
monitorar qualquer elevao do nvel dagua que de alguma forma represente uma ameaa
para esta parte da populao, neste caso as notificaes so enviadas somente para algum
rgo pblico, bombeiros, defesa civil ou at mesmo uma comisso criada especificamente
para tratar estes assuntos. Mediante a este alerta ficaria a cargo deste rgo a comunicao
para a populao da rea, a mobilizao de equipes de apoio, retirada prvia das pessoas do
local, enfim qualquer atitude que o responsvel julgue necessria. O ganho nesta situao
seria a antecipao do evento com base na notificao de que o nvel dagua subiu de forma
atpica, reduzindo ento a latncia entre o inicio do evento e o atendimento a estas pessoas,
em resumo a palavra que define bem esta situao seria precauo. A efetividade da soluo
neste caso depende diretamente do envolvimento e comprometimento dos rgos
responsveis com a populao carente, mediante a uma eminncia de alagamento.
Como exemplo de que a informao prvia a partir do monitoramento, e que a antecipao de
decises podem salvar vidas e evitar prejuzos, temos a eficiente defesa civil Australiana que
em 2011 foi tema de uma reportagem no site da revista Veja, onde dentre outras pontos,
ressalta o baixo nmero de mortos devido s inundaes, em 2 meses foram 32 mortes, um
nmero muito inferior se comparado s 765 vtimas fatais nos 8 primeiros dias de chuvas
fortes no inicio de 2011 no Rio de Janeiro [10].
Nas regies centrais, que tambm sofrem com as inundaes, encontra-se uma populao com
mais acesso informao, e para este caso, alm do envolvimento dos rgos competentes, j
citado anteriormente, existe a possibilidade das notificaes sobre reas alagadas serem
enviadas atravs de redes sociais, sms, e-mails. Uma vez que cadastrado no sistema, a pessoa
receberia os alertas de reas que esto alagadas, o ganho nesta situao a rapidez com que
uma informao se espalha graas internet, celular etc, fazendo com que essas reas
alagadas sejam evitadas pela populao que esteja nas ruas, ou ainda as pessoas que esto em
casa ou trabalho evitariam sair naquele exato momento. Neste caso outra questo deve ser
analisada, As pessoas veriam as notificaes na internet, e a informao se propagaria com a
velocidade esperada?. Segundo o pesquisa (Ibope NetRatings, 2012) at 2012, 94,2 milhes
de brasileiros j se conectavam na internet de alguma maneira, o que coloca o Brasil no 5
lugar dos pases que mais acessam a internet, ainda de acordo com a pesquisa, entre 2007 e
2011 o percentual de brasileiros com acesso internet subiu de 27% para 48%, ou seja, 21%
em 4 anos. 31% acessam em Lan house, 27% na prpria casa e confirmando o que foi dito
antes, 25 % acessam a internet na casa de parentes e/ou amigos [11].
Outra pesquisa realizada pela (comScore, 2013) diz que, o brasileiro passou em mdia 27
horas/ms online em seus computadores, sendo 36% dessas horas foram gastas no Facebook,
atualmente a maior e mais popular rede social, em dezembro de 2012 foram quase 44 milhes
de visitantes nicos o nmero de pessoas que acessam sites atravs de dispositivos mobile
chegou a 6% [12]. Segundo o Ibope em 2012 13%, 9,5 milhes, de brasileiros possuem um
smartphone, percentual que at 2009 era de 7%, sendo que 53% aderiu um plano pr-pago,
ou seja, cada vez mais brasileiros adquirem aparelhos mobile com capacidade de conexo.
Pgina 28

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

Outro ponto que mostra a viabilidade da utilizao das redes sociais para avisar sobre
enchentes , mesmo que a populao no veja a informao, os rgos pblicos possuem
acesso internet o tempo todo, proporcionando mais agilidade no processo de comunicao
do evento aos bombeiros, defesa civil, ou outro rgo responsvel.
Recentemente o IBGE publicou dois grficos elaborados a partir de dados at 2011 da PNAD
(Pesquisa Nacional por Amostra de Domiclios) que mostram o percentual da populao com
internet e que possuem celular. A Figura 3.1 mostra o percentual de pessoas conectadas, e a
Figura 3.2 o percentual de pessoas que possuem aparelho celular.

Figura 3.1 Percentual da populao com acesso internet. Fonte: [2].

Pgina 29

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

Figura 3.2 Percentual da populao que possuem celulares. Fonte: [2].


3.2 TWITTER x FACEBOOK
Twitter e Facebook possuem integrao total entre suas publicaes, desta maneira as contas
criadas para o projeto no Twitter e Facebook foram vinculadas. Assim quando uma
publicao ocorre no Twitter automaticamente ela tambm publicada na timeline do
facebook, ampliando a rede de pessoas que recebero a informao.

Pgina 30

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

A Figura 3.3 mostra a pgina do AlertaEnchente no facebook

Figura 3.3 Fanpage do AlertaEnchente no Facebook.


A Figura 3.4 mostra a fanpage do AlertaEnchente no Twitter

Figura 3.4 Fanpage do AlertaEnchente no Twitter

Pgina 31

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

4. CONCLUSO
Neste projeto foi demonstrado que possvel desenvolver solues simples para problemas
srios, utilizando ferramentas que esto ao alcance de qualquer pessoa, sendo o maior trabalho
juntar as diversas aplicaes j existentes conseguindo uma soluo nova e funcional.
Demonstrou-se ainda que possvel diminuir o tempo entre a ocorrncia de um evento e a
chegada da informao at os rgos competentes, a aplicao desenvolvida publica uma
mensagem no twitter em questes de segundos, replica ao facebook quase que
instantaneamente, envia e-mails em milsimos de segundo, isto muito mais rpido que
algum tomar a deciso de ligar para algum rgo pblico. Com o comprometimento dos
rgos competentes poderia criar-se um novo processo que monitoraria estas notificaes
acelerando o atendimento populao vitimada, reduzindo consideravelmente o nmero de
perdas sejam elas materiais ou at mesmo de vidas.

Pgina 32

TRABALHO DE CONCLUSO DE CURSO


SENSOR DE ENCHENTES

7. REFERNCIAS
[1] HADDAD, E. A.; SANTOS, E.T.; Economic Impacts of Natural Disasters in
Megacities: The Case of Floods in So Paulo, Brazil. FEA-USP Universidade de So Paulo
(2013). Disponvel em <
http://www.em.com.br/app/noticia/nacional/2013/03/15/interna_nacional,357555/pais-perdemais-de-r-700-mi-com-enchentes-em-sp.shtml>. Acesso em 01 out. 2013;
[2] Instituto Brasileiro de Geografia e Estatstica - IBGE, Pesquisa Nacional de Saneamento
Bsico (2008). Disponvel em <
http://www.ibge.gov.br/home/estatistica/populacao/condicaodevida/pnsb2008/PNSB_2008.pd
f >. Acesso em 01 out. 2013;
[3] - ARDUINO. What Arduino can do?; Disponvel em <http://www.arduino.cc>; Acesso
em 18 ago. 2013;
[4] JAVASCRIPT SOURCE. What is JavaScript? Is it the same as Java?; Disponvel em
<http://www.javascriptsource.com/faq/index.html>. Acesso em 18 ago. 2013;
[5] jQUERY FOUNDATION; What is jQuery?; Disponvel em <http://jquery.com/>.
Acesso em 18 ago. 2013;
[6] PHP DOCUMENTATION GROUP; In: O que PHP? O que o PHP pode fazer?; 2013.
Disponvel em <http://www.php.net/manual/pt_BR/>. Acesso em 18 ago. 2013;
[7] ORACLE FOUNDATION; Why MySQL? 2013.
Disponvel em <http://www.mysql.com /why-mysql/ >.Acesso em 13 dez 2013;
[8] - GAMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J.; Design Patterns: Elements of
Reusable Object-Oriented Software; In: What is a Design Pattern?; 1 Edition, AddisonWesley Professional (1994) p. 12 -14;
[9] - GAMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J.; Design Patterns: Elements of
Reusable Object-Oriented Software; In: Design Patterns in Smalltalk MVC; 1 Edition,
Addison-Wesley Professional (1994) p. 14 - 16;
[10] DIAS, M.; Na Austrlia, 32 mortos em dois meses de inundaes; Revisa Veja; 2011;
Disponvel em <http://veja.abril.com.br/noticia/brasil/na-australia-32-mortos-em-dois-mesesde-inundacoes>. Acesso 01 out. 2013;
[11] ANTONIOLI, L.; Estatsticas, dados e projees atuais sobre a Internet no Brasil;
2012; Disponvel em <http://tobeguarany.com/internet_no_brasil.php>. Acesso em 18 ago.
2013;
[12] NASDAQ SCORE; 2013 Brazil Digital Future in Focus; So Paulo; Maro 2013;
Disponvel em
<http://www.comscore.com/por/Insights/Events_and_Webinars/Webinar/2013/2013_Brazil_
Digital_Future_in_Focus>. Acesso em 01 out. 2013.
Pgina 33

Você também pode gostar