Stap 4: Start de toepassing
Vervang de inhoud van het bestand ifkit.py met dit
crontab -e
Wanneer we het script uitvoert zal de waarde van de sensoren worden gelezen en via de functie insert_to_db de waarden zullen worden opgeslagen in de database.
MAILTO="" */3 * * * * sudo python /home/pi/sensor_logger/ifkit.py
We kunnen het script via crontab, bijvoorbeeld om te automatiseren sudo mkdir /home/pi/sensor_logger/web het start elke 3 minuten
sudo nano /home/pi/sensor_logger/web/index.html
en voeg deze regels toe aan het einde van het bestand
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
Nu dat de gegevens worden opgeslagen in de database er zijn vele manieren om ze te bekijken, hier we Highcharts gebruiken om hen grafisch weergeven
Maak een nieuwe map met de juiste machtigingen
sudo nano /home/pi/sensor_logger/web/values.php
Maak een bestand 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); ?>
met deze inhoud
sudo nano /home/pi/sensor_logger/web/data.js
een bestand 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; }
met deze inhoud
sudo ln -s /home/pi/sensor_logger/web /var/www/web
en een bestand data.js
met deze inhoud
een koppeling maken naar de map van de webserver
OK, nu zijn we klaar om te lezen van sensor-waardes.
Er zijn de links naar jquery en Highcharts in het index.html bestand.
Het bestand value.php verbonden met de database en leest de waarden (in dit voorbeeld, alleen die sensor met id 1).
De data.js bestandsindelingen en ze grafisch weergeven
Open uw browser op http://raspberry-ip/web kunt u uw grafiek