MLX90614 GY-906 Sensore temperatura IR

Il sensore MLX90614 GY-906 è in grado di misurare la temperatura degli oggetti senza doverli fisicamente toccare. Il sensore si può acquistare, già assemblato e dotato di tutti i componenti necessari all’utilizzo direttamente con Arduino.

MLX90614 GY-906 Sensore temperatura

Citazione dell’articolo nelle sezioni ARDUINOGADGETSTRUMENTAZIONE del Blog di Elettronica In

Caratteristiche del sensore

Il sensore MLX90614 prodotto Melexis (vedere datasheet) è un sensore di temperatura a infrarossi senza contatto.
Nello stesso package TO-39 sono integrati  sia il sensibile rivelatore termopila IR (MLX81101) che il circuito di condizionamento del segnale ASSP (MLX90302).

Grazie al suo amplificatore a basso rumore,  un ADC a 17 bit e una potente unità DSP,  si ottiene un’elevata precisione e risoluzione del termometro. Il termometro viene calibrato in fabbrica con un segnale PWM digitale  e un SMBus (System Management Bus).
I valori di calibrazione sono ampi: -40…125°C per la temperatura ambiente e -70…380°C per la temperatura dell’oggetto.
Come standard, il PWM a 10 bit è configurato per trasmettere continuamente la temperatura misurata nell’intervallo di -20…120°C, con una risoluzione di uscita di 0,14°C.
L’impostazione POR predefinita di fabbrica è SMBus.

Riassunto delle caratteristiche

  • Range di temperatura letta:
    – Da – 40 ° C a + 125 ° C per la temperatura del sensore (temperatura ambiente attorno al sensore)
    – Da – 70 ° C a + 380 ° C per la temperatura dell’oggetto letto a distanza
  • Precisione:  0,5 ° C su un’ampia gamma di temperature (0… + 50 ° C per Ta e To).  Calibrazione ad alta precisione (medica)
  • Risoluzione di misura: 0,02 ° C
  • Interfaccia digitale compatibile SMBus
  • Uscita PWM personalizzabile per la lettura continua o comunicazione I2C.

Video del test del sensore

Schema elettrico del modulo

Analizziamo ora lo schema elettrico del sensore MLX90614 GY-906 – Sensore temperatura.
Nello schema oltre al sensore nella versione MLX90614ESF, troviamo un modulo regolatore 662K 3.3V.

Questo permette di alimentare il modulo a 5V, con riduzioni del suo valore a quello di 3.3 V, valore massimo per il sensore.
E’ comunque possibile alimentare anche  con una tensione di 3,3 V sul pin VIN; la tensione passa attraverso il regolatore che presenta una caduta di tensione minima.
Quindi il modulo è compatibile con MCU da 3.3 a 5 V .
Troviamo poi due condensatori per il livellamento della tensione di alimentazione e due resistenze di  pull-up sulle linee SCL e SDA. Il PCB misura circa 17×11 mm.

Il progetto completo può essere anche scaricato dal mio account presso OSHWLabutilizzando questo link.

MLX90614 GY-906 Sensore temperatura

Tipologia di sensore

Il modulo MLX90614 GY-906 può essere trovato in tre diverse tipologie: BAA, BCC e DCI.  Questi differiscono principalmente per l’accuratezza e la distanza di misura della temperatura .

MLX90614 GY-906 Sensore temperatura

Dove trovare il sensore?

Il sensore MLX90614 GY-906  può essere acquistato presso il sito FUTURA ELETTRONICA, il codice prodotto è 1606-MLX90614. Il suo costo, al momento della pubblicazione di questo articolo è di 27,50 €.
Citazione dell’articolo nella sezione ARDUINO, GADGET, STRUMENTAZIONE di Elettronica In

MLX90614 GY-906 Sensore temperatura

MLX90614 GY-906 Sensore temperatura

MLX90614 GY-906 Sensore temperatura

MLX90614 GY-906 Sensore temperatura

Collegamento di base del sensore

Vediamo prima di tutto il collegamento di base del sensore di temperatura MLX90614 GY-906; in questo caso leggeremo i valori forniti dal sensore tramite il monitor seriale dell’IDE.

Materiale occorrente

Il materiale per realizzare il nostro termometro è formato da:

Scheda Arduino UNO Sensore di temperatura MLX90614 GY-906

Bread board

Cavi di collegamento colorati M/M
Ourpcb

Schema dei collegamenti

MLX90614 GY-906 Sensore temperatura

Verifica dell’indirizzo I2C

Per prima cosa andiamo a scoprire e verificare l’indirizzo i2c del sensore tramite lo Sketch i2c_scan che troveremo nella sezione “File” –> “Esempi” –> “Wire”–> “i2c_scaner” dell’IDE di Arduino.

Carichiamolo sulla nostra scheda ed apriamo il monitor seriale con il tasto

Il risultato sarà simile al seguente:

Se non leggiamo nulla potremmo aver invertito i cavi del collegamento I2C , provate ad invertirli.
Se tutto è corretto, leggeremo il suo indirizzo che è 0x5A; è possibile comunque modificarlo nel caso si utilizzino più sensori o magari si abbiano altre periferiche I2C con lo stesso indirizzo.
In questo caso è possibile utilizzare la libreria fornita dalla Sparkfun che negli esempi ha un’apposito sketch “Example4_Change_i2c_Address

Librerie di gestione del modulo

Per facilitare l’uso del  modulo sono disponibili varie librerie. Per il caricamento occorre aprire sotto il menù Sketch, #include libreria, “Gestione Librerie..”

Nel campo ricerca si inserirà “MLX90614” , trovata la libreria “Adafruit MLX90614 Library” , premendo su “More info..” apparirà il tasto “Installa” cliccare il tasto, la libreria verrà installata.

MLX90614 GY-906 Sensore temperatura

se non avete ancora utilizzato delle librerie Adafruit potrebbe esservi segnalato che deve essere caricata anche la libreria “Adafruit BusIO” nel caso cliccate su “Install all

Sketch test di base

Sotto è riportato lo sketch di base per la lettura del sensore, sono mostrati i dati della temperatura ambiente e dell’oggetto; nel nostro caso il nostro dito, posto a pochi centimetri dal sensore.
I valori sono mostrati sia in gradi Celsius che in gradi Fahrenheit, il campionamento è di 2 secondi.
Per la lettura occorre attivare il monitor seriale dell’IDE premendo l’apposito tasto

Il risultato sarà simile a questo

MLX90614 GY-906 Sensore temperatura

Lettura valori su display OLED

Per un utilizzo più semplice del sensore possiamo utilizzare un display OLED, in questo caso un modulo OLED da  0.96 ” con una risoluzione di 128×64 pixel, che sfrutta il driver SSD1306 e si interfaccia tramite la connessioni I2C. Per informazioni sul display vi consiglio la lettura dell’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306

Materiale necessario

Scheda Arduino UNO

Sensore di temperatura MLX90614 GY-906

OLED  0.96 ” 128×64 pixel I2C

Bread board

Cavi di collegamento colorati M/M

Schema dei collegamenti

MLX90614 GY-906 Sensore temperatura

MLX90614 GY-906 Sensore temperatura

Libreria per display OLED

Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.
Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“.  Procedete premendo  “Install all”.
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria

Sketch test con display OLED

Sotto è riportato lo sketch di base per la lettura del sensore, sono mostrati i dati della temperatura ambiente e dell’oggetto, nel nostro caso il nostro dito, posto a pochi centimetri dal sensore. I dati sono mostrati sul display OLE, il campionamento è di 1/2 secondo

MLX90614 GY-906 Sensore temperatura

Progetti futuri

In preparazione il progetto di un termometro che comunicherà a voce il valore letto

MLX90614 GY-906 Sensore temperaturaSensore e display montato su DFPlayer test board