2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
MCP9803 é um sensor de temperatura de alta precisão de 2 fios. Eles são incorporados a registros programáveis pelo usuário que facilitam as aplicações de detecção de temperatura. Este sensor é adequado para sistemas altamente sofisticados de monitoramento de temperatura em várias zonas. Aqui está a demonstração com um código java usando Raspberry Pi.
Etapa 1: O que você precisa..
1. Raspberry Pi
2. MCP9803
3. Cabo I²C
4. Escudo I²C para Raspberry Pi
5. Cabo Ethernet
Etapa 2: conexões
Pegue um escudo I2C para raspberry pi e empurre-o suavemente sobre os pinos gpio de raspberry pi.
Em seguida, conecte uma extremidade do cabo I2C ao sensor MCP9803 e a outra extremidade à blindagem I2C.
Também conecte o cabo Ethernet ao pi ou você pode usar um módulo WiFi. As conexões são mostradas na imagem acima.
Etapa 3: Código
O código java para MCP9803 pode ser baixado de nosso repositório github- Dcube Store
Aqui está o link para o mesmo:
github.com/DcubeTechVentures/MCP9803/blob/master/Java/MCP9803.java
Usamos a biblioteca pi4j para o código java, as etapas para instalar o pi4j no raspberry pi são descritas aqui:
pi4j.com/install.html
Você também pode copiar o código daqui, ele é fornecido da seguinte forma:
// Distribuído com uma licença de livre arbítrio.
// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.
// MCP9803
// Este código é projetado para funcionar com o Mini Módulo 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;
classe pública MCP9803
{
public static void main (String args ) lança exceção
{
// Criar barramento I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Obter dispositivo I2C, MCP9803 endereço I2C é 0x48 (72)
Dispositivo I2CDevice = Bus.getDevice (0x48);
// Selecionar registro de configuração
// Modo de conversão contínua, inicialização, modo comparador, resolução de 12 bits
device.write (0x01, (byte) 0x60);
Thread.sleep (500);
// Lê 2 bytes de dados do endereço 0x00 (0)
// temp msb, temp lsb
byte dados = novo byte [2];
device.read (0x00, data, 0, 2);
// Converta os dados para 12 bits
int temp = ((dados [0] e 0xFF) * 256 + (dados [1] e 0xF0)) / 16;
if (temp> 2047)
{
temp - = 4096;
}
cTemp duplo = temp * 0,0625;
fTemp duplo = cTemp * 1,8 + 32;
// Dados de saída para a tela
System.out.printf ("A temperatura em Celsius é:%.2f C% n", cTemp);
System.out.printf ("A temperatura em Fahrenheit é:%.2f F% n", fTemp);
}
}
Etapa 4: Aplicativos..:
MCP9803 pode ser empregado em uma ampla arena de dispositivos que incluem computador pessoal e periféricos, unidades de disco rígido, vários sistemas de entretenimento, sistemas de escritório e sistemas de comunicação de dados. Este sensor pode ser incorporado em vários sistemas sofisticados.