2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
MCP9803 este un senzor de temperatură de înaltă precizie cu 2 fire. Acestea sunt înglobate cu registre programabile de utilizator care facilitează aplicațiile de detectare a temperaturii. Acest senzor este potrivit pentru un sistem de monitorizare a temperaturii multi-zone extrem de sofisticat. Iată demonstrația cu un cod Java folosind Raspberry Pi.
Pasul 1: De ce ai nevoie..
1. Raspberry Pi
2. MCP9803
3. Cablu I²C
4. Scut I²C pentru Raspberry Pi
5. Cablu Ethernet
Pasul 2: Conexiuni
Luați un scut I2C pentru raspberry pi și împingeți-l ușor peste pinii gpio ai raspberry pi.
Apoi conectați capătul unui cablu I2C la senzorul MCP9803 și celălalt capăt la ecranul I2C.
De asemenea, conectați cablul Ethernet la pi sau puteți utiliza un modul WiFi. Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod
Codul java pentru MCP9803 poate fi descărcat din depozitul nostru github- Magazinul Dcube
Iată linkul pentru același lucru:
github.com/DcubeTechVentures/MCP9803/blob/master/Java/MCP9803.java
Am folosit biblioteca pi4j pentru cod java, pașii pentru instalarea pi4j pe raspberry pi sunt descriși aici:
pi4j.com/install.html
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
// Distribuit cu o licență de liberă voință.
// Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
// MCP9803
// Acest cod este conceput pentru a funcționa cu Mini-modulul MCP9808_I2CS I2C
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
clasa publică MCP9803
{
public static main principal (String args ) aruncă Excepție
{
// Creați autobuzul I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Obțineți dispozitivul I2C, adresa MCP9803 I2C este 0x48 (72)
I2CDevice device = Bus.getDevice (0x48);
// Selectați registrul de configurare
// Mod de conversie continuă, Pornire, modul comparator, rezoluție de 12 biți
device.write (0x01, (octet) 0x60);
Thread.sleep (500);
// Citiți 2 octeți de date de la adresa 0x00 (0)
// temp msb, temp lsb
octet date = octet nou [2];
device.read (0x00, date, 0, 2);
// Convertiți datele în 12 biți
int temp = ((date [0] & 0xFF) * 256 + (date [1] & 0xF0)) / 16;
dacă (temp> 2047)
{
temp - = 4096;
}
cTemp dublu = temp * 0,0625;
fTemp dublu = cTemp * 1,8 + 32;
// Ieșire date pe ecran
System.out.printf („Temperatura în grade Celsius este:%.2f C% n”, cTemp);
System.out.printf („Temperatura în Fahrenheit este:%.2f F% n”, fTemp);
}
}
Pasul 4: Aplicații..:
MCP9803 poate fi utilizat într-o gamă largă de dispozitive care includ calculatoare personale și periferice, unități de hard disk, diverse sisteme de divertisment, sisteme de birou și sisteme de comunicații de date. Acest senzor poate fi încorporat în diverse sisteme sofisticate.