Temperaturövervakning med hjälp av MCP9808 och partikel Photon (3 / 4 steg)
Steg 3: Kod för temperaturmätning:
Kan börja med partikel koden nu.
När du använder modulen sensor med arduino, inkluderar vi application.h och spark_wiring_i2c.h bibliotek. "application.h" och spark_wiring_i2c.h bibliotek innehåller funktioner som underlättar i2c kommunikationen mellan sensorn och partikeln.
Hela partikel koden ges nedan för att underlätta för användaren:
#include < application.h >
#include < spark_wiring_i2c.h >
MCP9808 I2C adress är 0x18(24)
#define Addr 0x18
flyta cTemp = 0, fTemp = 0;
void setup()
{
Variabeln
Particle.Variable ("i2cdevice", "MCP9808");
Particle.Variable ("cTemp", cTemp);
Initialisera I2C kommunikation som MASTER
Wire.BEGIN();
Initialisera seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj konfigurationen register
Wire.write(0x01);
Kontinuerlig omvandling läge, uppstart standard
Wire.write(0x00);
Wire.write(0x00);
Stoppa I2C sändningen
Wire.endTransmission();
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj upplösning rgister
Wire.write(0x08);
Upplösning = +0.0625 / C
Wire.write(0x03);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(300);
}
void loop()
{
unsigned int data [2].
Börjar I2C kommunikation
Wire.beginTransmission(Addr);
Välj dataregister
Wire.write(0x05);
Stoppa I2C sändningen
Wire.endTransmission();
Begäran 2 byte data
Wire.requestFrom (Addr, 2);
Läs 2 byte data
Temp msb, temp lsb
IF(Wire.available() == 2)
{
data [0] = Wire.read();
data [1] = Wire.read();
}
Delay(300);
Konvertera data till 13-bitar
int temp = ((data [0] & 0x1F) * 256 + data[1]);
IF(temp > 4095)
{
Temp-= 8192;
}
cTemp = temp * 0.0625;
fTemp = cTemp * 1,8 + 32.
Utdata till dashboard
Particle.publish ("temperaturen i Celsius:", String(cTemp));
Particle.publish ("temperaturen i Fahrenheit:", String(fTemp));
Delay(500);
}
Particle.Variable() funktion skapar variabler för att lagra utdata från sensorn och Particle.publish() funktion visar utdata på instrumentbrädan av webbplatsen.
Sensor utdata visas i bilden ovan som referens.