O documento apresenta um roteiro para um curso sobre Internet das Coisas (IoT) utilizando Arduino e NodeJS. O roteiro inclui conceitos sobre IoT, introdução ao NodeJS, projetos práticos e próximos passos. O objetivo é integrar NodeJS com Arduino por meio de projetos para conceituar IoT, JavaScript e NodeJS.
15. 2018 Criando CoisasInteligentes com Arduino e NodeJS 10
Apresentação1
Quem sou eu?
Bacharelado em
Ciência da Computação
(2002 – 2006)
Mestrado em
Engenharia Elétrica
(2007 – 2009)
Doutorado em
Engenharia Elétrica
(2010 – 2015)
18. 2018 Criando CoisasInteligentes com Arduino e NodeJS 13
Conceituar Internet das Coisas (IoT), JavaScript e NodeJS.
Como integrar NodeJS com Arduino por meio de projetos.
Objetivo
Apresentação1
26. 2018 Criando CoisasInteligentes com Arduino e NodeJS 21
Fritzing (modelagem dos circuitos)
http://fritzing.org/download/?donation=0
Softwares Utilizados
Apresentação1
27. 2018 Criando CoisasInteligentes com Arduino e NodeJS 22
Arduino IDE (programação)
https://www.arduino.cc/en/Main/Software
Softwares Utilizados
Apresentação1
28. 2018 Criando CoisasInteligentes com Arduino e NodeJS 23
Tinkercad (modelagem, programação e simulação)
https://www.tinkercad.com/
Softwares Utilizados
Apresentação1
29. 2018 Criando CoisasInteligentes com Arduino e NodeJS 24
NodeJS (programação)
https://nodejs.org/en/
Softwares Utilizados
Apresentação1
30. 2018 Criando CoisasInteligentes com Arduino e NodeJS 25
Arduino Uno ou equivalente + cabo USB
12 Leds Coloridos (3 cada cor)
Protoboard 800 pinos
Jumpers Macho-Macho, Macho-Fêmea e Fêmea-Fêmea
Sensor de Luminosidade LDR
Sensor de Temperatura e Umidade DHT11
LED RGB 5mm
Kit Oficina
Apresentação1
32. 2018 Criando CoisasInteligentes com Arduino e NodeJS 27
As tecnologias são parte essencial da comunidade e na vida do ser humano que já
não consegue se separar dela (COLOMBO, 2018).
A cada dia, novas ferramentas tecnológicas são
criadas visando os benefícios para a sociedade.
Avanço científico nas áreas de telecomunicação,
processamento de dados, redes de computadores e
armazenamento de informações.
Revolução Tecnológica
Conceitos sobre IoT2
34. 2018 Criando CoisasInteligentes com Arduino e NodeJS 28
Revolução Tecnológica
Conceitos sobre IoT2
Fim do século XX Fim do século XXI
35. 2018 Criando CoisasInteligentes com Arduino e NodeJS 29
Revolução Tecnológica
Conceitos sobre IoT2
Eniac (1946)
5.000 operações por segundo
36. 2018 Criando CoisasInteligentes com Arduino e NodeJS 29
Revolução Tecnológica
Conceitos sobre IoT2
Eniac (1946)
5.000 operações por segundo
Inteli9 (2017)
1 trilhão de operações por segundo
38. 2018 Criando CoisasInteligentes com Arduino e NodeJS 30
Revolução Tecnológica
Conceitos sobre IoT2
5150 PC (1981)
Arduino, Raspberry Pi 3,
Micro:Bit
39. 2018 Criando CoisasInteligentes com Arduino e NodeJS 31
Revolução Tecnológica
Conceitos sobre IoT2
HD de 5 MB (1956)
Toneladas
1 GB de dados = US$ 100 mil
40. 2018 Criando CoisasInteligentes com Arduino e NodeJS 31
Revolução Tecnológica
Conceitos sobre IoT2
HD de 5 MB (1956)
Toneladas
1 GB de dados = US$ 100 mil
Cartão SD 1TB (2016)
Gramas
1 GB de dados = centavos de dólar
57. 2018 Criando CoisasInteligentes com Arduino e NodeJS 42
O que os meus amigos pensam?
Conceitos sobre IoT2
The Big Bang Theory S01E09 The Cooper Hofstadter Polarization
https://www.youtube.com/watch?v=zqSymnuveDI
59. 2018 Criando CoisasInteligentes com Arduino e NodeJS 44
Internet das Coisas (Internet of Things – IoT) conecta objetos à Internet e promove a
comunicação entre usuários e dispositivos.
O que realmente é
Conceitos sobre IoT2
60. 2018 Criando CoisasInteligentes com Arduino e NodeJS 45
A Internet das Coisas emergiu dos avanços de várias áreas como sistemas
embarcados, microeletrônica, comunicação e sensoriamento.
Perspectiva Histórica
Conceitos sobre IoT2
61. 2018 Criando CoisasInteligentes com Arduino e NodeJS 46
1982: uma máquina de Coca-Cola informa seu estoque e também se as bebidas estão
geladas
Perspectiva Histórica
Conceitos sobre IoT2
62. 2018 Criando CoisasInteligentes com Arduino e NodeJS 47
1983: primeira patente sobre Radio-Frequency Identification (RFID)
Perspectiva Histórica
Conceitos sobre IoT2
63. 2018 Criando CoisasInteligentes com Arduino e NodeJS 48
1999: device to device comunication (D2D)
1999: IoT é utilizada no trabalho de Kevin Ashton
intitulado “I made at Procter & Gamble”.
IoT é associada ao uso da tecnologia RFID
Perspectiva Histórica
Conceitos sobre IoT2
64. 2018 Criando CoisasInteligentes com Arduino e NodeJS 49
Perspectiva Histórica
Conceitos sobre IoT2
IBM RFID Commercial - The Future Market (2006)
https://www.youtube.com/watch?v=eob532iEpqk
65. 2018 Criando CoisasInteligentes com Arduino e NodeJS 50
2005: IoT é relacionada a Redes de Sensores Sem Fio (RSSF) (do inglês Wireless
Sensor Networks – WSN)
Somente observa o sinal, mas
não necessariamente o identifica
a partir de vários objetos
Coleta de dados, processamento,
integração e roteamento.
Perspectiva Histórica
Conceitos sobre IoT2
66. 2018 Criando CoisasInteligentes com Arduino e NodeJS 51
2005: nasce o Arduino ($30) e o Movimento Maker
Perspectiva Histórica
Conceitos sobre IoT2
67. 2018 Criando CoisasInteligentes com Arduino e NodeJS 52
2008 e 2010: IoT ganha popularidade
2012: surge a Raspberry Pi ($35)
2013: Intel® cria Galileo, Edison e Joule
Perspectiva Histórica
Conceitos sobre IoT2
68. 2018 Criando CoisasInteligentes com Arduino e NodeJS 53
2013: NodeMCU
Perspectiva Histórica
Conceitos sobre IoT2
ESP8266 ($10) ESP32 ($11)
69. 2018 Criando CoisasInteligentes com Arduino e NodeJS 54
2016: Android Things
2016: Onion lança Omega2 ($5)
Perspectiva Histórica
Conceitos sobre IoT2
70. 2018 Criando CoisasInteligentes com Arduino e NodeJS 55
2016: IoT e Sistemas Ciber-Físicos (Indústria 4.0, por exemplo)
Equipamentos físicos controláveis e escaláveis que dependem profundamente da
computação, comunicação e controle a partir da informação adquirida na IoT
Perspectiva Histórica
Conceitos sobre IoT2
82. 2018 Criando CoisasInteligentes com Arduino e NodeJS 65
Conceitos sobre IoT2
Aplicações e Oportunidades
Fonte: Devarakonda et al. (2013)
83. 2018 Criando CoisasInteligentes com Arduino e NodeJS 66
Conceitos sobre IoT2
Aplicações e Oportunidades
Gestão de
Consumo de
Energia em Salas
de Aula
84. 2018 Criando CoisasInteligentes com Arduino e NodeJS 67
Conceitos sobre IoT2
Aplicações e Oportunidades
Detecção de
Intrusos e Envio de
Alertas Usando
Raspberry Pi
85. 2018 Criando CoisasInteligentes com Arduino e NodeJS 68
Conceitos sobre IoT2
Aplicações e Oportunidades
Amazon Go
https://www.youtube.com/watch?v=NrmMk1Myrxc
86. 2018 Criando CoisasInteligentes com Arduino e NodeJS 69
Conceitos sobre IoT2
Aplicações e Oportunidades
Echo Dot
https://www.youtube.com/watch?v=hPXS7rC1PWo
92. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 75
Introdução ao NodeJS3
JavaScript
É a linguagem de programação do HTML e da Web.
JavaScript e Java são completamente diferentes idiomas, tanto no conceito e
design.
JavaScript foi inventado por Brendan Eich, em 1995, e tornou-se um padrão ECMA
em 1997.
ECMA-262 é o nome oficial da norma. ECMAScript é o nome oficial da língua.
93. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 76
Introdução ao NodeJS3
JavaScript
94. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 77
Introdução ao NodeJS3
JavaScript
95. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 78
Introdução ao NodeJS3
NodeJS
É uma estrutura de servidor de código aberto.
Permite executar JavaScript no servidor.
Pode
Gerar páginas com conteúdo dinâmico
Criar, abrir, ler, escrever, apagar e fechar arquivos no servidor
Recolher dados do formulário
Adicionar, excluir, modificar dados em seu banco de dados
96. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 79
Introdução ao NodeJS3
NodeJS
Uma tarefa comum para um servidor web pode ser para abrir um arquivo no
servidor e retornar o conteúdo para o cliente.
PHP ou ASP lida com uma solicitação de arquivo:
Envia a tarefa de sistema de arquivos do computador.
Espera enquanto o sistema de arquivos abre e lê o arquivo.
Retorna o conteúdo para o cliente.
Pronto para lidar com o próximo pedido.
97. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 80
Introdução ao NodeJS3
NodeJS
Uma tarefa comum para um servidor web pode ser para abrir um arquivo no
servidor e retornar o conteúdo para o cliente.
Node.js lida com uma solicitação de arquivo:
Envia a tarefa de sistema de arquivos do computador.
Pronto para lidar com o próximo pedido.
Quando o sistema de arquivos abriu e ler o arquivo, o servidor retorna o conteúdo
para o cliente.
98. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 81
Introdução ao NodeJS3
NodeJS
Para gerenciar as dependências, o NodeJS utiliza o NPM (Node Package Manager)
É um repositório online para publicação de projetos de código aberto para o
Node.js;
É um utilitário de linha de comando que interage com este repositório online, que
ajuda na instalação de pacotes, gerenciamento de versão e gerenciamento de
dependências..
99. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 82
Introdução ao NodeJS3
100. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 83
Introdução ao NodeJS3
Configurando ambiente...
101. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 84
Introdução ao NodeJS3
Configurando ambiente...
Arduino IDE
NodeJS + NPM
Editor de Texto :)
Bibliotecas para NodeJS
102. 2018 Criando CoisasInteligentes com Arduino e NodeJS 85
Projeto 00 – Hello World
Hello World na linguagem NodeJS (console e
web)
Objetivo
Introdução ao NodeJS3
103. 2018 Criando CoisasInteligentes com Arduino e NodeJS 86
Projeto 00 – Hello World
Código
https://github.com/orlewilson/
feira-polo-digital-manaus-2018-nodejs-arduino/
01-hello-world-nodejs-console e 02-hello-world-nodejs-web
Introdução ao NodeJS3
104. 2018 Como Criar CoisasInteligentes com Arduino - Módulo 3 87
Introdução ao NodeJS3
105. 2018 Criando CoisasInteligentes com Arduino e NodeJS 88
Introdução ao NodeJS3
Como integrar NodeJS + Arduino?
Linguagem C/C++
Arduino
Linguagem JavaScript
NodeJS
106. 2018 Criando CoisasInteligentes com Arduino e NodeJS 89
Introdução ao NodeJS3
Como integrar NodeJS + Arduino?
Comunicação por meio da porta serial
107. 2018 Criando CoisasInteligentes com Arduino e NodeJS 90
Introdução ao NodeJS3
Como integrar NodeJS + Arduino?
Biblioteca Jonny-Five (NodeJS)
Framework para programar robôs usando JavaScript
Porta serial ou Firmata
108. 2018 Criando CoisasInteligentes com Arduino e NodeJS 91
Introdução ao NodeJS3
Como integrar NodeJS + Arduino?
Biblioteca Jonny-Five (NodeJS)
Firmata
É um protocolo para comunicação com microcontroladores a partir de
software em um computador, smartphone, tablet.
Pode ser implementado em firmware em qualquer arquitetura de
microcontrolador, bem como em software em qualquer pacote de software de
computador.
109. 2018 Criando CoisasInteligentes com Arduino e NodeJS 92
Introdução ao NodeJS3
Como integrar NodeJS + Arduino?
Biblioteca Jonny-Five (NodeJS)
Firmata
114. 2018 Criando CoisasInteligentes com Arduino e NodeJS 97
Projetos4
Projeto 01 – Ligar/desligar LED
Praticar vários projetos para ligar/desligar LED
Objetivo
116. 2018 Criando CoisasInteligentes com Arduino e NodeJS 99
Como integrar NodeJS + Arduino?
Carregar Firmata no Arduino
Projetos4
117. 2018 Criando CoisasInteligentes com Arduino e NodeJS 100
Projetos4
Projeto 01 – Ligar/desligar LED
Código
https://github.com/orlewilson/
feira-polo-digital-manaus-2018-nodejs-arduino /
03-projeto-01-led-Arduino, 04-projeto-01-led-nodejs,
05-projeto-01-led-nodejs-web e 06-projeto-01-led-nodejs-servico
119. 2018 Criando CoisasInteligentes com Arduino e NodeJS 102
Projetos4
Projeto 02 – Escolher cor usando LED RGB
Criar serviço para escolher cor de um LED RGB
Objetivo
120. 2018 Criando CoisasInteligentes com Arduino e NodeJS 103
Projetos4
Projeto 02 – Escolher cor usando LED RGB
Peças Necessárias
Placa Arduino
Protoboard
Fios LED RGB
121. 2018 Criando CoisasInteligentes com Arduino e NodeJS 104
Projetos4
Projeto 02 – Escolher cor usando LED RGB
Diagrama do Circuito
123. 2018 Criando CoisasInteligentes com Arduino e NodeJS 106
Projetos4
Projeto 02 – Escolher cor usando LED RGB
Código
https://github.com/orlewilson/
feira-polo-digital-manaus-2018-nodejs-arduino /
07-projeto-02-rgb-nodejs e 08-projeto-02-rgb-nodejs-servico
125. 2018 Criando CoisasInteligentes com Arduino e NodeJS 108
Projetos4
Projeto 03 – Mini Estação Meteorológica
Ler valores do sensor de temperatura, de
umidade e de luminosidade e os disponibilizar
em uma página Web
Objetivo
126. 2018 Criando CoisasInteligentes com Arduino e NodeJS 109
Projetos4
Projeto 03 – Mini Estação Meteorológica
Peças Necessárias
Placa Arduino
Protoboard
Fios
Sensor LDR
Sensor Temperatura
e Umidade DHT11 ou DHT22
Resistor
127. 2018 Criando CoisasInteligentes com Arduino e NodeJS 110
Projetos4
Projeto 03 – Mini Estação Meteorológica
Diagrama do Circuito
128. 2018 Criando CoisasInteligentes com Arduino e NodeJS 111
Projetos4
Projeto 03 – Mini Estação Meteorológica
Código
https://github.com/orlewilson/
feira-polo-digital-manaus-2018-nodejs-arduino /
09-projeto-03, 10-projeto-03-web e 11-projeto-03-servico
131. 2018 Criando CoisasInteligentes com Arduino e NodeJS 114
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
https://nodejs.org/en/docs/
Documentação
132. 2018 Criando CoisasInteligentes com Arduino e NodeJS 115
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
http://johnny-five.io/
Documentação
133. 2018 Criando CoisasInteligentes com Arduino e NodeJS 116
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
Livros
Título: Internet das Coisas com ESP8266, Arduino e
Raspberry Pi
Autor: Sérgio de Oliveira
Editora: Novatec
Edição: 1ª
Ano: 2017
Quantidade de Páginas: 240
134. 2018 Criando CoisasInteligentes com Arduino e NodeJS 117
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
Título: Conectando o Arduino à Web
Autores: Indira Knight
Editora: Novatec
Edição: 1ª
Ano: 2018
Quantidade de Páginas: 288
Livros
135. 2018 Criando CoisasInteligentes com Arduino e NodeJS 118
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
Livros
Título: Projetos Maker
Autores: Hellynson Cássio Lana
Editora: Novatec
Edição: 1ª
Ano: 2018
Quantidade de Páginas: 208
136. 2018 Criando CoisasInteligentes com Arduino e NodeJS 119
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
Feedback
137. 2018 Criando CoisasInteligentes com Arduino e NodeJS 120
Próximos Passos5
https://github.com/orlewilson/arduino-nodejs-docker/projeto-01
Planejamento 2019
Março – Como criar Coisas Inteligentes com Arduino
139. 2018 Criando CoisasInteligentes com Arduino e NodeJS 122
prof.orlewilson@gmail.com (92) 98403-3443
https://orlewilson.github.io/
140.
141. 2018 Criando CoisasInteligentes com Arduino e NodeJS 124
Colombo, C. R.; Bazzo, W. A. Educação Tecnológica Contextualizada,
ferramenta essencial para o Desenvolvimento Social Brasileiro.
Disponível em: <http://www.oei.es/salactsi/colombo.htm>. Acesso
em: 30 Jul. 2018.
Go-Globe. Things that happen on Internet Every 60 Seconds 2017 Statistics.
Disponível em : <https://www.go-globe.com/blog/things-that-happen-every-60-
seconds/>. Acesso em: 08 Set. 2018.
NIC.br Vídeos. A Internet das coisas, explicada pelo NIC.br. Disponível em:
<https://www.youtube.com/watch?v=jlkvzcG1UMk>. Acesso em: 08 Set. 2018.
Referências Utilizadas
142. 2018 Criando CoisasInteligentes com Arduino e NodeJS 125
B. P. Santos et al. Internet das Coisas: da Teoria à Prática. Anais do
Simpósio Brasileiro de Redes de Computadores e Sistemas
Distribuídos (SBRC) 2016.
Cisco. A Internet das Coisas Como a próxima evolução da Internet está mudando
tudo. Disponível em:
<https://www.cisco.com/c/dam/global/pt_br/assets/executives/pdf/internet_of_thi
ngs_iot_ibsg_0411final.pdf>. Acesso em: 08 Set. 2018.
Referências Utilizadas
143. 2018 Criando CoisasInteligentes com Arduino e NodeJS 126
S. Devarakonda, P. Sevusu, H. Liu, R. Liu, L. Iftode, and B. Nath. 2013.
Real-time air quality monitoring through mobile sensing in
metropolitan areas. In Proceeding of the 2nd ACM SIGKDD
International Workshop on Urban Computing. ACM.
Libelium. 50 Sensor Applications for a Smarter World. Disponível em:
<http://www.libelium.com/resources/top_50_iot_sensor_applications_ranking/>.
Acesso em: 08 Set. 2018.
Referências Utilizadas