Control remoto por wifi

Hoy en día   es  posible controlar cualquier luminaria, aparato eléctrico,etc  por múltiples  métodos  y tecnologías (Netduino+,Raspberry Pi ,etc) ,pero en el post   siguiente veremos  que  por medio una tableta o smartphone (wifi) usando Arduino, Blynk y un Wemos ( o cualquier placa  con ESP8266)  puede ser también una tarea sencilla

En este post Ruben Marc  SpeyBrouk  nos enseña  lo que el llama un interruptor de corriente alterna controlado por wifi (aunque lógicamente  también funciona con aplicaciones de CC ) Básicamente consiste en una pequeña caja que puede controlar cualquier carga de corriente eléctrica alterna en su hogar, en base a los comandos enviados desde  su tableta o teléfono inteligente. En la parte superior (Arduino) se puede programar para reaccionar a la entrada de cualquier tipo de sensor o comando .El proyecto en realidad no esta cerrado pues puede adaptarse a sus necesidades y limitado únicamente por su imaginación.

Lo llamativo es que el costo total del proyecto puede ser entre 5 € y 25 € dependiendo de lo que haya por ahí en su casa.

En el siguiente video  podemos verlo  en acción:

A continuación  algunas posibles  motivaciones para acometer un proyecto de este tipo:

  • Cree que el sistema de Phillips y todas las otras alternativas comerciales son muy caros y desea una solución  que ne realidad se puede adaptar a sus necesidades pero por  una fracción del precio
  •  Quiere asustar a alguien cambiando sus luces ON / OFF cuando están solos en casa,  para que no sea capaz de comprender lo que está sucediendo
  •  Quiere cortar las luces en la oficina que trabaja, para que todas las luces se encienden cada vez que usted  entre
  •  Quiere controlar su calentador de agua en la mañana o la tostadora
  •  Usted tiene un calentador eléctrico y  desea programarlo para activar / desactivar el control o hacerlo con el teléfono
  •  Usted quiere asegurarse de que todas las luces de su casa se apaguen durante el día brillante para asegurarse de que ninguno permanezca en forma innecesaria.
  •  Usted quiere dar vuelta a un ventilador ON / OFF de acuerdo con la temperatura de la habitación, la hora del día o un teléfono inteligente de comandos.
  •  Usted está haciendo un proyecto personalizado que requiere el control remoto de un relé y tal vez también un sensor …
  •  Si desea programar las luces de su casa para encenderlas   o apagarlas  mientras está de vacaciones en diferente orden, para que sea realmente parezca que está en casa.
  • Quiere hacer un interruptor programable que reacciona a la temperatura, humedad, luz, movimiento, sonido, o cualquier combinación, pero, al mismo tiempo que desea ser capaz de anular de forma remota a través de su teléfono o PC.

 Introducción y piezas necesarias

La idea  del circuito es un cable de extensión conectado  a su aplicación eléctrica y que controla  la corriente que sale de la toma al aparato a través de una derivacion  que está alimentado por un esp8266 y programado en Arduino o lua. La unidad está alimentada por una pequeña fuente de alimentación interna no habiendo  baterías.

La primera cosa que usted necesita hacer para construir su interruptor de wifi es  conseguir los componente bien mediante reciclaje o comprandolos. La mayoría de las partes ,si es aficionado  a la electrónica ,es probable que ya las  tenga por lo que el proyecto  no le será caro. Si tiene dificultades para encontrar las piezas, eche un vistazo a aliexpress.com(es muy barato e incluye los gastos de envío gratis). Evitar los sitios occidentales como Sparkfun y Amazon  si busca  un presupuesto ajustado.

Si desea realizar un proyecto IOT o Arduino que está conectado a Internet a través de WiFi, necesitará una placa que puede conectarse a Wi-Fi.  El Arduino UNO, nano, micro, Mega … no se pueden conectar a Wi-Fi sin la adición de escudos caros y obsoletos .Las placas  ESP8266 son grandes, pero a menudo no son compatibles con Arduino fuera de la caja. Es complejo  conseguir estos para trabajar con Arduino y su tamaño les hace difícil trabajar con él. Con una placa Netduino 3 wifi  si lo podra hacer  pues lleva integrado el interfaz  wifi  pero en este post vamos a hablar de una placa  cuyo coste es bastante inferior

En lugar de estas soluciones  , una buena idea es es conseguir un mini-D1 Wemos en aliesxpress .com El Wemos D1 mini esta basado en  un ESP8266 en una placa  contando con capacidades WiFi completo fuera de la caja y sólo cuesta $ 4.00. !Es  increible  que  cueste cuatro dólares por un microprocesador que se conecta a Wi-Fi!

El D1 mini es una placa  mini WIFI  basado en ESP-8266EX. Hay muchas mas información en : Http://www.wemos.cc

Estas son sus principales características:

Realmente ademas este nuevo diseño V2  es mejor que el diseño anterior como podemos ver a continuación:

Las mejoras del V2 se centran en:

  •  Uso BRT (Sesgo resistor transistor), más fácil en el modo de flash.
  •  30% Aumento de área de radiación, más estable.

aeProduct.getSubject()

aeProduct.getSubject()

Externamente podemos  apreciar:

  • 1. Micro puerto USB
  • 2. Botón de reinicio
  • 3. 2*8 p pins

El sistema  es muy similar a  los escudos de Arduino  o Netduino llevando conectores macho y hembra  para poder conectar escudos. Aquí lo vemos después de la soldadura  donde la gran diferencia es dado su reducido tamaño   también los podemos pinchar a el mismo  también en un placa de prototipos

aeProduct.getSubject()

También es interesante destacar  lo fácil que es usarlo en placas de prototipos como mencionábamos anteriormente gracias a su reducido tamaño:

aeProduct.getSubject()

Como curiosidad también están disponibles  mini-escudos para D1 min como puede ser un lector de microsd, un sensor de temperatura  y humedad un pulsador  y la lista muy pronto crecerá…

aeProduct.getSubject()

En resumen el modulo Wemos  cuenta con todas las cosas que necesita  y le gusta de Arduino como son pines digitales, pines analógicos, Vin, GND, 3,3 V de salida, conector de alimentación, salida de 5 V y un conector micro USB rápido y fácil de cargar sus bocetos. Por tanto parece una solución  buena  si quiere empezar a hacer proyectos de IOT en pequeñas cantidades  si quiere gastarse muy poco dinero (puede comprarlo por 4$ en Aliexpress)

Componentes necesarios para este proyecto:

  • Un esp8266, se recomienda encarecidamente las mini-Wemos D1, o tableros mc LUA con el puerto micro USB.
  • Relé / 10a Una 5v, recomiendo los que tienen terminales de tornillo a menudo etiquetados «relé de Arduino».
  • Una Fuente de  5V(cualquier s cargador de teléfonos, tabletas y USB).
  • Una caja de plastico o cualquier otra caja o caja no conductora que pueda tener.
  • Un interruptor de encendido  de 1A/250v.
  • Un pulsador – cualquier tipo va a hacer su función. (Encontrar estos en casi cualquier vieja radio o un juguete o kits de iniciación Arduino)
  • Una regleta  de conexiones o (mínimo 10 amperios se recomienda aquí)
  • Un cable micro USB para destruir (Puede resultar dañado por el lado del usb, y no necesita ser un cable de datos – sólo necesitamos el lado conector USB micro)
  • Un cable micro USB para la programación
  • Un poco de cablee que puede soportar 10A ( por ejemplo de un cable de alimentación de  PC )a.

Opcional:

  • LEDS ( añaden un LED en serie con el pulsador, ya que hace más fácil manera de la prueba, también se pude agregar un azul brillante LED que se pueden programar y encender separado para encontrar el baño por la noche)
  • Un interruptor de circuito o fusible
  • Epoxi o pegamento caliente para encapsular completamente los aparatos eléctricos (recomendado para una mayor durabilidad)
  • Sensores que desee añadir (por ejemplo  un pulsador adicional para ser programado para hacer cualquier cosa :enviar correo electrónico, a conectar la alimentación sólo por un corto tiempo, bloquear el dispositivo,boton SOS, etc.)

 

 

 

Una nota sobre los relés: Se recomiendan encarecidamente usar  un relé normal, y no un SSR. La razón es que los relés mecánicos son mucho más seguros. Los relés de estado sólido tienden a absorber  un poco de corriente en el exterior. Además la mayor parte de Arduino etiquetados SSR no admiten más de 2 amperios. Una lámpara de pie clásica de sala de estar consumirá fácilmente más de esto.Los  reles  mecánicos son más seguros y duran mucho tiempo bajo condiciones normales de uso. Otra ventaja es que hacen una diferencia «, hacen  un sonido de ckick» cuando se activa. La mayoría de la gente encuentra este sonido muy satisfactorio escucharlo, ya que realmente te hace sentir que el circuito es interrumpido de forma segura, incluso si no lo estaba buscando.

Una segunda nota de relés: Los relés en general cuentan con dos opciones de configuración. Elija «normalmente cerrado» para este proyecto. Esto es importante, ya que permite la luz de noche para operar como antes, cuando el wifi está inactivo o cuando se mande por  wifi apagar. Normalmente abierto (al contrario de lo que se piensa) significa que el circuito se interrumpe de manera predeterminada, lo que significa que si su caja de interruptores mona está apagado, fuera de línea o no funciona correctamente, su luz no va a continuar.

Ahora es el momento de pegar los terminales y el relé en su lugar. Asegúrese de que el cable (10 amperios) de la terminal de neutro a la terminal neutro OUT ya está en su lugar antes de encolar. Lo mismo ocurre con el hilo actuvo que va desde el terminal IN para el relé. usar también dos pequeños cables 5v de los dos en terminales en paralelo con las 10 unidades de amplificador, estos serán alimentar el convertidor de potencia para los Wemos (o el microcontrolador decide utilizar ) .

Una vez que los terminales están en su lugar, es necesario soldar los dos cables de 5v pasos previos a su ac a 5v convertidor cc en el lado marcado claramente como «IN». De manera óptima también se debe soldar un interruptor en el medio uno de los cables y el convertidor. Esto le permitirá cambiar de la fuente de alimentación y por lo tanto el cargador. Soldar los cables rojo y negro del conector USB macho al convertidor en el lado marcado «OUT».(Asegúrese de conectar el cable rojo a + y el negro al -). no son necesarios aquí los cables verde y blanco. También puede usar un poco de tubo  de sellado y el pegamento caliente para fortalecer y aislar. Muy recomendable para la seguridad y durabilidad.

NOTA: es una buena práctica para permitir también conectar un terminal de tierra  para la toma de tierra. Además, un fusible o disyuntor en uno de los cables activos  realmente puede mejorar la seguridad contra incendios.

wemos

Ahora , soldar 3 cables desde sus Wemos d1 Mini o el otro tablero esp8622 a su relé. La primera debe ser de GND a GND, 5v a 5v y por último D8 (GPIO Cualquier funciona, pero esto es lo que se ha usado en el código) a la entrada de su repetidor.

Este es también el momento de soldar  componente opcionales a su montaje por ejemplo ,  dos LED ‘s y dos pulsadores.Es interesante  al menos agregar un  pulsador, ya que esto permitirá que usted utilice su interruptor de wifi sin conexión a Internet también,pues puede programar ese botón para anular comandos de Internet cuando sea necesario o simplemente para complementar sus comandos en línea. También puede programarlo para hacer cosas completamente diferentes, como enviar un correo electrónico o llamar a su timbre de la puerta).

 En el D5 código (GPIO14) se utiliza para el pulsador que cambia manualmente en las luces. D4 (GPIO2) se utiliza para el LED que indica las acciones.
Se podría añadir cualquier sensor en este punto también. Un sensor de temperatura, por ejemplo, podría permitir el cambio a un correo electrónico cuando se pone demasiado caliente en su habitación y le pregunte si desea encender el ventilador eléctrico o no. Un sensor de luz, que cambia las luces automáticamente cuando se hace de noche. Las posibilidades son ilimitadas.Cuando haya tomado una decisión sobre los sensores y opcionales, pegar todo en su lugar. La adición de pegamento caliente para fortalecer el vínculo es siempre una buena idea. Una plancha con calor moderado y una delgada punta del tamaño de un lápiz que es mejor para la soldadura en las juntas como los Wemos. Sea rápido y preciso.

NOTA: La disposición de las clavijas de la mini Wemos es diferente de la de la ESP8266 estándar. Tenga esto en cuenta cuando se trabaja con Wemos y Blynk.  Verde oscuro es la disposición de las clavijas en Blynk, en Arduino que acaba de utilizar el número de pin marcado en el tablero precedido por «D». Ejemplo: «digitalWrite (D1, LOW);»

Aplicación Móvil

Para hacer  nuestra aplicación vamos a utilizar Blynk. Blynk es una sencilla herramienta que le permite crear aplicaciones en su teléfono y compartir esas aplicaciones con otra people.www.blynk.cc. Es un sistema de arrastrar y soltar así que no hay lenguaje de programación y puede  tomar el control directo de los pines de la placa Arduino. Comenzó como un pedal de arranque en 2015, pero rápidamente creció hasta convertirse en una herramienta profesional y de gran utilidad.

La mejor parte es que la aplicación se creará en sólo un minuto y estará totalmente adaptable!

Estos son los pasos a seguir para  crear la aplicación

  • Ir a la tienda de Apple  en su teléfono o tableta y descarga Blynk.
  • Hacer una cuenta en la aplicación Blynk
  • Haga clic en el icono más en la parte superior de la aplicación para hacer un nuevo proyecto
  • Email el token de autorización del nuevo proyecto a sí mismo, que lo necesitará en la parte de codificación de Arduino  a fin de mantener que el correo electrónico abierto para el paso siguiente.
  • Bajo el modelo de hardware, seleccione ESP8266 si se ha utilizado un Wemos u otra mesa basado esp.
  • Agregue dos botones a su proyecto. Botones pulsadores (no cambiar) paraGPIO0 (D3 en el código) y uno opcionalmente para el segundo LED es posible que haya añadido.
  • Añadir el widget terminal. (Blynk ha convertido recientemente en un servicio de pago de una cierta cantidad de widgets, pero te dan un montón de crédito gratis en muestra hasta que esta aplicación y dura para siempre). Elija v1 y establecer todas las opciones en «ON».
  • Felicitaciones, usted acaba de hacer una aplicación de teléfono inteligente.Puede compartir esta aplicación con quien sea. Hay un montón de otros widgets para elegir que pueden incorporar y mostrar los datos sensoriales de los sensores es posible que haya añadido. También puede añadir un gráfico de la historia (tercer bloque central PIC) para supervisar su actividad  a largo plazo.  Es interesante  la adición de la aplicación de la notificación, pues éste automáticamente le enviará una notificación si su dispositivo se queda sin conexión, ideal  no sólo para las pruebas, sino también muchas aplicaciones del mundo real .

 

Código Arduino

Construida ya la app movil  ahora toca  programar  su placa Wemo  para qeu interprete las ordenes enviadas por la app.

Conecte el cable micro USB a su  placa  y un ordenador portátil. Todo el código del ejemplo se ha programado  en Arduino. Tenga en cuenta que también se puede programa en Lua y ciertas alternativas de javascript. .

Si usted es nuevo en Arduino, no se deje intimidar. Sólo tiene que descargar la última versión desde arduino.cc e instalar. A continuación, siga los pasos a continuación. Sólo es necesario pensar lógica básica para entender el código y sin cerebro en absoluto para subir mi código.

Se han  utilizado dos bibliotecas:

  1.  Blynk biblioteca, encuentre versión más reciente en http://www.blynk.cc/getting-started/
  2. La biblioteca elapsedMillis, https://github.com/pfeerick/elapsedMillis

También tenga en cuenta que es necesario instalar la placa. Si ha utilizado los mini-Wemos d1, vaya a http://www.wemos.cc/tutorial/get_started_in_arduino.html. seleccione su versión de la placa  y siga los pasos instalaciones. Se recomienda la instalación automática a través del gestor de placa Arduino (Es super rápido y fácil). No se olvide de seleccionar la tabla de más adelante, cuando la posibilidad de subir.

Sin la última versión de las bibliotecas y el ajuste de tarjeta correcta, su código no funcionará!

Importante: el token de autorización en el código es el que usted encuentra en su teléfono o tableta en la aplicación Blynk y enviado por correo electrónico a sí mismo en el paso anterior. Éste es esencial.Asimismo, no se olvide de cambiar la contraseña wifi y SSID.

 

El código Arduino:

// written by Ruben Marc Speybrouck
// Check out my instructables for more great stuff: http://www.instructables.com/member/Ruben+Marc+Speybrouck/

#define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include #include

WidgetTerminal terminal(V1);

// You should get Auth Token in the Blynk App.

// Go to the Project Settings (nut icon). char auth[] = «60b462d1df8c465bb4d7c7f9a21856a0»;//

int switchstate = 0; int switchstate2 = 0; int relaystate = 0;

//storing the variables that will read input.

#include elapsedMillis timeElapsed; unsigned int interval = 1000;

// Wait one second (1000 microseconds ) between button presses to switch the light on or off again. This avoids glitches and improves stability.

// after a lot of experimenting, I found one second to work best. DO NOT use delay for this as delay will also pause your wifi connection for one second, making it reset.

// timeElapsed functions allow the void loop to keep running, contrary to the simple delay functioning and are therefore the only ones that should be used when working with network communications

void setup() { Serial.begin(9600); Blynk.begin(auth, «SSID», «Password»); // fill in your ssid (the name of your wifi network) and password here. Note that the quotation marks need to stay.

pinMode(D4, OUTPUT); pinMode(D2, OUTPUT); pinMode(D3, OUTPUT); pinMode(D5, OUTPUT); pinMode(D8, OUTPUT);

digitalWrite(D4, HIGH); digitalWrite(D2, HIGH); digitalWrite(D3, HIGH); digitalWrite(D5, HIGH); digitalWrite(D8, HIGH); delay(1000);

digitalWrite(D4, LOW); digitalWrite(D2, LOW); digitalWrite(D3, LOW); digitalWrite(D5, LOW); digitalWrite(D8, LOW);

//I found that switching everything on and off at boot gets rid of static electricity and other irregularities. //And added bonus of doing this is that the clicks from the relay let you know exactly when the device is connected to the internet and fully booted

delay(1000);

terminal.println(F(«Blynk v» BLYNK_VERSION «: Device started»)); terminal.flush(); //This will get the terminal widget of your blynk app started }

void loop() { Blynk.run();//initiate connection with the blynk server, for your phone app unsigned long currentMillis = millis();// start counting milliseconds for delays between button presses

switchstate = digitalRead(D3); switchstate2 = digitalRead(D5);

//D3 is were your physical push button is, D5 is the button in my blynk app I choose.Note that gpios in the blynk app have different numbers. Serial.print(switchstate); Serial.print(» ——- «);

Serial.print(switchstate2); Serial.print(» ——- «); Serial.print(» THE RELAY IS: «); Serial.println(relaystate);

// For troubleshooting I included serial print. This only works through usb from your microprocessor to your laptop with arduino’s serial monitor open.

if (relaystate == LOW)

{ if (switchstate == HIGH || switchstate2 == HIGH)

{ //if the physical button or button in app is pressed if (timeElapsed > interval)

// if more than one second has passed since the previous time a button was pressed, execute the code and change the relay state.

{ relaystate = HIGH; digitalWrite(D8, HIGH); digitalWrite(D4, HIGH); terminal.println(«Bedroom light switched ON»); terminal.flush(); delay(5); timeElapsed = 0; // reset the counter to 0 so the counting starts over… } }

else { delay(5); // small delay to improve stability } }

// if the relay is on position off (low), switch it on if the blynk app button is pressed or the physical button is pressed. Change the state of the variable relaystate to on // Print to the blynk app terminal widget that the bedroom light is now on.

else if (relaystate == HIGH) { if (switchstate == HIGH || switchstate2 == HIGH) { if (timeElapsed > interval) // if more than one second has passed since the previous time a button was pressed, execute the code and change the relay state.

{

relaystate = LOW; terminal.println(«Bedroom light switched OFF»); terminal.flush(); digitalWrite(D8, LOW); digitalWrite(D4, LOW); delay(5); timeElapsed = 0; } }

else { delay(5); } }

// if the relay is on position on, switch it off if the blynk app button is pressed or the physical button is pressed. Change the state of the variable relaystate to off // Print to the blynk app terminal widget that the bedroom light is now off.

}

Puede descargar el código  aqui

 

 

Si ha hecho todo bien, ahora se ha hecho un gran salto en IOT y de código abierto de Home automation.

Para obtener ayuda sobre Blynk, eche un vistazo a su foro muy activo:http://community.blynk.cc/
Para preguntas sobre Wemo  puede visitar : http://forum.wemos.cc/

 

 

Fuente   aqui

Un comentario sobre “Control remoto por wifi

Deja una respuesta