Arduino, Internet das Coisas e Computação vestível |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Você está em »
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ethernet Shield W5100Descrição
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Projeto Acendendo LEDS com Shield Ethernet
// Autor: André Silveira
// Data: 15/02/2018
#include <SPI.h> // Biblioteca utilizada para comunicação entre o computador e o Arduino
#include <Ethernet.h> // Biblioteca utilizada para comunicação entre Shield Ethernet e o Arduino
byte mac[] = {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; // Endereço físico da placa de rede (MAC ADDRESS)
byte ip[] = {192,168,15,104}; // Define o endereço IP => http://192.168.15.104
EthernetServer server(80); // Porta aberta para comunicação Internet e Arduino
String readString;
int Pin1 = 3; // LED branco.
int Pin2 = 4; // LED azul.
int Pin3 = 5; // LED vermelho.
int Pin4 = 6; // LED verde.
int Pin5 = 7; // LED amarelo.
void setup(){
pinMode(Pin1, OUTPUT); // Define o Pino1 como saída.
pinMode(Pin2, OUTPUT); // Define o Pino2 como saída.
pinMode(Pin3, OUTPUT); // Define o Pino3 como saída.
pinMode(Pin4, OUTPUT); // Define o Pino4 como saída.
pinMode(Pin5, OUTPUT); // Define o Pino5 como saída.
digitalWrite(Pin1, LOW); // Apaga Lampada do Pino1.
digitalWrite(Pin2, LOW); // Apaga Lampada do Pino2.
digitalWrite(Pin3, LOW); // Apaga Lampada do Pino3.
digitalWrite(Pin4, LOW); // Apaga Lampada do Pino4.
digitalWrite(Pin5, LOW); // Apaga Lampada do Pino5.
Ethernet.begin(mac, ip); // Chama o MAC e o endereço IP da placa Ethernet.
server.begin(); // Inicia o servidor que esta inserido junto a placa Ethernet.
}
void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
// ---- Faz a leitura caracter por caracter da HTTP request ---- //
char c = client.read();
if (readString.length() < 100) {
readString += c;
}
if (c == '\n') {
// ---- A partir daqui começa os códigos html ---- //
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
client.println("<title>Acendendo LEDs</title>");
client.println("</HEAD>");
client.println();
client.println("<style>");
client.println("* {font-family: Verdana, Geneva, sans-serif; font-size: 12px; text-align: left; }");
client.println("#caixa {background-color: #E6E6F0; margin: 80px; height: 250px;");
client.println("width: 400px; border: 2px solid #000;}");
client.println("#titulo{background-color: #0066FF; margin: 0px; width: 390px;");
client.println("font-weight: bold; padding: 5px; text-align: center; vertical-align: middle;");
client.println("border-bottom: #000000 2px solid; color: #FFF;}");
client.println("ul {margin: 20px 0px 0px 70px; // TOP RIGHT BOTTOM LEFT}");
client.println("li {line-height: 28px;}");
client.println("</style>");
client.println("<BODY>");
client.println("<div id=\"caixa\">");
client.println("<div id=\"titulo\">Automação residencial: controlando LED</div>");
client.println("<ul>");
client.println("<li><b>LED Branco: </b><a href=\"/branco/on\">Ligar</a> - <a href=\"/branco/of\">Apagar</a></li>");
client.println("<li><b>LED Azul: </b><a href=\"/azul/on\">Ligar</a> - <a href=\"/azul/of\">Apagar</a></li>");
client.println("<li><b>LED Vermelho: </b><a href=\"/vermelho/on\">Ligar</a> - <a href=\"/vermelho/of\">Apagar</a></li>");
client.println("<li><b>LED Verde: </b><a href=\"/verde/on\">Ligar</a> - <a href=\"/verde/of\">Apagar</a></li>");
client.println("<li><b>LED Amarelo: </b><a href=\"/amarelo/on\">Ligar</a> <a href=\"/amarelo/of\">Apagar</a> </li>");
client.println("<li><b>LED TODOS: </b><a href=\"/leds/on\">Ligar</a> - <a href=\"/leds/of\">Apagar</a</li>");
client.println("</ul>");
client.println("</div>");
client.println("</BODY>");
client.println("</HTML>");
delay(1);
client.stop();
if (readString.indexOf("branco/on") > 0) {
digitalWrite(Pin1, HIGH);
}
if (readString.indexOf("branco/of") > 0) {
digitalWrite(Pin1, LOW);
}
if (readString.indexOf("azul/on") > 0) {
digitalWrite(Pin2, HIGH);
}
if (readString.indexOf("azul/of") > 0) {
digitalWrite(Pin2, LOW);
}
if (readString.indexOf("vermelho/on") > 0) {
digitalWrite(Pin3, HIGH);
}
if (readString.indexOf("vermelho/of") > 0) {
digitalWrite(Pin3, LOW);
}
if (readString.indexOf("verde/on") > 0) {
digitalWrite(Pin4, HIGH);
}
if (readString.indexOf("verde/of") > 0) {
digitalWrite(Pin4, LOW);
}
if (readString.indexOf("amarelo/on") > 0) {
digitalWrite(Pin5, HIGH);
}
if (readString.indexOf("amarelo/of") > 0) {
digitalWrite(Pin5, LOW);
}
if (readString.indexOf("leds/on") > 0) {
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, HIGH);
digitalWrite(Pin5, HIGH);
}
if (readString.indexOf("leds/of") > 0) {
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
digitalWrite(Pin5, LOW);
}
readString="";
}
}
}
}
}
|
A internet compreende a união de redes de computadores em nível mundial que conversam entre si através de um conjunto próprio de protocolos de comunicação. Um Servidor é um computador responsável por fornecer e receber dados dos diversos clientes, atuando como centralizador de informação. Em síntese, é um software dentro de um computador centralizador, conectado a uma Rede Local ou da Internet, que pode receber dados de clientes bem como fornecê-los.
O Servidor/Cliente é baseado em um sistema de recebimento, processamento e resposta. O Servidor recebe, processa e responde a requisições feitas por um Cliente através de algum protocolo de comunicação.

Protocolo que intermedia a relação entre os computadores que atuam como Servidores de hospedagem sites e os navegadores que utilizamos em nossos computadores ou celulares (Clientes). Neste tipo de relação, utiliza-se para estabelecer a comunicação, o procotolo o HTTP (Hypertext Transfer Protocol), que é responsável pelo tratamento dos pedidos e respostas entre Cliente e Servidor na World Wide Web ou em uma Rede Local. Nesse contexto, chamamos os servidores de Servidores Web.
As informações que o Servidor Web envia para seu navegador a partir de uma requisição HTTP feita pelo mesmo, pode ocorrer em alguns determinados formatos que precisarão ser interpretados. Um desses formatos é o HTML (HyperText Markup Language), que por sua vez, é uma linguagem utilizada na construção de páginas na Web.
O programa "Acendendo LEDS com Shield Ethernet" criou um Servidor através da tecnologia Ethernet (arquitetura de interconexão para redes locais) e de um protocolo de rede (TCP/IP). O protocolo controla a forma pela qual os computadores e dispositivos na rede interna podem se comunicar. Ele atribuiu o endereço IP 192.168.15.104 e Porta 80 para acesso ao Arduino na Rede Local. Para acesso externo ao programa, é necessário liberar o acesso no Modem/roteador. O procedimento compreende a criação de um redirecionador de portas.
Abaixo, apresenta-se 2 exemplos de configuração de modem para liberar porta de comunicação para o público externo.
Para que o programa "Acendendo LEDS com Shield Ethernet" funcione, libere o "Endereço IP" e "Porta" declarados.
1) Configurando Modem para liberar Porta do Modem Dlink
2) Configurando Modem para liberar Porta do Modem da VIVO
|
[Voltar] |
[Avançar] |