- Posts: 3
- Thank you received: 0
- Sint Wind PI - Documentation
- Forum
- Volo Libero Monte Cucco
- Sint Wind PI
- temperatura e umidità su Display 16x2
Postate qui domande o segnalate problemi / bug che riscontrate,
temperatura e umidità su Display 16x2
sono un appassionato del caro Raspberry mod.b e stavo appunto smanettando tra sensori e componenti vari.
ho appena collegato un display 4bit 16x2 ed ora volevo che mi ci stampasse su i valori rilevati dal sensore DHT11 già collegato alla mainboard. il sensore interrogandolo con il comando
sudo ./Adafruit_DHT 11 10
mi restituisce i valori di temp e umidità ma se provo a scrivere qualche riga di codice per creare un file DHT.py mi restituisce un errore ecco a voi il codice che ho scritto:
import subprocess
# la funzione legge i dati dal sensore DHT usando
# l'utility di Adafruit
# parametri:
# tipo - tipo di sensore 11 = DHT11 22 = DHT22
# pin - pin di GPIO a cui è collegato il sensore
# ritorna tre valori:
# booleano - a True se i dati sono validi
# float - temperatura
# float - umidità
def leggiSensore(tipo,pin):
# lancia l'utility usando sudo e passando come parametri tipo e pin
outputbytes=subprocess.check_output(["sudo",ADAFRUIT_DHT,str(tipo),str(pin)])
# l'output viene ritornato come sequenza di byte
# la funzione decode ci consente di tradurlo in
# una stringa
output=outputbytes.decode("utf-8")
# la funzione find() dell'oggetto stringa viene
#utilizzata per ricavare il valore della temperatura
indice=output.find("Temp = ")
indice2=output.find(" *C")
# se non sono state trovate le stringhe l'utility non è
#riuscita a leggere dati validi
if indice==-1 or indice2==-1:
return False,0.0,0.0
#ricava la temperatura come sotto-stringa e la converte
# in un valore a virgola mobile
temperatura=float(output[indice+7:indice2])
# cerca il valore di umidità
indice=output.find("Hum = ")
# controlla che l'output sia corretto
if indice==-1:
return False, 0.0,0.0
# ricava anche l'umidità e la converte in
# numero a virgola mobile
umidità=float(output[indice+6:-2])
# il valore True indica che i parametri sono validi
return True, Temperatura, umidità
ma richiamandolo da terminal con python mi dice:
>>> import DHT
>>> print(DHT.leggiSensore(11,10))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "DHT.py", line 16, in leggiSensore
outputbytes=subprocess.check_output (["sudo",ADAFRUIT_DHT,str(tipo),str(pin)])
NameError: global name 'ADAFRUIT_DHT' is not defined
volevo sapere se è indispensabile creare questo file per poi richiamare i valori sul display (premetto che non saprei come procedere ancora per fare ciò)se e dove sto sbagliando.
spero che qualcuno mi risponda.
grazie
Please Log in to join the conversation.
Prova a metterlo tra apici e indicarle il full path es: "/home/ADAFRUIT_DHT"
TT
Please Log in to join the conversation.
- Sint Wind PI - Documentation
- Forum
- Volo Libero Monte Cucco
- Sint Wind PI
- temperatura e umidità su Display 16x2