SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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ção
Professor Universitário na UFG e no IFG
Consultor em Arquitetura de Software e DevOps
otaviocx@gmail.com
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 internet
340.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 processador
de 64 bits, WiFi e Bluetooth nativos
Vários Sistemas Operacionais
compatíveis
Preço: não mais de 35 dólares 6
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 via
software (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 configurada
nas 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 In
MISO - Master In/Slave Out
SCLK - Serial Clock
SS/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 dispositivos
conectados.
Utilizado para comunicações com muitos dispositivos em um barramento.
Pode conter mais de um Master
no 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 SPI
SMBus para I2C
13
IoT com Raspberry Pi, Python e Node.js
Bibliotecas
RPi.GPIO
Branch raiz do RPIO.
Alguns recursos a menos, outros implementados
de 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 as
bibliotecas 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 facilitar
integraçã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 qualquer
dispositivo conectado.
22
IoT com Raspberry Pi, Python e Node.js
Exemplos de Projetos
Cluster de Raspberry Pi
para 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-Harper
Playlist Raspberry Tutorials
The Raspberry Pi Platform and Python Programming for the Raspberry Pi
Coursera: https://www.coursera.org/learn/raspberry-pi-platform
Programando o Raspberry Pi: Primeiros Passos com Python
Simon 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
Obrigado por ter ficado
até o fim… :)
Perguntas?
27
Otávio Calaça Xavier
otaviocx@gmail.com

Contenu connexe

Similaire à IoT Raspberry Pi

Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasMarco Antonio Maciel
 
IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!Rodolfo Cruz
 
Interfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveisInterfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveisTiago Barros
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesFabio Souza
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Eronides Da Silva Neto
 
Computação Física e Internet das Coisas
Computação Física e Internet das CoisasComputação Física e Internet das Coisas
Computação Física e Internet das CoisasMichela Limaco
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoGlobalcode
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Dalton Valadares
 
KNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o BrasilKNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o BrasilTiago Barros
 
Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)Rogerio Alencar Filho
 
Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...
Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...
Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...Embarcados
 

Similaire à IoT Raspberry Pi (20)

Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das Coisas
 
IoT para Devs c#
IoT para Devs c#IoT para Devs c#
IoT para Devs c#
 
IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!
 
Internet das coisas
Internet das coisasInternet das coisas
Internet das coisas
 
Internet de Todas as Coisas (IoE)
Internet de Todas as Coisas (IoE)Internet de Todas as Coisas (IoE)
Internet de Todas as Coisas (IoE)
 
Linux Raspberry Pi
Linux Raspberry PiLinux Raspberry Pi
Linux Raspberry Pi
 
Interfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveisInterfaces fisicas para dispositivos moveis
Interfaces fisicas para dispositivos moveis
 
Bento Quirino Apresentação
Bento Quirino ApresentaçãoBento Quirino Apresentação
Bento Quirino Apresentação
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)
 
Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
Computação Física e Internet das Coisas
Computação Física e Internet das CoisasComputação Física e Internet das Coisas
Computação Física e Internet das Coisas
 
Raspberry Pi + Python
Raspberry Pi + PythonRaspberry Pi + Python
Raspberry Pi + Python
 
Apicon2018.pptx
Apicon2018.pptxApicon2018.pptx
Apicon2018.pptx
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0
 
KNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o BrasilKNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o Brasil
 
Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)
 
Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...
Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...
Tecnologias Disruptivas - Sistemas Embarcados - IoT - Inteligencia Artificial...
 
Arduino e a IOT
Arduino e a IOTArduino e a IOT
Arduino e a IOT
 

Plus de Otávio Calaça Xavier

Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeOtávio Calaça Xavier
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksOtávio Calaça Xavier
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a DecisãoOtávio Calaça Xavier
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionOtávio Calaça Xavier
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxOtávio Calaça Xavier
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPOtávio Calaça Xavier
 

Plus de Otávio Calaça Xavier (20)

Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizade
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social Networks
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHP
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
PHP: Atualidade e Tendências
PHP: Atualidade e TendênciasPHP: Atualidade e Tendências
PHP: Atualidade e Tendências
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and Induction
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Introdução à Google Maps API
Introdução à Google Maps APIIntrodução à Google Maps API
Introdução à Google Maps API
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com Ajax
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 

IoT Raspberry Pi

  • 1. Internet das Coisas (IoT) com Raspberry Pi, Python e Node.js 1
  • 2. Obrigado por ter vindo! Otávio Calaça Xavier Mestre em Ciência da Computação Professor Universitário na UFG e no IFG Consultor em Arquitetura de Software e DevOps otaviocx@gmail.com 2
  • 3. 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
  • 4. 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
  • 5. 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 internet 340.000.000.000.000.000.000.000.000.000.000.000.000 de IPs 5
  • 6. 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 processador de 64 bits, WiFi e Bluetooth nativos Vários Sistemas Operacionais compatíveis Preço: não mais de 35 dólares 6
  • 7. 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
  • 8. IoT com Raspberry Pi, Python e Node.js Raspbian Raspbian é o S.O. oficial do Raspberry Baseado em Debian 8
  • 9. 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 via software (DMA) 9
  • 10. 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 configurada nas duas vias Comunicação assíncrona (sem transmissão de clock) 10
  • 11. IoT com Raspberry Pi, Python e Node.js Mecanismos de Comunicação SPI - Serial Peripheral Interface MOSI - Master Out/Slave In MISO - Master In/Slave Out SCLK - Serial Clock SS/CS - Slave Select/Chip Select Conexões relativamente rápidas, implementação simplificada. Utiliza muitos pinos. 11
  • 12. 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 dispositivos conectados. Utilizado para comunicações com muitos dispositivos em um barramento. Pode conter mais de um Master no mesmo barramento. Comunicação síncrona baseada em um protocolo mais complexo. 12
  • 13. 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 SPI SMBus para I2C 13
  • 14. IoT com Raspberry Pi, Python e Node.js Bibliotecas RPi.GPIO Branch raiz do RPIO. Alguns recursos a menos, outros implementados de formas diferantes. Compatível com CPython e PyPy 14
  • 15. IoT com Raspberry Pi, Python e Node.js Bibliotecas WiringPi Biblioteca em C. Performance até 150 vezes maior que as bibliotecas do Python. Mais verbosa. Sintaxe semelhante à do Arduíno. 15
  • 16. 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 facilitar integração. 16
  • 17. IoT com Raspberry Pi, Python e Node.js Integração com Node.js 17
  • 18. 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
  • 19. IoT com Raspberry Pi, Python e Node.js Exemplos de Dispositivos 19
  • 20. 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
  • 21. 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
  • 22. 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 qualquer dispositivo conectado. 22
  • 23. IoT com Raspberry Pi, Python e Node.js Exemplos de Projetos Cluster de Raspberry Pi para processamento paralelo. 23
  • 24. 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
  • 25. IoT com Raspberry Pi, Python e Node.js Cursos e Livros Indicados Canal do Youtube - Alexander Baran-Harper Playlist Raspberry Tutorials The Raspberry Pi Platform and Python Programming for the Raspberry Pi Coursera: https://www.coursera.org/learn/raspberry-pi-platform Programando o Raspberry Pi: Primeiros Passos com Python Simon Monk - Editora Novatec 25
  • 26. 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
  • 27. Obrigado por ter ficado até o fim… :) Perguntas? 27 Otávio Calaça Xavier otaviocx@gmail.com