Back to Advanced Projects

Air & Water Pollution Smartwatch

A wearable multi-sensor diagnostic device to analyze air purity and water quality on an OLED UI.

📋 Overview

Environmental monitoring goes portable. This wearable project pairs an ESP32 with an MQ-135 hazardous gas sensor and an analog TDS (Total Dissolved Solids) sensor to check air and water safety.

What you'll learn: Calibration curves for air quality assessment, electrical conductivity measuring in liquids (TDS), battery power optimization, and multi-screen wearable menus.

Estimated time: 3-4 hours. Difficulty: ⭐⭐⭐⭐ Advanced.

🧩 Components Needed

ComponentSpecificationQtyNotes
ESP32 DevKit V1Ultra-low sleep power1Drives the smartwatch
MQ-135 Air SensorAnalog gas detection1Measures CO2, ammonia, benzene
TDS Sensor ModuleAnalog output, 0-3.3V1Water purity dissolved solids
0.96" I2C OLED DisplaySSD1306 driver1Wearable UI layout
TP4056 Charging Module5V Micro-USB in1Manages LiPo smartwatch battery

📖 Step-by-Step Tutorial

1

Air Quality Calibration

Calibrate the MQ-135 sensor in fresh outdoor air to set the base resistance (Ro) before measuring complex PPM levels.
2

Water Quality Integration

Connect the TDS probe to the analog input of the ESP32. Convert the voltage reading to PPM of dissolved solids using the calibration curve.
3

Design Wearable Interface

Wire the SSD1306 OLED display. Program simple pages that slide in when an onboard tact button is pressed.
4

Assemble Compact Case

Mount all sensors, the LiPo battery, charging module, and ESP32 inside a lightweight, compact wrist-ready chassis.
5

Implement Power Saving

Program deep sleep states. Keep the smartwatch in micro-amp standby mode until the button wakes it up to perform quick measurements.
💡
MQ-135 sensors utilize a built-in heater. They must be powered on for 24-48 hours to "burn-in" for precision calibration before first accurate use.

💻 Code / Configuration

smartwatch_pollution.ino
INO
// Pollution Smartwatch - Volt X
#include <Wire.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int mq135Pin = 34; // Analog pin for Air Quality
const int tdsPin = 35;   // Analog pin for TDS

void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  
  pinMode(mq135Pin, INPUT);
  pinMode(tdsPin, INPUT);
}

void loop() {
  int airRaw = analogRead(mq135Pin);
  int tdsRaw = analogRead(tdsPin);
  
  // Math conversions...

Reviews & Ratings

0 reviews
5★
0
4★
0
3★
0
2★
0
1★
0
...

Loading reviews...

volt-X / Air & Water Pollution Smartwatch — Advanced IoT Tutorial