

The Gravity Electrochemical Ozone Sensor (SEN0321) is a high-precision sensor designed to measure ozone (O3) concentration in the air. It operates within a range of 0 to 10 ppm and communicates via the I2C protocol, making it easy to integrate into microcontroller-based systems. This sensor is ideal for applications requiring accurate ozone monitoring, such as environmental monitoring, industrial safety, and air quality control.








The following table outlines the key technical details of the Gravity Electrochemical Ozone Sensor:
| Parameter | Specification |
|---|---|
| Measurement Range | 0 to 10 ppm |
| Resolution | 0.01 ppm |
| Accuracy | ±(2% of reading + 0.1 ppm) |
| Operating Voltage | 3.3V to 5.5V |
| Operating Current | < 5 mA |
| Communication Interface | I2C |
| I2C Address (Default) | 0x73 |
| Operating Temperature | -20°C to 50°C |
| Operating Humidity | 15% to 90% RH (non-condensing) |
| Sensor Lifetime | > 2 years (under normal conditions) |
The sensor has a 4-pin interface for power and communication. The pinout is as follows:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (3.3V to 5.5V) |
| 2 | GND | Ground |
| 3 | SDA | I2C data line |
| 4 | SCL | I2C clock line |
Below is an example of how to interface the sensor with an Arduino UNO to read ozone concentration:
#include <Wire.h>
// I2C address of the Ozone Sensor
#define OZONE_SENSOR_ADDR 0x73
void setup() {
Serial.begin(9600); // Initialize serial communication
Wire.begin(); // Initialize I2C communication
Serial.println("Ozone Sensor Initialization...");
}
void loop() {
float ozoneConcentration = readOzoneConcentration();
if (ozoneConcentration >= 0) {
Serial.print("Ozone Concentration: ");
Serial.print(ozoneConcentration);
Serial.println(" ppm");
} else {
Serial.println("Error reading ozone concentration.");
}
delay(1000); // Wait 1 second before the next reading
}
// Function to read ozone concentration from the sensor
float readOzoneConcentration() {
Wire.beginTransmission(OZONE_SENSOR_ADDR);
Wire.write(0x03); // Command to request ozone concentration
if (Wire.endTransmission() != 0) {
return -1; // Return error if communication fails
}
delay(100); // Wait for the sensor to process the request
Wire.requestFrom(OZONE_SENSOR_ADDR, 2); // Request 2 bytes of data
if (Wire.available() == 2) {
uint8_t highByte = Wire.read(); // Read the high byte
uint8_t lowByte = Wire.read(); // Read the low byte
return ((highByte << 8) | lowByte) / 100.0; // Convert to ppm
} else {
return -1; // Return error if data is unavailable
}
}
No Data from Sensor
Inaccurate Readings
I2C Communication Errors
Sensor Not Detected
Q1: Can this sensor detect ozone concentrations above 10 ppm?
No, the sensor is designed to measure ozone concentrations within the range of 0 to 10 ppm. Exceeding this range may damage the sensor or result in inaccurate readings.
Q2: How often should the sensor be calibrated?
Under normal conditions, the sensor does not require frequent calibration. However, for critical applications, calibration every 6 months is recommended.
Q3: Can this sensor be used outdoors?
Yes, but it should be protected from direct exposure to rain, extreme temperatures, and high humidity to ensure reliable operation.
Q4: Is the sensor compatible with 3.3V microcontrollers?
Yes, the sensor operates with both 3.3V and 5V logic levels, making it compatible with a wide range of microcontrollers.
By following this documentation, users can effectively integrate and utilize the Gravity Electrochemical Ozone Sensor (SEN0321) in their projects.