Stap 3: Code
De java-code voor TMP112 kan worden gedownload van onze github archief-ControlEverythingCommunity
Hier is de link voor hetzelfde:
https://github.com/ControlEverythingCommunity/TMP1...
Het gegevensblad van TMP112 kan hier worden gevonden:
http://www.ti.com/lit/DS/sbos473e/sbos473e.PDF
We hebben pi4j bibliotheek voor java code gebruikt, de stappen te installeren pi4j op de raspberry pi is hier beschreven:
U kunt ook de code kopiëren vanaf hier, het wordt als volgt gegeven:
Gedistribueerd met een licentie van de vrije wil.
Gebruik het elke manier wilt u, op de winst of het gratis, mits het past in de licenties van de bijbehorende werken.
TMP112
Deze code is ontworpen om te werken met de Module TMP112_I2CS Mini-beschikbaar vanaf ControlEverything.com I2C
. / / https://www.controleverything.com/content/Tempera...
importeren van com.pi4j.io.i2c.I2CBus;
importeren van com.pi4j.io.i2c.I2CDevice;
importeren van com.pi4j.io.i2c.I2CFactory;
importeren van java.io.IOException;
openbare klasse TMP112
{
openbare statische nietige leiding (Koord args[]) gooit uitzondering
{
I2C bus maken
I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1);
Krijg I2C apparaat, TMP112I2C adres is 0x48(72)
I2CDevice apparaat = bus.getDevice(0x48);
byte [] config = nieuwe byte [2];
Continu-conversiemodus, 12-bits resolutie, schuld wachtrij is 1
config [0] = (byte) 0x60;
Polariteit laag, thermostaat in Comparator modus, schakelt afsluiten
config [1] = (byte) 0xA0;
Write config om te registreren op 0x01(1)
Device.write (0x01, config, 0, 2);
Thread.Sleep(500);
Lees 2 Bytes aan gegevens van adres 0x00(0), msb eerst
[] bytegegevens = nieuwe byte [2];
Device.Read (0x00, gegevens, 0, 2);
Gegevens converteren
int. temp = ((([0] gegevens & 0xFF) * 256) + (gegevens [1] & 0xFF)) / 16;
if(temp > 2047)
{
Temp-= 4096;
}
dubbele cTemp = temp * 0.0625;
dubbele fTemp = cTemp * 1.8 + 32;
Output naar het scherm
System.out.printf ("temperatuur in Celsius is: %.2f C %n", cTemp);
System.out.printf ("temperatuur in Fahrenheit is: %.2f F %n", fTemp);
}
}