En este video ademas de la revisión del módulo wifi bee, veremos como armar un circuito para encender 12 led, esto es muy útil si queremos lograr el control de luces, encendido de motores proyecto de domótica, riego de jardines y muchas cosas más. Es muy fácil de hacer y se incluyen los códigos fuentes y diagrama del circuito.
INTRODUCCIÓN
Wifi Bee-ESP8266 es un módulo Serial-a-WIFI que utiliza el diseño XBEE en un tamaño compacto, compatible con la ranura XBEE, aplicable a una variedad de sistemas de 3,3 V de un solo chip. Se puede utilizar para Arduino, transferencia de datos inalámbrica, control remoto. El conmutador se puede utilizar para seleccionar fácilmente el inicio del módulo o actualizar el firmware.
El módulo WIFI BEE ESP8266 tiene una poderosa capacidad de procesamiento y almacenamiento en el chip, un procesador de 32 bits incorporado, una pila de protocolos Lwip integrada. Soporte AP + modo STA coexisten. Y puede configurar varios parámetros a través de comandos AT.


ESPECIFICACIÓN
- Wi-Fi Direct (P2P),soft-AP
- Built-in TCP/IP protocol stack
- Built-in low-power 32-bit CPU: can work as an application processor
- Support WPA WPA2/WPA2-PSK encryption
- Support UART interface
- Support for TTL serial port to wireless application
- Working voltage: 3.3V power <240Ma
- Wireless standard: IEEE802.11b/g/n
- Frequency: 2.4 GHz
Pin out

Circuito
Materiales
12 led
Módulo wifi bee(esp8266)
Arduino uno
Regulador de tensión de 5 voltios a 3.3 voltios
Cables
Power Bank
El diagrama de conexionado en muy simple, si tiene una pawer bank para cargar celulares recuernden que estas trabajan a 5 voltios y el módulo wifi trabaja con una tensión de 3.3 voltios, si bien el arduino tiene una salida de 3.3 voltios a veces no es suficiente la corriente como para hacer arrancar al módulo wifi y peuden presentarse problemas es por eso que recomiendo el uso de un módulo regulador de tensión aparte.
Como ven en la imagen del módulo usb serial tiene dos pines de alimentación uno de 5 voltios y otro de 3.3 voltios, es este ultimo con el cual demos alimentar el módulo wifi para programarlo.
Los pines tx con del de rx y viceversa o sea deben ir cruzados, y por supuesto el pin de tierra.

Código fuente para el módulo wifi Bee esp8266
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | //Más proyectos en http://www.rogerbit.com //Suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 //Grupo en Facebook https://www.facebook.com/groups/RogerBit/ #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <ESP8266mDNS.h> MDNSResponder mdns; //Cambiar estos valores por los de nuestra red wifi const char* red = "nombre_de_red"; const char* pass = "clave_wifi"; ESP8266WebServer server(80);//Puerto 80 //Declaración de varibles String pagina = ""; void setup(void){ // Botones para la página, esto está en html  pagina += "<h1>www.rogerbit.com</h1><p>PIN: <a href=\"dos\"><button>2</button></a> <a href=\"tres\"><button>3</button></a> "  "<a href=\"cuatro\"><button>4</button></a> <a href=\"cinco\"><button>5</button></a> "  "<a href=\"seis\"><button>6</button></a> <a href=\"siete\"><button>7</button></a> "  "<a href=\"ocho\"><button>8</button></a> <a href=\"nueve\"><button>9</button></a> "  "<a href=\"diez\"><button>10</button></a> <a href=\"once\"><button>11</button></a> "  "<a href=\"doce\"><button>12</button></a> <a href=\"trece\"><button>13</button></a> "  "<br></br>"  "<br></br>"  "<a href= https://www.youtube.com/c/Carlosvolt ><br> https://www.youtube.com/c/Carlosvolt Suscribete para recibir más tutoriales </a> </br> ";    delay(1000);    Serial.begin(9600);   WiFi.begin(red, pass);   Serial.println("");   // Esperando para conectarnos   while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(".");   }   Serial.println("");   Serial.print("Conectado a: ");   Serial.println(red);   Serial.print("Direccion IP: ");   Serial.println(WiFi.localIP());//Nos muestra nuestra dirección ip   if (mdns.begin("esp8266", WiFi.localIP())) {     Serial.println("La conexion ha sido iniciada");   }   server.on("/", [](){     server.send(200, "text/html", pagina);   }); //Si recibimos el parámetro "dos" nos envía por el puerto serial del esp8266 al arduino el caracter 2   server.on("/dos", [](){     server.send(200, "text/html", pagina); //    digitalWrite(pin0, HIGH);     Serial.println("2");     delay(100);   }); //Si recibimos el parámetro "tres" nos envía por el puerto serial del esp8266 al arduino el caracter 3   server.on("/tres", [](){      server.send(200, "text/html", pagina);     Serial.println("3");     delay(100);   }); //Si recibimos el parámetro "cuatro" nos envía por el puerto serial del esp8266 al arduino el caracter 4    server.on("/cuatro", [](){     server.send(200, "text/html", pagina);     Serial.println("4");     delay(100);   }); //Si recibimos el parámetro "cinco" nos envía por el puerto serial del esp8266 al arduino el caracter 5   server.on("/cinco", [](){      server.send(200, "text/html", pagina);     Serial.println("5");     delay(100);    }); ////Si recibimos el parámetro "seis" nos envía por el puerto serial del esp8266 al arduino el caracter 6   server.on("/seis", [](){      server.send(200, "text/html", pagina);     Serial.println("6");     delay(100);    });   ////Si recibimos el parámetro "siete" nos envía por el puerto serial del esp8266 al arduino el caracter 7   server.on("/siete", [](){      server.send(200, "text/html", pagina);     Serial.println("7");     delay(100);    });  //Si recibimos el parámetro "ocho" nos envía por el puerto serial del esp8266 al arduino el caracter 8    server.on("/ocho", [](){      server.send(200, "text/html", pagina);     Serial.println("8");     delay(100);    }); //Si recibimos el parámetro "nueve" nos envía por el puerto serial del esp8266 al arduino el caracter 9    server.on("/nueve", [](){      server.send(200, "text/html", pagina);     Serial.println("9");     delay(100);    }); //Si recibimos el parámetro "diez" nos envía por el puerto serial del esp8266 al arduino el caracter 10    server.on("/diez", [](){      server.send(200, "text/html", pagina);     Serial.println("10");     delay(100);    });   //Si recibimos el parámetro "once" nos envía por el puerto serial del esp8266 al arduino el caracter 11    server.on("/once", [](){      server.send(200, "text/html", pagina);     Serial.println("11");     delay(100);    });   //Si recibimos el parámetro "doce" nos envía por el puerto serial del esp8266 al arduino el caracter 12    server.on("/doce", [](){      server.send(200, "text/html", pagina);     Serial.println("12");     delay(100);    });   //Si recibimos el parámetro derecha se apaga el pin gpio 0 y gpio 2   server.on("/trece", [](){      server.send(200, "text/html", pagina);     Serial.println("13");     delay(100);    });   server.begin();   Serial.println("HTTP server started"); } void loop(void){   server.handleClient(); }  | 
Recuerden que si cargan el scketch de arduino en el módulo wifi el firmaware del módulo es reemplazado y ya no se podran usar los comandos AT como viene predeterminado.
Código fuente para arduino
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | // El número del pin del LED const int led2 =  2; const int led3 =  3; const int led4 =  4; const int led5 =  5; const int led6 =  6; const int led7 =  7;      const int led8 =  8; const int led9 =  9; const int led10 =  10; const int led11 =  11; const int led12 =  12; const int led13 =  13; // Variable de lectura del estado de los pines int ledEstado2 = 0; int ledEstado3 = 0; int ledEstado4 = 0; int ledEstado5 = 0; int ledEstado6 = 0;          int ledEstado7 = 0; int ledEstado8 = 0; int ledEstado9 = 0; int ledEstado10 = 0; int ledEstado11 = 0; int ledEstado12 = 0; int ledEstado13 = 0; String inputString = "";         // Una cadena para almacenar datos entrantes boolean stringComplete = false;  // Si la cadena está completa void setup() {    // Inicializar los pines como una salida:   pinMode(led13, OUTPUT);   pinMode(led12, OUTPUT);   pinMode(led11, OUTPUT);   pinMode(led10, OUTPUT);   pinMode(led9, OUTPUT);   pinMode(led8, OUTPUT);   pinMode(led7, OUTPUT);   pinMode(led6, OUTPUT);   pinMode(led5, OUTPUT);   pinMode(led4, OUTPUT);   pinMode(led3, OUTPUT);   pinMode(led2, OUTPUT);    // Inicializa el puerto serial a 9600   Serial.begin(9600);   // Reserva de 200 bytes para el inputString   inputString.reserve(200); } //---------------------------------------------------- //Esos datos son asignados a la variable inputString void serialEvent() {   while (Serial.available()) {     // Obtener el nuevo byte:     char inChar = (char)Serial.read();     // Si el caracter recibido es una nueva linea      //La cadena está completa     inputString += inChar;       if (inChar == '\n') {       stringComplete = true;     }   } } //----------------------------------------------------- void loop() {   // ---------------13----------------------   if (inputString == "13") {     ledEstado13 = digitalRead(led13);     delay(200);     // Enciende Led 13     if( ledEstado13== 0){     digitalWrite(led13, HIGH);     }     }     // Apaga Led 13     if( ledEstado13== 1){     digitalWrite(led13, LOW);     }   // -------------12------------------------   if (inputString == "12") {     Serial.println( ledEstado12);        delay(200);     // Enciende Led 12     if( ledEstado12== 0){     digitalWrite(led12, HIGH);     }     }     // Apaga Led 12     if( ledEstado12== 1){     digitalWrite(led12, LOW);     }     // ---------------11----------------------   if (inputString == "11") {     ledEstado11 = digitalRead(led11);     delay(200);     // Enciende Led 11     if( ledEstado11== 0){     digitalWrite(led11, HIGH);     }     }     // Apaga Led 11     if( ledEstado11== 1){     digitalWrite(led11, LOW);     }       // ---------------10----------------------   if (inputString == "10") {     ledEstado10 = digitalRead(led10);     delay(200);     // Enciende Led 10     if( ledEstado10== 0){     digitalWrite(led10, HIGH);     }     }     // Apaga Led 10     if( ledEstado10== 1){     digitalWrite(led10, LOW);     }       // ---------------9----------------------   if (inputString == "9") {     ledEstado9 = digitalRead(led9);     delay(200);     // Enciende Led 9     if( ledEstado9== 0){     digitalWrite(led9, HIGH);     }     }     // Apaga Led 9     if( ledEstado9== 1){     digitalWrite(led9, LOW);     }     // ---------------8----------------------   if (inputString == "8") {     ledEstado8 = digitalRead(led8);     delay(200);     // Enciende Led 8     if( ledEstado8== 0){     digitalWrite(led8, HIGH);     }     }     // Apaga Led 8     if( ledEstado8== 1){     digitalWrite(led8, LOW);     }     // ---------------7----------------------   if (inputString == "7") {     ledEstado7 = digitalRead(led7);     delay(200);     // Enciende Led 7     if( ledEstado7== 0){     digitalWrite(led7, HIGH);     }     }     // Apaga Led 7     if( ledEstado7== 1){     digitalWrite(led7, LOW);     }     // ---------------6----------------------   if (inputString == "6") {     ledEstado6 = digitalRead(led6);     delay(200);     // Enciende Led 6     if( ledEstado6== 0){     digitalWrite(led6, HIGH);     }     }     // Apaga Led 6     if( ledEstado6== 1){     digitalWrite(led6, LOW);     }     // ---------------5----------------------   if (inputString == "5") {     ledEstado5 = digitalRead(led5);     delay(200);     // Enciende Led 5     if( ledEstado5== 0){     digitalWrite(led5, HIGH);     }     }     // Apaga Led 5     if( ledEstado5== 1){     digitalWrite(led5, LOW);     }     // ---------------4----------------------   if (inputString == "4") {     ledEstado4 = digitalRead(led4);     delay(200);     // Enciende Led 4     if( ledEstado4== 0){     digitalWrite(led4, HIGH);     }     }     // Apaga Led 4     if( ledEstado4== 1){     digitalWrite(led4, LOW);     }     // ---------------3----------------------   if (inputString == "3") {     ledEstado3 = digitalRead(led3);     delay(200);     // Enciende Led 3     if( ledEstado3== 0){     digitalWrite(led3, HIGH);     }     }     // Apaga Led 3     if( ledEstado3== 1){     digitalWrite(led3, LOW);     }     // --------------2----------------------   if (inputString == "2") {     ledEstado2 = digitalRead(led2);     delay(200);     // Enciende Led 2     if( ledEstado2== 0){     digitalWrite(led2, HIGH);     }     }     // Apaga Led 2     if( ledEstado2== 1){     digitalWrite(led2, LOW);     }   //---------------------------------------     //Imprime la cadena "inputString" cuando llega una nueva línea   if (stringComplete) {     Serial.println(inputString);     // Borrar la cadena, para el proximo uso     inputString = "";     stringComplete = false;   } } | 
Pueden comprar este módulo en la página de de DFROBOT en ESP8266 Wifi Bee (Arduino Compatible)
Para más info del módulo ir a https://www.dfrobot.com/wiki/index.php/SKU:TEL0092_WiFi_Bee-ESP8266_Wirelss_module
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas.
Si tienes algún porducto que quieres que revise en mi canal escribe a reviews@rogerbit.com
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
[wysija_form id=”1″]
 
		