Advertisement
Guest User

Untitled

a guest
Feb 11th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.87 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <Ethernet.h>
  3. #include <LiquidCrystal_I2C.h>
  4. #include <Wire.h>
  5. int led =3 ;
  6.  
  7. LiquidCrystal_I2C lcd(0x3F,9,8,7,6,5,4,3,2,POSITIVE);
  8.  
  9. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  10. IPAddress ip(192, 168, 1, 10);
  11. EthernetServer server(80);
  12.  
  13. String requisicao_do_navegador;
  14. String parametro_da_requisicao;
  15.  
  16. void setup()
  17. {
  18. Ethernet.begin(mac, ip);
  19. server.begin();
  20. pinMode(2,OUTPUT);
  21. pinMode(7,OUTPUT);
  22. lcd.begin(20,4);
  23. pinMode(3,OUTPUT);
  24. analogWrite(3,150);
  25. }
  26.  
  27. void loop()
  28. {
  29. lcd.setCursor(1,1);
  30. lcd.print("olaaa");
  31.  
  32. EthernetClient client = server.available();
  33.  
  34. if (client) {
  35. boolean currentLineIsBlank = true;
  36. while (client.connected()) {
  37. if (client.available()) {
  38. char c = client.read();
  39. requisicao_do_navegador += c;
  40.  
  41. if (c == '\n' && currentLineIsBlank )
  42. {
  43. if (definindo_a_requisicao(&requisicao_do_navegador)) {
  44. parametro_da_requisicao = pegar_parametro_da_requisicao(&requisicao_do_navegador);
  45. Serial.println(parametro_da_requisicao);
  46.  
  47. client.println("HTTP/1.1 200 OK");
  48. client.println("Content-Type: text/html");
  49. client.println("Connection: close");
  50. client.println();
  51.  
  52. //Conteudo da Página HTML
  53. client.println("<!DOCTYPE html>");
  54. client.println("<html>");
  55. client.println("<head>");
  56. client.println("<title>Automacao residencial</title>");
  57. client.println("</head>");
  58. client.println("<body>");
  59. client.println("<h1><font color=#4279c7>Servidor Web</font></h1>");
  60. client.println("<hr/>");
  61. client.println("<h1>Saidas digitais</h1>");
  62.  
  63. client.println("<form method=\"get\">");
  64.  
  65. saida(client);
  66.  
  67. client.println("<br/>");
  68. saida2(client);
  69. client.println("</form>");
  70.  
  71.  
  72. client.println("</body>");
  73. client.println("</html>");
  74. } else {
  75. client.println("HTTP/1.1 200 OK");
  76. }
  77.  
  78. requisicao_do_navegador = "";
  79. break;
  80. }
  81.  
  82. if (c == '\n') {
  83. currentLineIsBlank = true;
  84. }
  85. else if (c != '\r') {
  86. currentLineIsBlank = false;
  87. }
  88. }
  89. }
  90. delay(1);
  91. client.stop();
  92. }
  93. }
  94.  
  95. void saida(EthernetClient cl)
  96. {
  97.  
  98. if (parametro_da_requisicao.indexOf("P2=1") > -1)
  99. {
  100. digitalWrite(2, HIGH);
  101. cl.println("<input type=\"checkbox\" name=\"P2\" value=\"1\" onclick=\"submit();\" checked > lampada 1 ligada");
  102. }
  103. else
  104. {
  105. digitalWrite(2, LOW);
  106. cl.println("<input type=\"checkbox\" name=\"P2\" value=\"1\" onclick=\"submit();\" > lampada 1 desligada");
  107. }
  108.  
  109. }
  110.  
  111. void saida2(EthernetClient cl)
  112. {
  113.  
  114. if (parametro_da_requisicao.indexOf("P7=1") > -1)
  115. {
  116. digitalWrite(7, HIGH);
  117. cl.println("<input type=\"checkbox\" name=\"P7\" value=\"1\" onclick=\"submit();\" checked > lampada 2 ligada");
  118. }
  119. else
  120. {
  121. digitalWrite(7, LOW);
  122. cl.println("<input type=\"checkbox\" name=\"P7\" value=\"1\" onclick=\"submit();\" > lampada 2 desligada");
  123. }
  124.  
  125. }
  126.  
  127. String pegar_parametro_da_requisicao(String *requisicao) {
  128. int pos_inicial, pos_final;
  129. String parametro;
  130.  
  131.  
  132. pos_inicial = (*requisicao).indexOf("GET") + 3;
  133. pos_final = (*requisicao).indexOf("HTTP/") - 1;
  134. parametro = (*requisicao).substring(pos_inicial,pos_final);
  135. parametro.trim();
  136.  
  137. return parametro;
  138. }
  139.  
  140. bool definindo_a_requisicao(String *requisicao) {
  141. String parametro;
  142. bool requisicao_desejada = false;
  143.  
  144. parametro = pegar_parametro_da_requisicao(requisicao);
  145.  
  146. if (parametro == "/") {
  147. requisicao_desejada = true;
  148. }
  149.  
  150. if (parametro.substring(0,2) == "/?") {
  151. requisicao_desejada = true;
  152. }
  153.  
  154. return requisicao_desejada;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement