Il sensore di temperatura ed umidità del suolo SHT10 Soil Temperature Moisture Sensor é ideale nei progetti in cui vuoi monitorare la temperatura del suolo con una sonda digitale.
La differenza tra una sonda analogica ed una digitale è data dall’affidabilità del dato anche su lunghe distanze in quanto il segnale non è influenzato dalla lunghezza dei cavi in quanto il dato non è misurato come differenza di potenziale tra i poli ed il cavo dati.
Le sonde digitali come la SHT10 Soil Temperature Moisture Sensor sono dotate di 4 cavi:
- rosso -> vcc +3,3v o 5v
- nero o verde -> gnd
- giallo -> clock
- blu -> data
Notice
Il produttore del sensore inserisce nella confezione 1 o 2 resistenze da 10Kohm e RACCOMANDA che queste siano collegate tra il pin data ( cavo blu ) e il Vcc ( cavo rosso )
Collegamenti della SHT10 Soil Temperature Moisture Sensor ad Arduino
Il collegamento è molto semplice, parti dall’alimentazione, il SHT10 Soil Temperature Moisture Sensor puoi alimentarlo a 3,3v o a 5v indifferentemente per cui io consiglio di usare i 3,3v in quanto i 5v di arduino in un progetto è sempre richiesta da altre sonde o componenti.
In pratica ho collegato in questo modo la SHT10 Soil Temperature Moisture Sensor ad arduino:
ho saldato al resistenza tra il filo blu ( Data ) ed il filo rosso ( Vcc o +5v ):
Smontare la sonda SHT10 Soil Temperature Moisture Sensor
La sonda SHT10 Soil Temperature Moisture Sensor può essere smontato per pulirlo o per sostituire i componenti danneggiati.
Sia il cavo sia la ghiera metallica che protegge il sensore puoi svitarli. Dal lato del cavo c’è un connettore a 4 fili:
mentre sotto la ghiera metallica si nasconde l’anima del SHT10 Soil Temperature Moisture Sensor protetto in modo opportuno perché non sia danneggiato dall’acqua quando posizionato nel terreno:
La ghiera inoltre è studiata in modo da permettere la misurazione dell’umidità del terreno senza compromettere l’elettronica facendola raggiungere dall’acqua.
La libreria per usare la sonda
Come spesso accade per le sonde di tipo digitale come questa è disponibile una libreria o API che semplifica la scrittura dello sketch per la sonda.
Trovi l’api disponibile su github.
Inizia con cliccare sul pulsante “download” in basso a destra presente nella schermata di github:
decomprimi il file zip ottenuto:
copia l’intera cartella relativa alla libreria del SHT10 Soil Temperature Moisture Sensor nel path relativo alle librerie del tuo IDE arduino:
ricorda che i file copiati nella directory librerie dell’IDE arduino possono contenere solo caratteri e numeri per cui devi rinominare la directory come SHT11 o similare a seconda delle tue preferenze:
Avvia quindi l’IDE Arduino e carica l’esempio fornito con la libreria:
Sketch di esempio ed uso della libreria SHT10
L’esempio di sketch è il seguente:
/** * ReadSHT1xValues * * Read temperature and humidity values from an SHT1x-series (SHT10, * SHT11, SHT15) sensor. * * Copyright 2009 Jonathan Oxer <jon@oxer.com.au> * www.practicalarduino.com */ #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(); temp_f = sht1x.readTemperatureF(); humidity = sht1x.readHumidity(); // Print the values to the serial port Serial.print("Temperature: "); Serial.print(temp_c, DEC); Serial.print("C / "); Serial.print(temp_f, DEC); Serial.print("F. Humidity: "); Serial.print(humidity); Serial.println("%"); delay(2000); }
le linee di codice relative all’interrogazione della sonda SHT10 Soil Temperature Moisture Sensor sono poche in quanto la libreria si preoccupa di semplificare tutto il lavoro di comunicazione.
Alla linea 11: includi la classe SHT1x.h che si occupa della comunicazione con la sonda;
linee 14-15: definisci i pin a cui hai collegato la sonda, pin 10 data e pin 11 clock;
linea 16: crea una istanza della classe SHT1x definita come sht1x( data,clock );
linee 18-22: definisci la funzione setup() il cui compito in questo sketch è solo quello di definire il canale di comunicazione seriale a 38400 baud;
linee 26-28: definisci 3 variabili di tipo float ossia con virgola in ciascuna delle quali registrerai un valore di quelli restituiti dalla SHT10 Soil Temperature Moisture Sensor;
linea 31: interroga la sonda per recuperare la temperatura in gradi centigradi ( Celsius ) mediante il metodo readTemperatureC() offerto dalla libreria SHT1x;
linee 32-33: recupera i valori di temperatura in gradi Fahrenheit e di umidità;
linee 36-42: scrivi sul monitor seriale i valori recuperati dalla sonda;
linea 44: attendi un tempo di 2 secondi ( 2000 millisecondi ) prima di eseguire nuovamente il loop().
Sul monitor seriale dovresti leggere valori simili a quelli riportati nella figura seguente:
almeno questi sono i valori che ho letto sul mio SHT10 Soil Temperature Moisture Sensor non inserito nel terreno.
Buon test !!!
12 commenti
1 ping
Vai al modulo dei commenti
se io faccio l’orto da aprile a settembre lasciandola sempre nel terreno non si rovina
Autore
Ciao Luca,
questa sonda viene venduta proprio con l’idea di impiegarla per lunghi periodi nel terreno.
Ho realizzato alcuni progetti di monitoraggio con questa sonda ed ad oggi nessuno mi ha ancora scritto per lamentarsi della sonda.
dovrei misurare la umidita nei sacchi contenenti granuli di plastica
io faccio gia sonde per misurare la umidita e temperatura aria
saluti
Autore
Ciao Gianpaolo,
mi chiedi se questo sensore va bene ?
Se produci già sonde ne sai di certo più di me 🙂
Io dovrei usare questa sonda in una piccola serra per rilevare l’umidita del terreno pero cercando su internet ho visto che ci sono altre sonde che sono:
Sht11
Sht15
Seconde te quel’è la migiore di queste e cosa cambia da una all’altra
sht10 ,sht11 , sht15
Grazie
Autore
Ciao Andrea,
purtroppo non conosco tutte le sonde che esistono ma solo quellle che testo, in ogni caso penso che le differenze tu possa leggerle sui siti dei produttori delle singole sonde. Probabilmente saranno differenti i range di funzionamento e le precisioni.
Buongiorno
vorrei un chiarimento in merito a quello che è scritto sopra nell’articolo: ” Il produttore del sensore inserisce nella confezione 1 o 2 resistenze da 10Kohm e RACCOMANDA che queste siano collegate tra il pin data ( cavo blu ) e il Gnd ( cavo verde o nero ) “, perché la resistenza è saldata invece sul filo rosso? cioè 5volt, vedi foto
grazie e complimenti per il sito che leggo spesso
Saluti, Luigi
Autore
Ciao Luigi,
si tratta di un refuso, ho corretto grazie per la segnalazione, la resistenza va tra il cavo Data ( blu ) ed il cavo Vcc ( rosso ) come descritto in seguito nell’articolo.
Ciao Mauro complimenti per il tutorial. Volevo gentilmente chiederti un consiglio su come gestire contemporaneamente le letture di 2 sonde di questo tipo invece che solo una. Devo solo andare a definire due nuovi pin per il secondo sensore
es
#define dataPin 5
#define clockPin 6
Per la seconda sonda? La libreria resta invariata?
Grazie mille
Buona giornata
Luca
Autore
Ciao Luca,
leggendo la libreria ed il mio esempio, un po’ datato, sembra che sia sufficente in quanto la libreria è in grado di fare questa operazione di switch dei pin di lettura in modo autonomo.
Buongiorno è possibile inserire la sonda anche 30/40 cm sotto al terreno?
Autore
Ciao Giovanni,
teoricamente si, tuttavia maggiori dettagli sono disponibili sul sito del produttore.
[…] leggere i test sui sensori citati in questi articoli già pubblicati DHT11, SHT10, […]