Como fazer dispositivos para a Internet das Coisas usando Raspberry e programando em Python. Além disso, disponibilizar integrações Web a partir do Node.js e o Express integrados ao Python.
Trabalho realizado no âmbito da disciplina de HGP, no ano letivo de 2013-2014, pela Inês Fernandes e o João Silva, alunos da turma G, do 6º ano, da Escola E.B 2,3 de Santo António, em Faro.
Apresentação criada em 2017.2 para as aulas de Lógica de Programação e Algoritmos; e Programação de Computadores.
Apresenta os operadores lógicos, relacionais.
Trabalho realizado no âmbito da disciplina de HGP, no ano letivo de 2013-2014, pela Inês Fernandes e o João Silva, alunos da turma G, do 6º ano, da Escola E.B 2,3 de Santo António, em Faro.
Apresentação criada em 2017.2 para as aulas de Lógica de Programação e Algoritmos; e Programação de Computadores.
Apresenta os operadores lógicos, relacionais.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
Palestra apresentada pelo Prof. Rodrigo Santa Maria sobre Boas Práticas em Segurança da Informação, durante a Semana de Empreendedorismo da UNIFEOB, em parceria com o SEBRAE SP, no dia 30/09/2014.
Apresentando um possível caminho para quem já é desenvolvedor C# e tem vontade de se aventurar no mundo IoT mas fica desanimado com a quantidade de novas tecnologias que precisa aprender.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
Palestra apresentada pelo Prof. Rodrigo Santa Maria sobre Boas Práticas em Segurança da Informação, durante a Semana de Empreendedorismo da UNIFEOB, em parceria com o SEBRAE SP, no dia 30/09/2014.
Apresentando um possível caminho para quem já é desenvolvedor C# e tem vontade de se aventurar no mundo IoT mas fica desanimado com a quantidade de novas tecnologias que precisa aprender.
IoT – Internet of Things. Do Básico ao Hello World!Rodolfo Cruz
Apresentação básica sobre Internet das Coisas(IoT - Internet Of Things) e as principais tecnologias envolvidas.
Um pouquinho sobre Arduino e Raspberry PI, finalizando com um projeto no Arduino que faz leitura da temperatura ambiente e imprime em um Display LCD 16x2.
Palestra ministrada para falar sobre a internet das coisas.
Passando sobre pequena historia da sua criação, ate no impacto que ela vai ocasionar no plano de negocio de empresas, atuais.
KNoT - Uma plataforma de IoT interoperável para o BrasilTiago Barros
KNoT é uma meta-plataforma de IoT open source, com foco em interoperabilidade. Seu objetivo é oferecer uma plataforma fim a fim que conecte as plataformas de IoT existentes para permitir que essas plataformas conversem entre si.
Acompanhe a palestra em video: https://www.youtube.com/watch?v=-7COj1Qrjb0
Definição do que é a Internet das Coisas, mostrar que se refere a revolução da tecnologia e mostrar alguns equipamentos que torna possível dar inicio ao mundo da internet das coisas, mostrar também que é barato criar projetos e conecta-los na internet.
Na palestra realizada no X Simposio de Januaria, Thiago e Douglas apresentaram sobre as novas tecnologias disruptivas que conectam o mundo e permitem com que novas formas de inteligencia sejam criadas.
O processo de entrega de software envolve várias etapas e a participação de todas as áreas de uma empresa: do comercial ao desenvolvimento. Com o amadurecimento da entrega contínua de software, surgiu o termo DevOps que destina-se a descrever uma nova cultura para colaboração de todas as equipes na entrega do software. Essa palestra destina-se a abordar os princípios da entrega contínua e as práticas utilizadas em DevOps.
Roteiro
- O que é Entrega Contínua e DevOps?
- O que é Integração Contínua?
- Erros Comuns em Entrega de Software;
- Princípios de Entrega Contínua;
- Práticas em Arquitetura de Software;
A Web Semântica (ou Web 3.0), uma extensão da Web convencional, surgiu com o propósito de suprir a necessidade de processamento e interpretação do conteúdo presente na Web por computadores, através de processos automatizados. Proposta por Berners-Lee, Hendler e Lassila em 2001, a Web Semântica possui mecanismos para tratar semanticamente a informação. Os recursos presentes na Web são ligados através de links. Com a adição de semântica nessas ligações, cada uma pode representar uma forma de relacionamento entre dados, contextualizando-os. Os relacionamentos semânticos tornam possível o processamento do significado das palavras em seu contexto. Esta palestra destinasse a apresentar as características e conceitos da Web Semântica e como utiliza-la em conjunto com aplicações da Web Social (2.0), como Redes Sociais Online, através da linguagem PHP.
Palestra realizada no FISL 11, em Porto Alegre, abordando os conceitos da Web Semântica, suas novidades, tecnologias empregadas e empresas que já estão utilizando-a.
Palestra ministrada por mim e pelo Marcelo Akira no VI Forum Goiano de Software Livre. Aborda o que é ORM e como utilizar Doctrine para abstrair a camada de dados da sua aplicação.
Palestra apresentada no CEPA em Anápolis-GO por mim e o Almir Neto, mostrando a cena tecnológica em que o PHP encontra-se, e o que podemos esperar para o futuro.
Palestra ministrada no CONAPHP/CONISLI de 2008 explicando como funciona o padrão de arquitetura Model-View-Controller, em PHP, sem uso de frameworks. É tambem analisada a integração deste com AJAX, de forma simples.
Palestra apresentada no V FGSL/I SGSL, que aconteceu em maio de 2008, sobre a API de Mapas do Google. São discritas as funcionalidades disponiveis nela, bem como links para mais informações à respeito.
Slides de oficina sobre o desenvolvimento orientado a objetos com PHP, ministrado em abril de 2007 no FLISOL-GO. São apresentados conceitos como Classes, Objetos, Abstração, Herança, Polimorfismo, Encapsulamento e Interfaces, entre outros.
Palestra ministrada no V FGSL/I SGSL em maio de 2008 sobre os principais padrões de desenvolvimento utilizados para web e seus usos no padrão de arquitetura MVC.
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
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