2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
MCP9808 to bardzo dokładny cyfrowy czujnik temperatury ±0,5°C I2C minimoduł. Są one wyposażone w rejestry programowane przez użytkownika, które ułatwiają aplikacje z czujnikami temperatury. Czujnik temperatury o wysokiej dokładności MCP9808 stał się standardem branżowym pod względem współczynnika kształtu i inteligencji, zapewniając skalibrowane, linearyzowane sygnały czujnika w cyfrowym formacie I2C. Oto demonstracja z kodem Pythona przy użyciu Raspberry Pi.
Krok 1: Czego potrzebujesz.
1. Raspberry Pi
2. MCP9808
3. Kabel I²C
4. Osłona I²C dla Raspberry Pi
5. Kabel Ethernet
Krok 2: Połączenia
Weź nakładkę I2C dla raspberry pi i delikatnie nałóż ją na piny gpio raspberry pi.
Następnie podłącz jeden koniec kabla I2C do czujnika MCP9808, a drugi koniec do ekranu I2C.
Podłącz również kabel Ethernet do pi lub możesz użyć modułu WiFi.
Połączenia prezentuje powyższy obrazek.
Krok 3: Kod
Kod Pythona dla MCP9808 można pobrać z naszego repozytorium GitHub - Dcube Store
Oto link do tego samego:
github.com/DcubeTechVentures/MCP9808
Arkusz danych MCP9808 można znaleźć tutaj:
ww1.microchip.com/downloads/en/DeviceDoc/25…
Użyliśmy biblioteki SMBus do kodu Pythona, kroki instalacji SMBus na raspberry pi są opisane tutaj:
pypi.python.org/pypi/smbus-cffi/0.5.1
Możesz również skopiować kod stąd, jest on podany w następujący sposób:
# Rozprowadzany z wolną licencją.
# Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim utworów.
# MCP9808
# Ten kod jest przeznaczony do pracy z modułem MCP9808_I2CS I2C Mini dostępnym w sklepie Dcube Store.
importuj smbus
czas importu
# Uzyskaj magistralę I2C
autobus = smbus. SMBus(1)
# Adres MCP9808, 0x18(24)
# Wybierz rejestr konfiguracji, 0x01(1)
# 0x0000(00) Tryb ciągłej konwersji, domyślne włączanie
konfiguracja = [0x00, 0x00]
bus.write_i2c_block_data (0x18, 0x01, konfiguracja)
# Adres MCP9808, 0x18(24)
# Wybierz rozdzielczość rgister, 0x08(8)
# 0x03(03) Rozdzielczość = +0,0625/C
bus.write_byte_data(0x18, 0x08, 0x03)
czas.snu(0.5) # adres MCP9808, 0x18(24)
# Odczytaj dane z powrotem z 0x05(5), 2 bajty
# Temp MSB, TEMP LSB
dane = bus.read_i2c_block_data(0x18, 0x05, 2)
# Konwertuj dane na 13-bitowe
ctemp = ((dane[0] & 0x1F) * 256) + dane[1]
jeśli ctemp > 4095:
ctemp -= 8192
ctemp = ctemp * 0,0625
ftemp = ctemp * 1,8 + 32
# Dane wyjściowe na ekran
print "Temperatura w stopniach Celsjusza to: %.2f C" %ctemp
print "Temperatura w stopniach Fahrenheita wynosi: %.2f F" %ftemp
Krok 4: Aplikacje…:
Cyfrowy czujnik temperatury MCP9808 ma kilka zastosowań na poziomie branżowym, które obejmują przemysłowe zamrażarki i lodówki oraz różne procesory żywności. Ten czujnik może być stosowany do różnych komputerów osobistych, serwerów, a także innych urządzeń peryferyjnych PC.