Stap 8: Het volledige programma (lezen van de A/D en winkel resultaten in de database)
importeren van smbus SMBus
van Tkinter importeren *
importeren van math
importeren
datetime importeren
importeren van sqlite3
Conn = sqlite3.connect('database03.db')
c = conn.cursor()
keyword1 = "ch01"
keyword2 = "ch02"
keyword3 = "ch03"
keyword4 = "ch04"
JK = 0
resolutie = 3
bus = SMBus(1)
analogDev = [0x68, 0x69, 0x6a, 0x6b] #address van A/D chip
Chan = [0x18, 0x38, 0x58, 0x78] #channels gebruikt op chip
resultaten =]
def dataEntry():
c.Execute ("INSERT INTO adresult1 (ID, datumstempel, keyword1, ch1, ch2, ch3, ch4) VALUES (?,?,?,?,?,?,?)" \
, (jk,date,keyword1,results[0],results[1],results[2],results[3]))
c.Execute ("INSERT INTO adresult2 (ID, datumstempel, keyword2, ch1, ch2, ch3, ch4) VALUES (?,?,?,?,?,?,?)" \
, (jk,date,keyword1,results[4],results[5],results[6],results[7]))
c.Execute ("INSERT INTO adresult3 (ID, datumstempel, keyword3, ch1, ch2, ch3, ch4) VALUES (?,?,?,?,?,?,?)" \
, (jk,date,keyword1,results[8],results[9],results[10],results[11]))
c.Execute ("INSERT INTO adresult4 (ID, datum, keyword4, ch1, ch2, ch3, ch4) VALUES (?,?,?,?,?,?,?)" \
, (jk,date,keyword1,results[12],results[13],results[14],results[15]))
Conn.commit()
def getadreading(address,adcConfig):
adcreading = bus.read_i2c_block_data(address,adcConfig)
h = adcreading [0]
l = adcreading [1]
s = adcreading [2]
terwijl (s & 128):
adcreading = bus.read_i2c_block_data(address,adcConfig)
h = adcreading [0]
l = adcreading [1]
s = adcreading [2]
t = (h << 8) | l
t = t / 16384.0
retourneren van t
def readValues():
voor ik in bereik (0,len(analogDev)):
voor b in bereik (0,len(chan)):
k = getadreading(analogDev[i],chan[b])
Results.Append (ronde (k, resolutie))
datum str(datetime.datetime.fromtimestamp(int(time.time()) =) .strftime ('%Y-%m -%d H: % M: %S'))
readValues()
h = 15 + (len(results)) * 20
w = 215 +(resolution * 10)
s = 22
venster = Tk()
canvas doek = (venster, breedte = w, hoogte = h, bg = "grey")
canvas.Pack()
voor b in bereik (0, len(results)):
canvas.create_text (80, s+(b*20), tekst = 'Analoge lezen')
canvas.create_text (150, s+(b*20), tekst = b)
canvas.create_text (175, s+(b*20), tekst = "=")
Window.update()
resultaten =]
terwijl juist:
nu = time.time()
datum str(datetime.datetime.fromtimestamp(int(time.time()) =) .strftime ('%Y-%m -%d H: % M: %S'))
readValues()
voor ik in bereik (0,len(results)):
canvas.create_rectangle (180, (s+(i*20)-10), w,s+((i*20)+10), overzicht = "grey", opvulling = "grey")
canvas.create_text (195, s+(i*20), anker = W, tekst = results[i])
Window.update()
dataEntry()
JK = jk + 1
resultaten =]
endTime = time.time()
time.Sleep (5 - (eindtijd - nu))