Tryck mätning med hjälp av CPS120 och partikel Photon (3 / 4 steg)
Steg 3: Koden för mä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 >
CPS120 I2C adress är 0x28(40)
#define Addr 0x28
dubbel temperatur = 0,0, tryck = 0,0;
void setup()
{
Variabeln
Particle.Variable ("i2cdevice", "CPS120");
Particle.Variable ("pressure", pressa);
Particle.Variable ("temperatur", temperatur);
Initialisera I2C kommunikation som MASTER
Wire.BEGIN();
Initialisera seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
}
void loop()
{
unsigned int data [4].
Starta I2C-överföring
Wire.beginTransmission(Addr);
Delay(10);
Stoppa I2C sändningen
Wire.endTransmission();
Begäran 4 byte data
Wire.requestFrom (Addr, 4);
Läs 4 byte data
Tryck msb, tryck lsb, temp msb, temp lsb
IF(Wire.available() == 4)
{
data [0] = Wire.read();
data [1] = Wire.read();
data [2] = Wire.read();
data [3] = Wire.read();
}
Konvertera värden
Tryck = (((0x3F & data [0]) * 265 + data[1]) / 16384.0) * 90,0) + 30,0;
cTemp = (((data [2] * 256) + (data [3] & 0xFC)) / 4.0) * (165.0 / 16384.0)) - 40,0;
fTemp = cTemp * 1,8 + 32.
Utdata till dashboard
Particle.publish ("trycket är:", String(pressure));
Delay(1000);
Particle.publish ("temperaturen i Celsius:", String(cTemp));
Delay(1000);
Particle.publish ("temperaturen i Fahrenheit:", String(fTemp));
Delay(1000);
}
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.