Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
MCP9808 ist ein hochgenauer digitaler Temperatursensor ±0,5 °C I2C-Minimodul. Sie sind mit benutzerprogrammierbaren Registern ausgestattet, die Temperaturerfassungsanwendungen erleichtern. Der hochgenaue Temperatursensor MCP9808 hat sich in Bezug auf Formfaktor und Intelligenz zu einem Industriestandard entwickelt und liefert kalibrierte, linearisierte Sensorsignale im digitalen I2C-Format. Hier ist die Demonstration mit einem Python-Code mit Raspberry Pi.
Schritt 1: Was Sie brauchen.
1. Himbeer-Pi
2. MCP9808
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 MCP9808-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 Python-Code für MCP9808 kann von unserem GitHub-Repository heruntergeladen werden - Dcube Store
Hier der Link dazu:
github.com/DcubeTechVentures/MCP9808
Das Datenblatt von MCP9808 finden Sie hier:
ww1.microchip.com/downloads/de/DeviceDoc/25…
Wir haben die SMBus-Bibliothek für Python-Code verwendet, die Schritte zur Installation von SMBus auf Raspberry Pi sind hier beschrieben:
pypi.python.org/pypi/smbus-cffi/0.5.1
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
# Wird mit freier Lizenz verteilt.
# Verwenden Sie es nach Belieben, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
# MCP9808
# Dieser Code wurde entwickelt, um mit dem MCP9808_I2CS I2C Mini-Modul zu arbeiten, das im Dcube Store erhältlich ist.
smbus importieren
Importzeit
# Holen Sie sich den I2C-Bus
bus = smbus. SMBus(1)
# MCP9808-Adresse, 0x18(24)
# Konfigurationsregister auswählen, 0x01(1)
# 0x0000(00) Kontinuierlicher Konvertierungsmodus, Einschaltstandard
config = [0x00, 0x00]
bus.write_i2c_block_data(0x18, 0x01, config)
# MCP9808-Adresse, 0x18(24)
# Auflösungsregister auswählen, 0x08(8)
# 0x03(03) Auflösung = +0,0625 / C
bus.write_byte_data(0x18, 0x08, 0x03)
time.sleep(0.5) # MCP9808-Adresse, 0x18(24)
# Daten von 0x05(5) zurücklesen, 2 Byte
# Temp-MSB, TEMP-LSB
data = bus.read_i2c_block_data(0x18, 0x05, 2)
# Konvertieren Sie die Daten in 13-Bit
ctemp = ((data[0] & 0x1F) * 256) + data[1]
wenn ctemp > 4095:
ctemp -= 8192
ctemp = ctemp * 0,0625
ftemp = ctemp * 1,8 + 32
# Daten auf den Bildschirm ausgeben
print "Temperatur in Celsius ist: %.2f C" %ctemp
print "Temperatur in Fahrenheit ist: %.2f F" %ftemp
Schritt 4: Bewerbungen..:
Der digitale Temperatursensor MCP9808 verfügt über mehrere Anwendungen auf Industrieebene, die industrielle Gefriergeräte und Kühlschränke sowie verschiedene Küchenmaschinen umfassen. Dieser Sensor kann für verschiedene Personalcomputer, Server sowie andere PC-Peripheriegeräte verwendet werden.