Les Températures Intérieurs et extérieurs DS18B20 Les Températures Intérieurs et extérieurs DS18B20
Menu

Les Températures Intérieurs et extérieurs DS18B20

2 février 2015 - DashScreen DashBoard, Domotique
Les Températures Intérieurs et extérieurs DS18B20

Et voilà le cœur de mon DashScreen l’affichage des températures extérieurs et intérieurs.

Cette partie est décomposée en deux cadres – Les informations de température intérieur (mon salon) – Les informations de température extérieur.

Ensuite chaque cadre est composé de trois choses : La température du moment, une courbe de température sur 24h et les mini maxi des tris dernier jours.

Le matériel utilisé :

Pour l’intérieur, rien de plus simple un capteur de température DS18B20 Le lien Ebay . J’ai pris un capteur étanche car il y a un fil de un mettre comme mon Raspberry est dans un meuble avec pas mal de matériel à l’intérieur je voulais une température réelle de ma pièce.

Pour l’extérieur, c’est un peu plus compliqué mais je vais vous faire une page d’explication.

Bien sur, afficher la température de moment c’est simple (ou presque) mais afficher la température sur 24H et les mini/maxi sur trois jours cela demande un enregistrement de la température.

Donc je suis passé par une base de donnée. J’ai une page PHP lancée toutes les 5 mn par un CRON qui fait le boulot et même un peu plus. Elle enregistre la température intérieur toutes les 5 mn, la température extérieur toutes les 10 mn, toutes les heures elle envoie ces températures plus la température du PI sur une application pour mon téléphone portable Pushover. 🙂

Et ensuite je récupère ces données pour faire les courbes et les mini maxi sur les trois derniers jours.

Et voilà

IMG_2814

  • Yannick

    Bonjour,

    Ayant déjà repéré le site de magdiblog, j’aime bien le coté tableau noir de votre réalisation. Je cherche des infos actuellement avant de passer à la réalisation.
    Une question par contre concernant cette partie et notamment comment avez-vous généré les graphiques de la partie température. Ce qui m’intéresse, c’est surtout le style.

    Merci d’avance

    Yannick

  • michelgard

    Bonjour Yannick,

    Merci pour le retour sur mon DashScreen.

    Pour la partie tableau noir j’utilise deux choses – un fond style tableau et une écriture style craie.

    Pour la partie graphique des températures. Il faut d’abord mémoriser les données de température dans une base de données. Moi c’est une tache CRON qui lance un fichier PHP toutes les 5 minutes pour la température intérieur et extérieur. Ensuite je lance une fonction PHP qui récupère les données de la base de donnée pour la journée et crée l’image que j’affiche sur le tableau. Cela toutes les 15 minutes.

    Voilà j’espère vous avoir aidé n’hésitez pas à poser des questions pour l’avancer de votre projet et de le faire partager.

    L’ensemble des fichiers sur ce lien : https://github.com/Michelgard/Dash_Screen

  • Yannick

    merci pour la réponse, j’avais bien compris l’aspect design du dashscreen, seul le graphique des températures m’interrogeait
    Un grand merci pour les fichiers sources, la réponse était dedans

    while ($Tab_Temp = $reponse->fetch())
    {
    $y=$Tab_Temp[‘Temp_Temp_Salon’] * 5;
    $tr = $Tab_Temp[‘Temp_Temp_Salon’];
    $y=200-$y;
    imagefilledrectangle($img, $x-2, $y-1, $x+2, $y+1, $noir);

    if (($x == 146) | ($x == 266) | ($x == 386) | ($x == 506)){
    ImageLine($img,$x,$y-10,$x,$y+15,$noir);
    ImageLine($img,$x+1,$y-10,$x+1,$y+15,$noir);

    $pluscinq = time() – ($t * 60 * 60);
    $titre= date (« H:i »,$pluscinq);
    $t = $t – 5;
    imagettftext($img, 10, 0, $x -14, $y-15, $noir, $font, $titre);

    $titre = $tr . « ‘C »;
    imagettftext($img, 10, 0, $x -14, $y+28, $noir, $font, $titre);
    }

    $x=$x+4;
    }
    $reponse->closeCursor();
    //ligne y
    ImageLine($img,48,40,48,$hauteur,$noir);
    // ligne et temp
    for ($i = 175; $i > 25; ($i=$i-25)) {
    ImageLine($img,40,$i,48,$i,$noir);

    $titre = ((200 – $i)/5) . « ‘C »;
    imagettftext($img, 10, 0, 10, $i+5, $noir, $font, $titre);
    }

    // Envoyons le code de l’image
    header(« Content-type: image/png »);
    $chemin = »/var/www/graphtemp.png »;
    imagePNG($img, $chemin);

    $html =  »;
    $html .=  »;
    return $html;

    }

  • Laurent

    Bonjour, j’ai un petit souci sur l’affichage, j’ai pas les dégrée qui s’affiche juste le 28° EXT

    • Bonjour Laurent,
      Vous pouvez m’en dire plus. Il vous manque les dixièmes de degrés ?

      • Laurent

        Bonjour, j’ai trouver cella venez du fichier Eraser.ttf renommer en eraser.ttf.
        j’ai remarquer que certain fichier étais dans /var/www/ ou d’autre dans /var/www/html/ donc j’ai tout mis dans /var/www/html/

  • Laurent

    Bon passons avec des sonde BMP180 et DHT22