Lykaa
Posts: 3
Joined: Wed Mar 19, 2014 8:35 am

Stocker température capteur DS18B20 dans base de donnée

Wed Mar 19, 2014 3:22 pm

Bonjour,

Ayant succombé aux possibilités du Raspberry :D , je cherche à faire l'acquisition et la visualisation de plusieurs capteurs DS18B20 sur mon Raspberry, stocker les données dans une base de donnée et les afficher sous la forme d'un graphe sur une page web en localhost.

Pour l'instant j'en suis qu'à la phase de test avec un capteur, si je me débrouille bien, je compte augmenter le nombre de mes capteurs. :P

Actuellement j'arrive a lire la température de mon capteur, j'ai même un code python qui fait l'acquisition de la température

Code: Select all

    import os
    import glob
    import time
     
    os.system('modprobe w1-gpio')
    os.system('modprobe w1-therm')
     
    base_dir = '/sys/bus/w1/devices/'
    device_folder = glob.glob(base_dir + '28*')[0]
    device_file = device_folder + '/w1_slave'
     
    def read_temp_raw():
             f = open(device_file, 'r')
             lines = f.readlines()
             f.close()
             return lines
     
def read_temp():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
            time.sleep(0.2)
            lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
           temp_string = lines[1][equals_pos+2:]
           temp_c = float(temp_string) / 1000.0
           return temp_c
    
while True:
    print(read_temp())	
    time.sleep(1)
Mon soucis est que je sais absolument pas comment continuer mon projet, j'ai installé mySql, myphpadmin et tout ce qu'il faut pour générer une base de donnée et un serveur, mais je ne sais pas comment insérer les valeurs acquise dans un tableau de données pour ensuite faire une jolie interface graphique (graphe avec pleiiiiiiiiins de courbes :D )


J'avoue me perdre complétement dans les tutos que je trouve sur le net. Je me débrouille légèrement en programmation, mais globalement je tâtonne pas mal :(

Si quelqu'un à un conseil à me donner, ou une marche à suivre je suis preneur.

Merci d'avance de vos réponses :)

Cordialement
Lykaa


jelopo
Posts: 1524
Joined: Wed Oct 17, 2012 7:53 pm

Re: Stocker température capteur DS18B20 dans base de donnée

Wed Mar 19, 2014 10:13 pm

Bonjour,

Je suis tombé par hasard sur cette page : http://www.domolio.fr/category/1-wire
C'est pas un peu ça que tu veux ;)

A+

User avatar
Xav
Posts: 85
Joined: Thu May 09, 2013 7:52 am
Location: France
Contact: Website

Re: Stocker température capteur DS18B20 dans base de donnée

Wed Mar 19, 2014 10:20 pm

As-tu jeter un oeil à RPi-Monitor?
Tous les infos sont là: http://rpi-experiences.blogspot.fr/

Xav

danjperron
Posts: 3432
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Stocker température capteur DS18B20 dans base de donnée

Wed Mar 19, 2014 11:09 pm

Je suis en train de faire un DIY sur un système de terrarium. Cela avance tarnquillement

tu peux jeter un coup d'un sur ce post qui link sur mon projet google.

http://www.raspberrypi.org/phpBB3/viewt ... 48#p502948


J'ai le code pour les capteurs DS18B20 et celui pour le DHT22 aussi. Je suis en train de fignoler la routine pour le contrôle de chauffage avec les sensors.

J'enregistre à chaque 5 minutes les valeurs des capteurs qui sont stocké dans un fichier texte. Mais en plus j'utilise rrdtool pour accumuler les données sur un graphique avec HighCharts.


Daniel
Last edited by danjperron on Thu Mar 20, 2014 11:10 am, edited 1 time in total.

Lykaa
Posts: 3
Joined: Wed Mar 19, 2014 8:35 am

Re: Stocker température capteur DS18B20 dans base de donnée

Thu Mar 20, 2014 7:38 am

Bonjour!

Merci de vos réponses rapides ! :o
sujet déjà abordé comme la par exemple

viewtopic.php?f=65&t=70060
Je suis allé sur ce lien très intéressant et après lecture, quelque chose me chiffonne, le tuto utilise les applications "digitemp" et "RRDtool", je comprends l'utilité de RRDtool après recherche, mais pas celle de digitemp, car je suis déjà capable de lire les données. Est-ce quand même indispensable pour mon projet ?
Bonjour,

Je suis tombé par hasard sur cette page : http://www.domolio.fr/category/1-wire

C'est pas un peu ça que tu veux ;)

A+
Génial ! j'ai fait énormément de recherches mais j'ai dû passer devant celle là ! Je suis en train de tout lire, il y a énormément d'informations dessus :)
As-tu jeter un oeil à RPi-Monitor?

Tous les infos sont là: http://rpi-experiences.blogspot.fr/

Xav
C'est grosso modo ce que je souhaite faire, mais avec mes propres capteurs, ce système est vraiment sympa, je pense l'implanter dans mon projet final :)
Je suis en train de faire un DIY sur un système de terrarium. Cela avance tarnquillement

tu peux jeter un coup d'un sur ce post qui link sur mon projet google.

http://www.raspberrypi.org/phpBB3/viewt ... 65&t=72540

J'ai le code pour les capteurs DS18B20 et celui pour le DHT22 aussi. Je suis en train de fignoler la routine pour le contrôle de chauffage avec les sensors.

J'enregistre à chaque 5 minutes les valeurs des capteurs qui sont stocké dans un fichier texte. Mais en plus j'utilise rrdtool pour accumuler les données sur un graphique avec HighCharts.

Daniel
Je sais pas si c'est moi qui suis pas doué, mais le lien m'amène a mon topic :D. Ton projet est semble être très intéressant, et ton principe d'acquisition des données est le même que le résultat que je souhaite. J'espère pouvoir regarder ton projet plus en détail!

EDIT : J'ai finalement trouvé un lien de ton projet! Je vais essayer de reproduire ta démarche d'acquisition de DS18B20 :)

Je vous remercie en tout cas pour vos réponses, je vais tout d'abord bien lire vos infos et espérer pouvoir bien avancer ;)

Cordialement,
Lykaa

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

Re: Stocker température capteur DS18B20 dans base de donnée

Thu Mar 20, 2014 10:53 pm

grosso modo pour poursuivre ton projet avec RRDtool

1) après l’acquisition des données et stockage dans la BD (ca peut toujours servir) tu alimentes RRDtool avec les données et tu génères les graphiques

2) tu écrits le code de la superbe page web qui va les afficher (te creuse pas les méninges RRDtool a déjà fait le boulot ...)

3) comme tu codes en python tu cherches comment faire un serveur web pour mettre a dispo ta page ( ca peut etre baclé en 20 lignes, voire une seule)

4) profit

danjperron
Posts: 3432
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Stocker température capteur DS18B20 dans base de donnée

Thu Mar 20, 2014 10:59 pm


Lykaa
Posts: 3
Joined: Wed Mar 19, 2014 8:35 am

Re: Stocker température capteur DS18B20 dans base de donnée

Fri Mar 21, 2014 11:58 am

grosso modo pour poursuivre ton projet avec RRDtool

1) après l’acquisition des données et stockage dans la BD (ca peut toujours servir) tu alimentes RRDtool avec les données et tu génères les graphiques

2) tu écrits le code de la superbe page web qui va les afficher (te creuse pas les méninges RRDtool a déjà fait le boulot ...)

3) comme tu codes en python tu cherches comment faire un serveur web pour mettre a dispo ta page ( ca peut etre baclé en 20 lignes, voire une seule)

4) profit
Merci pour tes infos, RRDtool semble être très abordable d'utilisation, je vais donc utiliser cette solution.
Je commence travailler dessus, je reviens vers vous si jamais je rencontre des soucis :)

Cordialement

Lykaa

danjperron
Posts: 3432
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Stocker température capteur DS18B20 dans base de donnée

Fri Mar 21, 2014 1:18 pm

J'utilise rrdtool aussi dans mon DIY. Cela peut être une bonne référence.

Daniel

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

Re: Stocker température capteur DS18B20 dans base de donnée

Fri Mar 21, 2014 8:35 pm

côté base de données regarde sqlite c'est beaucoup plus léger

vulcain
Posts: 3
Joined: Sun Mar 23, 2014 9:46 pm

Re: Stocker température capteur DS18B20 dans base de donnée

Sun Mar 23, 2014 9:51 pm

Bonsoir à tous,

Si ça peut aider quelqu'un du forum, j'ai monté un projet qui fonctionne chez moi depuis presque un an.
Tout est expliqué ici : http://eyesathome.free.fr dans la rubrique projet.

Dans l'idée, je collecte 3 capteurs de température et un module à ultrason pour surveiller une cuve enfouie.

@ bientôt :D

JumpZero
Posts: 1039
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Stocker température capteur DS18B20 dans base de donnée

Mon Mar 24, 2014 8:38 am

Bjr
rrdtool est effectivement une bonne solution légère
Avec du 1wire tout est ici
http://rosset.org/linux/temperature/howto.html
Voir aussi mon site
http://gcolin.hd.free.fr
J'utilise rrdtool plus owfs
--
Jmp0

vulcain
Posts: 3
Joined: Sun Mar 23, 2014 9:46 pm

Re: Stocker température capteur DS18B20 dans base de donnée

Mon Mar 24, 2014 8:58 am

Bonjour,

JumpZero avec owfs avec vous une limitation du nombre de capteurs comme on peut le rencontrer avec le bus one-wire par défaut du rapsberry pi ? Il existe une limite à 10 capteurs via le bus one-wire (gpio4).

Merci

JumpZero
Posts: 1039
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Stocker température capteur DS18B20 dans base de donnée

Mon Mar 24, 2014 11:38 am

Bonsoir,
Jamais entendu parlé de limitation a 10 capteurs.
Le bus 1wire n'a pas autant que je sache de limite théorique au nombres de devices, mais bien sur en pratique la longueur du bus et le nombre de devices ne sont pas infini, les signaux s'écrouleront a un moment ou a un autre. Et la vitesse... Déjà que 1wire est lent.
Chaque device 1wire dispose d'un identifiant 64 bits unique, que ce soit un capteur de température de tension ou autre, c'est ce qui permet de les identifier sur le bus et au maitre de les adresser.
Si tu connecte tes DS18B20 directement a un GPIO c'est que tu fais du 'bit banging' c'est dire que c'est le software qui va se charger de toute la mise en forme des signaux nécessaires au protocole 1wire. Donc plus de temps cpu., pas grave mais si ton CPU fais d'autre choses tu préfèreras utiliser un bus master, qui le déchargera de cette tache. Il en existe USB, série et i2c. Le plus simple pour le raspberry pi est le i2c mais si tu veux pas souder et est prêt a dépenser une vingtaine d'euro l'USB fera ton affaire.
Va sur owfs.org chapitre bus master
Owfs.org te diras tout sur le 1wire
Tout ce qui vaut pour GNU/Linux 1wire est valide pour le Raspberry pi puisque c'est une linux box
Un bon tuto pour le bit banging
http://learn.adafruit.com/adafruits-ras ... g/overview
Owfs supporte aussi le bit banging
Un bus master c'est mieux ;-) j'aime mieux
--
Jmp0
1wire user depuis 2009

vulcain
Posts: 3
Joined: Sun Mar 23, 2014 9:46 pm

Re: Stocker température capteur DS18B20 dans base de donnée

Mon Mar 24, 2014 1:38 pm

Bonjour,

Je parlais de la limitation à 10 capteurs fixés par le module w1-gpio. Bien entendu, je vous rejoins sur les limitations théoriques du bus 1-wire.

[Extrait]
http://rants.dyer.com.hk/rpi/1wire.html : To be honest, I haven't tested this, I cut and modified it from a much longer script that stores the values in a MySQL database and does other stuff. However, if I didn't mess it up, it should read all (up to 10, that's the limit for the w1-gpio module) of the DS18S20 devices attached and print the temperature from each one. You can also see how to expand this for other 1-wire devices, such as the DS2438 battery monitor (which I am using to read from a humidity sensor, but that is another story).

Je regarderai owf ce soir. :)

User avatar
viskor
Posts: 85
Joined: Sun Nov 24, 2013 5:47 pm
Location: belgique
Contact: Website

Re: Stocker température capteur DS18B20 dans base de donnée

Fri Apr 04, 2014 8:58 am

j'ai un tuto qui pourrait t'interesser => http://viskor.skynetblogs.be/archive/20 ... 01320.html pour afficher avec le hightchart les graphiques en ladaptant un peu sa pourait egalement convenir a ton projet
----------------------------------
Mes tutos pour le raspberry pi et autres projets : Pimp My Pi => http://viskor.skynetblogs.be/
--- Quelques tutos : NAS/DLNA/JD/JD2/Torrent/VNC ---

zak31770
Posts: 1
Joined: Tue Mar 21, 2017 6:23 pm

Re: Stocker température capteur DS18B20 dans base de donnée

Tue Mar 21, 2017 7:40 pm

danjperron wrote:Je suis en train de faire un DIY sur un système de terrarium. Cela avance tarnquillement

tu peux jeter un coup d'un sur ce post qui link sur mon projet google.

http://www.raspberrypi.org/phpBB3/viewt ... 48#p502948


J'ai le code pour les capteurs DS18B20 et celui pour le DHT22 aussi. Je suis en train de fignoler la routine pour le contrôle de chauffage avec les sensors.

J'enregistre à chaque 5 minutes les valeurs des capteurs qui sont stocké dans un fichier texte. Mais en plus j'utilise rrdtool pour accumuler les données sur un graphique avec HighCharts.


Daniel
Salut danjperron j'ai lu que tu avait stocker tes information de capteur sur un fichier txt .
es que tu pourrai me dire comment tu a fait stp

Return to “Français”