Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
MCP9803 is een 2-draads zeer nauwkeurige temperatuursensor. Ze zijn belichaamd met door de gebruiker programmeerbare registers die temperatuurdetectietoepassingen vergemakkelijken. Deze sensor is geschikt voor een zeer geavanceerd multi-zone temperatuurbewakingssysteem. Hier is de demonstratie met een Java-code met Raspberry Pi.
Stap 1: Wat je nodig hebt.
1. Raspberry Pi
2. MCP9803
3. I²C-kabel
4. I²C-schild voor Raspberry Pi
5. Ethernet-kabel
Stap 2: Aansluitingen
Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.
Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MCP9803-sensor en het andere uiteinde op de I2C-afscherming.
Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken. De aansluitingen zijn weergegeven in de afbeelding hierboven.
Stap 3: Coderen
De Java-code voor MCP9803 kan worden gedownload van onze github-repository - Dcube Store
Hier is de link voor hetzelfde:
github.com/DcubeTechVentures/MCP9803/blob/master/Java/MCP9803.java
We hebben de pi4j-bibliotheek gebruikt voor java-code, de stappen om pi4j op raspberry pi te installeren worden hier beschreven:
pi4j.com/install.html
U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:
// Gedistribueerd met een vrije wilslicentie.
// Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.
// MCP9803
// Deze code is ontworpen om te werken met de MCP9808_I2CS I2C Mini Module
com.pi4j.io.i2c. I2CBus importeren;
com.pi4j.io.i2c. I2CDevice importeren;
importeer com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
openbare klasse MCP9803
{
public static void main(String args) gooit Exception
{
// I2C-bus maken
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// Haal I2C-apparaat op, MCP9803 I2C-adres is 0x48(72)
I2CDevice-apparaat = Bus.getDevice (0x48);
// Selecteer configuratieregister
// Continue conversiemodus, opstarten, comparatormodus, 12-bits resolutie
apparaat.schrijven (0x01, (byte)0x60);
Draad.slaap(500);
// Lees 2 bytes aan gegevens van adres 0x00 (0)
// temp msb, temp lsb
byte data = nieuwe byte[2];
apparaat.lezen (0x00, data, 0, 2);
// Converteer de gegevens naar 12-bits
int temp = ((data[0] & 0xFF) * 256 + (data[1] & 0xF0))/16;
als (temperatuur > 2047)
{
temperatuur -= 4096;
}
dubbele cTemp = temp * 0,0625;
dubbele fTemp = cTemp * 1.8 + 32;
// Gegevens uitvoeren naar scherm
System.out.printf("Temperatuur in Celsius is: %.2f C %n", cTemp);
System.out.printf("Temperatuur in Fahrenheit is: %.2f F %n", fTemp);
}
}
Stap 4: Toepassingen..:
MCP9803 kan worden gebruikt in een breed scala van apparaten, waaronder personal computers en randapparatuur, harde schijven, verschillende entertainmentsystemen, kantoorsystemen en datacommunicatiesystemen. Deze sensor kan in diverse geavanceerde systemen worden ingebouwd.