Introduction: 🌧️🧪 Smart Acid Rain Prediction System

Detecting danger before it reaches the ground.
Acid rain forms when harmful air pollutants like Sulfur Dioxide (SO₂) and Nitrogen Dioxide (NO₂) combine with moisture in the atmosphere. This project predicts the chances of acid rain before it occurs by monitoring SO₂, NO₂, humidity, and temperature in real time.
This Smart Acid Rain Prediction System is designed as an educational, low-cost project focused on science. It's perfect for school fairs, exhibitions, and STEM learning. The device uses gas sensors, a DHT11 weather module, and a custom algorithm to calculate an “Acid Rain Risk Score.” This score is displayed on a 16×2 LCD.
To enhance its appearance, the project is housed in a cloud-shaped 3D-printed case. This design gives it a neat, weather-themed look that grabs attention right away.
Supplies
Electronics
- Arduino Nano
- MQ-136 Gas Sensor (for SO₂ detection)
- NO₂ Sensor (MEMS/Electrochemical type)
- DHT11 Temperature & Humidity Sensor
- 16×2 LCD Display (I2C or standard pins)
- 5V Regulated Power Supply / USB power
- Jumper wires (male–male / male–female)
- Breadboard or custom PCB
Step 1:



Step 1: 3D Printing the Enclosure
To give the project a polished, weather-themed look, we will use a cloud-shaped 3D-printed case. This enclosure protects the components and makes the project visually appealing for exhibitions, science fairs, and demonstrations.
What to Do
Download the 3D files
Get the cloud-shaped enclosure STL files from Thingiverse or your preferred source.
Slice the model
Import the STL files into a slicer like Cura, PrusaSlicer, or Bambu Studio.
Recommended settings:
Layer height: 0.2 mm
Infill: 15-20%
Material: PLA
Supports: Not required unless your design has overhangs
Start printing
Make sure your printer bed is leveled and the first layer sticks properly.
Print both the front panel (LCD window) and the back cover.
Finishing touches
Clean any stringing or rough edges.
Test-fit the LCD screen and sensors.
Sand lightly if needed for a snug fit.
Tips
Use white or light-blue PLA for a perfect cloud theme.
You can optionally print a transparent cover for the LCD window.
If you want better ventilation, add small holes for airflow in the back cover.
Step 2:






Step 2: Making the Circuit
In this step, we will wire all the sensors and modules to the Arduino Nano to build the main part of the Smart Acid Rain Prediction System. Double-check all connections before powering the system.
Connections Overview
MQ-136 (SO₂ Sensor)
VCC → 5V
GND → GND
AOUT → A0
NO₂ Sensor (MEMS/Electrochemical)
VCC → 5V
GND → GND
Analog Out → A1
DHT11 (Temperature & Humidity Sensor)
Signal → D2
VCC → 5V
GND → GND
16×2 LCD Display
If using I2C module:
SDA → A4
SCL → A5
VCC → 5V
GND → GND
If not using I2C, follow these example pin connections:
RS → D7
EN → D8
D4 → D9
D5 → D10
D6 → D11
D7 → D12
Building the Circuit
Place the Arduino Nano on a breadboard or custom PCB.
Connect the MQ-136 sensor to analog pin A0.
Connect the NO₂ sensor to analog pin A1.
Wire the DHT11 sensor to digital pin D2.
Connect the LCD using I2C or direct pins.
Use a 5V regulated power supply to power all modules.
Arrange wires neatly to reduce noise and interference.
Tips
Keep gas sensors slightly raised for better airflow.
Avoid placing the gas sensors too close to heat sources.
If using a PCB, label each pin clearly for easy debugging.
Step 3:
Step 3: Coding / Programming the System
Now that the circuit is ready, it’s time to upload the program that reads sensor data and calculates the Acid Rain Risk Level. The Arduino collects values from the SO₂ and NO₂ sensors, measures temperature and humidity, and combines everything to determine the risk percentage.
💻 What the Code Does
- Reads SO₂ and NO₂ gas levels through analog inputs
- Measures temperature and humidity using DHT11
- Calculates a risk score based on pollution + humidity
- Displays live data on the 16×2 LCD
- Updates the screen every second
🛠️ Uploading the Code
- Open the Arduino IDE.
- Select Board: Arduino Nano.
- Select the correct COM port.
- Paste the code into the IDE.
- Click Upload.
- When the LCD shows values, your system is working!
💡 Tips
- Let the MQ-136 sensor warm up for 2–5 minutes for stable readings.
- You can adjust the risk formula to be more accurate for your environment.
- Display custom messages like “LOW”, “MODERATE”, or “HIGH RISK”.

