• 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 11 dht label tkinter

Dht 11 in label tkinter
#1
Codice:
#Programma per lettura temperature

#importa librerie

from tkinter import*
import tkinter.font
import datetime
import Adafruit_DHT as dht
####################################################################################################################################################

###############################################################Crea visualizzazione grafica
win = Tk()
win.title ("Lettura Temperature Casa")
win.geometry ("550x390")

############################################################## definizione data e ora
def update_timeText():
   current = datetime.datetime.now().strftime("Ore %H:%M:%S del %d/%m/%y")
   timeText.configure(text=current)
   win.after(1000, update_timeText)
timeText = Label(win, text="", fg="black", bg="white", font="10")
timeText.grid(row=0, column=2, sticky="w", padx=10, pady=10)
update_timeText()


############################################################## etichette fisse
the_label1 = Label (win, text="Temperatura Esterna = ", fg="black", bg="white", font="36")
the_label1.grid(row=2, column=0, sticky="w", padx=10, pady=10)

the_label2 = Label (win, text="Temperatura Sala = ", fg="black", bg="white", font="36")
the_label2.grid(row=4, column=0, sticky="w", padx=10, pady=10)

the_label3 = Label (win, text="Temperatura Bagno = ", fg="black", bg="white", font="36")
the_label3.grid(row=6, column=0, sticky="w", padx=10, pady=10)

the_label4 = Label (win, text="Temperatura Camera da letto = ", fg="black", bg="white", font="36")
the_label4.grid(row=8, column=0, sticky="w", padx=10, pady=10)

the_label5 = Label (win, text="Temperatura Cameretta = ", fg="black", bg="white", font="36")
the_label5.grid(row=10, column=0, sticky="w", padx=10, pady=10)

################################################################ etichette temperature .... eliminare 0° per provare la temperatura con dht

K= StringVar()
num=1


the_label1_1 = Label (win, text=K, fg="black", bg="white", font="36")
the_label1_1.grid(row=2, column=1, sticky="w", padx=10, pady=10)

the_label2_2 = Label (win, text="0°  ", fg="black", bg="white", font="36")
the_label2_2.grid(row=4, column=1, sticky="w", padx=10, pady=10)

the_label3_3 = Label (win, text="0°  ", fg="black", bg="white", font="36")
the_label3_3.grid(row=6, column=1, sticky="w", padx=10, pady=10)

the_label4_4 = Label (win, text="0°  ", fg="black", bg="white", font="36")
the_label4_4.grid(row=8, column=1, sticky="w", padx=10, pady=10)

the_label5_5 = Label (win, text="0°  ", fg="black", bg="white", font="36")
the_label5_5.grid(row=10, column=1, sticky="w", padx=10, pady=10)

def READ():
   h,t = dht.read_retry(dht.DHT11, 4)
   text = "Temp=%s*C Humidity=%s" %(t,h)
   k.set(str(text))
#    w = Label(win, text=newtext)
#    w.pack()

   
   
   
mainloop()
Buongiorno

ancora una volta vi chiedo aiuto per un piccolo programmino fatto in python che legge le temperature....
 chiaro che e' un po scopiazatto.
Il problema e' inserire la temperatura letta dal sensore in un label di tkinter, ma sopratutto il problema piu' grosso e che mancandomi le basi faccio fatica e ci metto moltissimo tempo a relizzare cose che secondo me sono banali.
Sto leggendo alcuni testi ma sono ancora molto lontano e sopratutto mi sembrano complicatissimi. Grazie a tutti
Risposta
#2
Diciamo che nella vita, le scorciatoie difficilmente funzionano. In teoria occorre imparare bene il linguaggio e i suoi concetti, e dopo dedicarsi alle interfacce grafiche come tkinter.
Io ritengo che non esista nulla di "banale" in senso assoluto: camminare, è una cosa abbastanza banale, lo facciamo tutti, e lo abbiamo imparato da piccoli. Prova a pensare a un programma che faccia camminare un robot umanoide, non solo il movimento delle articolazioni delle gambe, manche le anche, le braccia per controbilanciare, i sensori per mantenere l'equilibrio.. ti accorgi che non è banale.
Se leggi libri che ti sembrano complicatissimi, probabilmente, prima di essi, devi leggerne altri, che ti diano le basi per comprendere quelli.. Oppure sono solo i libri sbagliati.
Comunque, il consiglio base è di applicare il pensiero computazionale: scomponi il problema in altri più piccoli che puoi risolvere.
Nel tuo caso devi
1) sapere come leggere il dht11 e metterlo in una variabile
2)scrivere il comntenuto della variabile nella label tkinter
Risposta
#3
Grazie per il suggerimento proverò ad approcciare in questo modo il problema

Inviato dal mio SM-J320FN utilizzando Tapatalk
Risposta
#4
Allora il metodo per la lettura della temperatura è questo:
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

Nel mio caso sarà humidity, temperature = Adafruit_DHT.read_retry(11, 4)

Devo solo capire come inserirlo in una varabile...

Inviato dal mio SM-J320FN utilizzando Tapatalk
Risposta
#5
Lo hai già fatto:
In questo caso, la variabile si chiama "temperature"
Risposta
#6
(31/10/2017, 11:42)Zzed Ha scritto: Lo hai già fatto:
In questo caso, la variabile si chiama "temperature"

Confused Confused

ok.
allora faccio una roba cosi..
definisco una funzione che la chiamo lettura e poi vado a leggere il sensore e lo metto nella variabile temperature
Codice:
def lettura():
   temperature = Adafruit_DHT.read_retry(11, 4)
a questo punto metto la variabile temperatura nel label?
Risposta
#7
Ah, python questo sconosciuto...

Il metodo:
Codice:
Adafruit_DHT.read_retry(11, 4)
ritorna una lista con 2 dati, il primo è l'umidità il secondo la temperatura.

In questo modo:
Codice:
temperature = Adafruit_DHT.read_retry(11, 4)
la tua variabile è una lista con entrambi i dati.

Mentre come ti ha suggerito Zzed:
Codice:
humidity, temperature = Adafruit_DHT.read_retry(11, 4)
usi lo spacchettamento di python assegnando i due valori della lista a due variabili separate.

Comunque, al di là del codice, lo scopiazzare codice è il peggior sistema per imparare un linguaggio di programmazione, la strada migliore è un buon libro seguito passo passo

Mandi

Barbezuan
Risposta
#8
(31/10/2017, 18:30)barbezuan Ha scritto: Ah, python questo sconosciuto...

Il metodo:
Codice:
Adafruit_DHT.read_retry(11, 4)
ritorna una lista con 2 dati, il primo è l'umidità il secondo la temperatura.

In questo modo:
Codice:
temperature = Adafruit_DHT.read_retry(11, 4)
la tua variabile è una lista con entrambi i dati.

Mentre come ti ha suggerito Zzed:
Codice:
humidity, temperature = Adafruit_DHT.read_retry(11, 4)
usi lo spacchettamento di python assegnando i due valori della lista a due variabili separate.

Comunque, al di là del codice, lo scopiazzare codice è il peggior sistema per imparare un linguaggio di programmazione, la strada migliore è un buon libro seguito passo passo

continuo ad essere d'accordo con voi per questo dopo aver mollato pensare da informatico ed altre guide free ho visto che forse il testo python per ragazzi potrebbe essere utile per cominciare.
Penso comunque che l'apprendimento e' una cosa molto soggettiva credo che come me molte persone hanno bisogno di cimentarsi con la pratica perche' alcuni concetti gli rimangano in testa.
Detto questo ho ridotto tutto al minimo termine per "capire cosa non ho ancora capito":

Codice:
from tkinter import *
import tkinter.font
import Adafruit_DHT


win = Tk()
win.title("Temperature")
win.geometry("100x100")

the_label = Label (win, text="")
the_label.grid(row=0, column=0)

def READ():
   humidity, temperature = Adafruit_DHT.read_retry(11, 4)
   the_label.configure(text=str(temperature))#cosa significa questooooo !!!!

def read_every_second():
   READ()
   win.after(1000, read_every_second)
READ()
mainloop()

cosi funziona ma non ho capito la riga 12...
grazie
Risposta
#9
Str(variabile) trasforma il contenuto della variabile in una stringa di testo
Risposta
#10
Grazie mille per l'aiuto. .. chiudo la discussione perchè ho risolto seguendo le indicazioni che mi avete gentilmente dato

Saluti

Inviato dal mio SM-J320FN utilizzando Tapatalk
Risposta
  


Vai al forum:


Navigazione:
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect