Måling av temperatur ved bruk av LM75BIMM og partikkelfoton: 4 trinn

Måling av temperatur ved bruk av LM75BIMM og partikkelfoton: 4 trinn

Innholdsfortegnelse:

Anonim

Materialene som vi trenger for å oppnå vårt mål, inkluderer følgende maskinvarekomponenter:

1. LM75BIMM

2. Partikkelfoton

3. I2C-kabel

4. I2C skjold for partikkelfoton

Trinn 2: Hardware Hookup:

Maskinvareoppkoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonen. Sikre korrekte tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så er de nødvendige tilkoblinger som følger:

LM75BIMM vil fungere over I2C. Her er eksemplet ledningsdiagram, som viser hvordan du kobler opp hvert grensesnitt av sensoren.

Utenfor boksen er brettet konfigurert for et I2C-grensesnitt. Vi anbefaler derfor å bruke denne tilkoblingen hvis du ellers er agnostisk.

Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA pins og disse er koblet til ved hjelp av I2C-kabel.

Disse forbindelsene er vist i bildene ovenfor.

Trinn 3: Kode for temperaturmåling:

La oss starte med partikkelen nå.

Ved bruk av sensormodulen med partikkelen inkluderer vi application.h og spark_wiring_i2c.h bibliotek. "application.h" og spark_wiring_i2c.h bibliotek inneholder funksjonene som letter i2c-kommunikasjonen mellom sensoren og partikkelen.

Hele partikkelkoden er gitt nedenfor for brukervennligheten til brukeren:

#inkludere

#inkludere

// LM75BIMM I2C-adressen er 0x49 (73)

#define Addr 0x49

dobbelt cTemp = 0.0, fTemp = 0.0;

ugyldig oppsett ()

{

// Sett variabel

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

Partikkel.variabel ("cTemp", cTemp);

// Initialise I2C-kommunikasjon som MASTER

Wire.begin ();

// Initialiser Seriell kommunikasjon, sett baud rate = 9600

Serial.begin (9600);

// Start I2C-overføring

Wire.beginTransmission (Adr);

// Velg konfigurasjonsregister

Wire.write (0x01);

// Kontinuerlig drift, normal drift

Wire.write (0x00);

// Stopp I2C-overføring

Wire.endTransmission ();

forsinkelse (300);

}

tomromsløyfe ()

{

usignerte int data 2;

// Start I2C-overføring

Wire.beginTransmission (Adr);

// Velg temperaturdatabase

Wire.write (0x00);

// Stopp I2C-overføring

Wire.endTransmission ();

// Be om 2 byte med data

Wire.requestFrom (Adr, 2);

// Les 2 byte med data

// temp msb, temp lsb

if (Wire.available () == 2)

{

data 0 = Wire.read ();

data 1 = Wire.read ();

}

// Konverter dataene til 9-bits

int temp = (data 0 * 256 + (data 1 & 0x80)) / 128;

hvis (temp> 255)

{

temp - = 512;

}

cTemp = temp * 0,5;

fTemp = cTemp * 1,8 + 32;

// Utgangsdata til dashbordet

Particle.publish ("Temperatur i Celsius:", String (cTemp));

forsinkelse (1000);

Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));

forsinkelse (1000);

}

Funksjonen Particle.variable () lager variablene til å lagre sensorens utgang og Particle.publish () -funksjonen viser utdataene på dashbordet på nettstedet.

Sensorutgangen er vist på bildet ovenfor for referanse.

Trinn 4: Programmer:

LM75BIMM er ideell for en rekke applikasjoner, inkludert basestasjoner, elektronisk testutstyr, kontorelektronikk, personlige datamaskiner eller andre systemer hvor temperaturovervåking er kritisk for ytelsen. Derfor har denne sensoren en sentral rolle i mange av de høytemperaturfølsomme systemene.