Advertisement
orneto

Untitled

Aug 25th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.51 KB | None | 0 0
  1. #include<ESP8266WiFi.h>
  2. #include<WiFiClient.h>
  3.  
  4. WiFiServer server(80);
  5.  
  6. void setup() {
  7. // put your setup code here, to run once:
  8.  
  9. //Inicializa a Serial apenas para efeito de log
  10. Serial.begin(115200);
  11.  
  12. //Configura o GPIO0 e GPIO2 como output, ou seja, como
  13. //saída para podermos alterar o seu valor
  14. pinMode(5, OUTPUT);
  15. pinMode(4, OUTPUT);
  16.  
  17. //Deixa o GPIO0 e o GPIO2 com saída LOW
  18. digitalWrite(5, 0);
  19. digitalWrite(4, 0);
  20.  
  21. Serial.print("Conectando");
  22. //Faz o ESP se conectar à rede WiFi. Ssid é Wifi e a senha é 12345678
  23. WiFi.begin("Wifi", "12345678");
  24.  
  25. while (WiFi.status() != WL_CONNECTED)
  26. {
  27. //Esperamos 100 milisegundos
  28. delay(100);
  29. Serial.print(".");
  30. }
  31. //Se chegou aqui é porque conectou à rede, então mostramos no monitor serial para termos um feedback
  32. Serial.println("");
  33. Serial.println("Conectou");
  34.  
  35. //Configurações do IP fixo. Você pode alterar conforme a sua rede
  36. IPAddress ip(192, 168, 2, 8);
  37. IPAddress gateway(192, 168, 2, 1);
  38. IPAddress subnet(255, 255, 255, 0);
  39. Serial.print("Configurando IP fixo para : ");
  40. Serial.println(ip);
  41.  
  42. //Envia a configuração
  43. WiFi.config(ip, gateway, subnet);
  44.  
  45. //Inicializa o server que criamos na porta 80
  46. server.begin();
  47.  
  48. //Mostramos no monitor serial o IP que o ESP possui para verificarmos se é o mesmo que configuramos
  49. Serial.print("Server em: ");
  50. Serial.println(WiFi.localIP());
  51. }
  52.  
  53. void loop() {
  54.  
  55. //Verifica se algum cliente está tentando se conectar
  56. WiFiClient client = server.available();
  57. if (!client)
  58. {
  59. //Se não houver nenhum cliente podemos retornar pois não há nada a fazer
  60. return;
  61. }
  62. Serial.println("Novo cliente conectou");
  63. //Esperamos até que o cliente nos envie a requisição
  64. while (!client.available())
  65. {
  66. delay(100);
  67. }
  68. //Fazemos a leitura da requisição
  69. String req = client.readStringUntil('\r');
  70. Serial.print("Requisição: ");
  71. Serial.println(req);
  72. //Este é o html que iremos retornar para o cliente
  73. //É composto basicamente de dois botões (ON e OFF) para os pinos e dois botões (ON e OFF) para o GPIO2
  74. //A parte que nos interessa é o <a href=' com a ação vinculada a cada botão
  75. //Quando clicamos em um destes botões essa informação chegará até o ESP para que ele verifique qual ação deve executar
  76. //A parte dentro de '<style>' é apenas para modificarmos o visual da página que será exibida, você pode alterá-la como queira
  77. String html =
  78. "<html>"
  79. "<head>"
  80. "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'/>"
  81. "<title>ESP8266</title>"
  82. "<style>"
  83. "body{"
  84. "text-align: center;"
  85. "font-family: sans-serif;"
  86. "font-size:14px;"
  87. "padding: 25px;"
  88. "}"
  89.  
  90. "p{"
  91. "color:#444;"
  92. "}"
  93. "button{"
  94. "outline: none;"
  95. "border: 2px solid #1fa3ec;"
  96. "border-radius:18px;"
  97. "background-color:#FFF;"
  98. "color: #1fa3ec;"
  99. "padding: 10px 50px;"
  100. "}"
  101. "button:active{"
  102. "color: #fff;"
  103. "background-color:#1fa3ec;"
  104. "}"
  105. "</style>"
  106. "</head>"
  107. "<body>"
  108. "<p>D1</p>"
  109. "<p><a href='?acao=D1On'><button>ON</button></a></p>"
  110. "<p><a href='?acao=D1Off'><button>OFF</button></a></p>"
  111. "<p>D2</p>"
  112. "<p><a href='?acao=D2On'><button>ON</button></a></p>"
  113. "<p><a href='?acao=D2Off'><button>OFF</button></a></p>"
  114. "</body>"
  115. "</html>";
  116. //Escreve o html no buffer que será enviado para o cliente
  117. client.print(html);
  118.  
  119. //Envia os dados do buffer para o cliente
  120. client.flush();
  121.  
  122. //Verifica se a requisição possui a ação gpio0On
  123. if (req.indexOf("acao=D1On") != -1)
  124. {
  125. //Se possui a ação D1On colocamos a saída do D1 como alta
  126. digitalWrite(5,1);
  127. }
  128. //Senão, verifica se a requisição possui a ação D1Off
  129. else if (req.indexOf("acao=D1Off") != -1)
  130. {
  131. //Se possui a ação D1Off colocamos a saída do D1 como baixa
  132. digitalWrite(5,0); //problema nessa linha
  133. }
  134. //Senão, verifica se a requisição possui a ação D2On
  135. if(req.indexOf("acao=D2On") != -1)
  136. {
  137. //Se possui a ação D2On colocamos a saída do D2 como alta
  138. digitalWrite(4,1);
  139. }
  140. //Senão, verifica se a requisição possui a ação gpio2Off
  141. else if (req.indexOf("acao=D2Off") != -1)
  142. {
  143.  
  144. //Se possui a ação gpio0Off colocamos a saída do GPIO2 como baixa
  145. digitalWrite(4,0);
  146.  
  147. //Fecha a conexão com o cliente
  148. client.stop();
  149. Serial.println("Cliente desconectado");
  150. }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement