TecnoConCiencia

Comunidad electrónica

¿Cómo realizar un pequeño servidor en el ESP8266?

September 7, 2017 Uncategorized 0

Luego de configurar el IDE arduino para programar el ESP-12 podemos realizar un ejemplo básico para controlar las salidas de nuestro módulo NodeMCU desde un pequeño servidor alojado en la memoria,  siempre y cuando el módulo y la PC o tablet donde  se quiera acceder estén conectados al mismo router. El módulo al conectarse a la red WiFi se le asignará una dirección IP con la cual podremos acceder a este pequeño servidor.

En este ejemplo tenemos un botón que al presionarlo enciende o apaga el ledPin del NodeMCU. Su funcionamiento es bastante sencillo y la información de las variables se envían por un método GET que luego se recibe y procesa.

Utilizaremos la librería <ESP8266WiFi.h> para conectar nuestro módulo a la red. Debemos configurar el nombre de la red, la contraseña previamente y el puerto a utilizar en este caso el 80, al conectar el módulo nos imprime por el monitor serial la dirección IP asignada por el router, es importante tomar nota de ella para poder acceder al servidor posteriormente desde el navegador.

El programa es bastante sencillo para comenzar con el ESP-12.

#include <ESP8266WiFi.h>

const char* ssid = “TP-LINK_3C72”; //Nombre de SSID
const char* password = “********”; //Clave del Router

String estado1 = “”;
int ledPin = 16; // Este pin en el NodeMCU posee incorporado un LED
String request = “”; //En esta variable guardaremos lo que recibimos del GET
WiFiServer server(80); //Asignamos el Puerto

void setup() {
Serial.begin(115200);
delay(100);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);

Serial.println(); // Nos conectamos a la red WiFi
Serial.println();
Serial.print(“Conectando a: “);
Serial.println(ssid);
WiFi.begin(ssid, password);
delay(150);

while (WiFi.status() != WL_CONNECTED) { //Verificamos la conexion
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi conectado”);
server.begin(); // Iniciamos nuestro servidor
Serial.println(“Servidor iniciado”);

Serial.print(“Use esta URL para conectar: “); // Imprimimos por el monitor serial la direccion ip que nos asigno el Router
Serial.print(“http://”);
Serial.print(WiFi.localIP());
Serial.println(“/”);

}

 

void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println(“Nueva conexion”);
while(!client.available()){
delay(1);
}

request = client.readStringUntil(‘\r’); //Leemos la linea que recibimos
delay(100);
Serial.println(request);
client.flush();

int value = LOW;
if (request.indexOf(“/LED=ON”) != -1) {
digitalWrite(ledPin, LOW);
value = HIGH;
}
if (request.indexOf(“/LED=OFF”) != -1) {
digitalWrite(ledPin, HIGH);
value = LOW;
}

if (digitalRead(16)== LOW){
estado1 = “ENCENDIDO”;
}
else{
estado1 = “APAGADO”;
}

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.println(“<TITLE>TECNOCONCIENCIA</TITLE>”);
client.println(“<center><h3>Bienvenidos al Internet de las Cosas</h3></center>”);
client.println(“<center>”);
client.print(“<br></br>”);
client.print(“ESTADO DEL LED: “);
client.print(estado1);

if (estado1 == “APAGADO”){
client.println(“<IMG WIDTH=50 HEIGHT=50 SRC=http://www.freeiconspng.com/uploads/power-button-icon-32.png></center>”);
}
else{
client.println(“<IMG WIDTH=50 HEIGHT=50 SRC=https://cdn1.iconfinder.com/data/icons/ui-5/502/switch-512.png></center>”);
}
client.print(“<br></br>”);

if(value == HIGH) {
client.print(“</br>”);
client.println(“<br><center><a href=\”/LED=OFF\”\”><button>APAGAR LED </button></center></a><br />”);
} else {
client.print(“</br>”);
client.println(“<br><center><a href=\”/LED=ON\”\”><button>ENCENDER LED </button></center></a>”);
}
client.println(“</center>”);
client.println(“<br><br>”);
client.println(“<br>”);

delay(100);
client.println(“<center><IMG WIDTH=485 HEIGHT=290 SRC=http://www.tecnoconciencia.com.ve/inicio/wp-content/uploads/2017/07/logo-cuadrado-01-890×510.jpg></center>”);
client.println(“<br><center><a href=\\””><button>ACTUALIZAR</button></a></center><br/>”);
client.println(“<br><br><br><br><br>”);
client.println(“<MARQUEE><H5>http://wwww.tecnoconciencia.com.ve</H5></MARQUEE>”);
client.println(“</html>”);
Serial.println(“Client desconectado”);
Serial.println(“”);
}

 

Luego de instalar nuestro programa y ya teniendo la dirección IP nos dirigimos a nuestro navegador la colocamos en la barra de direcciones y nos debería parecer nuestro servidor pudiendo encender y apagar el ledPin desde el.

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *