SHARE
TWEET

Arduino – Ethernet Shield W5100 (Web server)

a guest Nov 19th, 2019 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SPI.h> //INCLUSÃO DE BIBLIOTECA
  2. #include <Ethernet.h> //INCLUSÃO DE BIBLIOTECA
  3.  
  4. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //ATRIBUIÇÃO DE ENDEREÇO MAC AO ETHERNET SHIELD W5100
  5. byte ip[] = { 192, 168, 1, 148 }; //COLOQUE UMA FAIXA DE IP DISPONÍVEL DO SEU ROTEADOR. EX: 192.168.1.110  **** ISSO VARIA, NO MEU CASO É: 192.168.0.175
  6. byte gateway[] = {192, 168, 1, 1}; //GATEWAY DE CONEXÃO (ALTERE PARA O GATEWAY DO SEU ROTEADOR)
  7. byte subnet[] = {255, 255, 255, 0}; //MASCARA DE REDE (ALTERE PARA A SUA MÁSCARA DE REDE)
  8. EthernetServer server(80); //PORTA EM QUE A CONEXÃO SERÁ FEITA
  9.  
  10. const int ledPin9 = 9; //PINO DIGITAL UTILIZADO PELO LED BRANCO
  11. const int ledPin7 = 7; //PINO DIGITAL UTILIZADO PELO LED AZUL
  12. String readString = String(30); //VARIÁVEL PARA BUSCAR DADOS NO ENDEREÇO (URL)
  13. int status = 0; //DECLARAÇÃO DE VARIÁVEL DO TIPO INTEIRA(SERÁ RESPONSÁVEL POR VERIFICAR O STATUS ATUAL DO LED)
  14.  
  15. void setup(){
  16.   Ethernet.begin(mac, ip, gateway, subnet); //PASSA OS PARÂMETROS PARA A FUNÇÃO QUE VAI FAZER A CONEXÃO COM A REDE
  17.   server.begin(); //INICIA O SERVIDOR PARA RECEBER DADOS NA PORTA 80
  18.   pinMode(ledPin9, OUTPUT); //DEFINE O PINO COMO SAÍDA
  19.   pinMode(ledPin7, OUTPUT); //DEFINE O PINO COMO SAÍDA
  20.   digitalWrite(ledPin9, LOW); //LED INICIA DESLIGADO
  21.   digitalWrite(ledPin7, LOW); //LED INICIA DESLIGADO
  22.   }
  23. void loop(){
  24. EthernetClient client = server.available(); //CRIA UMA CONEXÃO COM O CLIENTE
  25.   if (client) { // SE EXISTE CLIENTE, FAZ
  26.     while (client.connected()) {//ENQUANTO EXISTIR CLIENTE CONECTADO, FAZ
  27.    if (client.available()) { //SE O CLIENTE ESTÁ HABILITADO, FAZ
  28.     char c = client.read(); //LÊ CARACTERE A CARACTERE DA REQUISIÇÃO HTTP
  29.     if (readString.length() < 100) //SE O ARRAY FOR MENOR QUE 100, FAZ
  30.       {
  31.         readString += c; // "readstring" VAI RECEBER OS CARACTERES LIDO
  32.       }  
  33.         if (c == '\n') { //SE ENCONTRAR "\n" É O FINAL DO CABEÇALHO DA REQUISIÇÃO HTTP
  34.           if (readString.indexOf("?") <0){ //SE ENCONTRAR O CARACTER "?", FAZ
  35.           }
  36.           else //SENÃO,FAZ
  37.         if(readString.indexOf("ledParam=1") >0) //SE ENCONTRAR O PARÂMETRO "ledParam=1", FAZ
  38.            {
  39.              digitalWrite(ledPin9, HIGH); //LIGA O LED
  40.              status = 1; //VARIÁVEL RECEBE VALOR 1(SIGNIFICA QUE O LED ESTÁ LIGADO)
  41.            }else{ //SENÃO, FAZ
  42.              digitalWrite(ledPin9, LOW); //DESLIGA O LED
  43.              status = 0; //VARIÁVEL RECEBE VALOR 0(SIGNIFICA QUE O LED ESTÁ DESLIGADO)
  44.            }
  45.         }
  46.           else //SENÃO,FAZ
  47.         if(readString.indexOf("ledParam=1") >0) //SE ENCONTRAR O PARÂMETRO "ledParam=1", FAZ
  48.            {
  49.              digitalWrite(ledPin7, HIGH); //LIGA O LED
  50.              status = 1; //VARIÁVEL RECEBE VALOR 1(SIGNIFICA QUE O LED ESTÁ LIGADO)
  51.            }else{ //SENÃO, FAZ
  52.              digitalWrite(ledPin7, LOW); //DESLIGA O LED
  53.              status = 0; //VARIÁVEL RECEBE VALOR 0(SIGNIFICA QUE O LED ESTÁ DESLIGADO)
  54.            }
  55.            
  56.           client.println("HTTP/1.1 200 OK"); //ESCREVE PARA O CLIENTE A VERSÃO DO HTTP
  57.           client.println("Content-Type: text/html"); //ESCREVE PARA O CLIENTE O TIPO DE CONTEÚDO(texto/html)
  58.           client.println("");
  59.           client.println("<!DOCTYPE HTML>"); //INFORMA AO NAVEGADOR A ESPECIFICAÇÃO DO HTML
  60.           client.println("<html>"); //ABRE A TAG "html"
  61.           client.println("<head>"); //ABRE A TAG "head"
  62.           client.println("<link rel='icon' type='image/png' href='https://blogmasterwalkershop.com.br/arquivos/artigos/sub_wifi/logo_mws.png'/>"); //DEFINIÇÃO DO ICONE DA PÁGINA
  63.           client.println("<title>MasterWalker Shop - Controle de Led via Web server</title>"); //ESCREVE O TEXTO NA PÁGINA
  64.           client.println("</head>"); //FECHA A TAG "head"
  65.           client.println("<body style=background-color:#ADD8E6>"); //DEFINE A COR DE FUNDO DA PÁGINA
  66.           client.println("<center><font color='blue'><h1>MASTERWALKER SHOP</font></center></h1>"); //ESCREVE "MASTERWALKER SHOP" EM COR AZUL NA PÁGINA
  67.           client.println("<h1><center>CONTROLE DE LED</center></h1>"); //ESCREVE "CONTROLE DE LED" NA PÁGINA
  68.  
  69.          
  70.           if (status == 1){ //SE VARIÁVEL FOR IGUAL A 1, FAZ
  71.           //A LINHA ABAIXO CRIA UM FORMULÁRIO CONTENDO UMA ENTRADA INVISÍVEL(hidden) COM O PARÂMETRO DA URL E CRIA UM BOTÃO APAGAR (CASO O LED ESTEJA LIGADO)
  72.           client.println("<center><form method=get name=LED><input type=hidden name=ledParam value=0 /><input type=submit value=APAGAR></form></center>");
  73.           }else{ //SENÃO, FAZ
  74.           //A LINHA ABAIXO CRIA UM FORMULÁRIO CONTENDO UMA ENTRADA INVISÍVEL(hidden) COM O PARÂMETRO DA URL E CRIA UM BOTÃO ACENDER (CASO O LED ESTEJA DESLIGADO)
  75.           client.println("<center><form method=get name=LED><input type=hidden name=ledParam value=1 /><input type=submit value=ACENDER></form></center>");
  76.           }
  77.           client.println("<center><font size='5'>Status atual do LED: </center>"); //ESCREVE "Status atual do LED:" NA PÁGINA
  78.           if (status == 1){ //SE VARIÁVEL FOR IGUAL A 1, FAZ
  79.               client.println("<center><font color='green' size='5'>LIGADO</center>"); //ESCREVE "LIGADO" EM COR VERDE NA PÁGINA
  80.           }else{ //SENÃO, FAZ
  81.               client.println("<center><font color='red' size='5'>DESLIGADO</center><br>"); //ESCREVE "DESLIGADO" EM COR VERMELHA NA PÁGINA
  82.           }
  83.  
  84.  
  85.           if (status == 1){ //SE VARIÁVEL FOR IGUAL A 1, FAZ
  86.           //A LINHA ABAIXO CRIA UM FORMULÁRIO CONTENDO UMA ENTRADA INVISÍVEL(hidden) COM O PARÂMETRO DA URL E CRIA UM BOTÃO APAGAR (CASO O LED ESTEJA LIGADO)
  87.           client.println("<center><form method=get name=LED><input type=hidden name=ledParam value=0 /><input type=submit value=APAGAR></form></center>");
  88.           }else{ //SENÃO, FAZ
  89.           //A LINHA ABAIXO CRIA UM FORMULÁRIO CONTENDO UMA ENTRADA INVISÍVEL(hidden) COM O PARÂMETRO DA URL E CRIA UM BOTÃO ACENDER (CASO O LED ESTEJA DESLIGADO)
  90.           client.println("<center><form method=get name=LED><input type=hidden name=ledParam value=1 /><input type=submit value=ACENDER></form></center>");
  91.           }
  92.           client.println("<center><font size='5'>Status atual do LED: </center>"); //ESCREVE "Status atual do LED:" NA PÁGINA
  93.           if (status == 1){ //SE VARIÁVEL FOR IGUAL A 1, FAZ
  94.               client.println("<center><font color='green' size='5'>LIGADO</center>"); //ESCREVE "LIGADO" EM COR VERDE NA PÁGINA
  95.           }else{ //SENÃO, FAZ
  96.               client.println("<center><font color='red' size='5'>DESLIGADO</center>"); //ESCREVE "DESLIGADO" EM COR VERMELHA NA PÁGINA
  97.           }    
  98.  
  99.          
  100.           client.println("<hr/>"); //TAG HTML QUE CRIA UMA LINHA HORIZONTAL NA PÁGINA
  101.           client.println("<hr/>"); //TAG HTML QUE CRIA UMA LINHA HORIZONTAL NA PÁGINA
  102.           client.println("</body>"); //FECHA A TAG "body"
  103.           client.println("</html>"); //FECHA A TAG "html"
  104.           readString=""; //A VARIÁVEL É REINICIALIZADA
  105.           client.stop(); //FINALIZA A REQUISIÇÃO HTTP E DESCONECTA O CLIENTE
  106.             }
  107.           }
  108.         }
  109.       }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top