SlideShare uma empresa Scribd logo
9º Connecting Knowledge
HEIDER LOPES
Heider Lopes
• Pós-Graduado em Sistemas e Desenvolvimento Web
• Analista Programador
• THT Member
Redes Sociais do THT Member
twitter.com/heiderlopes
github.com/heiderlopes
slideshare.net/heiderlopes
www.heiderlopes.com.br
Agenda
IoTizando com JavaScript
Coisa
Objeto ou ser inanimado.
O que existe ou pode existir.
O Que é IoT?
•É a possibilidade de comunicação entre todos
os objetos que existem – enviando e recebendo
dados e informações com o intuito de facilitar a
vida das pessoas.
•Estima-se que a IoT terá mais de 20 bilhões de
devices em 2020
• Interação de objetos inteligentes
IoTizando com JavaScript
IoT em Casa
IoT no carro
IoT no trabalho
IoT nas compras
IoT ajudando pessoas
Vídeo 1
•Durex Fundawear -- Touch over the Internet [OFFICIAL]
http://www.youtube.com/watch?v=qb7DN3kpl2o
Arduino
Introdução
• Plataforma baseada em Atmel da AVR
(ATMega168);
• Oferece um IDE e bibliotecas de programação
de alto nível;
• Open-source hardware e software
Introdução ao Arduino
• Ampla comunidade
• Programado em C/C++
• Transferência de firmware via USB
• MCU com bootloader
Aplicações Práticas
• Robôs
• Roupas eletrônicas
• Máquinas de corte e modelagem 3D de baixo
custo;
• Segway open-source
Aplicações Práticas
• Desenvolvimento de celulares customizados
• Instrumentos musicais
• Paredes interativas
• Instrumentação humana
• Circuit bending
Modelo de Arduino
Placa Arduino
Shields
• Arquitetura modular inteligente
• Arduino estabeleceu um padrão de pinagem
que é respeitado por diversas placas shield:
Componentes e Sensores Arduino
MiniComputadores
CubieTruck
BeagleBone
Raspberry Pi
CHIP
IoTizando com JS
Para nossa demo ao vivo
JavaScript
• Criado por Brendan Eich em 1995
• Surgiu como script client-side de páginas web
• DISTINTA do JAVA
• Facilidade em interação com o Document
Object Model (DOM)
NodeJS
https://nodejs.org/
NodeJS
Plataforma para desenvolvimento de aplicações
server-side baseadas em rede utilizando
JavaScript e o V8 JavaScript Engine.
ExpressJS
Framework para Node.js que possui um robusto
conjunto de recursos para desenvolver
aplicações web, como um sistema de Views
intuitivo (MVC), um robusto sistema de
roteamento, um executável para geração de
aplicações e muito mais.
Instalação do Express
npm install express@3.x
Instanciando o Express
var express = require('express');
var app = express();
Liberação do CORS
app.all('/*', function(req, res, next) {
// CORS headers
res.header("Access-Control-Allow-Origin", "*"); // restrict it to the
required domain
res.header('Access-Control-Allow-Methods',
'GET,PUT,POST,DELETE,OPTIONS');
// Set custom headers for CORS
res.header('Access-Control-Allow-Headers', 'Content-
type,Accept,X-Access-Token,X-Key,x-requested-with');
if (req.method == 'OPTIONS') {
res.status(200).end();
} else {
next();
}
});
Exemplo de serviço
app.get('/', function(req, res){
res.send(‘Connecting Knowledge’);
});
Criação do Servidor
var server = app.listen(3000);
console.log('Servidor Express iniciado na porta
%s', server.address().port);
Rodando a Aplicação
node <<nomearquivo>>
Ex: node app.js
Acessar a url
• Através do browser:
– http://localhost:3000
• Através do curl
– curl http://localhost:3000
Nodemon
É um file watcher que roda internamente o
próprio comando node. Ele faz auto-restart
da aplicação, toda vez que um arquivo do
projeto for modificado.
Instalando e Rodando do Nodemon
npm install -g nodemon
nodemon <<nomearquivo>>
nodemon app.js
Johnny Five
Framework de código aberto que nos permite
controlar o hardware utilizando JavaScript,
desenvolvido pela Bocoup.
Instalação do Johnny Five
npm install johnny-five
Demo Serviço NodeJS,
ExpressJS e Johnny Five
Esquema no arduino
Protocolo Firmata no Arduino
Exemplo de Código
var five = require("johnny-five"),
board = new five.Board();
var led;
board.on("ready", function() {
console.log("Arduino Conectado");
led = new five.Led(13);
});
Serviço para ligar/desligar
app.get('/ligar', function(req, res){
led.on();
res.send('LED ligado');
});
app.get('/desligar', function(req, res){
led.off();
res.send('LED desligado');
});
AngularJS
https://angularjs.org/
AngularJS
Framework MVC completo com suporte a:
• Data Binding
• Injeção de Dependência
• Criação de Elementos HTML Personalizados (Diretivas)
• Carga de Modulos com Gerenciamento de Dependências
• Roteamento e Gestão de Histórico
• Serviços
• Promessas
Demo Consumindo um
Serviço
View
<html ng-app='AngularIntro'>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="main.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<title>DemoIoT - Heider Lopes</title>
</head>
<body ng-controller='MainCtrl'>
<div class="container">
<h1>IoT - Heider Lopes</h1>
<div class="jumbotron">
<center><h1>IoTizando com JavaScript</h1></center>
<p align="center"class="lead">Controlando Arduino atraves de JavaScript</p>
<p align="center">
<a class="btn btn-lg btn-success" ng-click='ligar()' role="button">Ligar</a>
<a class="btn btn-lg btn-danger" ng-click='desligar()' role="button">Desligar</a>
</p>
<p align="center" ng-class="result === 'LED ligado'? 'btn-success' : 'btn-danger'">{{result}}</p>
</div>
</div>
</body>
</html>
Controller
var module = angular.module('AngularIntro', []);
//Adição do Controller ao módulo
module.controller('MainCtrl', function($scope, $http){
$scope.ligar = function() {
$http.get('http://localhost:3000/ligar').
success(function(data) {
$scope.result = data;
});
};
$scope.desligar = function() {
$http.get('http://localhost:3000/desligar').
success(function(data) {
$scope.result = data;
});
};
});
IONIC Framework
http://ionicframework.com/
Ionic Framework
Framework front-end para o desenvolvimento
de aplicativos móveis, que entrega um
conjunto rico de elementos de mobile UI,
unindo excelentes tecnologias como Apache
Cordova, AngularJS e Sass.
Instalação do IONIC Framework
npm install -g cordova ionic
Demo Consumindo um
Serviço
Iniciando um projeto
Rodando a aplicação
View
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no,
width=device-width">
<title></title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet”>
<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
<script src="js/controller.js"></script>
</head>
View - cont
<body ng-app="starter">
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">IoTizando com JS - Heider Lopes</h1>
</ion-header-bar>
<ion-content ng-controller="MainIonicCtrl">
<ion-list>
<ion-toggle ng-repeat="item in settingsList"
ng-model="item.checked"
ng-checked="item.checked"
ng-change="toggleLed(item)">
{{ item.text }}
</ion-toggle>
</ion-list>
</ion-content>
</ion-pane>
</body>
</html>
Controller
app.controller('MainIonicCtrl', function($scope, $stateParams, $http) {
$scope.settingsList = [
{ text: "Led", checked: false }
];
$scope.toggleLed = function(item) {
console.log(item);
if(item.checked) {
$http.get('http://192.168.0.102:3000/ligar').
success(function(data) {
});
} else {
$http.get('http://192.168.0.102:3000/desligar').
success(function(data) {
});
}
};
});
Dúvidas
THT nas Redes Sociais
MEETUP.COM/THT-THINGS-HACKER-TEAM
THINGS HACKER TEAM
SLIDESHARE.NET/THINGSHACKERTEAM
TWITTER.COM/THINGSHACKERTM
GITHUB.COM/THINGSHACKERTEAM
FACEBOOK.COM/THINGSHACKERTEAM
WWW.THINGSHACKERTEAM.COM

Mais conteúdo relacionado

PPTX
Web ou App?
PDF
Jquery Mobile
PPTX
JQuery Mobile
PPTX
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
PPTX
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman | Seminário
PPTX
Front-end o que é preciso saber?
PPTX
Introdução ao PhoneGap
PPTX
Progressive web apps
Web ou App?
Jquery Mobile
JQuery Mobile
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman | Seminário
Front-end o que é preciso saber?
Introdução ao PhoneGap
Progressive web apps

Mais procurados (16)

PDF
Oficina Intel XDK - 1ª ETEC Camp
PPTX
Write once, run "everywhere"
PPT
CMS - Joomla
PPTX
Microsoft Edge (Teched 2015)
PDF
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
PPTX
Componentizando a Web com Polymer
PDF
Mobile First e Offline First
PDF
Micro Front-end + CQRS/ES - JSSP jul/2019
PDF
Abordagens modernas no desenvolvimento web
PPT
Como Criar Um Blog
PPTX
Redação Jornalística para Novas Mídias
PPTX
Utilizando Polymer em aplicações móveis
PDF
Aplicações web multiplataforma - único código, múltiplas experiência
PPTX
jQuery Mobile
PDF
Progressive Web Apps
PPTX
Web design responsivo - Criando um site adaptável
Oficina Intel XDK - 1ª ETEC Camp
Write once, run "everywhere"
CMS - Joomla
Microsoft Edge (Teched 2015)
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Componentizando a Web com Polymer
Mobile First e Offline First
Micro Front-end + CQRS/ES - JSSP jul/2019
Abordagens modernas no desenvolvimento web
Como Criar Um Blog
Redação Jornalística para Novas Mídias
Utilizando Polymer em aplicações móveis
Aplicações web multiplataforma - único código, múltiplas experiência
jQuery Mobile
Progressive Web Apps
Web design responsivo - Criando um site adaptável
Anúncio

Destaque (8)

PDF
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
PDF
TDC2015 - Internet das Coisas - OpenDevice
PDF
Conhecendo o PhoneGap
KEY
Android and Arduio mixed with Breakout js
PDF
Unidad 2 indices de capacidad
PPT
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
PDF
TDC2016SP - Programando PHP com mais segurança!
PDF
Android e Arduino para automação residencial
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
TDC2015 - Internet das Coisas - OpenDevice
Conhecendo o PhoneGap
Android and Arduio mixed with Breakout js
Unidad 2 indices de capacidad
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Programando PHP com mais segurança!
Android e Arduino para automação residencial
Anúncio

Semelhante a IoTizando com JavaScript (20)

PDF
Tornando as coisas mais simples com Azure Functions e Node.JS
PDF
Analise frameworks php
PDF
Curso AngularJS - Parte 1
PPTX
HTML 5, CSS 3 e o futuro da Web
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PPTX
Introdução sobre desenvolvimento web
PDF
Produtividade infinito e além com We.js
PPTX
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
PPTX
Backbone.js nas trincheiras
PDF
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
PPT
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
PDF
Seminário de Desenvolvimento Mobile - Etec Cafelândia
PDF
Construindo aplicações Cloud Native em Go
PDF
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
ODP
Apresentação Minas - Desenvolvendo Sites
PDF
Intervalo Técnico - QG Mobile
PDF
Introdução a plataforma de aplicativos Redu
PPT
Minicurso code igniter aula 2
PPTX
DevOps: desenvolvedores e sysadmins cooperando na prática
Tornando as coisas mais simples com Azure Functions e Node.JS
Analise frameworks php
Curso AngularJS - Parte 1
HTML 5, CSS 3 e o futuro da Web
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Introdução sobre desenvolvimento web
Produtividade infinito e além com We.js
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Backbone.js nas trincheiras
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Construindo aplicações Cloud Native em Go
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
Apresentação Minas - Desenvolvendo Sites
Intervalo Técnico - QG Mobile
Introdução a plataforma de aplicativos Redu
Minicurso code igniter aula 2
DevOps: desenvolvedores e sysadmins cooperando na prática

Mais de Heider Lopes (13)

PDF
Apicon2018.pptx
PDF
Workshop do Bem: O mundo das APIs
PPTX
8ºConnecting Knowledge Web ou App
PPT
Mobile
PPT
Tht na web
PPTX
Android Wear: Expandindo as funcionalidades do seu Android
PDF
Descomplicando o Android
PPTX
1 2 3 - Testando - Automatizando os testes de software
PPTX
5º ck o java e o android no iot
PPTX
Arduíno muito prazer
PPTX
Programando java independente da ide
PPTX
Montando ambiente de desenvolvimento android em um tablet
PPTX
Conversando com o android
Apicon2018.pptx
Workshop do Bem: O mundo das APIs
8ºConnecting Knowledge Web ou App
Mobile
Tht na web
Android Wear: Expandindo as funcionalidades do seu Android
Descomplicando o Android
1 2 3 - Testando - Automatizando os testes de software
5º ck o java e o android no iot
Arduíno muito prazer
Programando java independente da ide
Montando ambiente de desenvolvimento android em um tablet
Conversando com o android

Último (12)

PDF
Certificado de Conclusão Jornada Inteligência Artificial
PPTX
TURMA modelo de modelo apresentação 4DE.pptx
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
PPTX
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
PDF
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
PDF
Metodologias ágeis - Slides - aulas 1 a 5.pdf
PDF
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
Certificado de Conclusão Jornada Inteligência Artificial
TURMA modelo de modelo apresentação 4DE.pptx
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
Metodologias ágeis - Slides - aulas 1 a 5.pdf
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf

IoTizando com JavaScript