Tabla de contenido:

Tomacorriente habilitado para Internet: 13 pasos
Tomacorriente habilitado para Internet: 13 pasos

Video: Tomacorriente habilitado para Internet: 13 pasos

Video: Tomacorriente habilitado para Internet: 13 pasos
Video: Cómo INSTALAR INTERRUPTOR y un TOMACORRIENTE - 100% PRACTICO 2024, Mes de julio
Anonim
Image
Image
Suministros necesarios
Suministros necesarios

Instrucciones de configuración de tomacorrientes habilitados para Internet y proyectos del servidor web PowerHub

¡Hub central de persistencia de datos para iluminación y tomacorrientes habilitados para Internet en su hogar!

Paso 1: Instrucciones de configuración del proyecto de servidor web PowerHub y tomacorrientes habilitados para Internet

Hub central de persistencia de datos para iluminación y tomacorrientes habilitados para Internet en su hogar

Intermitente en el disco duro de RaspberriPi / Instalar el software requerido (con Ubuntu Linux) Descargar "RASPBIAN JESSIE LITE"

Cree su nuevo disco duro para DashboardPI

Inserte la microSD en su computadora a través del adaptador USB y cree la imagen del disco usando el comando dd

Localice su tarjeta microSD insertada a través del comando df -h, desmóntela y cree la imagen del disco con el comando disk copy dd

$ df -h / dev / sdb1 7.4G 32K 7.4G 1% / media / XXX / 1234-5678

$ umount / dev / sdb1

Precaución: asegúrese de que el comando sea completamente preciso, puede dañar otros discos con este comando

if = ubicación del archivo de imagen RASPBIAN JESSIE LITE de = ubicación de su tarjeta microSD

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (nota: en este caso, es / dev / sdb, / dev / sdb1 era una partición de fábrica existente en el microSD)

Configuración de su RaspberriPi

Inserte su nueva tarjeta microSD en el raspberrypi y enciéndalo con un monitor conectado al puerto HDMI

Acceso

usuario: pi pass: frambuesa

Cambie la contraseña de su cuenta por seguridad

sudo passwd pi

Paso 2: Habilite las opciones avanzadas de RaspberriPi

sudo raspi-config

Elija: 1 Expandir sistema de archivos

9 Opciones avanzadas

A2 Nombre de host cámbielo a "WIFI-OUTLET"

A4 SSH Habilitar servidor SSH

A7 I2C Habilitar interfaz i2c

Habilitar el teclado inglés / estadounidense

sudo nano / etc / default / keyboard

Cambie la siguiente línea: XKBLAYOUT = "us"

Reinicie PI para que los cambios en la distribución del teclado o el cambio de tamaño del sistema de archivos surtan efecto

$ sudo shutdown -r ahora

Conéctese automáticamente a su WiFi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Agregue las siguientes líneas para que su raspberrypi se conecte automáticamente al WiFi de su hogar (si su red inalámbrica se llama "linksys", por ejemplo, en el siguiente ejemplo)

network = {ssid = "linksys" psk = "CONTRASEÑA INALÁMBRICA AQUÍ"} Reinicie PI para conectarse a la red WiFi

$ sudo shutdown -r ahora

Ahora que su PI finalmente está en la red local, puede iniciar sesión de forma remota a través de SSH. Pero primero debe obtener la dirección IP que tiene actualmente.

$ ifconfig Busque "inet addr: 192.168. XXX. XXX" en la siguiente salida del comando para la dirección IP de su PI

Vaya a otra máquina e inicie sesión en su raspberrypi a través de ssh

$ ssh [email protected]. XXX. XXX

Paso 3: Comience a instalar los paquetes necesarios

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install vim git solicitudes de python python-gpiozero python-smbus herramientas i2c imagen de python python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev python3-spidev python-spidev

Actualizar la configuración de la zona horaria local

$ sudo dpkg-reconfigure tzdata

seleccione su zona horaria usando la interfaz

Configure el comando l del directorio simple [opcional]

vi ~ /.bashrc

agregue la siguiente línea:

alias l = 'ls -lh'

fuente ~ /.bashrc

Corregir el resaltado de sintaxis predeterminado de VIM [opcional]

sudo vi / etc / vim / vimrc

descomente la siguiente línea:

sintaxis activada

Instale los controladores i2c Python

Paso 4: CONSTRUYA LA API WEB

Las siguientes instrucciones le permitirán construir el concentrador central que explica a los diversos enchufes e interruptores de pared habilitados para wifi que puede construir, qué dispositivos se encienden y apagan. Este es un pequeño script PHP para colocar en un servidor web de su elección. Tiene la siguiente API para obtener y configurar información. Nota: no olvide incluir el archivo.htaccess para que se lleve a cabo el enrutamiento correcto de la URL.

Instale la carpeta "index.php", "valores /" y settings.php (configurado con sus propios valores) en un servidor web habilitado para PHP de su elección. El valor de la clave secreta en el archivo "settings.php" debe coincidir con el valor de la clave secreta que establecería en el archivo "settings.py". En un nivel básico, esto evitará que cualquier otro tráfico web configure / escriba valores, encienda sus dispositivos, ahora necesita esta clave API con hash en el encabezado de la solicitud HTTP para hacerlo.

La API admite las siguientes características, para este proyecto usaremos solo los valores de "bandera" que son valores booleanos que le dicen al interruptor que se encienda y se apague. Quizás si quisiera aprovechar los valores de "lectura", podría tenerlos, de modo que si la temperatura de una habitación se calienta demasiado al guardar una temperatura allí, podría encender un ventilador de ventana, etc.

Obtenga el código

Clone el siguiente proyecto de GitHub para obtener el código para ejecutar el servidor web y la salida RaspberryPI.

github.com/khinds10/PowerHub

Puntos finales de API cuando se ejecuta en un servidor web

myhost / message (obtiene el conjunto de mensajes actual)

myhost / message / set (HTTP POST un valor de cadena sin formato a esta URL para establecer un nuevo mensaje)

myhost / flag / {id} (obtenga el estado booleano actual de la bandera por entero: {id})

myhost / flag / all (obtenga todo el estado booleano actual de todas las banderas como una matriz)

myhost / flag / {id} / set (establece el estado booleano actual en 'verdadero' para la bandera por entero: {id})

myhost / flag / {id} / unset (establezca el estado booleano actual en 'falso' para la bandera por entero: {id})

myhost / reading / {id} (obtenga el valor promedio actual para la lectura por entero: {id})

myhost / reading / all (obtenga el valor promedio actual para todas las lecturas como una matriz)

myhost / reading / {id} / set (HTTP POST un valor numérico sin procesar a esta URL para agregar un nuevo valor al promedio calculado actual) - vea a continuación cuántos valores en total se compilan al valor promedio Configuración Los valores de 'lecturas' se calculan como promedios de un cierto número de valores numéricos de lectura persistente reciente. Establezca la siguiente constante a cuántas de las lecturas más recientes deben incluirse para producir el promedio.

$ readingsAverageLimit = 5;

El servidor de almacén de datos conservará los valores en archivos simples ubicados según las convenciones de nomenclatura a continuación. Nota: {id} será reemplazado por el entero real presentado por la URL de la solicitud entrante.

$ valueFileFolder = 'values' (nombre de la carpeta que contiene los archivos de medición) $ messageFileName = 'message.msg' (nombre del archivo de texto del mensaje) $ readingsFilesNames = 'reading {id}.avg' (nombre del CSV promediado archivo de lecturas) $ flagFilesNames = 'flag {id}.flg' (nombre del archivo de marca de valor de bandera booleana)

Asegúrese de que todos los archivos de valores sean modificables por los valores systemchmod 777 / *

Paso 5: Suministros necesarios

Suministros necesarios
Suministros necesarios
Suministros necesarios
Suministros necesarios
Suministros necesarios
Suministros necesarios

Sierra de perforación de 1 pulgada (para un taladro)

Módulo de relé de 5 V y 2 canales

Placa de pared para receptáculo dúplex

Receptáculo dúplex

Pi Zero W

Caja posterior de montaje en superficie de doble banda

Botones pulsadores iluminados en blanco

Paso 6: Construyendo el Outlet

Construyendo el Outlet
Construyendo el Outlet

Pestañas de salida de ruptura

Rompa la lengüeta en el costado del tomacorriente para que cada toma se encienda / apague de forma independiente

Paso 7: instalar botones

Instalar botones
Instalar botones
Instalar botones
Instalar botones

En la placa frontal de la salida, con la sierra de perforación de 1 , corte 2 orificios para que los botones se coloquen junto a las salidas.

Prueba de dimensionamiento de componentes

Asegúrese de que todos los componentes quepan en la caja de montaje en superficie de salida

Paso 8: relé de cable

Relé de cable
Relé de cable
Relé de cable
Relé de cable

Conecte el relé a la toma de corriente, desde el cable de extensión que va a la pared, conecte la tierra (verde) y el neutro (blanco) directamente a la toma de corriente Para los calientes (negros) conéctelos al relé y luego desde el relé a cada toma de corriente conectores calientes individualmente

Paso 9: Imágenes adicionales de cableado y ensamblaje

Imágenes adicionales de cableado y ensamblaje
Imágenes adicionales de cableado y ensamblaje

Paso 10: diagrama de cableado

Diagrama de cableado
Diagrama de cableado

Utilice el diagrama para conectar correctamente los componentes para que funcionen con el código Python de RaspberryPI.

Paso 11: Prueba de funcionamiento en seco

Prueba de funcionamiento en seco
Prueba de funcionamiento en seco
Prueba de funcionamiento en seco
Prueba de funcionamiento en seco
Prueba de funcionamiento en seco
Prueba de funcionamiento en seco

Después del ensamblaje final, antes de atornillar la unidad de orificio, realice un funcionamiento en seco del dispositivo para asegurarse de que no haya cortocircuitos ni cableado defectuoso.

Paso 12: configurar los scripts de inicio

crontab -e

agregue las siguientes líneas

@reboot python /home/pi/PowerHub/device/outlet/buttons.py @reboot python /home/pi/PowerHub/device/outlet/relay.py

Recomendado: