Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata
6
voti

Web Stazione Meteo con Arduino [3] - Il Primo Circuito di Prova

Finalmente è arrivato il sensore che avevo ordinato e non ho aspettato neanche un minuto prima di metterlo alla prova.

Indice

Il Test

Come primo test, ho deciso di collegare il sensore ad Arduino e di fargli stampare su di un LCD i dati letti.

Nota: L'LCD che andrò ad utilizzare è un 16x1, ma a livello logico deve essere utilizzato come un 8x2

Il Circuito

Il sensore è stato saldato superficialmente su di una millefori, mi riprometto di fare qualcosa di più "carino" !

Vi posto alcune foto del sensore e di arduino:

Arduino+LCD+Sensore

Arduino+LCD+Sensore

Qui invece lo schema di collegamento del tutto:

schema-sensore+lcd.png

schema-sensore+lcd.png

Nota: da non dimenticare di inserire la resistenza di pull-up da 1k tra i Pin Vcc(1) e Data(2) del sensore.

Lo sketch

Ecco qua lo sketch di Test di arduino.

//
//Primo Test del sensore DHT22 con dispaly LCD 16x1 (che viene gestito come un 8x2)
//

#include <dht.h>//includo la libreira per il sensore

#include <LiquidCrystal.h>//includo la libreria per l'LCD

dht DHT; //dichiaro una variabile globale per la classe del sensore

#define DHT22_PIN 8 //imposto il pin a cui è connesso il sensore

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //dichiaro la variabile lcd definendo i pin utilizzati

void setup()
{
  lcd.begin(8, 2); //inizializzo l'LCD
}

void loop()
{
  int chk = DHT.read22(DHT22_PIN);//leggo dal sensore e ritorna un valore corrispondente all'andamento della lettura
  switch (chk)//controllo
  {
    case 0: //valore di ritorno : 0 -> Lettura andata a buon fine
            lcd.setCursor(0,0);//stampo sull'lcd i dati letti
            lcd.print("T:");
            lcd.print(DHT.temperature,1);//scrivo il dato della temperatura, specificando che voglio un solo decimale
            lcd.print("C");
            lcd.setCursor(0,1);

            lcd.print("U:");
            lcd.print(DHT.humidity,1);//scrivo il dato dell'umiditò, specificando che voglio un solo decimale
            lcd.print("%");
      break;
    case -1: //valore di ritorno : -1 -> Sono stati letti dei dati, ma risultano corrotti
            lcd.print("Checksum error");
      break;
    case -2: //valore di ritorno : -2 -> Nessuna lettura effettuata, ho atteso troppo tempo
            lcd.print("Time out error");
      break;
    default: //qualsiasi altro valore di ritorno definisce un errore diverso
            lcd.print("Unknown error");
      break;
  }
  delay(2000);//attendo 2sec tra una lettura e l'altra. Dato che il DHT22 effettua una campionatura ogni 2sec
  //sarebbe inutile effettuare letture più rapide.
}

Per lo sketch sono state usate due librerie, presenti nel Playground del sito di Arduino:

Conclusioni

Per adesso ho intenzione di far lavorare questo circuito per alcuni giorni, confrontando la temperatura con quella di un'altra sonda, per controllare che le misure siano veritiere. Successivamente, mi dedicherò all'implementazione della comunicazione Ethernet.

Alla prossima Puntata!


Link agli articoli del progetto

Web Stazione Meteo con Arduino [1] - L'idea

Web Stazione Meteo con Arduino [2] - La Rilevazione dei Dati

Web Stazione Meteo con Arduino [4] - Il circuito definitivo e la comunicazione http

Web Stazione Meteo con Arduino [5] - Appendice 1 : Le Reti spiegate a mia Nonna

Web Stazione Meteo con Arduino [6] : Il Sito Web

Web Stazione Meteo con Arduino [7] : Bug Fixing

2

Commenti e note

Inserisci un commento

di ,

dht DHT; è la variabile globale che contiene l'oggetto della classe dht, che si occupa della lettura dei dati dal sensore. Hai provato il sensore da solo? riesci a leggere i valori di temperatura e umidità? L'errore che ti da solitamente è perchè non trova la libreria dht.h, l'hai inclusa nello sketch? P.S. Se vuoi posso darti una mano, tempo permettendo, magari contattami in MP. Ciao!

Rispondi

di ,

ciao,sto cercando di realizzare questo progetto per la maturità e sono arrivato a questo punto, però ora mi sono bloccato perché non mi compila il codice per provare il sensore e il LCD penso che sia un errore legato alla libreria del dht praticamente mi da l'errore in questa riga di codice: dht DHT; //dichiaro una variabile globale per la classe del sensore error : "dht" does not name a type ho scaricato la libreria e lo messa nella cartella "libraries" del arduino. quando provo il sensore o il lcd da soli con gli esempi inclusi nella loro libraria funzionano correttamente mi puoi spiegare per favore che a cosa serve la variabile (DHT) e perché mi da quel l'errore ti ringrazio molto

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.