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.
* 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
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();
}
_____________________________________________________________________
Fuente:
https://programarfacil.com/podcast/esp8266-wifi-coste-arduino/
http://www.esploradores.com/access-point-servidor-web-nodemcu/