Salvador - Ba

WTM - International Women's Day 2017

 Internet das Coisas com NodeMCU

Quem somos?

var learning = { 
name: 'Danielle Teixeira',
contact: 'github.com/dannyserena',
role: 'Analista de Requisitos',
skills: 'Engenheira de Computação',
talk: 'IoT'
};
var learning = { 
name: 'Tuane Paixão',
contact: 'tuanepaixao',
role: 'Gerente de Projetos',
skills: 'Engenheira Eletricista',
talk: 'IoT'
};

Agenda

  • O que é IoT?
  • Como Surgiu?
  • Beneficios
  • Dispositivos IoT
  • Construindo sua aplicação IoT

Internet das Coisas

O que é IoT?

A Internet das Coisas faz com que objetos que utilizamos diariamente possam ser conectados a internet.

Vamos contextualizar ...

Das coisas! Que coisas? Todas as coisas! Como assim? Isso mesmo, todo dispositivo que podemos inserir nesse contexto

E porquê internet das coisas?

As tecnologias mais profundas são aquelas que desaparecem. Tecem-se no tecido da vida cotidiana até que eles são indistinguíveis a partir dele. 

- Mark Weisers – “The Computer for the Twenty-First Century” 

 Computação ubíqua: computação presente e disfarçada no meio.

Como surgiu a IoT?

  • Não era possível criar protótipos de forma simples
  • Criar software embarcado exigia muito conhecimento
  • Era tudo muito caro $$$$

De volta ao passado..

  • Virou zona, conecta "Deus e o mundo", por isso as coisas

No presente..

sensores para medição e leitura

 

No presente..

  • Virou zona, conecta "Deus e o mundo", por isso as coisas

No Futuro...

Hardware...

  • Placas de prototipagem de baixo custo.
  • Maior poder computacional com gasto de bateria baixo
  • Padrões de rede sem fio.
  • Microcontroladores

Como conectar as coisas?

Software

  • Novas linguagens de programação mais amigáveis e poderosas.
  • Ferramentas que integram serviços remotos e locais com facilidade.
  • Ambientes de desenvolvimento livres

Arquitetura

Tecnologias

nodemcu

Arduino Yun

Muito utilizado entre movimento maker 

  • Cristal 16MHz
  • Linux + ATmega32u4
  • WiFi + USB + Ethernet
  • Bibliotecas
  • 7 pinos  saída PWM
  • 12 entrada analogica

Raspberry Pi

Aumentando o nível.

  • Barato
  • Fácil de usar
  • Cheio de complementos
  • Já é um computador de verdade rodando um OS de verdade (Linux, RISC OS)
  • A 1.2GHz 64-bit quad-core 
  • ARM Cortex-A53 CPU 
  • Integrated 802.11n wireless LAN and Bluetooth 4.1

Esp 8266 - NodeMcu

  • Módulo Wi-FI desenvolvido por Expressif
  • Conectores GPIO, barramentos I2C, SPI, UART, entrada ADC, saída PWM e sensor interno de temperatura;

Transformação de dados

Transformar dados obtidos de sensores  ou interação com o usuário e transformá-los em informação.

Sensor de movimento

Detector de Gás

 

Sensor de temperatura

 

Padrões de Comunicação

Mqtt

Http

Coap

Udp

xmpp

Padrões de Comunicação - MQTT

  • Protocolo usado para  comunicação machine-to-machine(M2M).
  •   focada na coleta de dados.

Padrões de Comunicação - HTTP

  • Utiliza métodos GET e POST;
  • Requisições feitas via URL

Aplicações de IOT

Quais as possibilidades  IoT?

Escolha um problema comum, crie uma solução pensando em como um dispositivo inteligente poderia ser a resposta.” 

'Depois combine alguns conceitos + criatividade sem limites e comece a criar'. - Grifo Meu

 

 

 

 

 

 

 

 

 

 

 

 

 

  •  

 

  •  

 

 

Aplicações

Outro exemplo bastante difundido é o da Philips. A companhia possui uma divisão que desenvolve lâmpadas LED inteligentes. Chamadas de Hue, essas lâmpadas podem ser configuradas pelo smartphone para mudar a intensidade e as cores da iluminação para deixar o ambiente mais confortável para cada situação.

Philips Lighting

Cidades Inteligentes

  • Monitoramento de vagas de estacionamento
  • Monitoramento de trânsito e estradas
  • Ajuste da iluminação da cidade (tempo/horário)
  • Detecção do nível de lixo para otimizar a coleta

Automação Residencial

  • Monitoramento de consumo de água/energia
  • Monitoramento remoto de câmeras de segurança
  • Automatização de tarefas corriqueiras
  • Controle automático de temperatura

Saúde

  • Detecção de quedas
  • Monitoramento de sinais vitais
  • Controle de remédios

O que vamos fazer?

NodeMCU ESP 8266

  • Módulo Wi-FI desenvolvido por Expressif
  • Conectores GPIO, barramentos I2C, SPI, UART, entrada ADC, saída PWM e sensor interno de temperatura;

ESP 8266

Instalar a IDE Arduino

Prepare a IDE para NodeMCU

  • Entre na IDE do Arduino e clicar em Arquivo -> Preferências:
  • Digite o link no campo URLs adicionais de Gerenciadores de Placas:

    http://arduino.esp8266.com/stable/package_esp8266com_index.json

Prepare a IDE para NodeMCU

  • http://arduino.esp8266.com/stable/package_esp8266com_index.json

Prepare a IDE para NodeMCU

  • Acesse na IDE Ferramentas -> Placa -> Gerenciador de Placas:

Prepare a IDE para NodeMCU

  • Utilize a barra de rolagem para encontrar o esp8266 by ESP8266 Community e clique em INSTALAR:

Let's go the code

#include <ESP8266WiFi.h>
 
const char* ssid = "Danielle";
const char* password = "12345678";
 
WiFiServer server(80);
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
  // preparando a porta GPIO2
  pinMode(4, OUTPUT);
  digitalWrite(4, 0);
 
  pinMode(5, OUTPUT);
  digitalWrite(5, 0);
 
  // Connectando no WiFi 
  Serial.println();
  Serial.println();
  Serial.print("Conectado no WIFI !!! ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi conectado");
 
  // Startando o servidor
  server.begin();
  Serial.println("Servidor startado");
  Serial.println(WiFi.localIP());
}
 
void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  Serial.println("cliente identificado");
  while(!client.available()){
    delay(1);
  }
 
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
 
  String buf = "";
 
  buf += "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n";
  buf += "<html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/>\r\n";
  buf += "<title>Codelab Internet das Coisas com Node MCU - WTMSSA 2017</title>";
  buf += "<style>.c{text-align: center;} div,input{padding:5px;font-size:1em;} input{width:80%;} body{text-align: center;font-family:verdana;} button{border:0;border-radius:0.3rem;background-color:#FF1493;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%;} .q{float: right;width: 64px;text-align: right;}</style>";
  buf += "</head>";
  buf += "<h3>ESP8266 Web Service - </h3>";
  buf += "<p>GPIO4 <a href=\"?function=led4_on\"><button>ON</button></a> <a href=\"?function=led4_off\"><button>OFF</button></a></p>";
  buf += "<p>GPIO5 <a href=\"?function=led5_on\"><button>ON</button></a> <a href=\"?function=led5_off\"><button>OFF</button></a></p>";
  buf += "<h4>WTMSSA 2017 - Codelab Danielle & Tuane </h4>";
  buf += "</html>\n";
 
  client.print(buf);
  client.flush();
 
  if (req.indexOf("led5_on") != -1)
    digitalWrite(5, 1);
  else if (req.indexOf("led5_off") != -1)
    digitalWrite(5, 0);
  else if (req.indexOf("led4_on") != -1)
    digitalWrite(4, 1);
  else if (req.indexOf("led4_off") != -1)
    digitalWrite(4, 0);
  else {
    Serial.println("Requisicao Invalida");
    client.stop();
  }
  Serial.println("Cliente Desconectado");
}

Github: https://github.com/dannyserena/codelab-wtm-iot 

Referências

  • https://analyticsweek.com/content/2016-trends-for-the-internet-of-things-expanding-expedient-analytics-beyond-the-industrial-internet/
  • www.arduino.org
  • http://ercim-news.ercim.eu/en98/special/internet-of-things-a-challenge-for-software-engineering

Obrigada!

  • http://evento.lfdev.tk/

International WTM Day - IoT

By Danielle Teixeira

International WTM Day - IoT

International WTM Day - IOT com nodemcu

  • 1,383