Hogar inteligente basado en controladores Arduino: diseño y organización del espacio controlado
El desarrollo de la automatización ha llevado a la creación de sistemas integrados que mejoran la calidad de la vida humana. Muchos fabricantes conocidos de electrónica y entornos de software ofrecen soluciones estándar listas para varios objetos.
Incluso un usuario inexperto podrá desarrollar proyectos independientes y armar una "casa inteligente" en Arduino para satisfacer sus necesidades. Lo principal es comprender los conceptos básicos y no tener miedo de experimentar.
En este artículo, consideraremos el principio de creación y las funciones básicas de una casa automatizada basada en dispositivos Arduino. Considere también los tipos de placas utilizadas y los módulos principales del sistema.
El contenido del artículo:
Creación de sistemas en la plataforma Arduino.
Arduino es una plataforma para desarrollar dispositivos electrónicos con control automático, semiautomático o manual. Está hecho según el principio de un constructor con reglas claramente definidas para la interacción entre elementos. El sistema es abierto, lo que permite a terceros fabricantes participar en su desarrollo.
Clásico "casa inteligente”Consiste en unidades automatizadas que realizan las siguientes funciones:
- recopilar la información necesaria a través de sensores;
- analizar datos y tomar decisiones utilizando un microprocesador programable;
- implementar las decisiones tomadas mediante la emisión de comandos a varios dispositivos.
La plataforma Arduino es buena precisamente porque no se acerca a un fabricante específico, sino que permite al consumidor elegir los componentes que más le convengan. Su elección es enorme, por lo que puede implementar casi cualquier idea.
Te recomendamos que te familiarices con lo mejor dispositivos inteligentes para el hogar.
Además de la variedad de dispositivos conectados, el entorno de programación implementado en C ++ agrega variabilidad.El usuario no solo puede aprovechar las bibliotecas creadas, sino también programar la respuesta de los componentes del sistema a eventos emergentes.
Elementos principales del tablero
El elemento principal de una casa inteligente es una o más placas centrales (placa base). Son responsables de la interacción de todos los elementos. Una vez determinadas las tareas que deberán resolverse, podemos proceder a la selección del nodo principal del sistema.
La placa base combina los siguientes elementos:
- Microcontrolador (procesador). Su propósito principal es emitir y medir voltaje en puertos en el rango de 0-5 o 0-3.3 V, almacenar datos y realizar cálculos.
- Programador (no todas las placas lo tienen). Con este dispositivo, se escribe un programa en la memoria del microcontrolador, según el cual funcionará el "hogar inteligente". Está conectado a una computadora, tableta, teléfono inteligente u otro dispositivo mediante una interfaz USB.
- Estabilizador de voltaje. Se necesita un dispositivo de 5 voltios, necesario para alimentar todo el sistema.
Bajo la marca Arduino, hay varios modelos de placas base disponibles. Se diferencian entre sí en factor de forma (tamaño), número de puertos y tamaño de memoria. Es para estos indicadores que debe elegir el dispositivo correcto.
Hay dos tipos de puertos:
- digitalque están marcados en la pizarra con letras "D";
- análogomarcado con una letra "A".
Gracias a ellos, el microcontrolador se comunica con los dispositivos conectados. Cualquier puerto puede funcionar tanto al recibir una señal como en su salida. Los puertos digitales marcados como "pwm" están destinados a la entrada y salida de una señal de tipo PWM (modulación de ancho de pulso).
Por lo tanto, antes de comprar una placa, debe evaluar al menos aproximadamente el nivel de su carga en varios dispositivos. Esto determinará el número deseado de puertos de todos los tipos.
Debe entenderse que el sistema de "hogar inteligente" no tiene que estar vinculado a una unidad de control basada en una placa base. Funciones tales como, por ejemplo, la inclusión de iluminación artificial en el área local dependiendo de la hora del día y el mantenimiento de la reserva de agua en el tanque de almacenamiento son independientes entre sí.
Desde el punto de vista de garantizar la confiabilidad del sistema electrónico, es mejor separar las tareas no relacionadas en diferentes bloques, lo que el concepto Arduino hace que sea fácil de implementar. Si combina muchos dispositivos en un solo lugar, es posible que el microprocesador se sobrecaliente, las bibliotecas de software entren en conflicto y las dificultades para encontrar y corregir el mal funcionamiento del software y el hardware.
Cada microprocesador está equipado con tres tipos de memoria:
- Memoria flash La memoria principal donde se almacena el código del programa de gestión del sistema. Una pequeña parte (3-12%) está ocupada por el gestor de arranque con cable.
- SRAM RAM, que almacena los datos temporales necesarios para el programa. Difiere en alta velocidad de trabajo.
- EEPROM. Memoria más lenta, donde los datos también se pueden almacenar.
La principal diferencia entre los tipos de memoria para almacenar datos es que cuando se apaga la alimentación, la información que se graba en SRAM se pierde, pero permanece en la EEPROM. Pero el tipo no volátil también tiene un inconveniente: un número limitado de ciclos de escritura. Esto debe recordarse al crear sus propias aplicaciones.
A diferencia del uso de Arduino en robótica, para la mayoría de las tareas de la "casa inteligente" no necesita mucha memoria ni para programas ni para almacenar información.
Tipos de tableros para construir una casa inteligente
Considere los principales tipos de tableros que se usan con mayor frecuencia al ensamblar un sistema de hogar inteligente.
Vista # 1 - Arduino Uno y sus derivados
Los sistemas domésticos inteligentes más comunes utilizan las placas Arduino Uno y Arduino Nano. Tienen suficiente funcionalidad para resolver problemas típicos.
Parámetros principales de Arduino Uno Rev3:
- procesador: ATMega328P (8 bits, 16 MHz);
- cantidad de puertos digitales: 14;
- de los cuales con función PWM: 6;
- cantidad de puertos analógicos: 6;
- memoria flash: 32 KB;
- SRAM: 2 KB;
- EEPROM: 1 KB.
No hace mucho tiempo, salió una modificación: Uno Wi-Fi, que contiene un módulo integrado ESP8266, que le permite intercambiar información con otros dispositivos de acuerdo con el estándar 802.11 b / g / n.
La diferencia entre el Arduino Nano y su análogo más grande es la falta de su propia toma de corriente de 12 V. Esto se hace para lograr un dispositivo más pequeño, lo que hace que sea fácil esconderse en un espacio pequeño. También para estos fines, la conexión USB estándar se reemplaza por un chip con un cable mini-USB. Arduino Nano tiene 2 puertos analógicos más en comparación con Uno.
Hay otra modificación de la placa Uno: Arduino Mini. Es incluso más pequeño que Nano, y es mucho más difícil trabajar con él. En primer lugar, la falta de un puerto USB crea un problema con el firmware, ya que para ello tendrá que usar el convertidor de serie USB. En segundo lugar, esta placa es más exigente en términos de potencia: es necesario proporcionar un rango de voltaje de entrada de 7-9 V.
Por las razones descritas anteriormente, la placa Arduino Mini rara vez se usa para operar un "hogar inteligente". Por lo general, se usa en robótica o en la implementación de proyectos listos para usar.
Vista # 2 - Arduino Leonardo y Micro
La placa Arduino Leonardo es similar a Uno, pero un poco más potente. Otra característica interesante de este modelo es su definición cuando se conecta a una computadora como un teclado, mouse o joystick. Por lo tanto, a menudo se usa para crear dispositivos de juego y simulaciones originales.
Los principales parámetros del Arduino Leonardo son los siguientes:
- procesador: ATMega32u4 (8 bits, 16 MHz);
- cantidad de puertos digitales: 20;
- de los cuales con función PWM: 7;
- cantidad de puertos analógicos: 12;
- memoria flash: 32 KB;
- SRAM: 2.5 KB;
- EEPROM: 1 KB.
Como puede ver en la lista de parámetros, Leonardo tiene más puertos, lo que permite cargar este modelo con una gran cantidad de sensores.
También para Leonardo hay un análogo en miniatura completamente idéntico, llamado Micro. No tiene alimentación de 12 V y en lugar de una entrada USB completa, hay un chip para un cable mini-USB.
La modificación de Leonardo llamada Esplora es un modelo puramente de juego y no se ajusta a las necesidades de un "hogar inteligente".
Vista # 3 - Arduino 101, Arduino Zero y Arduino MKR1000
A veces, para el funcionamiento de los sistemas de "hogar inteligente" implementados sobre la base de Arduino, se requiere una gran potencia informática, que los microcontroladores de 8 bits no pueden proporcionar. Las tareas como el reconocimiento de voz o imagen requieren un procesador rápido y una cantidad significativa de RAM para dichos dispositivos.
Para resolver estos problemas específicos, se utilizan placas potentes que funcionan según el concepto Arduino. La cantidad de puertos que tienen es casi la misma que la de las placas Uno o Leonardo.
Una de las placas más fáciles de usar pero potentes: Arduino 101 tiene las siguientes características:
- procesador: Intel Curie (32 bits, 32 MHz);
- memoria flash: 196 KB;
- SRAM: 24 KB;
- EEPROM: no.
Además, la placa está equipada con la funcionalidad BLE (Bluetooth Low Energy) con la capacidad de conectar fácilmente soluciones ya preparadas, como un sensor de latidos cardíacos, recibir información meteorológica fuera de la ventana, enviar mensajes de texto, etc. Un giroscopio y un acelerómetro también están integrados en el dispositivo, pero se usan principalmente en robótica.
Otra placa similar: Arduino Zero tiene los siguientes indicadores:
- procesador: SAM-D21 (32 bits, 48 MHz);
- memoria flash: 256 KB;
- SRAM: 32 KB;
- EEPROM: no.
Una característica distintiva de este modelo es la presencia de un depurador integrado (EDBG). Usarlo es mucho más fácil buscar errores al programar la placa.
Arduino MKR1000 es otro modelo adecuado para computación poderosa.Tiene un microprocesador y una memoria similar a Zero. Su principal diferencia es la presencia de un chip Wi-Fi integrado con protocolo 802.11 b / g / ny un chip criptográfico compatible con el algoritmo SHA-256 para proteger los datos transmitidos.
Vista # 4 - Modelos de la familia Mega
A veces es necesario usar una gran cantidad de sensores y controlar una cantidad significativa de dispositivos. Por ejemplo, esto es necesario para el funcionamiento automático de los sistemas de aire acondicionado distribuido que mantienen una temperatura determinada para zonas individuales.
Para cada área local, es necesario rastrear las lecturas de dos sensores de temperatura (el segundo se usa como control) y, de acuerdo con el algoritmo, ajustar la posición del regulador, que determina la cantidad de aire caliente.
Si hay más de 10 de esas zonas en la cabaña, entonces se necesitan más de 30 puertos para controlar todo el sistema. Por supuesto, puede usar varias tarjetas Uno bajo el control general de una de ellas, pero esto crea dificultades de conmutación adicionales. En este caso, es recomendable utilizar modelos de la familia Mega.
El Arduino Mega se basa en un microprocesador aTMega1280 de 8 bits y 16 MHz bastante simple.
Tiene una gran cantidad de memoria:
- memoria flash: 128 KB;
- SRAM: 8 KB;
- EEPROM: 4 KB.
Pero su principal ventaja es la presencia de muchos puertos:
- cantidad de puertos digitales: 54;
- de los cuales con función PWM: 15;
- Número de puertos analógicos: 16.
Este tablero tiene dos variedades modernas:
- Mega 2560 se basa en el microprocesador aTMega2560, con una gran memoria flash: 256 KB;
- Además del microprocesador aTMega2560, el Mega ADK está equipado con una interfaz USB con la capacidad de conectarse a dispositivos basados en el sistema operativo Android.
El modelo Arduino Mega ADK tiene una característica. Al conectar el teléfono a la entrada USB, es posible la siguiente situación: si el teléfono necesita cargarse, comenzará a "sacarlo" de la placa. Por lo tanto, existe un requisito adicional para una fuente de electricidad: debe proporcionar una potencia actual de 1,5 amperios. Al suministrar baterías, se debe considerar esta condición.
Due es otro modelo de Arduino que combina la potencia de un microprocesador y una gran cantidad de puertos.
Sus características son las siguientes:
- procesador: Atmel SAM3X8E (32 bits, 84 MHz);
- cantidad de puertos digitales: 54;
- de los cuales con función PWM: 12;
- cantidad de puertos analógicos: 14;
- memoria flash: 512 KB;
- SRAM: 96 KB;
- EEPROM: no.
Los contactos analógicos de esta placa pueden funcionar tanto en la resolución habitual de 10 bits para Arduino, que se hace por compatibilidad con modelos anteriores, como en la resolución de 12 bits, que le permite obtener una señal más precisa.
Características de interacción de módulos a través de puertos.
Todos los módulos que se conectarán a la placa tienen al menos tres salidas. Dos de ellos son cables de alimentación, es decir "Tierra", así como un voltaje de 5 o 3.3 V. El tercer cable es lógico. Está transmitiendo datos al puerto. Para conectar los módulos, use cables especiales agrupados en 3 piezas, que a veces se denominan puentes.
Dado que los modelos Arduino generalmente tienen solo 1 puerto con voltaje y 1-2 puertos con tierra, para conectar varios dispositivos, necesitará soldar los cables o usar placas de prueba.
La soldadura es más confiable y se usa en dispositivos que están sujetos a un impacto físico, por ejemplo, tableros de control para robots y quadrocopters. Para un hogar inteligente, es mejor usar placas de prueba, ya que es más fácil tanto durante la instalación como al quitar un módulo.
Para algunos modelos (por ejemplo, Arduino Zero y MKR1000), el voltaje de funcionamiento es de 3.3 V, por lo que si se aplica un valor más alto a los puertos, la placa puede dañarse. Toda la información de energía está disponible en la documentación técnica del dispositivo.
Tarjetas de adición (escudos)
Para aumentar las capacidades de las placas base, use escudos (Shields), ampliando la funcionalidad de dispositivos adicionales. Están hechos para un factor de forma específico, que los distingue de los módulos que se conectan a los puertos. Los escudos son más caros que los módulos, pero trabajar con ellos es más fácil. También están equipados con bibliotecas listas para usar con código, lo que acelera el desarrollo de sus propios programas de control para el "hogar inteligente".
Escudos Proto y Sensor
Estos dos escudos estándar no tienen características especiales. Se utilizan para una conexión más compacta y conveniente de una gran cantidad de módulos.
Proto Shield es una copia casi completa del original en términos de puertos, y en el medio del módulo puede pegar una placa de pruebas. Esto facilita el montaje. Tales complementos existen para todas las placas Arduino de longitud completa.
Pero si hay muchos dispositivos (más de 10), entonces es mejor usar tableros de parches Sensor Shield más caros.
No tienen bradboard, sin embargo, todas las conclusiones de los puertos se suministran individualmente con alimentación y tierra. Esto le permite no confundirse con cables y puentes.
También en esta placa hay almohadillas para una fácil conexión de varios módulos: Bluetoots, tarjetas SD, RS232 (puerto COM), radio y ultrasonido.
Conexión de funcionalidad auxiliar
Escudos con funcionalidad integrada diseñada para resolver tareas complejas, pero típicas. Si necesita implementar ideas originales, es mejor elegir el módulo correcto.
Motor Shield. Está diseñado para controlar la velocidad y la rotación de motores de baja potencia. El modelo original está equipado con un chip L298 y puede funcionar simultáneamente con dos motores de CC o con un servoaccionamiento. Hay una parte compatible de un fabricante externo, que tiene dos chips L293D con la capacidad de controlar el doble de unidades.
Escudo de relé. Un módulo de uso frecuente con sistemas domésticos inteligentes. Tablero con cuatro relés electromecánicos, cada uno de los cuales permite el paso de corriente con una fuerza de hasta 5A. Esto es suficiente para encender y apagar automáticamente dispositivos de kilovatios o líneas de iluminación, diseñados para corriente alterna de 220 V.
Pantalla LCD Le permite mostrar información en la pantalla integrada, que se puede actualizar a un dispositivo TFT. Esta extensión se usa a menudo para crear estaciones meteorológicas con lecturas de temperatura en varios locales residenciales, dependencias, un garaje, así como la temperatura, la humedad y la velocidad del viento en la calle.
Escudo de registro de datos. La tarea principal del módulo es registrar datos de sensores en una tarjeta SD de formato completo de hasta 32 Gb con soporte para el sistema de archivos FAT32. Para grabar en una tarjeta micro SD, debe comprar un adaptador. Este escudo se puede usar como depósito de información, por ejemplo, al grabar datos de un DVR. Producción de la empresa estadounidense Adafruit Industries.
Escudo de tarjeta SD. Una versión más simple y económica del módulo anterior. Dichas extensiones son lanzadas por muchos fabricantes.
Escudo EtherNet. El módulo oficial para conectar Arduino a Internet sin una computadora. Hay una ranura para tarjeta micro SD, que le permite grabar y enviar datos a través de una red mundial.
Escudo de Wi-Fi. Le permite intercambiar información de forma inalámbrica con soporte para el cifrado. Sirve para conectarse a Internet y dispositivos que se pueden controlar a través de Wi-Fi.
Escudo GPRS. Este módulo, por regla general, se utiliza para comunicar la "casa inteligente" con el propietario por teléfono móvil a través de mensajes SMS.
Módulos de casa inteligente
Conectar módulos de fabricantes de terceros y la capacidad de trabajar con ellos utilizando el lenguaje de programación incorporado es la principal ventaja del sistema Arduino abierto en comparación con las soluciones "patentadas" para el "hogar inteligente". Lo principal es que los módulos tienen una descripción de las señales recibidas o transmitidas.
Formas de obtener información
La información puede ingresarse a través de puertos digitales o analógicos. Depende del tipo de botón o sensor que recibe la información y la transmite a la placa.
La señal al microprocesador puede ser enviada por una persona que utiliza dos métodos para esto:
- Presionando un botón (teclas). El cable lógico en este caso va al puerto digital, que recibe el valor "0" en el caso del botón liberado y "1" en el caso de presionarlo.
- Rotación de la tapa del potenciómetro giratorio (resistencia) o deslizador de palanca de cambio. En este caso, el cable lógico va al puerto analógico. El voltaje pasa a través de un convertidor analógico a digital, después de lo cual los datos van al microprocesador.
Los botones se utilizan para iniciar un evento, por ejemplo, encender y apagar las luces, calefacción o ventilación. Las perillas giratorias se usan para cambiar la intensidad: aumentar o disminuir el brillo de la luz, el volumen del sonido o la velocidad de rotación de las aspas del ventilador.
Los sensores se utilizan para determinar automáticamente los parámetros del entorno o el origen de un evento.
Las siguientes variedades son las más demandadas para la operación de un "hogar inteligente":
- Sensor de sonido Las versiones digitales de este dispositivo se utilizan para desencadenar un evento mediante un pop o una voz. Los modelos analógicos le permiten reconocer y procesar el sonido.
- Sensor de luz. Estos dispositivos pueden funcionar tanto en el rango visible como en el infrarrojo. Este último puede usarse como un sistema de advertencia de incendio.
- Sensor de temperatura Para la casa y la calle utilizan diferentes modelos, ya que los exteriores están mejor protegidos de la humedad. También hay dispositivos remotos en el cable.
- Sensor de humedad. El modelo DHT11 es adecuado para uso en interiores, y el DHT22 más caro para uso en exteriores. Ambos dispositivos también pueden dar una lectura de temperatura. Conéctese a un puerto digital.
- Sensor de presión de aire. Para trabajar con placas Arduino, los barómetros analógicos Bosh han demostrado ser: bmp180, bmp280. También miden la temperatura. El modelo bme280 puede llamarse estación meteorológica, ya que también proporciona un valor de humedad.
- Sensores de movimiento y presencia. Se utilizan con fines de seguridad o para encender automáticamente la luz.
- Sensor de lluvia. Reacciona al agua que entra en su superficie. También se puede usar para activar una alarma sobre fugas en el circuito de agua o calefacción.
- Sensor de corriente. Se utilizan para detectar aparatos eléctricos rotos (lámparas quemadas) o para analizar el voltaje y evitar sobrecargas.
- Sensor de fuga de gas. Se utiliza para detectar y responder a mayores concentraciones de propano.
- Sensor de dióxido de carbono. Se utiliza para determinar la concentración de dióxido de carbono en las salas de estar y en habitaciones especiales como las bodegas donde se lleva a cabo la fermentación.
Existen muchos sensores diferentes para tareas específicas, por ejemplo, para medir peso, caudal de agua, distancia, humedad del suelo, etc.
Muchos sensores y sensores se pueden hacer de forma independiente utilizando componentes más simples. Costará menos.Pero, a diferencia del uso de dispositivos en serie, tendrá que dedicar tiempo a la calibración.
Gestión de instrumentos y sistemas.
Además de recopilar y analizar información, una "casa inteligente" debe responder a los eventos emergentes. La presencia de electrónica avanzada en electrodomésticos modernos le permite acceder a ellos directamente mediante Wi-Fi, GPRS o EtherNet. Por lo general, para los sistemas Arduino implementan la conmutación de un microprocesador y dispositivos de alta tecnología a través de Wi-Fi.
Para utilizar el Arduino para encender el aire acondicionado a una temperatura alta en la casa, bloquear la televisión e Internet por la noche en la habitación de los niños o encender la caldera de calefacción a la llegada de los propietarios, se deben realizar tres pasos:
- Instale el módulo Wi-Fi en la placa base.
- Encuentre canales de frecuencia desocupados para evitar conflictos en los sistemas.
- Comprenda los comandos del instrumento y las acciones del programa (o use bibliotecas listas para usar).
Además de la "comunicación" con dispositivos computarizados, a menudo surgen tareas relacionadas con el desempeño de cualquier acción mecánica. Por ejemplo, puede conectar un servoaccionamiento o una pequeña caja de cambios a la placa, que se alimentará de ella.
Si es necesario conectar dispositivos potentes que funcionan desde una fuente de alimentación externa, use dos opciones:
- Inclusión en un circuito de relés.
- Conexión de la tecla de encendido y el triac.
Circuito electrico electromagnético o relé de estado sólido cierra y abre uno de los cables a pedido del microprocesador. Su característica principal es la corriente máxima permitida (por ejemplo, 40 A), que puede pasar a través de este dispositivo.
En cuanto a la conexión de un interruptor de alimentación (mosfet) para corriente continua y un triac para corriente alterna, tienen un valor más bajo de intensidad de corriente permisible (5-15 A), pero pueden aumentar la carga sin problemas. Es por esta razón que los puertos PWM se proporcionan en las placas. Esta propiedad se usa para controlar el brillo de la iluminación, la velocidad del ventilador, etc.
Usando relés e interruptores de alimentación, puede automatizar completamente todos los circuitos eléctricos de la casa e iniciar el generador en ausencia de corriente. Por lo tanto, sobre la base de Arduino, es realmente posible proporcionar de forma independiente un apartamento o edificio, incluidas todas las funciones especialmente importantes: calefaccion, suministro de agua, drenaje, ventilación y sistema de seguridad.
¿Desea que su hogar sea más inteligente, pero con programación para "usted"? En este caso, le recomendamos que busque soluciones listas para usar de Xiaomi y Apple, que son fáciles de instalar y configurar incluso para un principiante. E incluso puede emitir comandos y controlar su ejecución incluso desde su teléfono inteligente.
Más información sobre el hogar inteligente de Xiaomi y Apple en los siguientes artículos:
- Hogar inteligente Xiaomi: características de diseño, una descripción general de los principales componentes y elementos de trabajo
- Apple Smart Home: las complejidades de organizar los sistemas de control del hogar de Apple Company
Conclusiones y video útil sobre el tema.
Un ejemplo de un espacio en blanco de nivel de entrada autoensamblado para una "casa inteligente":
La apertura de la plataforma Arduino permite el uso de componentes de varios fabricantes. Esto facilita el diseño de un "hogar inteligente" para las solicitudes de los usuarios. Por lo tanto, si hay al menos un conocimiento insignificante en el campo de la programación y la conexión de dispositivos electrónicos, vale la pena prestar atención a este sistema.
¿Está familiarizado con la plataforma Arduino en la práctica y desea compartir su experiencia con los recién llegados a este negocio? ¿Quizás desee complementar el material anterior con recomendaciones o comentarios útiles? Escribe tus comentarios debajo de esta publicación.
Si tiene alguna pregunta sobre el diseño de un sistema de casa automatizado basado en Arduino, pregunte a nuestros expertos y otros visitantes del sitio en el bloque a continuación.