Página principal
Registrador valores meteorológicos
Parte II
Parte Informática

En la primera parte del proyecto http://seta43.duckdns.org/2026/misensor/senmio.html nos quedamos en el receptor RF , que recibe los datos de temperatura, humedad y presión.
Estos datos son enviados a la Raspberry Pi por el puerto serie a través del USB.
Ahora nos toca tratar los datos para representarlos en la página WEB y mostrarlos en una gráfica.

Partimos de que ya tenemos un servidor WEB instalado en nuestra raspberry , en nuestro caso he instalado Debian 9 con el servidor nginx.
Para más información podéis visitar   http://seta43.duckdns.org/2026/servpi.html .
La versión de Raspberry que utilizo es una de las primeras con solo 512 Mb, por lo cual arranco en el modo consola, de esta forma irá más fluido.

Existe dos programas que se deben ejecutar, el programa SerialSensorWEB.py que se encarga de leer los datos que proceden del puerto serie, y un segundo programa jPlot.py que se ejecuta cada 10 minutos.
Todos los programa y la páginas web creadas se encuentran en el directorio /var/www/html/ztempera .

Empezamos con que el que arranque Linux con un usuario (seta) determinado en modo consola.
--------------EDITAMOS------------------------------------
nano /etc/systemd/system/getty@tty1.ser

Añadir:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin seta  --noclear %I $TERM

Una vez arrancado en modo  consola el usuario seta debemos ejecutar el programa tarea4.sh , este es un script que lanza
SerialSensorWEB.py .

-----------Añadir a  .bashrc  ....................

cd  /var/www/html/ztempera/
./tarea4.sh



Vemos cuando se reinicia o arranca la raspberry se inicia una consola ejecutando
SerialSensorWEB.py .

Automáticamente escanea los puertos serie y si encuentra la placa llamada SENSORTOTAL6 , empieza a procesar los datos recibidos.

Todos los datos recibidos los archiva cada minuto en un fichero con el nombre Temp2026_10_02.csv , donde 2026 sería el año, 10 el mes, y 2 es el día. Además cada 2 minutos se crea y actualiza la página WEB. La página creada se llama index.html con los datos actualizados de temperatura, humedad y presión.


Ahora nos toca crear los gráficos de temperatura, humedad y presión.
Anteriormente ya lo había realizado en http://seta43.duckdns.org/webgra.html utilizando la librería
matplotlib en python.
Esta librería crea un fichero de dibujo png con la gráfica de datos proporcionados.
El problema de está librería es que en la raspberry tarda hasta 3 minutos, en un ordenador normal lo hace en 1 segundo.
Creo que es debido al uso o no uso de la FPU, pero eso es especulación mía. El uso de esta librería no es viable en esta rasberry.

La otra forma es utilizar JavaScript y utilizar la librería http://www.jqplot.com/ . De esta forma la realización y los cálculos los hace en el navegador del usuario.
Anteriormente ya lo había realizado en http://seta43.duckdns.org/jsplot.html .
Para crear la página WEB  de gráficos se debe ejecutar el programa xgratem.sh , este script lanza el programa jPlot.py cada 10 minutos.
Para ejecutar un programa cada 10 minutos debemos desde un terminal del usuario seta ejecutar:
crontab -e  .

Editaremos de la siguiente forma:

  10 * * * * /var/www/html/ztempera/xgratem.sh


El programa crea con los datos almacenados en el fichero 
Temp2026_10_02.csv , la página WEB llamada index3.html , que hace uso de JavaScript para generar los gráficos.


Programas y ficheros

Este proyecto me obligó a repasar muchos proyectos anteriores, y a recordar la programación en python y
JavaScript que lo tenía algo olvidado.
Es satisfactorio ver en directo la temperatura exterior y las gráficas, como un extra de mi página WEB.
Para ver la temperatura en Palencia  (España) - http://seta43.duckdns.org/ztempera/index.html


Saludos.
Juan Galaz



Bibliografía:

http://seta43.duckdns.org/ard433.html
http://seta43.duckdns.org/termot.html
http://seta43.duckdns.org/temt3.html