2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
MCP9808 is 'n hoogs akkurate digitale temperatuursensor ± 0,5 ° C I2C mini -module. Hulle is beliggaam met gebruikersprogrammeerbare registers wat temperatuurwaarnemingstoepassings vergemaklik. Die MCP9808 temperatuursensor met 'n hoë akkuraatheid het 'n bedryfsstandaard geword in terme van vormfaktor en intelligensie, wat kalibreerde, lineêre sensor seine in digitale I2C-formaat bied. Hier is die demonstrasie met 'n luislangkode met behulp van Raspberry Pi.
Stap 1: wat u nodig het..
1. Framboos Pi
2. MCP9808
3. I²C -kabel
4. I²C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 2: Verbindings
Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.
Koppel dan die een kant van die I2C -kabel aan die MCP9808 -sensor en die ander kant aan die I2C -skild.
Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.
Verbindings word op die foto hierbo getoon.
Stap 3: Kodeer
Die python-kode vir MCP9808 kan afgelaai word vanaf ons GitHub-bewaarplek- Dcube Store
Hier is die skakel vir dieselfde:
github.com/DcubeTechVentures/MCP9808
Die datablad van MCP9808 kan hier gevind word:
ww1.microchip.com/downloads/en/DeviceDoc/25…
Ons het SMBus -biblioteek gebruik vir python -kode, die stappe om SMBus op framboos pi te installeer word hier beskryf:
pypi.python.org/pypi/smbus-cffi/0.5.1
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
# Versprei met 'n vrywillige lisensie.
# Gebruik dit soos u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
# MCP9808
# Hierdie kode is ontwerp om te werk met die MCP9808_I2CS I2C Mini Module wat beskikbaar is in Dcube Store.
invoer smbus
invoer tyd
# Kry I2C -bus
bus = smbus. SMBus (1)
# MCP9808 -adres, 0x18 (24)
# Kies konfigurasieregister, 0x01 (1)
# 0x0000 (00) Deurlopende omskakelingsmodus, standaard aanskakel
config = [0x00, 0x00]
bus.write_i2c_block_data (0x18, 0x01, config)
# MCP9808 -adres, 0x18 (24)
# Kies resolusie rgister, 0x08 (8)
# 0x03 (03) Resolusie = +0,0625 / C
bus.write_byte_data (0x18, 0x08, 0x03)
time.sleep (0.5) # MCP9808 adres, 0x18 (24)
# Lees data terug van 0x05 (5), 2 grepe
# Temp MSB, TEMP LSB
data = bus.read_i2c_block_data (0x18, 0x05, 2)
# Skakel die data om na 13-bis
ctemp = ((data [0] & 0x1F) * 256) + data [1]
as ctemp> 4095:
ctemp -= 8192
ctemp = ctemp * 0,0625
ftemp = ctemp * 1.8 + 32
# Uitset data na die skerm
print "Temperatuur in Celsius is: %.2f C" %ctemp
druk "Temperatuur in Fahrenheit is: %.2f F" %ftemp
Stap 4: Aansoeke..:
MCP9808 Digitale Temperatuursensor het verskeie toepassings op industrievlak wat industriële vrieskaste en yskaste bevat, asook verskillende voedselverwerkers. Hierdie sensor kan gebruik word vir verskillende persoonlike rekenaars, bedieners sowel as ander randapparatuur vir rekenaars.