Salvador - Ba
WTM - International Women's Day 2017
Internet das Coisas com NodeMCU
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'
};
A Internet das Coisas faz com que objetos que utilizamos diariamente possam ser conectados a internet.
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?
sensores para medição e leitura
nodemcu
Muito utilizado entre movimento maker
Aumentando o nível.
A 1.2GHz 64-bit quad-core
ARM Cortex-A53 CPU
Integrated 802.11n wireless LAN and Bluetooth 4.1
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
Mqtt
Http
Coap
Udp
xmpp
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
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.
Digite o link no campo URLs adicionais de Gerenciadores de Placas:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Acesse na IDE Ferramentas -> Placa -> Gerenciador de Placas:
Utilize a barra de rolagem para encontrar o esp8266 by ESP8266 Community e clique em INSTALAR:
#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