27
Internet das Coisas (IoT) com Raspberry Pi, Python e Node.js 1

Internet das coisas (IoT) com Raspberry, Python e Node.js

Embed Size (px)

Citation preview

Page 1: Internet das coisas (IoT) com Raspberry, Python e Node.js

Internet das Coisas (IoT)

com Raspberry Pi, Python e Node.js

1

Page 2: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 3: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 4: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 5: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 6: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 7: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 8: Internet das coisas (IoT) com Raspberry, Python e Node.js

IoT com Raspberry Pi, Python e Node.js

Raspbian

Raspbian é o S.O. oficial do Raspberry

Baseado em Debian

8

Page 9: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 10: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 11: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 12: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 13: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 14: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 15: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 16: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 17: Internet das coisas (IoT) com Raspberry, Python e Node.js

IoT com Raspberry Pi, Python e Node.js

Integração com Node.js

17

Page 18: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 19: Internet das coisas (IoT) com Raspberry, Python e Node.js

IoT com Raspberry Pi, Python e Node.js

Exemplos de Dispositivos

19

Page 20: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 21: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 22: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 23: Internet das coisas (IoT) com Raspberry, Python e Node.js

IoT com Raspberry Pi, Python e Node.js

Exemplos de Projetos

Cluster de Raspberry Pipara processamento paralelo.

23

Page 24: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 25: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 26: Internet das coisas (IoT) com Raspberry, Python e Node.js

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

Page 27: Internet das coisas (IoT) com Raspberry, Python e Node.js

Obrigado por ter ficado até o fim… :)

Perguntas?

27

Otávio Calaça [email protected]