Temperatur och luftfuktighet övervakning med hjälp av SHT25 och partikel Photon (4 / 5 steg)
Steg 4: Temperatur och luftfuktighet övervakning kod:
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 >
SHT25 I2C adress är 0x40(64)
#define Addr 0x40
flyta fuktighet = 0,0, cTemp = 0,0, fTemp = 0,0;
void setup()
{
Variabeln
Particle.Variable ("i2cdevice", "SHT25");
Particle.Variable ("fukt", fuktighet);
Particle.Variable ("cTemp", cTemp);
Initialisera I2C kommunikation som MASTER
Wire.BEGIN();
Initialisera seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
Delay(300);
}
void loop()
{
unsigned int data [2].
Starta I2C kommunikation
Wire.beginTransmission(Addr);
Skicka luftfuktighet mätning kommando, NO HOLD master
Wire.write(0xF5);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(500);
Begäran 2 byte data
Wire.requestFrom (Addr, 2);
Läs 2 byte data
fuktighet msb, luftfuktighet lsb
IF(Wire.available() == 2)
{
data [0] = Wire.read();
data [1] = Wire.read();
Konvertera data
fukt = (((data [0] * 256,0) + data[1]) * 125,0) / 65536.0) - 6;
Utdata till dashboard
Particle.publish ("relativ luftfuktighet:", String(humidity));
}
Starta I2C-överföring
Wire.beginTransmission(Addr);
Skicka temperatur mätning kommando, NO HOLD master
Wire.write(0xF3);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(500);
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();
Konvertera data
cTemp = (((data [0] * 256,0) + data[1]) * 175.72) / 65536.0) - 46.85;
fTemp = (cTemp * 1,8) + 32;
Utdata till dashboard
Particle.publish ("temperaturen i Celsius:", String(cTemp));
Particle.publish ("temperaturen i Fahrenheit:", String(fTemp));
}
Delay(300);
}
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.