Beruflich Dokumente
Kultur Dokumente
Goiânia
2018
I NTITUTO F EDERAL DE G OIÁS
D EPARTAMENTO DE Á REAS ACADÊMICAS IV
Goiânia
2018
C ÍCERO J OASYO M ATEUS DE M OURA
A Deus por me proporcionar todos estes momentos vividos e ser minha força
em todos as situações. Ao IFG, por fornecer toda a infraestrutura necessária para o
meu aprendizado, crescimento profissional e pessoal. Aos docentes da instituição, que
se esforçaram no processo de passar conhecimento, experiências e orientações para
crescimento da minha carreira profissional e vida pessoal. Ao professor Otávio Calaça
pela orientação e tempo investido no apoio a criação deste trabalho. Aos meus amigos de
curso, que estiveram durante todo este tempo ao meu lado, vencendo desafios, superando
as barreiras e os nosso próprio limites.
Agradecimento especial a minha mãe, Maria Duce por estar ao meu lado apoi-
ando minhas decisões, meus estudos e me incentivando a vencer os desafios. A minha
família, base dos meus valores e força para seguir em frente.
E a todos que de alguma forma contribuíram para a construção deste trabalho ou
em algum momento da minha caminhada.
Aqueles que semeiam com lágrimas, com cantos de alegria colherão.
Aquele que sai chorando enquanto lança a semente, voltará com cantos de
alegria, trazendo os seus feixes.
Salmos 126:5,6,
Bíblia Sagrada.
Resumo
The elderly population in the world has grown considerably, and the forecast for the year
2050 is around 22 some health-related problems. Due to age can become more fragile
and possible sudden complications happen. A major concern of health problems are falls,
which affect majority of the elderly population. In addition respiratory, cardiovascular
and other diseases. In search of control over the health of the elderly, offering greater
independence and accompaniment by the relatives, it is relevant solutions that will offer
improvements in the quality of life of those involved. This project aims to build a health
monitoring system for the elderly, in a way that is economically feasible, technologically
possible, comfortable for use and practical for the elderly in monitoring, as well as
for family members and caregivers who accompany their health. The system should
include monitoring of heart rate, body temperature and detection of falls, enabling rapid
and automatic responses to changes in the health situation. For family members and
caregivers, a mobile application is offered to monitor data and receive alerts on monitoring
situations. This work will present all the stages of system development, such as materials,
techno- logical resources, implementation, programming languages, algorithms and all
the steps followed to build the system. In the results, two case studies were analyzed,
observing and commenting on the results obtained. As future work, want to add new
sensors and modules to the system and perform predictive analyzes on the data to
proactively identify situations of risk to the health of elderly.
Keywords
Health of the Elderly, Internet of Things, Remote Monitoring, Wearables Com-
puting
Lista de Abreviações
Lista de Figuras 12
Lista de Tabelas 14
1 Introdução 16
1.1 Motivação 16
1.2 Justificativa 17
1.3 Objetivos 18
1.3.1 Objetivo Geral 18
1.3.2 Objetivos Específicos 18
1.4 Estrutura do Trabalho 19
2 Referencial Teórico 20
2.1 Frequência Cardíaca 20
2.2 Temperatura Corporal 20
2.3 Tecnologia Assistiva 21
2.4 Computação Vestível 21
2.5 Internet das Coisas 22
2.5.1 Arquitetura básica da Internet das Coisas 22
2.6 Protocolos de Comunicação 23
2.6.1 Protocolo I2C 23
2.6.2 Protocolo Serial 24
2.6.3 Protocolo HTTP 24
2.7 Sistemas Embarcados 25
2.7.1 Microcontrolador 25
2.7.2 Microcontrolador ESP8266 25
2.8 Computação em Nuvem 26
2.9 Banco de Dados NoSQL 28
2.10 Banco de Dados SQLite 29
2.11 Linguagem Python 29
2.12 Linguagem TypeScript 30
2.13 Aplicativos Híbridos 30
2.14 Framework 31
3 Materiais e Recursos 32
3.1 Definição de Escopo do Trabalho 32
3.2 Materiais 33
3.2.1 Compra dos Materiais 33
3.2.2 Placa de Desenvolvimento NodeMCU 34
3.2.3 Sensor de Frequência Cardíaca 36
3.2.4 Acelerômetro, Giroscópio e Sensor de Temperatura 36
3.3 Recursos 37
3.3.1 O IDE Arduino 38
3.3.2 O IDE PyCharm 39
3.3.3 O IDE Visual Studio Code 39
3.3.4 Plataforma Heroku 40
3.3.5 Plataforma Firebase 40
3.3.6 Ionic Framework 41
3.3.7 Flask Microframework 42
4 Desenvolvimento 43
4.1 Estrutura Geral do Sistema 43
4.2 Etapas da Construção do Sistema 44
4.3 Montagem do Hardware 45
4.4 Algoritmo do Sistema Embarcado 48
4.5 Configuração do Firebase 54
4.6 Desenvolvimento da Web API 55
4.6.1 Adicionando a Web API na Plataforma Heroku 58
4.7 Desenvolvimento do Aplicativo Móvel 60
4.7.1 Estruturação do Projeto 60
4.7.2 Instalações e Implementação 63
5 Resultados 68
5.1 Aplicativo Móvel 68
5.2 Estudos de Casos 70
5.3 Análise dos Estudos de Casos 71
5.3.1 Análise do EC1 71
5.3.2 Análise do EC2 75
5.4 Notificações 76
Referências Bibliográficas 81
Lista de Figuras
1.1 Motivação
A população idosa do Brasil tem aumentado a cada ano consideravelmente e
com isso o aumento da qualidade de vida para esse grupo da sociedade é alvo de diversos
esforços. O objetivo é buscar soluções que possam trazer praticidade, independência,
prevenção, auxílio e conforto a vida das pessoas acima dos 65 anos de idade. No ano de
2010, foi constado que são cerca de 20 milhões de pessoas que estão dentro da população
idosa no Brasil, o que corresponde a 7,4% da população total [16]. E segundo dados do
IBGE, a expectativa média de vida do brasileiro subiu em 2012, chegando a 74,5 anos,
[48].
A atenção aos idosos é tratada de diversas maneiras e os maiores esforços estão
voltados a soluções que propõe melhorias no acompanhamento a saúde. Essa preocupação
quanto à saúde do idoso não acontece somente no Brasil, mas em muitos outros países [9].
Estudos apontam quais são as principais causas de atendimento e internações realizados
pelos pontos de saúde, e entre essas ocorrência pode se destacar: problemas respiratórios,
cardiovasculares, ingerir remédios errados e quedas sofridas [58]. Ainda é importante
destacar que no Brasil cerca de 70% dos idosos possuem pelo menos uma patologia
crônica, ou seja, um problema de saúde que necessita de constante acompanhamento e
monitoramento [12].
Segundo estudo realizado no ano de 2010, as três maiores frequências de atendi-
mentos hospitalar entre os idosos são: problemas no aparelho circulatório, que afeta 28%
dos idosos brasileiros, quedas sofridas que somam 24% ao ano e doenças no aparelho res-
piratório que afeta cerca de 17% da população idosa [10]. Normalmente os idosos querem
ser independentes e por muitas das vezes moram sozinhos. Porém com o risco eminente
de sofrer algum tipo de trauma como a queda ou complicações repentinas em sua saúde
como ataque cardíaco ou parada respiratória, prejudicam a independência do idoso.
1.2 Justificativa 17
1.2 Justificativa
Por se tratar de uma parte da população que tende a ter saúde frágil, é registrado
um grande número de ocorrências que levam a ter diversos atendimentos em hospitais.
Muitas vezes são de emergência e até internações por longos períodos, se tornando
assunto de preocupação da saúde pública. Levando em consideração essa situação,
diversos esforços em estudos têm sido realizados para se criar soluções tecnológicas
que possam oferecer um suporte aos idosos. Ao ser realizado o monitoramento de sua
saúde, o idoso pode ter maior independência e conforto. além de possibilitar o controle e
administração das situações por parte dos familiares e cuidadores.
Em relação ao monitoramento de possíveis quedas que o idoso possa sofrer, o
artigo Fall detection algorithms for real-world falls harvested from lumbar sensors in the
elderly population: a machine learning approach [15] aborda o conceito de tecnologia
assistiva, onde sensores identificam a queda do idoso e o sistema envia mensagens para
parentes ou médicos, para que o auxílio seja feito rapidamente. A identificação da queda
é feita através de sensores e abordagem com algoritmos computacionais de Inteligencia
Artificial.
Outra solução é descrita no artigo IoT system for monitoring vital signs of elderly
population, que faz a utilização de sistema embarcado capaz de monitorar os batimentos
cardíacos para a prevenção de arritmia cardíaca e também módulos de monitoramento
da respiração e da temperatura do corpo, utilizando algoritmos computacionais para
identificar padrões e possíveis alterações na saúde da pessoa em monitoramento [9].
Outra abordagem é proposta no trabalho We-care: An IoT-based health care
system for elderly people é o desenvolvimento de uma pulseira baseada no conceito de
Internet das Coisas, que realiza o monitoramento da frequência cardíaca, temperatura,
saturação de oxigênio e sinais eletrocardiográficos, usando informações em tempo real
através de sensores internos e ainda notificar os membros da família ou cuidadores
designado sobre mudanças inesperadas [73].
Malheiros, Larinni em seu trabalho de conclusão da graduação [60], propõe uma
solução para acompanhamento à distância de pessoas com diagnóstico de Alzheimer, com
quadros de desmaios frequentes, idoso e qualquer um que precise de monitoramento 24
horas. Para isto é utilizado a Internet das Coisas e um aplicativo móvel para acompanhar
posição corporal, frequência cardíaca e possíveis quedas.
Uma outra abordagem é feita no artigo Human fall detection with smartphones
[19], utilizando os sensores do smartphone para detectar quedas, contudo o idoso deve
constantemente carregar em seu bolso o aparelho, o que na maioria das vezes, pode ser
inviável.
Levando em consideração os estudos e soluções apresentados podemos perceber
1.3 Objetivos 18
que se trata de um assunto com importância que relaciona os idosos, familiares, médicos
e o sistema de saúde.
Nesse aspecto este trabalho apresentada uma proposta que possa reunir as
principais necessidades e prover um sistema de monitoramento remoto a saúde de pessoas
acima dos 65 anos. Utilizando técnicas relacionadas a Internet das Coisas para monitorar
batimentos cardíacos, temperatura do corpo e detectar quedas, juntamente com algoritmos
para analisar os dados e oferecer uma resposta rápida e de forma automática a possíveis
alterações na saúde do idoso, e assim emitir alertas para a família ou cuidadores que
estejam acompanhando o monitoramento.
Ainda é necessário que a solução apresentada seja viável economicamente, que
não venha prejudicar o idoso ou lhe fazer sentir desconfortável, eficiente na detecção de
alterações, rápida resposta às situações, com o uso de tecnologias livres e gratuitas, de
forma que possibilite facilmente a sua expansão agregando novas funcionalidades.
1.3 Objetivos
em que é medida, sendo que abaixo de 34 o C e muito baixa e acima de 37 muito alta.
Ainda podendo ter influência do meio ambiente na camada externa da pele [23].
Pelo valor da temperatura corporal é possível identificar algumas situações de
riscos como a hipotermia, que se refere a perda de temperatura corporal, chegando a
valores muito baixos. A hipertermia, que é elevação da temperatura corporal que pode
caracterizar febre e situações de riscos a saúde [87].
Um dos objetivos deste trabalho é realizar a análise dos dados da temperatura
corporal, buscando oferece alertas sobre possível situações de riscos para temperatura
corporal acima ou abaixo do normal.
geral, como o dispositivo proposto neste trabalho, que é vestível e possui um sistema de
computação executando tarefas que interagem com o usuário.
1. Fonte de energia: é a fonte que alimenta o dispositivo eletricamente, pode ser gerada
de uma bateria, rede elétrica e entre outras.
2. Sensores e Atuadores: os sensores realizam a interação com o meio externo,
provendo um monitoramento através de grandezas físicas: temperatura, pressão,
umidade e entre outras. Os atuadores são responsáveis pela resposta, atendendo
2.6 Protocolos de Comunicação 23
8 bits, sendo 7 bits para a identificação do dispositivo e 1 bit para indicar o estado no
momento da comunicação, se é leitura ou escrita. O endereçamento é expresso em forma
de numeração hexadecimal.
O protocolo I 2C é utilizado neste trabalho para a comunicação entre microcon-
trolador e módulos adicionais.
2.7.1 Microcontrolador
Microcontroladores são sistemas computacionais inteiros contidos em apenas
um único chip de circuito integrado [2]. Se trata de um hardware específico para executar
funções dedicadas através de uma programação feita em uma linguagem suportada pelo
circuito.
Um microprocessador, utilizado em computadores pessoais, são chamados mi-
croprocessadores de uso geral, pois possuem poder para realizar cálculos de forma rápida
e podem executar praticamente qualquer tarefa, conforme são programados. Por outro
lado os microcontroladores são circuitos mais simples, com interfaces de entrada e saída
(E/S), memória RAM e ROM, interfaces de comunicação serial e USB, podendo possuir
conexão de rede, como Ethernet, Wi-FI e Bluetooth [70].
As grandes vantagens dos microcontroladores são o seu preço acessível e seu
pouco consumo de energia. Juntando essas características e seus componentes agregados
é possível o desenvolvimento de diversas aplicações, em várias áreas diferentes e com
muitas funcionalidades.
um ponto de acesso (Access Point) que oferece uma rede para conexões ou então as duas
soluções em conjunto. A rede Wi-Fi suporta os protocolos de conexão 802.11 b/g/n e de
comunicação TCP/IP [83].
O microcontrolador possui arquitetura de 32 bits, e um núcleo de processamento
com 80 MHz que pode chegar até 160 MHz e a memória disponível para os dados do
programa de usuário tem cerca de 50 kB [70]. Possui 17 interfaces de entrada e saída
(GPIO) digitais, suporta os protocolos de comunicação serial e I 2C. A tensão energética
de operação do microcontrolador é de 3,3 volts.
Existem diversos módulos disponíveis no mercado que utilizam o ESP8266
como base, oferecendo interfaces de conexões E/S facilitadas, conexão USB, suporte a
linguagem de programação e ambiente de desenvolvimento integrado (IDE). Conforme
a Figura 2.2, são destacados algumas dessas plataformas que contém o ESP8266 como
microcontrolador.
O ESP8266 foi projetado pensando em aplicações para a Internet das Coisas, dis-
positivos móveis e vestíveis a um baixo custo. Possui diversas tecnologias desenvolvidas
pela empresa proprietária que garantem a utilização desse microcontrolador em diversas
aplicações com a conexão de uma rede sem fio.
sem impactar os demais dados), ausência de esquema e acesso via API1 (Application
Programming Interface) simples [69].
O armazenamento dos dados coletados neste trabalho são armazenados em um
banco de dados NoSQL, por todos os benefícios que foram apresentados anteriormente.
2.14 Framework
Um framework ou estrutura em português, em desenvolvimento de software de-
fine uma estrutura a ser seguida na criação do software e ainda disponibiliza bibliotecas
com códigos prontos que é comum em diversos projetos, buscando agilizar o desenvolvi-
mento e fornecer reaproveitamento de código na escrita do programa [39].
O uso de framework no desenvolvimento de um software, ajuda a definir uma
estrutura de organização do projeto e agiliza a sua escrita, por conter diversas funções
comuns em diversos softwares prontas para serem utilizadas.
CAPÍTULO 3
Materiais e Recursos
3.2 Materiais
Todos os materiais utilizados e estudados no desenvolvimento do projeto serão
descritos individualmente, evidenciando suas funcionalidades e características.
crocontrolador e conexão com a rede sem fio. Assim se chegou aos materiais que serão
mostrados logo a seguir.
A Tabela 3.1 mostra o nome do componente, quantidade e valores dos materiais
que foram utilizados para a construção final do prototipo proposto neste trabalho. Os
valores estão convertidos em dólar americano (segundo cotação da moeda em Setembro
de 2017), porém todos os componentes foram adquiridos no Brasil.
• USB Power: é utilizado como entrada de energia, caso seja necessário a utilização
de um conversor USB para carregar programas no microcontrolador. Não é utilizado
caso o circuito seja alimentado por uma bateria externa.
• 3,3V: funciona como E/S, podendo alimentar a placa com uma bateria externa de
3,3 volts, ou fornecer energia com a mesma tensão para sensores ou atuadores. Ao
total são três pinos com essa funcionalidade.
• VIN: é o pino que passa pelo regulador de tensão interno do NodeMCU, com isso
é utilizado para alimentação do circuito, suportando uma bateria de até 9 volts. O
regulador de tensão irá adequar a corrente elétrica de entrada para 3,3 volts, assim
componentes podem ser alimentados nos outros pinos de mesma voltagem.
• Ground: é o pinos terra, ao todo são cinco no NodeMCU, servindo como referencia
e ponto negativo para a conexão de bateria e outros componentes externos.
3.2 Materiais 36
O sensor possui três conectores, onde cada um dos fios são ligados a placa
microcontroladora. O primeiro pino, é o GND, representa o fio negativo, o do meio VCC,
que é o de tensão positiva, operando entre 3 a 5 volts, e o último pino é o de sinal, por ele
o sensor envia os dados coletados para o microcontrolador.
O módulo necessita de uma tensão com 3,3 volts para ser ligado, porém pode ser
alimentado com até 5 volts, pois possui um regulador de tensão interno, fazendo assim a
conexão com uma placa microcontroladora de forma transparente e sem muitas compli-
cações. A comunicação desse módulo com um microcontrolador é feita por barramento
I 2C.
O sensor possui 8 pinos que fazem interface com o microcontrolador. A funcio-
nalidade de cada um é descrita na Tabela 3.2.
Tabela 3.2: Pinos conectores do MPU6050
Pino Descrição
VCC pino de tensão positiva do módulo
GND pino de tensão negativa do módulo
SCL pino que faz a controle da comunicação com o microcontrolador
SDA pino que faz a comunicação com o microcontrolador
XDA pode ser usado para auxiliar a comunicação com outros módulos
XCL pino que pode fazer interface com módulos extras
AD0 pino auxiliar para mudar o endereço de comunicação do protocolo I 2C
pino de interrupção, usado para dizer ao microcontrolador quando os
INT
dados estão prontos para ser enviados
3.3 Recursos
Os recursos tecnológicos utilizados para a construção deste trabalho serão des-
critos individualmente nesta seção.
3.3 Recursos 38
√
Ainda analisando a Figura 3.6 é possível notar dois botões com os símbolos e
→, que são referentes as funções de verificar e carregar respectivamente. Quando o botão
de verificar é acionado, o IDE realiza a compilação do código, verificando se há erros de
sintaxe no sketch. Em caso de erro ou sucesso são exibidas informações na área em preto
na parte inferior da janela. No caso do botão carregar, a compilação também é feita, mas
além disso, o sketch é carregado na placa que está conectada na entrada USB. Os status
3.3 Recursos 39
conta com o suporte a aplicações desenvolvidas para iOS, Web e Android nas linguagens
C++, Java, Javascript, NodeJS, Objective-C e Swift [50].
O Firebase possui diversas funcionalidades, entre elas o Analytics, um painel
para monitoramento dos usuários e desempenho em geral das aplicações. Database que
é um banco de dados NoSQL para armazenamento de dados na nuvem em formato
JSON. Real Time Database, banco de dados em tempo real, pois possui o atraso de
armazenamento e recuperação de dados muito pequeno, a estrutura de armazenamento
é NoSQL, que possibilita a sincronização de dados com diversos sistemas ao mesmo
tempo.Firebase Cloud Messaging (FCM), que é um sistema para notificação de usuário,
conhecida como (Push Notification) onde pode ser em tempo real ou agendadas. Essa são
algumas funcionalidades importantes da plataforma.
A principio utilizar os serviços do Firebase é gratuito, porém é possível a
contratação de serviços extras, que proporcionam maior espaço para armazenamento de
dados, segurança e desempenho nas aplicações. A conta gratuita atende bem diversos
serviços, principalmente para testes e prototipação de sistemas.
recursos para desenvolvimento Web, com HTML, CSS e JS. O Ionic Module e o Ionic
CLI, onde o primeiro contém as bibliotecas para desenvolvimento das aplicações móveis e
o segundo disponibiliza recursos pelo terminal de comando do sistema operacional para a
criação rápida de diversos componentes [35]. Todo o aplicativo pode ser escrito utilizando
a linguagem TS.
Após o processo de desenvolvimento do aplicativo, é utilizado as ferramentas
disponibilizadas pelo Cordova para gerar e executar o aplicativo no dispositivo móvel,
tanto para Android quanto iOS.
Com o projeto dividido em etapas, fica mais claro o que deve ser realizado
primeiro para executar uma certa função do sistema e assim as demais funcionalidades.
Uma descrição detalhada de cada etapa se encontra logo abaixo:
Todas as etapas são dependentes das suas anteriores, porém podem ser execu-
tadas em paralelo, mas devem seguir a ordem para pleno funcionamento de cada etapa.
Após a conclusão de duas etapas que se sucedem, a integração das duas ocorrem e assim
sucessivamente até que o sistema esteja desenvolvido por completo.
A Tabela 4.2 mostra com detalhes como os componentes estão ligados ao No-
deMCU. Quais os pinos que estão sendo utilizados e como está sendo feito a comunicação
entre os dispositivos que compõem o sistema.
Porém depois de realizar alguns testes, foi verificado que a forma como o
dispositivo estava costurado à roupa não facilitava a sua vestimenta e também faltava
4.4 Algoritmo do Sistema Embarcado 48
proteção aos componentes fixados, caso houvesse uma queda ou mesmo um movimento
brusco do utilizador, poderia ocorrer algum dano que desativasse por completo o sistema.
Pensando nessas considerações, o primeiro protótipo foi melhorado, mantendo as mesmas
conexões, mas todos os componentes foram fixados em uma capa protetora. Os fios foram
organizados e a costura na roupa ficou mais simples, podendo ocorrer de formas diferentes
e também facilmente ser removido e costurado em outras roupas. A Figura 4.6 mostra a
esquerda os componentes fixados a capa protetora e a direita como foi costurado em um
roupa para sua utilização.
O código 4.3 faz a tarefa de inicialização da rede Wi-Fi. Nesta função é definido
a utilização da rede como STA, realiza a conexão com a rede Wi-Fi local, passando como
parâmetros nome e senha, por último verifica se a conexão foi realizada, caso contraria
tenta novamente a cada meio segundo até que seja estabelecida a conexão.
A leitura dos dados pelo sensor de frequência cardíaca é realizada de forma ana-
lógica, apenas utilizando a função nativa analogRead. A leitura dos dados é realizada
dentro da função ticker, que executa de forma periódica a cada dois milissegundos, bus-
cando encontrar alguma alteração na frequência do led que se referencie como um sinal
de batimentos cardíacos. A função de forma resumida pode ser conferida a seguir 4.4.
4.4 Algoritmo do Sistema Embarcado 51
5 void leituraSinalBPM(){
6 Sinal = analogRead(pinoPulseSensor);
7 }
problema, sem o uso da biblioteca, foi analisado padrões de acelerações dos eixos X,
Y e Z, definido limites a ser comparados com cada valor retornado pelo acelerômetro,
buscando situações que caracterize uma queda. A responsabilidade de analisar os dados
e realizar as comparações dos intervalos, foi passada para a Web API, pelo fato de conter
maior poder de processamento no servidor que em um microcontrolador, além da questão
de padronizar as tarefas a serem realizadas por cada componente do sistema.
Os dados dos sensores são enviados para a Internet utilizando o método GET,
onde é construído um link com todos os dados coletados e a informação de destino, que é
a URL. Assim após montar a URL os dados são enviados por HTTPS, utilizando a porta
443 para a Web API através da biblioteca WiFiClientSecure. O código 4.7 mostra como
é feito a montagem da URL concatenando diversas strings. E o código 4.6 exemplifica
como são enviados os dados.
4 msg.concat("GET /api/monitoramento/salvar?");
5 msg.concat("bpm=");
6 msg.concat(BPM);
7 msg.concat("&temperatura=");
8 msg.concat(temperatura);
9 msg.concat("&aclX=");
10 msg.concat(aclNormalizado.XAxis);
11 msg.concat("&aclY=");
12 msg.concat(aclNormalizado.YAxis);
13 msg.concat("&aclZ=");
14 msg.concat(aclNormalizado.ZAxis);
15 msg.concat("&girX=");
16 msg.concat(girNormalizado.XAxis);
17 msg.concat("&girY=");
18 msg.concat(girNormalizado.YAxis);
19 msg.concat("&girZ=");
20 msg.concat(girNormalizado.ZAxis);
21 msg.concat(" HTTP/1.1\r\nHost: ");
22 msg.concat(urlAPI);
23 msg.concat("\r\nConnection: close\r\n\r\n");
24
25 return msg;
26 }
6 delay(1000);
7 }
O banco de dados em tempo por ser NoSQL, vai fornecer o armazenamento dos
dados na estrutura de JSON. O modelo de dados é simplificado e facilmente expandido,
não possuindo uma estrutura fixa, o que possibilita adicionar outros campos de dados
facilmente, sem perca de informação ou alterações em configurações da base de dados.
A autenticação oferece criação de usuário com senha para se conectar aos
serviços da plataforma. Para este projeto foi criado um usuário com permissões para
gravar e recuperar dados no Firebase. Apenas este usuário pode manipular os dados
contidos na plataforma.
As notificações fornecem uma interface para smartphones, possibilitando rece-
ber alertas através do aplicativo, que deve conter o mesmo nome de projeto definido nas
configurações iniciais do Firebase.
A Figura 4.9 exemplifica a estrutura de como os dados são gravados no banco de
dados em tempo real do Firebase.
atualiza e apaga dados do banco de dados e ainda conta com consultas personalizadas
para recuperar informação da base de dados. A versão utilizada do Pyrebase é a 3.0.27.
Quanto a biblioteca PyFCM também oferece uma interface com o Firebase, porém neste
caso com o serviço FCM, que é utilizado para o envio de notificações ao aplicativo móvel.
A versão utilizada neste trabalho é a 1.4.3.
A instalação das bibliotecas referenciadas anteriormente é feita através do ge-
renciado de pacotes do Python, o pip [33]. Um gerenciador de pacote é executado por
linha de comando, e pode instalar ou remover programas, no caso do Python as bibliote-
cas. A versão do pip utilizada é a 9.0.1 e os comandos para instalação são encontrados na
Tabela 4.3.
Tabela 4.3: Comandos para instalar pacotes no Python utilizando
o pip
Comando Pacote Descrição
pip install pyrebase Pyrebase Instalação da biblioteca
pip install pyfcm PyFCM Instalação da biblioteca
pip install flask Flask Instalação do microframework
18 return json
ou abaixo do normal. A Tabela 4.6 exemplifica como é feito a analise por intervalos dos
dados.
Tabela 4.6: intervalos de comparação para definir situações da
saúde
Intervalo de
Variável analisada Situação da Saúde
Comparação
BPM Maior ou igual a 160 Frequência cardíaca acima do normal
Menor ou igual a 40 Frequência cardíaca abaixo do normal
Igual a 0 Frequência cardíaca não detectada
Temperatura Maior ou igual a 37,4 Temperatura Corporal acima do normal
Menor ou igual a 34 Temperatura Corporal abaixo do normal
Além das comparações mencionadas que são feitas por intervalos, é realizado
o cálculo da mediana dos últimos 60 dados anteriores relacionados ao BPM, e feito
a comparação com cada valor capturado da frequência cardíaca. Os últimos 60 BPM
são relacionados a cerca de 3 minutos de monitoramento, pois os dados são gravados
no banco em média a cada 3 segundos, ou seja, são cerca de 20 dados gravados por
minuto, considerando o atraso que pode ocorrer entre a captura dos dados pelo dispositivo
embarcado, o envio para Internet e o armazenamento no banco de dados. Com essa
comparação é possível verificar se o BPM está acima ou abaixo da mediana considerando
a própria pessoa, buscando uma análise que indique possíveis riscos, com o intuito de
gerar alertas para complicações cardíacas. A mediana é escolhida nesta situação, pois
diferentemente da média, ela não é influenciada por anomalias nos dados.
Caso haja algum problema identificado nessa analise que foi exposta anterior-
mente, em cada um dos casos é gerado uma notificação de alerta para o usuário, podendo
gerar mais de uma ao mesmo tempo, pois são feitas de forma individual.
Quando criado um novo projeto no Ionic, por padrão deve-se escolher uma
estrutura para as páginas e o nome do projeto. Para este projeto a estrutura definida foi a
tabs e o nome como mirsi-app. A Figura 4.14 mostra a estrutura padrão do Ionic que será
seguida para desenvolvimento deste aplicativo.
4.7 Desenvolvimento do Aplicativo Móvel 62
Depois da criação das páginas no projeto, como ficou a estrutura pode ser
conferido na Figura 4.15. Cada nível principal do projeto é uma pasta, que contém
arquivos ou subpastas.
A pasta app é a principal, contém os arquivos de configuração inicial da aplicação
e as declarações de todas bibliotecas e plugins utilizados no desenvolvimento. A assets
é direcionada para armazenamento de imagens que são utilizadas no aplicativo. A pasta
domain é uma pasta criada com a finalidade de armazenar arquivos referente as principais
funcionalidade da aplicação, onde podem ser utilizados por vários outros arquivos, uma
4.7 Desenvolvimento do Aplicativo Móvel 63
forma de centralizar e reaproveitar código. A pasta pages contém as páginas que compõem
a aplicação, conforme descrito anteriormente, com exceção para a pasta tabs que é
referente ao design que é usado pelas outras páginas.
tipos dos gráficos são os mais variados, porém para este projeto, foi escolhido o gráfico
de linha para mostrar o BPM e para a temperatura corporal o de barra, os dois possuem
uma boa visualização e compreensão dos dados.
O resumo das bibliotecas instaladas e utilizadas no projeto pode ser conferido na
Tabela 4.9.
Tabela 4.9: Resumo das bibliotecas utilizadas no projeto
Biblioteca Versão Descrição
AngularFire2 5.0.0 Manipulação de dados com o Firebase.
ChartJS 2.7.1 Criação de gráficos personalizados.
indicadas conforme análise dos dados, todas apresentadas com os respectivos horários
da medição. A figura 5.3 mostra com detalhes a página de histórico.
A última página do aplicativo, é o perfil de usuário, que apresenta os dados
do paciente que foram cadastrados anteriormente e tem a possibilita de personalizar o
aplicativo, através de uma imagem. É possível realizar a captura da imagem com a câmera
do smartphone e salvar no aplicativo. É a mesma foto que pode ser visualizada na página
dashboard. A figura 5.4 mostra a tela de perfil com os dados cadastrado e foto adicionada.
Apesar de alguns dados que estão acima ou abaixo da média, é fácil notar que
a maior parte do tempo o sensor faz a leitura entre 50 e 100 BPM, o que corresponde a
dados aceitáveis para as condições no momento do teste. Uma característica importante é
que o sistema respondeu rapidamente as alterações dos dados do sensor, gerando alertas
para os casos.
No mesmo dia, ainda é possível realizar a análise dos dados da temperatura cor-
poral. O gráfico da Figura 5.7 mostra os dados coletados durante o período de monitora-
mento. Nota-se que o valor da temperatura permanece constante em cerca de 36 o C em
todo o tempo. Valores menores ocorreram quando o sensor não estava totalmente em con-
tato com o corpo, como observado é um fato que está ligado diretamente a eficiência dos
sensores. É possível concluir que mesmo o sensor tratando-se especificamente para de-
tectar a temperatura ambiental, quando em contato com o corpo corretamente, consegue
realizar de forma satisfatória a leitura da temperatura corporal de uma pessoa.
No dia 2 do EC1, após realizar uma correção na fixação dos sensores no corpo,
é possível notar um ganho na leitura dos dados da frequência cardíaca. Neste dia os
batimentos ficaram entre 40 e 100 BPM. Um grande ganho é observado, conforme
5.3 Análise dos Estudos de Casos 73
mostrando na Figura 5.8. Os dados ficaram dentro do limite real dos batimentos de uma
pessoa, notando pouca interferência e inconsistências no momento da leitura por parte do
sensor.
Ainda foi plotado o gráfico com todos os dados do dia 1 e 2, onde no dia 1 é
simulado as quedas buscando testar a biblioteca que não obteve sucesso na detecção das
quedas, que também foi descrita na seção 4.4 e no dia 2 com intuito de encontrar padrões
na aceleração dos eixos do acelerômetro que caracterizassem uma queda. É possível
notar no gráfico da Figura 5.10 que o comportamento ocorre conforme mencionado
anteriormente com a análise dos dados apenas no dia 2, confirmando que há um padrão
de comportamento do acelerômetro para esta situação.
como "Situação Regular". A Figura 5.14 mostra como ficou a tela de modo parcial das
situações na página de histórico do aplicativo móvel no momento da realização do EC2.
5.4 Notificações
O objetivo desta seção é mostrar os resultados obtidos com as notificações que
chegam para o usuário do aplicativo móvel em situações adversas da saúde do idoso.
Para cada situação como frequência cardíaca alta ou baixa conforme intervalo, acima ou
5.4 Notificações 77
abaixo da mediana e ainda a sua ausência, temperatura corporal alta ou baixa e quedas
detectadas é gerado uma notificação para o usuário, com o objetivo de alertar o familiar
ou cuidador, para que possa tomar alguma providencia relacionado a situação. Em toda
notificação que é chegada no smartphone pelo aplicativo móvel, há um alerta do vibracall,
chamando a atenção e reforçando a chegada da notificação. Para se chegar ao resultado de
cada notificação, com o objetivo de validar os resultados, foram simulados alguns dados
como teste.
A Figura 5.15 mostra a notificação relacionada à frequência cardíaca, são três
notificações diferentes. A primeira quando o BPM esta muito baixo, outra para muito alto
e a última quando não é detectado BPM no paciente.
[1] A DEGBITE , E. Pyfcm: Python client for fcm - firebase cloud messaging (android,
ios and web). https://github.com/olucurious/PyFCM, 2018. [Acesso em 19
de janeiro de 2018].
[2] A KYILDIZ , I. F.; WANG , X. A survey on wireless mesh networks. IEEE Communi-
cations magazine, 43(9):S23–S30, 2005.
[4] A MINI , A.; B ANITSAS , K.; C OSMAS , J. A comparison between heuristic and
machine learning techniques in fall detection using kinect v2. In: Medical
Measurements and Applications (MeMeA), 2016 IEEE International Symposium on,
p. 1–6. IEEE, 2016.
[6] A MPED, P. S. The Best Way to Get Started with your PulseSen-
sor and Arduino. https://github.com/WorldFamousElectronics/
PulseSensorStarterProject, 2017. [Acesso em 09 de novembro de 2017].
[9] B ANULEASA , S.; M UNTEANU, R.; RUSU, A.; TON Ţ , G. Iot system for monitoring
vital signs of elderly population. In: Electrical and Power Engineering (EPE), 2016
International Conference and Exposition on, p. 059–064. IEEE, 2016.
Referências Bibliográficas 82
[15] B OURKE , A. K.; K LENK , J.; S CHWICKERT, L.; A MINIAN , K.; I HLEN , E. A.; M ELLONE ,
S.; H ELBOSTAD, J. L.; C HIARI , L.; B ECKER , C. Fall detection algorithms for real-
world falls harvested from lumbar sensors in the elderly population: a machine
learning approach. In: Engineering in Medicine and Biology Society (EMBC), 2016
IEEE 38th Annual International Conference of the, p. 3712–3715. IEEE, 2016.
[17] C HILDS -M AIDMENT, J. Pyrebase: A simple python wrapper for the firebase api.
https://github.com/thisbejim/Pyrebase, 2017. [Acesso em 19 de janeiro de
2018].
[18] C HIUCHISAN , I.; C HIUCHISAN , I.; D IMIAN , M. Internet of things for e-health: An
approach to medical applications. In: Computational Intelligence for Multimedia
Understanding (IWCIM), 2015 International Workshop on, p. 1–5. IEEE, 2015.
[22] DAVIS , M.; A LLEMANG , D.; C OYNE , R. Wonderweb deliverable d25: Evaluation
and market report. IST Project, 33052, 2001.
[29] E AST, D. Angularfire: The official library for firebase and angular. https:
//github.com/angular/angularfire2, 2017. [Acesso em 27 de janeiro de 2018].
[39] G RISS , M. L. Software reuse architecture, process, and organization for busi-
ness success. In: Computer systems and software engineering, 1997., proceedings
of the eighth israeli conference on, p. 86–89. IEEE, 1997.
[46] G UBBI , J.; B UYYA , R.; M ARUSIC, S.; PALANISWAMI , M. Internet of things (iot): A
vision, architectural elements, and future directions. Future generation computer
systems, 29(7):1645–1660, 2013.
Referências Bibliográficas 85
[47] G UIDE , A. Getting started with the lilypad arduino, lilypad arduino sim-
ple and lilypad arduino simple snap. https://www.arduino.cc/en/Guide/
ArduinoLilyPad, 2017.
[57] L I , Q.; YAO, C. Real-time concepts for embedded systems. CRC Press, 2003.
[58] L OYOLA F ILHO, A. I. D.; L EITE M ATOS , D.; G IATTI , L.; A FRADIQUE , M. E.; V IANA P EI -
XOTO, S.; L IMA -C OSTA , M. F. Causas de internações hospitalares entre idosos
brasileiros no âmbito do sistema único de saúde. Epidemiologia e serviços de
saúde, 13(4):229–238, 2004.
[62] M ELL , P.; G RANCE , T.; OTHERS . The nist definition of cloud computing. 2011.
[69] N O SQL. ORG . Your Ultimate Guide to the Non-Relational Universe! http:
//nosql-database.org/, 2017. [Acesso em 14 de dezembro de 2017].
[70] O LIVEIRA , S. Internet das coisas com esp8266, arduino e raspberry pi. São
Paulo: Novatec, 2017.
[73] P INTO, S.; C ABRAL , J.; G OMES , T. We-care: An iot-based health care system for
elderly people. In: Industrial Technology (ICIT), 2017 IEEE International Conference
on, p. 1378–1383. IEEE, 2017.
[79] S ILVA , V. A. P. D.; B OTTARO, M.; J USTINO, M. A.; R IBEIRO, M. M.; L IMA , R. M.;
DE O LIVEIRA , R. J. Freqüência cardíaca máxima em idosas brasileiras: uma
comparação entre valores medidos e previstos. Arq Bras Cardiol, 88(3):314–20,
2007.
[82] S UGATHAN , A.; R OY, G. G.; K IRTHYVIJAY, G.; T HOMSON , J. Application of arduino
based platform for wearable health monitoring system. In: Condition Assessment
Techniques in Electrical Systems (CATCON), 2013 IEEE 1st International Conference
on, p. 1–5. IEEE, 2013.