Páginas

ESP8266 WiFi Oled Static IP Automation






IOT:  Internet Of  Things

A Internet das coisas é uma revolução tecnológica a fim de conectar dispositivos eletrônicos utilizados no dia-a-dia (como aparelhos eletrodomésticos, eletroportáteis, máquinas industriais, meios de transportes, etc) à internet.



Veja todas as informações necessárias no Display Oled:

- Visualização de Status ON/OFF dos 6 Dispositivos;
- Nomes dos Dispositivos Editáveis;
- Referencia sobre a conexão GPIO D3 á D8 e Status HIGH/LOW
- "SSID" e "Password";
- Numero de IP para conexão WiFi/3G;
- Recomendações necessárias e informações do blog;
- Descrição do Dispositivo e sua versão;






Automação e controle de dispositivos via WiFi/3G: Rede interna ou externa!

 Permite a conexão WiFi entre vários celulares simultâneos;            Visualiza todas as operações executadas por outros celulares(conectados à rede WiFi que possuam o APP. com "ssid" e "password") em tempo real, uso familiar:





Automação e controle de dispositivos via WiFi/3G: Rede interna ou externa!


Downloads:

Code:  ESP8266 WiFi  Oled Static IP Automation

Arduino Home

Librari: ESP8266WiFi

Librari: Adafruit_GFX

Librari: ESP_Adafruit_SSD1306


Driver: CH340G




Youtube:



Descrição do App.  ESP8266 WiFi  Oled Static IP Automation:

Automação e controle de dispositivos via WiFi/3G: Rede interna ou externa!

Controle ON/OFF 110/220V de até 9(Nove) dispositivos editáveis:

Através do smartphone Android com App. instalado, podemos fazer a conexão via WiFi com o NodeMCU ESP8266 que por sua vez está conectado ao Roteador WiFi.

BUTTON - SWITCHES MODE:
- 6 Chaves control ON/OFF Mode Relay 110/220V;
- 6 Dispositivos Editáveis;
- 6 Status das portas IO do ESP8266;

BUTTON LOCK/UNLOCK:
Bloqueia/desbloqueia modo de Edição para nome dos dispositivos.

BUTTON SAVE:
Salva a Edição com novo nome dos dispositivos.

BUTTON NET:
Edita o numero de IP ou Host.

NOTE1 - NOTE6:
-6 Campos para anotações ou observações sobre os Dispositivos.

BUTTON REFRESH:
Atualizar página; Se necessário quando estiver utilizando diversos celulares simultaneamente.

Como funciona:

O celular Android e o ESP8266 conectam-se ao roteador via WiFi, nos pinos de saída do ESP 8266, temos ligado uma placa de relés que por sua vez está ligada à rede elétrica com os contados dos relés ligados aos dispositivos que se deseja controlar.

Quando por exemplo pressionarmos um botão para ligarmos um dispositivo, o APP. Android envia dados à placa ESP8266, esta recebe os dados e toma decisão de enviar comando para ligar o relé correspondente e retorna dados para o APP. Android que irá acionar a chave e indicação de status correspondentes.

Imagens do App. funcionando:


Veja todas as informações necessárias no Display Oled:

- Visualização de Status ON/OFF dos 6 Dispositivos;
- Nomes dos Dispositivos Editáveis;
- Referencia sobre a conexão GPIO D3 á D8 e Status HIGH/LOW
- "SSID" e "Password";
- Numero de IP para conexão WiFi/3G;
- Recomendações necessárias e informações do blog;
- Descrição do Dispositivo e sua versão;














Imagens do App. instalado no celular:








    





Passo A passo:



Pinos do NodeMCU ESP8266:

Neste projeto usaremos apenas os pinos de saída D3 à D8 = 6 saídas para acionamento dos relés e dispositivos ligados à rede elétrica;

O Display Oled 128x64 I2C SSD1306 será conectado ao pinos D1 e D2, GND e VCC, conforme descrito abaixo:


Veja na figura abaixo os pinos de saída que usaremos(D3 à D8): Estes serão ligados nos pinos de controle do módulo de relés(D3=IN1-D4=IN2-D5=IN3...D8=IN6) exemplo de módulo com 6 relés. 

A Alimentação entra pelo conector USB=5VDC, você poderá usar :
A saída USB do PC ou uma fonte de 110/220V saída 5VDC 2A, ou um módulo de bateria saída 5VDC 2A;

Importante que utilize uma fonte 5VDC estável com capacidade de corrente de 2A para alimentação dos relés;
A  alimentação para o módulo de relés será usada através dos pinos VU e GNG da ESP8266, veja na figura abaixo:






Esquema de Ligação com Módulo de 4 Relés e Display Oled 128x64 SSD1306:

A ligação com Display é opcional, portanto o projeto funciona normalmente sem o Display;
Não há necessidade de alteração no código ESP8266;
Portanto apresentaremos 3 tipos de montagens utilizando Leds, Relés ou Display com Relés e Leds;
O código ESP8266 fornecido atente todas as configurações apresentadas.








Exemplo de ligação com módulo de 4 relés:
Veja que neste exemplo ligamos apenas 4 relés então basta repetir a operação para ligação com até 6 relés.
Atenção: Utilizar uma fonte de 5V/2A para alimentação do sistema através do mini USB.








Como funciona o Módulo com relés:

Nível lógico HIGH "5V" relés estão em repouso chaves desligadas.

Nível lógico LOW "0V" relés estão energizados chaves ligadas.

O módulo relé possui uma lógica invertida quando desejamos acionar ou energizar a bobina no relé precisamos colocar nível "0V' na entrada do módulo relé(lógica invertida) com isso um contato normalmente aberto é fechado de forma correta.
Com este sistema economizamos energia, pois as bobinas dos relé serão energizadas apenas quando o módulo receber o nível "0" do ESP8666, exemplo D0=IN1 nível lógico "0"=LOW energizado e contato elétrico fechado: O primeiro dispositivo será acionado.
Obs.> Em repouso o estado das portas D0á D8 estão em nível lógico "1"=HIGH.


Exemplo de Módulos com relés e suas ligações:

Exemplo ligação com uma Lâmpada  em rede de 110V:




Atenção para o risco de choque elétrico, utilize cabos dimensionados pela capacidade de corrente;
Utilize sempre Disjuntores ou fusíveis para cada  Dispositivo a ser acionado.


Ligações do ESP8266 com Leds:

Veja que neste exemplo usamos 6 leds com 6 resistores de 220 ohms.
Todos os anodos dos leds estão ligados aos resistores e em comum para o 3V da placa ESP8266; Os catodos dos leds estão ligados respectivamente às saídas D3-D4-D5-D6-D7 e D8, podemos ligar o total de 6 leds. 
Veja que mantemos a mesma lógica de acionamento dos relés;
 Leds em nível lógico"0" 0 V  LOW: Aceso.
 Leds em nível lógico"1" 3V  HIGH: Apagado.




Como fazer a programação da NodeMCU ESP8266 usando a IDE Arduino passo a passo:


Entre no site oficial Arduino Home e em seguida selecione Download:
Escolha a versão atual e o sistema operacional, no exemplo Arduino 1.6.12 e sistema Windows:









Insira este link  na URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json







Instalação das bibliotecas ESP8266WiFi :
Encontre a pasta Arduino em seu diretório:



Selecione a nova versão do Arduino:
Insira a pasta com os arquivos da biblioteca ESP8266WiFi dentro de Libraries:



Instalação de Drivers:

Selecione a pasta Drivers:


Insira a pasta com os arquivos CH340G dentro de Drivers:


Instalação do Driver CH340G conforme seu sistema operacional; Este driver é responsável pela comunicação serial do conversor RS232/USB, entre a placa ESP8266(RS232) e o PC(USB).


Acesse este link e escolha seu sistema operacional antes de fazer o Download: http://www.arduined.eu/tag/ch340g/





Veja em Gerenciador de Dispositivos que sua USB que está conectada ao ESP8266 não foi encontrada:


Click com botão direito do mousena USB e selecione opção Procurar driver no computador:


Encontre a pasta onde você fez o Download e click em avançar:



Pronto seu driver foi instalado com sucesso, veja neste exemplo que a USB encontrou o CH340 Com4:



Em alguns computadores se torna necessário instalar manualmente este driver, então faremos isto também.
Encontre sua pasta de Download e click em  Setup e em seguida Executar:


Click em Install.


Pronto! Agora acesse  a IDE Arduino e veja que tudo está funcionando.


Carregue o código NodeMCU ESP8266 WiFi IOT Automation na IDE Arduino:



#include <ESP8266WiFi.h>
#include <Adafruit_GFX.h>
#include <ESP_Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
//----------------------------------------------------
const char *ssid =      "SergioWIFI";      
const char *password =      "SERGIO12345678";

//const char* ssid = "WIFINFO";
//const char* password = "INFO2012";

//const char* ssid = "D-Link_DIR-615";
//const char* password = "sergio33055228";
//----------------------------------------------------
//Update these with values suitable for your network.

//IPAddress ip(192,168,0,128);  //Node static IP
//IPAddress gateway(192,168,0,1);
//IPAddress subnet(255,255,255,0);

IPAddress ip(192,168,2,128);  //Node static IP
IPAddress gateway(192,168,2,1);
IPAddress subnet(255,255,255,0);
//-----------------------------------------------------
//Mapeamento de pinos do NodeMCU
#define ledPinD0    16
#define ledPinD1    5  //GPIO_5 (OLED - SCL) 
#define ledPinD2    4  //GPIO_4 (OLED - SDA)
#define ledPinD3    0
#define ledPinD4    2
#define ledPinD5    14
#define ledPinD6    12
#define ledPinD7    13
#define ledPinD8    15
//#define ledPinD9    3 // RX
//#define ledPinD10   1 //TX

  int valueD0 = HIGH;
  //int valueD1 = HIGH;//GPIO_5 (OLED - SCL)
  //int valueD2 = HIGH;//GPIO_4 (OLED - SDA)
  int valueD3 = HIGH;
  int valueD4 = HIGH;
  int valueD5 = HIGH;
  int valueD6 = HIGH;
  int valueD7 = HIGH;
  int valueD8 = HIGH; 
  //int valueD9 = HIGH;// RX
  //int valueD10 = HIGH;// TX 
  
  int cont = 0;


WiFiServer server(88);

void setup()
{
  Serial.begin(9600);
  delay(10);
  //---------------------------------
  pinMode(ledPinD0, OUTPUT);
  //pinMode(ledPinD1, OUTPUT);
  //pinMode(ledPinD2, OUTPUT);
  pinMode(ledPinD3, OUTPUT);
  pinMode(ledPinD4, OUTPUT);
  pinMode(ledPinD5, OUTPUT);
  pinMode(ledPinD6, OUTPUT);
  pinMode(ledPinD7, OUTPUT);
  pinMode(ledPinD8, OUTPUT);
  //pinMode(ledPinD9, OUTPUT);// RX
  //pinMode(ledPinD10, OUTPUT);// TX
   
  digitalWrite(ledPinD0, HIGH);
  //digitalWrite(ledPinD1, HIGH);GPIO_5 (OLED - SCL)
  //digitalWrite(ledPinD2, HIGH);GPIO_4 (OLED - SDA)
  digitalWrite(ledPinD3, HIGH);
  digitalWrite(ledPinD4, HIGH);
  digitalWrite(ledPinD5, HIGH);
  digitalWrite(ledPinD6, HIGH);
  digitalWrite(ledPinD7, HIGH);
  digitalWrite(ledPinD8, HIGH);
  //digitalWrite(ledPinD9, HIGH);// RX
  //digitalWrite(ledPinD10, HIGH);// TX
  //---------------------------------

  //WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.print(ssid);
  Serial.print(" - password:  ");
  Serial.println(password);
  WiFi.begin(ssid, password);

  display.begin(SSD1306_SWITCHCAPVCC, 0x78>>1);
  
  //Wifi connection
  while (WiFi.status() != WL_CONNECTED) { //WiFi Disconnected
    delay(500);
    Serial.print("."); 
    
  display.clearDisplay();                 // Clear the buffer.   
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setTextColor(BLACK, WHITE);   // 'inverted' text
  display.setCursor(0,0);
  display.println("<WiFi No Connected>"); 
  display.println();
  display.setTextColor(WHITE);
  display.setTextSize(0);
  display.println("   Please verify the ssid and password.");
  
  display.setTextSize(0); 
  display.println(ssid);
  display.println(password);
  display.println("sergioardino.blogspot.com.br"); 
      
  display.display();//Envia o texto acima para o display.
  delay(4000);   
  }
  
  Serial.println("");
  Serial.println("Server started");
  Serial.println("WiFi connected, using IP address");

  server.begin();
  //------Monitor Serial IDE Arduino------
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.println(WiFi.localIP());  
 //-------------------------------------

  display.clearDisplay();                
    
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("  ESP8266");

  display.setTextSize(2);                                 
  display.setTextColor(WHITE);
  display.setCursor(0,18);
  display.println("Automation");
    
  display.setTextSize(0);
  display.setTextColor(WHITE);
  display.setCursor(0,52);
  display.println("version 0.1.5 - 2016");

  display.display();
  delay(3000);

    display.clearDisplay();
    
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0,0);
    display.println("Connecting");

    // Wait for connection
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    display.print(".");
    display.display(); 
  }

  

  //----------------------------
  display.clearDisplay();    
  display.setTextSize(1);       display.setTextColor(WHITE);  
  display.setCursor(0,0);       display.println(ssid); 
  display.setCursor(0,15);      display.println(password);
       
  display.setTextSize(2);       display.setTextColor(WHITE); 
  display.setCursor(0,32);      display.println(WiFi.localIP());
  
  display.display();
  delay(3000);
  }


  
void loop()
{
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
   Serial.println("new client");
  while(!client.available()){
  delay(1);
  display.clearDisplay();  
  }
  //-------------------------
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  //--------NodeMCU ESP8266 recebe do Android------
  if (request.indexOf("/ledPinD3=ON") != -1)  {
    digitalWrite(ledPinD3, LOW);
    valueD3 = LOW;

  }
  if (request.indexOf("/ledPinD3=OFF") != -1)  {
    digitalWrite(ledPinD3, HIGH);
    valueD3 = HIGH;

  }
  //--------------------------
  if (request.indexOf("/ledPinD4=ON") != -1)  {
    digitalWrite(ledPinD4, LOW);
    valueD4 = LOW;

  }
  if (request.indexOf("/ledPinD4=OFF") != -1)  {
    digitalWrite(ledPinD4, HIGH);
    valueD4 = HIGH;

  }
  //--------------------------
  if (request.indexOf("/ledPinD5=ON") != -1)  {
    digitalWrite(ledPinD5, LOW);
    valueD5 = LOW;

  }
  if (request.indexOf("/ledPinD5=OFF") != -1)  {
    digitalWrite(ledPinD5, HIGH);
    valueD5 = HIGH;

  }
  //--------------------------
  if (request.indexOf("/ledPinD6=ON") != -1)  {
    digitalWrite(ledPinD6, LOW);
    valueD6 = LOW;
  }
  if (request.indexOf("/ledPinD6=OFF") != -1)  {
    digitalWrite(ledPinD6, HIGH);
    valueD6 = HIGH;
  }
  //--------------------------
  if (request.indexOf("/ledPinD7=ON") != -1)  {
    digitalWrite(ledPinD7, LOW);
    valueD7 = LOW;
  }
  if (request.indexOf("/ledPinD7=OFF") != -1)  {
    digitalWrite(ledPinD7, HIGH);
    valueD7 = HIGH;
  }
 //--------------------------
  if (request.indexOf("/ledPinD8=ON") != -1)  {
    digitalWrite(ledPinD8, LOW);
    valueD8 = LOW;
  }
  if (request.indexOf("/ledPinD8=OFF") != -1)  {
    digitalWrite(ledPinD8, HIGH);
    valueD8 = HIGH;
  }
  //--------------------------
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  //----------------------------------------------------------
  client.print("<font size=6>");//Tamanho da fonte </font>
  client.print("<font color=#FF0000>");//Color Red
  client.print("Blog> http://sergioarduino.blogspot.com.br/");
  client.println("<br />");
  //-----------------------------
  client.print("<font size=6>");//Tamanho da fonte </font>
  client.print("<font color=#0000FF>");//Color Blue.
  client.print("Server Started");
  client.println("<br/>");
  client.println("<br/>");
  //-----------------------------
  client.print("<font size=20>");//Tamanho da fonte </font>
  client.print("<font color=#FF00FF>");//Color Blue.
  client.print("Receiving status from ESP8266");
  client.println("<br/>");
  client.println("<br/>");
  //-----------------------------
  
  //---------NodeMCU ESP8266 envia para o Android--------
  client.println("<br><br>");//Close and Open. 
  if(valueD0 == LOW) {//Testa se a variável valueD0 = nível lógico "0";
  client.print("/ledPinD0=ON");//Modifica o botão Device1 para "ON";
  } else {//Caso contrário;
    client.print("/ledPinD0=OFF");//Modifica o botão Device1 para "OFF";
  }

  client.println("<br />");
  //------------------------- 
  if(valueD3 == LOW) {
  client.print("/ledPinD3=ON");
  
  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,0);      
  display.println("ON  DEVICE1 D3 OUT 0V"); 
  display.display();
  
  } else {
  client.print("/ledPinD3=OFF");
  
  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,0);      
  display.println("OFF DEVICE1 D3 OUT 3V"); 
  display.display();
  
  } 
  client.println("<br />");
  delay(50);
  //------------------------- 
  if(valueD4 == LOW) {
  client.print("/ledPinD4=ON");
   
  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,11);      
  display.println("ON  DEVICE2 D4 OUT 0V"); 
  display.display();
  
  } else {
  client.print("/ledPinD4=OFF");
   
  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,11);      
  display.println("OFF DEVICE2 D4 OUT 3V"); 
  display.display();
  
  } 
  client.println("<br />");
  delay(50);
  //-------------------------
  if(valueD5 == LOW) {
  client.print("/ledPinD5=ON");
   
  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,22);      
  display.println("ON  DEVICE3 D5 OUT 0V"); 
  display.display();
  
  } else {
  client.print("/ledPinD5=OFF");
   
  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,22);      
  display.println("OFF DEVICE3 D5 OUT 3V"); 
  display.display();
  
  }   
  client.println("<br />");
  delay(50);
  //-------------------------
  if(valueD6 == LOW) {
  client.print("/ledPinD6=ON");

  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,33);      
  display.println("ON  DEVICE4 D6 OUT 0V"); 
  display.display();
  
  } else {
  client.print("/ledPinD6=OFF"); 

  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,33);      
  display.println("OFF DEVICE4 D6 OUT 3V"); 
  display.display();
  
  }   
  client.println("<br />");
  delay(50);
  //-------------------------
  if(valueD7 == LOW) {
  client.print("/ledPinD7=ON");

  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,44);      
  display.println("ON  DEVICE5 D7 OUT 0V"); 
  display.display();
  
  } else {
  client.print("/ledPinD7=OFF");

  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,44);      
  display.println("OFF DEVICE5 D7 OUT 3V"); 
  display.display();
  
  }  
  client.println("<br />");
  delay(50);
  //-------------------------
  if(valueD8 == LOW) {
  client.print("/ledPinD8=ON");

  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,55);      
  display.println("ON  DEVICE6 D8 OUT 0V"); 
  display.display();
  
  } else {
  client.print("/ledPinD8=OFF");

  display.setTextSize(1); 
  display.setTextColor(WHITE);  
  display.setCursor(0,55);      
  display.println("OFF DEVICE6 D8 OUT 3V"); 
  display.display();
  
  }  
  client.println("<br />"); 
  
  client.println("</html>");
  delay(50);

  //delay(1);
  
}


//----------------------------------------

Downloads:

Code: NodeMCU ESP8266 WiFi IOT Automation

Librari: ESP8266WiFi

Driver: CH340G



Colocando o NodeMCU ESP8266 WiFi IOT Automation para funcionar:

Estando com o driver e bibliotecas instalados: 
Abra a IDE com o código Arduino e vamos fazer as seguintes alterações: 
"ssid": Este é o nome que você atribui à conexão de seu Roteador WiFi.
"password": Esta é a senha que você atribui à conexão de seu Roteador WiFi.
 Veja no meu exemplo:
const char* ssid = "SergioWIFI";
const char* password = "SERGIO12345678";

Como obter o "ssid" e "password" do seu roteador:

Exemplo com IP do meu roteador IP:192.168.1.1


- Ligar um cabo de rede da saída LAN de seu roteador à entrada de rede de seu computador;
- Para conectar ao seu roteador digite em seu Navegador o numero de IP que consta em seu roteador, exemplo com o Roteador D-Link DI-524.

 Em meu caso estou com o nome de usuário default de fábrica: admin e estou sem uma senha então neste caso pode deixar o campo de senha em branco  e fazer o login;




- Veja nesta tela em Home a LAN com IP: 192.168.1.1 do seu roteador:


Pressione Wireless e copie o nome "ssid" e senha "password"  e cole estes dados no programa Arduino.


Se preferir use o celular que com a conexão WiFi e entre no navegador Google e digite o numero de IP como no exemplo http://192.168.1.1
Digite o nome de usuário para acesso do roteador, no meu exemplo "admin"e fazer login, veja a tela abaixo:
Pressione Wireless e copie o nome "ssid" e senha "password"  e cole estes dados no programa Arduino, veja abaixo:



 Entre no menu Ferramentas e selecione a placa corretamente:  NodeMCU 1.0 ( ESP-12E Module).



Carregar o código NodeMCU ESP8266 WiFi IOT Automation para a placa NodeMCU 1.0 ( ESP-12E Module).


Pronto já podemos fazer o primeiro teste!
Agora entre no IDE Arduino menu, selecione Ferramentas e Monitor Serial:




Veja na figura abaixo:
"ssid": SergioWiFi
"password": SERGIO12345678
URL: http://192.168.2.128

- Observe que este numero de IP foi definido, escolhendo um numero dentro do range de IP´s de seu roteador.




CONFIGURAÇÃO IP DO ROTEADOR:

Neste projeto utilizamos como exemplo o Roteador D-Link DI-524 por se tratar de um roteador de fácil acesso às configurações e recomendado para quem está aprendendo a trabalhar com Aplicativos utilizando Arduino e Ethernet com Wi-fi ou 3G comunicação de dados, imagem ou vídeo; Isto não impede de se utilizar qualquer outro roteador compatível de sua preferencia.

- Ligar a placa de rede de seu computador à porta LAN do roteador;


- Windows, clique em INICIAR e na caixa de diálogo, digite cmd ; Em seguida pressione a tecla ENTER :


Na janela de prompt de comando, digite “ipconfig /all” (sem as aspas) e aperte ENTER :


O comando será executado e várias informações aparecerão na tela. Procure pela informação referente à sua placa de rede principal, semelhante à esta destacada na imagem, pois são essas informações que você irá precisar para configurar o Ethernet Shield : Endereço IP,  Máscara de sub-rede e Gateway Padrão :


Estes três parâmetros são definidos logo no início do programa, e devem ser alterados de acordo com a configuração da sua rede:
Neste exemplo escolhi o IP: 192.168.2.128, veja no código abaixo:


Escolhido WiFi Server como porta 88, veja abaixo:







Utilizar este numero de IP que foi capturado pela placa ESP8266 + a porta 88 e editar no APP. NodeMCU ESP8266 WiFi IOT Automation, veja a seguir:

Tela principal: Pressione o ícone de rede "NET"


Pressione o ícone cadeado para desbloquear"unblock" e editar o numero de IP

Edite o seu numero de IP que foi capturado anteriormente pela placa ESP8266 através da IDE Arduino.
Utilize aqui seu numero de IP, conforme exemplo abaixo:


Pressione o ícone cadeado para bloquear "block" o modo de edição e em seguida pressione o icone salvar "save" para salvar esta URL no banco de dados do APP.


Pressione o ícone teclado "switche " para retornar à tela principal.


Pronto o App. já está pronto para uso!
 O exemplo acima todas as chaves estão "OFF" desligado; Podemos ver o status das saídas D0 à D8 "OUT 3V", conforme explicado acima trabalhamos com módulo de relés ou leds e fazemos o acionamento quando as chaves comutam em "ON" ligado.

Basta pressionar qualquer chave referente aso dispositivos D3 à D8 para comutar em "ON" ligado, imediatamente um led ou um relé será acionado e o status indicará  "OUT 0V" ligado:




Edição dos dispositivos D3 - D8, Note1 - Note6 ou numero de IP e Porta, basta proceder conforme explicamos anteriormente, pressione ícone cadeado para desbloquear, clique no dispositivo que deseja editar, neste momento um teclado se abre, digite então o novo nome do dispositivo, pressione novamente ícone cadeado para bloquear a edição e em seguida pressione o ícone "disquete" para salvar todas as edições no banco de dados do App.






Acesso WiFi/3G Rede Externa:

O processo é identico ao descrito anteriormente para conexão rede interna, com uma vantagem podemos conectar ao nosso dispositivo a qualquer distância e local, basta termos um ponto de acesso WiFi ou  3G.
No App. clique no ícone "rede" e insira o numero de IP que está chegando em seu roteador "WAN" e complete a edição do server :80, veja como ficou no exemplo abaixo:

Entre no site MEU IP para verificar qual é seu IP real neste momento.
Edite este numero de IP:88, conforme está no seu código da NodeMCU ESP8266:
WiFiServer server(88);

void setup() {
  Serial.begin(9600);
  delay(10);

Então neste exemplo fica assim: http://178.161.324.101:88





Criando um Host:
Importante:Entre no site meu ip e veja qual é o seu ip anote e copie para o aplicativo smartphone;

Se desejar utilizar um host, isso facilita pois voce não precisará utilizar um numero mas sim um host.
Veja a sequência de imagens images abaixo:

Pesquise como dlinkddns.
Click em  creat an account:


Preencha os campos utilizando o Serial Number e MAC do seu Roteador D-Link:

Veja seu Host Name1234.dlinkddns.com:


Veja no exemplo como é fácil, seu Host mantém atualizado todas as vezes que ocorre uma mudança de IP. 



Com um HOST você fica despreucupado com mudanças de IP, pois sempre que huver uma alteração em seu IP, o serviço de Host  irá carregar seu IP atualizado, garantindo sua conexão, além de ficar muito mais fácil e personalizado, veja abaixo:


Importante - Trabalhar com Rede Externa - Abrir Portas do seu Roteador:

Advanced e Virtual Server:

- Enable para habilitar uma inclusão;
- Name: Digite ESP8266;
- IP Interno ou Private IP: 192.168.2.128
- Protocolo Type: TCP;
- Porta Interna ou Private Port: 88
- Porta Externa ou Public Port: 88
- Shedule: Always;
- Pressione Apply para salvar e depois Continue e veja novamente nesta página logo abaixo está sua inclusão do ESP8266.



Acompanhe também pelos vídeos:



Youtube: 




Atenção para o risco de choque elétrico, utilize cabos dimensionados pela capacidade de corrente;
Utilize sempre Disjuntores ou fusíveis para cada  Dispositivo a ser acionado.

3 comentários:

  1. Montei com esse RC wifi via celular e, PC:

    https://youtu.be/c5La1U6TxFg

    Devido a necessidade do controle os botões tem que serem tipo push-button (tipo campainha)
    No wifi-oled dá para colocar os botões tipo push-button ?
    Grato pela atenção.

    ResponderExcluir
  2. Olá, gostaria de saber se vc ainda está disponibilizando o app para download eu tinha o mesma mais tive que formatar meu celular e não consigo baixalo novamente.

    ResponderExcluir
  3. Gostaria de saber se ainda pode disponibilizar o código do ?

    ResponderExcluir