• 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
script 11 dht vari e

DHT 11 e script vari
#1
Ciao a tutti,

da qualche giorno ho iniziato a giocare con un sensore di temperatura DHT11 e le sue possibili implementazioni.


cercando materiale in giro, mi sono imbattuto in due script in python i quali restituiscono valori di temperatura e umidità completamente diversi.
Ho notato che in uno dei due script si usano le GPIO, mentre nel secondo si usano le librerie Adafruit.
il sensore è collegato direttamente al raspberry, senza l'uso di resistenze o altro, ed è alimentato a 3.3v.
allego i due script con cui sto rilevando le temperature:

con lo script sunfounder il risultato è questo:
Raspberry Pi wiringPi DHT11 Temperature test program

bits: [0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0], length: 40
[61, 0, 21, 0, 82]
humidity: 61 %,  Temperature: 21 C`
bits: [0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0], length: 40
[61, 0, 21, 0, 82]
humidity: 61 %,  Temperature: 21 C`
bits: [0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0], length: 40
[61, 0, 21, 0, 82]
humidity: 61 %,  Temperature: 21 C`


mentre con Adafruit ottengo questo:

python AdafruitDHT.py 11 22
Temp=10.0*  Humidity=158.0%


cosa sto sbagliando? cosa devo leggere meglio/studiare per capire cosa sto sbagliando?


Allegati
.txt   AdafruitDHT.txt (Dimensione: 2.24 KB / Download: 6)
.txt   28_humiture.txt (Dimensione: 2.91 KB / Download: 11)
Risposta
#2
python AdafruitDHT.py 11 senza il 22 , usi il pin 4 come da default?
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#3
se metto solo 11 non va proprio.
11 dovrebbe essere il tipo di sensore, e 22 il pin su cui è collegato. (si uso 22 e non il default)

root@raspberrypi:/home/pi/Adafruit_Python_DHT/examples# python AdafruitDHT.py 11
usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#
example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4
Risposta
#4
hai ragione, è tanto che non la uso, ma da quel che ricordo è necessaria una resistenza pullup 4,7K o 10K
di norma si usa il pin 4 perché c'è gia integrata, se non ricordo male, ma potrei sbagliarmi
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#5
la documentazione adafruit fa riferimento alla resistenza da 4,7k o 10k, quando si usa il sensore dht11 puro e liscio (cioè a 4 pin). https://learn.adafruit.com/dht-humidity-...ing/wiring

il sensore che ho io invece, è quello sunfounder https://images-na.ssl-images-amazon.com/...SX342_.jpg

di fatto, la temperatura indicata è corretta (se non uso le lib adafruit).
ne uscirò ???????
Risposta
#6
Non approfondisco le differenza fra i 2 sensori e relative librerie, ma non vedo il problema. La libreria fornita dal produttore del tuo modulo funziona (anche se ci sarebbe da discuterne), quindi puoi tranquillamente importare il metodo read_dht11_dat che ti restituisce umidità e temperatura

Mandi

Barbezuan
Risposta
#7
volevo cercare di capire e approfondire un minimo, anche perchè spesso mi è capitato di trovare script che utilizzano le lib adafruit, e non essendo esperto di codice, faccio fatica a cambiarlo per i miei scopi.
se è così me ne farò una ragione e amen ... Smile
Risposta
#8
ok la resistenza è gia integrata, gli script che hai pubblicato sono esattamente quelli che stai usando, senza modifiche?
hai provato a collegarlo al pin 4, cosi per curiosità?
sempre per curiosità prova
Codice:
sudo python2 AdafruitDHT.py 11 22
stai avviando i comandi preceduti da sudo?
Codice:
sudo ./Adafruit_DHT.py 11 22
" (cioè a 4 pin)." il DHT ha si 4 pin, ma uno non è usato comunque.

"cosa devo leggere meglio/studiare per capire cosa sto sbagliando?"> studiare le basi du Python3 aiuta molto (attento che è diverso dal 2)
"Ho notato che in uno dei due script si usano le GPIO, mentre nel secondo si usano le librerie Adafruit" tutti usando le porte GPIO del RaspberryPi, Adafruit sono le più usate.
qui https://github.com/adafruit/Adafruit_Python_DHT c'è la versione piu aggiornata
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#9
credo di esserne venuto a capo:
il dht11 sunfounder ha integrata una resistenza sul signal da 10K. da documentazione va alimentato a 5v. se io lo alimento a 5v, leggo una temperatura più bassa della realtà, di circa 4 gradi (ho altri 2 termometri come riferimento).
se lo alimento a 3.3v la temperatura che leggo è corretta. e questo è strano....ma

sulla documentazione adafruit, usano il dht11 liscio e dicono di applicare una resistenza da 4.7K e se non dovesse funzionare, una da 10K.

quindi tutto gira attorno all'alimentazione e di conseguenza alla resistenza applicata.
come diceva barbezuan, se uso la sua lib e il suo sensore, alla peggio funziona correttamente.
se voglio usare altro, devo armarmi di pazienza e calibrare il sensore.

nel frattempo avevo comprato anche questo http://img.dxcdn.com/productimages/sku_143502_1.jpg  e stanotte nel fare le prove, sono riuscito a farlo andare con mia enorme soddisfazione, e ho già qualche grafichetto popolato su thingspeak Smile Smile Smile Smile Smile Smile Smile
Risposta
#10
credo che ti sbagli... la resistenza di pullup va solo sul pin gpio, non ha niente a che fare con l'alimentazione
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
  


Vai al forum:


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