{"id":3853,"date":"2019-08-27T17:51:32","date_gmt":"2019-08-27T20:51:32","guid":{"rendered":"https:\/\/www.usinainfo.com.br\/blog\/?p=3853"},"modified":"2025-03-21T09:33:10","modified_gmt":"2025-03-21T12:33:10","slug":"projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet","status":"publish","type":"post","link":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/","title":{"rendered":"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet"},"content":{"rendered":"<p>Atualmente a tecnologia iot (internet das coisas) esta se expandindo de uma forma incr\u00edvel, possibilitando que o acesso a produtos de baixo custo e alto despenho chegue \u00e0s m\u00e3os dos usu\u00e1rios finais mais rapidamente, permitindo um salto no desenvolvimento do mundo Maker. Hoje em especial, vamos trabalhar com um Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet.<\/p>\n<p>Vale mencionar que o m\u00f3dulo NodeMCU ESP32 Iot com WiFi e Bluetooth apresenta muitos recursos que podem ser usufru\u00eddos imediatamente, o que vem a possibilitar maiores formas de uso e intera\u00e7\u00e3o com sensores e dispositivos eletr\u00f4nicos, permitindo automatizar quase tudo.<\/p>\n<p>Nesse post vai ser poss\u00edvel aprender a controlar um M\u00f3dulo Rel\u00e9 5v 10a 4 Canais por meio dia uma Rede Wireless gerada pelo esp32 atrav\u00e9s do endere\u00e7o IP.<\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<h2>Materiais Necess\u00e1rios:<\/h2>\n<p>Usaremos os seguintes materiais nesse tutorial:<\/p>\n<p>\u2022 1 x\u00a0<a href=\"https:\/\/www.usinainfo.com.br\/reles\/modulo-rele-5v-10a-4-canais-com-optoacopladores-2534.html\" target=\"_blank\" rel=\"noopener noreferrer\">M\u00f3dulo Rel\u00e9 5v 10a 4 Canais Com Optoacopladores<\/a>;<\/p>\n<p>\u2022 1 x <a href=\"https:\/\/www.usinainfo.com.br\/nodemcu\/nodemcu-esp32-iot-com-wifi-e-bluetooth-38-pinos-5346.html\" target=\"_blank\" rel=\"noopener noreferrer\">Esp32 Nodemcu Iot;<\/a><\/p>\n<p>\u2022 1 x <a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers-345\" target=\"_blank\" rel=\"noopener noreferrer\">Jumpers;<\/a><\/p>\n<p>\u2022 1 x <a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers\/protoboard-400-pontos-para-montagem-de-projetos-2323.html\" target=\"_blank\" rel=\"noopener noreferrer\">Protoboard.<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Esquem\u00e1tico do Projeto Esp32 Wifi<\/h2>\n<p>A liga\u00e7\u00e3o do m\u00f3dulo rele ao Esp32 \u00e9 muito simples. A alimenta\u00e7\u00e3o do circuito pode ser feita tanto por Usb quanto por fonte de alimenta\u00e7\u00e3o.<\/p>\n<div id=\"attachment_3902\" style=\"width: 664px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/esquema-esp32-rele-para-automacao.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3902\" class=\"wp-image-3902 \" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/esquema-esp32-rele-para-automacao.jpg\" alt=\"Esquem\u00e1tico do Projeto Esp32 Wifi com Reles para Automa\u00e7\u00e3o\" width=\"654\" height=\"439\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/esquema-esp32-rele-para-automacao.jpg 992w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/esquema-esp32-rele-para-automacao-300x201.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/esquema-esp32-rele-para-automacao-768x516.jpg 768w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/a><p id=\"caption-attachment-3902\" class=\"wp-caption-text\"><em>Esquem\u00e1tico do Projeto Esp32 Wifi com Reles para Automa\u00e7\u00e3o <\/em><\/p><\/div>\n<p>Em quest\u00e3o das conex\u00f5es ser\u00e3o usados os pinos Vin e Gnd para alimentar o circuito e as GPIOs D0 , D15 , D4 , D2 para controle dos reles.<\/p>\n<p>&nbsp;<\/p>\n<h2>Teste Pr\u00e1tico<\/h2>\n<p><iframe loading=\"lazy\" title=\"Projeto ESP32 WIFI para Automa\u00e7\u00e3o com Rel\u00e9\" width=\"848\" height=\"477\" src=\"https:\/\/www.youtube.com\/embed\/ezXD99MaySM?feature=oembed\" style=\"border: none\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>C\u00f3digo<\/h2>\n<p>&nbsp;<\/p>\n<h3>Introdu\u00e7\u00e3o<\/h3>\n<p>Ao ligar o esp32 ele ir\u00e1 gerar uma rede com nome e senha definidos pelo leitor, enquanto isto o esp32 ir\u00e1 mandar ao monitor serial do computador o seu endere\u00e7o IP que \u00e9 o que iremos utilizar para controlar os reles, nos conectando a esta rede e digitando no web navegador do seu celular, tablet ou computador este IP dito no monitor serial e l\u00e1 estar\u00e1 os bot\u00f5es para ligar ou desligar os mesmos, que poder\u00e3o ser utilizados para acionar l\u00e2mpadas, ligar eletrodom\u00e9sticos, equipamentos, etc.<\/p>\n<p>Tudo ser\u00e1 feito por um WebServer que ser\u00e1 criado. Mas o que \u00e9 um WebServer? Explicando de forma simples \u00e9 um programa que responde \u00e0s solicita\u00e7\u00f5es dos clientes, fazendo o processamento de c\u00f3digos e altera\u00e7\u00f5es de p\u00e1ginas web e enviando uma resposta de volta ao cliente.<\/p>\n<p>O que \u00e9 um cliente? Cliente vai ser quem acessar o WebServer e fazer requisi\u00e7\u00f5es, pode se ter v\u00e1rios clientes ao mesmo tempo fazendo requisi\u00e7\u00f5es. Que podem ser celulares, tablets, computadores e at\u00e9 mesmo equipamentos eletr\u00f4nicos como outros esp32 , Raspberry, etc.<\/p>\n<p>&nbsp;<\/p>\n<h3>Cabe\u00e7alho<\/h3>\n<p>Primeiramente \u00e9 necess\u00e1rio incluir as bibliotecas, ap\u00f3s iremos fazer a defini\u00e7\u00e3o dos pinos de cada rele com o valor das portas GPIOs conectadas ao esp32 e aos reles. Caso voc\u00ea queira mudar o pino, basta alterar o valor dessas defini\u00e7\u00f5es e o c\u00f3digo continuar\u00e1 funcionando perfeitamente.<\/p>\n<p>Tamb\u00e9m iremos criar 4 vari\u00e1veis booleanas para fazer a invers\u00e3o de estado dos reles. Em seguida passamos os par\u00e2metros para a configura\u00e7\u00e3o da rede que dever\u00e1 ser configurado. Por fim, na \u00faltima linha do cabe\u00e7alho iremos definir a porta que o servidor ir\u00e1 utilizar. Geralmente \u00e9 utilizado a porta 80. Veja o trecho descrito abaixo:<\/p>\n<pre class=\"lang:c# decode:true \">#include &lt;WiFi.h&gt;\r\n#include &lt;WiFiClient.h&gt;\r\n#include &lt;WiFiAP.h&gt;\r\n\r\n#define Rele1 0\r\n#define Rele2 15\r\n#define Rele3 2\r\n#define Rele4 4\r\n\r\nbool Estado_Do_Rele1 = LOW;\r\nbool Estado_Do_Rele2 = LOW;\r\nbool Estado_Do_Rele3 = LOW;\r\nbool Estado_Do_Rele4 = LOW;\r\n\r\n\/\/ substitua os dados entre par\u00eanteses com o nome da Rede e a senha desejados\r\nconst char *ssid = \"NomeDaRede\";\r\nconst char *password = \"SenhaDaRede\";\r\n\r\nWiFiServer server(80);<\/pre>\n<p>&nbsp;<\/p>\n<h3>Void setup()<\/h3>\n<p>Feito isto v\u00e1 ao void setup() aonde ser\u00e1 configurada as GPIOs dos reles como sa\u00edda, iniciar o monitor serial para podermos visualizar a execu\u00e7\u00e3o do nosso programa, e a rede com o SSID e senha definidos anteriormente e mostrar no monitor serial o IP da rede que ser\u00e1 necess\u00e1rio para acessar a p\u00e1gina web, por fim inicia o servidor e mostra na serial.<\/p>\n<pre class=\"lang:c# decode:true\">void setup() {\r\n  pinMode(Rele1, OUTPUT);\r\n  pinMode(Rele2, OUTPUT);\r\n  pinMode(Rele3, OUTPUT);\r\n  pinMode(Rele4, OUTPUT);\r\n\r\n  Serial.begin(115200);\r\n  Serial.println();\r\n  Serial.println(\"configurando...\");\r\n\r\n  \/\/ Voc\u00ea pode remover o par\u00e2metro de senha se quiser que\r\n  \/\/ a rede gerada seja aberta.\r\n  WiFi.softAP(ssid, password);\r\n\r\n  IPAddress myIP = WiFi.softAPIP();\r\n  Serial.print(\"O Endere\u00e7o IP Da Rede : \");\r\n  Serial.println(myIP);\r\n\r\n  \/\/ inicia o webserver\r\n  server.begin();\r\n\r\n  Serial.println(\"Servidor Iniciado!!\");\r\n}<\/pre>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<h3>Void loop()<\/h3>\n<p>Aqui no come\u00e7o do void loop() j\u00e1 vamos verificar e armazenar na vari\u00e1vel client se tiver clientes conectados na rede com dados a serem transmitidos.<\/p>\n<pre class=\"lang:c# decode:true\">void loop() {\r\n\r\nWiFiClient client = server.available();<\/pre>\n<p>Iremos verificar se tem clientes conectados na nossa rede. Se tiver, vamos imprimir no monitor serial avisando. E criaremos uma String para manter os dados recebidos do cliente.<\/p>\n<pre class=\"lang:c# decode:true\">if (client) {\r\nSerial.println(\"Novo Cliente.\");\r\nString currentLine = \"\";<\/pre>\n<p>Enquanto tiver um cliente conectado iremos ficar na estrutura de repeti\u00e7\u00e3o while.<\/p>\n<pre class=\"lang:c# decode:true \">while (client.connected()) {<\/pre>\n<p>Se tiver informa\u00e7\u00f5es para ler do cliente, ou seja, se ele se conectou na rede e esta tentando acessar o IP por exemplo, ap\u00f3s iremos criar um vari\u00e1vel char para armazenar essas informa\u00e7\u00f5es e mostramos no monitor serial. Se essa informa\u00e7\u00e3o for um caractere de nova linha executaremos o if.<\/p>\n<pre class=\"lang:c# decode:true\">if (client.available()) {\r\nchar c = client.read();\r\nSerial.write(c);\r\nif (c == '\\n') {<\/pre>\n<p>Em seguida iremos verificar se a mensagem terminou e n\u00e3o tem mais dados sendo recebidos.<\/p>\n<pre class=\"lang:c# decode:true\">if (currentLine.length() == 0) {<\/pre>\n<p>Feito isto iremos come\u00e7ar a comunica\u00e7\u00e3o por http e dizer que a comunica\u00e7\u00e3o come\u00e7ou com sucesso e mandaremos a mensagem (HTTP \/ 1.1 200 OK) e diremos ao cliente que tipo de conte\u00fado que est\u00e1 por vir e, em seguida, uma linha em branco notificando-o de que a mensagem foi recebida com sucesso.<\/p>\n<pre class=\"lang:c# decode:true\">client.println(\"HTTP\/1.1 200 OK\");\r\nclient.println(\"Content-type:text\/html\");\r\nclient.println();<\/pre>\n<p>Bom agora iremos mandar as informa\u00e7\u00f5es ao navegador do cliente como deve ser a nossa p\u00e1gina e dizer oque fazer quando clicar em cada bot\u00e3o da p\u00e1gina.<\/p>\n<p>As fun\u00e7\u00f5es cliente.print() ir\u00e3o enviar 5 comandos\/tags em HTML ao navegador, que caso voc\u00ea queira alterar, pode programar o HTML ao seu gosto.<\/p>\n<p>A primeira parte iremos definir o estilo, ou seja: cores, tamanho das letras, etc. E tamb\u00e9m iremos criar endere\u00e7os no nosso webserver, que ao serem acessados ir\u00e3o alterar o estado dos reles.<\/p>\n<pre class=\"lang:c# decode:true\">\/\/ configura\u00e7\u00e3o de estilo\r\nclient.print(\"&lt;style type=\\\"text\/css\\\"&gt; a{margin: 50px 50px; background: #000000; color: #ffffff; text-decoration: none; padding: 1% 20% 1%; border-radius: 10px; font-size: 8.0em;}&lt;\/style&gt;\");\r\n\r\n\/\/ o conte\u00fado do cabe\u00e7alho HTTP\r\nclient.print(\"&lt;a href=\\\"\/T1\\\"&gt;Rele 1. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\nclient.print(\"&lt;a href=\\\"\/T2\\\"&gt;Rele 2. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\nclient.print(\"&lt;a href=\\\"\/T3\\\"&gt;Rele 3. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\nclient.print(\"&lt;a href=\\\"\/T4\\\"&gt;Rele 4. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");<\/pre>\n<p>Ap\u00f3s isto iremos imprimir uma linha em branco para o nosso cliente, em resposta a comunica\u00e7\u00e3o http (dizendo que a mesma foi completa). E sairemos do la\u00e7o while.<\/p>\n<pre class=\"lang:c# decode:true\">client.println();\r\n\r\nbreak;<\/pre>\n<p>Se tiver uma nova linha ent\u00e3o iremos limpar a linha atual.<\/p>\n<pre class=\"lang:c# decode:true \">} else\r\ncurrentLine = \"\";\r\n}<\/pre>\n<p>Se o que tivermos for qualquer outra coisa diferente de um caractere de retorno de linha \\r iremos adicionar ao final da nossa vari\u00e1vel currentLine.<\/p>\n<pre class=\"lang:c# decode:true\">} else if (c != '\\r') {\r\ncurrentLine += c;\r\n}<\/pre>\n<p>Feito isto, verificaremos se a requisi\u00e7\u00e3o feito pelo cliente foi de trocar o estado de algum que pode ser \/T1 ,\/T2 ,\/T3 ou \/T4 que ira inverter o estado do rele correspondente, Como? se estiver ligado ele vai dizer a sua vari\u00e1vel o seu estado no caso ligado e quando for pedido para alterar o estado verifica se estava ligada ou desligada e inverte o estado que no caso desligaria o rele.<\/p>\n<pre class=\"lang:c# decode:true\">if (currentLine.endsWith(\"GET \/T1\")) {\r\n\r\nif (Estado_Do_Rele1 == LOW) {\r\ndigitalWrite(Rele1, HIGH);\r\nEstado_Do_Rele1 = HIGH;\r\n} else {\r\ndigitalWrite(Rele1, LOW);\r\nEstado_Do_Rele1 = LOW;\r\n}\r\n}\r\nif (currentLine.endsWith(\"GET \/T2\")) {\r\n\r\nif (Estado_Do_Rele2 == LOW) {\r\ndigitalWrite(Rele2, HIGH);\r\nEstado_Do_Rele2 = HIGH;\r\n} else {\r\ndigitalWrite(Rele2, LOW);\r\nEstado_Do_Rele2 = LOW;\r\n}\r\n}\r\nif (currentLine.endsWith(\"GET \/T3\")) {\r\n\r\nif (Estado_Do_Rele3 == LOW) {\r\ndigitalWrite(Rele3, HIGH);\r\nEstado_Do_Rele3 = HIGH;\r\n} else {\r\ndigitalWrite(Rele3, LOW);\r\nEstado_Do_Rele3 = LOW;\r\n}\r\n}\r\nif (currentLine.endsWith(\"GET \/T4\")) {\r\n\r\nif (Estado_Do_Rele4 == LOW) {\r\ndigitalWrite(Rele4, HIGH);\r\nEstado_Do_Rele4 = HIGH;\r\n} else {\r\ndigitalWrite(Rele4, LOW);\r\nEstado_Do_Rele4 = LOW;\r\n}\r\n}\r\n}\r\n}\r\n}<\/pre>\n<p>Por fim, iremos terminar a conex\u00e3o com o cliente atrav\u00e9s da fun\u00e7\u00e3o cliente.stop() e mostraremos na serial que o cliente foi desconectado.<\/p>\n<pre class=\"lang:c# decode:true\">client.stop();\r\nSerial.println(\"Cliente desconectado.\");\r\n}<\/pre>\n<p>O c\u00f3digo completo do nosso programa de controle de reles se encontra abaixo.<\/p>\n<pre class=\"lang:c# decode:true \">#include &lt;WiFi.h&gt;\r\n#include &lt;WiFiAP.h&gt;\r\n#include &lt;WiFiClient.h&gt;\r\n\r\n\r\n#define Rele1 0\r\n#define Rele2 15\r\n#define Rele3 2\r\n#define Rele4 4\r\n\r\nbool Estado_Do_Rele1 = LOW;\r\nbool Estado_Do_Rele2 = LOW;\r\nbool Estado_Do_Rele3 = LOW;\r\nbool Estado_Do_Rele4 = LOW;\r\n\r\n\/\/ substitua os dados entre par\u00eanteses com o nome da Rede e a senha desejados\r\nconst char *ssid = \"NomeDaRede\";\r\nconst char *password = \"SenhaDaRede\";\r\n\r\nWiFiServer server(80);\r\n\r\nvoid setup() {\r\n  pinMode(Rele1, OUTPUT);\r\n  pinMode(Rele2, OUTPUT);\r\n  pinMode(Rele3, OUTPUT);\r\n  pinMode(Rele4, OUTPUT);\r\n\r\n  Serial.begin(115200);\r\n  Serial.println();\r\n  Serial.println(\"configurando...\");\r\n\r\n  \/\/ Voc\u00ea pode remover o par\u00e2metro de senha se quiser que\r\n  \/\/ a rede gerada seja aberta.\r\n  WiFi.softAP(ssid, password);\r\n  IPAddress myIP = WiFi.softAPIP();\r\n  Serial.print(\"O Endere\u00e7o IP Da Rede : \");\r\n  Serial.println(myIP);\r\n\r\n  \/\/ inicia o webserver\r\n  server.begin();\r\n\r\n  Serial.println(\"Servidor Iniciado!!\");\r\n}\r\n\r\nvoid loop() {\r\n\r\n  WiFiClient client = server.available(); \/\/ verifica e armazena se tem clientes\r\n                                          \/\/ conectados na rede\r\n\r\n  if (client) {                      \/\/ se voc\u00ea conseguir um cliente,\r\n    Serial.println(\"Novo Cliente.\"); \/\/ imprime uma mensagem pela porta serial\r\n    String currentLine =\r\n        \"\"; \/\/ faz uma String para manter os dados recebidos do cliente\r\n    while (client.connected()) { \/\/ loop enquanto o cliente est\u00e1 conectado\r\n      if (client.available()) {  \/\/ se houver bytes para ler do cliente,\r\n        char c = client.read();  \/\/ leia um byte e depois\r\n        Serial.write(c);         \/\/ imprima o monitor serial\r\n        if (c == '\\n') {         \/\/ se o byte for um caractere de nova linha\r\n\r\n          \/* se a linha atual estiver em branco, voc\u00ea ter\u00e1 dois caracteres de\r\n          nova linha em uma linha. esse \u00e9 o fim da solicita\u00e7\u00e3o HTTP do cliente,\r\n          ent\u00e3o envie uma resposta: *\/\r\n          if (currentLine.length() == 0) {\r\n            \/* Os cabe\u00e7alhos HTTP sempre come\u00e7am com um c\u00f3digo de resposta (por\r\n            exemplo, HTTP \/ 1.1 200 OK) e um tipo de conte\u00fado para que o cliente\r\n            saiba o que est\u00e1 por vir e, em seguida, uma linha em branco: *\/\r\n            client.println(\"HTTP\/1.1 200 OK\");\r\n            client.println(\"Content-type:text\/html\");\r\n            client.println();\r\n\r\n            \/\/ configura\u00e7\u00e3o de estilo do site\r\n            client.print(\r\n                \"&lt;style type=\\\"text\/css\\\"&gt; a{margin: 50px 50px; background: \"\r\n                \"#000000; color: #ffffff; text-decoration: none; padding: 1% \"\r\n                \"20% 1%; border-radius: 10px; font-size: 8.0em;}&lt;\/style&gt;\");\r\n            \/\/ o conte\u00fado do cabe\u00e7alho HTTP\r\n            client.print(\"&lt;a href=\\\"\/T1\\\"&gt;Rele 1. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\n            client.print(\"&lt;a href=\\\"\/T2\\\"&gt;Rele 2. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\n            client.print(\"&lt;a href=\\\"\/T3\\\"&gt;Rele 3. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\n            client.print(\"&lt;a href=\\\"\/T4\\\"&gt;Rele 4. &lt;\/a&gt; &lt;\/br&gt;&lt;\/br&gt;&lt;\/br&gt;\");\r\n\r\n            \/\/ A resposta HTTP termina com outra linha em branco:\r\n            client.println();\r\n            \/\/ sair do loop while:\r\n            break;\r\n          } else { \/\/ se voc\u00ea tiver uma nova linha, ent\u00e3o limpe a linha atual:\r\n            currentLine = \"\";\r\n          }\r\n        } else if (c != '\\r') { \/\/ se voc\u00ea tiver qualquer outra coisa al\u00e9m de um\r\n                                \/\/ caractere de retorno de linha,\r\n          currentLine += c; \/\/ adicion\u00e1-lo ao final da linha atual\r\n        }\r\n\r\n        \/\/ Verifica se o pedido do cliente foi para atualizar algum dos reles\r\n        \/\/ (GET \/T)\r\n\r\n        if (currentLine.endsWith(\"GET \/T1\")) {\r\n\r\n          if (Estado_Do_Rele1 == LOW) {\r\n            digitalWrite(Rele1, HIGH);\r\n            Estado_Do_Rele1 = HIGH;\r\n          } else {\r\n            digitalWrite(Rele1, LOW);\r\n            Estado_Do_Rele1 = LOW;\r\n          }\r\n        }\r\n        if (currentLine.endsWith(\"GET \/T2\")) {\r\n\r\n          if (Estado_Do_Rele2 == LOW) {\r\n            digitalWrite(Rele2, HIGH);\r\n            Estado_Do_Rele2 = HIGH;\r\n          } else {\r\n            digitalWrite(Rele2, LOW);\r\n            Estado_Do_Rele2 = LOW;\r\n          }\r\n        }\r\n        if (currentLine.endsWith(\"GET \/T3\")) {\r\n\r\n          if (Estado_Do_Rele3 == LOW) {\r\n            digitalWrite(Rele3, HIGH);\r\n            Estado_Do_Rele3 = HIGH;\r\n          } else {\r\n            digitalWrite(Rele3, LOW);\r\n            Estado_Do_Rele3 = LOW;\r\n          }\r\n        }\r\n        if (currentLine.endsWith(\"GET \/T4\")) {\r\n\r\n          if (Estado_Do_Rele4 == LOW) {\r\n            digitalWrite(Rele4, HIGH);\r\n            Estado_Do_Rele4 = HIGH;\r\n          } else {\r\n            digitalWrite(Rele4, LOW);\r\n            Estado_Do_Rele4 = LOW;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n  \/\/ termina a conex\u00e3o com o cliente\r\n  client.stop();\r\n  Serial.println(\"Cliente desconectado.\");\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h2>Demonstra\u00e7\u00e3o<\/h2>\n<p>Bom, ap\u00f3s programarmos o Esp32 com o programa acima iremos ver no monitor serial as informa\u00e7\u00f5es do nosso sistema, entre ela o endere\u00e7o IP para acessar o nosso WebServer.<\/p>\n<p>O acesso pode ser feito tanto pelo computador quanto o celular ou tablet.<\/p>\n<p>Ap\u00f3s conectarmos na nossa rede iremos acessar um web navegador e digitar o IP e voc\u00ea devera ver uma tela com op\u00e7\u00f5es para controlar os nossos reles. No celular voc\u00ea dever\u00e1 ver algo assim:<\/p>\n<div id=\"attachment_3858\" style=\"width: 361px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-controle-de-rele-pela-internet-smartphone.jpg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3858\" class=\"wp-image-3858\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-controle-de-rele-pela-internet-smartphone.jpg\" alt=\"Projeto ESP32 Controle de Rele Vers\u00e3o Mobile\" width=\"351\" height=\"624\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-controle-de-rele-pela-internet-smartphone.jpg 720w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-controle-de-rele-pela-internet-smartphone-169x300.jpg 169w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-controle-de-rele-pela-internet-smartphone-576x1024.jpg 576w\" sizes=\"auto, (max-width: 351px) 100vw, 351px\" \/><\/a><p id=\"caption-attachment-3858\" class=\"wp-caption-text\">Projeto ESP32 Controle de Rele Vers\u00e3o Mobile<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>J\u00e1 acessando pelo computador, a p\u00e1gina ser\u00e1 assim:<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_3859\" style=\"width: 485px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-controle-de-reles-pela-internet-desktop.jpg\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3859\" class=\"wp-image-3859\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-controle-de-reles-pela-internet-desktop.jpg\" alt=\"Projeto ESP32 Controle de Rele Vers\u00e3o Desktop\" width=\"475\" height=\"338\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-controle-de-reles-pela-internet-desktop.jpg 1394w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-controle-de-reles-pela-internet-desktop-300x213.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-controle-de-reles-pela-internet-desktop-768x547.jpg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-controle-de-reles-pela-internet-desktop-1024x729.jpg 1024w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/a><p id=\"caption-attachment-3859\" class=\"wp-caption-text\">Projeto ESP32 Controle de Rele Vers\u00e3o Desktop<\/p><\/div>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Por fim, este Projeto <a href=\"https:\/\/www.usinainfo.com.br\/esp32-611\" target=\"_blank\" rel=\"noopener noreferrer\">Esp32<\/a> Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet propomos um controle por protocolo http, foi um c\u00f3digo que pode ser usado como base para ser desenvolvido sistemas mais complexos e com mais funcionalidades nos mais diversos tipos de automa\u00e7\u00e3o residencial e projetos rob\u00f3ticos.<\/p>\n<p>Em breve iremos ter mais tutoriais desenvolvidos com o esp32 NodeMCU. Aguarde e fique atento.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Atualmente a tecnologia iot (internet das coisas) esta se expandindo de uma forma incr\u00edvel, possibilitando que o acesso a produtos de baixo custo e alto despenho chegue \u00e0s m\u00e3os dos usu\u00e1rios finais mais rapidamente, permitindo um salto no desenvolvimento do mundo Maker. Hoje em especial, vamos trabalhar com um Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet. Vale mencionar que o m\u00f3dulo NodeMCU ESP32 Iot com WiFi e Bluetooth apresenta muitos recursos que podem ser usufru\u00eddos imediatamente, o que vem a possibilitar maiores formas de uso e intera\u00e7\u00e3o com sensores e dispositivos eletr\u00f4nicos, permitindo automatizar quase tudo. Nesse post vai ser poss\u00edvel aprender a controlar um M\u00f3dulo Rel\u00e9 5v 10a 4 Canais por meio dia uma Rede [&hellip;]<\/p>\n","protected":false},"author":17,"featured_media":3886,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[124,153,152,151],"class_list":["post-3853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp32","tag-automacao-residencial","tag-projeto-controle-de-reles","tag-projeto-esp32","tag-projeto-esp32-wifi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Projeto Esp32 Wifi no Controle de Rel\u00e9s pela Internet - Blog UsinaInfo<\/title>\n<meta name=\"description\" content=\"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet tem no Blog UsinaInfo. Tutorial Completo com Biblioteca e Passo a Passo. Confira.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Projeto Esp32 Wifi no Controle de Rel\u00e9s pela Internet - Blog UsinaInfo\" \/>\n<meta property=\"og:description\" content=\"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet tem no Blog UsinaInfo. Tutorial Completo com Biblioteca e Passo a Passo. Confira.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Usinainfo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/pt-br.facebook.com\/faceusinainfo\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-27T20:51:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-21T12:33:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1622\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gustavo Rodolfo Stroschon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gustavo Rodolfo Stroschon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Projeto Esp32 Wifi no Controle de Rel\u00e9s pela Internet - Blog UsinaInfo","description":"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet tem no Blog UsinaInfo. Tutorial Completo com Biblioteca e Passo a Passo. Confira.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/","og_locale":"pt_BR","og_type":"article","og_title":"Projeto Esp32 Wifi no Controle de Rel\u00e9s pela Internet - Blog UsinaInfo","og_description":"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet tem no Blog UsinaInfo. Tutorial Completo com Biblioteca e Passo a Passo. Confira.","og_url":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/","og_site_name":"Blog Usinainfo","article_publisher":"https:\/\/pt-br.facebook.com\/faceusinainfo\/","article_published_time":"2019-08-27T20:51:32+00:00","article_modified_time":"2025-03-21T12:33:10+00:00","og_image":[{"width":1622,"height":1080,"url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet-1.jpg","type":"image\/jpeg"}],"author":"Gustavo Rodolfo Stroschon","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Gustavo Rodolfo Stroschon","Est. tempo de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/","url":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/","name":"Projeto Esp32 Wifi no Controle de Rel\u00e9s pela Internet - Blog UsinaInfo","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/#primaryimage"},"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet-1.jpg","datePublished":"2019-08-27T20:51:32+00:00","dateModified":"2025-03-21T12:33:10+00:00","author":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/902c71bf25fccd986b8431b5b6cd04ab"},"description":"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet tem no Blog UsinaInfo. Tutorial Completo com Biblioteca e Passo a Passo. Confira.","breadcrumb":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/#primaryimage","url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet-1.jpg","contentUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/08\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet-1.jpg","width":1622,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.usinainfo.com.br\/blog\/projeto-esp32-wifi-para-automacao-no-controle-de-reles-pela-internet\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.usinainfo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Projeto Esp32 Wifi para Automa\u00e7\u00e3o no Controle de Rel\u00e9s pela Internet"}]},{"@type":"WebSite","@id":"https:\/\/www.usinainfo.com.br\/blog\/#website","url":"https:\/\/www.usinainfo.com.br\/blog\/","name":"Blog Usinainfo","description":"Usinainfo","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.usinainfo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/902c71bf25fccd986b8431b5b6cd04ab","name":"Gustavo Rodolfo Stroschon","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/20875793d9b2ed51c449429717e14f23eb35e220594d878e13a27a2986b37284?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/20875793d9b2ed51c449429717e14f23eb35e220594d878e13a27a2986b37284?s=96&d=mm&r=g","caption":"Gustavo Rodolfo Stroschon"},"description":"Programador com Enfase em Desenvolvimento de Sistemas Embarcados, Automa\u00e7\u00e3o Residencial e Industrial, Entusiasta de Eletr\u00f4nica Digital e Anal\u00f3gica e Amante do Mundo IoT e Maker.","url":"https:\/\/www.usinainfo.com.br\/blog\/author\/gustavo-rodolfo-stroschon\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/3853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3853"}],"version-history":[{"count":15,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/3853\/revisions"}],"predecessor-version":[{"id":6815,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/3853\/revisions\/6815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media\/3886"}],"wp:attachment":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}