Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何从sqlite中剥离一个元组,以便在python中将其用作浮点?_Python 3.x_Sqlite_Raspberry Pi_Gpio - Fatal编程技术网

Python 3.x 如何从sqlite中剥离一个元组,以便在python中将其用作浮点?

Python 3.x 如何从sqlite中剥离一个元组,以便在python中将其用作浮点?,python-3.x,sqlite,raspberry-pi,gpio,Python 3.x,Sqlite,Raspberry Pi,Gpio,我试图使用从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 variab

我试图使用从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()


任何帮助都会很好。

这是一个简单的修复方法,只是希望我能多玩一点。我只需要在if语句中添加float 这是代码

如果floatdata1[0]>=25.60:

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

是的,那是一个元组。你读过它们是什么吗?如何访问它们包含的值?jonrsharpe我一直在研究这个问题,但到目前为止,它对我来说没有意义。因此,为什么我在这里问了一个问题,我知道它是一个元组,我查过如何将它转换成一个float,这样我就可以使用数据了,但到目前为止,还没有找到一个能帮助我的例子。我猜在将近60岁时开始学习编码有点晚了。谢谢jonrsharpe,我已经看过了,我可以看到我需要去掉第一个元素,所以我尝试在我的if语句中使用data1[0],它已经停止了错误消息,但仍然没有对if语句执行操作。