La forma más económica de controlar múltiples tomas de corriente (luces) a través de Wi-Fi

41

Lo que me gustaría ver es la forma más barata posible de controlar mis luces con mi Raspberry Pi.

Lo que imagino para controlarlo

Construyo una interfaz en mi teléfono inteligente mediante la cual puedo enviar comandos a mi Raspberry Pi. El Raspberry Pi luego enviaría un paquete (u otra cosa) a algo que pueda poner dentro de mi toma de corriente (para que no lo vea). Tenga en cuenta que esta cosa debe conectarse a través de Wi-Fi (¿de qué otra manera va a recibir el mensaje de mi Raspberry Pi?).

¿Qué es esta cosa y lo que es posible la forma más barata posible, ya que tengo la intención de conectar una docena de luces?

Rick Hoving
fuente
Hay un punto de venta controlado por wifi que alguien hizo por alrededor de $ 20 en partes (sin incluir la frambuesa pi) ProvoTronics.com
Ty Jones

Respuestas:

22

Estoy usando estos artículos:

  • Receptores ON-OFF para controlar mis luces (por lo general, coloca un dispositivo en el enchufe de pared o en lugar del enchufe de pared). Trabajan en la banda de 433 MHz (ISM).

Fuera de la caja tiene un control remoto que envía una señal al dispositivo receptor y lo enciende o apaga.

En mi caso, creé esta situación:

  • Creé un sitio HTML en mi Raspberry Pi ( /switch.html)
  • Llamo a esa página en mi teléfono inteligente
  • En la página hay cuatro botones (controlo cuatro dispositivos / luces)
  • Cuando hago clic en un botón, dispara asincrónicamente una llamada a /switch.php(el .php está en la Raspberry Pi)
  • El switch.phpllama a un switch.pyprograma que controla el emisor 433 MHz (véase más adelante)
  • El emisor de 433 MHz hace lo mismo que el control remoto listo para usar.

Este es el remitente, es decir, el reemplazo del control remoto estándar: Superregeneración del módulo transmisor inalámbrico de 433 MHz para Arduino

También creé un escenario para uso fuera de casa.

No quería conectar mi Raspberry Pi a través de mi homerouter directamente a Internet, así que construí otra página web (en mi propio dominio) que no controla el Raspberry Pi directamente, pero envía un correo electrónico a un (conocido solo por yo) dirección de correo electrónico ( Gmail ).

El Raspberry Pi revisa esa cuenta de correo electrónico cada 10 minutos para ver si hay algún correo electrónico. En ese correo electrónico, por ejemplo, digo A activado o B desactivado.

Entonces, cuando llegamos tarde a casa y las luces ya están apagadas, navegamos al sitio en mi dispositivo móvil (los planes son hacer que sea una aplicación de Android), haga clic en el botón, la página se publica y en el servidor se envía un correo electrónico, y en los próximos 0-10 minutos, la Raspberry Pi revisa el correo electrónico, ve cuatro correos electrónicos nuevos (A encendido, B encendido, C encendido y D encendido) y enciende las luces.

Cómo empezar

Entonces, para comenzar, estas son las cosas que he hecho para que todo funcione. En mi caso, programé el control del remitente de 433 MHz en Python (que es un lenguaje fácil si ya sabes programar).

Primero instalas la rpi.gpiobiblioteca.

Esta biblioteca se usa para controlar los pequeños pines en su Raspberry Pi desde su script Python. Consulte Instalar la biblioteca de Python RPi.GPIO .

Luego, opcionalmente, puede leer el artículo Tutorial: Cómo usar su Raspberry Pi como un Arduino , se trata de lo que puede hacer con la rpi.gpiobiblioteca, por ejemplo, LED parpadeantes .

Sin embargo, no es obligatorio para el cambio de luz de Elro.

Luego obtienes el increíble código para el comando de Elro por HeikoHeiko, en http://pastebin.com/aRipYrZ6 . Pega ese código en un archivo llamado ' switchelro.py'.

Luego cambia la cadena en la línea 94 a su propia configuración de puente (como ha configurado en su control remoto y el dispositivo de salida de pared. Verifique si la combinación de dispositivo de salida de pared remota funciona antes de probarlo con la Raspberry Pi. Si no funciona con los componentes estándar, probablemente también fallará con la Raspberry Pi).

Luego cambia el número del pin al que está conectado su remitente en la línea 97.

El número de pin se puede obtener de periféricos de bajo nivel RPi y en Archivo: RPi P1 header.png .

Debe usar el recuento de 1..26 (la imagen en negro), no el GPIO34, GPIO24, etc. (imagen verde).

Luego escribe esto en el símbolo del sistema:

sudo python switchelro.py 2 1

lo que significa 'encender B' (siguiendo este esquema: A = 1, B = 2, C = 4, D = 8, E = 16para el primer número, y 1 = encendido, 0 = apagado para el segundo).

He cambiado el repeat = 10sobre line 30que repeat = 20en el principio (que no recuerdo por qué) y que las obras. Nunca lo volví a intentar con la configuración '10'.

Michel
fuente
1
Ah, y el precio ... aquí en los Países Bajos, un conjunto de 3 receptores de toma de corriente (en el que hace clic en la toma de corriente y la luz entra en el receptor) con control remoto cuesta 15 euros. El remitente de 433 Mhz cuesta alrededor de $ 5
Michel
¡Eso suena exactamente lo que estoy buscando! ¿Me podría enviar los archivos del proyecto? (El switch.html, switch.php y, el switch.py) Mi correo electrónico está en una respuesta anterior. Además, ¿dónde puedo comprar el receptor on-off2 en los Países Bajos? El sitio web que proporcionó no proporciona ningún precio.
Rick Hoving
Excelente publicación: ¿puede agregar dónde encontró la fuente de los comandos que envía por serie? ¿Estás usando una biblioteca? ¿Cómo apuntas a los dispositivos? +1
Piotr Kula
1
@Nitin En mi sistema, puede configurar el interruptor DIP en el receptor (los 5 conmutadores de encendido / apagado) y 5 letras (A .. E). Entonces, con el código default_key = [1,0,0,0,1]del código pastebin.com/aRipYrZ6 usted controla los interruptores DIP y con la pinpropiedad en el def __init__(self, device, key=[1,1,1,1,1], pin=4):código controla el A .. E (a = 1 .. e = 16)
Michel
1
@Nitin No sé cómo controlarlo con C #. Estoy ansioso por eso también, porque el último PI ejecutará Win10 y, con suerte, también ejecutará C #. Dicho esto, aunque soy un programador de C #, Python es un aprendizaje fácil
Michel
6

La cosa se llama X10 , es un estándar de la industria para la mayoría de las tareas de automatización del hogar, incluido el control de luces. La señal de control se envía a través de la misma línea de alimentación a la que están conectados sus dispositivos.

Para poder controlar todo desde la computadora, es posible que desee leer sobre las interfaces de computadora X10 desde el sitio web de OpenRemote. El modelo que probablemente busca es CM15A con interfaz USB, que tiene soporte para Linux.

Además, podría ser una buena idea consultar en eBay los enchufes de pared habilitados para X10 y los módulos de lámpara atornillados, estos se pueden comprar a un precio bastante bajo, en el rango de $ 10-20.

lenik
fuente
6

Lo que está buscando es un relé de estado sólido o un relé mecánico . La idea es que se pueda usar una pequeña cantidad de corriente a un voltaje bajo (como el de su RPi) para activar el flujo de una mayor cantidad de corriente a un voltaje más alto (como una lámpara).

Recomendaría $ 12 SainSmart 8 Channel DC 5V Relay Module para Arduino Raspberry Pi , ya que ya se ha fabricado en una placa con terminales de tornillo listos para usar. Tiene FET incorporados para obtener la corriente adicional requerida para que se activen los relés mecánicos. Hay diferentes tableros de la misma compañía, en una amplia variedad de diseño / número de relés. El que envié es de 8 canales, por lo que podría no ser suficiente para sus necesidades, aunque hay 16 versiones de canales disponibles . Por lo general, son más baratos que comprar varios relés por separado, y hacen que conectarse a ellos sea fácil.

Se requieren 4 conexiones:

  • Un terreno común (que se comparte con todos los relés) que se conecta al RPi
  • Entradas separadas alimentadas por líneas RPi GPIO individuales (para activar relés)
  • Una entrada de alto voltaje
  • Una salida de alto voltaje

Las entradas / salidas de alto voltaje son las conexiones que los relés realizan o interrumpen de acuerdo con sus líneas de entrada.

Ya tengo un programa C IMPRESIONANTE para cambiar remotamente los pines GPIO sobre SSH. Si lo desea, puedo darle el código fuente o incluso explicar cómo funciona.

Alejandro
fuente
¿Cómo puedo decir que no a un programa IMPRESIONANTE? Aunque C no está en mi repertorio de lenguajes, al menos puedo ver el código con el tiempo.
Rick Hoving
¿Puedes enviarlo [email protected]? ¡Gracias por adelantado!
Rick Hoving
Si su pregunta ha sido respondida, haga clic en la marca de verificación debajo de las flechas de votación.
Alexander
@XAleXOwnZX ¿puedo ver este código impresionante también? Quizás deba abrir una pregunta "¿Alguien tiene un programa C IMPRESIONANTE para cambiar remotamente los pines GPIO sobre SSH" y luego responderla?
puk
Necesitaré su dirección de correo electrónico, la enviaré y publicaré la pregunta + respuesta mañana
Alexander
2

mi sistema es barato: EUR 43.- (receptor + transmisor) ver abajo.

para domótica, simplemente conecto un transmisor FS20 868,35MHz compatible con 3.3V al RPI:

http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html

este transmisor se conecta directamente (solo con 4 cables) a los puertos GPIO de RPI (3.3V, GND, TXD, RXD) y se controla simplemente a través de la interfaz de línea en serie.

ahora puede controlar la amplia gama de dispositivos FS20 como interruptores, interruptores de palanca, atenuadores, temporizadores, radios. receptores multicanal, etc., transmitiendo algunos bytes a través de la interfaz de consola serie UART de RPI.

Resumen del sistema FS20:

http://www.elv.de/fs20-funkschaltsystem.html

(lamentablemente, el sitio web solo está disponible en alemán)

Personalmente prefiero la CLI simple para controlar mis dispositivos domésticos. Si prefiere alguna GUI, puede echar un vistazo aquí:

http://fhem.de/fhem.html

afortunadamente en inglés :-)

Aunque es muy flexible, el sistema FS20 es muy barato. Muestra de costos para un simple interruptor de encendido / apagado:

cambiarse a sí mismo: http://www.elv.de/elv-funk-schaltsteckdose-fs20-st.html EUR 22,95

Transmisor UART: http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html EUR 19,95

Recomiendo controlar el RPI por un teclado inalámbrico. Para esto, opcionalmente puede comprar esta pequeña cosa ingeniosa:

RT-MWK03 [Inalámbrico 2.4 Ghz] ( http://www.riitek.com/en/product-detail-428.html )

chispa
fuente
0

Si bien no es exactamente barato, aquí está mi solución:

http://www.everyhue.com/?page_id=38#/discussion/707/raspberry-touchpad-some-success

Básicamente, utiliza Philips Hue (luces LED programables y controlable por wifi) junto con un RPi y un panel táctil. La superficie del panel táctil USB actúa sobre las dimensiones de color y brillo, mientras que los botones del mouse activan y desactivan las luces. El costo es RPi + dongle Wifi ($ 11) + panel táctil USB barato ($ 15) + juego Philips Hue ($ 200 para puente y 3 luces, luego $ 60 / luz).

Ilya Haykinson
fuente
0

Tengo un enfoque diferente: estoy usando el dongle USB CUL de Busware (admite FS20 + HMS + FHT + otros protocolos y dispositivos), e implementé mi propia API Java para abstraer los dispositivos y permitir una automatización fácil a través de una aplicación Java.

En caso de que alguien se interese en mi pequeño proyecto: http://www.paulo-lima.org/hans

Paulo Lima
fuente