En el post de hoy vamos a ver lo sencillo y económico que resulta fabricar un tele-control por wifi para controlar dos cargas AC usando como referencia la placa de bajo coste ESP8266
El Módulo ESP8266 WiFi es un SOC autónomo con pila de protocolos TCP / IP integrada que puede dar acceso a cualquier microcontrolador a su red WiFi. El ESP8266 es capaz de alojar una aplicación o descargar todas las funciones de red Wi-Fi desde otro procesador de aplicaciones.
Cada módulo ESP8266 viene preprogramado con un firmware de conjunto de comandos AT, lo que significa que simplemente puede conectarlo a su dispositivo Arduino y obtener casi la capacidad Wi-Fi que ofrece Wi-Shield.
Este módulo cuenta con una capacidad de almacenamiento y procesamiento a bordo lo suficientemente potente para permitir integrarse con los sensores y otros dispositivos específicos a través de sus GPIO con un desarrollo mínimo inicial y una carga mínima durante el tiempo de ejecución.
Su alto grado de integración en el chip permite un mínimo de circuitos externos, incluyendo el módulo de front-end, estando diseñado para ocupar un área mínima de PCB.
Asimsimo el ESP8266 admite APSD para aplicaciones VoIP y interfaces de coexistencia Bluetooth, contiene un RF autocalibrado que le permite trabajar en todas las condiciones de funcionamiento y no requiere piezas externas de RF.
Nota: Existen una nueva versión del módulo ESP8266 WiFi que ha aumentado el tamaño del disco flash de 512k a 1 MB.
Caracteristicas:
- 802.11 b / g / n
- Wi-Fi Direct (P2P), soft-AP
- Pila de protocolos TCP / IP integrada
- Interruptor TR integrado, balun, LNA, amplificador de potencia y red de conexión
PLLs integrados, reguladores, DCXO y unidades de administración de energía - + 19.5dBm de potencia de salida en modo 802.11b
- Corriente de fuga de <10uA
- 1MB de memoria flash
- CPU de 32 bits de baja potencia integrada podría utilizarse como procesador de aplicaciones
- SDIO 1.1 / 2.0, SPI, UART
- STBC, 1 × 1 MIMO, 2 x 1 MIMO
- A-MPDU & A-MSDU agregación & 0.4ms intervalo de guardia
- Despierta y transmite paquetes en <2ms
- Consumo de energía en espera de < 1.0mW (DTIM3)
Como nota importante,el módulo ESP8266 no es capaz de cambiar la lógica de 5-3V y requerirá un convertidor de nivel lógico externo si necesita conectar sensores o actuadores que utilizen logica TTL.
Si alguna vez ha intentado conectar un dispositivo de 3,3 V a un sistema de 5 V, es un desafío por lo que lo mejor es usar un convertidor de nivel lógico bidireccional.Estos suelen ser pequeños dispositivos que descienden de forma segura las señales de 5V a 3.3V y suben de 3.3V a 5V al mismo tiempo. Estos convertidores de nivel también funcionan con dispositivos de 2.8V y 1.8V y son muy fácil de usar: estas placad debe ser alimentada por las dos fuentes de tensión (alta y baja tensión) que su sistema está utilizando. Alta tensión (5V por ejemplo) al pin ‘HV’, baja tensión (3.3V por ejemplo) a ‘LV’, y tierra del sistema al pin ‘GND’.
Materiales y herramientas
Para hacer este relé wifi necesitara:
- Un Esp8266 ,el cual se puede programar como un arduino y un adapatador
- 2 relés 220vac control por 12v
- 2 transistores TIP122
- 6 diodos IN4007
- unas resistencias (2x1k, 2x10k, 330, 220)
- un transformador de 12v
- un lm317
- condensadores 50v 1000uf y 10uf
- pcb de prototipos,algunos tornillos,enchufe AC , cable ,etc
Para las herramientas necesitará un soldador, un taladro, un 3d impresora (opcional) y papel de lija.
La placa de relé
Aunque se pueden adquirir ya montados placas con reles y el driver por un precio bastante económico, es también bastante sencillo construirlo usando dos reles de 12v , dos transistores mosfet TIP122, dos diodos de proteccion y dos resistencias de base de 1K
La electrónica de este proyecto pues o se compone de dos placas:
- La placa de relé con 2 relés y 2 transistores, la cual puede ser adquirida aparte o bien montarla uno mismo
- La placa de esp8266 con el módulo y toda la parte parte de alimentacion (transformador, puente rectificador y el lm317 para el 3c3 regular)
Un ejemplo de montaje es colocar todos los componentes en el pcb de prototipo y luego cortar la placa el tamaño adecuado con una sierra. Todos los componentes se sueldan y después se ponen los puentes con cable . Atención con el diámetro del cable cuando se conecta el relé pues,debe usar un cable de mas seccion por el tema de la carga AC
La placa principal
El tablero principal consta de 3 partes:
- La fuente de 12v que inlcuye un puente rectificador de Graetz (bien ta montado o con cuatro diodos) y un condensador electrolitico.
- La fuente de 3v3 regulados con el lm317 y las dos resistencias que suministran un voltaje constante para la esp8266.
- El propio modulo esp8266 con las dos resistencias de protección
Para realizar la segunda placa , repita el mismo proceso de la primera. Cuando termine, compruebe el voltaje en el pin de alimentación del módulo.
Cuando están hechas las 2 placas, conecten con cable ambo módulos.
Hacer la caja
Si no, puede hacer una caja de un Tupperware o cualquier caja de plástico.
Ahora usted puede terminar todo. Coloque primero la electrónica y el transformador en la caja y pegar. Tomar 3 tapones (uno en y 2 hacia fuera), el extremo de la tira . Conecte cada cable con el tornillo terminales siguiendo el esquema.
No se olvide de conectar el transformador.
Después de enchufe en el módulo, cierre el cuadro con 4 tornillos..!y eso es todo! ahora puede controlar cualquier dispositivo con su smartphone o PC.
Programa para la Esp8266
A continuación se describe el codigo de ejemplo para gestionar el ESP8266
#include
#include
#include
// crear una instancia Arest
aREST_UI rest = aREST_UI();
// parametros WiFi
const char* ssid = «wifi nom»;
const char* password = «mot de passe»;
// puertos TCP
#define LISTEN_PORT 80
// crear una instancia de servidor
WiFiServer server(LISTEN_PORT);
void setup(void)
{
Serial.begin(115200);
// crear UI
rest.title(«Relay «);
rest.button(2);
rest.button(0);
//dar nombre y la identificación del módulo
rest.set_id(«1»);
rest.set_name(«esp8266»);
// conectarse a wifi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(«.»);
}
Serial.println(«»);
Serial.println(«WiFi conectado»);
// inializando el servidor
server.begin();
Serial.println(«Servidor arrancado»);
// imprime direccion IP
Serial.println(WiFi.localIP());
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
rest.handle(client);
}
Basicamente se conecta a la red Wifi que se decida , se crea una instancia Arest que atiende el puerto 80 y en funcion del pulsador que se pulse se actua sobre la placa
!No se olvide de cambiar el nombre de wifi y la contraseña en este código!
Una vez tenemos el código ,el último paso es programar el esp8266 como un Arduino.
Seguir este tutorial si no ahora como hacerlo: https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide para lo cual hay que descargar el programa (wifirealy.ino ) y cargarlo en el módulo esp8266 usando por ejemplo el siguinte montaje
Para probar el montaje ,introduzca la dirección IP del módulo en cualquier navegador y verá 2 interruptores virtuales de encendido/apagado. Esto cambiara el control de los pines gpio 2 conectados a los transistores que a su vez excitaran los reles correspondientes controlando las cargas que se tengan conectadas a estos .
Hola, Gracias por tu aporte. Tengo una pregunta, se podría reemplazar ese trasistor mosfet por un bjt?
Me gustaMe gusta
No veo porque no .Solo de tener en cuenta que la salida del ESP es TTL
Me gustaMe gusta
muy bueno.. sabes si se podría cambiar interruptor on/off por pulsador ?? es decir , el lugar de encender apagar .. que sea un pulsador para una puerta automática por ejemplo..
Me gustaMe gusta
El código no esta completo ( es solo un ejemplo) pero por supuesto en vez de que el funcionamiento sea el ser el de un astable el funcionamiento sea un biestable .
Me gustaMe gusta