2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
MCP9808 je visoko precizan digitalni senzor temperature ± 0,5 ° C I2C mini modul. Utjelovljeni su sa programima koje programira korisnik i olakšavaju primjenu mjerenja temperature. Senzor temperature MCP9808 visoke preciznosti postao je industrijski standard u pogledu oblika i inteligencije, pružajući kalibrirane, linearizirane signale senzora u digitalnom, I2C formatu. Evo demonstracije s python kodom pomoću Raspberry Pi.
Korak 1: Šta vam treba..
1. Malina Pi
2. MCP9808
3. I²C kabel
4. I²C štit za Raspberry Pi
5. Ethernet kabel
Korak 2: Veze
Uzmite I2C štit za malinu pi i nježno je gurnite preko gpio igle maline pi.
Zatim spojite jedan kraj I2C kabela na senzor MCP9808, a drugi kraj na I2C štit.
Također priključite Ethernet kabel na pi ili možete koristiti WiFi modul.
Veze su prikazane na gornjoj slici.
Korak 3: Kodirajte
Python kod za MCP9808 može se preuzeti sa našeg GitHub spremišta- Dcube Store
Evo linka za isto:
github.com/DcubeTechVentures/MCP9808
Tehnički list za MCP9808 možete pronaći ovdje:
ww1.microchip.com/downloads/en/DeviceDoc/25…
Koristili smo SMBus biblioteku za python kod, koraci za instaliranje SMBus -a na malinu pi opisani su ovdje:
pypi.python.org/pypi/smbus-cffi/0.5.1
Kôd možete i kopirati odavde, dat je na sljedeći način:
# Distribuirano s licencom za slobodnu volju.
# Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.
# MCP9808
# Ovaj kôd je dizajniran za rad s MCP9808_I2CS I2C mini modulom dostupnim u Dcube Storeu.
import smbus
vreme uvoza
# Nabavite I2C autobus
sabirnica = smbus. SMBus (1)
# MCP9808 adresa, 0x18 (24)
# Odaberite registar konfiguracije, 0x01 (1)
# 0x0000 (00) Način kontinuirane konverzije, zadano uključivanje
config = [0x00, 0x00]
bus.write_i2c_block_data (0x18, 0x01, config)
# MCP9808 adresa, 0x18 (24)
# Odaberite registar rezolucije, 0x08 (8)
# 0x03 (03) Rezolucija = +0.0625 / C
bus.write_byte_data (0x18, 0x08, 0x03)
time.sleep (0.5) # MCP9808 adresa, 0x18 (24)
# Pročitajte podatke nazad od 0x05 (5), 2 bajta
# Temp MSB, TEMP LSB
data = bus.read_i2c_block_data (0x18, 0x05, 2)
# Pretvorite podatke u 13-bitne
ctemp = ((podaci [0] & 0x1F) * 256) + podaci [1]
ako je ctemp> 4095:
ctemp -= 8192
ctemp = ctemp * 0,0625
ftemp = ctemp * 1,8 + 32
# Izlažite podatke na ekran
ispis "Temperatura u Celzijusima je: %.2f C" %ctemp
ispis "Temperatura u Farenhajtu je: %.2f F" %ftemp
Korak 4: Aplikacije..:
MCP9808 Digitalni senzor temperature ima nekoliko aplikacija na industrijskom nivou koje uključuju industrijske zamrzivače i frižidere, zajedno s raznim procesorima hrane. Ovaj senzor se može koristiti za različite personalne računare, servere, kao i za druge periferne računare.