Offline
Sr. Member
Karma: 2
Posts: 466
|
 |
« Reply #15 on: February 18, 2013, 07:05:47 am » |
Praticamente devi scaricare la libreria, la scompatti, ti crea una cartella DHT, questa cartella la copy nella cartella "libreries" della tua installazione dell' ide. Fai eseguire l' ide (o lo riavvii) e a questo punto puoi utilizzare l' empio/i che trovo in file/esempi/dht. Se mastichi un po' di inglese, prova seguire quel link che ti ho dato, così potrai capire un pò di cose su quel sensore.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #16 on: February 18, 2013, 08:26:07 am » |
Scusa sono tonto ma non ho capito come devo costruire la cartella e le sottocartelle  Ho scaricato lo zip dal sito, ora scompattando tutto trovo i seguenti file: DHT.h - DHT.cpp - DHTtester.pde Mi puoi strutturare come mettere il tutto per poter caricare su arduino il file .pde, grazie Ho risolto, grazie ora provo. Dimenticavo ho portato l'alimentazione a 9 ma il problema persiste il display ora impazzisce pure, compaiomo anche tutti simboli strani dopo che funziona un pò
|
|
|
|
« Last Edit: February 18, 2013, 08:37:59 am by parapaolo »
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 2
Posts: 466
|
 |
« Reply #17 on: February 18, 2013, 09:01:37 am » |
Allora motivo in più per fare una prova con il dht11 solo e visualizzare la temp. via seriale... Poi passiamo al display.
|
|
|
|
|
Logged
|
|
|
|
|
ivrea (to)
Offline
God Member
Karma: 10
Posts: 624
|
 |
« Reply #18 on: February 18, 2013, 11:31:19 am » |
Controlla meglio. Di solito gli zip contenenti le librerie contengono ANCHE i percorsi dei file.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #19 on: February 18, 2013, 03:33:51 pm » |
Ok dopo 2 ore sul monitor seriale ancora scorrono i valori senza intoppi e il sensore rileva esattamente le variazioni, adesso come mi muovo per applicarlo ad un display?
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 386
Posts: 10248
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #20 on: February 18, 2013, 04:26:21 pm » |
Il displsy è uno strumento di visualizzazione alternativo al serial monitor; per funzionare ha bisogno di una libreria specifica (che devi integrare nello sketch), di una dichiarazione dei pin collegati ad Arduino (ti servono al minimo 6 fili per i segnali + l'alimentazione), poi al posto dei comandi normali del Serial Monitor metti quelli specifici per il display. Visto che hai risolto il problema del sensore ti basta seguire quanto scritto nel PlayGround a proposito del display LCD (va benissimo la versione a 4 bit) e completi rapidamente.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16460
Don't know what I do
|
 |
« Reply #21 on: February 18, 2013, 05:03:45 pm » |
Nel Reference trovi la spiegazione della libreria LiquidCrystal: http://arduino.cc/en/Reference/LiquidCrystalAprendo i vari link trovi anche lo schema di collegamento del display.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #22 on: February 18, 2013, 05:14:29 pm » |
Ok ho collegato il display e funziona dato che i test del displaiy caricati funzionano tutti, ora il problema è fondere insieme il tutto, ossia la libreria DHT che legge dal sensore e la LiquidCrystal  Un esempio funzionante con magari le spiegazioni è chiedere troppo?
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #24 on: February 18, 2013, 05:43:29 pm » |
Ok non lo faccio più  Allora ho provato a fondere insieme le due librerie ragionando come mi avete detto sopra e mi è venuto fuori questo codice // Example testing sketch for various DHT humidity/temperature sensors // Written by ladyada, public domain
#include "DHT.h" #include <LiquidCrystal.h> #define DHTPIN 8 // what pin we're connected to
// Uncomment whatever type you're using! //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT11 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V // Connect pin 2 of the sensor to whatever your DHTPIN is // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); lcd.begin(16, 2); dht.begin(); }
void loop() { // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); float t = dht.readTemperature();
// check if returns are valid, if they are NaN (not a number) then something went wrong! if (isnan(t) || isnan(h)) { Serial.println("Failed to read from DHT"); } else { Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); lcd.setCursor(0,0); lcd.print("Temp= "); lcd.print(t); lcd.print(" *C"); lcd.setCursor(0,1); lcd.print("Humidity= "); lcd.print(h); lcd.print("% "); } } E sono 10 minuti che gira e sembra funzionare anche  Solo una cosa mi restituisce i valori con il punto decimale esempio Temp= 21.00 dato che il DHT11 non rileva tale valore decimale come faccio a toglierlo sia dalla temperatura che dall'umidità? Mi sembra di aver letto chè si possa specificare il valore decimale delle risposte ma non ho capito bene come sul codice, grazie
|
|
|
|
« Last Edit: February 18, 2013, 05:48:57 pm by parapaolo »
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 386
Posts: 10248
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #25 on: February 18, 2013, 05:50:59 pm » |
Bravo, complimenti! Come vedi riuscire a risolvere i problemi da solo dà maggiori soddisfazioni ed aiuta ad imparare 
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3011
|
 |
« Reply #26 on: February 18, 2013, 06:03:37 pm » |
Siccome h e t sono definiti come float, puoi usare lcd.print(t,0) e lcd.print(h,0) per non far visualizzare i decimali. Reference --> http://arduino.cc/en/Serial/PrintSyntax Serial.print(val) Serial.print(val, format)
Parameters val: the value to print - any data type format: specifies the number base (for integral data types) or number of decimal places (for floating point types)
|
|
|
|
« Last Edit: February 18, 2013, 06:05:54 pm by PaoloP »
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 2
Posts: 466
|
 |
« Reply #27 on: February 19, 2013, 03:34:21 am » |
Mi associo ai complimenti di Michele. Altra cosa.. Non togliere tutti e due i decimali. Perchè Il DHT11 e come il DHT22 ha un decimale di precisione, quindi modifica il comando in questo modo: lcd.print(t,1) e lcd.print(h,1)
Ciao
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 1
|
 |
« Reply #28 on: March 10, 2013, 07:31:09 am » |
Ciao, nel mio caso il decimale è presente ma sempre pari a zero anche modificando lo sketch come suddetto. Qualcuno in rete sostiene che con il DHT11 non funziona il decimale ma in un video su Youtube c'è un termometro LCD con DHT11 che il decimale lo visualizza sul display. Com'è la faccenda? 
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3011
|
 |
« Reply #29 on: March 10, 2013, 11:49:28 am » |
Dal datasheet risulta che il DHT11 ha la risoluzione dell'1% quindi non ha decimale. Si può però effettuare un campionamento di n letture e poi fare la media che avrò almeno una cifra decimale significativa.
|
|
|
|
|
Logged
|
|
|
|
|
|