• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
in python lettura lunghi con x tempi temperatura ds18b20

tempi lunghi x lettura temperatura con ds18b20 in python
#11
Per capire dove sbagli, mettici gli script.. (a proposito, sono nella stessa directory?)
Per quanto riguarda lo scrivere in Python in modo che abbia un funzionamento asincrono, significa imparare a programmare a livello avanzato, non intendere lo script solo come "una lista di cose da fare in sequenza", ma scoprire come far fare più cose contemporaneamente all'interno del programma.. qui ad esempio viene introdotto l'argomento.
Chiaramente, in questo caso specifico, fai prima con uno degli altri metodi proposti, ma puoi usarlo come scusa per approfondire le tue conoscenze, se ne hai voglia. Credo RaspberryPi serva anche a questo.
Risposta
#12
(28/08/2018, 20:56)Zzed Ha scritto: Per capire dove sbagli, mettici gli script.. (a proposito, sono nella stessa directory?)
Per quanto riguarda lo scrivere in Python in modo che abbia un funzionamento asincrono, significa imparare a programmare a livello avanzato, non intendere lo script solo come "una lista di cose da fare in sequenza", ma scoprire come far fare più cose contemporaneamente all'interno del programma.. qui ad esempio viene introdotto l'argomento.
Chiaramente, in questo caso specifico, fai prima con uno degli altri metodi proposti, ma puoi usarlo come scusa per approfondire le tue conoscenze, se ne hai voglia. Credo RaspberryPi serva anche a questo.

Grazie per il link, lo studierò molto volentieri nel tempo libero.
Intanto ti allego il semplice codice dello script di lettura temp (per adesso prevedevo semplicemente un print, ovviamente in seguito avrei dovuto scrivere su un file che sarebbe stato poi letto dallo script principale)

Codice:
from w1thermsensor import W1ThermSensor
sensor=W1ThermSensor()
while True:
   temp= sensor.get_temperature()
   temp=temp*1000
   temp=int(temp/100)
   temp=temp/10
   print("temp %s" % temp)
   time.sleep(10)

mentre questo sotto è il codice, un pò lunghetto, dello script principale. Ovviamente i due script sono nella stessa directory.
grazie mille
paolo


Codice:
#*********************** COLORI ***********************
red=255,0,0
green=0,255,0
blue=0,0,255
moon=0,162,232
white=255,255,255
black=0,0,0
yellow=255,255,0
magenta=255,0,255
navy=0,0,128
grey=128,128,128
orange=255,165,0
cyan=0,255,255
back_txt_color=black
pesca=255,187,0





import pygame
import time
from pygame.locals import *
import os
from time import sleep
from w1thermsensor import W1ThermSensor
sensor=W1ThermSensor()
os.system('date -s "08 feb 2018 20:20:20"')
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(32, GPIO.OUT) #day
GPIO.setup(33, GPIO.OUT) #moon
GPIO.setup(35, GPIO.OUT) #heater
GPIO.setup(36, GPIO.OUT) #co2
GPIO.setup(37, GPIO.OUT) #o2
GPIO.setup(38, GPIO.OUT) #food
#pin 40 (gpio21)=1wire pin (W1)

d=GPIO.PWM(32,100)
m=GPIO.PWM(33,100)
d.start(0)
m.start(0)
GPIO.output(35, GPIO.HIGH)
GPIO.output(36, GPIO.HIGH)
GPIO.output(37, GPIO.HIGH)
GPIO.output(38, GPIO.HIGH)
#GPIO.output(40, GPIO.HIGH)


pygame.init ()
screen = pygame.display.set_mode ((320,480),pygame.NOFRAME)

lcd_rotate=1
display_rotate=1


#************************** inizializza *********************************
ec=422
ph=6.8

pwm1_a=0
pwm2_a=255


in_file = open("data.txt","r")
eeprom = in_file.read()
in_file.close()
print(eeprom)

auto1=bool(int(eeprom[38]))
auto2=bool(int(eeprom[39]))
auto3=bool(int(eeprom[40]))
auto4=bool(int(eeprom[41]))
auto5=bool(int(eeprom[42]))
on1=bool(int(eeprom[47]))
on2=bool(int(eeprom[48]))
on3=bool(int(eeprom[49]))
on4=bool(int(eeprom[50]))
on5=bool(int(eeprom[51]))
pwm1_m=int(eeprom[83]+eeprom[84]+eeprom[85])
pwm2_m=int(eeprom[119]+eeprom[120]+eeprom[121])
hh_day_on=int(eeprom[59]+eeprom[60]);min_day_on=int(eeprom[61]+eeprom[62])
hh_day_off=int(eeprom[71]+eeprom[72]);min_day_off=int(eeprom[73]+eeprom[74])
hh_moon_on=int(eeprom[94]+eeprom[95]);min_moon_on=int(eeprom[96]+eeprom[97])
hh_moon_off=int(eeprom[107]+eeprom[108]);min_moon_off=int(eeprom[109]+eeprom[110])
hh_co2_on=int(eeprom[129]+eeprom[130]);min_co2_on=int(eeprom[131]+eeprom[132])
hh_co2_off=int(eeprom[141]+eeprom[142]);min_co2_off=int(eeprom[143]+eeprom[144])
hh_o2_on=int(eeprom[151]+eeprom[152]);min_o2_on=int(eeprom[153]+eeprom[154])
hh_o2_off=int(eeprom[162]+eeprom[163]);min_o2_off=int(eeprom[164]+eeprom[165])
hh_food1_on=int(eeprom[173]+eeprom[174]);min_food1_on=int(eeprom[175]+eeprom[176])
hh_food2_on=int(eeprom[184]+eeprom[185]);min_food2_on=int(eeprom[186]+eeprom[187])
hh_food3_on=int(eeprom[195]+eeprom[196]);min_food3_on=int(eeprom[197]+eeprom[198])
hh_food4_on=int(eeprom[206]+eeprom[207]);min_food4_on=int(eeprom[208]+eeprom[209])
food1_pass=int(eeprom[221])
food2_pass=int(eeprom[222])
food3_pass=int(eeprom[223])
food4_pass=int(eeprom[224])



Tx=float(eeprom[226]+eeprom[227]+eeprom[228]+eeprom[229]);

x_date=0;y_date=20
x_time=125;y_time=20
x_ph=244;y_ph=20

x_temp=0;y_temp=70
x_heater=125;y_heater=70
x_ec=220;y_ec=70

y_day=120
y_day_bar=175
y_moon=200
y_moon_bar=255
y_co2=280
y_o2=345
y_food=410
hbar=20

x_switch_onoff=200
x_led_onoff=270

cont=0

auto_1 = pygame.image.load('auto135.png')
auto_2 = pygame.image.load('auto235.png')
on=pygame.image.load('on.png')
off=pygame.image.load('off.png')

led_on=pygame.image.load('led_on20.png')
led_off=pygame.image.load('led_off20.png')
led_on8= pygame.image.load('led_on8.png')  
led_off8= pygame.image.load('led_off8.png')
setup = pygame.image.load('setup.png')
taste_add=pygame.image.load('+taste.png')
taste_sub=pygame.image.load('-taste.png')
save35=pygame.image.load('save35.png')
date35 = pygame.image.load('date40.png')
time35 = pygame.image.load('time40.png')
ec35 = pygame.image.load('ec40.png')
temp35 = pygame.image.load('temp40.png')
heater = pygame.image.load('heater44.png')
ph35 = pygame.image.load('ph40.png')
daylight = pygame.image.load('daylight70.png')
moonlight = pygame.image.load('moonlight70.png')
co2 = pygame.image.load('co264.png')
o2 = pygame.image.load('o263.png')
food = pygame.image.load('food68.png')
ledred20= pygame.image.load('ledred20.png')
ledgreen20=pygame.image.load('ledgreen20.png')
steps=pygame.image.load('steps.png')
step0=pygame.image.load('0.png')
step1=pygame.image.load('1.png')
step2=pygame.image.load('2.png')
step3=pygame.image.load('3.png')
ledon10=pygame.image.load('ledon10.png')
ledoff10=pygame.image.load('ledoff10.png')
fish=pygame.image.load('fish.png')

fnt16 = pygame.font.SysFont("Arial", 14, bold=True)
fnt16b = pygame.font.SysFont("Arial", 16, bold=True)
fnt17 = pygame.font.SysFont("Times New Roman", 16)
fnt14 = pygame.font.SysFont("Times New Roman", 14)
fnt10 = pygame.font.SysFont("Arial", 10)
fnt12 = pygame.font.SysFont("Arial", 12, bold=True)
fnt24 = pygame.font.SysFont("Times New Roman", 24)
fnt22 = pygame.font.SysFont("Times New Roman", 22)
fnt20 = pygame.font.SysFont("Times New Roman", 20)
fnt18b = pygame.font.SysFont("Times New Roman", 18,bold=True)
fnt32 = pygame.font.SysFont("Times New Roman", 32)
fnt48 = pygame.font.SysFont("Times New Roman", 48)
fnt72 = pygame.font.SysFont("Times New Roman", 72)


#******************************** avvio ********************************
def avvio():
   screen.fill(black)
   x=30
   y=210
   rit=0.005
   
   sleep(0.5)

   for i in range (1,320):
       pygame.draw.line(screen, grey, (320-i,180),(310-i,180),1)
       pygame.draw.line(screen, grey, (i,200),(i+10,200),1)
       
       pygame.draw.line(screen, grey, (i,300),(i+10,300),1)
       pygame.draw.line(screen, grey, (320-i,280),(310-i,280),1)

       pygame.draw.line(screen, grey, (60,0),(60,i/1.6),1)
       pygame.draw.line(screen, grey, (80,200),(80,200-i/1.6),1)
       #pygame.draw.line(screen, grey, (80,280),(80,280+i/1.6),1)
       pygame.draw.line(screen, grey, (260,280),(260,280+i/1.6),1)
       pygame.draw.line(screen, grey, (240,480),(240,480-i/1.6),1)

       
       surf_text = fnt48.render("A", True, grey)
       if i>40:
           surf_text = fnt48.render("Aq", True, grey)
       if i>70:
           surf_text = fnt48.render("Aqu", True, grey)
       if i>100:
           surf_text = fnt48.render("Aqua", True, grey)
       if i>130:
           surf_text = fnt48.render("AquaC", True, grey)
       if i>160:
           surf_text = fnt48.render("AquaCo", True, grey)
       if i>190:
           surf_text = fnt48.render("AquaCon", True, grey)
       if i>220:
           surf_text = fnt48.render("AquaCont", True, grey)
       if i>250:
           surf_text = fnt48.render("AquaContr", True, grey)
       if i>280:
           surf_text = fnt48.render("AquaContro", True, grey)
       if i>310:
           surf_text = fnt48.render("AquaControl", True, grey)
           
       screen.blit(surf_text, (x, y))
       #screen.blit(fish, (100-i,320))
       screen.blit(fish, (400-i,50))
       pygame.display.update()
       sleep(rit)
   pygame.display.update()
       
   sleep(2)
   screen.fill(black)
   pygame.display.update()
   sleep(0.3)

#************************** disegna una tantum *********************************


def fix():
   screen.fill(black)
   pygame.draw.rect(screen, grey, (0,0,320,20),0)
   surf_text = fnt16.render("Paolo AquaControl - rev. 9.2", True, black)
   screen.blit(surf_text, (70, 2))
   #*******************stampa icone***************************************
   screen.blit(date35, (x_date+5,y_date+5))
   screen.blit(time35, (x_time+5,y_time+5))
   screen.blit(ec35, (x_ec+5,y_ec+5))
   screen.blit(temp35, (x_temp+5,y_temp+5))
   screen.blit(heater, (x_heater+5,y_heater+5))
   screen.blit(ph35, (x_ph+5,y_ph+5))
   screen.blit(daylight, (5,y_day+5))
   screen.blit(moonlight, (5,y_moon+5))  
   screen.blit(co2, (0,y_co2+1))
   screen.blit(o2, (0,y_o2+1))
   screen.blit(food, (1,y_food+3))
   #*******************stampa riquadri***************************************
   '''pygame.draw.rect(screen, white, (0,y_day,320,68),1)
   pygame.draw.rect(screen, white, (70,y_day+48,248,16),1) #barra pwm1
   pygame.draw.rect(screen, white, (0,y_moon,320,68),1)
   pygame.draw.rect(screen, white, (70,y_moon+48,248,16),1) #barra pwm2
   pygame.draw.rect(screen, white, (0,y_co2,320,54),1)
   pygame.draw.rect(screen, white, (0,y_o2,320,54),1)
   pygame.draw.rect(screen, white, (0,y_food,320,54),1)'''
   pygame.draw.line(screen, grey, (0,y_temp),(320,y_temp),1)
   pygame.draw.line(screen, grey, (0,y_day),(320,y_day),1)
   pygame.draw.line(screen, grey, (0,y_moon),(320,y_moon),1)
   pygame.draw.line(screen, grey, (0,y_co2),(320,y_co2),1)
   pygame.draw.line(screen, grey, (0,y_o2),(320,y_o2),1)
   pygame.draw.line(screen, grey, (0,y_food),(320,y_food),1)
   pygame.draw.rect(screen, white, (70,y_day_bar,248,hbar),1) #barra pwm1
   pygame.draw.rect(screen, white, (70,y_moon_bar,248,hbar),1) #barra pwm2



#**************  hh-mm 2 cifre  *****************
def stringa2(hm):
   stringa=""
   if hm<10:
       stringa=stringa+"0"
   stringa=stringa+str(hm)
   return (stringa)
   
def stringa5 (hh,min):
   stringa=""
   if hh<10:
       stringa=stringa+"0"
   stringa=stringa+str(hh)+":"
   if min<10:
       stringa=stringa+"0"
   stringa=stringa+str(min)
   return (stringa)


#*******************   SETUP  DATE-TIME-TEMP   ********************
def setup_1(n):
   global Tx,ora,minuti
   screen.fill(black)
   pygame.draw.line(screen, white, (60,25),(260,25),1)
   pygame.draw.line(screen, white, (60,53),(260,53),1)
   screen.blit(setup, (5, 20))
   #header(0)

 

#***scrive intestazione e icone          
   if n==1:
       surf_text = fnt16b.render("SETUP TIME", True, white)
       screen.blit(time35, (270, 20))
   if n==2:
       surf_text = fnt16b.render("SETUP TEMPERATURE", True, white)
       screen.blit(temp35, (270, 20))
   screen.blit(surf_text, surf_text.get_rect(center=(160, 40)))
#***scrive SAVE
   pygame.draw.rect(screen, white, (0,440,320,40),0)
   surf_text4=fnt24.render("S A V E", True, black)
   screen.blit(save35, (90, 442))
   screen.blit(surf_text4, surf_text4.get_rect(center=(180, 460)))  
#***scrive tasti + e -
   screen.blit(taste_add, (60, 100))
   screen.blit(taste_sub, (60, 350))      
#***scrive TIME - TEMP
   if n==1:
       surf_text1 = fnt72.render(stringa5(ora,minuti), True, white)
   else:
       surf_text1 = fnt72.render("{0:.2f}".format(Tx), True, white)
   screen.blit(surf_text1, surf_text1.get_rect(center=(160, 250)))
       
   pygame.display.update()
   

   yy=0
   while yy<440:
       print("secondo get")
       for event in pygame.event.get():
           if(event.type is MOUSEBUTTONDOWN):
               pos = pygame.mouse.get_pos()
               xx,yy = pos
               print (pos)
#***************selezionato + 0 -
               if yy>100 and yy<160:
                   if n==1:
                       minuti=minuti+1
                       if minuti==60:
                           minuti=0
                           ora=ora+1
                           if ora==24:
                               ora=0
                   if n==2:
                       Tx=Tx+0.1
                   pygame.draw.rect(screen, black, (78,218,165,80),0)
                                             
               if yy>350 and yy<410:
                   if n==1:
                       minuti=minuti-1
                       if minuti==-1:
                           minuti=59
                           ora=ora-1
                           if ora==-1:
                               ora=23
                   if n==2:
                       Tx=Tx-0.1
                   pygame.draw.rect(screen, black, (78,218,165,80),0)
                       
               if n==1:
                   surf_text1 = fnt72.render(stringa5(ora,minuti), True, white)
               if n==2:
                   surf_text1 = fnt72.render("{0:.2f}".format(Tx), True, white)
               screen.blit(surf_text1, surf_text1.get_rect(center=(160, 250)))

               pygame.display.update()
                   
   pygame.display.update()
   return()



#*******************   SETUP  LIGHTS-CO2-O2   ********************
def setup_2(n):
   global hh_on, hh_off, min_on, min_off
   screen.fill(black)
   pygame.draw.line(screen, white, (60,25),(260,25),1)
   pygame.draw.line(screen, white, (60,53),(260,53),1)
   pygame.draw.line(screen, pesca, (0,260),(320,260),1)
   screen.blit(setup, (5, 20))
   surf_text = fnt16b.render("ON", True, pesca)
   screen.blit(surf_text, (15, 210))
   surf_text = fnt16b.render("OFF", True, pesca)
   screen.blit(surf_text, (15, 290))
   #header(0)
#***scrive intestazione e icone                            
   if n==1:
       surf_text = fnt16b.render("SETUP DAYLIGHT", True, white)
       screen.blit(daylight, (265, 0))
   if n==2:
       surf_text = fnt16b.render("SETUP MOONLIGHT", True, white)
       screen.blit(moonlight, (265, 0))
   if n==3:
       surf_text = fnt16b.render("SETUP CO2", True, white)
       screen.blit(co2, (265, 0))
   if n==4:
       surf_text = fnt16b.render("SETUP O2", True, white)
       screen.blit(o2, (265, 0))
   screen.blit(surf_text, surf_text.get_rect(center=(160, 40)))
#***scrive SAVE
   pygame.draw.rect(screen, white, (0,440,320,40),0)
   surf_text4=fnt24.render("S A V E", True, black)
   screen.blit(save35, (90, 442))
   screen.blit(surf_text4, surf_text4.get_rect(center=(180, 460)))
#***scrive tasti + e -
   screen.blit(taste_add, (60, 100))
   screen.blit(taste_sub, (60, 350))
#***seleziona default hh_on
   pygame.draw.rect(screen, pesca, (78,180,76,74),0)
   regola=1
#***scrive HH:MM ON e OFF
   surf_text1 = fnt72.render(stringa5(hh_on,min_on), True, white)
   surf_text2 = fnt72.render(stringa5(hh_off,min_off), True, white)
   screen.blit(surf_text1, (79, 175))
   screen.blit(surf_text2, (79, 260))
   

   pygame.display.update()
   sleep(1)
   

   yy=0
   while yy<440:
       print("secondo get")
       for event in pygame.event.get():
           if(event.type is MOUSEBUTTONDOWN):
               pos = pygame.mouse.get_pos()
               xx,yy = pos
               print (pos)
#***************selezionato + 0 -
               if yy>100 and yy<160:
                   if regola==1:
                       hh_on=hh_on+1
                       if hh_on==24:
                           hh_on=0
                       pygame.draw.rect(screen, black, (78,180,76,74),0)
                       pygame.draw.rect(screen, pesca, (78,180,76,74),0)
                   if regola==2:
                       hh_off=hh_off+1
                       if hh_off==24:
                           hh_off=0
                       pygame.draw.rect(screen, black, (78,268,76,74),0)
                       pygame.draw.rect(screen, pesca, (78,268,76,74),0)
                   if regola==3:
                       min_on=min_on+1
                       if min_on==60:
                           min_on=0
                           hh_on=hh_on+1
                       pygame.draw.rect(screen, black, (78,180,76,74),0)
                       pygame.draw.rect(screen, black, (170,180,76,74),0)
                       pygame.draw.rect(screen, pesca, (170,180,76,74),0)
                   if regola==4:
                       min_off=min_off+1
                       if min_off==60:
                           min_off=0
                           hh_off=hh_off+1
                       pygame.draw.rect(screen, black, (78,268,76,74),0)
                       pygame.draw.rect(screen, black, (170,268,76,74),0)
                       pygame.draw.rect(screen, pesca, (170,268,76,74),0)
                       
               if yy>350 and yy<410:
                   if regola==1:
                       hh_on=hh_on-1
                       if hh_on==-1:
                           hh_on=23
                       pygame.draw.rect(screen, black, (78,180,76,74),0)
                       pygame.draw.rect(screen, pesca, (78,180,76,74),0)
                   if regola==2:
                       hh_off=hh_off-1
                       if hh_off==-1:
                           hh_off=23
                       pygame.draw.rect(screen, black, (78,268,76,74),0)
                       pygame.draw.rect(screen, pesca, (78,268,76,74),0)
                   if regola==3:
                       min_on=min_on-1
                       if min_on==-1:
                           min_on=59
                           hh_on=hh_on-1
                       pygame.draw.rect(screen, black, (78,180,76,74),0)
                       pygame.draw.rect(screen, black, (170,180,76,74),0)
                       pygame.draw.rect(screen, pesca, (170,180,76,74),0)
                   if regola==4:
                       min_off=min_off-1
                       if min_off==-1:
                           min_off=59
                           hh_off=hh_off-1
                       pygame.draw.rect(screen, black, (78,268,76,74),0)
                       pygame.draw.rect(screen, black, (170,268,76,74),0)
                       pygame.draw.rect(screen, pesca, (170,268,76,74),0)


               if xx>80 and xx<160 and yy>180 and yy<260:
#***************selezionato hh_on:
                   regola=1
                   pygame.draw.rect(screen, black, (78,180,76,74),0)
                   pygame.draw.rect(screen, black, (78,268,76,74),0)
                   pygame.draw.rect(screen, black, (170,180,76,74),0)
                   pygame.draw.rect(screen, black, (170,268,76,74),0)
                   
                   pygame.draw.rect(screen, pesca, (78,180,76,74),0)
                   surf_text1 = fnt72.render(stringa5(hh_on,min_on), True, white)
                   screen.blit(surf_text1, (79, 175))
               

               if xx>80 and xx<160 and yy>260 and yy<340:
#***************selezionato hh_off
                   regola=2
                   pygame.draw.rect(screen, black, (78,180,76,74),0)
                   pygame.draw.rect(screen, black, (78,268,76,74),0)
                   pygame.draw.rect(screen, black, (170,180,76,74),0)
                   pygame.draw.rect(screen, black, (170,268,76,74),0)
                   
                   pygame.draw.rect(screen, pesca, (78,268,76,74),0)
                   surf_text2 = fnt72.render(stringa5(hh_off,min_off), True, white)
                   screen.blit(surf_text2, (79, 260))


               if xx>160 and xx<240 and yy>180 and yy<260:
#***************selezionato min_on
                   regola=3
                   pygame.draw.rect(screen, black, (78,180,76,74),0)
                   pygame.draw.rect(screen, black, (78,268,76,74),0)
                   pygame.draw.rect(screen, black, (170,180,76,74),0)
                   pygame.draw.rect(screen, black, (170,268,76,74),0)
                   
                   pygame.draw.rect(screen, pesca, (170,180,76,74),0)
                   surf_text1 = fnt72.render(stringa5(hh_on,min_on), True, white)
                   screen.blit(surf_text1, (79, 175))


               if xx>160 and xx<240 and yy>260 and yy<340:
#***************selezionato min_off
                   regola=4
                   pygame.draw.rect(screen, black, (78,180,76,74),0)
                   pygame.draw.rect(screen, black, (78,268,76,74),0)
                   pygame.draw.rect(screen, black, (170,180,76,74),0)
                   pygame.draw.rect(screen, black, (170,268,76,74),0)
                   
                   pygame.draw.rect(screen, pesca, (170,268,76,74),0)
                   surf_text2 = fnt72.render(stringa5(hh_off,min_off), True, white)
                   screen.blit(surf_text2, (79, 260))

                               
               surf_text1 = fnt72.render(stringa5(hh_on,min_on), True, white)
               surf_text2 = fnt72.render(stringa5(hh_off,min_off), True, white)
               #pygame.draw.rect(screen, black, (78,180,76,80),0)
               screen.blit(surf_text1, (79, 175))
               screen.blit(surf_text2, (79, 260))
               pygame.display.update()
   
   return()

def regola_food(box):
   pygame.draw.rect(screen, black, (73,172,49,40),0)
   pygame.draw.rect(screen, black, (73,217,49,40),0)
   pygame.draw.rect(screen, black, (73,262,49,40),0)
   pygame.draw.rect(screen, black, (73,307,49,40),0)
   pygame.draw.rect(screen, black, (130,172,49,40),0)
   pygame.draw.rect(screen, black, (130,217,49,40),0)
   pygame.draw.rect(screen, black, (130,262,49,40),0)
   pygame.draw.rect(screen, black, (130,307,49,40),0)
   if box ==1:
       xbox=73;ybox=172;hh=hh_food1_on;min=min_food1_on
   elif box==3:
       xbox=130;ybox=172;hh=hh_food1_on;min=min_food1_on
   elif box==2:
       xbox=73;ybox=217;hh=hh_food2_on;min=min_food2_on
   elif box==4:
       xbox=130;ybox=217;hh=hh_food2_on;min=min_food2_on
   elif box==5:
       xbox=73;ybox=262;hh=hh_food3_on;min=min_food3_on
   elif box==7:
       xbox=130;ybox=262;hh=hh_food3_on;min=min_food3_on
   elif box==6:
       xbox=73;ybox=307;hh=hh_food4_on;min=min_food4_on
   else:
       xbox=130;ybox=307;hh=hh_food4_on;min=min_food4_on
   pygame.draw.rect(screen, pesca, (xbox,ybox,49,40),0)
   surf_text = fnt48.render(stringa5(hh,min), True, white)
   screen.blit(surf_text, (72, ybox-7))

def regola_piu_meno(box,segno):
   global hh_food1_on, hh_food2_on, hh_food3_on, hh_food4_on
   global min_food1_on, min_food2_on, min_food3_on, min_food4_on
   
   print(hh_food1_on, hh_food2_on)
   if box==1:
       xreg=73; yreg=172; hm="h"; hh=hh_food1_on
   if box==2:
       xreg=73; yreg=217; hm="h"; hh=hh_food2_on
   if box==5:
       xreg=73; yreg=262; hm="h"; hh=hh_food3_on
   if box==6:
       xreg=73; yreg=307; hm="h"; hh=hh_food4_on
   if box==3:
       xreg=73; yreg=172; hm="m"; min=min_food1_on; hh=hh_food1_on
   if box==4:
       xreg=73; yreg=217; hm="m"; min=min_food2_on; hh=hh_food2_on
   if box==7:
       xreg=73; yreg=262; hm="m"; min=min_food3_on; hh=hh_food3_on
   if box==8:
       xreg=73; yreg=307; hm="m"; min=min_food4_on; hh=hh_food4_on
   
   pygame.draw.rect(screen, black, (xreg,yreg,49,40),0)
   pygame.draw.rect(screen, black, (xreg+57,yreg,49,40),0)
   
   if hm=="h":
       if segno=="+":
           hh=hh+1
           if hh==24: hh=0
       if segno=="-":
           hh=hh-1
           if hh==-1: hh=23
       pygame.draw.rect(screen, pesca, (xreg,yreg,49,40),0)
   else:
       if segno=="+":
           min=min+1
           if min==60: min=0; hh=hh+1
       if segno=="-":
           min=min-1
           if min==-1: min=59; hh=hh-1
       pygame.draw.rect(screen, pesca, (xreg+57,yreg,49,40),0)

   if box==1: hh_food1_on=hh
   elif box==2: hh_food2_on=hh
   elif box==3: min_food1_on=min
   elif box==4: min_food2_on=min
   elif box==5: hh_food3_on=hh
   elif box==6: hh_food4_on=hh
   elif box==7: min_food3_on=min
   elif box==8: min_food4_on=min
   
   return()

   


#*******************   SETUP  FOOD   ********************
def setup_3():
   global hh_food1_on,hh_food2_on,hh_food3_on,hh_food4_on
   global min_food1_on,min_food2_on,min_food3_on,min_food4_on
   global food1_on,food2_on,food3_on,food4_on
   global food1_pass,food2_pass,food3_pass,food4_pass
   screen.fill(black)
   pygame.draw.line(screen, white, (60,25),(260,25),1)
   pygame.draw.line(screen, white, (60,53),(260,53),1)
   pygame.draw.line(screen, pesca, (0,214),(320,214),1)
   pygame.draw.line(screen, pesca, (0,259),(320,259),1)
   pygame.draw.line(screen, pesca, (0,304),(320,304),1)
   surf_text = fnt16b.render("ON 1", True, pesca)
   screen.blit(surf_text, (15, 180))
   surf_text = fnt16b.render("ON 2", True, pesca)
   screen.blit(surf_text, (15, 225))
   surf_text = fnt16b.render("ON 3", True, pesca)
   screen.blit(surf_text, (15, 270))
   surf_text = fnt16b.render("ON 4", True, pesca)
   screen.blit(surf_text, (15, 315))
   
   
   screen.blit(setup, (5, 20))
   screen.blit(food, (265, 2))
   surf_text = fnt16b.render("SETUP FOOD", True, white)
   screen.blit(surf_text, surf_text.get_rect(center=(160, 40)))          
   #header(0)
                   
   
#***scrive SAVE
   pygame.draw.rect(screen, white, (0,440,320,40),0)
   surf_text4=fnt24.render("S A V E", True, black)
   screen.blit(save35, (90, 442))
   screen.blit(surf_text4, surf_text4.get_rect(center=(180, 460)))    
#***scrive tasti + e -
   screen.blit(taste_add, (20, 100))
   screen.blit(taste_sub, (20, 350))
#***seleziona default hh_on
   pygame.draw.rect(screen, pesca, (73,172,49,40),0)
   regola=1
#***scrive HH:MM ON
   surf_text1 = fnt48.render(stringa5(hh_food1_on,min_food1_on), True, white)
   surf_text2 = fnt48.render(stringa5(hh_food2_on,min_food2_on), True, white)
   surf_text3 = fnt48.render(stringa5(hh_food3_on,min_food3_on), True, white)
   surf_text4 = fnt48.render(stringa5(hh_food4_on,min_food4_on), True, white)
   screen.blit(surf_text1, (72, 165))
   screen.blit(surf_text2, (72, 210))
   screen.blit(surf_text3, (72, 255))
   screen.blit(surf_text4, (72, 300))

   screen.blit(steps, (230, 125))
   screen.blit(step0, (220, 175))
   screen.blit(step1, (245, 175))
   screen.blit(step2, (270, 175))
   screen.blit(step3, (295, 175))
   screen.blit(step0, (220, 220))
   screen.blit(step1, (245, 220))
   screen.blit(step2, (270, 220))
   screen.blit(step3, (295, 220))
   screen.blit(step0, (220, 265))
   screen.blit(step1, (245, 265))
   screen.blit(step2, (270, 265))
   screen.blit(step3, (295, 265))
   screen.blit(step0, (220, 310))
   screen.blit(step1, (245, 310))
   screen.blit(step2, (270, 310))
   screen.blit(step3, (295, 310))
   if food1_pass==0: screen.blit(ledoff10, (225, 200))
   if food1_pass>0: screen.blit(ledon10, (250, 200))
   if food1_pass>1: screen.blit(ledon10, (275, 200))
   if food1_pass>2: screen.blit(ledon10, (300, 200))

   if food2_pass==0: screen.blit(ledoff10, (225, 245))
   if food2_pass>0: screen.blit(ledon10, (250, 245))
   if food2_pass>1: screen.blit(ledon10, (275, 245))
   if food2_pass>2: screen.blit(ledon10, (300, 245))

   if food3_pass==0: screen.blit(ledoff10, (225, 290))
   if food3_pass>0: screen.blit(ledon10, (250, 290))
   if food3_pass>1: screen.blit(ledon10, (275, 290))
   if food3_pass>2: screen.blit(ledon10, (300, 290))

   if food4_pass==0: screen.blit(ledoff10, (225, 335))
   if food4_pass>0: screen.blit(ledon10, (250, 335))
   if food4_pass>1: screen.blit(ledon10, (275, 335))
   if food4_pass>2: screen.blit(ledon10, (300, 335))
   

   pygame.display.update()

   yy=0
   while yy<440:
       #print("secondo get")
       for event in pygame.event.get():
           if(event.type is MOUSEBUTTONDOWN):
               pos = pygame.mouse.get_pos()
               xx,yy = pos
               print (pos)
#***************selezionato +
               if yy>100 and yy<160 and xx>20 and xx<220:
                   if regola==1: regola_piu_meno(1,"+")
                   elif regola==2: regola_piu_meno(2,"+")
                   elif regola==3: regola_piu_meno(3,"+")
                   elif regola==4: regola_piu_meno(4,"+")
                   elif regola==5: regola_piu_meno(5,"+")
                   elif regola==6: regola_piu_meno(6,"+")
                   elif regola==7: regola_piu_meno(7,"+")
                   elif regola==8: regola_piu_meno(8,"+")
                       
#***************selezionato  -
               if yy>350 and yy<410 and xx>20 and xx<220:
                   if regola==1: regola_piu_meno(1,"-")  
                   elif regola==2: regola_piu_meno(2,"-")
                   elif regola==3: regola_piu_meno(3,"-")
                   elif regola==4: regola_piu_meno(4,"-")
                   elif regola==5: regola_piu_meno(5,"-")
                   elif regola==6: regola_piu_meno(6,"-")
                   elif regola==7: regola_piu_meno(7,"-")
                   elif regola==8: regola_piu_meno(8,"-")

               
                 
               if xx>70 and xx<125 and yy>180 and yy<220:
#***************selezionato hh_food1_on
                   regola=1;regola_food(1)

               if xx>70 and xx<125 and yy>220 and yy<260:
#***************selezionato hh_food2_on
                   regola=2;regola_food(2)
                   
               if xx>125 and xx<185 and yy>180 and yy<220:
#***************selezionato min_food1_on
                   regola=3;regola_food(3)
                   
               if xx>125 and xx<185 and yy>220 and yy<260:
#***************selezionato min_food2_on
                   regola=4;regola_food(4)

               if xx>70 and xx<125 and yy>260 and yy<300:
#***************selezionato hh_food3_on
                   regola=5;regola_food(5)

               if xx>70 and xx<125  and yy>300 and yy<340:
#***************selezionato hh_food4_on
                   regola=6;regola_food(6)
                   
               if xx>125 and xx<185 and yy>260 and yy<300:
#***************selezionato min_food3_on
                   regola=7;regola_food(7)
                   
               if xx>125 and xx<185 and yy>300 and yy<340:
#***************selezionato min_food4_on
                   regola=8;regola_food(8)
                               
               surf_text1 = fnt48.render(stringa5(hh_food1_on,min_food1_on), True, white)
               surf_text2 = fnt48.render(stringa5(hh_food2_on,min_food2_on), True, white)
               surf_text3 = fnt48.render(stringa5(hh_food3_on,min_food3_on), True, white)
               surf_text4 = fnt48.render(stringa5(hh_food4_on,min_food4_on), True, white)

               screen.blit(surf_text1, (72, 165))
               screen.blit(surf_text2, (72, 210))
               screen.blit(surf_text3, (72, 255))
               screen.blit(surf_text4, (72, 300))
               pygame.display.update()

               if xx>220 and xx<240: #food_pass =0
                   if yy>180 and yy<200: food1_pass=0
                   if yy>225 and yy<245: food2_pass=0
                   if yy>270 and yy<295: food3_pass=0
                   if yy>320 and yy<340: food4_pass=0
                   setup_3()

               if xx>245 and xx<265: #food_pass =1
                   if yy>180 and yy<200: food1_pass=1
                   if yy>225 and yy<245: food2_pass=1
                   if yy>270 and yy<295: food3_pass=1
                   if yy>320 and yy<340: food4_pass=1
                   setup_3()

               if xx>270 and xx<290: #food_pass =2
                   if yy>180 and yy<200: food1_pass=2
                   if yy>225 and yy<245: food2_pass=2
                   if yy>270 and yy<295: food3_pass=2
                   if yy>320 and yy<340: food4_pass=2
                   setup_3()

               if xx>295 and xx<315: #food_pass =3
                   if yy>180 and yy<200: food1_pass=3
                   if yy>225 and yy<245: food2_pass=3
                   if yy>270 and yy<295: food3_pass=3
                   if yy>320 and yy<340: food4_pass=3
                   setup_3()
                 
   
   return()



#**************************     INIZIO       ***********************            
avvio()
fix()
while True:
   cont=cont+1
   
#******************    DATE     ************************
   localtime = time.asctime( time.localtime(time.time()) )
   pygame.draw.rect(screen, back_txt_color, (x_date+47,y_date+12,75,30),0)
   surf_text = fnt16.render(localtime[0]+localtime[1]+localtime[2]+localtime[3]+localtime[8]+localtime[9]+" "+localtime[4]+localtime[5]+localtime[6],True, white)
   screen.blit(surf_text, (x_date+50, y_date+18))

#******************    TIME     ************************
   ora= int(localtime[11]+localtime[12])
   minuti=int(localtime[14]+localtime[15])
   secondi=int(localtime[17]+localtime[18])
   pygame.draw.rect(screen, back_txt_color, (x_time+47,y_time+12,70,30),0)
   surf_text = fnt16.render(localtime[11]+localtime[12]+":"+localtime[14]+localtime[15]+":"+localtime[17]+localtime[18], True, white)
   screen.blit(surf_text, (x_time+50, y_time+18))
#******************     EC      ************************
   pygame.draw.rect(screen, back_txt_color, (x_ec+47,y_ec+12,60,30),0)
   surf_text = fnt16.render(str(ec)+" uS", True, white)
   screen.blit(surf_text, (x_ec+50,y_ec+18))
#******************    TEMP     ************************
   temp= sensor.get_temperature()
   temp=temp*1000
   temp=int(temp/100)
   temp=temp/10
   print("temp %s" % temp)
   pygame.draw.rect(screen, back_txt_color, (x_temp+47,y_temp+12,57,30),0)
   surf_text = fnt16.render(str(temp)+"°C", True, white)
   screen.blit(surf_text, (x_temp+50, y_temp+18))
#******************    HEATER     ************************
   pygame.draw.rect(screen, back_txt_color, (x_heater+53,y_heater+5,25,43),0)
   if T<Tx:
       screen.blit(led_on, (x_heater+52,y_heater+12))
       surf_text = fnt12.render("ON", True, green)
       GPIO.output(35, GPIO.LOW)
   else:
       screen.blit(led_off, (x_heater+52,y_heater+12))
       surf_text = fnt12.render("OFF", True, red)
       GPIO.output(35, GPIO.HIGH)
   screen.blit(surf_text, (x_heater+55, y_heater+37))
#******************     PH      ************************
   pygame.draw.rect(screen, back_txt_color, (x_ph+47,y_ph+12,30,30),0)
   surf_text = fnt16.render(str(ph), True, white)
   screen.blit(surf_text, (x_ph+50, y_ph+18))
#******************     DAYLight      ************************
   pygame.draw.rect(screen, back_txt_color, (160,y_day+10,80,35),0)
   if auto1==True:
       surf_text1 = fnt16.render("ON:", True, green)
       surf_text2 = fnt16.render("OFF:", True, red)
       surf_text11 = fnt16.render(stringa5(hh_day_on,min_day_on), True, white)
       surf_text12 = fnt16.render(stringa5(hh_day_off,min_day_off), True, white)
       screen.blit(auto_1, (70,y_day+12))
       #screen.blit(onoff, (175,y_day+8))
       d.ChangeDutyCycle(pwm1_a/2.55)
       #barra
       pygame.draw.rect(screen, back_txt_color, (71,y_day_bar+1,246,hbar-2),0)
       pygame.draw.rect(screen, yellow, (71,y_day_bar+1,max(1,int(pwm1_a/255*246)),hbar-2),0)
       surf_text3 = fnt16.render(str(int(pwm1_a/2.55))+"%", True, moon)
   else:
       surf_text1 = fnt16.render("", True, black)
       surf_text2 = fnt16.render("", True, black)
       surf_text11 = fnt16.render("", True, black)
       surf_text12 = fnt16.render("", True, black)
       screen.blit(auto_2, (70,y_day+12))
       #barra
       pygame.draw.rect(screen, back_txt_color, (71,y_day_bar+1,246,hbar-2),0)
       if on1==True:
           pygame.draw.rect(screen, yellow, (71,y_day_bar+1,max(1,int(pwm1_m/255*247)),hbar-2),0)
           screen.blit(on, (x_switch_onoff,y_day+8))
           d.ChangeDutyCycle(pwm1_m/2.55)
       else:
           pygame.draw.rect(screen, yellow, (71,y_day_bar+1,max(1,int(pwm1_m/255*247)),hbar-3),2)
           screen.blit(off, (x_switch_onoff,y_day+8))
           d.ChangeDutyCycle(0)
       surf_text3 = fnt16.render(str(int(pwm1_m/2.54))+"%", True, moon)
       
   if on1==True:
       screen.blit(led_on, (x_led_onoff, y_day+18))
       surf_text= fnt12.render("ON",  True, green)
   else:
       screen.blit(led_off, (x_led_onoff, y_day+18))
       surf_text= fnt12.render("OFF",  True, red)
   
   screen.blit(surf_text1, (165, y_day+10))
   screen.blit(surf_text2, (165, y_day+28))
   screen.blit(surf_text11, (205, y_day+10))
   screen.blit(surf_text12, (205, y_day+28))
   screen.blit(surf_text3, (185, y_day_bar+3))
   pygame.draw.rect(screen, back_txt_color, (295,y_day+20,24,18),0)
   screen.blit(surf_text, (295, y_day+22))

#******************     MOONLight      ************************
   pygame.draw.rect(screen, back_txt_color, (160,y_moon+10,80,35),0)
   if auto2==True:
       surf_text1 = fnt16.render("ON:", True, green)
       surf_text2 = fnt16.render("OFF:", True, red)
       surf_text11 = fnt16.render(stringa5(hh_moon_on,min_moon_on), True, white)
       surf_text12 = fnt16.render(stringa5(hh_moon_off,min_moon_off), True, white)

       screen.blit(auto_1, (70,y_moon+12))
       #screen.blit(onoff, (175,y_moon+8))
       m.ChangeDutyCycle(pwm2_a/2.55)
       #barra
       pygame.draw.rect(screen, back_txt_color, (71,y_moon_bar+1,246,hbar-2),0)
       pygame.draw.rect(screen, moon, (71,y_moon_bar+1,max(1,int(pwm2_a/255*246)),hbar-2),0)
       surf_text3 = fnt16.render(str(int(pwm2_a/2.55))+"%", True, yellow)  
   else:
       surf_text1 = fnt16.render("", True, black)
       surf_text2 = fnt16.render("", True, black)
       surf_text11 = fnt16.render("", True, black)
       surf_text12 = fnt16.render("", True, black)
       screen.blit(auto_2, (70,y_moon+12))
       #barra
       pygame.draw.rect(screen, back_txt_color, (71,y_moon_bar+1,246,hbar-2),0)
       if on2==True:
           pygame.draw.rect(screen, moon, (71,y_moon_bar+1,max(1,int(pwm2_m/255*247)),hbar-2),0)
           screen.blit(on, (x_switch_onoff,y_moon+8))
           m.ChangeDutyCycle(pwm2_m/2.55)
       else:
           pygame.draw.rect(screen, moon, (71,y_moon_bar+1,max(1,int(pwm2_m/255*247)),hbar-3),2)
           screen.blit(off, (x_switch_onoff,y_moon+8))
           m.ChangeDutyCycle(0)
       surf_text3 = fnt16.render(str(int(pwm2_m/2.53))+"%", True, yellow)
       
   if on2==True:
       screen.blit(led_on, (x_led_onoff, y_moon+18))
       surf_text= fnt12.render("ON",  True, green)
   else:
       screen.blit(led_off, (x_led_onoff, y_moon+18))
       surf_text= fnt12.render("OFF",  True, red)
 
   screen.blit(surf_text1, (165, y_moon+10))
   screen.blit(surf_text2, (165, y_moon+28))
   screen.blit(surf_text11, (205, y_moon+10))
   screen.blit(surf_text12, (205, y_moon+28))
   screen.blit(surf_text3, (185, y_moon_bar+3))
   pygame.draw.rect(screen, back_txt_color, (295,y_moon+20,24,18),0)
   screen.blit(surf_text, (295, y_moon+22))
   
#******************    CO2      ************************
   pygame.draw.rect(screen, back_txt_color, (160,y_co2+10,80,40),0)
   if auto3==True:
       surf_text1 = fnt16.render("ON:", True, green)
       surf_text2 = fnt16.render("OFF:", True, red)
       surf_text11 = fnt16.render(stringa5(hh_co2_on,min_co2_on), True, white)
       surf_text12 = fnt16.render(stringa5(hh_co2_off,min_co2_off), True, white)
       screen.blit(auto_1, (70,y_co2+15))
       #screen.blit(onoff, (175,y_co2+8))
   else:
       surf_text1 = fnt16.render("", True, black)
       surf_text2 = fnt16.render("", True, black)
       surf_text11 = fnt16.render("", True, black)
       surf_text12 = fnt16.render("", True, black)
       screen.blit(auto_2, (70,y_co2+15))
       if on3==True:
           screen.blit(on, (x_switch_onoff,y_co2+15))
       else:
           screen.blit(off, (x_switch_onoff,y_co2+15))
       
   if on3==True:
       screen.blit(led_on, (x_led_onoff, y_co2+23))
       surf_text= fnt12.render("ON",  True, green)

       GPIO.output(36, GPIO.LOW)
   else:
       screen.blit(led_off, (x_led_onoff, y_co2+23))
       surf_text= fnt12.render("OFF",  True, red)
       GPIO.output(36, GPIO.HIGH)
       
   screen.blit(surf_text1, (165, y_co2+13))
   screen.blit(surf_text2, (165, y_co2+33))
   screen.blit(surf_text11, (205, y_co2+13))
   screen.blit(surf_text12, (205, y_co2+33))
   pygame.draw.rect(screen, back_txt_color, (295,y_co2+26,24,18),0)
   screen.blit(surf_text, (295, y_co2+28))
   

   
#******************    O2      ************************
   pygame.draw.rect(screen, back_txt_color, (160,y_o2+10,80,40),0)
   if auto4==True:
       surf_text1 = fnt16.render("ON:", True, green)
       surf_text2 = fnt16.render("OFF:", True, red)
       surf_text11 = fnt16.render(stringa5(hh_o2_on,min_o2_on), True, white)
       surf_text12 = fnt16.render(stringa5(hh_o2_off,min_o2_off), True, white)
       screen.blit(auto_1, (70,y_o2+15))
       #screen.blit(onoff, (175,y_o2+8))
   else:
       surf_text1 = fnt16.render("", True, black)
       surf_text2 = fnt16.render("", True, black)
       surf_text11 = fnt16.render("", True, black)
       surf_text12 = fnt16.render("", True, black)
       screen.blit(auto_2, (70,y_o2+15))
       if on4==True:
           screen.blit(on, (x_switch_onoff,y_o2+15))
       else:
           screen.blit(off, (x_switch_onoff,y_o2+15))
   if on4==True:
       screen.blit(led_on, (x_led_onoff, y_o2+23))
       surf_text= fnt12.render("ON",  True, green)
       GPIO.output(37, GPIO.LOW)
   else:
       screen.blit(led_off, (x_led_onoff, y_o2+23))
       surf_text= fnt12.render("OFF",  True, red)
       GPIO.output(37,GPIO.HIGH)
 
   screen.blit(surf_text1, (165, y_o2+13))
   screen.blit(surf_text2, (165, y_o2+33))
   screen.blit(surf_text11, (205, y_o2+13))
   screen.blit(surf_text12, (205, y_o2+33))
   pygame.draw.rect(screen, back_txt_color, (295,y_o2+26,24,18),0)
   screen.blit(surf_text, (295, y_o2+28))
   

   
#****************** FOOD      ************************
   pygame.draw.rect(screen, back_txt_color, (160,y_food+4,104,63),0)
   if auto5==True:
       surf_text1 = fnt16.render("ON:", True, green)
       surf_text11 = fnt16.render(stringa5(hh_food1_on,min_food1_on), True, white)
       surf_text2 = fnt16.render(stringa5(hh_food2_on,min_food2_on), True, white)
       surf_text3 = fnt16.render(stringa5(hh_food3_on,min_food3_on), True, white)
       surf_text4 = fnt16.render(stringa5(hh_food4_on,min_food4_on), True, white)
       screen.blit(auto_1, (70,y_food+18))
       #screen.blit(onoff, (175,y_food+8))
   else:
       surf_text1 = fnt16.render("", True, black)
       surf_text11 = fnt16.render("", True, black)
       surf_text2 = fnt16.render("", True, black)
       surf_text3 = fnt16.render("", True, black)
       surf_text4 = fnt16.render("", True, black)
       screen.blit(auto_2, (70,y_food+18))
       if on5==True:
           screen.blit(on, (x_switch_onoff,y_food+20))
           GPIO.output(38, GPIO.LOW)
       else:
           screen.blit(off, (x_switch_onoff,y_food+20))
           GPIO.output(38, GPIO.HIGH)
   if on5==True:
       screen.blit(led_on, (x_led_onoff, y_food+26))
       surf_text= fnt12.render("ON",  True, green)
   else:
       screen.blit(led_off, (x_led_onoff, y_food+26))
       surf_text= fnt12.render("OFF",  True, red)
       
   screen.blit(surf_text1, (165, y_food+4))
   screen.blit(surf_text11, (194, y_food+4))
   screen.blit(surf_text2, (194, y_food+19))
   screen.blit(surf_text3, (194, y_food+34))
   screen.blit(surf_text4, (194, y_food+49))
   pygame.draw.rect(screen, back_txt_color, (295,y_food+26,24,18),0)
   screen.blit(surf_text, (295, y_food+30))
   
   if auto5==True:
       if food1_pass>0:
           screen.blit(led_on8, (235, y_food+9))
           if food1_pass>1: screen.blit(led_on8, (245, y_food+9))
           if food1_pass>2:screen.blit(led_on8, (255, y_food+9))
       else:screen.blit(led_off8, (235, y_food+9))

       if food2_pass>0:
           screen.blit(led_on8, (235, y_food+24))
           if food2_pass>1:screen.blit(led_on8, (245, y_food+24))
           if food2_pass>2:screen.blit(led_on8, (255, y_food+24))
       else:screen.blit(led_off8, (235, y_food+24))

       if food3_pass>0:
           screen.blit(led_on8, (235, y_food+39))
           if food3_pass>1:screen.blit(led_on8, (245, y_food+39))
           if food3_pass>2:screen.blit(led_on8, (255, y_food+39))
       else:screen.blit(led_off8, (235, y_food+39))

       if food4_pass>0:
           screen.blit(led_on8, (235, y_food+54))
           if food4_pass>1:screen.blit(led_on8, (245, y_food+54))
           if food4_pass>2:screen.blit(led_on8, (255, y_food+54))
       else:screen.blit(led_off8, (235, y_food+54))
       
  #****************** ON_OFF Lights ************************
   if auto1==True:
       if (((ora*60+minuti)>= (hh_day_on*60+ min_day_on)) and ((ora*60+minuti)< (hh_day_off*60+ min_day_off))):
           on1=True
           
       else:
           on1=False
   if auto2==True:
       if (((ora*60+minuti)>= (hh_moon_on*60+ min_moon_on)) and ((ora*60+minuti)< (hh_moon_off*60+ min_moon_off))):
           on2=True
       else:
           on2=False  
   #****************** CALCOLA PWM_A ************************
   def Dsec(hh,min):
       n_sec=hh*3600+min*60
       n_sec_now=ora*3600+minuti*60+secondi
       delta=n_sec_now-n_sec
       return delta
   
   if Dsec(hh_day_on,min_day_on)<0:
       pwm1_a=0
   if Dsec(hh_day_on,min_day_on)>=0:
       pwm1_a=min(Dsec(hh_day_on,min_day_on)/7,255)
   if Dsec(hh_day_off,min_day_off)>=0:
       pwm1_a=max(255-Dsec(hh_day_off,min_day_off)/7,0)

   if Dsec(hh_moon_on,min_moon_on)<0:
       pwm1_a=0
   if Dsec(hh_moon_on,min_moon_on)>=0:
       pwm2_a=min(Dsec(hh_moon_on,min_moon_on)/7,255)
   if Dsec(hh_moon_off,min_moon_off)>=0:
       pwm2_a=max(255-Dsec(hh_moon_off,min_moon_off)/7,0)
       
#****************** ON_OFF CO2-O2-FOOD ************************
   if auto3==True:
       if (((ora*60+minuti)>= (hh_co2_on*60+ min_co2_on)) and ((ora*60+minuti)< (hh_co2_off*60+ min_co2_off))):
           on3=True
       else:
          on3=False

   if  auto4==True:
       if (((ora*60+minuti)>= (hh_o2_on*60+ min_o2_on)) and ((ora*60+minuti)< (hh_o2_off*60+ min_o2_off))):
           on4=True
       else:
           on4=False
           
   if auto5==True:
       if (((ora*60+minuti)== (hh_food1_on*60+ min_food1_on))):
           on5=True
       else:
           on5=False

 

 
 

   
   pygame.display.update()

   time.sleep(0.1)

#**************************************** Scan touchscreen events ***********
   for event in pygame.event.get():
       if(event.type is MOUSEBUTTONDOWN):
           pos = pygame.mouse.get_pos()
           print (pos)
          # elif(event.type is MOUSEBUTTONUP):
          #     pos = pygame.mouse.get_pos()
          #     print (pos)    
           x,y = pos
           pos=y,x
           
       
           print (pos)

#****************************************** setup **********************
           if y>y_time and y<y_time+50:
               setup_1(1)
           if y>y_temp and y<y_temp+50:
               setup_1(2)

           if x>0 and x<68:
               if y>y_day and y<y_day+80:
                   print("SETUP1")
                   hh_on=hh_day_on
                   hh_off=hh_day_off
                   min_on=min_day_on
                   min_off=min_day_off
                   setup_2(1)
                   hh_day_on=hh_on
                   hh_day_off=hh_off
                   min_day_on=min_on
                   min_day_off=min_off

               if y>y_moon and y<y_moon+80:
                   hh_on=hh_moon_on
                   hh_off=hh_moon_off
                   min_on=min_moon_on
                   min_off=min_moon_off
                   setup_2(2)
                   hh_moon_on=hh_on
                   hh_moon_off=hh_off
                   min_moon_on=min_on
                   min_moon_off=min_off

               if y>y_co2 and y<y_co2+65:
                   hh_on=hh_co2_on
                   hh_off=hh_co2_off
                   min_on=min_co2_on
                   min_off=min_co2_off
                   setup_2(3)
                   hh_co2_on=hh_on
                   hh_co2_off=hh_off
                   min_co2_on=min_on
                   min_co2_off=min_off

               if y>y_o2 and y<y_o2+65:
                   hh_on=hh_o2_on
                   hh_off=hh_o2_off
                   min_on=min_o2_on
                   min_off=min_o2_off
                   setup_2(4)
                   hh_o2_on=hh_on
                   hh_o2_off=hh_off
                   min_o2_on=min_on
                   min_o2_off=min_off

               if y>y_food and y<y_food+70:
                   setup_3()
           fix()
           #header(0)
           print("sono tornato in loop")
               
               
                   
#****************************************** switch A/M **********************
           if x>70 and x<150:  
               if y>y_day+10 and y<y_day+50:
                   auto1=not(auto1)
               if y>y_moon+10 and y<y_moon+50:
                   auto2=not(auto2)
               if y>y_co2+15 and y<y_co2+50:
                   auto3=not(auto3)
               if y>y_o2+15 and y<y_o2+50:
                   auto4=not(auto4)
               if y>y_food+20 and y<y_food+55:
                   auto5=not(auto5)
#****************************************** switch on/off **********************
           if x>200 and x<235:
               if y>y_day+15 and y<y_day+50 and auto1==False:
                   on1=not(on1)
               if y>y_moon+15 and y<y_moon+50 and auto2==False:
                   on2=not(on2)
               if y>y_co2+15 and y<y_co2+50 and auto3==False:
                   on3=not(on3)
               if y>y_o2+15 and y<y_o2+50 and auto4==False:
                   on4=not(on4)
               if y>y_food+20 and y<y_food+55 and auto5==False:
                   on5=not(on5)
#************************************************ pwm **************************
           if y>y_day+55  and y<y_day+75  and auto1==False:
               pwm1_m=min(int((x-70)/250*257),255)
               print(pwm1_m)
           if y>y_moon+55  and y<y_moon+75 and auto2==False:
               pwm2_m=min(int((x-70)/250*257),255)
               print(pwm2_m)




#************************************************ eeprom *************************
   def hm2(hm):
       hm2=""
       if hm<10:
           hm2=hm2+"0"
       hm2=hm2+str(hm)
       return(hm2)
       
   if cont>100:        
       eeprom="ORA:"+hm2(ora)+hm2(minuti)+'\n'
       eeprom=eeprom+"TEMP:"+str(T)+"-EC:"+str(ec)+"-PH:"+str(ph)+'\n'
       eeprom=eeprom+"AUTO:"+str(int(auto1))+str(int(auto2))+str(int(auto3))+str(int(auto4))+str(int(auto5))+'\n'
       eeprom=eeprom+"ON:"+str(int(on1))+str(int(on2))+str(int(on3))+str(int(on4))+str(int(on5))+'\n'
       eeprom=eeprom+"DAYON:"+hm2(hh_day_on)+hm2(min_day_on)+"-DAYOFF:"+hm2(hh_day_off)+hm2(min_day_off)+'\n'
       eeprom=eeprom+"PWM1_M:"
       if pwm1_m<100:
           eeprom=eeprom+"0"
       if pwm1_m<10:
           eeprom=eeprom+"0"
       eeprom=eeprom+str(pwm1_m)+'\n'
       eeprom=eeprom+"MOONON:"+hm2(hh_moon_on)+hm2(min_moon_on)+"-MOONOFF:"+hm2(hh_moon_off)+hm2(min_moon_off)+'\n'
       eeprom=eeprom+"PWM2_M:"
       if pwm2_m<100:
           eeprom=eeprom+"0"
       if pwm2_m<10:
           eeprom=eeprom+"0"
       eeprom=eeprom+str(pwm2_m)+'\n'
       eeprom=eeprom+"CO2ON:"+hm2(hh_co2_on)+hm2(min_co2_on)+"-CO2OFF:"+hm2(hh_co2_off)+hm2(min_co2_off)+'\n'
       eeprom=eeprom+"O2ON:"+hm2(hh_o2_on)+hm2(min_o2_on)+"-O2OFF:"+hm2(hh_o2_off)+hm2(min_o2_off)+'\n'
       eeprom=eeprom+"FOOD1:"+hm2(hh_food1_on)+hm2(min_food1_on)+'\n'
       eeprom=eeprom+"FOOD2:"+hm2(hh_food2_on)+hm2(min_food2_on)+'\n'
       eeprom=eeprom+"FOOD3:"+hm2(hh_food3_on)+hm2(min_food3_on)+'\n'
       eeprom=eeprom+"FOOD4:"+hm2(hh_food4_on)+hm2(min_food4_on)+'\n'
       eeprom=eeprom+"FOOD_pass:"+str(food1_pass)+str(food2_pass)+str(food3_pass)+str(food4_pass)+'\n'
       
       eeprom=eeprom+str(Tx)+'\n'
       
       out_file = open("data.txt","w")
       out_file.write(eeprom)
       out_file.close()
       print("scritto file ",ora,minuti,secondi)
       cont=0
           
 
Risposta
#13
(28/08/2018, 20:56)Zzed Ha scritto: Per capire dove sbagli, mettici gli script.. (a proposito, sono nella stessa directory?)
Per quanto riguarda lo scrivere in Python in modo che abbia un funzionamento asincrono, significa imparare a programmare a livello avanzato, non intendere lo script solo come "una lista di cose da fare in sequenza", ma scoprire come far fare più cose contemporaneamente all'interno del programma.. qui ad esempio viene introdotto l'argomento.
Chiaramente, in questo caso specifico, fai prima con uno degli altri metodi proposti, ma puoi usarlo come scusa per approfondire le tue conoscenze, se ne hai voglia. Credo RaspberryPi serva anche a questo.

scusatemi, mi spiego meglio, il problema che ho descritto (non trova w1thermsensor) si verifica solo se lancio lo script da terminale con python "nomefile".
Se lo eseguo da Thonny funziona tutto (ma nn mi pare sia possibile eseguirlo da Thonny in background)
grazie ancora
Risposta
#14
Ragazzi, ho risolto copiando la libreria w1thermsensor anche nella cartella dove risiedono gli script.
Resta per me un mistero perchè la libreria venga trovata lanciando lo script da idle mentre non venga trovata lanciandolo da terminale.
Se qualcuno conoscesse il motivo, ve ne sarei grato.
Grazie a tutti per l'aiuto
paolo
Risposta
#15
(31/08/2018, 01:43)paolo attanasio Ha scritto: Ragazzi, ho risolto copiando la libreria w1thermsensor anche nella cartella dove risiedono gli script.
Resta per me un mistero perchè la libreria venga trovata lanciando lo script da idle mentre non venga trovata lanciandolo da terminale.
Se qualcuno conoscesse il motivo, ve ne sarei grato.
Grazie a tutti per l'aiuto
paolo
Le librerie devono essere in una cartella compresa nella variabile d'ambiente PYTHONPATH, con la stessa sintassi della variabile di shell PATH, cioè una lista di nomi di directory. Quando PYTHONPATH non è configurata, o quando il file non si trova nelle directory lì elencate, la ricerca continua su un percorso predefinito :/usr/local/lib/python.
L'idle comunque si vede che ti dà una mano, ma pare che la tua libreria sia nel posto sbagliato
Risposta
#16
grazie Zzed
Risposta
  


Vai al forum:


Navigazione: 3 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect