Arduino, Internet das Coisas e Computação vestível |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
10.1. Acendendo LEDS com Shield Ethernet
|
// 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] |