Mostrando entradas con la etiqueta temperatura. Mostrar todas las entradas
Mostrando entradas con la etiqueta temperatura. Mostrar todas las entradas

lunes, 23 de noviembre de 2015

Medida, registro, gráfica de temperatura de 4 tinas de teñido utilizando el Raspberry Pi (RPI)


Hardware y Conexiones

-RPI: Micro SD  y fuente de 5V.
-Sensor DS18B20. Cables, resistencia 4.7k.  El sensor tiene 3 señales. Rojo a 3.3V. Negro a Tierra (GND). Amarillo al GPIO4 (Pin #7 en RPI B+). Conectar resistencia entre rojo y amarillo. Se conectan múltiples sensores a los mismos pines, una resistencia es suficiente.
- Conexión a red, cable o inalámbrico (WiFi).
-Pantalla 7'' 5V con conexión HDMI
Teclado: Se adaptó un antiguo teclado de tablet


Software.
-Raspbian y actualizar el sistema.
-Python
-Habilitar SSH
-Apache2 como servidor web
-mysql como base de datos.
-phpmyadmin para crear y administrar base de datos
-php para acceder, escribir y leer en la base de datos
- Node.js para graficar.
-Descagar librerías D3.JS y ponerlas en servidor local.




Habilitar los sensores de temperatura
Abrir el terminal

  • sudo nano /boot/config.txt
    Añadir la siguiente línea:  dtoverlay=w1-gpio
  • sudo reboot 
  • sudo modprobe w1-gpio
  • sudo modprobe w1-therm

Para probar los sensores ir a: sys/bus/w1/devices  digitar ls para que aparezca el nombre del sensor. Ingresar al sensor con cd 28-NNNNNNNN (Reemplazar NNN.. por nombre del sensor. Luego enviar la orden cat w1_slave

Programación.

Se ha utilizado un archivo python para registrar mediciones en la base de datos y uno php para visualizar y plotear las temperaturas.
El archivo python debe ponerse en el CRON para que el sistema automáticamente haga las mediciones según  indiquemos.

-Descargar archivo python para escribir data en base de datos  
-Descargar archivo php para visualizar y plotear datos (El archivo está en txt. descargarlo y cambiarle la extensión a php)

Manejo de base de datos (BD) con phpmyadmin
Crear dos usuarios: Uno con permisos para escribir en la BD y otro usuario para leer la BD
Crear 2 tablas. Una con 3 columnas: dtg, temperatura y sensor_id. La otra tabla con 2 columnas: sensor_id y tinas, esta tabla la hemos creado para poder asignarle el nombre que querramos a cada sensor DS18B20





Vista de temperatura vía explorador web. Se ha utilizado php, html y D3.JS



Algunas problemas ocurridos: marca temperatuas negativas o muy altas, algunos sensores dejan de ser reconocidos. Estas dos cosas aun no tienen solucion pero no persisten.


Comentarios
-El RPI actualizará fecha y hora desde la internet. Si no se tiene, o no se quiere depender de una conexión a internet se debe instalar un módulo de reloj, puede ser el DS3231.


-Visualizar los datos de temperatura desde la línea de comandos, o ingresando a phpmyadmin no es difícil, pero tampoco es practico. Alojaremos el archivo php en la carpeta del servidor web (var/www/). El acceso será desde cualquier equipo conectado a la red interna a través de IP(aa.bb.cc.dd/temperatura.php

Costo aproximado
RPI = $35
Sensores Ds18b20 x4 = $12
Tarjeta microSD 8gb = $7
Cargador 5V x 2A x 2 salidas = $3
Adaptador USB wifi = $ 9
Pantalla LCD 7" = $25
Cable HDMI = $3




Referencias

https://www.raspberrypi.org/documentation/linux/usage/cron.md