Linux influxdb

Fermé
helplinux - Modifié le 3 mars 2021 à 13:12
mamiemando Messages postés 33284 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 septembre 2024 - 3 mars 2021 à 13:16
Bonjour,

J'ai écrit un programme en python qui me renvoie une température (liée à un potentiomètre). Quand la température est supérieure à 19.5 degrés, la climatisation se met en marche et donc la led rouge s'allume. Quand la température est inférieure à 18.5 degrés le chauffage se met en marche et donc la led bleu s'allume.
Je cherche maintenant à récupérer la valeur de ma température et l'état de ma climatisation et de mon chauffage (0 ou 1) sur ma bdd influxdb mais je ne sais pas quelle commande effectuer.

Voici mon code Python:

import time
import sqlite3
from influxdb import InfluxDBClient

def bdd():
    connexion = sqlite3 .connect("thermostat.db") 

def lecture_pot():
    pot = open("/sys/bus/iio/devices/iio:device0/in_voltage3_raw","r")
    temp=15.0+(int(pot.read())*10/4096.0) # ne pas oublier de convertir en int ce qu'on lit dans pot 
    pot.close()
    print(temp)
    return temp

def led_rouge(v):
    f = open("/sys/class/gpio/gpio50/value","w")
    if v==0:
        s="0"
    else:
        s="1"
    f.write(s)
    f.close()

def led_vert(v):
    f = open("/sys/class/gpio/gpio60/value","w")
    if v==0:
        s="0"
    else:
        s="1"
    f.write(s)
    f.close()

def led_bleue(v):
    f = open("/sys/class/gpio/gpio3/value","w")
    if v==0:
        s="0"
    else:
        s="1"
    f.write(s)
    f.close()

while 1:
    time.sleep(1) #lit toutes les secondes
    t=lecture_pot()
    temp_c=19
    if (t<(temp_c-0.5)):
        led_rouge(1) # on allume le chauffage
        led_vert(0)
        led_bleue(0)
    elif (t>(temp_c+0.5)):
        led_rouge(0) # on allume la clim
        led_vert(0)
        led_bleue(1)
    else :
        led_rouge(0) # on eteint les deux
        led_vert(1)
        led_bleue(0)
A voir également:

1 réponse

mamiemando Messages postés 33284 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 septembre 2024 7 787
Modifié le 3 mars 2021 à 13:17
Bonjour,

Quelques remarques en vrac :
  • Pense à utiliser les balises de code (4e bouton) pour mettre en forme le code.
  • En python, pour ouvrir un fichier de manière plus moderne, on écrirait de nos jours plutôt :


with open("file", "w") as f:
  f.write("something")
  • Dans ton message j'ai l'impression que l'explication sur les LEDs et le code sont contradictoire. Le code semble "logique" (lumière rouge quand il faut chauffer).
  • Pour la question sur influxdb, le mieux est de regarder ce tutoriel qui explique comment installer le module python adéquat et comment l'utiliser.
  • Il faudrait clarifier ce que tu veux faire dans cette base (quelle est la donnée à sauver, dans quelle table, etc...) et plus généralement ce que tu cherches à faire grâce à cette base.


Bonne chance
0