Tabla de contenido:

Cómo controlar los enchufes con una Raspberry Pi: 6 pasos
Cómo controlar los enchufes con una Raspberry Pi: 6 pasos

Video: Cómo controlar los enchufes con una Raspberry Pi: 6 pasos

Video: Cómo controlar los enchufes con una Raspberry Pi: 6 pasos
Video: Configurar la Raspberry Pi 2024, Mes de julio
Anonim
Cómo controlar los puntos de venta con una Raspberry Pi
Cómo controlar los puntos de venta con una Raspberry Pi
Cómo controlar los puntos de venta con una Raspberry Pi
Cómo controlar los puntos de venta con una Raspberry Pi
Cómo controlar los puntos de venta con una Raspberry Pi
Cómo controlar los puntos de venta con una Raspberry Pi

En este Instructable, le demostraré cómo crear una interfaz web para controlar los puntos de venta en su hogar usando una Raspberry Pi. Elegí escribir este proyecto cuando vi el concurso de Sensores, y dado que este proyecto implica el uso de un sensor para leer los códigos del control remoto provisto con los puntos de venta que compras, pensé que este proyecto sería el ajuste perfecto.

Trabajaré para mantener este nivel lo más alto posible y proporcionaré código para que todo funcione. Para todos ustedes, los monos del código, ¡no duden en investigar el código y escudriñarme en los comentarios! Siempre busco mejorar. Están sucediendo bastante en esto, así que si tiene preguntas sobre cualquier paso, deje un comentario para que pueda actualizar el Instructable con los detalles necesarios.

Este proyecto utiliza salidas controladas por radiofrecuencia a 433MHz junto con un transmisor de RF conectado a su raspberry pi. Los enchufes vienen con controles remotos que pueden encender / apagar los enchufes, ¡pero eso no es divertido! En su lugar, usaremos un servidor web que se ejecuta en el raspberry pi que permite que cualquier persona conectada a la red encienda o apague ciertos enchufes. Una interfaz web para este proyecto es ideal, ya que cualquier dispositivo conectado a la web en su red puede usarse como control remoto.

Este es un proyecto con el que he soñado completar durante años, y aunque todavía hay espacio para adiciones, el proyecto que se describe a continuación es un sistema funcional.

Suministros

  • Una Raspberry Pi (usé un RPi 3 Modelo B +)
  • Un transmisor y receptor de 433MHz (yo usé este)
  • Tomacorrientes de 433MHz (yo usé esto)
  • Jerséis de mujer a mujer (compré este grupo)
  • Una computadora o dispositivo de mano capaz de acceder a Internet

Paso 1: configura tu Raspberry Pi

Configura tu Raspberry Pi
Configura tu Raspberry Pi

Comience instalando la última versión de Raspbian en su nueva Raspberry Pi. Si planea usar un Pi existente (lo cual puede hacer totalmente), todo lo que necesita es asegurarse de tener Python 3 en su Pi, ya que eso es en lo que está escrito todo el código fuente que proporciono. Para hacer esto, escribe

python3

en la línea de comando. Si tiene Python 3, debería ver la terminal de Python abierta. Salga de la terminal cerrando o escribiendo

Salida()

Una vez que haya confirmado esto, debe instalar el matraz en su Pi. Flask nos permite crear nuestro servidor web. Desde la línea de comando de Pi, escriba

sudo pip3 instalar matraz

En caso de que no tenga pip instalado en su Pi, deberá escribir

sudo apt-get install python3-pip

Prefiero desarrollar en mi Raspberry Pi desde la comodidad de mi computadora de escritorio. Si también prefiere esta opción, debe instalar algún tipo de entorno para SSH en la Pi. PuTTY funcionará, pero prefiero tener una GUI (interfaz gráfica de usuario), lo que hace que parezca que estás directamente en la Pi. Para la opción GUI, querrá instalar VNC Viewer en la computadora en la que planea trabajar. También hay configuraciones que deberá ajustar en su Pi. Las instrucciones para modificar la configuración se pueden encontrar aquí.

Paso 2: Conexión de su hardware

Conexión de su hardware
Conexión de su hardware

En este punto, es el momento de hacer todas las conexiones físicas que necesitará hacer en preparación para configurar el código fuente para este proyecto. Conectará los pines del transmisor y el receptor a los pines GPIO de su Pi. Querrá hacer referencia religiosamente al diagrama de distribución de los pines GPIO. Para hacerlo, abra el terminal de su Pi y escriba

pinout

Las siguientes son las conexiones que hice. Es posible que tenga una configuración diferente si compró un hardware de transmisor / receptor diferente al que indiqué en la introducción. Si decides elegir números de pin diferentes a los que indico a continuación, ¡no temas! Cuando descargue el código fuente, simplemente modifique los números de pin según sea necesario en el archivo RxTx.py.

Receptor (chip grande):

  • GND: cualquier pin de tierra designado
  • DATOS - Pin 11
  • DER - No conectado
  • + 5V - Cualquier pin designado de + 5V
  • ------
  • + 5V - Cualquier pin designado de + 5V
  • GND: cualquier pin de tierra designado
  • GND - No conectado
  • ANT - No conectado

Nota: Puede conectar una antena según sea necesario, pero descubrí que no era necesario. Este pequeño chip era sorprendentemente sensible y detecta fielmente las señales al menos a 50 pies de donde estaba ya través de al menos dos paredes.

Transmisor:

  • P - El pin de 3.3V
  • DA - Pin 7
  • G - Cualquier pin de tierra designado
  • AN - no conectado

Nota: Nuevamente, puede conectar una antena al transmisor según sea necesario, pero descubrí que no era necesario. El alcance es más que suficiente (50 + pies).

Paso 3: ¡Agregar el código

Esta es la parte en la que pasé la mayor parte de mi tiempo cuando estaba desarrollando este proyecto. Intento comentar tanto como sea posible, pero es probable que deje lagunas que pueden requerir una explicación si alguno de ustedes pasa tiempo tratando de entenderlo. Si esto te sucede, ¡deja un comentario!

Los idiomas involucrados aquí son:

  • Pitón
  • CSS
  • Javascript
  • HTML
  • JQuery / Ajax

Python se usa en el servidor de matraces y en el

RxTx.py

archivo, que maneja la transmisión y recepción del código. CSS se utiliza para generar el estilo de la página web. ¿Quién quiere un sitio web aburrido? Javascript se usa en cualquier manejo de eventos (presionar un botón, etc.). HTML es el componente básico de la página web. Finalmente, JQuery / Ajax se usa para comunicarse entre la página web y el backend de Python.

Si todos estos idiomas suenan intimidantes, ¡no se preocupe! Solo conocía a Python en este proyecto, que resultó ser el lenguaje que involucró la menor cantidad de codificación, imagínate… Basta decir, tómate tu tiempo para revisar el código si eso es lo que eliges hacer. Si no quieres, ¡no tienes que hacerlo!

La siguiente es la estructura de directorio que elegí emplear con esta página web. La carpeta comprimida adjunta a este paso contiene todo el código fuente en la siguiente estructura.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> webpage-- static ----- favicon.ico ----- style.css-- templates ----- index.html ----- schedule.html-- app.py-- data.file

Puede colocar la carpeta Outlet Switch en cualquier lugar de su Pi. Cuando esté listo para ejecutar su servidor web, abra la terminal en su Pi y

CD

(cambiar de directorio) al directorio de la página web. Luego escribe

python3 app.py

en la terminal. Si no hubo ningún error, ¡debería estar listo!

PD Tenga paciencia si se encuentra con algún error. Intenté aplastarlos a todos antes de subirlos.

Paso 4: ¡Pruébalo

¡Dale un tiro!
¡Dale un tiro!

Ahora que está ejecutando el código, puede familiarizarse con la interfaz web al alcance de su mano. El control del sistema es muy sencillo:

  • Puede agregar tantos puntos de venta como desee utilizando la interfaz web.
  • La eliminación es tan simple como hacer clic en editar, seleccionar las salidas que desea eliminar y hacer clic en eliminar.

El video de YouTube anterior demuestra cómo agregar un nuevo punto de venta a su lista. Para resumir lo que muestra:

  • Primero ingrese el título de la tienda en el campo Título
  • Haga clic o toque fuera del campo Título para permitir que el programa verifique que el título aún no existe. No puedes tener títulos con el mismo nombre
  • Una vez validado, los botones de Código de ENCENDIDO y Código de APAGADO están habilitados.
  • Mantenga presionado el botón ON en su control remoto provisto y haga clic rápidamente en el botón ON Code en la interfaz. Mantenga presionado el botón en el control remoto hasta que su código binario llene el campo adyacente.
  • Repita el paso anterior para el código de apagado.
  • Haga clic en Aceptar y ahora estará listo para cambiar esta salida.

Como se mencionó en la introducción, el proyecto no está completo al 100% para mis propios usos. El componente más importante que aún tengo que completar e implementar es la capacidad de programación. Planeo permitir que el usuario cree un horario que permita que los enchufes se enciendan y apaguen en los momentos designados automáticamente.

Paso 5: depuración y el archivo RxTx.py

Depuración y archivo RxTx.py
Depuración y archivo RxTx.py
Depuración y archivo RxTx.py
Depuración y archivo RxTx.py
Depuración y archivo RxTx.py
Depuración y archivo RxTx.py
Depuración y archivo RxTx.py
Depuración y archivo RxTx.py

La única limitación conocida del sistema es que existe la posibilidad de incompatibilidad entre los puntos de venta de diferentes proveedores. Los mensajes de código de encendido y apagado son de 25 bits para mi sistema, y si un sistema tiene una longitud de mensaje diferente, no es inmediatamente compatible con este proyecto. Si siguió exactamente las instrucciones y aún tiene problemas para que esto funcione, la siguiente sería la mejor manera de depurar el problema.

  • Asegúrese de tener matplotlib instalado en su Pi. Puede hacer esto escribiendo lo siguiente en la terminal de Pi:

    • python3

    • importar matplotlib

    • Si recibe un error, debe instalar matplotlib.
    • Salga del shell de Python usando

      Salida()

  • Para instalar matplotlib, escriba

    sudo pip3 instalar matplotlib

  • en la terminal
  • Descargue el archivo test.py adjunto y colóquelo junto al archivo RxTx.py en su Pi
  • Abra la terminal de Python y cambie el directorio a la carpeta de comunicaciones.
  • Escribe

    python3 test.py

  • Cuando diga "** Comenzó a grabar **", mantén presionado el botón de ENCENDIDO o APAGADO del control remoto hasta que finalice la grabación.
  • El programa cargará una figura de matplotlib similar a la anterior. Acérquese hasta que vea la señal repetitiva como se muestra en las fotos de arriba.
  • Cuente el 1 lógico total y el 0 lógico para cada mensaje, donde un mensaje es una iteración de la señal repetitiva vista arriba. Si el total es 25, es probable que el archivo RxTx.py no tenga la culpa. Si encuentra algo diferente a 25, asegúrese de comentar a continuación, y modificaré el archivo RxTx.py para que sea más abierto (o siéntase libre de probarlo).

¿Qué pasa si no veo una señal repetitiva?

Si no ve una señal repetitiva, una de dos cosas está mal. Primero, verifique que todas las conexiones de sus cables de puente estén hechas correctamente. Si todo se ve bien, es posible que tenga un mal receptor. ¿Compraste el que te sugerí? Cuando compré mi primer chip receptor, era muy ruidoso. Tan ruidoso que no pude obtener una señal clara. Luego devolví ese chip y tomé el que vinculé, y no podría haber funcionado mejor.

Paso 6: ¡Disfruta

¡Usted sabe que tiene la capacidad de encender / apagar los enchufes desde su teléfono, tableta, computadora u otro dispositivo habilitado para la web! ¡Déjame saber lo que piensas en los comentarios!

Recomendado: