zms.jpg_1200x1200

Espressif ESP8266 12F

NodeMCU V1

La placa de desarrollo Espressif ESP82266 12F, en su versión del Fabricante NodeMCU es junto a Lolin, la manera más práctica para comenzar a programar un Espressif ESP8266, ampliamente conocido como ESP8266 y muy mal llamado “Arduino con WiFi” o “Arduino ESP8266”, ya que son dos empresas y/o marcas diferentes.

La ESP8266 12F en su versión por NodeMCU, nos brinda un puerto MicroUSB para conectar a nuestro PC y poder programarlo de forma sencilla con el Lenguaje LUA Script o con el ya conocido entorno de desarrollo de Arduino.

Posee un único Pin Analógico, y necesitaremos un conversor Analógico-Digital si necesitamos más pines analogos, como el ADS1115.

Integra 13 pines GPIO,PWM,I2C,1-Wire,ADC para el A0, 2 SPI.

Agreguemos la placa al IDE Arduino:

Vamos a Archivos -> Preferencias

En el campo Gestor de URLs Adicionales de Tarjeta ingresamos:

  • http://arduino.esp8266.com/stable/package_esp8266com_index.json

Le damos ok. Nos dirigimos a Herramientas -> Placa -> Gestor de Tarjetas y buscamos Esp8266.

Instalamos la última versión (no beta) disponible, le damos a Instalar.

Ya podemos comenzar a programar nuestra ESP8266, nos dirigimos a Archivo -> Ejemplos -> ESP8266 -> Blink

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // Indicamos LED_BUILTIN como salida
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // Encendemos el LED con LOW ya que en el ESP viene en HIGH el LED
  delay(1000);                      // 1 segundo
  digitalWrite(LED_BUILTIN, HIGH);  // Apagamos el LED con HIGH
  delay(2000);                      // 2 segundos
}

Para cargar nuestro primer programa debemos indicar nuestra placa en el menú, al igual que hacemos con el Arduino.

Vamos a Herramientas -> Placa -> NodeMCU 1.0 (ESP-12E Module)

y en Herramientas -> Puerto -> /dev/ttyUSB0

Ahora si podemos VerficarCargar nuestro Sketch.

Pero esto es lo mismo que hacemos con Arduino!

Esp8266 posee una antena WiFi, usemosla para generar un Access Point, el cual nos facilitará una red WiFi propia a la que nadie más que nosotros tendrá acceso.

Para esto crearemos un servidor web html, que será nuestra web, muy simple, con 2 botones Led ON y Led OFF. Una red WiFi con el nombre que se nos ocurra y una contraseña de acceso.

#include <ESP8266WiFi.h>
const char WiFiPassword[] = "MuyDificil"; //Nuestra contraseña
const char AP[] = "DitecnoMakers" ; //Nuestra red wifi propia
 
WiFiServer server(80);
 
String header = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
String html_1 = "<!DOCTYPE html><html><head><title>Controlar LED</title></head><body><div id='main'><h2>Ditecno Makers</h2>";
String html_1_1 = "<!DOCTYPE html><html><head><title>Controlar LED</title></head><body><div id='main'><h3>Controla el LED</h3>";
String html_2 = "<form id='F1' action='LEDON'><input class='button' type='submit' value='LED ON' ></form><br>";
String html_3 = "<form id='F2' action='LEDOFF'><input class='button' type='submit' value='LED OFF' ></form><br>";
String html_3_1 = "<!DOCTYPE html><html><head><title>Por Luciano</title></head><body><div id='main'><h4>Por Luciano</h4>";
String html_4 = "</div></body></html>";
 
String request = "";

// Nuestro servidor estara en la direccion IP 192.168.4.1 por cuestiones de la libreria
void setup() 
{
    pinMode(LED_BUILTIN, OUTPUT); 
 
    boolean conexion = WiFi.softAP(AP, WiFiPassword);
    server.begin();
 
}
 
 
void loop() 
{
 
    // NOS FIJAMOS SI UN CLIENTE ESTA CONECTADO
    WiFiClient client = server.available();
    if(!client){
      return;
      } //Mientras no lo este, no pasara nada
 
    // Lee el boton que presionamos
    request = client.readStringUntil('\r');
 
    if( request.indexOf("LEDON") > 0 ){ 
      digitalWrite(LED_BUILTIN, LOW);
      }
    else if( request.indexOf("LEDOFF") > 0 ){ 
      digitalWrite(LED_BUILTIN, HIGH);
      }
 
    client.flush(); //Limpia la web tras presionar el boton
 
    client.print( header );
    client.print( html_1 );
    client.print( html_1_1 );
    client.print( html_2 );
    client.print( html_3 );
    client.print( html_3_1 );
    client.print( html_4);
 
    delay(5);
}

Una vez guardado nuestro Sketch, lo verificamos y lo cargamos.

El resultado será que encontraremos una nueva red donde conectarnos, sin acceso a la nube, pero que tendrá nuestra web en 192.168.4.1.

https://www.youtube.com/watch?v=67saqbcuYxY

Saludos Ditecno Makers, Luciano

views
213

ElectroMercado

  • programación
6 Comentarios
  1. German
    German 5 meses

    Hola Luciano, excelente explicación. Saludos

    1+
  2. Maqui
    Maqui 5 meses

    Muy útil esta placa.. yo lo uso frecuentemente.

    1+
  3. Daniel01
    Daniel01 5 meses

    Gracias Luciano por el aporte de esta info. Abrazos

    1+

Contesta

CONTACTANOS

Esta es su red social de tecnología para compartir tus ideas y proyectos .Puedes enviarnos un correo si tienes dudas.Nos vemos

Enviando

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account