Sistema de ventilación de la sala basado en "frambuesa" y "detector de CO2"

La moda de los hogares inteligentes ha barrido todo Internet, ahora todos quieren hacer una bombilla que pueda apagarse a través de Internet o encender un ventilador en el inodoro. Mi experiencia fue bastante simple: quería hacer un sistema que pueda ventilar automáticamente una habitación, ni más ni menos.

Después de considerar el principio del sistema, llegué a algunas conclusiones, que decidí implementar. Según lo planeado, toda la funcionalidad del sistema se divide en tres componentes: los "cerebros" que controlan todo, el sistema de ventilación para abrir la ventana o encender el ventilador, y el sensor mismo que monitorea la calidad del aire en la habitación. A continuación, hablaré sobre el sensor de calidad del aire, más un pequeño toque sobre el tema de integrarlo con los "cerebros" de un hogar inteligente.

Descripción del dispositivo


Decidí controlar la calidad de la "frescura" del aire mediante la concentración de dióxido de carbono. Los planes futuros incluyen el lanzamiento de sensores para amoníaco, propano / butano (fugas de gas), concentraciones de polvo en el aire, etc.

Se decidió colocar el sistema de ventilación en una sala de estar donde una persona pasa el mayor tiempo posible. Probablemente, dicha habitación es un dormitorio, y es allí donde un sistema de ventilación automática será muy útil durante una noche de sueño.



No es ningún secreto que la concentración de dióxido de carbono en el aire afecta fuertemente no solo la productividad del cerebro humano, el rendimiento humano, sino también la capacidad de descansar bien. Cuanto mayor es la concentración de CO2, peor.



El detector de dióxido de carbono de la compañía Dadget se utilizó como dispositivo para medir la concentración de dióxido de carbono.

Este dispositivo puede recibir energía del puerto USB de una computadora o computadora portátil. En el panel frontal: indicador LCD, que muestra información sobre la concentración de dióxido de carbono y la temperatura ambiente. También hay 3 LED que le dan al usuario una representación visual del contenido. Todo es bastante simple: encienda el dispositivo. Y todo funciona.

Me atrajo el hecho de que hay un software que funciona con este dispositivo. Hay software para Windows y Linux. El código fuente del programa para Linux está en github y parece haber sido escrito por nuestro compatriota. Y si tiene el código fuente, puede pensar en algo, modificarlo, "agudizar" el programa usted mismo.

Resumen del flujo de trabajo


Como lo demostraron la práctica y Google, la computadora ve el dispositivo como un dispositivo HID. Por lo tanto, en el programa para Windows hay un dll llamado HIDApi. Para trabajar con Linux, necesita la biblioteca HIDApi del mismo nombre. Finalicé el código fuente para el software de Linux y escribí un simple chirrido.

Está claro que usar una computadora Linux para leer datos del sensor y transferirlos a un controlador doméstico inteligente en algún lugar es una blasfemia. Por lo tanto, se decidió usar Raspbery pi con Debian puro instalado. En el futuro, se planea hacer todo en Arduino y transmitir a través de canales inalámbricos.

El esquema de mi complejo de hardware y software es el siguiente:



Un lector experto y un geek ávido podrían pensar que no es muy deportivo usar HUB en este esquema. Así es, puede conectar directamente un monitor de CO2 y disfrutar de la vida. Utilizando este esquema, resuelvo varios problemas a la vez:
● con mayor frecuencia, los cerebros de una casa inteligente no están donde está el sensor;
● el uso de raspberry pi permite conectar sensores adicionales;
● colocando el sensor por separado, obtenemos dos métodos de indicación, el primero en la pantalla del sensor, el segundo en el teléfono o a través de una página web, ya que los datos se transmiten al controlador.

Un dispositivo MicasaVerde se utiliza como un controlador doméstico inteligente, el dispositivo puede recopilar datos de sensores y tomar decisiones de acuerdo con un programa dado, que se denominan "escenas" en su terminología.



En el dispositivo, puede crear sensores virtuales y actualizar su información utilizando solicitudes http, lo que hice con raspberry pi.
Ejemplo de solicitud:
ip_address : 3480 / data_request? Id = variableset & DeviceNum = 6 & serviceId = urn: micasaverde-com: serviceId: DoorLock1 & Variable = Status & Value = 1
Es decir, Malinka lee los datos del detector de dióxido de carbono y luego transmite la solicitud http de datos a Vera. El esquema es simple pero funciona.

Revisión de software



Entonces hay una "frambuesa", no importa qué versión, lo principal es que tiene una interfaz de red.

A continuación, debe instalar el soporte para dispositivos ocultos. Esta biblioteca está tomada de git, por lo que git debe instalarse en el "malink":

apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

A continuación, descargue e

instale la


biblioteca clon mkdir hidapi cd hidapi / git init git. github.com/signal11/hidapi.git

Bibliotecas adicionales
sudo apt-get install libudev-dev libusb-1.0-0-dev libfox-1.6-dev autotools-dev autoconf automake libtool

Instalar
cd hidapi /
./bootstrap
./configure
make
sudo make instalar


Después de eso, descargue el código fuente del programa de monitoreo de CO2
mkdir co2monitor
cd co2monitor
git init
git clone github.com/dmage/co2mon.git


A continuación, modifiqué un poco el código del programa, en la versión inicial lee dos parámetros (temperatura y co2) y lo envía a la consola en un bucle sin fin . Esta opción no me convenía, el objetivo era ejecutarla una vez y obtener el valor una vez, así que cambié dos líneas en main.c.

Estamos buscando líneas

printf ("CntR \ t% s \ n", buf);
fflush (stdout);


Y cambie a

printf (“% s \ n", buf);
fflush (stdout);
exit (1);


La primera línea es responsable de generar el valor, después del cambio, solo se mostrará el dígito, y después de la salida, el programa se cerrará, la línea de salida (1) responderá.

Compile
cmake ...
make


Luego se escribió un script simple que inicia el programa, asigna los valores de salida del programa compilado anteriormente a una variable y luego pasa este valor usando curl a MicasaVerde. Después de eso, agregue la regla udev para que el sistema tenga acceso al sensor sin root.

SUBSISTEMA == "usb", ATTR {idVendor} == "04d9", ATTR {idProduct} == "a052", MODE = "0666"

Y agregue el script de sondeo y transmisión a cron, cada minuto.

crontab -e
Y agrega la línea
* * * * * /home/pi/co2sender.sh


El resultado del script

Por supuesto, aún debe configurar los archivos MicasaVerde para que haya registros adecuados en todas partes. Pero funciona, rápido y fácil.

Conclusión



Como resultado, tenemos un sistema basado en el Detector de CO2 , que funciona como de costumbre, analiza e informa sobre los cambios en la concentración de dióxido de carbono. Al mismo tiempo, Malinka lee los datos del sensor una vez por minuto y los transfiere al controlador del hogar inteligente, que puede encender el sistema de ventilación si es necesario.

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


All Articles