Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Projet Sonde 1-Wire / Graphiques ?

Thu Feb 20, 2014 3:48 pm

Bonjour à tous,

Nouveau sur le site, je vais vous exposer mon problème.

En ce moment je travaille sur un projet. Celui-ci a pour but de relever des températures via des capteurs de chez Dallas, le DS18S20.

Au nombre de 3, ils relèvent des températures tous les quarts d'heure, et ces mesures sont enregistrées dans une base de données MySQL avec plusieurs tables : tempext, tempint, et temp. ( Pour température extérieure et intérieure ) Ils sont reliés à une RaspBerry Pi Modèle B, tout fonctionne très bien jusqu'ici..

Maintenant je voudrai faire des graphiques permettant d'établir un profil thermique d'une habitation par exemple, sur une page Web codée en PHP, reprenant automatiquement les valeurs dans la base de données MySQL, mais je n'ai aucune idée de comment faire, ou quel template utiliser pour les graphiques ...

Si quelques personnes pourraient m'aider je serai le plus heureux LOL.

Merci d'avance

Guizi55


Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 9:42 am

Un peu du même genre mais avec des capteurs de température, la base de données est déjà créée, et tout fonctionne. Maintenant je veux juste créer une page Web en php qui permette de visualiser les profils thermiques d'habitation par exemple.
http://i.imgur.com/cI7gC.png Un peu comme ça

Merci de votre aide

nikotinux
Posts: 705
Joined: Sat Feb 02, 2013 2:11 am

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 10:15 am

Le script apres les lignes
# Do the graphics
# Way too simple approach to do 4 .png's
# to include in webpages
génère les images du graphe, il suffit de les inclure dans une page web, meme statique.
C'est le script qui interroge la base sql, mets a jour les données du graphe et les images.
Je suppose que tes relevés de temperatures sont fait par une tache cron .. tu completes cette tache avec ce script adapté a ton besoin et les graphismes sont mis a jour dans la foulée. Pas besoin de programmer en PHP une page web pour ce job.

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 10:37 am

Oui c'est une tache cron, je ne vois pas comment effectuer la réalisation graphique ?

ernesto
Posts: 136
Joined: Thu Jul 19, 2012 10:09 am

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 2:03 pm

Bonjour, voila un exemple http://www.steneor.com/teleinfo/
en utilisant les librairies dispo ici http://www.highcharts.com/

L'exemple utilise 4 capteurs ds18b20 les T° sont stockées toutes les heures dans une même table ayant cette structure:
timestamp date time t1 t2 t3 t4
1338998402 2012-06-06 18:00:02 26.69 26.44 26.31 26.31

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 2:24 pm

Avez vous le code aussi ? :/ Merci

ernesto
Posts: 136
Joined: Thu Jul 19, 2012 10:09 am

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 2:58 pm

Voila le code ( non professionnel :) )
http://upload.legtux.org/?id=4246925931

Il y a les fichiers suivants :
1)config.include.php à modifier avec vos paramètres perso de BD.
2)digitemp.php :à modifier pour récupérer les valeurs de T° en BD.
3)le répertoire js : contient les diverses librairies jquery - Highcharts + etc (elles sont récupérables sur le net dans des versions plus récentes).

nikotinux
Posts: 705
Joined: Sat Feb 02, 2013 2:11 am

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 8:38 pm

le code pour afficher une image avec un rafraîchissement tous les 30secondes :

Code: Select all

<html>
  <head>
    <title></title>
    <meta http-equiv="refresh" content="30">
    <meta http-equiv="pragma" content="no-cache">
    <style></style>
  </head>
  <body>
  <img src="graphe.png" alt="Graphe">
  </body>
</html>
bon c'est sur ca claque moins au niveau des dependances ...

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Feb 21, 2014 8:44 pm

Je vous remercie bien ! Je testerai ça lundi ou mardi quand je travaillerai sur ma p'tite RaspBerry :)
Si j'ai des soucis je re posterai sinon j'indiquerai le post comme résolu :)

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Mar 21, 2014 1:37 pm

Bonjour je reposte car je n'arrive toujours pas à faire mon code PHP.. Décidemment après maintes reprises je n'arrive pas à afficher un seul graphique, et parfois je ne comprend pas les codes que certains m'ont envoyés :/ merci de votre aide

nikotinux
Posts: 705
Joined: Sat Feb 02, 2013 2:11 am

Re: Projet Sonde 1-Wire / Graphiques ?

Sat Mar 22, 2014 12:23 pm

heu ... ya du PHP dans le code que j'ai cité ?

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Mon Mar 24, 2014 11:46 am

Non mais il faut que j'en fasse pour faire les graphes non ? Avec jpgraph je n'y arrive pas.. Prendre les valeurs de la base de données

nikotinux
Posts: 705
Joined: Sat Feb 02, 2013 2:11 am

Re: Projet Sonde 1-Wire / Graphiques ?

Mon Mar 24, 2014 12:07 pm

NON c'est RRDtools qui genere les graphes !! apres tu les affiches ! s'tout

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Fri Mar 28, 2014 7:38 am

J'utilise Highchart, je vous montre mon code.. Mais j'ai du php, je veux que le graphique soit accessible.

Mon script de connexion à la BDD :

<?php
$server ="localhost";
$user="root";
$pass="chaudiere";
$db="temperature";
mysql_connect($server,$user,$pass) or die ("Erreur SQL : ".mysql_error() );
mysql_select_db($db) or die ("Erreur SQL : ".mysql_error() );



Et mon code qui devrait me reprendre mes valeurs de la BDD et faire le graphe grâce à Highchart..

<html>
<head>
<?php
// appel du script de connexion
require("mysql_connect.php");
// On r�cup�re le timestamp du dernier enregistrement, ici DateHeure
$sql="select max(DateHeure) from exterieur";
$query=mysql_query($sql);
$list=mysql_fetch_array($query);
// On d�termine le stop et le start de fa�on � r�cup�rer dans la prochaine requ�te que les donn�es des derni�res xx heures
$stop=$list[0];
$start=$stop-(86400*2);
//86400=24 heures donc 86400*2=48 heures
$sql = "SELECT DateHeure, Mesure FROM exterieur where DateHeure >= '$start' and DateHeure <= '$stop' ORDER BY 1";
$query=mysql_query($sql);
$i=0;
while ($list = mysql_fetch_assoc($query)) {
if (date("I",time())==0) {
$time[$i]=($list['DateHeure']+3600)*1000;
}
else {
$time[$i]=($list['DateHeure']+7200)*1000;
}
$Mesure[$i]=$list['Mesure']*1;
$i++;
}

?>

<script type="text/javascript">
eval(<?php echo "'var time = ".json_encode($time)."'" ?>);
eval(<?php echo "'var Mesure = ".json_encode($Mesure)."'" ?>);
</script>

<script type="text/javascript" src="/var/www/Php/jquery.min.js"></script>
<script type="text/javascript" src="/var/www/Php/highchart3/js/highcharts.js"></script>
<script type="text/javascript" src="/var/www/Php/highchart3/js/themes/dark-blue.js"></script>
<script type="text/javascript" src="/var/www/Php/highchart3/js/modules/exporting.js"></script>

<script type="text/javascript">
function comArr(unitsArray) {
var outarr = [];
for (var i = 0; i < time.length; i++) {
outarr = [time, unitsArray];
}
return outarr;
}

$(function () {
var chart;
$(document).ready(function() {
var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
Highcharts.setOptions({
lang: {
months: ["Janvier "," F�vrier "," Mars "," Avril "," Mai "," Juin "," Juillet "," Ao�t ","
Septembre "," Octobre "," Novembre "," D�cembre"],
weekdays: ["Dim "," Lun "," Mar "," Mer "," Jeu "," Ven "," Sam"],
shortMonths: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil','Ao�t', 'Sept', 'Oct
', 'Nov', 'D�c'],
decimalPoint: ',',
resetZoom: 'Reset zoom',
resetZoomTitle: 'Reset zoom � 1:1',
downloadPNG: "T�l�charger au format PNG image",
downloadJPEG: "T�l�charger au format JPEG image",
downloadPDF: "T�l�charger au format PDF document",
downloadSVG: "T�l�charger au format SVG vector image",
exportButtonTitle: "Exporter image ou document",
printChart: "Imprimer le graphique",
loading: "Chargement..."
}
});

chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
zoomType: 'x',
type: 'spline',
marginRight: 10,
marginBottom: 60,
plotBorderColor: '#346691',
plotBorderWidth: 1,
},

title: {
text: 'Temp�ratures des derni�res 48 heures',
x: -20
},

subtitle: {
text: 'Source: RaspBerryPi Guiot Hennenfent',
x: -20
},

xAxis: {
type: 'datetime',
startOnTick: false,
},

yAxis: {
title: {
text: 'Temperature (�C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#FF0000'
}]
},

tooltip: {
crosshairs:[true],
borderColor: '#4b85b7',
shared: true,
backgroundColor: '#edf1c8',
formatter: function() {
var s = '<b>'+ Highcharts.dateFormat('%e %B � %H:%M', this.x) +'</b>';
$.each(this.points, function(i, point) {
var unit = {
'Temp�rature': ' �C',
}[this.point.series.name];
s = s + '<br>' + '<span style="color:'+ point.series.color +'">' + point.series.name + '
</span> : '
+Highcharts.numberFormat(point.y,1,","," ") + unit;
});
return s;
},
},
plotOptions: {
series: {
marker: {
enabled: false
}
}
},

series: [
{
name: 'Temp�rature',
zIndex: 1,
color: '#ff0000',
data: comArr(Mesure)
},

});
});
});
</script>
</head>
<body>
<center>Graphique de variation de temperature</center>
<div id="container" style="width: 550px; height: 300px; margin: 0 auto"></div>
</body>
</html>


totoharibo
Posts: 4320
Joined: Thu Jan 24, 2013 8:43 am

Re: Projet Sonde 1-Wire / Graphiques ?

Sun Mar 30, 2014 7:53 pm

erreur 404 : la page n'existe pas


chris57100
Posts: 522
Joined: Wed Sep 12, 2012 7:23 pm
Location: Thionville
Contact: Website

Re: Projet Sonde 1-Wire / Graphiques ?

Tue Apr 01, 2014 6:12 am

Tu as un exemple (avec une base SQlite) ici : http://www.pihomeserver.fr/2013/07/24/s ... rface-web/ pour des sondes sans fil. Le principe est le même pour des D18B20 sur 1-wire
Le code et les instructions sont téléchargeables
Raspberry Pi Home Server : http://www.pihomeserver.fr
Software and electronic tutorials : Samba, Airplay, CUPS, Time machine, Nginx, Owncloud, rTorrent, Wordpress, etc.
Full Wi-Fi hotspot installation on a RPi 3 including a captive portal and freeradius management: https://github.com/pihomeserver/Kupiki-Hotspot-Script

Guizi55
Posts: 12
Joined: Thu Feb 20, 2014 12:47 pm

Re: Projet Sonde 1-Wire / Graphiques ?

Tue Apr 08, 2014 6:43 am

Mon projet fonctionne, plus que quelques mamailles, je vous remercie pour votre aide :)

Return to “Français”