sábado, 31 de dezembro de 2016

NodeMcu na rede Wi-Fi com Arduino

Programando NodeMcu na rede wireless (Access point)


Utilizando a IDE do Arduino




É possível implementar um código utilizando o NodeMcu na rede wireless por meio da IDE do próprio Arduino, aumentando assim as possibilidades de função desse módulo.
Vamos realizar um projeto utilizando um código bem simples de como acionar um LED pela rede wi-fi local.

Vamos utilizar um esquema como o abaixo, usando a saída D0 do módulo.
Separe:

O módulo ESP
1 resistor 150 ohms
1 LED (qualquer cor)

fonte: próprio autor


Abra o IDE do Arduino e copie o código abaixo e cole para verificar o funcionamento do circuito.

/*
 * NodeMCU/ESP8266/ access point e web server simples
 * Elaborado por Tony Emerson Marim em 31/12/2016.
 * mecatronizando@gmail.com *
 * controlando saída(acionando LED)
 */
#include <ESP8266WiFi.h>
#include <WiFiClient.h> 
#include <ESP8266WebServer.h>

const char *ssid = "NOME DA REDE";
const char *password = "SENHA DA REDE";
int stateLED = LOW;

ESP8266WebServer server(80);

void handleRoot() {
    response();
}

void handleLedOff() {
  stateLED = LOW;
  digitalWrite(LED_BUILTIN, stateLED);
  response();
}

void handleLedOn() {
  stateLED = HIGH;
  digitalWrite(LED_BUILTIN, stateLED);
  response();
}

const String HtmlHtml = "<html><head>"
    "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /></head>";
const String HtmlHtmlClose = "</html>";
const String HtmlTitle = "<h1>MECATRONIZANDO: NodeMcu WebServer </h1><br/>\n";
const String HtmlLedStateLow = "<big>Estado do LED <b>DESLIGADO</b></big><br/>\n";
const String HtmlLedStateHigh = "<big>Estado do LED <b>LIGADO</b></big><br/>\n";
const String HtmlButtons = 
    "<a href=\"LEDOn\"><button style=\"display: block; width: 100%;\">ON</button></a><br/>"
    "<a href=\"LEDOff\"><button style=\"display: block; width: 100%;\">OFF</button></a><br/>";

void response(){
  String htmlRes = HtmlHtml + HtmlTitle;
  if(stateLED == LOW){
    htmlRes += HtmlLedStateLow;
  }else{
    htmlRes += HtmlLedStateHigh;
  }

  htmlRes += HtmlButtons;
  htmlRes += HtmlHtmlClose;

  server.send(200, "text/html", htmlRes);
}

void setup() {
    delay(1000);
    Serial.begin(9600);
    Serial.println();

    WiFi.softAP(ssid, password);

    IPAddress apip = WiFi.softAPIP();
    Serial.print("visit: \n");
    Serial.println(apip);
    server.on("/", handleRoot);
    server.on("/LEDOn", handleLedOn);
    server.on("/LEDOff", handleLedOff);
    server.begin();
    Serial.println("HTTP server beginned");
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, stateLED);
}

void loop() {
    server.handleClient();
}

Grave no NodeMcu e vamos acessar agora o Browser para acionar o LED por meio da Internet, especifique um endereço de IP para seu módulo, o meu foi configurado com 192.168.0.105.





fonte: próprio autor

No vídeo abaixo é possível ver o funcionamento do circuito.




Os arquivos relacionados a esse post, podem ser baixados por esse LINK!


Um comentário: