Advertisement
Guest User

Arduino – Ethernet Shield W5100 (Web server)

a guest
Nov 19th, 2019
1,077
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.09 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement