Quantcast
Channel: arduino-pic – RogerBit
Viewing all articles
Browse latest Browse all 105

Revision módulo Wifi Bee de DfRobot(encendiendo 12 led por wifi)

$
0
0

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.

productphoto

productphoto

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

 
Este módulo se alimenta con 3.3 voltios, con 5 voltios se dañaría eso hay que tenerlo presente a la hora de alimentarlo.
Si observamos la placa tiene un switch de dos posiciones una de ellas llamada BOOT, si está colocada en esa posición el módulo arranca en forma normal y se controla a través de comandos AT.
Si está si lo colocamos en la posición UART, recomiendo quitarle la energía unos segundos y volverlo a energizar, con esto ya estaremos en condición de actualizar el firmware de ser necesario, o en el ejemplo que vimos en el video subirle un skecth de arduino, que es lo que nos intereza.
 Para cargar skecht de arduino en el módulo wifi bee esp8266 recomiendo ver el siguiente video

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.

Resultado de imagen para adaptador serial usb 5 volt 3.3 volt

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>&nbsp;<a href=\"tres\"><button>3</button></a>&nbsp"
 "<a href=\"cuatro\"><button>4</button></a>&nbsp;<a href=\"cinco\"><button>5</button></a>&nbsp"
 "<a href=\"seis\"><button>6</button></a>&nbsp;<a href=\"siete\"><button>7</button></a>&nbsp"
 "<a href=\"ocho\"><button>8</button></a>&nbsp;<a href=\"nueve\"><button>9</button></a>&nbsp"
 "<a href=\"diez\"><button>10</button></a>&nbsp;<a href=\"once\"><button>11</button></a>&nbsp"
 "<a href=\"doce\"><button>12</button></a>&nbsp;<a href=\"trece\"><button>13</button></a>&nbsp"
 "<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>&nbsp"; 
  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



Viewing all articles
Browse latest Browse all 105

Trending Articles