Este dispositivo se realizó gracias al apoyo del proyecto UNAM-PAPIIT IT103023.
El dispositivo DTHIS nos ayuda a evaluar la calidad del ambiente dentro de salones de clases. EL DTHIS (Dispositivo de Temperatura, Humedad, Iluminación y Sonido) funciona con un microprocesador Raspberry Pi y 3 sensores/hardware diferentes, los cuales a través de una seria de códigos recolectan las variables de interes y las mandan a una plataforma de IoT como Thingsboard.
| Sensor | Variable | Cantidad | Link |
|---|---|---|---|
| SCD30 Sensirion | Temperatura, CO₂ y Humedad Relativa | 1 | (https://www.agelectronica.com/detalle.php?p=101020634*) |
| Fisheye Camera | Luminancia | 1 | (https://www.agelectronica.com/detalle.php?p=SKU10344*) |
| Micrófono ambiental USB | dB Maximos, minimos y promedio | 1 | (https://www.steren.com.mx/microfono-usb-c-de-solapa-para-celular.html) |
| Ventilador y disipador | 1 | (https://www.330ohms.com/products/ventilador-con-disipador-de-calor?_pos=3&_sid=9bcb8693a&_ss=r) | |
| Raspberry Pi 4 Model B | Microprocesador | 1 | (https://www.330ohms.com/collections/raspberry-pi-4/products/raspberry-pi-4-modelo-b-2gb) |
| POE | 1 | (https://www.agelectronica.com/detalle.php?p=RASPBERRYPI-POE%sumHAT) |
-
En CAD encuentra
- Planos para 3D de la carcasa
-
En calibración encuentra
- Manual de operación para recrear el DTHIS
-
En codigo encuentra
- Códigos empleados en el SCD30, medición de niveles de ruido, mapas de luminancia
-
En diagramas encuentra
- Imagenes de los diagramas de conexión usados en la documentación
La estructura del repositorio está planeada para que solamente se descargue el archivo zip, y en tu propia maquina solamente darle el permiso a los scripts para que sean ejecutables pues dichos scripts ya están escritos
- Instalar sistema operativo en la microSD [buscar un video YT y ligarlo]
- Crear un ambiente virtual de Python llamado dthis en un folder venvs en el home [video]
Para preparar el ambiente virtual, debes instalar los paquetes de requirements.txt
- Activa el entorno virtual:
source venvs/dthis/bin/activate- Instala las dependencias desde el archivo requirements.txt:
python -m pip install -r requirements.txt- Se teclea lo siguiente en la terminal para entrar al menu de configuración
sudo raspi-config- Nos dirigimos al apartado
Interface Options. - Habilitar I2C
- Reinicias la Raspi
Ejecuta el script scd30.py.
En este caso usaremos un microfono USB-C al cual le pusimos un adaptador de C-USB. Antes de conectar el micrófono debes apagar la Raspi
sudo apt update
sudo apt install alsa-utils
sudo apt install sox libsox-fmt-all
Para identificar a que puerto está conectado el micrófono, ejecuta el siguiente comando:
arecord -lSe desplegará lo siguiente:
En este caso card 3 es el puerto al que está conectado el micrófono, por lo tanto al ejecutar el comando para la captura de audio, se deberá definir plughw:3,0.
Para grabar un audio se ejecuta el siguiente comando:
arecord -D plughw:3,0 -f cd -t wav -d 5 -r 44100 audio.wavEsta instrucción graba 5 segundos, puedes comprobar que todo funciona escuchando el audio que acabas de grabar
Para que sea posible ejecutar los scripts a traves del crontab es necesario darle permiso con:
chmod +x script.shFunciones de cada uno de los scripts:
-
grabar.sh: Graba 15 segundos de audio en calidad CD.
-
dBmax.sh: Extrae la amplitud máxima del archivo de audio.
-
dBmin.sh: Extrae la amplitud mínima del archivo de audio.
-
rms.sh: Extrae la amplitud RMS, una medida de la potencia promedio del audio.
-
leer.py: Lee los datos previamente extraidos y los mando a nuestra plataforma de IoT
-
ejecutable.e: Es el script que ejecuta los scripts en el orden adecuado
- Apaga la Raspberry Pi.
- Conecta la cámara al puerto CSI.
- Asegúrate de que la cinta esté bien conectada, con la parte metálica hacia el conector del puerto.
sudo apt update && sudo apt upgradesudo rebootrpicam-still -o imagen.jpgsudo apt install csh make gcc g++ libx11-dev tcl tkwget https://www.radiance-online.org/software/snapshots/radiance-HEAD.tgz
wget https://www.radiance-online.org/download-install/radiance-source-code/latest-release/rad5R4supp.tar.gzwget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'tar -xvzf radiance-HEAD.tgz
tar -xvzf rad5R4supp.tar.gzcp config.sub ray/src/px/tiff/
cp config.guess ray/src/px/tiff/cd ray/
sudo ./makeall library- Cuando se pregunte "Where do you want the library files [/usr/local/lib/ray]?", puedes presionar
Enterpara aceptar la ruta predeterminada. Luego, cuando te pregunte "Install library files now [n]?", respondey(sí).
Abre el archivo .profile:
nano ~/.profileAgrega las siguientes líneas al final del archivo:
RAYPATH=.:/usr/local/lib/ray
export RAYPATHGuarda y cierra el archivo presionando Ctrl + O, Enter, y luego Ctrl + X.
Ejecuta el siguiente comando:
sudo ./makeall install- Cuando te pregunte "What is your preferred editor [vi]?", puedes simplemente presionar
Enterpara aceptar la opción predeterminada (vi) - Cuando se te pregunte "Where do you want the executables [/usr/local/bin]?", presiona
Enterpara aceptar la ruta predeterminada. - Tras haber presionado
Enterse mostrará la licencia de software de Radiance, presionaqpara salir de la visualización y luego respondey(sí) para aceptar los términos. Selecciona2para Linux cuando se te pregunte por el tipo de sistema. - Cuando se te pregunte "Do you want to change it?", presiona
n(no) para continuar con la configuración predeterminada.
Para asegurarte de que Radiance se haya instalado correctamente, ejecuta:
which radEsto debería devolver la ruta del ejecutable rad si la instalación fue exitosa.
Descarga el software raw2hdr desde aquí (debería descargarse si arrastras el enlace hacia otra pestaña).
- Descomprime el archivo descargado con el siguiente comando, aunque igualmente puedes descomprimirlo sin la necesidad de acudir a la terminal:
tar -xvzf raw2hdr.tgz
- Tras ello se creará la carpeta
raw2hdren tu home con los siguientes archivos ejecutables:- dcraw (Descartar)
- exiftool (Descartar)
- hdrgen (Descartar)
- raw2hdr
- Para que raw2hdr funcione con imágenes DNG, accede al archivo ejecutable
raw2hdry agrega lo siguiente a la configuración del array@exiftags:-ISO -ApertureValue>FNumber -FNumber=2.6 - Finalmente para utilizar los comandos de los programas desde cualquier ubicación, los archivos ejecutables deben encontrarse en
/usr/local/bin/:sudo cp exiftool raw2hdr /usr/local/bin/
Puedes descargar hdrgen desde aquí (al arrastrar el enlace a otra pestaña se inicia la descarga).
- Descomprime el archivo descargado preferentemente sin acudir a la terminal.
- Tras ello se creará la carpeta
hdrgen_AMDRaspianen tu home con los siguientes archivos ejecutables:- hdrcvt
- hdrgen
- Copia los archivos ejecutables hacia
/usr/local/bin/:sudo cp hdrcvt hdrgen /usr/local/bin/
Para instalar dcraw, asegúrate de ejecutar el comando:
sudo apt-get install dcrawPara descargar exiftool, ejecuta la siguiente línea:
wget https://exiftool.org/Image-ExifTool-12.97.tar.gz- Una vez descargado, descomprime el archivo y accede al directorio:
gzip -dc Image-ExifTool-12.97.tar.gz | tar -xf - cd Image-ExifTool-12.97
- Procede a instalarlo:
perl Makefile.PL sudo make install
Finalmente, necesitas descargar una biblioteca de fuentes para poder visualizar las imágenes:
sudo apt-get install xfonts*sudo apt-get purge xfonts-75dpi xfonts-100dpiPara visualizar alguna imagen formato .hdr generada tras haber ejecutado el script createHDR.sh, es necesario instalar la biblioteca imagemagick:
sudo apt-get install imagemagickAhora ejecuta el siguiente comando:
display /home/ruta/del/archivo/nombre.hdr* * * * * /home/pi/DTHIS/codigo/ejecutable.e >> /home/pi/DTHIS/codigo/errores_e.log 2>&1
* * * * * /bin/bash -c 'source /home/pi/DTHIS/venvs/dthis/bin/activate && /home/pi/DTHIS/venvs/dthis/bin/python3 /home/pi/DTHIS/codigo/SCD30.py' >> /home/pi/DTHIS/codigo/SCD30.log 2>&1
*/2 * * * * /bin/bash -c 'source /home/pi/DTHIS/venvs/dthis/bin/activate && /home/pi/DTHIS/venvs/dthis/bin/python3 /home/pi/DTHIS/codigo/leer.py' >> /home/pi/DTHIS/codigo/errores_py.log 2>&1
*/30 * * * * /home/pi/DTHIS/codigo/createHDR.sh >> /home/pi/DTHIS/createHDR.log 2>&1

