Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

WARAN - Automatización del hogar

Componentes y suministros

Raspberry Pi 2 Modelo B
× 1
Arduino UNO
× 1
Sensor de temperatura y humedad DHT11 (4 pines)
× 2
Higrómetro de suelos
× 1
Arduino Pro Mini 5V
× 2
batería de 9V (genérica)
× 3
Bomba de agua
Opcional
× 1
nRF24l01 +
× 3
nRF24l01 + Socket
Opcional
× 1
Transistor NPN
Opcional
× 1
Regulador de voltaje de 3.3V
× 2
Resistencia de 10kΩ
× 2
Condensador de 10 µF
× 4
Condensador de 47 µF
× 2
Perfboard
× 3

Herramientas y máquinas necesarias

Máquina de soldar
Pelacables
Pinza de alambre
Cables de puente

Aplicaciones y servicios en línea

Microsoft Windows 10 IoT Core
Microsoft Azure
PubNub Publish / Subscribe API

Acerca de este proyecto

Estaba planeando construir un sistema domótico barato. Quiero que este sea un sistema modular para poder seguir agregando sensores y dispositivos sin muchos cambios. WARAN ( W indows IoT, A zure, R aspberry Pi, A rduino, N RF24L01 +) es un sistema de domótica modular que consta de un solo Hub y varios módulos. El módulo combinará un microcontrolador y sensores que recopilan datos de diferentes ubicaciones de la casa y transmiten los datos al Hub a través de RF. Toda la comunicación entre el Hub y los módulos se realiza a través de RF. También habrá una aplicación complementaria de Windows Phone para el Hub. Aquí hay un diagrama de flujo simple que explica la configuración.

¿Por qué Windows IoT?

Soy un desarrollador de software que actualmente está incursionando en IoT. Con mi experiencia previa con XAML / C # y Visual Studio (que considero el mejor IDE de todos los tiempos), fue muy útil para mí implementarlos muy rápidamente.

¿Por qué NRF24L01 +?

Cuando estaba buscando opciones inalámbricas, NRF24L01 + surgió como una solución barata y de bajo consumo de energía. Con algunas bibliotecas realmente poderosas disponibles, nos llegó la mejor solución.

Por qué Windows Azure

Windows Azure muy fácil de aprender y adaptar. Con poca configuración requerida para abrir el servicio, podemos enfocarnos más en el desarrollo que en la configuración y la implementación. Mi experiencia previa con Azure me ayudó a lograr una integración rápida.

El Hub

The Hub es un centro de control central de WARAN. Está compuesto por RPI2, Arduino Uno y nRF24L01 +. El RPI2 ejecuta el núcleo de Windows IoT. Ejecuta una aplicación universal que actúa como centro de control. El Hub estaría conectado a una pantalla grande (normalmente un televisor o monitor) a través de la cual podemos ver los datos de los módulos y también controlar los módulos. Un teclado y un mouse conectados al RPI2 ayudarán a agregar y quitar módulos del centro de control. Aquí está el diagrama de circuito de la misma (consulte el archivo WARAN.Hub.fzz. En el proyecto)

¿Cómo funciona?

Cada módulo tendrá una dirección única a través de la cual el concentrador se comunicará con él. Agregaremos un módulo al centro de control usando esta dirección y dando un nombre al módulo. Una vez agregado, el centro de control (Aplicación Universal) enviará datos a Arduino Uno a través de I2C. Arduino Uno enviará datos al módulo a través de nRF24L01 + y el módulo lee los datos de los sensores o inicia / detiene un dispositivo en función de los datos que recibió y los envía de vuelta a Arduino Uno. El Arduino Uno enviará los datos al centro de control a través de I2C. Estos datos que se mostrarán en el televisor / monitor y también se enviarán a la nube. El Arduino Uno solo actuará como una interfaz para que RPI2 obtenga los datos del sensor de otros módulos. El proceso anterior ocurrirá en tres escenarios

  1. A intervalos específicos según el módulo
  2. Cuando el usuario interactúa con el centro de control (a través del mouse / teclado)
  3. Cuando se envía un disparador desde la nube (vis PubNub)

Aquí hay un flujo típico

Y así es como los componentes del concentrador y los módulos interactúan entre ellos.

El Centro de control

El centro de control es una aplicación universal que se ejecuta en el RPI2. El centro de control es la interfaz con la que el usuario interactúa. Se comunica con los módulos y también con la nube. El centro de control de WARAN utiliza Azure Mobile Services y PubNub como su back-end en la nube. Cada información de módulo que agreguemos se almacenará localmente en sqlite db y también se enviará al servicio móvil azure. Esto, a su vez, enviará un mensaje PubNub o una notificación push a la aplicación móvil. No quiero explicar la parte de codificación aquí y hacer que este artículo sea un desastre. El código fuente del proyecto, la documentación y los detalles de implementación se pueden encontrar en https://bitbucket.org/arjunganesan/waran (estoy en el proceso de actualizar la documentación por completo, lo cual se hará pronto). Así funciona el centro de control

La aplicación móvil

La aplicación móvil es una aplicación de teléfono de Windows (se desarrollará para otras plataformas más adelante) que actuará como una aplicación complementaria al hub. Podemos ver todos los datos relacionados con los sensores en el móvil en cualquier parte del mundo. Si, en caso de que se obtenga información importante del módulo (como una alerta de fuga de gas de un módulo de monitoreo de fuga de gas), también recibiremos una notificación automática. También podemos activar alguna acción en el módulo (como poner en marcha una bomba en el módulo Plant Waterer) desde el propio móvil. Dado que todo esto ocurre a través de la nube, no es necesario que un dispositivo móvil esté presente en cualquier lugar cerca del centro para realizar todas estas acciones.

Así es como se ve la aplicación móvil


Módulos

El módulo es una combinación de componentes que trabajan juntos y reciben y envían datos desde y hacia el Hub a través de RF. Puede ser una combinación como Arduino Pro Mini con sensores o RPI2 con sensores, etc. Todo lo que necesita hacer es recibir los datos / comandos desde el concentrador a través de RF y responder adecuadamente. Esto da una posibilidad infinita de módulos. Para comenzar, estoy agregando 2 módulos

  1. Bebedero para plantas
  2. Monitor de temperatura

Bebedero para plantas

El bebedero de la planta controlará el nivel del agua en las plantas y también la temperatura en el ambiente alrededor de la planta. En caso de que no haya suficiente agua, se enviará una alerta a la aplicación móvil. Podemos poner en marcha la bomba desde la aplicación móvil desde cualquier lugar. También podemos configurarlo para que arranque automáticamente la bomba siempre que el nivel del agua baje del umbral. Se compone de Arduino Pro Mini, DHT11, higrómetro de suelo y nRF24L01 +. Aquí está el diagrama del circuito (consulte PlantWaterer.fzz en el proyecto)

La energía de la batería de 9V va al pin RAW de Arduino Pro Mini. El regulador de voltaje incorporado en arduino dará una salida de 5V en Vcc. Usaremos esto para alimentar DHT11. También le damos la potencia de 9V como entrada al regulador de voltaje de 3.3V que usaremos para alimentar el nRF24L01 +. El nivel de agua del higrómetro se leerá en el pin analógico A3. La lectura de temperatura del DHT11 se leerá en el pin digital 6. En el pin digital 5 enviaremos una señal a un transistor o relé con el que arrancamos y paramos una bomba. Para fines de demostración, usaré una bomba de CC y usaré un transistor como interruptor. Y aquí está el flujo de cómo funciona

No quería que el circuito permaneciera en la placa de pruebas, así que lo transferí a una placa de perforación. Quiero mantenerlo compacto, así que lo hice de esta manera. Puede consultar el diagrama del circuito y crear su propio diseño.

Y a continuación hay un video sobre cómo funciona.

Monitor de temperatura

El monitor de temperatura controlará la temperatura en una habitación (por ejemplo, dormitorio) y se mantendrá informado sobre el nivel de temperatura y humedad. También podemos encender / apagar o ajustar un dispositivo (Termostato, AC, etc.) desde el hub o móvil. Por el bien de la demostración, apagaré / encenderé un LED conectado al arduino. El circuito consta de Arduino Pro Mini, DHT11 y nRF24L01 +. A continuación se muestra el diagrama del circuito (consulte el archivo TemperatureMonitor.fzz en el proyecto)

La energía de la batería de 9V va al pin RAW de Arduino Pro Mini. El regulador de voltaje incorporado en arduino dará una salida de 5V en Vcc. Usaremos esto para alimentar DHT11. También le damos la potencia de 9V como entrada al regulador de voltaje de 3.3V que usaremos para alimentar el nRF24L01 +. La lectura de temperatura y humedad del DHT11 se leerá en el pin digital 5. En el pin 6 enviaremos una señal a un transistor o relé con el que iniciamos la parada de un dispositivo (por ejemplo, termostato, CA, etc.). Para fines de demostración, usaré una luz LED para mostrar el apagado / encendido del dispositivo. Y aquí está el flujo de cómo funciona

Así es como lo puse en un tablero perforado. Puede crear su propio diseño basado en el diagrama del circuito.

Y así es como funciona

Problemas conocidos

  • Energía:la batería se agota en pocas horas en ambos módulos. Necesito encontrar una fuente de energía portátil y eficiente. Estoy planeando usar procesadores attiny en lugar de pro mini en cualquier módulo posible. Sería más eficiente en energía. Mis artículos anteriores sobre attiny se pueden encontrar aquí.
  • Concurrencia I2C:si RPI2 envía una solicitud de 2 cables a Arduino uno a la vez, uno de ellos falla. Estoy trabajando en una forma de evitar esto y también estoy tratando de implementar un mecanismo de reintento.
  • Comunicación unidireccional:ahora mismo, el Hub inicia una solicitud y el módulo responde por ella. Aunque esto funciona bien en muchos escenarios, es posible que algunos módulos nuevos requieran enviar datos al Hub sin que el Hub envíe una solicitud.
  • Rango:he guardado los módulos en la habitación contigua y puedo recibir datos correctamente. Pero si desea aumentar el rango, reemplace el nRF24L01 en Hub con NRF24L01 + PA + LNA que tiene una antena externa.
  • Seguridad:dado que esto se desarrolló asumiendo que es propiedad del desarrollador, no agregué ningún mecanismo de autenticación. Si lo desea, puede utilizar el servicio de identidad del servicio Azure Mobile para integrar Microsoft, FB, Twitter, autenticación de Google en la aplicación móvil y el concentrador.

Planes futuros

Me gustaría hacer de esto una plataforma abierta para que las personas implementen su propio sistema de automatización del hogar. Estaré estabilizando el Hub y la aplicación móvil. Me gustaría agregar muchos más módulos a este proyecto. El comando y la respuesta basados ​​en voz también están en la hoja de ruta. Ahora mismo estoy trabajando en los siguientes módulos

  • Sensor de fugas de gas
  • Detector de intrusos
  • Controladores de dispositivo (por ejemplo, controlador de máquina de café, controladores de luz, etc.)
  • Abridor de puerta de garaje
  • Algunos módulos portátiles
  • Servicios de Internet sin hardware (clima, aplicación Azure Logic, informe de existencias, etc.)
  • Módulos que funcionan fuera del alcance de Hub y se comunican con él a través de Internet (por ejemplo, rastreador de automóviles, rastreador de mascotas, podómetro, etc.)

Todos estos módulos combinados y funcionando como una sola unidad a través de Hub me darán el sistema de domótica que siempre quise tener. Seguiré agregando los nuevos módulos como proyectos separados en hackster. Todos son bienvenidos a agregar nuevos módulos y expandirse. Actualizará la página wiki sobre cómo agregar nuevos módulos al proyecto.

Código

Bitbucket

Esquemas

WARAN.Hub.fzz PlantWaterer.fzz TemperatureMonitor.fzz

Proceso de manufactura

  1. Aplicaciones de automatización del hogar
  2. RASPBERRY PI HOME AUTOMATION
  3. Dados digitales Arduino
  4. Controlador de juego Arduino
  5. Interfaz física de automatización del hogar
  6. Pixel Chaser Game
  7. Sistema de riego de plantas domésticas
  8. Levitación electromagnética repulsiva Arduino
  9. Controlador Arduino Home activado por Alexa
  10. NeoMatrix Arduino Pong
  11. Juego de ruleta LED