Partage
  • Partager sur Facebook
  • Partager sur Twitter

Température dans une variable

Capteurs DS18B20 et Raspberry Pi

    21 septembre 2014 à 13:05:03

    Bonjour à tous !

    J'en viens une nouvelle fois à votre aide car je suis perdu !

    J'aimerai récupérer la température de mon capteur DS18B20 et en faire une variable qui s'actualise toutes les 5 secondes. Puis j'aimerai faire un système tel que, si la température est >20, alors la LED verte s'allume et si <20, alors la rouge s'allume. 

    Au niveau des raccordements du capteurs de température, tout est bon: j'arrive à récupérer la température.

    Pour la LED Verte et rouge j'ai fais connecté la LED verte sur le pin 7 et la rouge sur le pin 11 de mon raspberry. Le tout raccordé au GND. 

    Comme je le disais, j'arrive à relever la température mais mes compétences s'arrêtes là. Pour la temperature j'utilise ce code:

    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
       temp_f = temp_c * 9.0 / 5.0 + 32.0
       return temp_c, temp_f
    
    while True:
     print(read_temp())
     time.sleep(5)

    Cela me donne la température toutes les 5 secondes. Maintenant je souhaiterai récuperer cette temperature dans une variable pour ensuite faire fonctionner mon système de LED. Mais je ne sais pas comment m'y prendre.

    Merci par avance de votre aide,

    Lolincolc.

    -
    Edité par Lolincolc 21 septembre 2014 à 14:43:03

    • Partager sur Facebook
    • Partager sur Twitter
      21 septembre 2014 à 14:08:49

      salut,

      si tu as fait un peu de POO tu pourrais faire un truc du style:

      class Thermometre():
          
          def __init__(self):
              self.temperature = None
      
      
          def affiche_temperature(self):
              print("la derniere temperature mesuree est de  ",self.temperature,"  °C ")
      
      mon_thermometre = Thermometre()
      

      ensuite tu fais une boucle qui toutes les 5 secondes execute la méthode mon_thermometre.affiche_temperature()

      Cela t'affichera rien si tu laisse la variable sur None donc tu devras auparavant mesurer une premiere t° ou une mesure défaut (ex 37°C) et l'enregistrer dans mon_thermometre.temperature = 37  par exemple.

      -
      Edité par buffalo974 21 septembre 2014 à 14:09:51

      • Partager sur Facebook
      • Partager sur Twitter

      Température dans une variable

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown