SYNOPSIS
use PINE64::MCP9808;
my $temp_sensor = PINE64::MCP9808->new(0, '0x18');
my @reading = $temp_sensor->read_temperature();
my $celsius = $reading[0];
my $fahrenheit = $reading [1];
DESCRIPTION
This module allows you to take temperature readings with the highly accurate MCP9808 I2C temperature sensor using a PINE64A+ board.
METHODS
new(0, 0x18)
You can optionally pass the I2C device id and the address of the MCP9808 on the I2C bus. The PINE64A+ I2C bus is /dev/i2c-0, and the default I2C address for an MCP9808 is 0x18. new() called with no arguments will default to /dev/i2c-0 and 0x18.
read_temperature()
Reads the ambient temperature register of the MCP9808 and returns an array containing the reading in celsius and fahrenheit. The ambient temperature register is 0x05. Bits 13-15 have to be masked out. Bit 12 is the sign bit. The two's complement temperature reading is bits 0-11. $reading[0] is temperature in celsius, $reading[1] is the reading in temperature.