Como controlar hasta 10 dispositivos desde Internet


Cuadro de Electricidad Imp para controlar 8 luces eléctricas utilizando Internet
Este proyecto realizado por Miseim utiliza el dispositivo Eléctrico Imp  y es capaz de controlar a distancia 10 dispositivos eléctricos de 220V a través de WiFi, gracias al servicio Internet Imp Cloud.
Básicamente, la «esencia» del proyecto:
  •  El modulo Imp envía una cadena de bits en serie  a un chip conversor de  serie a paralelo digital fabricado por Texas Instruments,envíandose  un valor (0-255 decimal o hexadecimal FF) mediante dos bits del puerto serie UART (patillas 1 y 2).
  • El chip de TI sólo puede recibir bits, por lo que  pin Imp 2 (RX) no se utiliza.
  • El chip TI convierte esa entrada serial en 8 salidas digitales
  • Electrónicamente, desde  esa salida se puede encender o apagar cualquiera de los relés de estado sólido o con relés tradionales.

El chip de TI es direccionable, 0-7 usando 3 bits. Eso significa que técnicamente podría tener hasta 8 de ellos en una línea para conducir 64 salidas digitales. En este proyecto , el chip de TI sólo recibe bits en serie y no envía ningún dato de vuelta (para UART bidireccional tendría que utilizar un método diferente).

Se ha escogido este chip de TI, ya que no necesita de un reloj,se sincroniza automáticamente con base en el momento del primer bit de inicio,lo cual hace que el circuito sea super simple y fácil para que cualquiera lo pueda construir

Para poner en marcha el dispositivo Electric Imp , debemos registrar nuestro disposistivo en el sitio web eléctrico Imp (www.electricimp.com) y crear una cuenta para su dispositivo Electric Imp.

esqeumaelectricimp

Este seria el esquema  de circuito tabla final  que pude implementarse en una placa protoboard   o bien en una sencilla placa de puntos  soldando los componentes a esta.

En el circuito sólo se  usan los pins Imp 1 y 9 del Electric Imp,lo cual  deja pines extra que puede usarse  para otras cosas. El chip TI es direccionable (3 bits), por lo que podría ampliar este a salidas más digitales.

Los  pines extra del electric Imp no usados en este  aplicacion (5,7,8,9) se podrían utilizar para las entradas procedentes de algunos interruptores externos. No se puede utilizar el pin 2, porque eso está reservado para UART12 (puerto serial, los pines 1 y 2).En esta ocasión  no se usa aquí porque el chip de TI no puede devolver ningún dato.

Relés de estado sólido pueden  montarse  en el lado de la caja, Si se van a utilizar para fines de alto amperaje, tendrían que ser montados en disipadores de calor de algún tipo esos relés . Ademas si usted planea en la conmutación más altas cargas de corriente, consulte con un experto con experiencia para la instalacion apropiada. También se dan cuenta de que todos estos circuitos entran en un cable de alimentación y una toma de corriente doméstica. Tenga cuidado de no sobrecargar una salida, y nunca utilice dispositivos de seguridad tales como fusibles e interruptores de circuito.

Observe también que los cables de extensión no tienen tierra. Una vez más, utilizar el sentido común y la sabiduría en la determinación de qué tipo de cosas que le cambio con este proyecto. Con la construcción adecuada y relés adecuados, esto podría ser utilizado para cambiar los dispositivos de alto amperaje.

A  continuación el listado para el código imp incluyendo  tanto el código para el «Agente», como el código para el «Dispositivo».


REV: 10/06/2013

AGENTE
===========================

http.onrequest (function (req, resp) {
if (req.method == «POST») {
cuerpo local = http.urldecode (req.body);
server.log («Interruptor entrante:» + body.data);
/ / Recibido como dos bytes: 0000 0000
/ / Restablecer todo: 00 (0000 0000)
/ / Switch 1: 01 (0000 0001)
/ / Interruptor 2: 02 (0000 0010)
/ / Switch 3: 04 (0000 0100)
/ / Interruptor 4: 08 (0000 1000)
/ / Interruptor 5: 10 (0001, 0000)
/ / Interruptor 6: 20 (0010, 0000)
/ / Interruptor 7: 40 (0100, 0000)
/ / Interruptor 8: 80 (1000 0000)
device.send («Datos», body.data);
}
resp.send (200, «OK»);
});

DISPOSITIVO
===========================
/ / UART Comunicación de TI SN74LV8153 serie a paralelo de la viruta

/ / Receptora que botón es apretado …
/ / Hay un par de maneras de hacer esto …
/ / Se puede realizar un seguimiento de lo que los interruptores están encendidos o apagados dentro
/ / El script en línea (PHP, Perl, javascripting) y enviar una
/ / Valor único que consigue entregada al chip TI. Que
/ / Valor incluirá las posiciones actuales de todos los interruptores.
/ / O …
/ / Usted puede enviar un valor que indica que se ha pulsado solo interruptor.
/ / Lo estoy haciendo de esta manera. Cada vez que se hace clic en un interruptor, que
/ / Envía el valor correspondiente a un bit. Ese valor es entonces
/ / Convertido a un entero. Haciéndolo de esta manera, es posible
/ / No saber qué posición del interruptor es pulg Este método
/ / Se debe utilizar para pulsadores momentáneos en una página web. Estoy
/ / Uso de interruptores deslizantes jQuery, por lo tanto cambiar de encendido a apagado o
/ / Apagado a encendido envía el mismo bit individual. Siempre empiezo por
/ / Desactivar los interruptores de gráficos (en off), y restablecer la
/ / IMP a 00 (cero). Una variable global «máscara» se utiliza para mantener
/ / Seguimiento de la posición actual de los interruptores. Cuando un nuevo
Se recibe / / bits, máscaras que poco (XOR bit a bit) con la «máscara»
/ / Y que crea el nuevo valor para el envío al chip TI.

writeSerial función (valor) {
/ / Hacer un OR exclusivo (XOR) para cambiar sólo la parte que se recibió (alternar él).
nuevovalor locales = valor ^ máscara;
if (value == 00) {
/ / Se ha recibido un cero, por lo que hacer un reinicio (apagar todas las salidas)
nuevovalor = 00;
}
hardware.pin9.write (0);
salidas locales = NewValue;
dirección local = 0x00; / / escribir a la dirección 0 de chip
/ / Enviar datos en serie a chip de TI
hardware.uart12.write (formato («% c% c», 0x01 | (Dirección << 1) | (salidas y 0x0f) << 4, 0x01 | (Dirección << 1) | (salidas y 0xf0)));
server.log (formato («WiFi señal:% d dBm«, imp.rssi ()));
Intensidad de la señal / / Imp RSSI
/ / Abajo -87 cero (aún conectado, pero apenas)
/ / -87 .. -82 1
/ / -82 .. -77 2
/ / -77 .. -72 3
/ / -72 .. -67 4
/ / Por encima de -67 5
hardware.pin9.write (1);
enmascarar = nuevovalor;
}

/ / Convertir cadena hexadecimal a un entero
hexToInteger función (hexadecimal) {
de resultado local = 0;
cambio locales = hex.len () * 4;

/ / Para cada dígito ..
for (d locales = 0; d = 0x61)
dígitos = hex [d] – 0x57;
else if (hex [d]> = 0x41)
dígitos = hex [d] – 0x37;
más
dígitos = hex [d] – 0x30;

/ / Acumula dígitos
cambiar – = 4;
resultado + = dígitos << turno;
}
return resultado;
}

/ / Pin9 es un indicador blip LED siempre que los datos se envía al chip de TI
hardware.pin9.configure (DIGITAL_OUT);
hardware.uart12.configure (19200, 8, PARITY_NONE, 1, NO_CTSRTS);
/ / La variable global «máscara» hace un seguimiento de la situación actual de los interruptores.
/ / Estoy haciendo esto en la imp. Como alternativa, puede realizar un seguimiento de los interruptores
/ / Dentro de la secuencia de comandos web y enviar las posiciones correctas de los 8 interruptores a la vez.
máscara agent.on («datos», la función (valor) {
valor = hexToInteger (valor);
writeSerial (valor);
});
writeSerial (00);

/ / Registrar con el servidor
imp.configure («TI_SN74LV8153», [], []);


Para ver un ejemplo de trabajo del panel de control de usuario página web (ver imagen superior) Ir a: http://www.catpin.com/demo

1) Puede ver la demo en su smartphone y ver cómo funcionan los interruptores deslizantes.
2) Puede ver el código fuente HTML para ver el JQuery y scripts (utilizando su navegador, ver el código fuente HTML).
3) El script PHP actual que el valor de POST al imp se muestra en la imagen de arriba.

Con el código Imp, se usa un  sitio web que utiliza jQuery y / o jQuery Mobile para enviar un interruptor de presión momentánea al imp. Presione ON, OFF Press. Usted puede utilizar cualquier tipo de página web que desee, y  javascripting o HTML5 ,aunque en el ejemplo se esta usando PHP scripting del lado del servidor a POST el valor (s) a la imp(es posible que prefiera Perl, o algún otro método de servidor).

El propósito del script PHP para POST es para ocultar la URL agente imp del usuario. Si codifica el POST usando jQuery, el usuario será capaz de ver la URL en el código HTML. Con PHP (server-side), esa URL se mantiene en secreto.

Básicamente, la «esencia» del proyecto: Se envía el Imp un valor (0-255 decimal o 00-FF hexadecimal) y envía esa corriente de bits del puerto serie UART (patillas 1 y 2). El chip de TI sólo puede recibir bits, por lo pin Imp 2 (RX) no se utiliza.

Desde el botón o interruptor de cambio en la página web a la luz real de encender o apagar tardará aproximadamente 1 segundo, dependiendo de lo rápido que el Internet es para usted. Esa velocidad incluye la velocidad de conexión (DSL, banda ancha, etc.) 1 segundo parece rápido, pero en esta industria «, aproximadamente 1 segundo» no es instantáneo, y no es predecible, así que tengalo en cuenta si el tiempo es crítico.

COMO HACER UNA BREVE PRUEBA SIN EL SCRIPT PHP SIN PROBLEMAS …

Para probarlo con un script HTML «minimalista», copie este script de prueba y súbalo a su sitio web.Ponga en su propio ID de agente. Introduzca los valores tales como, 01,02,04,08,10,20,40,80 … esos son los 8 bits para los relés respectivos.

«Test.html» … un super simple script HTML para probar el circuito completo ….

<html>
<form action="https://agent.electricimp.com/nH58i4tGp5ur/" method="post">
Valor: <input type="text" name="data">
<input type="submit" name="submit" value="Submit">
</ Form>
</ Html>

Lista de componentes:
Todo, excepto los relés de estado sólido se puede construir por menos de $ 100USD.

  •  Caja de plástico que puede soportar condiciones climáticas exteriores. Utilice plástico para proteger a la electrónica   asi como la recepcion  WiFi(puede usar  una vieja caja de herramientas de plástico barato. Impermeable, w / asa de transporte).
  •  Eléctric Imp (Sparkfun Cat No. WRL-11395 (aprox. $ 30 USD) 
  • April Electric Imp breakout board Sparkfun Cat No. BOB-11400  (approx $13USD)
  •  TI (Texas Instruments) Serial to Parallel chip: Mouser Electronics Cat No. 595-SN74LV8153N (approx $2USD)
  •  Placa del proyecto en blanco 
  •  7805 Regulador de Voltaje 5VDC  (menos de $ 1 USD) 
  •  Relés de estado sólido (SSR) 3-32VDC de entrada/ Salida 120-240VAC( son caros, pero se pueden encontrar usadas en Ebay )
  •  Varios LED, resistencias y condensadores, soldadura, alambre de conexión
Fuente  aqui