Temperatur och luftfuktighet övervakning med SHT25 och Raspberry Pi (4 / 5 steg)
Steg 4: Temperatur och luftfuktighet övervakning Java-kod:
Fördelen med att använda raspberry pi är som ger dig flexibiliteten i det programmera språket som du vill programmera styrelsen för att gränssnittet sensorn med det. Utnyttja denna fördel av denna styrelse, visar vi här sin programmering i Java. Java-kod för SHT25 kan hämtas från vår github gemenskap som är Kontroll allt gemenskap.
Samt för att underlätta för användarna, förklarar vi koden här också:
Som ett första steg av kodning måste du ladda ner pi4j biblioteket vid java, eftersom detta bibliotek stöder funktioner används i koden. Så, om du vill ladda ner biblioteket kan du besöka följande länk:
Du kan också kopiera arbetar Javakod för denna sensor härifrån:
import com.pi4j.io.i2c.I2CBus;
import com.pi4j.io.i2c.I2CDevice;
import com.pi4j.io.i2c.I2CFactory;
import java.io.IOException;
allmän klass SHT25
{
public static void main (String args[]) kastar undantag
{
Skapa I2C bussen
I2CBus buss = I2CFactory.getInstance(I2CBus.BUS_1);
Får I2C enheten, SHT25 I2C adress är 0x40(64)
I2CDevice device = Bus.getDevice(0x40);
Skicka temprature mätning kommando, NO HOLD master
Device.write((byte)0xF3);
Thread.Sleep(500);
Läs 2 byte data
Temp msb, temp lsb
byte [] data = nya byte [2].
Device.Read (data, 0, 2);
Konvertera data
Double cTemp = (((data [0] & 0xFF) * 256) + (data [1] & 0xFF)) * 175.72) / 65536.0) - 46.85;
Double fTemp = (cTemp * 1,8) + 32;
Skicka luftfuktighet mätning kommando, NO HOLD master
Device.write((byte)0xF5);
Thread.Sleep(500);
Läs 2 byte data
fuktighet msb, luftfuktighet lsb
Device.Read (data, 0, 2);
Konvertera data
dubbel fuktighet = (((data [0] & 0xFF) * 256) + (data [1] & 0xFF)) * 125,0) / 65536.0) - 6;
Utdata till skärm
System.out.printf ("relativ luftfuktighet: %.2f %% RH %n", fuktighet);
System.out.printf ("temperaturen i Celsius: %.2f C %n", cTemp);
System.out.printf ("temperaturen i Farhenheit: %.2f F %n", fTemp);
}
}
Produktionen av koden visas också på bilden ovan.
Biblioteket som underlättar i2c kommunikation mellan sensorn och styrelsen är pi4j, dess olika paket I2CBus, I2CDevice och I2CFactory hjälp för att upprätta anslutningen.
import com.pi4j.io.i2c.I2CBus;
import com.pi4j.io.i2c.I2CDevice;
import com.pi4j.io.i2c.I2CFactory;
import java.io.IOException;
Denna del av koden gör sensorn fungera för temperaturmätning och luftfuktighet mätning genom att skriva kommandona respektive med funktionen anropa och sedan data läses med funktionen read().
Device.write((byte)0xF3);
Thread.Sleep(500);
Läs 2 byte data
Temp msb, temp lsb
byte [] data = nya byte [2].
Device.Read (data, 0, 2);
Skicka luftfuktighet mätning kommando, NO HOLD master
Device.write((byte)0xF5);
Thread.Sleep(500);
Läs 2 byte data
fuktighet msb, luftfuktighet lsb
Device.Read (data, 0, 2);