Tabla de contenido:

Tomas de corriente (enchufes de alimentación) por control remoto de Raspberry Pi RF: 6 pasos
Tomas de corriente (enchufes de alimentación) por control remoto de Raspberry Pi RF: 6 pasos

Video: Tomas de corriente (enchufes de alimentación) por control remoto de Raspberry Pi RF: 6 pasos

Video: Tomas de corriente (enchufes de alimentación) por control remoto de Raspberry Pi RF: 6 pasos
Video: ¡Reemplaza ese interruptor de tu casa con un Relay! | #utsource 2024, Mes de julio
Anonim
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)
Enchufes de red controlados a distancia por radiofrecuencia Raspberry Pi (enchufes de alimentación)

Controle las tomas de corriente (tomas de pared) baratas de 433MHz con una Raspberry Pi. El Pi puede aprender los códigos de control que salen del control remoto de los enchufes y usarlos bajo el control del programa para activar cualquiera o todos los enchufes remotos en toda la casa.

El diseño no depende de la conectividad de Internet externa (es decir) 'Internet de las cosas' y, por lo tanto (en mi humilde opinión) es mucho más seguro que los controladores basados en la web. Dicho esto, probé la integración con Google Home, pero rápidamente perdí la voluntad de vivir cuando los comandos a veces tardaban varias decenas de segundos en ejecutarse o nunca se ejecutaban.

Una aplicación obvia durante la época navideña es controlar las luces del árbol de Navidad y (si así lo desea) las luces exteriores de la pantalla. Aunque es un uso simple, al construir este Instructable, terminará con un controlador de sockets súper flexible que puede responder a las entradas de los sensores y a otros dispositivos en su red doméstica, como Raspberry Pis con Linux Motion.

Por ejemplo, tengo un juego de luces de cocina que se encienden cuando una cámara que ejecuta "Motion" detecta movimiento en la cocina y luego las apaga después de cinco minutos sin actividad. ¡Funciona realmente bien!

Con 'Tasker' y 'AutoTools SSH' de la tienda Google Play, puede configurar todo tipo de elegantes controles remotos basados en teléfonos.

El proyecto se basa en placas receptoras y transmisoras de 433 MHz baratas que se encuentran ampliamente disponibles en eBay. Son compatibles con (al menos en el Reino Unido) tomas de corriente remotas de 433 MHz que se venden con controles remotos. Mi proyecto incluye un receptor para que se puedan incorporar nuevos conjuntos de comandos de control remoto de manera fácil y rápida. Un punto a tener en cuenta: los enchufes remotos disponibles en el Reino Unido parecen venir en dos sabores: aquellos con una identificación programada por un interruptor en el enchufe y aquellos que dependen de la programación desde el control remoto. Este proyecto es compatible con ambos pero los primeros no pierden su identidad en un corte de luz y por tanto son preferibles.

El proyecto utiliza una carcasa de enrutador antigua: tengo algunos de estos y tienen muy cómodamente la mayoría de los conectores externos necesarios, como alimentación, ethernet, USB y antena (s). Lo que use dependerá de lo que tenga disponible, por lo que este Instructable probablemente sea más útil como guía general que como un conjunto de instrucciones paso a paso.

Aunque no es estrictamente necesario para este proyecto, también agregué un ventilador de enfriamiento y una placa controladora. Sin ventilador, el Pi puede calentarse bastante (alrededor de 60 ° C). Los detalles se pueden proporcionar en un Instructable posterior.

Debo mencionar que no soy programador. El software está (en su mayoría) escrito en Python y las cosas inteligentes se copian de personas que saben lo que están haciendo. He reconocido las fuentes en las que puedo; si me he perdido alguna, hágamelo saber y corregiré el texto.

El Instructable asume cierta capacidad de soldadura y una familiaridad pasajera con Python, Bash y hablar con su Pi a través de SSH (aunque intentaré que las instrucciones sean lo más completas posible). También está escrito en inglés británico, así que si estás leyendo al otro lado del charco, ignora las letras adicionales en las palabras y los nombres extraños de las cosas (como 'tomas de corriente', que conocerás como algo como 'enchufes de pared').

¡Cualquier comentario, mejoras y usos sugeridos, etc. también son bienvenidos!

Paso 1: preparación del caso

Preparación del caso
Preparación del caso
Preparación del caso
Preparación del caso
Preparación del caso
Preparación del caso

Usé un viejo enrutador TP-Link TD-W8960N para este proyecto. Es de buen tamaño y una vez que averigüé cómo entrar, fue bastante fácil trabajar en él.

También conservé la fuente de alimentación de 12v @ 1A del enrutador, que tiene poca potencia, pero en la práctica está bien para esta aplicación.

Abrir la caja es cuestión de quitar dos tornillos en la parte inferior de la caja y luego usar una herramienta de palanca alrededor del borde de la caja para facilitar la apertura de los clips. Los dos tornillos están debajo de las patas de goma en la parte posterior de la caja (vea las flechas rojas). Los clips más difíciles de abrir son los de la parte delantera, pero tenía fe y se doblaron hacia mi herramienta de palanca.

Una vez que la carcasa esté abierta, suelte las dos tuercas de los conectores de la antena y podrá sacar la placa de circuito.

Como usará ambas antenas más adelante, desolde los cables coaxiales en la placa de circuito y déjelos a un lado.

Si se siente valiente (como yo), puede quitar el interruptor de empuje, la toma de CC y las tomas RJ45 de la placa de circuito. La mejor manera que he encontrado para hacer esto es sujetar la tabla en un tornillo de banco y aplicar calor con una pistola de calor mientras aprieta con una herramienta de apertura de caja delgada o un destornillador adecuado. La lógica es que todas las conexiones de soldadura se funden al mismo tiempo, lo que reduce el estrés térmico general en la carcasa de plástico del componente en comparación con el uso de un soldador en cada unión. Esa es la teoría al menos. En la práctica, ¡hay algo de suerte en juego! La cantidad de calor a aplicar es una cuestión de criterio, pero tenga cuidado y se equivoque por el lado de muy poco. Si todo va bien, terminará con los componentes utilizables que se muestran en la foto (¡sin embargo, notará la perilla del interruptor derretida y la regleta de enchufes RJ45 ligeramente deformada!).

De lo contrario, irá a Internet para comprar sus bits.

Paso 2: Lista de piezas

Raspberry Pi: sospecho que cualquier sabor servirá, pero usé un 3B +

Placa transmisora de 433 MHz: busque en eBay 'Transmisor RF de 433 MHz con kit receptor para Arduino Arm Mcu Wireless' o similar

Placa receptora de 433MHz - ídem. Normalmente £ 1,98 el par

Regulador Buck LM2596 - eBay, normalmente £ 1,95. Para convertir la potencia de 12v a 5v para el Pi

Tubo de luz: busque en eBay 'Cable de fibra óptica - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 mm de diámetro - Guía de luz' - Usé un tubo de 2 mm, pero habría sido más fácil trabajar con 1,5 mm (pagué £ 2,95 por 1 m)

Interruptor de palanca en miniatura de 2 polos (es bueno tenerlo pero opcional)

Conector USB tipo A soldable de 180 °: a través de eBay, pagué £ 1.90 por diez

Interruptor de empuje de doble polo (es bueno tenerlo pero opcional): obtuve el mío de la placa del módem / enrutador

Toma (s) RJ45: recuperada de la placa del módem / enrutador

Toma de corriente CC - a través de eBay (10X DC Power Supply Jack Socket Conector hembra de montaje en panel 5.5 x 2.1mm £ 0.99)

Antenas de 430 MHz: convierta las antenas de 2 GHz del módem / enrutador

Fuente de alimentación de 12v dc 12W (mínimo); idealmente, vendrá con el módem / enrutador. De lo contrario, debe asegurarse de que la toma de corriente de CC de arriba coincida con la que usa. El requisito de 12v está determinado por el transmisor de 433MHz

Las partes para el mod del ventilador de enfriamiento se detallarán en un Instructable posterior.

Paso 3: consumibles y herramientas

Necesitará los siguientes consumibles:

Soldar (según sea necesario)

Pegamento termofusible (según sea necesario)

Cable de interconexión - (p. Ej.) 22 y 24AWG (según sea necesario)

Manga termorretráctil (según sea necesario)

Gato de sacrificio. 5 cable de conexión ethernet

Cable de conexión USB 2 de sacrificio.

Instrumentos:

Pelacables

Cortadores de alambre (preferiblemente cortadores al ras)

Herramienta de premios

Destornillador adecuado para desmontar el estuche.

Soldador

Pistola de pegamento

Secador de pelo (para doblar los tubos de luz y para cualquier interrupción improvisada de peluquería)

Receptor de comunicaciones FM de 433 MHz (opcional, para solucionar problemas del transmisor) - (p. Ej.) AR1000

Paso 4: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

La forma de ensamblar la Pi y las placas auxiliares depende del estuche que esté utilizando. Las fotos muestran lo que hice.

El Pi se encuentra aproximadamente en el medio de la carcasa, lo que permite suficiente espacio para que se utilicen los diversos conectores (tenga en cuenta que el HDMI no se usa ya que el Pi se comunica a través de SSH (es decir) 'sin cabeza'.

Adjunté el Pi a la base con un par de sujetadores de plástico recuperados (ver foto). Como la caja no está diseñada para uso portátil, puede salirse con la suya usando solo dos sujetadores. Puede usar fácilmente tornillos de 2.5 mm con separadores o incluso pegamento termofusible (que he usado en el pasado, solo asegúrese de no usar demasiado y evite los componentes de montaje en superficie en la parte inferior, ya que inevitablemente tendrá para quitar el tablero en algún momento (primera ley de construcción - tendrá que desarmarlo)).

Usé pegamento caliente para fijar las distintas tablas a los lados de la caja. Se aplican las mismas consideraciones que las anteriores.

Una vez que todo esté en su lugar, puede conectar las cosas.

El diagrama de bloques muestra el esquema de cableado que utilicé. Tenga en cuenta que utilizo el interruptor de palanca opcional para alternar la potencia entre las placas del transmisor y el receptor; probablemente hay poco riesgo de hacerlo, pero no quería freír el receptor cuando transmite.

También se me ocurrió que el interruptor de empuje podría haberse usado para apagar con gracia el Pi (hay varios diseños disponibles en Internet). No me molesté, en este caso actúa como un simple interruptor de encendido / apagado. Solo tengo que tener cuidado de apagar el Pi a través de SSH antes de presionar el interruptor.

Observará los tubos de luz utilizados para canalizar la luz de los dos LED en el Pi y del LED de estado de la fuente de alimentación al frente de la carcasa. Usé calor de un secador de pelo para doblar las tuberías (¡definitivamente NO quieres usar una pistola de calor!). Es muy de prueba y error, pero al final vale la pena, ya que puede ver directamente lo que indican los LED en lugar de depender del software y los LED externos. Por supuesto, es tu elección. El corte de las tuberías se realiza con un par de cortadores de alambre afilados (los cortadores al ras son los mejores), pero también puede usar tijeras afiladas. Nuevamente, se puede usar pegamento termofusible para fijar las tuberías en su lugar, pero tenga cuidado de usar solo una pequeña cantidad, que se enfría rápidamente, ya que el pegamento puede deformar las tuberías.

Lo ideal sería modificar las antenas. Por lo general, tendrán un tamaño para operar a 2GHz y harán antenas muy ineficientes cuando se usen a 433MHz.

Para hacer esto, primero debe quitar la cubierta de la antena para exponer el cable de la antena. Creo que tuve suerte ya que la cubierta se desprendió de cada antena con solo una pequeña cantidad de premios.

Corte donde se muestra para quitar la antena de 2GHz original y exponer el co-hacha. Acceda con cuidado al núcleo interno, retire bien la trenza y suéldela a un nuevo trozo de alambre como se muestra. La longitud del nuevo cable es aproximadamente 1/4 de longitud de onda de 433 MHz (es decir) longitud = 0,25 * 3E8 / 433E6 = 17 cm. La parte inferior se puede enrollar con una pequeña broca o similar para permitir que toda la longitud quepa en la cubierta de la antena.

Antes de volver a montar, compruebe que no haya un cortocircuito entre los contactos de la antena interior y exterior.

Solo modifiqué la antena del transmisor porque un receptor 'sordo' probablemente sea ventajoso al aprender los códigos de control remoto de RF (ver más adelante).

La conexión Ethernet se realiza mediante el cableado de un cat. De sacrificio. 5 cable de interconexión al enchufe RJ45 rescatado del módem. Corte el cable para que se adapte a la distancia entre la toma de Ethernet Pi y la toma de la caja RJ45 y pele los ocho cables. Utilice un probador de continuidad para asegurarse de conectar el pin 1 del cable al pin 1 del zócalo, etc. Una forma sencilla de hacerlo es enchufar el conector en el zócalo al que está conectando y hacer un anillo entre los contactos del zócalo y los extremos desnudos del cable. Como solo se utiliza uno de los cuatro enchufes RJ45 externos, marque el enchufe con cable en consecuencia para evitar errores embarazosos en el futuro.

Del mismo modo, el conector USB se conecta con un cable de conexión USB 2 de sacrificio, el pin 1 con el pin 1, etc. El conector USB del mundo exterior se pega en caliente en su lugar en la carcasa, utilizando el orificio en la carcasa dejado por la toma de la línea telefónica.

Paso 5: Notas del transmisor

Notas del transmisor
Notas del transmisor
Notas del transmisor
Notas del transmisor
Notas del transmisor
Notas del transmisor

Las placas de transmisión y recepción de 433MHz que utilicé son omnipresentes en Internet y, como son tan baratas, pedí dos pares de cada una (para permitir errores experimentales). Descubrí que los receptores eran confiables, pero el transmisor que usé necesitaba modificaciones para que funcionara de manera confiable.

El circuito del transmisor FS1000A que compré * se muestra en el diagrama. Descubrí por ensayo y error que era necesario instalar un condensador de 3pF en la posición C1 SoT (seleccionar en la prueba) para que funcionara. Como tengo un receptor de banda ancha que cubre 430MHz, fue relativamente fácil solucionar este problema. Cómo podría realizar la prueba sin un receptor es una pregunta interesante….

* Nota: Compré un segundo lote de transmisores después de que no pude hacer funcionar los dos primeros. A todos les faltaba la bobina colectora. ¡Mmm!

Tenía un condensador de 3pF en mi caja de basura, pero supongo que este no será el caso para la mayoría de las personas y, en cualquier caso, el valor necesario podría ser más, digamos 7pF. Se puede hacer un reemplazo burdo con dos trozos de cable trenzado (el cable de par trenzado de mi conocido tiene una capacitancia de alrededor de 100pF por pie para darle una guía de longitud) pero no se recomienda ya que pueden surgir otros problemas. Ojalá tengas suerte y no tendrás ese problema. Siempre puede comprar un transmisor más caro (y por lo tanto probablemente) mejor hecho.

Tenga en cuenta también que la frecuencia del transmisor no es muy precisa o estable, pero en la práctica ha sido lo suficientemente buena como para operar de manera confiable los enchufes remotos.

Tenga en cuenta también que el orificio pasante plateado adyacente a la palabra 'ANT' en el transmisor NO es la conexión de la antena, es el que está en la esquina sin marcas (ver foto). Este fue el primer error que cometí….

Por supuesto, la conexión de clavija marcada como 'ATAD' debería leer 'DATOS'.

Paso 6: descripción general del software

Descripción general del software
Descripción general del software

Tenga en cuenta que no soy un programador. Como se dijo anteriormente, lo inteligente es el código de otras personas, pero sé lo suficiente como para pellizcarlo y adaptarlo para que funcione en conjunto. Este es también el primer Instructable que publico con código, ¡así que disculpas si lo hice mal! Si tiene alguna pregunta, téngala en cuenta …

El software básico que utilicé es el siguiente:

  • Raspbian Stretch Lite
  • PiGPIO (una biblioteca fantástica para conducir servos, etc.)
  • _433.py code (para codificar y decodificar códigos de control de RF) - vinculado desde el sitio web de PiGPIO.
  • Python3 (viene con Raspbian)

Software adicional que utilizo:

  • pyephem (calcula las horas de amanecer y anochecer, útil para cambiar la luz)
  • El excelente 'Tasker' y 'AutoTools SSH' para crear un control remoto en mi teléfono Android - ver foto (ambos disponibles en la tienda Google Play). [Cómo crear una 'escena' de Tasker está fuera del alcance de este Instructable ya que hay una curva de aprendizaje bastante empinada involucrada, pero estoy feliz de discutir lo que hice]

Mi propio código (en Python). Crudo pero funcional:

  • tx.py - software de argumento de menú y / o línea de comando que envía el código apropiado al transmisor de 433MHz.
  • amanecer-anochecer: calcula las horas de amanecer y anochecer en mi ubicación y actualiza el crontab del usuario (utilizado para las luces del árbol de Navidad, etc.)

Se puede acceder al código personal anterior a través de GitHub:

La funcionalidad del proyecto es proporcionada por el código PiGPIO y _433.py. Este último tiene una función de recepción que escucha los comandos de control remoto de su control remoto de RF de 433MHz y decodifica los pulsos de tiempo, produciendo una salida que puede ser almacenada para su uso posterior por la función de transmisión. Esto permite que el sistema aprenda cualquier control remoto de RF de 433 MHz "normal". En principio, también se puede utilizar para aprender los mandos a distancia de RF de su vecino. Aconsejaría fuertemente en contra de esto, ya que los vecinos rara vez ven el lado divertido de los timbres que suenan al azar. Yo no lo haría.

Configuración

Como el Pi en esta aplicación se ejecuta 'sin cabeza' (es decir) sin monitor o teclado, debe hablar con él a través de ssh. Hay muchas guías disponibles que cubren cómo configurar un Pi sin cabeza, pero para simplificar las cosas, asumiré que primero inicias el Pi con un monitor y un teclado. Una vez iniciado, inicie la terminal e ingrese 'sudo raspi-config'. Seleccione '5. Opciones de interfaz 'y luego' P2 SSH '. Habilite el servidor ssh y cierre raspi-config (que probablemente terminará en un reinicio).

Las comunicaciones posteriores con el Pi se pueden realizar desde una terminal remota a través de ssh. Tenga en cuenta que el código no necesita una dirección IP de LAN fija para el Pi, pero ciertamente ayuda (y ciertamente es necesario si profundiza en el control de Tasker). Nuevamente, hay muchos tutoriales en línea que cubren cómo hacer esto. El enrutador de mi casa me permite asignar una dirección IP fija a la dirección MAC del Pi, así que lo hago de esa manera, en lugar de editar la configuración del Pi.

Instalación de PiGPIO:

ssh en el Pi e ingrese los siguientes comandos:

actualización de sudo apt

sudo apt instalar pigpio python-pigpio python3-pigpio

sudo apt install git

clon de git

sudo apt install python3-RPi. GPIO

Para ejecutar PiGPIO en el arranque:

crontab -e

agregue la siguiente línea:

@reboot / usr / local / bin / pigpiod

Obtenga el código Python para transmitir y decodificar códigos remotos RF de 433MHz:

wget

descomprimir _433_py.zip

Mueva el _433.py descomprimido a un directorio adecuado (por ejemplo) ~ / software / apps

Escribiendo (en ese directorio)

_433.py

coloca el Pi en modo 433 rx, esperando códigos de control remoto de RF demodulados en el pin 38 de GPIO.

Con el receptor de 433MHz conectado, cuando se usa un control remoto de 433MHz cerca, se verá algo como los siguientes datos en la pantalla:

código = 5330005 bits = 24 (espacio = 12780 t0 = 422 t1 = 1236)

Estos datos se utilizan en su programa Python para regenerar la transmisión desde el control remoto.

Para canalizar estos datos a un archivo para su uso posterior, ejecute:

_433.py> ~ / software / apps / remotedata.txt

Una vez que tenga los datos, el siguiente paso es usarlos para editar el código 'tx.py' que puede copiar de mi repositorio de GitHub. Este código utiliza los datos para generar formas de onda entendidas por la (s) toma (s) remota (s) para ser transmitidas por el transmisor de 433MHz. Con suerte, las ediciones necesarias serán razonablemente obvias y el resto depende de usted …

Recomendado: