Étape 4: Démarrer l’application
Remplacez le contenu du fichier ifkit.py par cela
crontab -e
Lorsque nous exécutons le script, la valeur des capteurs est lus et par le biais de la fonction insert_to_db les valeurs seront enregistrées dans la base de données.
MAILTO="" */3 * * * * sudo python /home/pi/sensor_logger/ifkit.py
Nous pouvons automatiser le script via crontab, par exemple à sudo mkdir /home/pi/sensor_logger/web il démarre toutes les 3 minutes
sudo nano /home/pi/sensor_logger/web/index.html
et d’ajouter ces lignes à la fin du fichier
MAILTO = "" * / 3 **** <html> <head> <title>Emmeshop tutorial</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script> <script src="http://code.highcharts.com/highcharts.js"></script> <script src="http://code.highcharts.com/modules/exporting.js"></script> <script type="text/javascript" src="data.js" ></script> </head> <body> <div id="chart" style="height: 400px; margin: 0 auto"></div> </body> </html>
Highcharts
Maintenant que les données sont stockées dans la base de données il y a plusieurs façons de les visualiser, ici, nous utilisons les afficher graphiquement Highcharts
Créez un nouveau dossier avec les bonnes permissions
sudo nano /home/pi/sensor_logger/web/values.php
créer un fichier index.html
<?php $con = mysql_connect("localhost","root","raspberry"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("sensor_log", $con); $result = mysql_query("SELECT * FROM `table_sensor_log` WHERE sensor_id=1 ") or die ("Connection error"); while($row = mysql_fetch_array($result)) { echo $row['timestamp'] . "/" . $row['sensor_value']. "/" ; } mysql_close($con); ?>
avec ce contenu
sudo nano /home/pi/sensor_logger/web/data.js
un fichier values.php
$(function() { var x_values = []; var y_values = []; var switch1 = true; $.get('values.php', function(data) { data = data.split('/'); for (var i in data) { if (switch1 == true) { var ts = timeConverter(data[i]); x_values.push(ts); switch1 = false; } else { y_values.push(parseFloat(data[i])); switch1 = true; } } x_values.pop(); $('#chart').highcharts({ chart : { type : 'spline' }, title : { text : 'Datalogger Highcharts Mysql' }, subtitle : { text : 'Source: www.emmeshop.eu' }, xAxis : { title : { text : 'Time' }, categories : x_values }, yAxis : { title : { text : 'Sensor value' }, labels : { formatter : function() { return this.value + ' UM' } } }, tooltip : { crosshairs : true, shared : true, valueSuffix : '' }, plotOptions : { spline : { marker : { radius : 4, lineColor : '#666666', lineWidth : 1 } } }, series : [{ name : 'Sensor Value', data : y_values }] }); }); }); function timeConverter(UNIX_timestamp){ var a = new Date(UNIX_timestamp * 1000); var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds(); var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ; return time; }
avec ce contenu
sudo ln -s /home/pi/sensor_logger/web /var/www/web
et un fichier data.js
avec ce contenu
créer un lien vers le dossier du serveur Web
OK, maintenant nous sommes prêts à lire les valeurs de la sonde.
Il y a les liens pour jquery et Highcharts dans le fichier index.html.
Le fichier value.php se connecte à la base de données et lit les valeurs (dans cet exemple, seuls ces capteur avec id 1).
La data.js les formats de fichiers et de les afficher graphiquement
Ouvrez votre navigateur sur http://raspberry-ip/web vous pouvez voir votre graphique