Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Fermion: MCP9808 High Accuracy I2C Temperature Sensor: Examples, Pinouts, and Specs

Image of Fermion: MCP9808 High Accuracy I2C Temperature Sensor
Cirkit Designer LogoDesign with Fermion: MCP9808 High Accuracy I2C Temperature Sensor in Cirkit Designer

Introduction

The Fermion: MCP9808 High Accuracy I2C Temperature Sensor, manufactured by DFRobot (Part ID: SEN0435), is a digital temperature sensor designed to deliver precise temperature readings. It communicates via the I2C interface, making it easy to integrate into a wide range of microcontroller-based projects. With its high accuracy and low power consumption, this sensor is ideal for applications such as environmental monitoring, HVAC systems, industrial automation, and IoT devices.

Key features of the MCP9808 include:

  • High accuracy of ±0.25°C (typical) in the range of -40°C to +125°C.
  • Configurable alert output for temperature thresholds.
  • Low power consumption, suitable for battery-powered applications.
  • Wide operating voltage range of 2.7V to 5.5V.

Explore Projects Built with Fermion: MCP9808 High Accuracy I2C Temperature Sensor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Health Monitoring System with Nucleo WB55RG and OLED Display
Image of Pulsefex: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
This circuit is a multi-sensor data acquisition system that uses a Nucleo WB55RG microcontroller to interface with a digital temperature sensor (TMP102), a pulse oximeter and heart-rate sensor (MAX30102), and a 0.96" OLED display via I2C. Additionally, it includes a Sim800l module for GSM communication, powered by a 3.7V LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 NodeMCU with MPU6050 and Temperature Sensor Data Logger
Image of mini1: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
This circuit features an ESP8266 NodeMCU microcontroller connected to a temperature sensor and an MPU6050 accelerometer/gyroscope module. The ESP8266 provides power (3.3V) and ground connections to both sensors and communicates with the temperature sensor via a digital I/O pin (D6) and with the MPU6050 via the I2C protocol using pins D1 (SCL) and D2 (SDA). The circuit is likely designed for environmental monitoring, capturing both temperature and motion data.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Battery-Powered Wi-Fi Temperature Monitoring System with MLX90614 and I2C LCD
Image of infrared thermometer 4: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
This circuit is a temperature monitoring system using an ESP32 microcontroller, an MLX90614 infrared temperature sensor, and a 16x2 I2C LCD display. It includes a TP4056 module for charging a 18650 Li-Ion battery, a pushbutton for mode selection, and a buzzer for low battery alerts. The ESP32 reads temperature data, displays it on the LCD, and sends it to a server via Wi-Fi.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and MCP23017-Based Smart Relay Control System with DHT22 Sensors
Image of Indoor Lounge: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
This circuit is a control system that uses an ESP32 microcontroller to manage multiple relays and read data from DHT22 temperature and humidity sensors. The DFRobot Gravity MCP23017 I2C module expands the GPIO capabilities of the ESP32, allowing it to control additional relays for switching high-power devices.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Fermion: MCP9808 High Accuracy I2C Temperature Sensor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Pulsefex: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
Battery-Powered Health Monitoring System with Nucleo WB55RG and OLED Display
This circuit is a multi-sensor data acquisition system that uses a Nucleo WB55RG microcontroller to interface with a digital temperature sensor (TMP102), a pulse oximeter and heart-rate sensor (MAX30102), and a 0.96" OLED display via I2C. Additionally, it includes a Sim800l module for GSM communication, powered by a 3.7V LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of mini1: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
ESP8266 NodeMCU with MPU6050 and Temperature Sensor Data Logger
This circuit features an ESP8266 NodeMCU microcontroller connected to a temperature sensor and an MPU6050 accelerometer/gyroscope module. The ESP8266 provides power (3.3V) and ground connections to both sensors and communicates with the temperature sensor via a digital I/O pin (D6) and with the MPU6050 via the I2C protocol using pins D1 (SCL) and D2 (SDA). The circuit is likely designed for environmental monitoring, capturing both temperature and motion data.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of infrared thermometer 4: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
ESP32-Based Battery-Powered Wi-Fi Temperature Monitoring System with MLX90614 and I2C LCD
This circuit is a temperature monitoring system using an ESP32 microcontroller, an MLX90614 infrared temperature sensor, and a 16x2 I2C LCD display. It includes a TP4056 module for charging a 18650 Li-Ion battery, a pushbutton for mode selection, and a buzzer for low battery alerts. The ESP32 reads temperature data, displays it on the LCD, and sends it to a server via Wi-Fi.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Indoor Lounge: A project utilizing Fermion: MCP9808 High Accuracy I2C Temperature Sensor in a practical application
ESP32 and MCP23017-Based Smart Relay Control System with DHT22 Sensors
This circuit is a control system that uses an ESP32 microcontroller to manage multiple relays and read data from DHT22 temperature and humidity sensors. The DFRobot Gravity MCP23017 I2C module expands the GPIO capabilities of the ESP32, allowing it to control additional relays for switching high-power devices.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

Below are the key technical details of the MCP9808 sensor:

Parameter Value
Operating Voltage 2.7V to 5.5V
Temperature Range -40°C to +125°C
Accuracy ±0.25°C (typical)
Communication Interface I2C
I2C Address (Default) 0x18
Power Consumption 200 µA (typical)
Alert Output Configurable (active-low)
Dimensions 22mm x 22mm

Pin Configuration

The MCP9808 sensor module has the following pinout:

Pin Name Description
1 VCC Power supply input (2.7V to 5.5V)
2 GND Ground
3 SDA I2C data line
4 SCL I2C clock line
5 ALERT Alert output (active-low, configurable threshold)

Usage Instructions

Connecting the MCP9808 to a Microcontroller

To use the MCP9808 sensor, connect it to a microcontroller (e.g., Arduino UNO) as follows:

  1. Connect the VCC pin to the 3.3V or 5V power supply of the microcontroller.
  2. Connect the GND pin to the ground of the microcontroller.
  3. Connect the SDA pin to the I2C data line (A4 on Arduino UNO).
  4. Connect the SCL pin to the I2C clock line (A5 on Arduino UNO).
  5. Optionally, connect the ALERT pin to a GPIO pin if you want to use the alert functionality.

Arduino Code Example

Below is an example Arduino sketch to read temperature data from the MCP9808 sensor:

#include <Wire.h>
#include "Adafruit_MCP9808.h"

// Create an MCP9808 object
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();

void setup() {
  Serial.begin(9600);
  Serial.println("MCP9808 Temperature Sensor Test");

  // Initialize the sensor
  if (!tempsensor.begin(0x18)) { 
    // Check if the sensor is connected at the default I2C address (0x18)
    Serial.println("Couldn't find MCP9808! Check wiring.");
    while (1); // Halt execution if sensor is not found
  }

  // Set resolution to 0.0625°C (highest resolution)
  tempsensor.setResolution(3);
}

void loop() {
  // Read temperature in Celsius
  float tempC = tempsensor.readTempC();

  // Print temperature to the Serial Monitor
  Serial.print("Temperature: ");
  Serial.print(tempC);
  Serial.println(" °C");

  delay(1000); // Wait 1 second before the next reading
}

Important Considerations

  • Ensure pull-up resistors (typically 4.7kΩ) are connected to the SDA and SCL lines if they are not already present on the module.
  • The default I2C address is 0x18, but it can be changed by configuring the address pins (consult the MCP9808 datasheet for details).
  • Avoid placing the sensor in direct sunlight or near heat sources to ensure accurate readings.

Troubleshooting and FAQs

Common Issues

  1. Sensor not detected on the I2C bus:

    • Verify the wiring connections, especially the SDA and SCL lines.
    • Ensure the correct I2C address (default: 0x18) is being used in the code.
    • Check if pull-up resistors are present on the I2C lines.
  2. Inaccurate temperature readings:

    • Ensure the sensor is not exposed to external heat sources or airflow.
    • Verify that the power supply voltage is within the specified range (2.7V to 5.5V).
  3. Alert pin not functioning:

    • Confirm that the alert functionality is properly configured in the code.
    • Check the GPIO pin connection to the microcontroller.

FAQs

Q: Can the MCP9808 operate at 5V?
A: Yes, the MCP9808 supports an operating voltage range of 2.7V to 5.5V, making it compatible with both 3.3V and 5V systems.

Q: How do I change the I2C address of the sensor?
A: The I2C address can be changed by configuring the address pins (A0, A1, A2) on the sensor module. Refer to the MCP9808 datasheet for the address configuration table.

Q: What is the resolution of the temperature readings?
A: The MCP9808 supports resolutions of 0.5°C, 0.25°C, 0.125°C, and 0.0625°C, which can be configured using the setResolution() function in the code.

Q: Is the sensor suitable for outdoor use?
A: The MCP9808 is not waterproof or weatherproof. For outdoor applications, it should be enclosed in a protective housing.

By following this documentation, you can effectively integrate and utilize the Fermion: MCP9808 High Accuracy I2C Temperature Sensor in your projects.