"Apartamento" inteligente

Hola a todos! Finalmente, la revisión en el apartamento ha llegado a su fin, y en este sentido quiero compartir con ustedes el proyecto Smart Apartment implementado con las capacidades básicas de controlar la iluminación, calentar el suelo radiante, controlar la temperatura y la humedad de la habitación, y otras cosas. La parte descriptiva se realizará en forma de manual (es más fácil decirlo o algo así).

imagen

Equipo


En vista del hecho de que, en principio, quería ensamblar toda la automatización en las decisiones presupuestarias de dispositivos ejecutivos y de control ya hechas, se tomó una decisión unánime (en una persona), para usar esta lista de equipos:

Servidor de gestión - Raspberry Pi 3 + OpenHAB 2 - 1pc (3000 rub.)
Controlador multifunción - MegaD-2561 - 1pc (3480 rub.)
Unidad ejecutiva con 14 salidas de relé - MegaD-14-R - 1pc (4480 rublos)
Sensores de temperatura y humedad DHT22 (AM2303) - 4 piezas (1960 rub.)
Sensores de temperatura 1-Wire DS18B20 a prueba de agua - 2 piezas (180 rub.)
Fuente de alimentación 12V DR-60-12 - 1pc (1420 rub.)
Carcasas para sensores Dsen-Box - 4 piezas (1000 rub.)
Ya existe una tableta para administrar y mostrar parámetros (3000-10000r.)
La mayor parte de la lista se puede comprar en ALI.

Introductorio


Uno de los principios básicos de operación de los sistemas de automatización es la operación ininterrumpida y la redundancia de funciones. Es decir, incluso si toda la automatización de baja corriente se quema al infierno, no deberíamos perder la función de controlar la iluminación y otros dispositivos ejecutivos importantes. Por lo tanto, la solución de control de iluminación se implementará en el llamado "sistema de recorrido", es decir los interruptores (interruptores) en las habitaciones serán recorridos, y el papel de los segundos interruptores (interruptores) será desempeñado por los relés en la unidad ejecutiva MegaD-14-R. Siempre que, por supuesto, los carretes no se quemen, no perderemos funcionalidad si las unidades de automatización fallan. Por lo tanto, a través de todos los conmutadores Legrand Etika de 2 pasos y 2 teclas se instalan en todas las habitaciones (se ven bien en comparación con Valenoy).

Conexión


Los sensores de temperatura y humedad DHT22 se instalan en los gabinetes Dsen-Box a un nivel de aproximadamente 2 metros del piso en cada habitación. No olvide que el apartamento está revisado y que todos los cables se colocan cuidadosamente desde el protector hasta las ubicaciones de los sensores y dispositivos.
El cable fue tendido casi en todas partes por SFTP 4x2x0.5 blindado. Los sensores de temperatura DS18B20 se instalan en el momento de la instalación de la calefacción por suelo radiante.

imagen

imagen

imagen

Instalamos dispositivos MegaD en el tablero, los emparejamos con un cable nativo de 34 pines y nos conectamos a la red Ethernet. Vamos a la interfaz web en 192.168.0.14/sec. En la sección "config", configure la dirección deseada o déjela de forma predeterminada, asegúrese de especificar la dirección del servidor Openhab (lo descubriremos más adelante cuando implementemos la imagen de Openhab en la frambuesa o la escribamos de inmediato, y la cambiaremos en la frambuesa). Conectamos todos los sensores y cables de los interruptores de acuerdo con la misma línea.
imagen

imagen

En la configuración del puerto del dispositivo MegaD, configure los tipos (OUT - si es un relé, IN o Dsen - si la entrada del sensor). Si indica el tipo correcto en los puertos de los sensores conectados, veremos inmediatamente las lecturas actuales.
imagen

Servidor


Recopilamos el servidor. El caso de las frambuesas está hecho de una fuente de alimentación fallida para un montaje conveniente en un riel DIN (por supuesto, hay un caso especial para esto, pero no se trata de nosotros))). No olvides pegar naturalmente una unidad flash USB y un cable Ethernet. Para no ser atormentado con la instalación, decidí descargar la imagen de OpenHabian terminada: todo el proceso de instalación y configuración del servidor se describe en detalle allí y se reduce a implementar la imagen en una unidad flash, iniciar la frambuesa y esperar 15-45 minutos. (sí largo) en la primera configuración. ¡OpenHab está listo para funcionar!

Si no queremos cambiar nada en la configuración del servidor (cómo abrir la sección de configuración se describe en detalle en openhab.org), nos conectamos a Openhab openhabianpi : 8080, seleccionamos la interfaz gráfica de la interfaz de usuario de Paper y comenzamos a esculpir todo lo que necesita.

imagen

Personalización


Fijaciones


Primero necesita conectar el servidor OH (openhab) y MegaD. La integración del equipo en el servidor, utilizando protocolos y reglas definidas por el equipo, se realiza utilizando archivos ya preparados, los llamados "enlaces". Descargue la última encuadernación para equipos MegaD . Lo dejamos caer (puede usar WinSCP) en la carpeta / srv / openhab2-addons en el servidor, por lo que veremos este enlace en la interfaz de usuario de papel de "Enlaces".

Además, en "Bandeja de entrada" creamos el adaptador de servidor Bridge MegaD Incoming, es algo así como un puente virtual de comunicación entre el servidor y el equipo. Anotamos el puerto deseado (la dirección del servidor y el puerto deben estar registrados en la "Configuración" del propio dispositivo MegaD).

imagen

Cosas


Después de crear el puente, nosotros, también en la sección "Bandeja de entrada", creamos las "Cosas vinculantes de MegaD". Una "Cosa" separada: así es como se define un dispositivo físico específico en el servidor, ya sea un sensor o un relé, con el que interactuaremos con la ayuda del puente creado. En ellos, especificamos específicamente la dirección IP del dispositivo MegaD, la contraseña de acceso y el puerto del dispositivo (este es el puerto de entrada donde está conectado el sensor o el puerto de salida para el control del dispositivo).
Para una distribución conveniente por ubicación, en el campo "Ubicación" indique dónde está: un salón, una cocina ... Después de crear estas "Cosas", aparecerán en "Configuración / Cosas". Entramos en la "Cosa" creada y al hacer clic en el tipo deseado (tuvimos que especificarlo en la configuración del puerto del dispositivo MegaD) lo adjuntamos al "Elemento" creando un nuevo "Crear nuevo elemento".

imagen

Artículos


"Elemento" tomado por separado: en el servidor y en la interfaz gráfica, este es el mismo elemento que actúa como un botón de control o datos de salida del sensor y otras características.

El campo "Nombre" debe ser un alfabeto latino continuo, pero "Etiqueta" se llama lo que queremos. En la configuración de "Elemento", debe especificar el tipo (si es un relé, luego - INTERRUPTOR, si el sensor, luego - NÚMERO, etc.

Si queremos combinar ciertos ítems en grupos (esto es principalmente necesario para una distribución y visualización conveniente en una aplicación móvil o usando la interfaz de interfaz de usuario básica), en el campo "Grupo" indique el grupo deseado, que primero debe crearse en la sección "Ítems" especificando el tipo de "Grupo". Después de estas manipulaciones, veremos el "Elemento" muy creado en la sección "Control" de la interfaz de usuario de Paper y si todo se hace correctamente, cuando haga clic en el "Elemento" creado del tipo "Interruptor", el dispositivo conectado (relé MegaD) hará clic.

Realizamos acciones similares para todos los interruptores y sensores, nombrándolos correctamente y configurándolos.

imagen

UI


Ahora todo esto, por supuesto, funciona bien, pero no de manera hermosa e incómoda.

Tomamos la tableta, pasamos por el navegador openhabianpi : 8080, seleccionamos la interfaz gráfica de usuario de Habpanel y comenzamos a personalizar para satisfacer sus necesidades.

Haga clic en el engranaje de configuración en la esquina superior derecha, haga clic en "Configuración avanzada" y realice la configuración necesaria (tema, nombre ...) en el lado izquierdo de la configuración, más tarde, después de crear la interfaz terminada, debe guardarla "Guardar la configuración actual en una nueva configuración de panel" .

Regresamos de la configuración, use el control deslizante para seleccionar el número requerido de columnas de mosaicos en la interfaz y haga clic en "Agregar un nuevo tablero". En la configuración de mosaico, especifique el esquema de color y los iconos de visualización. Con estos mosaicos determinaremos la ubicación o el grupo de nuestros dispositivos (por ejemplo, en mi caso, son habitaciones).

A continuación, después de crear la ubicación, vaya a ella haciendo clic en el mosaico y en la parte superior, junto al nombre del mosaico, haga clic en el lápiz, organizaremos los mosaicos creados en el sistema de "Elementos". En la esquina superior derecha, haga clic en "Agregar un nuevo widget". Elija el tipo de mosaico que desee (cuando pase el cursor sobre el cursor, aparecerán avisos) "Cambiar" si es un interruptor, "Dummy" si es un sensor ... etc. En la configuración del mosaico creado, lo vinculamos al sistema de "Elementos" existente y ajustamos la pantalla: icono, color, tamaño ... Después de crear todos los mosaicos de "elementos" necesarios, haga clic en "Ejecutar" en la esquina izquierda, guardando la configuración e iniciando el modo de visualización. Así es como creamos la interfaz Habpanel para nosotros mismos. Después de la configuración, si se realizó en Chrome, es muy conveniente agregar la página Habpanel al escritorio de la tableta desde la configuración del navegador.

imagen

imagen

Reglas


Reglas (reglas): esas mismas reglas (scripts) para implementar la lógica de funcionamiento de un solo dispositivo o interacciones entre varios.

Realizamos control automático de la campana en el baño.

Para hacer esto, debemos crear un "Artículo" virtual del tipo "Número" en el sistema en el que registraremos los valores del nivel de humedad que necesitamos. Otro "Elemento" del tipo "Interruptor" para activar el control automático de humedad. Bueno, en realidad la regla misma, que procesará el valor de humedad obtenido del sensor en el baño, verifica con el valor establecido de nuestra configuración y controla la campana.

Para crear una regla, necesitamos crear un archivo con la extensión .rules con contenido de JavaScript en la carpeta en el servidor / etc / openhab2 / rules. Aquí hay un ejemplo del contenido:

Auto_air.rules
regla "Auto_air"
cuando
El artículo Hum_H_T_sens recibió la actualización
entonces
si
(Hum_H_T_sens.state> Set_hum.state && Air_H_T_switch.state == OFF && Set_auto_air.state == ON) {
Air_H_T_switch.sendCommand (ON)
}
otra cosa
si
(Hum_H_T_sens.state <Set_hum.state && Air_H_T_switch.state == ON && Set_auto_air.state == ON) {
Air_H_T_switch.sendCommand (OFF)
}
fin

Bueno, en realidad necesitas mostrar los "Item-s" creados en la pantalla del tablero en Habpanel. Para la configuración "Elemento" del nivel de humedad, aplique el tipo "Control deslizante".

Gráficos


Otra buena característica del sistema es la recopilación estadística de datos en bases de datos y su visualización en gráficos.

¡Crea gráficos! Primero necesitas configurar la base de datos.

Por defecto, OpenHab ofrece trabajo con la base de datos Rrd4j, pero no pude configurarlo normalmente. Por lo tanto, comencé a usar MySQL (de alguna manera más familiar).

Para trabajar con la base de datos, debe instalar el complemento en el sistema. En la pestaña "Complementos" de la interfaz de usuario de Paper, en la sección "Persistencia", seleccione MySQL Persistence (instalar).

La base que creamos ahora está configurando.

Para hacer esto, debemos crear un archivo (si falta) en la carpeta en el servidor: /etc/openhab2/persistence/mysql.persist, en el que debemos especificar la estrategia de recopilación de datos (como cada hora, diario, semanal ...) y especificar qué "Elemento "Con referencia a qué estrategia se almacenará. Por ejemplo, aquí está el contenido:

mysql.persist
// las estrategias de persistencia tienen un nombre y una definición y se mencionan en la sección "Elementos"
Estrategias {
// si no se especifica una estrategia para el elemento a continuación, se utilizará la lista predeterminada
everyMinute: "0 * * * *?"
cada 5 minutos: "0 * / 5 * * *?"
everyHour: "0 0 * * *?"
everyDay: "0 0 0 * *?"
default = everyChange
}

/ *
* Cada línea en esta sección se determina para qué bienes (s), en qué estrategias (IE) deben aplicarse.
* Puede enumerar elementos individuales, use "*" para todos los elementos o "groupitem *" para todos los miembros de un grupo
* ítem (excluido el ítem grupal en sí).
* /

Artículos {
// guardar todos los elementos una vez al día y restaurarlos desde la base de datos al inicio con cada cambio
// *: estrategia = everyChange, everyDay, restoreOnStartup

// además, todos los valores de temperatura y clima se guardan cada hora
Weather_Temperature, Temp_H_LR_sens, Temp_H_BR_sens, Temp_H_T_sens, Temp_H_KT_sens, TP_H_H_sens, TP_H_KT_sens, Weather_Humidity, Hum_H_LR_sens, Hum_H_BR_sens, Hum_H_T_sens, Hum_H_KT_sens: estrategia = everyminute, RestoreOnStartup
}

Después de crear el archivo, el sistema ya comenzará a recopilar datos. Necesitamos configurar el panel de Habpanel para mostrar gráficos.

Regresamos a la GUI de Habpanel, vamos a la ubicación deseada y agregamos un nuevo widget seleccionando el tipo de "Gráficos". Llame como queramos, "Tipo", seleccione "n3-line-chart (interactivo)", "Proveedor de servicios" - mysql, "Período" - muestra el período del día (D). En la pestaña "Serie", adjuntamos el "Artículo" que necesitamos. Y voila! tenemos un hermoso horario!

imagen

Bueno, entonces pura iniciativa: ¡montamos la tableta en la pared! O_o, para esto tomé dos tarjetas magnéticas del formato em-marin (las que son muy delgadas) y pegué dos imanes de neodimio en los bordes de la tarjeta (Uhu). Adjuntamos dichas plataformas con imanes a la cinta de doble cara (buena delgada) en la parte posterior de la tableta y en la pared. Por cierto, de antemano en el zócalo, se instala la fuente de alimentación MeanWell 5V, con un cable microUSB. La tableta en la pared!

imagen

Pido disculpas por la peculiaridad de la presentación del material (nunca antes había escrito algo así). Si la publicación será al menos igual de popular, a continuación, describiré la característica de configurar una aplicación móvil. Espero que te sea útil. Todo hogar inteligente)))

Source: https://habr.com/ru/post/es409179/


All Articles