82
Minicurso: Internet das Coisas utilizando lingua JavaScript Prof. Dr. Marco Túlio Chella DCOMP/UFS IV Simpósio Brasileiro de Tecnologia da Informação – SBTI outubro/2015

Minicurso IOT com javascript - SBTI

Embed Size (px)

Citation preview

Minicurso:Internet das Coisas utilizando linguagem JavaScript

Prof. Dr. Marco Túlio ChellaDCOMP/UFS

IV Simpósio Brasileiro de Tecnologia da Informação – SBTI outubro/2015

Minicurso:Internet das Coisas utilizando linguagem JavaScriptSobre:• Visão geral e conceitos (IOT, M2M)• Suporte Tecnológico • Pesquisas e Produtos (Corporações e Academia)• Fazendo IOT• HTML, Javascript • Javascript no Servidor• Integração com hardware

• Pespectivas

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)

IOT (Internet of Things)Termo proposto por Kevin Ashton em 1999Expectativa de oferecer conectividade avançada a dispositivos, sistemas e serviços.

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)

IOT (Internet of Things)Ampliar o conceito de M2M ( Machine to Machine)Comunicação entre máquinas

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)

IOT (Internet of Things)Ampliar o conceito de M2M ( Machine to Machine)Comunicação entre máquinas

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)

IOT (Internet of Things)Ampliar o conceito de M2M ( Machine to Machine)Comunicação entre máquinas

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)

IOT (Internet of Things)Ampliar o conceito de M2M ( Machine to Machine)Comunicação entre máquinas

Fitbit

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)IOT (Internet of Things)Ampliar o conceito de M2M ( Machine to Machine)

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Como:

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Como: Lei de Moore“Número de transistores nos circuitos dobra a cada 2 anos”

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Como: Lei de Moore “Número de transistores nos circuitos dobra a cada 2 anos”

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)IOT Visão I

• Pilha TCP em software• Processador de propósito geral• Interface Controlador Lógico programável

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)IOT Visão II

• Pilha TCP em hardware• SOC (processador memória e periféricos)

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)IOT Visão II

SOC (System On Chip)Pilha TCP em hardware

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Plataformas para desenvolvimento

SOC (System On Chip)

Alimentação e regulação

periféricos comunicaçãoToolchain

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Plataformas para desenvolvimento

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Plataformas para desenvolvimento: Arduino

• Baixo Custo• Facilidade para desenvolvimento• Suporte por comunidade • Open Hardware e Software

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Plataformas para desenvolvimento: Arduino

ESP8266

Minicurso – IOT com JavascriptVisão geral e conceitos (IOT, M2M)Plataformas para desenvolvimento: Arduino

ESP8266• WIFI• Pilha TCP• Core ARM 32 bits• Periféricos (ADC , Digital)• Toolchain (Lua, C++, Python)

Minicurso – IOT com JavascriptPesquisas e Produtos (Corporações e Academia)

Minicurso – IOT com JavascriptPesquisas e Produtos (Corporações e Academia)

Smart Cities platform from Libelium

Minicurso – IOT com JavascriptPesquisas e Produtos (Corporações e Academia)

Amazon Dash

Minicurso – IOT com JavascriptPesquisas e Produtos (Corporações e Academia)

Amazon Dash

Minicurso – IOT com JavascriptPesquisas e Produtos (Corporações e Academia)

Minicurso – IOT com JavascriptTecnologias acessíveis e com baixo custo

Momento de Fazer

Minicurso – IOT com JavascriptJavascript no Cliente

Linguagem de programação baseada em objetos e em funções de primeira classe.

Popular como linguagem de script para WEB

Multi-paradigma: orientação a objetos, imperativa e funcional

Padronizada por ECMAScript

Minicurso – IOT com JavascriptJavascript no Cliente

Páginas WEB e aplicações WEB

HTML define estrutura e conteúdo

Minicurso – IOT com JavascriptJavascript no Cliente

Páginas WEB e aplicações WEB

CSS (Cascading Style Sheets) define o formato e aparência

Minicurso – IOT com JavascriptJavascript no Cliente

Páginas WEB e aplicações WEB

Javascript adiciona interatividade

Minicurso – IOT com JavascriptJavascript no Cliente

Páginas WEB e aplicações WEB

Javascript adiciona interatividadeHTML DOM (Document Object Model)

Minicurso – IOT com JavascriptJavascript no Cliente

Páginas WEB e aplicações WEBJavascript adiciona interatividade: HTML DOMPágina ao ser carregada cria Document Object Model

Javascript pode manipular cada elemento ( Mudar, remover, criar , reagir )

Minicurso – IOT com JavascriptJavascript no ClientePáginas WEB e aplicações WEBJavascript adiciona interatividade: HTML DOM

Minicurso – IOT com JavascriptJavascript no ClientePáginas WEB e aplicações WEBDesenvolver HTML , Javascript, CSS

codepen.io

Alternativas:

Minicurso – IOT com JavascriptJavascript no ClienteHTML5:Novos elementos, atributos e comportamentosExtenso conjunto de tecnologias que habilitam a implementação de aplicações e websites com mais e poderosos recursos

• Semântica• Conectividade• Armazenamento• Multimidia• Gráfico 2D e 3D• Acesso ao hardware do dispositivo• Estilo

Minicurso – IOT com JavascriptJavascript no servidor

Javascript runtime baseado no V8 engine javascript desenvolvido pelo Google e utilizado no navegador Chrome

Minicurso – IOT com JavascriptJavascript no servidor

Modelo baseado em event-driven e non-blocking I/OEcosistema de bibliotecas npm

Minicurso – IOT com JavascriptJavascript no servidor

lightweight and efficient

Fonte: Google I/O 2012 (http://v8-io12.appspot.com/#1)

Minicurso – IOT com JavascriptJavascript no servidor

lightweight and efficient Servidor WEB em 4 linhas de código

Minicurso – IOT com JavascriptJavascript no servidor

Primeiros passos:Disponível para as principais plataformas

Minicurso – IOT com JavascriptJavascript no servidor

Primeiros passos:Executar em servidor na nuvemPAAS (Platform as a Service)

Minicurso – IOT com JavascriptJavascript no servidor

Primeiros passos:

+

Minicurso – IOT com JavascriptJavascript no servidor

Primeiros passos:

Minicurso – IOT com Javascript Servidor RESTful

RESTful Web ServicesREST - Representational State TransferRESTful – serviço baseado em REST

Elementos:• Representations• Messages• URIs (Uniform Resource Identifier)• Uniform interface• Stateless• Links between resources• Caching

Minicurso – IOT com Javascript Servidor RESTful

RESTful Web ServicesREST - Representational State TransferRESTful – serviço baseado em REST

recurso parâmetro

Minicurso – IOT com Javascript Servidor RESTful

Quem?

Minicurso – IOT com Javascript Servidor RESTful

Quem?

Minicurso – IOT com Javascript Servidor RESTful: Implementação

Minicurso – IOT com Javascript Servidor RESTful: Implementação

Minicurso – IOT com JavascriptRequisição http

mensagem enviada ao servidor

Minicurso – IOT com JavascriptRequisição http

mensagem recebida do servidor

Minicurso – IOT com Javascript Servidor RESTful: Implementação

Minicurso – IOT com Javascript Servidor RESTful: Modelos

Navegador (cliente)Servidor (hardware)

Minicurso – IOT com Javascript Servidor RESTful: Modelos

Navegador (cliente)Cliente (hardware)

Servidor (nuvem)

Minicurso – IOT com Javascript Servidor RESTful: Modelos

Navegador (cliente)Cliente (hardware)

Servidor (nuvem)

ler_valor_adcenviar_valor_adc/324

Minicurso – IOT com Javascript Servidor RESTful: Modelos

Navegador (cliente)Cliente (hardware)

Servidor (nuvem)

enviar_comando_led/ligarler_comando_led

Minicurso – IOT com Javascript Servidor RESTful: Implementação REST

Minicurso – IOT com Javascript Servidor RESTful: Implementação REST

Minicurso – IOT com Javascript Servidor RESTful: Implementação REST

Minicurso – IOT com Javascript Servidor RESTful: Implementação REST

Minicurso – IOT com Javascript Servidor RESTful: Cliente Arduino

Minicurso – IOT com Javascript Servidor RESTful: Cliente Arduino

Minicurso – IOT com Javascript Servidor RESTful: Cliente navegador HTML e Javascript

Minicurso – IOT com JavascriptCriar um página HTML - 01

Minicurso – IOT com JavascriptCriar um página HTML - 02

https://goo.gl/Y2sRic

Minicurso – IOT com JavascriptCriar um página HTML - 03

Minicurso – IOT com JavascriptCriar um página HTML - 04

Minicurso – IOT com JavascriptCriar um página HTML - 05

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML : AJAXAsynchronous Javascript and XML (XML não obrigatório)

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptJavascript e HTML

Minicurso – IOT com JavascriptIndo além....Hardware:Sensores e atuadores

Minicurso – IOT com JavascriptIndo além....Hardware:Plataformas

Minicurso – IOT com JavascriptIndo além....Software:

Nodered - IBM

Minicurso – IOT com JavascriptExperimento realIOT no contexto de automação residencial

Minicurso – IOT com Javascript

< Muito Obrigado >