2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
MCP9803 is 'n 2-draads temperatuursensor met 'n hoë akkuraatheid. Hulle is beliggaam met gebruikersprogrammeerbare registers wat temperatuurwaarnemingstoepassings vergemaklik. Hierdie sensor is geskik vir hoogs gesofistikeerde multi-sone temperatuurmoniteringstelsel. Hier is die demonstrasie met 'n java -kode met behulp van Raspberry Pi.
Stap 1: wat u nodig het..
1. Framboos Pi
2. MCP9803
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 MCP9803 -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 java-kode vir MCP9803 kan afgelaai word vanaf ons github-bewaarplek- Dcube Store
Hier is die skakel vir dieselfde:
github.com/DcubeTechVentures/MCP9803/blob/master/Java/MCP9803.java
Ons het pi4j -biblioteek gebruik vir java -kode, die stappe om pi4j op framboos pi te installeer word hier beskryf:
pi4j.com/install.html
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// MCP9803
// Hierdie kode is ontwerp om te werk met die MCP9808_I2CS I2C Mini Module
invoer com.pi4j.io.i2c. I2CBus;
voer com.pi4j.io.i2c. I2CD -toestel in;
invoer com.pi4j.io.i2c. I2CFactory;
invoer java.io. IOException;
openbare klas MCP9803
{
openbare statiese leegte hoof (String argumente ) gooi uitsondering
{
// Skep I2C -bus
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Kry I2C -toestel, MCP9803 I2C -adres is 0x48 (72)
I2CDevice -toestel = Bus.getDevice (0x48);
// Kies konfigurasie register
// Deurlopende omskakelingsmodus, opstart, vergelykingsmodus, resolusie van 12 bis
device.write (0x01, (byte) 0x60);
Draad.slaap (500);
// Lees 2 grepe data vanaf adres 0x00 (0)
// temp msb, temp lsb
byte data = nuwe byte [2];
device.read (0x00, data, 0, 2);
// Skakel die data om na 12-bis
int temp = ((data [0] & 0xFF) * 256 + (data [1] & 0xF0)) / 16;
as (temp> 2047)
{
temp -= 4096;
}
dubbel cTemp = temp * 0,0625;
dubbel fTemp = cTemp * 1.8 + 32;
// Uitset data na die skerm
System.out.printf ("Temperatuur in Celsius is: %.2f C %n", cTemp);
System.out.printf ("Temperatuur in Fahrenheit is: %.2f F %n", fTemp);
}
}
Stap 4: Aansoeke..:
MCP9803 kan in 'n wye reeks toestelle gebruik word, insluitend persoonlike rekenaars en randapparatuur, hardeskywe, verskillende vermaaklikheidstelsels, kantoorstelsels en datakommunikasiestelsels. Hierdie sensor kan in verskillende gesofistikeerde stelsels opgeneem word.