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
//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
// 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