Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
MCP9805 is een geheugenmodule digitale temperatuursensor. Het is geïntegreerd met door de gebruiker programmeerbare registers die flexibiliteit bieden voor temperatuurdetectietoepassingen. Deze sensor is ontworpen om te worden opgenomen in de temperatuursensor van de geheugenmodule van het mobiele platform. Hier is de demonstratie met een Java-code met Raspberry Pi.
Stap 1: Wat je nodig hebt.
1. Raspberry Pi
2. MCP9805
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 MCP9805-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 MCP9805 kan worden gedownload van onze GitHub-repository-Dcube Store.
Hier is de link voor hetzelfde:
github.com/DcubeTechVentures/MCP9805
De datasheet van MCP9805 is hier te vinden:
ww1.microchip.com/downloads/en/DeviceDoc/21…
We hebben de pi4j-bibliotheek gebruikt voor java-code, de stappen om pi4j op de 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.
// MCP9805
// Deze code is ontworpen om te werken met de MCP9808_I2CS I2C Mini Module die beschikbaar is in Dcube Store.
com.pi4j.io.i2c. I2CBus importeren;
com.pi4j.io.i2c. I2CDevice importeren;
importeer com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
openbare klasse MCP9805
{
public static void main(String args) gooit Exception
{
// I2C-bus maken
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// Krijg I2C-apparaat, MCP9805 I2C-adres is 0x18 (24)
I2CDevice-apparaat = Bus.getDevice (0x18);
Draad.slaap(300);
// Selecteer configuratieregister
// Continue conversiemodus, opstarten
byte config = nieuwe byte[2];
config[0] = 0x00;
config [1] = 0x00;
apparaat.schrijven (0x01, config, 0, 2);
// Selecteer resolutie register
// Resolutie = +0,0625 / C
apparaat.schrijven (0x08, (byte)0x03);
Draad.slaap(300);
// Lees 2 bytes aan gegevens van adres 0x05(05)
// temp msb, temp lsb
byte data = nieuwe byte[2];
apparaat.lezen (0x05, data, 0, 2);
// Converteer de gegevens naar 13-bits
int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF));
als (temperatuur > 4095)
{
temperatuur -= 8192;
}
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..:
MCP9805 kan worden opgenomen in verschillende systemen, waaronder dual in-line memory module (DIMM) temperatuurbewakingssystemen, personal computers en servers. Gewoonlijk kan het worden gebruikt als een temperatuursensor voor algemene doeleinden.