Sommario:

Monitoraggio della temperatura utilizzando MCP9808 e Particle Photon: 4 passaggi
Monitoraggio della temperatura utilizzando MCP9808 e Particle Photon: 4 passaggi

Video: Monitoraggio della temperatura utilizzando MCP9808 e Particle Photon: 4 passaggi

Video: Monitoraggio della temperatura utilizzando MCP9808 e Particle Photon: 4 passaggi
Video: Arduino: Sensore di temperatura MCP9808 2024, Dicembre
Anonim
Image
Image

MCP9808 è un sensore di temperatura digitale ad alta precisione ±0,5°C I2C mini modulo. Sono dotati di registri programmabili dall'utente che facilitano le applicazioni di rilevamento della temperatura. Il sensore di temperatura ad alta precisione MCP9808 è diventato uno standard industriale in termini di fattore di forma e intelligenza, fornendo segnali del sensore calibrati e linearizzati in formato digitale I2C.

In questo tutorial è stato dimostrato l'interfacciamento del modulo sensore MCP9808 con il fotone particellare. Per leggere i valori di temperatura, abbiamo utilizzato raspberry pi con un adattatore I2c. Questo adattatore I2C rende la connessione al modulo sensore facile e più affidabile.

Passaggio 1: hardware richiesto:

Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto

I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:

1. MCP9808

2. Fotone particellare

3. Cavo I2C

4. Scudo I2C per fotoni di particelle

Passaggio 2: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione sui collegamenti hardware spiega sostanzialmente le connessioni di cablaggio richieste tra il sensore e il fotone particellare. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:

L'MCP9808 funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.

Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico. Tutto ciò di cui hai bisogno sono quattro fili!

Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.

Queste connessioni sono mostrate nelle immagini sopra.

Passaggio 3: codice per la misurazione della temperatura:

Codice per la misurazione della temperatura
Codice per la misurazione della temperatura

Cominciamo ora con il codice particellare.

Durante l'utilizzo del modulo sensore con arduino, includiamo la libreria application.h e spark_wiring_i2c.h. La libreria "application.h" e spark_wiring_i2c.h contiene le funzioni che facilitano la comunicazione i2c tra il sensore e la particella.

L'intero codice particella è riportato di seguito per comodità dell'utente:

#includere

#includere

// L'indirizzo I2C di MCP9808 è 0x18(24)

#define Indirizzo 0x18

float cTemp = 0, fTemp = 0;

configurazione nulla()

{

// Imposta variabile

Particle.variable("i2cdevice", "MCP9808");

Particle.variable("cTemp", cTemp);

// Inizializza la comunicazione I2C come MASTER

Wire.begin();

// Inizializza la comunicazione seriale, imposta la velocità di trasmissione = 9600

Serial.begin(9600);

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di configurazione

Wire.write(0x01);

// Modalità di conversione continua, impostazione predefinita all'accensione

Wire.write(0x00);

Wire.write(0x00);

// Interrompi trasmissione I2C

Wire.endTransmission();

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di risoluzione

Wire.write(0x08);

// Risoluzione = +0.0625 / C

Wire.write(0x03);

// Interrompi trasmissione I2C

Wire.endTransmission();

ritardo(300);

}

ciclo vuoto()

{

dati int senza segno[2];

// Avvia la comunicazione I2C

Wire.beginTransmission(Addr);

// Seleziona registro dati

Wire.write(0x05);

// Interrompe la trasmissione I2C

Wire.endTransmission();

// Richiedi 2 byte di dati

Wire.requestFrom(Addr, 2);

// Legge 2 byte di dati

//temp msb, temp lsb

if(Filo.disponibile() == 2)

{

data[0] = Wire.read();

data[1] = Wire.read();

}

ritardo(300);

// Converti i dati a 13 bit

int temp = ((data[0] & 0x1F) * 256 + data[1]);

if(temp > 4095)

{

temperatura -= 8192;

}

cTemp = temperatura * 0,0625;

fTemp = cTemp * 1,8 + 32;

// Invia i dati alla dashboard

Particle.publish("Temperatura in gradi Celsius: ", String(cTemp));

Particle.publish("Temperature in Fahrenheit: ", String(fTemp));

ritardo (500);

}

La funzione Particle.variable() crea le variabili per memorizzare l'output del sensore e la funzione Particle.publish() visualizza l'output sulla dashboard del sito.

L'uscita del sensore è mostrata nell'immagine sopra come riferimento.

Passaggio 4: applicazioni:

Applicazioni
Applicazioni

Il sensore di temperatura digitale MCP9808 ha diverse applicazioni di livello industriale che incorporano congelatori e frigoriferi industriali insieme a vari robot da cucina. Questo sensore può essere impiegato per vari personal computer, server e altre periferiche per PC.

Consigliato: