Guest User

Arduino – Ethernet Shield W5100 (Web server)

a guest
Nov 19th, 2019
705
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×