Raspberry Pi MCP9805 temperatur Sensor Java Tutorial (3 / 4 steg)
Steg 3: kod
Java-kod för MCP9805 kan hämtas från vår github repository-ControlEverythingCommunity
Här är länken för samma:
https://github.com/ControlEverythingCommunity/MCP9...
Databladet för MCP9805 kan hittas här:
http://WW1.microchip.com/downloads/en/DeviceDoc/21...
Vi har använt pi4j bibliotek för java-kod, stegen för att installera pi4j på raspberry pi som beskrivs här:
Du kan också kopiera koden från här, det ges enligt följande:
Distribueras med en fri vilja licens.
Använda det något sätt du vill, vinst eller gratis, förutsatt att den passar i licenser av dess tillhörande arbeten.
MCP9805
Denna kod är utformad att fungera med MCP9808_I2CS I2C Mini modulen tillgänglig från ControlEverything.com.
https://www.controleverything.com/content/tempera...
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 MCP9805
{
public static void main (String args[]) kastar undantag
{
Skapa I2C bussen
I2CBus buss = I2CFactory.getInstance(I2CBus.BUS_1);
Får I2C enheten, MCP9805 I2C adress är 0x18(24)
I2CDevice device = Bus.getDevice(0x18);
Thread.Sleep(300);
Välj konfigurationen register
Kontinuerlig omvandling läge, uppstart
byte [] config = nya byte [2].
config [0] = 0x00;
config [1] = 0x00;
Device.write (0x01, config, 0, 2);
Välj upplösning rgister
Upplösning = +0.0625 / C
Device.write (0x08, (byte) 0x03);
Thread.Sleep(300);
Läs 2 byte från adress 0x05(05)
Temp msb, temp lsb
byte [] data = nya byte [2].
Device.Read (0x05, data, 0, 2);
Konvertera data till 13-bitar
int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF));
IF(temp > 4095)
{
Temp-= 8192;
}
Double cTemp = temp * 0.0625;
Double fTemp = cTemp * 1,8 + 32.
Utdata till skärm
System.out.printf ("temperaturen i Celsius är: %.2f C %n", cTemp);
System.out.printf ("temperaturen i Fahrenheit är: %.2f F %n", fTemp);
}
}