Upload
otavio-calaca-xavier
View
163
Download
4
Embed Size (px)
Citation preview
Internet das Coisas (IoT)
com Raspberry Pi, Python e Node.js
1
Obrigado por ter vindo!Otávio Calaça Xavier
Mestre em Ciência da ComputaçãoProfessor Universitário na UFG e no IFG
Consultor em Arquitetura de Software e [email protected]
2
IoT com Raspberry Pi, Python e Node.js
O que é Internet das Coisas (IoT)?
“Sensores e atuadores embutidos em objetos físicos que são conectados através de redes cabeadas ou sem fio,
frequentemente usando o mesmo protocolo utilizado por toda a Internet (IP)”
- McKinsey
3
IoT com Raspberry Pi, Python e Node.js
O que é a Internet das Coisas (IoT)?
Termo cunhado por Kevin Ashton para chamar atenção ao RFID em 1999
Se tornou popular com as novas plataformas facilitadas para desenvolvimento de software embarcado:
Arduino, Raspberry ...
Agora em uma nova roupagem: a Internet de Tudo (IoE - Internet of Everything)
4
IoT com Raspberry Pi, Python e Node.js
Mercado de IoT
Mercado Global de 4.8 trilhões de dólares em 2012.Previsão para $8.9 trilhões em 2020.
De acordo com a CISCO, em 2013 apenas 0.06% das coisas que podem ser conectadas, estão conectadas corretamente.
10B de coisas conectadas de um total de 1.5T passíveis de conexão.
Para 2020 estima-se 200B de coisas conectadas na Internet.
IPv6 suporta 3.4 * 10 ^ 38 endereços de internet340.000.000.000.000.000.000.000.000.000.000.000.000 de IPs
5
IoT com Raspberry Pi, Python e Node.js
Conhecendo o Raspberry Pi
Um computador completo com processador ARM de 4 núcleos com até 1GB de RAM
Do tamanho de um cartão de crédito
Em sua última versão (3 B) possui processadorde 64 bits, WiFi e Bluetooth nativos
Vários Sistemas Operacionais compatíveis
Preço: não mais de 35 dólares6
IoT com Raspberry Pi, Python e Node.js
Comunidade e Eventos
Raspberry Pi Brasil
Arduino Brasil
Robótica Brasil
Pequi Mecânico - UFG e GynBot - IFG
Fórum Latino-Americano de Hardware Livre
Olimpíada Brasileira de Robótica
7
IoT com Raspberry Pi, Python e Node.js
Raspbian
Raspbian é o S.O. oficial do Raspberry
Baseado em Debian
8
IoT com Raspberry Pi, Python e Node.js
Raspberry Pi - GPIOs
General-purpose input/output - entrada e saída para dispositivos eletrônicos.
Raspberry Pi A ou B possui 26 pinos, A+ e B+, Pi2, Pi3 e Pi0 possuem 40 pinos.
Comunicação via: I2C, SPI, UART
Suporta PWM- 1 porta em Hardware- qualquer porta viasoftware (DMA)
9
IoT com Raspberry Pi, Python e Node.js
Mecanismos de Comunicação
UART (Porta Serial)
Universal asynchronous receiver/transmitter
Conexão entre dois dispositivos
Requer a mesma taxa de dados configuradanas duas vias
Comunicação assíncrona (sem transmissão de clock)
10
IoT com Raspberry Pi, Python e Node.js
Mecanismos de Comunicação
SPI - Serial Peripheral Interface
MOSI - Master Out/Slave InMISO - Master In/Slave OutSCLK - Serial ClockSS/CS - Slave Select/Chip Select
Conexões relativamente rápidas, implementação simplificada.
Utiliza muitos pinos.11
IoT com Raspberry Pi, Python e Node.js
Mecanismos de Comunicação
I2C - Inter-Integrated Circuit
Requer apenas dois fios, independente do número de dispositivosconectados.
Utilizado para comunicações com muitos dispositivos em um barramento.
Pode conter mais de um Masterno mesmo barramento.
Comunicação síncrona baseada em um protocolo mais complexo.
12
IoT com Raspberry Pi, Python e Node.js
Bibliotecas
RPIO
Entrada e Saida, PWM e Interrupções GPIO.
Interrupções de Socket TCP.
Fácil utilização e boas funcionalidades.
Não suporta SPI nem I2C.
SpiDev para SPISMBus para I2C
13
IoT com Raspberry Pi, Python e Node.js
Bibliotecas
RPi.GPIO
Branch raiz do RPIO.
Alguns recursos a menos, outros implementadosde formas diferantes.
Compatível com CPython e PyPy
14
IoT com Raspberry Pi, Python e Node.js
Bibliotecas
WiringPi
Biblioteca em C.
Performance até 150 vezes maior que asbibliotecas do Python.
Mais verbosa.
Sintaxe semelhante à do Arduíno.
15
IoT com Raspberry Pi, Python e Node.js
Integração com Node.js
python-shell
Chamadas a scripts python.
Permite iniciar um script python e trocar mensagens entre python e nodejs.
Tratamento de erros para facilitarintegração.
16
IoT com Raspberry Pi, Python e Node.js
Integração com Node.js
17
IoT com Raspberry Pi, Python e Node.js
Integrações
Broker IoT - Máquina para Máquina
Desenvolvido em Node.js
Pode ser expandido facilmente.
18
IoT com Raspberry Pi, Python e Node.js
Exemplos de Dispositivos
19
IoT com Raspberry Pi, Python e Node.js
Vantagens e Desvantagens
Vantagens
Raspberry Pi é um computador completo, multiprocessado.
Pode fazer processamentos complexos e com paralelismo.
Pode disponibilizar vários mecanismos de integração, utilizando os protocolos da IoT (MQTT, CoAP).
20
IoT com Raspberry Pi, Python e Node.js
Vantagens e Desvantagens
Desvantagens
Por rodar um sistema operacional de propósito geral, não é tempo real.
Mesmo em C, não garante precisão do momento exato em que as operações serão executadas.
Consome mais energia que plataformas baseadas em microcontrolador(como Arduino).
21
IoT com Raspberry Pi, Python e Node.js
Exemplos de Projetos
Domótica.
Eletrodomésticos Inteligentes.
Drones e Robótica.
Automação Comercial e em eventos.
Gerenciamento remoto de qualquerdispositivo conectado.
22
IoT com Raspberry Pi, Python e Node.js
Exemplos de Projetos
Cluster de Raspberry Pipara processamento paralelo.
23
IoT com Raspberry Pi, Python e Node.js
Conclusão
Raspberry é uma plataforma barata e muito completa para desenvolvimento de dispositivos para a Internet das Coisas.
O Raspberry pode se comunicar de diversas formas como UART, I2C e SPI.
Existem uma série de bibliotecas em Python para trabalhar com dispositivos eletrônicos.
Raspberry não é tempo real e com isso não é recomendado para alguns tipos de aplicações.
24
IoT com Raspberry Pi, Python e Node.js
Cursos e Livros Indicados
Canal do Youtube - Alexander Baran-HarperPlaylist Raspberry Tutorials
The Raspberry Pi Platform and Python Programming for the Raspberry PiCoursera: https://www.coursera.org/learn/raspberry-pi-platform
Programando o Raspberry Pi: Primeiros Passos com PythonSimon Monk - Editora Novatec
25
IoT com Raspberry Pi, Python e Node.js
Referências e Links para Imagens
- http://www.psfk.com/2014/03/internet-of-things-infographic.html- https://pythonhosted.org/RPIO/- https://pypi.python.org/pypi/RPi.GPIO- https://github.com/extrabacon/python-shell- https://github.com/eclipse/ponte
- http://www.eletrodex.com.br/media/catalog/product/d/h/dht-11.png- http://sempreupdate.org/wp-content/uploads/2016/02/rpi1bplus.png- https://farm6.staticflickr.com/5554/14586499818_6dde3d1664_c.jpg- https://cdn-reichelt.de/bilder/web/xxl_ws/A300/RASP_PI_ZERO_06.png
26