Je ne fais que commencer et même si je peux afficher la température via SSH, j'ai du mal à l'afficher sur la petite page Web que j'ai configurée sur mon Pi exécutant Apache2. J'ai suivi cet exemple http://www.raspberrypi.org/phpBB3/viewtopic.php?t=35487&p=310038 qui incluait de l'AJAX et un script dans le répertoire cgi-bin, mais je reçois une erreur en disant cela $ was not defined
et en étant vraiment désemparé avec JavaScript, je n'ai aucune idée de l'endroit où se trouve l'erreur. Je me demande si ce pourrait être le répertoire cgi-bin. Je viens de le créer et je n'ai pas pu trouver d'informations sur si je devais ou non faire quelque chose de spécial pour permettre son utilisation pour les scripts. Quelqu'un peut-il répondre à cette question pour moi? Si cela est pertinent, j'utilise la dernière version de Raspbian.
Finalement, je veux enregistrer les valeurs dans une base de données et en faire un graphique, mais d'abord. :)
La question principale est de savoir comment afficher la température sur ma page Web à partir du capteur interne?
ÉDITER
J'essaierai la première suggestion plus tard ce soir quand je rentrerai à la maison, mais j'ai rapidement mis en route la deuxième (Lenik) qui semble bien fonctionner. J'ai cependant dû faire quelques modifications pour le faire fonctionner. Le script ne créerait pas le fichier rrd, je l'ai donc créé manuellement en utilisant la syntaxe qu'il a utilisée dans le script. J'ai également modifié la UPDATE
commande car elle n'aimait pas la valeur qui lui était transmise. J'ai dû supprimer la width
partie de la GRAPH
commande car elle a également généré une erreur. Ensuite, à la fin, j'ai ajouté un cp
afin qu'il place le fichier dans le répertoire images du site Web, puis ajouté*/5 * * * * /home/root/scripts/temprec.sh >/dev/null 2>&1
à mon crontab donc il fonctionne toutes les 5 minutes. Cela semble fonctionner, mais avec seulement 4 échantillons jusqu'à présent, il est difficile de le savoir avec certitude. Dans environ une heure, j'aurai une meilleure idée si mes modifications ont fonctionné.
#!/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
la source
Il y a quelque temps, j'ai écrit un article " Raspberry Pi :: Monitoring CPU temperature with RRDTOOL " sur le même problème. Ma solution consiste à recevoir la température du CPU, à l'enregistrer dans la base de données à tour de rôle et à créer un joli graphique sous forme de fichier .PNG, qui est assez facile à mettre sur la page Web - il suffit de le copier où vous le souhaitez. J'espère que vous le trouverez utile.
la source
Je pense que vous pouvez récupérer et diffuser les données de votre RPi et les intégrer dans le navigateur avec ce package sur GitHub .
Voici à quoi ressemble un graphique: https://plot.ly/~jensb89/12/ .
Une fois que vous avez généré votre graphique, vous pouvez l'intégrer comme un iframe avec cet extrait:
Vous voudrez échanger votre URL dans le code. Faites-moi savoir si vous avez des problèmes ou je peux vous aider avec quoi que ce soit. De plus, je fais partie de Plotly, qui a été utilisé dans ce package.
Voici à quoi ça ressemble:
la source
Les autres réponses ici sont fantastiques. Ma solution, en utilisant un script shell et PHP est la suivante:
Veuillez noter que j'ai fait cela sur Raspbian Wheezy, donc l'emplacement de tout mon code est
/var/www/
. Si vous utilisez Jessie, elle devra être dans '/ var / www / html /'Permet tout d'abord de basculer l'utilisateur vers root (super utilisateur):
sudo su
(et entrez votre mot de passe)arriver au bon endroit:
cd /var/www/
(Asthmatique)Créez maintenant un nouveau répertoire:
mkdir scripts
Donnez-lui les bons attributs:
chmod 755 scripts/
Maintenant, créez un nouveau fichier dedans, appelons-le 'temp.sh'
nano scripts/temp.sh
Entrez le code suivant:
Ctrl+X
-Y
-Enter
pour enregistrer et quitter.Définissez maintenant les attributs de ce fichier:
chmod 755 scripts/temp.sh
Créez maintenant un nouveau répertoire
mkdir include/
Définissez ses attributs
chmod 744 include/
OK, maintenant exécutons le script et testons sa sortie:
cd scripts/
./temp.sh
cd ../include/
cat temp.txt
Il devrait afficher quelque chose comme ceci:
Impressionnant! Maintenant, faisons fonctionner cela une fois par minute. Nous allons entrer une nouvelle ligne dans le Crontab.
crontab -e
Collez la ligne ci-dessous en bas du fichier
Ctrl+X
-Y
-Enter
pour enregistrer et quitter.Maintenant, nous devons modifier la page sur laquelle les températures seront affichées. Nous allons donc éditer le fichier PHP:
cd /var/www/
nano index.php
Et insérez ceci dans le
<div>
de votre choix:Cela suffira. Rechargez simplement votre page et vous devriez voir les temps CPU et GPU affichés.
Bonus supplémentaire: j'aime aussi forcer la page à se charger à chaque fois (empêcher le navigateur de mettre la température en cache) Pour ce faire, j'inclus également le PHP suivant au tout début du fichier:
Remarques: La raison pour laquelle cela fonctionne pour moi est qu'elle est affichée sur un "tableau de bord" d'entreprise, une page sur un téléviseur dans mon bureau qui montre tout un tas de graphiques (état du serveur, numéros d'utilisateur, moyennes de charge, etc., etc., etc). J'ai configuré le pi pour être en mode kiosque (navigateur plein écran au démarrage à l'aide de Iceweasel) et afficher une seule page qui défile automatiquement vers le bas. Il faut environ 4 à 5 minutes pour y arriver par le haut, puis se recharge automatiquement une fois qu'il atteint le fond. Il se recharge donc de temps en temps, sans passer par la nécessité de mettre à jour l'affichage de la température à l'aide d'une technologie côté client. Je l'ai également configuré pour être visualisé en utilisant différents CSS / JS basés sur l'agent utilisateur (pas de défilement, pas d'heure actuelle dans le coin, pas de rechargement en bas), mais sur cette version, je '
la source