Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
MCP9805 ist ein digitaler Temperatursensor für Speichermodule. Es ist mit benutzerprogrammierbaren Registern ausgestattet, die Flexibilität für Temperaturerfassungsanwendungen bieten. Dieser Sensor ist für den Einbau in den Temperatursensor des Speichermoduls der mobilen Plattform vorgesehen. Hier ist die Demonstration mit einem Java-Code mit Raspberry Pi.
Schritt 1: Was Sie brauchen.
1. Himbeer-Pi
2. MCP9805
3. I²C-Kabel
4. I²C-Shield für Raspberry Pi
5. Ethernet-Kabel
Schritt 2: Verbindungen
Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem MCP9805-Sensor und das andere Ende mit der I2C-Abschirmung.
Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul. Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code
Der Java-Code für MCP9805 kann von unserem GitHub-Repository-Dcube Store heruntergeladen werden.
Hier der Link dazu:
github.com/DcubeTechVentures/MCP9805
Das Datenblatt von MCP9805 finden Sie hier:
ww1.microchip.com/downloads/en/DeviceDoc/21…
Wir haben die pi4j-Bibliothek für Java-Code verwendet, die Schritte zur Installation von pi4j auf dem Himbeer-Pi sind hier beschrieben:
pi4j.com/install.html
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
// Wird mit einer frei wählbaren Lizenz vertrieben.
// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
// MCP9805
// Dieser Code wurde entwickelt, um mit dem MCP9808_I2CS I2C Mini-Modul zu arbeiten, das im Dcube Store erhältlich ist.
com.pi4j.io.i2c. I2CBus importieren;
com.pi4j.io.i2c. I2CDevice importieren;
com.pi4j.io.i2c. I2CFactory importieren;
import java.io. IOException;
öffentliche Klasse MCP9805
{
public static void main(String args) löst Ausnahme aus
{
// I2C-Bus erstellen
I2CBus-Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// I2C-Gerät abrufen, MCP9805 I2C-Adresse ist 0x18(24)
I2CDevice-Gerät = Bus.getDevice(0x18);
Thread.sleep(300);
// Konfigurationsregister auswählen
// Kontinuierlicher Konvertierungsmodus, Einschalten
byte config = neues Byte[2];
config[0] = 0x00;
config[1] = 0x00;
device.write (0x01, config, 0, 2);
// Auflösungsregister auswählen
// Auflösung = +0,0625 / C
device.write(0x08, (Byte)0x03);
Thread.sleep(300);
// 2 Byte Daten von Adresse 0x05(05) lesen
// temp msb, temp lsb
Byte Daten = neues Byte[2];
device.read (0x05, Daten, 0, 2);
// Konvertieren Sie die Daten in 13-Bit
int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF));
wenn(temp > 4095)
{
Temperatur -= 8192;
}
doppeltes cTemp = temp * 0,0625;
doppeltes fTemp = cTemp * 1,8 + 32;
// Daten auf Bildschirm ausgeben
System.out.printf("Temperatur in Celsius ist: %.2f C %n", cTemp);
System.out.printf("Temperatur in Fahrenheit ist: %.2f F %n", fTemp);
}
}
Schritt 4: Bewerbungen..:
MCP9805 kann in verschiedene Systeme integriert werden, die Temperaturüberwachungssysteme mit zwei Inline-Speichermodulen (DIMM), Personalcomputer und Server umfassen. Im Allgemeinen kann er als Allzweck-Temperatursensor verwendet werden.