

The CJMCU-055 is a high-precision digital pressure sensor designed to measure atmospheric pressure and temperature. Manufactured by Shenzhen HangGuo Technology Co., Ltd., this sensor is compact, reliable, and communicates via the I2C interface, making it ideal for integration into a wide range of projects. Its ability to provide accurate environmental data makes it a popular choice for applications such as:








Below are the key technical details of the CJMCU-055:
| Parameter | Value |
|---|---|
| Manufacturer Part ID | MCU-055 |
| Operating Voltage | 1.8V to 3.6V |
| Communication Interface | I2C |
| Pressure Measurement Range | 300 hPa to 1100 hPa |
| Temperature Range | -40°C to +85°C |
| Pressure Accuracy | ±1 hPa |
| Temperature Accuracy | ±0.5°C |
| Power Consumption | < 1 µA in sleep mode |
| Dimensions | 10mm x 10mm x 2mm |
The CJMCU-055 has a total of 6 pins. The table below describes each pin:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply pin (1.8V to 3.6V) |
| 2 | GND | Ground connection |
| 3 | SDA | I2C data line |
| 4 | SCL | I2C clock line |
| 5 | INT | Interrupt pin (optional, for advanced configurations) |
| 6 | NC | Not connected (leave unconnected) |
Below is an example of how to interface the CJMCU-055 with an Arduino UNO using the I2C interface:
#include <Wire.h>
// I2C address of the CJMCU-055 sensor
#define CJMCU055_ADDR 0x76
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Start serial communication for debugging
// Check if the sensor is connected
Wire.beginTransmission(CJMCU055_ADDR);
if (Wire.endTransmission() == 0) {
Serial.println("CJMCU-055 connected successfully!");
} else {
Serial.println("Failed to connect to CJMCU-055.");
while (1); // Halt execution if sensor is not detected
}
}
void loop() {
// Request pressure and temperature data from the sensor
Wire.beginTransmission(CJMCU055_ADDR);
Wire.write(0xF7); // Register to read pressure and temperature data
Wire.endTransmission();
Wire.requestFrom(CJMCU055_ADDR, 6); // Request 6 bytes of data
if (Wire.available() == 6) {
// Read pressure and temperature data
uint8_t data[6];
for (int i = 0; i < 6; i++) {
data[i] = Wire.read();
}
// Convert the data to pressure and temperature values
long pressure = ((long)data[0] << 16) | ((long)data[1] << 8) | data[2];
pressure >>= 4; // Adjust for 20-bit resolution
float pressure_hPa = pressure / 256.0;
long temperature = ((long)data[3] << 16) | ((long)data[4] << 8) | data[5];
temperature >>= 4; // Adjust for 20-bit resolution
float temperature_C = temperature / 100.0;
// Print the results
Serial.print("Pressure: ");
Serial.print(pressure_hPa);
Serial.println(" hPa");
Serial.print("Temperature: ");
Serial.print(temperature_C);
Serial.println(" °C");
}
delay(1000); // Wait 1 second before the next reading
}
Sensor Not Detected on I2C Bus:
Inaccurate Readings:
No Data Output:
Q: Can the CJMCU-055 operate at 5V?
A: No, the sensor operates at a voltage range of 1.8V to 3.6V. Use a level shifter if interfacing with a 5V system.
Q: Do I need to calibrate the sensor?
A: The CJMCU-055 is factory-calibrated, so no additional calibration is required for most applications.
Q: Can I use the sensor for underwater pressure measurement?
A: No, the CJMCU-055 is designed for atmospheric pressure measurement and is not waterproof.
By following this documentation, you can effectively integrate the CJMCU-055 into your projects for accurate pressure and temperature measurements.