× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

file temperatura e umidità su Display 16x2

Di più
9 Anni 4 Mesi fa - 9 Anni 4 Mesi fa #4802 da Peppe_H
buonasera a tutti
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
Ultima Modifica 9 Anni 4 Mesi fa da Peppe_H.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 4 Mesi fa #4804 da tony
Mi sembra semplicemente che non trovi l'eseguibile "ADAFRUIT_DHT"

Prova a metterlo tra apici e indicarle il full path es: "/home/ADAFRUIT_DHT"
TT

Si prega Accedi a partecipare alla conversazione.

Tempo creazione pagina: 1.059 secondi