2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
MCP9803 je 2-žični senzor temperature visoke preciznosti. Utjelovljeni su sa programima koje programira korisnik i olakšavaju primjenu mjerenja temperature. Ovaj senzor je pogodan za visokosofisticirani višezonski sistem za praćenje temperature. Evo demonstracije s java kodom pomoću Raspberry Pi.
Korak 1: Šta vam treba..
1. Malina Pi
2. MCP9803
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 MCP9803, 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
Java kod za MCP9803 može se preuzeti sa našeg github spremišta- Dcube Store
Evo linka za isto:
github.com/DcubeTechVentures/MCP9803/blob/master/Java/MCP9803.java
Za java kod koristili smo biblioteku pi4j, koraci za instaliranje pi4j na malinu pi opisani su ovdje:
pi4j.com/install.html
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.
// MCP9803
// Ovaj kod je dizajniran za rad s MCP9808_I2CS I2C mini modulom
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
javna klasa MCP9803
{
public static void main (String args ) baca Exception
{
// Kreiranje I2C sabirnice
I2CBus sabirnica = I2CFactory.getInstance (I2CBus. BUS_1);
// Nabavite I2C uređaj, MCP9803 I2C adresa je 0x48 (72)
I2CDevice uređaj = Bus.getDevice (0x48);
// Odabir registra konfiguracije
// Način kontinuirane konverzije, uključivanje, usporedni način rada, 12-bitna rezolucija
device.write (0x01, (bajt) 0x60);
Thread.sleep (500);
// Očitavanje 2 bajta podataka s adrese 0x00 (0)
// temp msb, temp lsb
bajt podatak = novi bajt [2];
device.read (0x00, podaci, 0, 2);
// Pretvorimo podatke u 12-bitne
int temp = ((podaci [0] & 0xFF) * 256 + (podaci [1] & 0xF0)) / 16;
if (temp> 2047)
{
temp -= 4096;
}
dvostruki cTemp = temp * 0,0625;
dvostruki fTemp = cTemp * 1,8 + 32;
// Iznos podataka na ekran
System.out.printf ("Temperatura u Celzijusima je: %.2f C %n", cTemp);
System.out.printf ("Temperatura u Fahrenheitu je: %.2f F %n", fTemp);
}
}
Korak 4: Aplikacije..:
MCP9803 se može koristiti u širokom spektru uređaja koji uključuju personalne računare i periferne uređaje, hard diskove, razne zabavne sisteme, kancelarijske sisteme i sisteme za prenos podataka. Ovaj senzor se može ugraditi u različite sofisticirane sisteme.