Escolar Documentos
Profissional Documentos
Cultura Documentos
SERVICES.
Rio de Janeiro
Julho 2017
I
INTERNET DAS COISAS UTILIZANDO RASPBERRY PI 3 E AMAZON WEB
SERVICES.
Aprovada por:
________________________________________________
________________________________________________
JULHO DE 2017
II
Gonzalez, Eduardo Felipe
III
Resumo da Monografia apresentada UCP como parte dos requisitos necessrios para a
obteno do grau de Especialista.
Julho/2017
RESUMO
O termo Internet das coisas (do ingls Internet of Things ou IoT) refere-se a uma
revoluo tecnolgica que pode ser a prxima evoluo da internet e est cada vez mais
presente em nosso cotidiano. Entender esse conceito e o impacto que ele pode causar no
mundo em que vivemos, de extrema importncia para estarmos preparados para as
novas oportunidades que surgiro, dessa forma, o objetivo desse estudo proporcionar o
entendimento sobre IoT, atravs de uma aplicao simples e de fcil implementao
utilizando um sensor de vibrao SW-420 conectado a plataforma Raspberry Pi 3
utilizando o sistema operacional Raspbian (Linux), se comunicando pela porta ethernet
com a Amazon Web Services (AWS), plataforma de servios em nuvem segura,
oferecida pela Amazon, que ser responsvel por receber e armazenar todas as vibraes
identificadas pelo sensor em um banco de dados disponibilizado pela prpria empresa,
assim, os dados podem ser exibidos atravs de um grfico em uma pgina web esttica
que poder ser acessada por qualquer pessoa de qualquer lugar.
IV
Abstract of Monograph presented to UCP as a partial fulfillment of the requirements for
the degree of Specialist
July/2017
ABSTRACT
The acronym IoT Internet of Things refers to a technological revolution that can be the
next evolution of the internet and is increasingly present in our daily lives. Understanding
this concept and the impact it can cause in the world we live is extremely important to be
prepared for new opportunities that will come up, so the object of this study is to provide
an understanding of IoT through a simple and easy application using a SW-420 vibration
sensor connected to the Raspberry Pi 3 platform running the Raspbian (Linux)
operational system, communicating via Ethernet port with Amazon Web Services
(AWS), a secure cloud services platform offered by Amazon, which will be responsible
for receiving and storing all the vibrations identified by the sensor in a database made
available by the own company, so the data can be displayed through a graphic on a static
web page that can be accessed by anyone from anywhere.
V
INTERNET DAS COISAS UTILIZANDO RASPBERRY PI 3 E AMAZON WEB
SERVICES
Rio de Janeiro
Julho 2017
VI
NDICE DE FIGURAS
VII
Figura 32 - Dados armazenados na tabela criada no DynamoDB ..................................... 40
Figura 33 - Amazon S3...................................................................................................... 42
Figura 34 - Pgina web esttica ......................................................................................... 42
Figura 35 - Fazendo os arquivos se tornarem pblicos ..................................................... 43
Figura 36 - Pgina Web exibindo os resultados registrados pelo sensor SW-420 ............ 44
VIII
NDICE DE ABREVIATURAS E SIGLAS
IX
SUMRIO
1 INTRODUO ........................................................................................................ 11
3 DESENVOLVIMENTO .......................................................................................... 28
5 CONCLUSO .......................................................................................................... 45
6 BIBLIOGRAFIA ...................................................................................................... 46
7 ANEXO ..................................................................................................................... 47
8 APNDICE ............................................................................................................... 48
X
1 INTRODUO
Pessoas
Animais e Ecossistema Natural
Localizao (de objetos)
Informaes de tempo (de objetos)
Estado (de objetos)
Baseado no grande impacto econmico global que a Internet das Coisas ir causar
e nos benefcios que ir trazer como: facilitar o acesso as informaes, possibilidade de
economia de energia, permitir o acompanhamento dos aspectos de sade entre outros, foi
desenvolvido este trabalho, com a finalidade de explorar mais o tema, atravs de uma
abordagem prtica, com a utilizao do Raspberry Pi 3 e do Amazon Web Services, de
modo que fosse possvel passar por todos os pontos necessrios para se construir um
sistema utilizando o conceito da IoT.
12
1.1 OBJETIVO
1.2 MOTIVAO
A motivao desse trabalho deve-se ao fato do tema Internet das Coisas ter sido
bastante abordado nas aulas de Automao e por ser um assunto que a mdia vem falando
muito ao longo dos anos, apenas para ilustrar, ao procurar pela palavra IoT no Google
Trends, percebe-se que ao longo dos ltimos cinco anos a busca por esse tipo de
conhecimento aumentou muito e o Brasil figura entre os 30 pases que mais se interessam
por este contedo, aparecendo na vigsima posio.
Figura 2 - Busca pela sigla "IoT" registrada pelo Google Trends nos ltimos 5 anos
13
Figura 3 - Busca pela sigla "IoT" registrada por regio no Google Trends
14
2 METODOLOGIA E FUNDAMENTAO TERICA
A pesquisa a ser realizada neste trabalho pode ser classificada como bibliogrfica,
pois baseada em livros e alguns ebooks que tratam do tema, e em experimentos
realizados por outros pesquisadores divulgados na internet.
15
Embora IoT seja uma nova tecnologia, acredita-se que isso trar uma grande
mudana na histria da computao. Sensores incorporados em automveis, implantes
para monitoramento do corao, transponders de biochip e sistemas de termostato
inteligente so exemplos disso. possvel que tais dispositivos sejam feitos sob medida
para atender s necessidades do negcio. A expectativa que os dispositivos IoT estejam
em condies de se comunicar com os humanos, assim como acontece com os
dispositivos do mundo real. Os dispositivos IoT tambm devem ter sensores, e estes so
esperados para capturar dados, como taxa de pulso, temperatura do corpo e eles devem
transmitir esses dados. Os dispositivos devem ser capazes de tomar decises e exercer a
computao de controle. Acredita-se que os controladores sero usados com o propsito
de mudar os dispositivos. Os dispositivos devem ter tambm a capacidade de armazenar
dados.
16
Dispositivos de Baixo Consumo: Os dispositivos de baixo consumo vo
funcionar por mais tempo, e alguns dispositivos, como os solares, sero
mesmo auto-suficientes.
suficientes.
Computao em Nuvem: A IoT conecta bilhes de dispositivos e sensores,
criando aplicativos novos e inovadores. A fim de suportar estas novas
aplicaes, uma plataforma segura, gil e adaptvel, essencial. A
computao em nuvem uma das plata
plataformas que permitem
ermitem apoiar a IoT,
IoT
atravs do seu armazenamento distribudo, poder de processamento e
capacidade de ampliao.
Melhor Segurana e Privacidade: vo permitir que o canal de comunicao
seja de confiana. Dados crticos de negcio podem ser passados por
criptografia
iptografia ou por cdigo de autenticao MAC (Media
Media Access Control),
Control
protegendo a confidencialidade e autenticidade dos dados de transaes. Os
protocolos de segurana da Internet das Coisas ainda esto em evoluo.
Com o IPv6, o suporte IPsec (Protocolo dee Segurana para redes IP) estar
integrado na arquitetura do protocolo e portanto as conexes podero ser
protegidas ao se comunicar com outros dispositivos IPv6
IPv6.
17
2.2.1.2 ESTRUTURA DA TECNOLOGIA IOT
18
As arquiteturas para grandes implantaes do IoT continuam a evoluir rapidamente.
H sempre tradeoffs entre velocidade, durabilidade, custos e manuteno operacional
para uma vasta gama de itens com sensores. Estamos familiarizados com os recursos de
processamento e armazenamento em nuvem, mas trazer dados de volta nuvem para
processar pode no ter os requisitos de velocidade necessrios. s vezes, estes so
processados no prprio dispositivo, mas s vezes os dados e os eventos precisam ser
coordenados entre os itens. Ento, um novo nvel chamado "nevoeiro" est sendo
desenvolvido como uma camada de tecnologia entre "coisas" e a nuvem. O que voc
pode contar que o custo, a capacidade e a adequao operacional continuaro em um
ciclo de melhoria acentuado em todas as reas da cadeia de tecnologia IoT. Embora a
construo e a integrao da tecnologia sempre sejam difceis, o modelo de negcio e a
mudana de negcios so onde o valor real e os desafios sempre aumentaro (Fig. 6).
2.2.2 RASPBERRY PI
Fonte: blog.fazedores.com
Disponvel em <http://blog.fazedores.com/introducao-ao-raspberry-pi-b/>, Acesso em
junho/2017
21
5. Porta Ethernet: Esta a porta de conexo com a rede via cabo. Para conectar,
basta ter um cabo do tipo UTP com conector RJ45. Como quase todas as pessoas
hoje possuem rede de conexo sem fio em casa, ento fica difcil ter um cabo
desses de fcil acesso para ser conectado a placa. Para resolver este problema,
s colocar um adaptador Wi-Fi USB externo.
6. Portas USB: Esta verso da Raspberry est equipada com 4 entradas USB. Essas
entradas servem para conectar mouses, teclados, adaptadores externos WI-Fi, pen
drive, entre outros. Vale lembrar que essas portas no so recomendadas para
carregar baterias de celulares. Se precisar usar algum perifrico que exija mais
energia da porta, coloque um HUB USB com alimentao externa.
7. GPIO: Esse modelo que estamos usando est equipado com 40 pinos GPIO, cuja
funo enviar e receber sinais digitais. Eles podem fazer leituras de botes e
interruptores ou enviar sinais digitais para acionar atuadores (Ex. Rels, LEDs,
Motores). Deve-se tomar cuidado para que essas portas no entrem em curto, pois
no existe um dispositivo de proteo, e isso poder danificar a placa, recomenda-
se o uso de jumpers para facilitar a utilizao dessas portas.
8. Status LED (Light Emitting Diode): Essas so as luzes que indicam o
funcionamento da placa. Esse modelo est composto com dois LEDs, um com a
cor vermelha e outro com a cor verde. O primeiro chamado de Power, cuja
funo indicar se a placa est recebendo alimentao acima de 3,3v. O segundo
conhecido como Act, e sua funo mostrar quando o carto de memria est
sendo acessado.
9. Entrada SD (Secure Digital) Card: possvel notar que, o Raspberry no possui
um disco rgido para armazenamento de dados. No entanto, utiliza-se no lugar
desse dispositivo, uma entrada para carto micro SD, o qual ter a funo de
guardar todos os dados que vao ser instalado no dispositivo. Recomenda-se o uso
de um micro SD classe 10, para tornar o a leitura mais rpida.
10. Entrada Display: Essa tem a funo de se conectar com pequenas telas de LCD
(Liquid Crystal Display) ou OLED (Organic Light Emitting Diode). A conexo
feita atravs de um flat cable de 15 pinos.
11. Porta de Alimentao: Essa porta possui um conector micro USB, e serve apenas
para alimentar a Raspberry. Ela necessita de uma fonte de alimentao com 5V de
tenso e no mnimo 2A de corrente, o ideal que ela fornea at 3A.
22
2.2.3 AMAZON WEB SERVICE (AWS IOT)
De acordo com a prpria pgina web da Amazon o AWS IoT uma plataforma de
nuvem gerenciada que permite que dispositivos interajam facilmente e com segurana
com aplicativos de nuvem e outros dispositivos. O AWS IoT pode comportar bilhes de
dispositivos e trilhes de mensagens, e pode processar e rotear essas mensagens para
endpoints da AWS e para outros dispositivos confiavelmente e com segurana. Com o
AWS IoT, as suas aplicaes podem acompanhar todos os seus dispositivos, como
tambm comunicar-se com eles, o tempo inteiro, mesmo quando eles no estiverem
conectados.
O AWS IoT facilita o uso de servios da Amazon Web Service, como AWS
Lambda, Amazon S3, Amazon DynamoDB, para criar aplicativos da IoT que, alm de
intervir sobre, renem, processam e analisam os dados gerados pelos dispositivos
conectados, sem que seja necessrio gerenciar nenhuma infraestrutura.
Fonte: aws.amazon.com/pt/iot-platform/
Disponvel em <https://aws.amazon.com/pt/iot-platform/>. Acesso em junho/2017
23
O AWS IoT disponibiliza autenticao e criptografia completa em todos os pontos
de conexo, de modo que os dados nunca sejam trocados entre os dispositivos e o AWS
IoT sem uma identidade comprovada. Alm disso, voc pode proteger o acesso a
dispositivos e aplicaes ao aplicar polticas com permisses granulares (Fig. 10).
Fonte: aws.amazon.com/pt/iot-platform/
Disponvel em <https://aws.amazon.com/pt/iot-platform/>. Acesso em junho/2017
Fonte: aws.amazon.com/pt/iot-platform/
Disponvel em <https://aws.amazon.com/pt/iot-platform/>. Acesso em junho/2017
24
O AWS IoT armazena o estado mais recente de um dispositivo de modo que ele
possa ser lido ou definido a qualquer momento, fazendo com que o dispositivo seja
exibido para as suas aplicaes como se ele estivesse on-line o tempo inteiro. Isso
significa que a sua aplicao pode ler o estado de um dispositivo mesmo quando ele
estiver desconectado, e tambm permite que voc defina o estado de um dispositivo e o
implemente quando o dispositivo se reconectar (Fig. 12).
Fonte: aws.amazon.com/pt/iot-platform/
Disponvel em <https://aws.amazon.com/pt/iot-platform/>. Acesso em junho/2017
2.2.4 DYNAMODB
25
2.2.5 AMAZON S3
O Amazon Simple Storage Service (Amazon S3) torna simples e prtico coletar,
armazenar e analisar dados, independentemente do formato. E tudo isso pode ser feito em
uma escala enorme. O S3 um armazenamento de objetos criado para armazenar e
recuperar qualquer quantidade de dados de qualquer local: sites e aplicativos mveis,
aplicativos corporativos, alm de dados de sensores ou dispositivos de IoT. Ele foi
concebido para disponibilizar uma alta durabilidade e tem vrios clientes que,
individualmente, armazenam bilhes de objetos e exabytes de dados. possvel us-lo
para armazenamento e distribuio de mdia, atuando como o "data lake" da anlise de
big data, como um destino de backup e como o nvel de armazenamento de aplicativos de
computao sem servidor. O produto ideal para a captura de dados, por exemplo, fotos
e vdeos feitos com dispositivos mveis, backups de dispositivos mveis e outros
dispositivos, backups de mquina, arquivos de log gerados por mquinas, streams de
sensores de IoT e imagens de alta resoluo, como tambm para disponibiliz-los para
aprendizado de mquina para outros Servios da AWS e aplicativos de terceiros para
anlise, tendncias, visualizao e outros tipos de processamento.
Outro ponto interessante que este protocolo possui implementaes nos mais
diversos sistemas operacionais, permitindo assim que dispositivos totalmente diferentes
"conversem" pela Internet.
26
2.2.7 SENSOR DE VIBRAO (SW-420)
Muitas aplicaes podem ser criadas para medir o nvel de vibrao, mas detectar
vibraes com preciso um trabalho difcil
difcil. O sensor SW-420 permite detect-las
detect com
pouco esforo, ele foi feito para detectar oscilao,, sendo que quando a intensidade de
vibrao est abaixo do valor ajustado, a sada do sensor fica em estado alto, e quando a
intensidade de vibrao ultrapassa a faixa, a sada fica em estado baixo.
O sensor de vibrao SW
SW-420 (Fig. 13) vem com placa de fuga que inclui o
comparador LM 393 e o potencimetro ajustvel para a seleo de limiar de sensibilidade
e o LED de indicao de sinal. A sada digital pode ser conectada diretamente a um
u
microcontrolador como Arduino ou at mesmo as por
portas
tas GPIO do Raspberry.
Fonte: www.theorycircuit.com
Disponvel em <http://www.theorycircuit.com/sw
http://www.theorycircuit.com/sw-420-vibration-sensor
sensor-arduino-
interface/>. Acesso em junho/2017
27
3 DESENVOLVIMENTO
28
3.1 HARDWARE
Fonte: raspberrypi.stackexchange.com
Disponvel em <https://raspberrypi.stackexchange.com/questions/47088/help
https://raspberrypi.stackexchange.com/questions/47088/help
https://raspberrypi.stackexchange.com/questions/47088/help-to-build-
mini-pci-e-add-on
on-card-for-raspberry-pi-2> Acessado em junho/2017.
junho/2017
29
A conexo entre os componentes feita atravs de jumpers e dever seguir o
esquema abaixo, mostrado na (Fig. 16)
30
Figura 17 - Funcionamento do Sensor SW-420
necessrio configura uma coisa na Amazons IoT para imitar o Raspberry Pi.
O objeto configurado na Amazon atua como um repositrio de nuvem para infomaes
que desejar armazenar no dispositivo IoT. A Amazon usa um conceito de "shadow" para
a "coisa" que pode armazenar os dados. Dessa forma, mesmo que o objeto fsico esteja
desligado ou off-line, ainda possvel enviar pacotes MQTT de dados e os dados sero
armazenados na cpia 'shadow' da 'coisa' na nuvem at que o dispositivo volte em linha,
momento em que a Amazon pode copiar os dados 'shadow' de volta para o dispositivo
fsico.
31
No menu esquerda, clique em 'Connect', depois 'Configuring a device', essa a
forma mais rpida para criar uma coisa pois a prpria interface te guiar durante todo
os processo.
32
De um nome para o device, preenchendo o campo Name (Fig. 19).
35
3.3 CONFIGURANDO O BANCO DE DADOS DYNAMODB
Figura 25 - DynamoDB
36
Aps a criao da tabela importante copiar as informaes localizadas no ARN
(Amazon Resource Name), pois ser importante para criar uma poltica de segurana para
ler os dados desta tabela para mostrar no grfico do site.
Volte para o Painel de controle do Amazon IoT novamente para o prximo passo
('Services' e 'AWS IoT' no menu superior do console). Agora uma regra ser criada no
IoT, que ajudar todos os dados a entrar em um determinado tpico para o DynamoDB
para armazenar em um arquivo de dados. Quando dados so transmitidos para uma
coisa IoT usando o MQTT, geralmente os dados so publicados para um tpico'. O
tpico pode ser qualquer coisa que quiser. Amazon IoT tem alguns nomes de tpicos
reservados que fazem certas funes, mas permitido postar pacotes MQTT para
qualquer nome de tpico que feito no local. Os dispositivos tambm podem ouvir um
tpico especfico para os dados que retornam da Amazon, etc. O MQTT realmente uma
maneira agradvel, poderosa e simples de interagir com dispositivos e servidores IoT.
37
No painel do IoT, clique em 'Rules' no lado esquerdo, depois clique no boto
'Create'.
Clique no boto Configure Action escolha a tabela DynamoDB que foi criada a
partir do menu suspenso 'Table Name. A Hash Key' deve ser 'id', do tipo 'STRING' e no
'Hash Key Value', digite '$ {topic ()}'. Isso significa que o nome ser armazenando o no
tpico como a chave principal. A 'Range Key' deve ser 'timestamp' com um tipo de
'NUMBER'. O 'Range Key Value' deve ser '$ {timestamp ()}'. Isso colocar o contedo
do timestamp no pacote neste campo, por ltimo, no 'Write message data to this column',
entre com 'payload'. Este o nome da coluna de dados que contm o objeto com o pacote
de dados JSON (JavaScript Object Notation) enviado do dispositivo. Por motivos de
segurana, temos de configurar uma funo IAM (Identity and Access Management) que
nos permitir adicionar dados tabela DynamoDB, isso bastante fcil de fazer basta
clicar no boto Create a new role'.
39
Figura 31 - Configurao da Ao
Dados Recebidos
40
3.4 HOSPEDAGEM EM NUVEM COM AMAZON S3
Uma simples pagina web foi configurada para ler as ltimas 24 horas de dados da
tabela criada no DynamoDB e exibi-los em um grfico de linha Chart.js agradvel que
nos mostra o grfico das vibraes registradas em relao ao tempo. O prprio site um
simples Bootstrap / jQuery, com um nico arquivo HTML (HyperText Markup
Language) e um nico arquivo refresh.js com o script para criar os grficos que podem
ser vistos no Apndice B e Apendice C respectivamente.
Como a soluo da Amazon foi usada em grande a parte do projeto, para hospedar o
site foi utilizado o Amazon S3, porm antes de publicar a pgina, foi necessrio
configurar um usurio Amazon IAM' descartvel com privilgios somente de leitura na
tabela de dados DynamoDB. Esta no a "melhor prtica", mas como a aplicao no
crtica, o impacto no relevante.
41
Figura 33 - Amazon S3
Clique no boto Create a bucket e siga os passos at ter o bucket criado, feito isso,
selecione o bucket criado, clique em Properties e habilite a opo Static Website
Hosting e defina os campos como mostra a figura (Fig. 34) dessa forma a Amazon
mostrar o endereo onde a sua pgina web ficar hospedada, esse projeto ficou
hospedado no endereo http://webiot.s3-website-us-west-2.amazonaws.com/
42
Na tela de Overview do bucket criado, adicione o arquivo HTML e javascript e
depois os torne pblico para que possam ser exibidos no endereo http://webiot.s3-
website-us-west-2.amazonaws.com/
43
4 RESULTADOS OBTIDOS
As informaes podem ser acessadas por celular ou por computador, porm quando
aberto pelo navegador Safari, o grfico no foi mostrado de maneira correta, para os
demais, o grfico foi exibido corretamente. O tempo de atualizao da pagina de trs
segundos, dessa forma, aps o sensor registrar uma vibrao, essa informao ser
mostrada no grfico aps trs segundos.
45
6 BIBLIOGRAFIA
DIAS, Renata Rampim de Freitas. Internet das Coisas sem mistrios: uma nova
inteligncia para os negcios So Paulo, SP: Netpress Books, 2016.
CORREA, Nuno. Internet das Coisas com SAP e HANA: Construa seu Caso de Uso
IoC com Raspberry Pi, Arduino Uno, HANA XSJS e SAPUI5. So Paulo, SP: UI5
Community Network, 2015
ROSSMAN, John. The Amazon Way on IoT: 10 Principles for Every Leader from
the World's Leading Internet of Things Strategies. Clyde Hill Publishing, 2016.
ETTER, David. IOT (Internet of Things) Programming: A Simple and Fast Way of
Learning IOT. 2016.
46
7 ANEXO
class Sw40(object):
"""docstring for Senal"""
def __init__(self, pin , led):
self.led = led
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.led,GPIO.OUT)
self.pin = pin
GPIO.setup(self.pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.add_event_detect(self.pin, GPIO.RISING,
callback=self.callback, bouncetime=1)
self.count = 0
def LedOn(self):
GPIO.output(self.led , 1)
def LedOff(self):
GPIO.output(self.led , 0)
def main():
sensor = Sw40(21,6)
try:
while True:
time.sleep(1)
print(sensor.count)
if sensor.count >=1:
sensor.LedOn()
else:
sensor.LedOff()
sensor.count = 0
except KeyboardInterrupt:
GPIO.cleanup()
if __name__ == '__main__':
main()
47
8 APNDICE
GPIO.add_event_detect(self.pin, GPIO.RISING,
callback=self.callback, bouncetime=1)
self.count = 0
def LedOn(self):
GPIO.output(self.led , 1)
def LedOff(self):
GPIO.output(self.led , 0)
48
# Custom MQTT message callback
def customCallback(client, userdata, message):
print("Received a new message aqui: ")
print(message.payload)
print("from topic: ")
print(message.topic)
print("--------------\n\n")
args = parser.parse_args()
host = args.host
rootCAPath = args.rootCAPath
certificatePath = args.certificatePath
privateKeyPath = args.privateKeyPath
useWebsocket = args.useWebsocket
clientId = args.clientId
topic = args.topic
# Configure logging
logger = logging.getLogger("AWSIoTPythonSDK.core")
logger.setLevel(logging.DEBUG)
streamHandler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -
%(message)s')
streamHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
# Init AWSIoTMQTTClient
myAWSIoTMQTTClient = None
if useWebsocket:
myAWSIoTMQTTClient = AWSIoTMQTTClient(clientId, useWebsocket=True)
myAWSIoTMQTTClient.configureEndpoint(host, 443)
myAWSIoTMQTTClient.configureCredentials(rootCAPath)
49
else:
myAWSIoTMQTTClient = AWSIoTMQTTClient(clientId)
myAWSIoTMQTTClient.configureEndpoint(host, 8883)
myAWSIoTMQTTClient.configureCredentials(rootCAPath, privateKeyPath,
certificatePath)
time.sleep(1)
loopCount += 1
timestamp = datetime.datetime.now()
print(' Vibration: {} Loop #
{:d}'.format(sensor.count,loopCount))
print(' Time: {} \n'.format(timestamp))
msg = '"datetime": "{}", "vibration": "{}", "device":
"{}"'.format(timestamp, sensor.count, sensor_sn)
msg = '{'+msg+'}'
myAWSIoTMQTTClient.publish(topic, msg , 1)
if sensor.count >=1:
sensor.LedOn()
else:
sensor.LedOff()
sensor.count = 0
except KeyboardInterrupt:
myAWSIoTMQTTClient.disconnect()
GPIO.cleanup()
50
APNDICE B Inde.html (Pgina web)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Projeto Final</title>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and
media queries -->
<!--[if lt IE 9]>
<script
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<br />
<div class="jumbotron text-center">
<h1>Projeto Final UCP</h1>
<p class="lead">Sensor de vibrao SW-420 usando IoT</p>
</div>
<div class="row">
<br />
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
<div class="col-sm-1 text-right">
<span class="label label-danger">Pico</span>
</div>
<div class="col-sm-9">
<span id="t-high" class="text-muted">(n/a)</span>
</div>
</div>
</div>
</div>
</div>
51
<div class="col-md-6">
<br />
</div>
<footer class="footer">
<pclass="text-right">Copyright © Supported by Devan Sabaratnam -
Blaze Business Software Pty Ltd</pclass>
</footer>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-
2.1.40.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"
></script>
<script src="refresh.js"></script>
</body>
</html>
52
APNDICE C refresh.js
AWS.config.region = 'us-west-2';
AWS.config.credentials = new AWS.Credentials('AKIAJCACZUVTSVD5G5NA',
'CrJKYNDeU4XaOgsQQyeqHXKVzZzG7oXWonm5DoZQ');
/* Create the context for applying the chart to the HTML canvas */
var tctx = $("#temperaturegraph").get(0).getContext("2d");
$(function() {
getData();
53
$.ajaxSetup({ cache: false });
setInterval(getData, 5000);
});
/* Makes a scan of the DynamoDB table to set a data object for the chart
*/
function getData() {
dynamodb.query(params, function(err, data) {
if (err) {
console.log(err);
return null;
} else {
}
});
}
54