как удалить кортеж из sqlite, чтобы я мог использовать его как float в python? - PullRequest
0 голосов
/ 08 июля 2020

Я пытаюсь использовать одно чтение данных из файла sqlite3, он возвращается мне в следующем формате (25.5,). В следующей части скрипта я хочу иметь возможность запускать вывод вывода GPIO, чтобы включить реле, когда температура упадет ниже определенной точки, и снова выключить, когда она поднимется выше другой точки. мой код выглядит следующим образом:

import RPi.GPIO as GPIO
import time
import sqlite3
GPIO.setmode(GPIO.BCM) 
GPIO.setwarnings(False)
#GPIO.setup(18, GPIO.OUT)
# Set up all variables #
temp_min = 25.375
temp_max = 25.5


#############
# Main Loop #
#############
while True:
    
    def display_5sec_data():
        conn = sqlite3.connect('ds18b20.db')
        c = conn.cursor()
        c.execute("SELECT (display1) FROM aquarium2 ORDER BY rowid DESC LIMIT 1")
        data1 = c.fetchone()
        conn.close()
        #return data1    
        print(data1)


    Display = display_temp()

    data1= (display_5sec_data())     
    if data1 <= 25.25 : # if temp is less or equal to 25 deg
        print("heater on")
        #GPIO.output(18, GPIO.HIGH)
    if data1 >= 25.80 :
        print("heater off")
        #GPIO.output(18, GPIO.LOW)
    

    time.sleep(10)
    
    display_5sec_data()

любая помощь будет отличной.

1 Ответ

0 голосов
/ 10 июля 2020

Sorted - это легкое исправление, просто хотелось бы поиграть с ним еще немного. мне просто нужно добавить float к оператору if, вот код.

if float (data1 [0])> = 25.60:

print("heater off")
bus.write_pin(11, 0)
bus.write_pin(10, 0)
time.sleep(120)
...