2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
MCP9805 je digitalni temperaturni senzor pomnilniškega modula. Vključen je v registre, ki jih lahko programirajo uporabniki in ki omogočajo prilagodljivost za aplikacije zaznavanja temperature. Ta senzor je zasnovan za vgradnjo v senzor temperature pomnilniškega modula mobilne platforme. Tukaj je predstavitev s kodo java z uporabo Raspberry Pi.
Korak: Kaj potrebujete.. !
1. Malina Pi
2. MCP9805
3. Kabel I²C
4. I²C ščit za Raspberry Pi
5. Ethernetni kabel
2. korak: Povezave
Za malino pi vzemite ščit I2C in ga nežno potisnite čez zatiče gpio maline pi.
Nato en konec kabla I2C priključite na senzor MCP9805, drugi konec pa na ščit I2C.
Ethernetni kabel priključite tudi na pi ali pa uporabite modul WiFi. Povezave so prikazane na zgornji sliki.
3. korak: Koda
Kodo java za MCP9805 lahko prenesete iz našega skladišča GitHub-Dcube Store.
Tukaj je povezava za isto:
github.com/DcubeTechVentures/MCP9805
Podatkovni list za MCP9805 najdete tukaj:
ww1.microchip.com/downloads/en/DeviceDoc/21…
Za kodo java smo uporabili knjižnico pi4j, koraki za namestitev pi4j na malino pi so opisani tukaj:
pi4j.com/install.html
Kodo lahko tudi kopirate od tu, podana je na naslednji način:
// Razdeljeno z licenco za svobodno voljo.
// Uporabljajte ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del.
// MCP9805
// Ta koda je zasnovana za delo z mini modulom MCP9808_I2CS I2C, ki je na voljo v trgovini Dcube.
uvoz com.pi4j.io.i2c. I2CBus;
uvoz com.pi4j.io.i2c. I2CDevice;
uvoz com.pi4j.io.i2c. I2CFactory;
uvoz java.io. IOException;
javni razred MCP9805
{
public static void main (String args ) vrže Exception
{
// Ustvari vodilo I2C
Vodilo I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Pridobite napravo I2C, naslov MCP9805 I2C je 0x18 (24)
Naprava I2CDevice = Bus.getDevice (0x18);
Thread.sleep (300);
// Izberite konfiguracijski register
// Način neprekinjene pretvorbe, vklop
bajt konfiguracija = nov bajt [2];
config [0] = 0x00;
config [1] = 0x00;
device.write (0x01, config, 0, 2);
// Izberite rgister za ločljivost
// Ločljivost = +0,0625 / C
device.write (0x08, (bajt) 0x03);
Thread.sleep (300);
// branje 2 bajtov podatkov z naslova 0x05 (05)
// temp msb, temp lsb
bajt podatki = novi bajt [2];
device.read (0x05, podatki, 0, 2);
// Pretvorimo podatke v 13-bitne
int temp = ((podatki [0] & 0x1F) * 256 + (podatki [1] & 0xFF));
če (temp> 4095)
{
temp -= 8192;
}
dvojni cTemp = temp * 0,0625;
dvojni fTemp = cTemp * 1,8 + 32;
// Izhod podatkov na zaslon
System.out.printf ("Temperatura v Celziju je: %.2f C %n", cTemp);
System.out.printf ("Temperatura v Fahrenheitu je: %.2f F %n", fTemp);
}
}
4. korak: Aplikacije..:
MCP9805 je mogoče vgraditi v različne sisteme, ki vključujejo sisteme za spremljanje temperature z dvojnim linijskim pomnilniškim modulom (DIMM), osebne računalnike in strežnike. Običajno se lahko uporablja kot temperaturni senzor za splošno uporabo.