# \[help\] esp8266 microcontrolador

**URL:** <https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668>\
**Category:** Arduino\
**Created:** [Setembro 20, 2020, 12:11am UTC](https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668 "2020-09-20T00:11:34Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![WellTeixeira98](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@WellTeixeira98](https://forum.fazedores.com/u/WellTeixeira98)\
**Post date:** [Setembro 20, 2020, 12:11am UTC](https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668/1 "2020-09-20T00:11:34Z")

</div>

Prezados,

Saudações.

Estou pedindo a humilde salvação de vocês para solução de um problema simples ao qual se tornou uma bola de neve devido a minha falta de conhecimento.

Eu estou querendo montar um protótipo de uma casa, utilizando IoT. Para isso, fiz uso do Microcontrolador ESP8266 e Também estou utilizando o AppInventor para facilitar minha vida com o aplicativo.

A ideia é poder ligar leds, abrir portas e etc utilizando esses dois sistemas.  
Porém, observando um exemplo já me deparei com uma dificuldade.

LINK DO EXEMPLO:

> **[App Inventor + Esp8266](https://medium.com/@cristianalopesgabriel/app-inventor-esp8266-145a96f969e)**
>
> Implementar uma aplicação, desenvolvida na ferramenta App Inventor, que através de um módulo WiFi ESP8266 controle uma porta digital a…

Fiz todo o procedimento e funcionou corretamente. **Porém, gostaria de adicionar mais leds para este exemplo**. **Na plataforma AppInventor, sei fazer este procedimento para enviar o comando ao microcontrolador. Mas meu problema maior é adaptar o código desse exemplo no IDE para aceitar mais comandos para um segundo led.**

Me salvem por favor.

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Setembro 20, 2020, 1:40am UTC](https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668/2 "2020-09-20T01:40:01Z")

</div>

Pelo que eu vi, você está só copiando e colando código, logo, não tem mistério: Adicione mais um led e mais 2 botões e duplique os 2 primeiros blocos de código alterando as variáveis. Repita para N led’s que queira adicionar. Feito.

---

<div class="post-metadata">

**Author:** ![WellTeixeira98](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@WellTeixeira98](https://forum.fazedores.com/u/WellTeixeira98)\
**Post date:** [Setembro 20, 2020, 12:17pm UTC](https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668/3 "2020-09-20T12:17:50Z")

</div>

Isso mesmo amigo, só estou querendo adicionar mais leds para este código.  
Sei fazer isso no APPInventor, adicionar botões. Porém, estou me batendo no IDE (Programação).

Apesar do código já está comentado, eu sou meio lego nessa situação e queria a salvação de vocês.

Sei que para o Led existente ligar, ele vai receber a informação /gpio/0 para desligar e gpio/1 para ligar do Appinventor. **Porém, gostaria de adicionar mais um led recebendo dessa vez /gpio1/0 ou /gpio1/1.**

> [@](#):
>
> // Biblioteca Wi-Fi library  
> #include \<ESP8266WiFi.h\>
> 
> // Credenciais de acesso à rede  
> const char\* ssid = “UserWifi”;  
> const char\* password = “PassWifi”;
> 
> // Número da porta (80) do servidor web  
> WiFiServer server(80);
> 
> void setup() {  
> Serial.begin(115200);
> 
> // Definir GPIO2  
> pinMode(4, OUTPUT);  
> digitalWrite(4, 0);
> 
> // Conectar à rede WiFi  
> Serial.print(“A ligar a: “);  
> Serial.println(ssid);  
> WiFi.begin(ssid, password);  
> while (WiFi.status() != WL\_CONNECTED) {  
> delay(500);  
> Serial.print(”.”);  
> }
> 
> Serial.println(“”);  
> Serial.println(“Ligado”);  
> Serial.println("IP address: ");  
> Serial.println(WiFi.localIP());  
> server.begin();
> 
> }
> 
> void loop() {  
> // Verificar se o cliente se conectou  
> WiFiClient client = server.available();  
> if (!client) {  
> return;  
> }
> 
> // Espera até que o cliente envie alguns dados  
> Serial.println(“Novo Cliente.”);  
> while(!client.available()){  
> delay(1);  
> }
> 
> // Lê a primeira linha do pedido  
> String req = client.readStringUntil(‘\r’);  
> Serial.println(req);  
> client.flush();
> 
> // Corresponde ao pedido  
> int val;  
> if (req.indexOf(“/gpio/0”) != -1)  
> val = 0;  
> else if (req.indexOf(“/gpio/1”) != -1)  
> val = 1;  
> else {  
> Serial.println(“invalid request”);  
> client.stop();  
> return;  
> }
> 
> // Defini o GPIO2 de acordo com o pedido  
> digitalWrite(4, val);
> 
> client.flush();
> 
> // Prepare a resposta  
> String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nLED ";  
> s += (val)?“Ligado”:“Desligado”;
> 
> // Envie a resposta para o cliente  
> client.print(s);  
> delay(1);  
> Serial.println(“Cliente desligado.”);  
> }

Como eu adaptaria essa programação para esse feito ?

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Setembro 20, 2020, 2:25pm UTC](https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668/4 "2020-09-20T14:25:46Z")

</div>

Vou verificar se consigo fazer uma solução assim que possível, domingo é complicado e eu não tenho um ESP para testar. O @mlemos me enviou um uma vez mas era só o módulo de WiFi, acabei de verificar.

---

<div class="post-metadata">

**Author:** ![WellTeixeira98](https://avatars.discourse-cdn.com/v4/letter/w/edb3f5/32.png) [@WellTeixeira98](https://forum.fazedores.com/u/WellTeixeira98)\
**Post date:** [Setembro 20, 2020, 2:36pm UTC](https://forum.fazedores.com/t/help-esp8266-microcontrolador/7668/5 "2020-09-20T14:36:11Z")

</div>

Não precisa se ocupar em fazer tudo isso.

Gostaria apenas de entender mesmo a programação e ver se dar pra colocar nela que ao receber uma outra linha de texto /gpio5/0 colocasse variável Val2 em 0 e ao receber /gpio5/1 Val2 em 1. Desse jeito ligaria e desligaria outro led.

Nessa parte aqui.

> [@](#):
>
> // Corresponde ao pedido  
> int val;  
> if (req.indexOf(“/gpio/0”) != -1)  
> val = 0;  
> else if (req.indexOf(“/gpio/1”) != -1)  
> val = 1;  
> else {  
> Serial.println(“invalid request”);  
> client.stop();  
> return;  
> }

De qualquer forma, obrigado pelo apoio em pleno domingo. 😅
