Mostrando las entradas con la etiqueta Módulo Wi Fi. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Módulo Wi Fi. Mostrar todas las entradas

Resumen de Información Técnica del módulo Wi Fi ESP8266

Características Técnicas del módulo:

  • Voltaje de operación entre 3V y 3,6V (corriente continua).
  • Corriente de operación 80 mA (Con menos corriente tiene problemas para arrancar)
  • Corriente máxima de transmisión, picos de hasta 200mA. (por eso será importante la fuente con la cual se alimente el módulo)
  • Temperatura de operación -40ºC y 125ºC 
Fuente ideal para su alimentación:
Se puede regular con fuente para protoboard de 3,3 V ejemplo fuente marca YWRobot que proporciona voltajes de 3,3v y 5v. En este caso usaremos el de 3,3v.
Esta fuente Aporta 600mA.
Se alimenta con una fuente transformadora entre 6,5v y 9v.





Modos de operación del módulo:

* Access Point (AP): El módulo crea una red Wi Fi de área local (Wireless Local Area Network - WLAN), se lo configura con un nombre de usuario y una contraseña.
* Station (STA): se conectará a un access point.

* Access Point + Station (AP+STA): una combinación de las anteriores.

Con el IDE de Arduino, incluyendo la librería #include "ESP8266WiFi.h"


WiFi.mode(WIFI_AP);


WIFI_AP

WIFI_STA
WIFI_AP_STA
WIFI_OFF

Modo Cliente = Modo Estación



Gestión de energía del módulo:
* Modo activo (Active mode): a pleno rendimiento.
* Modo dormido (Sleep mode): reduce su consumo eléctrico, se queda en modo alerta porque hay eventos que lo despiertan. Consume entre 0,6 mA y 1 mA.
* Modo Sueño profundo (Deep Sleep): estado similar al apagado. Consume alrededor de 20 μA.

Kit fácil:
Si se quiere comprar un kit donde ya venga todo incorporado al módulo puede ser este:
NodeMCU modelo P2 (Amigable para la protoboard)
Se le conecta un cargador de celular y ya funciona, no se necesita fuente para protoboard, ni conversor USB a TTL.

Sobre sus Pines:
ADC es un pin analógico de entrada de 0 a 1V




Poner el módulo en modo AP:
_____________________________________________________________________

#include <ESP8266WiFi.h>

IPAddress local_IP(192,168,4,22);
IPAddress gateway(192,168,4,9);
IPAddress subnet(255,255,255,0);

void setup () {

WiFi.softAPConfig(local_IP, gateway, subnet); 
WiFi.softAP("NombreDeLaRed", "ContraseñaAquí") ? "Ready" : "Failed!";

}

void loop() {

}
_____________________________________________________________________


Poner en modo AP y configurar un servidor web, ejemplo:
_____________________________________________________________________

#include <ESP8266WiFi.h>                  //Incluye la librería ESP8266WiFi

const char ssid[] = "NOMBRE_DE_RED_AQUI";    //Definimos la SSDI de nuestro servidor WiFi -nombre de red- 
const char password[] = "PASSWORD_AQUI";       //Definimos la contraseña de nuestro servidor 
WiFiServer server(80);                    //Definimos el puerto de comunicaciones

int PinLED = 2;                           //Definimos el pin de salida - GPIO2 / D4
int estado = LOW;                         //Definimos la variable que va a recoger el estado del LED

void setup() {
  Serial.begin(115200);

  pinMode(PinLED, OUTPUT);                //Inicializamos el GPIO2 como salida
  digitalWrite(PinLED, LOW);              //Dejamos inicialmente el GPIO2 apagado

  server.begin();                         //inicializamos el servidor
  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);            //Red con clave, en el canal 1 y visible
}

void loop() {
  // Comprueba si el cliente ha conectado
  WiFiClient client = server.available();  
  if (!client) {
    return;
  }

  // Espera hasta que el cliente envía alguna petición
  while(!client.available()){
    delay(1);
  }

  // Lee la petición
  String peticion = client.readStringUntil('r');
  client.flush();

  // Comprueba la petición
  if (peticion.indexOf('/LED=ON') != -1) {
    estado = HIGH;
  } 
  if (peticion.indexOf('/LED=OFF') != -1){
    estado = LOW;
  }

  //Enciende o apaga el LED en función de la petición
  digitalWrite(PinLED, estado);

  // Envía la página HTML de respuesta al cliente
  client.println("HTTP/1.1 200 OK");
  client.println("");                                     //No olvidar esta línea de separación
  client.println("<!DOCTYPE HTML>");
  client.println("<meta charset='UTF-8'>");
  client.println("<html>");

      //Imprime el estado del led
  client.print("<h1>El LED está ahora: ");                 
  if(estado == HIGH) {
    client.print("ENCENDIDO</h1>");  
  } else {
    client.print("APAGADO</h1>");
  }

      //Se crean enlaces para modificar el estado del LED      
  client.println("Presiona <a href='/LED=ON'>AQUÍ</a> para encender el LED<br>");
  client.println("Presiona <a href='/LED=OFF'>AQUÍ</a> para apagar el LED<br><br>");

      //Se crean cajas de comprobación (checkbox) para modificar el estado del LED
  client.println("<input type='checkbox' onClick=location.href='/LED=ON'> ENCENDER </input><br>");
  client.println("<input type='checkbox' onClick=location.href='/LED=OFF'> APAGAR </input><br><br>");

      //Se crean botones para modificar el estado del LED
  client.println("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button>");
  client.println("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");

      //Se crean botones con estilos para modificar el estado del LED
  client.println("<button type='button' onClick=location.href='/LED=ON' style='margin:auto; background-color:green; color:#A9F5A9; padding:5px; border:2px solid black; width:200;'><h2> ENCENDER</h2> </button>");
  client.println("<button type='button' onClick=location.href='/LED=OFF' style='margin:auto; background-color:red; color:#F6D8CE; padding:5px; border:2px solid black; width:200;'><h2> APAGAR</h2> </button><br><br>");

      //Se crea un único botón para modificar el estado del LED
  if(estado == HIGH) {
    client.print("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");  
  } else {
    client.print("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button><br><br>");
  }
  client.println("</html>"); 
  delay(1);
  Serial.println("Petición finalizada");          // Se finaliza la petición al cliente. Se inicaliza la espera de una nueva petición.

  //Desconexión de los clientes
  //WiFi.softAPdisconnect();

}
_____________________________________________________________________


Se puede conectar por el navegador mediante 192.168.4.1



Fuente:
https://programarfacil.com/podcast/esp8266-wifi-coste-arduino/
http://www.esploradores.com/access-point-servidor-web-nodemcu/

Encender el Led Onboard del Módulo Wi Fi Esp8266 V12 programar con Arduino IDE

El código es muy sencillo, es como el que trae arduino ide para arduino, pero el pin debe ser el Nº 2 del módulo Esp8266 V12


void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(1000);     
  digitalWrite(2, LOW);
  delay(1000);       
}

Acá muestro el código y que ya lo he compilado al 100%, más abajo explico paso a paso.


Antes de compilar el programa para cargarlo se debe verificar esto:

* La placa debe ser la siguiente:
Menú Herramientas - Placa Generic Esp8266 Module - Generci Esp8266 Module


* El puerto se debe seleccionar aquí:
Herramientas - Puerto: _____ probar alguno de la lista o bien para estar más seguro, si se tiene windows 7 por ejemplo se puede buscar en administrador de dispositivos, lo detallo más abajo.

Saber con seguridad el puerto al cual está conectado:
Ejemplo para Windows 7
1) Clic derecho en Equipo, clic en propiedades.

2) Clic en Administrador de dispositivos, clic en Puertos (COM y LPT), y ahí ver por ejemplo el COM6 en mi caso). Esto mismo sirve también para conocer el COM cuando se conecta Arduino.


Ahora si ya se puede enviar el programa, previamente habiendo mantenido presionado el botón reset que se ve cerca del módulo en la proto, y luego seguido y antes de soltar el reset, habiendo conectado el cable que dice Flash que sale del GPIO0. (toda esta configuración la voy a explicar en otro post)

Para que quede más claro:
* Presionar Reset por dos o tres segundos
* Antes de soltar reset conectar el GPIO0 cable FLASH de la imagen.
 * Clic en el botón de la flecha para enviar.

Ahora que ya se ha presionado el botón para enviar, hay que esperar hasta que cargue al 100%, he leído por ahí que si se interrumpe la carga dejará de funcionar el módulo, por las dudas prefiero NO hacer la prueba ;) Así que ATENCIÓN en esta parte del proceso.


Resultado final en gif animada del Esp8266 v12 funcionando en protoboard con el programa del Blink que enciende el pin nº 2.


Proximamente: Pasos previos de configuración y conexión para que el Esp8266 funcione con el IDE de Arduino.