Cómo creamos la Anxiety Station

Azahara Fernández Guizán
3 min readNov 21, 2020

En Marzo, Juan Manuel Rodriguez Perez y yo decidimos tener un parón en nuestros Pet Projects debido a la situación de incertidumbre producida por el COVID-19. Al igual que muchas otras personas, nos dimos cuenta que la ansiedad nos impedía centrarnos en nada más que el trabajo y acabábamos muy agotados para hacer otra cosa en nuestro tiempo libre.

En ese período de tiempo nos fuimos dando cuenta de cómo había ciertos días en que la ansiedad era más propensa a aparecer: días oscuros, ambiente cargado y dependiendo de como tuviésemos nuestras pulsaciones al levantarnos. Comprobamos que además había estudios científicos que ya lo relacionaban y pensamos en crear un sistema que nos alertase de que no era un buen día.

Y eso es lo que hemos estado haciendo los últimos fines de semana, la “Anxiety Station” con Arduino. Te contamos aquí como.

Componentes

  • Placa arduino mega
  • Sensor de calidad de aire y concentración de gases MQ135 de AZ delivery
  • Sensor de luz MH Sensor Series.
  • Sensor de pulsaciones y oxigenación MAX30102 MH ETLive
    Pantalla 1602 Display/1602 Screen con potenciómetro.
  • Leds de colores y un botón de encendido
  • Una caja para contenerlo todo.

Documentación

Nos basamos en la info de Luis llamas para la parte del sensor de luz y del sensor de gases.

Para el sensor de pulso, usamos la documentación de la librería Sparkfun.

Y para escribir en la pantalla LCD, la documentación de Arduino.

Código para el sensor de luz.

El sensor de luz no tiene ningún secreto, simplemente le decimos que lea analógicamente y el valor que nos da lo transformamos en voltaje. Con eso tenemos el dato para mostrar.

Código para el sensor de gases

El sensor de gases es también muy sencillo de programar, en este caso tendremos una lectura digital y otra analógica. De esta última obtendremos las ppm de la concentración de gases en la sala, gracias a una ecuación muy simple.

Código para el sensor de pulso

Este código ya tiene algo más de complicación, aunque nosotros nos hemos basado en los ejemplos de la librería.

En el setup el sensor debe esperar a estar encendido y en activo, lo cual lleva unos segundos y luego realiza un primer setup.

Luego en el loop, si es la primera iteración realiza una serie de mediciones basales, para estandarizar los led rojos e infrarrojos con los que medirá después.

En cada iteración va llamando a la función de calcular datos pasándole 50 mediciones (las mínimas con las que funciona), en nuestro caso. Esta función devolverá unos parámetros de salida en los que irán las pulsaciones y la concentración de oxígeno en sangre, que serán los datos con los que trabajaremos.

Código para escribir en pantalla LCD

Para escribir en la pantalla LCD utilizamos la librería LiquidCrystal y simplemente inicializamos la pantalla con el número de filas y columnas que tiene. Y luego para escribir, posicionamos el cursor al inicio de la fila correspondiente y le pasamos los caracteres a pintar.

Todo el código

En nuestro repositorio de Github encontrarás todo el código completo, verás que nosotros utilizamos también leds para indicar los niveles si son adecuados, medios o malos de cada parámetro y que vamos mostrando los valores de la pantalla según se van actualizando.

Y si tienes más curiosidad por lo que hacemos en Afaya tienes nuestro perfil en Twitter, Github y nuestra web.

--

--

Azahara Fernández Guizán

Software Developer at Sngular. PhD on Immunology, always learning and trying to share knowledge. Microsoft Most Value Professional on Developer Technologies.