Termometro ed Igrometro con Arduino M0 Pro su display LCD 16X2

Quante volte si ha la necessità di  controllare la temperatura in un ambiente domestico o in una serra e nello stesso tempo tenere traccia dell'umidità del terreno? Bene, questo articolo avrà lo scopo di illustrare come è possibile rilevare la temperatura e l'umidità di due sensori differenti, su due canali analogici della board Arduino M0 Pro, impostando una temperatura di riferimento entro la quale il nostro ambiente dovrà mantenersi e nello stesso tempo avendo la possibilità di monitorare l'umidità del terreno sottostante. Tutto ciò verrà visualizzato su un display 16X2 con controller Hitachi compatibile, mediante il driver LCD_m0 da me sviluppato ed approfondito nel suo funzionamento in un articolo precedente.

Qualcuno di voi lettori potrà subito pensare che la board in questione è sicuramente sovradimensionata per il compito che avrà da svolgere in questo progetto, ed in effetti è così viste le potenzialità della M0Pro.

La sostanza dell'articolo però non vuole essere banalmente quella di insegnare a come leggere il valore da un sensore e visualizzarlo su un display, ma quella di far prendere dimestichezza con gli strumenti fondamentali della programmazione di Arduino M0 Pro a chi è alle prime armi con lo studio di un progetto utile e poco complesso.

Arduino M0Pro differisce un pò per alcuni aspetti dalle altre board Arduino, per le quali ad oggi si trova tantissimo materiale online, mentre vista la recente uscita di quest'ultima alcune informazioni sono difficili da reperire quindi in molti si allontanano dallo scoprire un dispositivo che ha davvero tantissime potenzialità.

Per la descrizione del progetto partiremo dall'introdurre i due sensori utilizzati, per poi dare un'occhiata alla conversione A/D ed alle parti salienti del firmware.

1. Il sensore di temperatura LM35

Questo sensore oltre ad essere molto comune nelle applicazioni a microcontrollore è facilmente interfacciabile e molto preciso nel suo range di funzionamento ideale e reale.

E' costituito da soli 3 pin ed è anche disponibile nel package TO-92 (figura 1), ha un andamento lineare di 10mV/°C , un range di funzionamento che va da -55°C a + 150°C ed un'accuratezza di 0.5 °C a 25°C di temperatura di lavoro.

Nel nostro progetto sfrutteremo la sola dinamica positiva del dispositivo, ovvero il range 0 - 100 °C.

lm35

Figura 1: Piedinatura e caratteristiche del sensore LM35

Inoltre come visibile dalla tabella precedente, il dispositivo è perfettamente compatibile con una tensione di alimentazione di 3.3 Volt, che nel nostro caso verrà prelevata direttamente dalla M0Pro.

L'interfaccia tra sensore e MoPro è semplice, si potrebbe pensare di collegare direttamente il pin Vo all'ingresso analogico A0 della board. Io ho scelto la configurazione con filtro RC  di modo che, qualora si voglia installare il sensore distante dalla scheda mediante un cavo di prolungamento, non si avranno problemi di accoppiamento di impedenza ed inoltre in presenza di segnali ad alta frequenza vicini al cavo, che potrebbe fungere da antenna, questi verrebbero cortocircuitati a massa dal filtro evitando così interferenze sul segnale utile che come già detto è di qualche decina/centinaia di millivolt (Figura 2.).

lm35_2Figura 2: Configurazione filtro RC

Nella conversione A/D dei valori di tensione generati da questo sensore, verrà utilizzata una tensione di riferimento  interna all'ATSAMD21G18 pari ad 1 Volt.

Mediante questa scelta ed in base alle caratteristiche del LM35, avremo modo di sfruttare a pieno la dinamica del sensore sui valori positivi delle temperature.

2. Il sensore di Umidità YL-38 +YL-69

hygrometer1

Figura 3: sensore di Umidità YL-38 +YL-69

Questo sensore (Fig.3) è della categoria low cost, ha un principio di funzionamento molto semplice ed è costituito da due uscite, una analogica Ac ed una digitale Out.

Il dispositivo è composto sostanzialmente da una resistenza variabile che cambia il suo valore in base a quanta umidità entra in contatto con la sua superficie della zona conduttiva del YL-69 e da un amplificatore operazionale in configurazione comparatore (Yl-38), che permette di attivare o disattivare opportunamente l'uscita digitale in base al valore di tensione sul pin non invertente INA+.

Il valore della resistenza generato dal YL-69, provoca appunto una caduta di tensione sul pin invertente dell'opamp LM393 che viene trasferito direttamente in uscita.

Nello stesso tempo questo valore di tensione dato dalla caduta sull'elemento sensibile del YL69, viene comfrontato con quello presente sul pin non invertente INAimpostato precedentemente dal trimmer R2 da 10K. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2664 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

4 Commenti

  1. Maurizio Di Paolo Emilio Maurizio 21 gennaio 2016
  2. Fabio 24 gennaio 2016
  3. Fabio 27 gennaio 2016

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!