Me estoy metiendo en esto y, aunque puedo mostrar la temperatura a través de SSH, estoy teniendo dificultades para mostrarla en la pequeña página web que configuré en mi Pi con Apache2. Seguí este ejemplo http://www.raspberrypi.org/phpBB3/viewtopic.php?t=35487&p=310038 que incluía algo de AJAX y un script en el directorio cgi-bin, pero recibo un error que dice eso $ was not defined
y no tengo ni idea con JavaScript, no tengo idea de dónde radica el error. Me pregunto si podría ser el directorio cgi-bin. Lo acabo de crear y no pude encontrar información sobre si tenía que hacer algo especial para permitir su uso para los scripts. ¿Alguien puede responder esa pregunta por mí? Si es relevante, estoy ejecutando la última versión de Raspbian.
Eventualmente, quiero registrar los valores en una base de datos y graficar desde ella, pero primero lo primero. :)
La pregunta principal es ¿cómo puedo mostrar la temperatura en mi página web desde el sensor interno?
EDITAR
Intentaré la primera sugerencia más tarde esta noche cuando llegue a casa, pero rápidamente obtuve la segunda (Lenik) que parece estar funcionando bien. Sin embargo, tuve que hacer algunas ediciones para que funcione. El script no creó el archivo rrd, así que lo creé manualmente usando la sintaxis que utilizó en el script. También modifiqué el UPDATE
comando ya que no le gustaba el valor que se le estaba pasando. Tuve que eliminar la width
parte del GRAPH
comando porque arrojó un error también. Luego, al final, agregué un cp
archivo para que coloque el archivo en el directorio de imágenes del sitio web y luego agregué*/5 * * * * /home/root/scripts/temprec.sh >/dev/null 2>&1
a mi crontab para que se ejecute cada 5 minutos. Parece estar funcionando, pero con solo 4 muestras hasta ahora es difícil saberlo con certeza. Dentro de una hora más o menos tendré una mejor idea si mis ediciones han funcionado.
#!/bin/bash
#
# update .rrd database with CPU temperature
#
# $Id: update_cputemp 275 2013-05-16 05:20:56Z lenik $
# Thanks to Lenik @ Raspberrypi.stackexchange.com.
cd /path/to/scripts
# read the temperature and convert .59234. into .59.234. (degrees celsius)
TEMPERATURE=`cat /sys/class/thermal/thermal_zone0/temp`
TEMPERATURE=`echo -n ${TEMPERATURE:0:2}; echo -n .; echo -n ${TEMPERATURE:2}`
/usr/bin/rrdtool update cputemp.rrd N:$TEMPERATURE
/usr/bin/rrdtool graph cputemp.png DEF:temp=cputemp.rrd:cputemp:AVERAGE LINE2:temp#00FF00
cp /path/to/scripts/cputemp.png /path/to/website/images
fuente
Hace algún tiempo escribí un artículo " Raspberry Pi :: Monitoreando la temperatura de la CPU con RRDTOOL " sobre el mismo problema. Mi solución incluye recibir la temperatura de la CPU, guardarla en la base de datos round-robin y crear un buen gráfico como archivo .PNG, que es bastante fácil de poner en la página web, simplemente cópielo donde quiera. Espero que lo encuentres útil.
fuente
Creo que podría obtener y transmitir los datos de su RPi e incrustarlos en el navegador con este paquete en GitHub .
Así es como se ve un gráfico: https://plot.ly/~jensb89/12/ .
Una vez que haya generado su gráfico, puede incrustarlo como un iframe con este fragmento:
Querrá intercambiar su URL en el código. Avíseme si tiene algún problema o puedo ayudarlo con algo. Además, soy parte de Plotly, que se utilizó en este paquete.
Así es como se ve:
fuente
Las otras respuestas aquí son fantásticas. Mi solución, usar un script de shell y PHP es la siguiente:
Tenga en cuenta que hice esto en Raspbian Wheezy, por lo que la ubicación de todo mi código está en
/var/www/
. Si está utilizando Jessie, deberá estar en '/ var / www / html /'En primer lugar, cambiemos de usuario a root (superusuario):
sudo su
(e ingrese su contraseña)llegar a la ubicación correcta:
cd /var/www/
(Ruidoso)Ahora cree un nuevo directorio allí:
mkdir scripts
Dale los atributos correctos:
chmod 755 scripts/
Ahora cree un nuevo archivo en él, llamémoslo 'temp.sh'
nano scripts/temp.sh
Ingrese el siguiente código:
Ctrl+X
-Y
-Enter
para guardar y salir.Ahora configure los atributos de ese archivo:
chmod 755 scripts/temp.sh
Ahora crea un nuevo directorio
mkdir include/
Establecer sus atributos
chmod 744 include/
OK, ahora vamos a ejecutar el script y probar su salida:
cd scripts/
./temp.sh
cd ../include/
cat temp.txt
Debería mostrar algo como esto:
¡Increíble! Ahora, hagamos que se ejecute una vez por minuto. Entraremos en una nueva línea en el Crontab.
crontab -e
Pegue la línea de abajo en la parte inferior del archivo
Ctrl+X
-Y
-Enter
para guardar y salir.Ahora necesitamos editar la página en la que se mostrarán las temperaturas. Así que vamos a editar el archivo PHP:
cd /var/www/
nano index.php
E inserte esto en el
<div>
de su elección:Eso lo hará. Simplemente vuelva a cargar su página y debería ver las temperaturas de CPU y GPU que se muestran.
Bonificación adicional: también me gusta forzar que la página se cargue cada vez (evitar que el navegador almacene en caché la temperatura) Para hacer esto, también incluyo el siguiente PHP al comienzo del archivo:
Notas: La razón por la que esto funciona para mí es que se muestra en el "tablero" de la compañía, una página en un televisor en mi oficina que muestra un montón de gráficos (estado del servidor, números de usuario, promedios de carga, etc., etc. etc) He configurado el pi para que esté en modo Kiosk (navegador de pantalla completa en el arranque usando Iceweasel) y muestro una sola página que se desplaza automáticamente hacia abajo. Tarda entre 4 y 5 minutos en llegar desde la parte superior y luego se recarga automáticamente una vez que toca el fondo. Por lo tanto, se recarga de vez en cuando, evitando la necesidad de actualizar la pantalla de temperatura utilizando una tecnología del lado del cliente. También lo configuré para que se vea usando diferentes CSS / JS basados en el agente de usuario (sin desplazamiento, sin hora actual en la esquina, sin recarga en la parte inferior), pero en esa versión, yo '
fuente