Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
MCP9808 is een zeer nauwkeurige digitale temperatuursensor ±0,5°C I2C minimodule. Ze zijn belichaamd met door de gebruiker programmeerbare registers die temperatuurdetectietoepassingen vergemakkelijken. De zeer nauwkeurige temperatuursensor MCP9808 is een industriestandaard geworden op het gebied van vormfactor en intelligentie, en levert gekalibreerde, gelineariseerde sensorsignalen in digitaal I2C-formaat. Hier is de demonstratie met een python-code met Raspberry Pi.
Stap 1: Wat je nodig hebt.
1. Raspberry Pi
2. MCP9808
3. I²C-kabel
4. I²C-schild voor Raspberry Pi
5. Ethernet-kabel
Stap 2: Aansluitingen
Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.
Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MCP9808-sensor en het andere uiteinde op de I2C-afscherming.
Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.
De aansluitingen zijn weergegeven in de afbeelding hierboven.
Stap 3: Coderen
De python-code voor MCP9808 kan worden gedownload van onze GitHub-repository - Dcube Store
Hier is de link voor hetzelfde:
github.com/DcubeTechVentures/MCP9808
De datasheet van MCP9808 is hier te vinden:
ww1.microchip.com/downloads/en/DeviceDoc/25…
We hebben de SMBus-bibliotheek gebruikt voor python-code, de stappen om SMBus op raspberry pi te installeren worden hier beschreven:
pypi.python.org/pypi/smbus-cffi/0.5.1
U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:
# Gedistribueerd met een vrije wilslicentie.
# Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.
# MCP9808
# Deze code is ontworpen om te werken met de MCP9808_I2CS I2C Mini Module die verkrijgbaar is in de Dcube Store.
import smbus
import tijd
# Krijg I2C-bus
bus = smbus. SMBus(1)
# MCP9808 adres, 0x18(24)
# Selecteer configuratieregister, 0x01(1)
# 0x0000(00) Continue conversiemodus, standaard opstarten
configuratie = [0x00, 0x00]
bus.write_i2c_block_data(0x18, 0x01, config)
# MCP9808 adres, 0x18(24)
# Selecteer resolutie register, 0x08(8)
# 0x03(03) Resolutie = +0,0625 / C
bus.write_byte_data(0x18, 0x08, 0x03)
time.sleep(0.5) # MCP9808 adres, 0x18(24)
# Lees gegevens terug van 0x05 (5), 2 bytes
# Temp MSB, TEMP LSB
data = bus.read_i2c_block_data(0x18, 0x05, 2)
# Converteer de gegevens naar 13-bits
ctemp = ((data[0] & 0x1F) * 256) + data[1]
indien ctemp > 4095:
ctemp -= 8192
ctemp = ctemp * 0.0625
ftemp = ctemp * 1.8 + 32
# Gegevens uitvoeren naar scherm
print "Temperatuur in Celsius is: %.2f C" %ctemp
print "Temperatuur in Fahrenheit is: %.2f F" %ftemp
Stap 4: Toepassingen..:
MCP9808 digitale temperatuursensor heeft verschillende toepassingen op industrieniveau die industriële diepvriezers en koelkasten bevatten, samen met verschillende voedselverwerkers. Deze sensor kan worden gebruikt voor verschillende personal computers, servers en andere pc-randapparatuur.