2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
MCP9808 je vysoce přesný digitální teplotní senzor mini modul I2C ± 0,5 ° C. Jsou provedeny s uživatelsky programovatelnými registry, které usnadňují aplikace snímání teploty. Vysoce přesný teplotní senzor MCP9808 se stal průmyslovým standardem, pokud jde o tvarový faktor a inteligenci, poskytující kalibrované, linearizované signály ze senzorů v digitálním formátu I2C. Zde je ukázka s kódem pythonu pomocí Raspberry Pi.
Krok 1: Co potřebujete..
1. Raspberry Pi
2. MCP9808
3. I²C kabel
4. I²C štít pro Raspberry Pi
5. Ethernetový kabel
Krok 2: Připojení
Vezměte I2C štít pro malinový pi a jemně jej zatlačte přes gpio piny malinového pi.
Poté připojte jeden konec kabelu I2C k senzoru MCP9808 a druhý konec ke stínění I2C.
Připojte také ethernetový kabel k pí nebo můžete použít modul WiFi.
Připojení jsou znázorněna na obrázku výše.
Krok 3: Kód
Pythonový kód pro MCP9808 lze stáhnout z našeho úložiště GitHub- Dcube Store
Zde je odkaz na totéž:
github.com/DcubeTechVentures/MCP9808
Datasheet MCP9808 naleznete zde:
ww1.microchip.com/downloads/en/DeviceDoc/25…
Pro kód pythonu jsme použili knihovnu SMBus, kroky k instalaci SMBus na Raspberry Pi jsou popsány zde:
pypi.python.org/pypi/smbus-cffi/0.5.1
Odtud můžete také zkopírovat kód, který je uveden následovně:
# Distribuováno s licencí svobodné vůle.
# Použijte jej jakýmkoli způsobem, ať už ziskem nebo zdarma, za předpokladu, že se vejde do licencí souvisejících děl.
# MCP9808
# Tento kód je navržen tak, aby fungoval s mini modulem MCP9808_I2CS I2C, který je k dispozici v Dcube Store.
importovat smbus
čas importu
# Získejte autobus I2C
bus = smbus. SMBus (1)
# Adresa MCP9808, 0x18 (24)
# Vyberte konfigurační registr, 0x01 (1)
# 0x0000 (00) Režim nepřetržité konverze, výchozí nastavení při zapnutí
config = [0x00, 0x00]
bus.write_i2c_block_data (0x18, 0x01, konfigurace)
# Adresa MCP9808, 0x18 (24)
# Vyberte rozlišení rgister, 0x08 (8)
# 0x03 (03) Rozlišení = +0,0625 / C
bus.write_byte_data (0x18, 0x08, 0x03)
time.sleep (0,5) # adresa MCP9808, 0x18 (24)
# Přečtěte data zpět od 0x05 (5), 2 bajty
# Temp MSB, TEMP LSB
data = bus.read_i2c_block_data (0x18, 0x05, 2)
# Převeďte data na 13 bitů
ctemp = ((data [0] & 0x1F) * 256) + data [1]
pokud ctemp> 4095:
ctemp -= 8192
ctemp = ctemp * 0,0625
ftemp = ctemp * 1,8 + 32
# Výstup dat na obrazovku
tisk "Teplota ve stupních Celsia je: %.2f C" %ctemp
tisk "Teplota ve Fahrenheitech je: %.2f F" %ftemp
Krok 4: Aplikace..:
Digitální teplotní senzor MCP9808 má několik aplikací na průmyslové úrovni, které obsahují průmyslové mrazničky a lednice spolu s různými kuchyňskými roboty. Tento senzor lze použít pro různé osobní počítače, servery a další periferní zařízení PC.