ultimo aggiornamento 27 agosto 2011


Per vedere i miei filmati

 

Per utilizzare il sensore Sensirion SHT11 (per le caratteristiche vedere questa pagina)  con la scheda Arduino occorre seguire lo schema sottoriportato.
Il modulo utilizza per comunicare con il processore un'interfaccia seriale tipo 2-wire, (dati e clock) n on compatibile con il tipo I2C.

Pin del modulo sensore Pin ARDUINO
1 (Data) Pin digitale D10
3 (Clock) Pin digitale D11
4 (GND) GND
8 (VDD- +5V) +5V

Il programma utilizza la libreria che può essere scaricata all'indirizzo https://github.com/practicalarduino/SHT1x scritta da Jonathan Oxer

Versione con lettura tramite monitor porta seriale PC

Prima versione del programma, i dati letti dalla scheda Arduino vengono mostrati nella finestra del monitor della porta seriale


Scarica programma

/*
 Lettura_valori_SHT11.pde
 Il programma legge i valori di temperatura e
 umidità dal sensore e li mostra nella finestra
 monitor della porta seriale
 
 Vengono utilizzati i seguenti pin della scheda Arduino 2009/NANO
 Pin +5V       -> Alimentazione
 Pin GND       -> Alimentazione
 Pin Digital 10-> Connesso al pin DATA del sensore SHT11
 Pin Digital 11-> Connesso al pin CLOCK del sensore SHT11
 
 Creato il 20/8/2011
 da Adriano Gandolfo <http://www.adrirobot.it>
 basato su programma realizzato da Jonathan Oxer <jon@oxer.com.au> www.practicalarduino.com
 This example code is in the public domain.
 */

#include <SHT1x.h>

// Specify data and clock connections and instantiate SHT1x object
#define dataPin  10
#define clockPin 11
SHT1x sht1x(dataPin, clockPin);

void setup()
{
   Serial.begin(38400); // Open serial connection to report values to host
   Serial.println("Starting up");
}

void loop()
{
  float temp_c;
  float temp_f;
  float humidity;

  // Read values from the sensor
  temp_c = sht1x.readTemperatureC();
  humidity = sht1x.readHumidity();

  // Print the values to the serial port
  Serial.print("Temperatura: ");
  Serial.print(temp_c, 1);
  Serial.print("C / ");
  Serial.print("Umidita': ");
  Serial.print(humidity,1);
  Serial.println("%");

  delay(2000);
}

Versione con lettura mostrata su display LCD connesso in seriale alla scheda Arduino

Seconda versione del programma, i dati letti dalla scheda Arduino vengono mostrati tramite un display LCD 16x2 connesso in seriale alla scheda Arduino


Scarica programma

/*
 Lettura_valori_SHT11_LCD.pde
 Il programma legge i valori di temperatura e
 umiditò dal sensore e li mostra sul siplay LCD
 
 Vengono utilizzati i seguenti pin della scheda Arduino 2009/NANO
 Pin +5V       -> Alimentazione
 Pin GND       -> Alimentazione
 Pin Digital  4-> Connesso al display LCD
 Pin Digital 10-> Connesso al pin DATA del sensore SHT11
 Pin Digital 11-> Connesso al pin CLOCK del sensore SHT11
 
 Creato il 20/8/2011
 da Adriano Gandolfo <http://www.adrirobot.it>
 basato su programma realizzato da Jonathan Oxer <jon@oxer.com.au> www.practicalarduino.com
 This example code is in the public domain.
 */

#include <SHT1x.h>

// Inclusione della libreria SoftwareSerial in
// modo da poter utilizzare le sue funzioni:
#include <SoftwareSerial.h>
#define rxPin 3
#define txPin 4

// Imposta una nuova porta seriale
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);
byte pinState = 0;

// Specfica pin per data e clock connessi al senosre SHT1x
#define dataPin  10
#define clockPin 11
SHT1x sht1x(dataPin, clockPin);

void setup()
{

  pinMode(rxPin, INPUT); // definisce i pin per tx, rx:
  pinMode(txPin, OUTPUT);

  // imposta la velocità della porta
  mySerial.begin(9600);
}
// Resetta il display, annullando qualsiasi scorrimento
// e la rimozione di tutto il testo
void clearLCD(){ 
  mySerial.print(0xFE, BYTE); //command flag 
  mySerial.print(0x01, BYTE); //Comando clear //
  delay(50);
} 
// Avvia il cursore all'inizio della prima linea
void firstrow(){ 
  mySerial.print(0xFE, BYTE); 
  mySerial.print(128, BYTE); 
  delay(2); 
} 
// Avvia il cursore all'inizio della seconda linea
void secndtrow(){ 
  mySerial.print(0xFE, BYTE); 
  mySerial.print(128+64, BYTE); 
  delay(2); 
} 

void loop()
{
  float temp_c;
  float humidity;
  // Lettura valori dal sensore
  temp_c = sht1x.readTemperatureC();
  humidity = sht1x.readHumidity();
  // Scrittura valori letti su LCD
  clearLCD(); 
  firstrow(); 
  mySerial.print("Temperatura:");
  mySerial.print(temp_c,DEC);  
  delay(500); 
  secndtrow(); 
  mySerial.print("Umidita'   :"); 
  mySerial.print(humidity,DEC);
  delay(1000);
}

 


Schema elettrico del modulo Parallax

Downloads & Risorse

Documentazione del Kit Sensirion  (.pdf)
Data Sheet Sensirion SHT1x  (.pdf)

 

Elenco revisioni
27/08/2011 Emissione preliminare