Awesome! Let’s now take your water level sensor to the next level by **visualizing capacitance in real time**.
We’ll cover two options:
---
## ✅ **Option 1: Display on OLED Screen (Local Display)**
### 🧰 Components Needed:
* Arduino (Uno or Nano)
* OLED display (e.g., SSD1306, 128x64 I2C)
* Water sensor circuit (same as before)
* 10kΩ resistor
---
### 📦 Libraries to Install in Arduino IDE:
* `Adafruit_GFX`
* `Adafruit_SSD1306`
You can install them via **Tools → Manage Libraries**.
---
### 📟 Arduino Code with OLED Output
```cpp
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int sensorPin = A0;
const int chargePin = 8;
const float R = 10000.0;
void setup() {
Serial.begin(9600);
pinMode(chargePin, OUTPUT);
digitalWrite(chargePin, LOW);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("OLED not found"));
while (1);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
}
void loop() {
// Discharge
pinMode(sensorPin, OUTPUT);
digitalWrite(sensorPin, LOW);
delay(10);
pinMode(sensorPin, INPUT);
// Charge timing
digitalWrite(chargePin, HIGH);
unsigned long startTime = micros();
while (analogRead(sensorPin) < 646); // 63% of 5V
unsigned long elapsed = micros() - startTime;
digitalWrite(chargePin, LOW);
float capacitance = (float)elapsed / R; // in µF
float capacitance_nF = capacitance * 1000.0;
// Display
display.clearDisplay();
display.setCursor(0, 0);
display.println("Water Sensor");
display.print("Time: ");
display.print(elapsed);
display.println(" us");
display.print("Cap: ");
display.print(capacitance_nF, 2);
display.println(" nF");
display.display();
delay(1000);
}
```
---
## 🌐 **Option 2: ESP32 with Web Dashboard**
If you're using an **ESP32**, you can:
* Host a **local web server**
* Show real-time capacitance readings on a web page (on your phone/computer)
Would you like me to generate the **ESP32 code with a web interface**, or would you prefer MQTT/IoT cloud dashboard integration (like Blynk or ThingSpeak)?