[1wire] Pour ce qui veulent logger leurs températures

OneWire, TéléInfo, logs et enregistrements
Répondre
paka23
Actif
Actif
Messages : 13
Enregistré le : jeu. oct. 08, 2009 2:06 pm

[1wire] Pour ce qui veulent logger leurs températures

Message par paka23 »

Bonsoir a tous.
Cherchant à logger les températures issues de capteurs DS18B20 afin de pouvoir ensuite les exploiter facilement sous forme de graphique pour optimiser le chauffage de mon futur logement, je n'avais pas vraiment trouvé de logiciel ou script répondant vraiment à mes attentes.

Je souhaitais que mes différentes valeurs soient stockées dans une base de données de type Mysql afin de permettre une exploitation facile de celle ci à partir d'un serveur web. 2 logiciels sous windows permettent de faire cette opération : logtemp (http://www.mrsoft.fi/ohj01en.htm) ou Msure (http://www.msure.se). Mon choix c'est tournée vers logtemp qui présente une interface graphique simple et claire même si dans le fond il est moins poussé que Msure.

Je me retrouvais donc avec une table Mysql remplie des mesures prise par mes capteurs (1 prise de température toutes les 5 minutes) mais je n'ai rien trouvé me permettant de faire générer facilement les graphiques à partir d'une page web.

Je ne suis pas un pro de la programmation web mais j'ai quand même écrit quelques lignes de code afin de répondre à mon besoin. Le code est surement pas optimisé, la mise en page est nulle, il y a encore bien des choses à faire (à commencer par permettre de donner un nom aux capteurs) mais ça fonctionne est je partage ici mon travaille avec vous.

Voici une copie d'écran du résultat :

Image

Vous pouvez aussi allé voir le script en action sur mon serveur : http://home.paka23.com

Pour ceux qui sont intéressé, vous pouvez le télécharger au lien suivant : http://dl.free.fr/gULqxWika
Il vous suffira de le mettre en place sur votre serveur web, d'éditer le fichier config.php qui se trouve dans le répertoire includes afin d'y définir les paramètres de votre base de données.

Si certain le souhaite je ferais un petit tutoriel vidéo afin de vous expliquer de façon détaillé comment mettre en place ce système.

Bonne soirée à tous
slicks
Très assidu
Très assidu
Messages : 176
Enregistré le : jeu. janv. 12, 2006 8:00 pm

Message par slicks »

Salut.
Logtemp, tu le fais tourner sous Linux ou sous wxp ?
Je vais essayer de me monter un pc dedié, mais vu que cela sera de la récup de matos indus, ça ne sera pas une bête de course, sous Linux ça sera peut-être mieux...
A+
paka23
Actif
Actif
Messages : 13
Enregistré le : jeu. oct. 08, 2009 2:06 pm

Message par paka23 »

Logtemp est un logiciel qui fonctionne uniquement sous windows. Il y a bien des solutions offrant les même possibilités sous linux mais elles sont bien moins simple à mettre en place d'ou mon choix.

Pour ce qui est des performances du pc me servant pour le 1-wire, apache, php, mysql, c'est un VIA C3 (800Mhz) épaulé de 256Mo de ram. Celui ci tourne sous un custom XP SP3 et ca va très bien :)

Voilou voilou
Avatar du membre
givais
Resp. Section
Resp. Section
Messages : 2614
Enregistré le : lun. nov. 20, 2006 11:36 am
Localisation : Rhone-Alpes

Re: [1wire] Pour ce qui veulent logger leurs températures

Message par givais »

paka23 a écrit :Je ne suis pas un pro de la programmation web
Et ben j'imagine ce que ça pourrait être si tu l'étais :lol: ... J'avoue que je suis impressionné et complètement perdu de ce que j'ai vu sur la video.
Tu emploies malheuresuement des termes qui ne me sont pas bien familiés (apache, mysql...) mais le résultat m'intéresse beaucoup.

Tu ne veux pas nous faire un kit matériel et logiciel ? :lol: :lol:
Mon installation PV : c'est ICI
Mon installation PAC A/O : c'est ICI
paka23
Actif
Actif
Messages : 13
Enregistré le : jeu. oct. 08, 2009 2:06 pm

Message par paka23 »

Salut givais.

J'ai pourtant essayé de faire au plus simple mais je pouvais pas allé trop loin non plus. 21 minutes de vidéo c'est déjà long a regarder je suppose. Enfin je vais essayer de clarifier les points que tu soulèves.

Tout d'abord Apache : Apache est un logiciel libre qui sert de base à de nombreux serveurs web. (fin 2008, 72% des serveurs que tu visitais quotidiennement sur internet étaient basés sur apache).

Php : Apache est "très bête". Il se contente de faire transiter des fichiers sur le protocole http (ca doit te dire quelque chose http... ^^). Lorsque l'on se connecte à un site internet, le serveur (apache ou autre) nous envoie des images, du son, ect ... Mais surtout, un document au format HTML qui explique en fait à ton navigateur (firefox, internet exploreur, ect ...) comment mettre en page le site, quels textes afficher, où placer telle ou telle image, ect ... Il y a 10 ans, on codait directement en html ce qui présentait l'inconvénient de ne proposer que des pages internet dites statiques. puisque le code html était directement écrit sur le serveur. Aujourd'hui grâce à des langages comme php, c'est le serveur qui va générer le code html en fonction de variables. Hummm, je comprends que même si j'essaie de vulgariser au max ça reste quand même très technique mais je vois pas comment expliquer plus simplement. En gros grâce à php ton serveur apache devient capable de gérer des informations et de générer le code html (la page web) en fonction de celles ci : la page web devient dynamique.

Mysql : c'est un fait un gestionnaire libre de base de données parmi les plus utilisé au monde. Pour commencer quesqu'une base de données ? Lorsque l'on fait un tableau sur excel (ou équivalent libre) contenant une colonne A - Nom, B -Prénom, C - Age avec ces même colonnes remplis de noms, prénoms et ages : on à alors devant les yeux une base de données. Mysql c'est comme excel. On peut avoir une base de données nommée assos avec une table nommées membres contenant les colonnes Nom, Prénom et Age. Si j'arrête mon explication ici tu vas me dire : Alors ça sert a rien mysql puisque l'on peut faire la même chose sur excel ? Et bien si, mysql nous propose entre autre des fonctions poussés pour faire des recherches dans ces bases de données et ça c'est très utile. De plus, mysql s'interface très bien avec php ce qui permet alors à notre serveur apache de générer des pages web contenant des valeurs (numériques, alphanumériques, ect...) provenant de notre base de données.

Voilou voilou ...

En espérant que ceci t'éclairera sur le rôle de chaque composant mis en oeuvre pour mon petit truc...

Qu'entends tu par kit logiciel ?
jld82
Scotché au forum
Scotché au forum
Messages : 1570
Enregistré le : lun. sept. 08, 2008 9:01 am
Localisation : Tarn et Garonne

Message par jld82 »

Bonjour
Mysql : c'est plus compliqué qu'excel mais aussi plus rapide.
Création d'une base de données relationnelle contenant plusieurs tables d'objets (table des noms , table des prénoms , table des ...) et des tables de liens (toutes les personnes ayant un même nom verront lors de leur création de nouveaux prénoms s'enrichir d'un lien supplémentaire entre la table des nom et la table des prénoms ainsi la table des noms ne contient QU'UNE fois le NOM.

Lorsqu'il y a un grand volume de données un tableau excel sera nettement plus long pour effectuer les recherches ; avec SQL et les tables de la base de données la recherche est plus DIRECTE et donc plus rapide(si elle est correctement posée afin d'éviter une recherche globale).Par exemple donnez-moi toutes les personnes portant le même prénom ADELINE afin que je leur envoie un message pour leur fête.

Tous les moteurs de recherche comme Google (mots clés) ou Facebook(my friends) sont basées sur ce principe, mais aussi dans l'industrie (gestion des produits finis, de leur nomenclature, des commandes, mise en fabrication , livraison , facturation ....).

J'espère ne vous pas avoir fait mal à la tête avec ce complément d'infos au post précédent

Par contre pour le HARDWARE et plus particulièrement les capteurs DS18B20 comment connecter plusieurs capteurs à l'ordinateur via USB1/USB2 ou RS232 (faut-il ajouter du matériel). Schéma et liste de matériel ?
Comment charger les mesures vers un fichier excel de façon automatique?
A+
Maison 1980 110m2, EDF 9kw J/N Tri. , PAC air-eau 2008 Technibel PHR11-tri + régul. K60D066Z + ballon mélange 150l, relève FOD sur rad. fonte surdim. (33°/-5°) .
Avatar du membre
babar
Resp. Section
Resp. Section
Messages : 3235
Enregistré le : jeu. févr. 15, 2007 1:25 pm
Localisation : Brest
Contact :

Message par babar »

On va pas commencer à économiser l'énergie sinon les écolo vont se frotter les mains. (H.Simpson)
paka23
Actif
Actif
Messages : 13
Enregistré le : jeu. oct. 08, 2009 2:06 pm

Message par paka23 »

Salut Jld82.

Effectivement Mysql permet de faire bien plus de chose que ce que j'ai pu raconter plus haut m'enfin je voulais pas en dire trop donc je me suis arrête au fonction que j'utilise pour mon script : la recherche dans une table.

Pour ce qui est du matériel nécessaire, le lien donné par babar te fera faire le tour de la question. Comme tu le verras il faut effectivement un adaptateur (qui peut être série ou usb) pour connecter des composants 1-wire à ton ordinateur. Il est question dans le lien d'adaptateur passif fait maison mais d'après ce que j'ai lu à divers endroits ce ci se trouve peu fiable sur de long bus... Pour ce qui est de l'adaptateur actif fait maison, vu la taille des composants il faut vraiment être équipé pour le réaliser...

Pour ce qui est des capteurs, il y a possibilité de commander gratuitement des échantillons sur le site de maxim (le fabriquant du bus 1-wire). Je te recommande de lire le post suivant qui explique comment procéder : http://www.touteladomotique.com/forum/v ... .php?t=786

Et pour finir le câblage. Il faut savoir que le 1-wire n'a de 1 fil que le nom. En fait il faut 3 fils à l'origine. 1 GND, 1 data, 1 +5V. Après certains composants propose un mode dit parasite. En reliant la broche GND et +5V du composant, on n'a plus besoin que de deux fils : le GND et le Data. C'est pas super tout ça ^^ Pour ma part je n'utilise pas de cable blindé comme le préconise le site d'iTow mais seulement une paire tirée d'un cable réseau décortiqué. En lieu et place des Y ce sont de bon vieux dominos... Après il faut voir qu'une installation de ce type est bien plus sensible aux perturbations électromagnétiques et nuire a la stabilité du réseau 1 wire (impossibilité de prendre des mesures de temps en temps, ect ...). Enfin je n'ai pas ce problème mais il peut se poser notament sur les long réseau disposant de nombreux capteurs... Pour améliorer la stabilité on peut alors soit tout passer en cable blindé, remettre le +5v des capteurs (ils deviennent plus stable qu'en mode parasite) ou mettre en place des hubs 1-wire (en vente dans le commerce ou à la porté de tout bon bidouilleur).


Je penses avoir fait le tour ....
Bonne lecture à tous...
jld82
Scotché au forum
Scotché au forum
Messages : 1570
Enregistré le : lun. sept. 08, 2008 9:01 am
Localisation : Tarn et Garonne

Message par jld82 »

Bonsoir à vous deux pour les infos
Alors si j'ai bien compris on part avec un ou n capteurs 1-wire (DS18B20 ou autres) puis on les câble avec des RJ11 mâles à sertir sur du câble plat 4 fils de téléphonie ou câble 2 paires éthernet+dominos (2"GND":bleu clair + 1 "data" + 1"+5v") et des Y RJ11 femelles suivant le lien de Babar.

Ce montage en parallèle est connecté sur un adaptateur DS9097U pour RJ11->RS232 ou un adaptateur DS9490R pour RJ11-> USB1

Sur l'ordinateur le driver TMEX (a télécharger) communique avec cet adaptateur et charge les données soit dans un fichier excel ou dans une base de données.Je suppose que chaque capteur à une adresse (l'équivalent d'une adresse MAC sur éthernet) au vu de ta requête SQL et que l'on n'a pas en s'en préoccuper car dans le flot de données.

J'ai entendu parler de Apache et de html sur Unix mais pas de php car en retraite depuis 6 ans je suis déconnecté (c'est le cas de le dire).

Il me restera donc à découvrir (avec l'aide de mon neveu qui est maintenant plus au courant que moi en informatique) la création d'un site web sur mon PC et de voir tes scripts et tes requêtes SQL que l'on voit sur ta copie d'écran mozilla.

Je vois donc avec lui s'il le sent puis je ressortirai mon fer à souder et mon vieux PC de 2002(cpu amd-duron-800mhz, 256k de ram sous window ME ou sous XP???) non connecté au réseau externe PTT (si possible ou alors sur réseau local éthernet: un hub a investir).
Il n'est jamais trop tard pour s'y mettre ou remettre :wink:
J'espère que j'ai compris, si quelque chose m'a échappé faites le moi savoir.

Merci encore et A+
Maison 1980 110m2, EDF 9kw J/N Tri. , PAC air-eau 2008 Technibel PHR11-tri + régul. K60D066Z + ballon mélange 150l, relève FOD sur rad. fonte surdim. (33°/-5°) .
paka23
Actif
Actif
Messages : 13
Enregistré le : jeu. oct. 08, 2009 2:06 pm

Message par paka23 »

Salut jld82.

Ralala la retraite. Quel beau mot qui semble si inaccessible. Enfin j'ai un boulo c'est déjà pas mal.

Apache et php fonctionne aussi bien sous windows que sous linux. Ca existé déjà à la fin de ton activité professionnelle mais ca devait juste tendre à se démocratiser (tout passe tellement vite dans ces domaines là).

Pour ce qui est du cablage tu à bien compris. Les paires sont conseillées car plus perméable aux champs électromagnétique. Dans un premier temps tu peux tester avec seulement une paire histoire de voir si ça fonctionne en mode parasite et ainsi faire des économies de cuivre. Les dominos ça fait vraiment bricolo du dimanche mais pour tester l'installation ca va très bien. Pour ma part c'est ce que j'utilise pour le moment mais j'essaierais de faire plus joli dans le futur.

Au niveau des adaptateurs tu es aussi incollable ;) De mémoire, le DS9490R présente l'avantage de proposer un +5V sur la RJ11 (alim venant du port usb du PC) mais je te laisserais t'en assurer en regardant la doc de celui ci.

Le driver va servir seulement "d'interface" entre l'adaptateur et un logiciel tiers (logtemp dans mon cas) qui lui te permettra de récupérer les valeurs soit dans une base de données soit dans un fichier type csv (base de données sous forme de fichier texte dont les valeurs sont facilement importable dans excel) ou encore en XML (qui doit aussi être importable dans excel...). Effectivement chaque capteur dispose d'une adresse unique style MAC (16 caractères en hexa).

Pour ce qui est de ton futur serveur je te conseillerais plutôt un windows xp SP3 pour la stabilité. La mémoire sera peut être un poil légère si tu garde mon script tel qu'il est actuellement mais je suis entrain de regarder pour améliorer tout ca. Tu as effectivement intéré à investir dans un switch (hub intelligent) de tel sorte à pouvoir consulter tes graphique de n'importe quel ordinateur de la maison (voir depuis internet pour bluffer tes amis :p)

En espèrent t'avoir confirmé dans tes choix

++

Benoit
Répondre

Retourner vers « Monitoring des consos et des performances »