தண்ணீர் தொட்டி எப்போது நிறையும், எப்போது காலியாகும் என்று தெரியாமல் மோட்டார் ஓடிக்கொண்டே இருக்கும். தண்ணீர் தொட்டியில் இருந்து தண்ணீர் கொட்டுவது, அல்லது பண்ணையில் தொட்டி காலியாகி பயிர் வாடுவது - இது போன்ற பிரச்சினைகளுக்கு தீர்வு தான் இன்று நாம் பார்க்கப் போகும் IoT Water Level Monitoring System.
இந்த டிவைஸ் தண்ணீர் லெவலை தானாக கண்காணித்து, உங்கள் மொபைலுக்கு நோட்டிஃபிகேஷன் அனுப்பும், தேவைப்பட்டால் கால் கூட செய்யும், மோட்டாரை தானாக ஆன்/ஆஃப் செய்யும். வீட்டு டெர்ரஸ் டேங்க்காக இருந்தாலும், பண்ணை போர்வெல் டேங்க்காக இருந்தாலும் இது வேலை செய்யும்.
இதை எப்படி நீங்களே வீட்டில் உருவாக்கலாம் என்பதை step-by-step பார்க்கலாம்.
தேவையான கருவிகள்
- ESP32 Development Board - இதுதான் இந்த சிஸ்டத்தின் மூளை
- Ultrasonic Sensor (HC-SR04) - தண்ணீர் லெவலை தூரம் மூலம் கணக்கிட
- SIM800L GSM Module - மொபைலுக்கு SMS அனுப்ப மற்றும் கால் செய்ய
- 5V Relay Module - மோட்டாரை ஆன்/ஆஃப் செய்ய
- SIM Card - 2G நெட்வொர்க் இருக்கும் சிம் (SIM800L-க்கு)
- Jumper Wires - கனெக்ஷன் செய்ய
இந்த IOT device ready-made kit ஆக எங்கள் வெப்சைட்டில் வாங்கலாம்: IoT Device வாங்க இங்கே கிளிக் செய்யவும்
Step 1: Components வயரிங் மற்றும் Arduino IDE செட்அப்
முதலில் வயரிங் சரியாக செய்ய வேண்டும். ஒரு pin தப்பு போனாலும் சென்சார் வேலை செய்யாது அல்லது ESP32 பழுதாகும் வாய்ப்பு உள்ளது, அதனால் கீழே உள்ள pin numbers-ஐ துல்லியமாக பின்பற்றவும்.
Ultrasonic Sensor (HC-SR04) → ESP32
| HC-SR04 Pin | ESP32 Pin |
|---|---|
| VCC | 5V (VIN) |
| GND | GND |
| TRIG | GPIO 23 |
| ECHO | GPIO 22 |
SIM800L GSM Module → ESP32
| SIM800L Pin | ESP32 Pin |
|---|---|
| VCC | வெளி 4V Power Supply (Li-ion battery / Buck converter) - ESP32-ல் இருந்து நேரடியாக எடுக்க வேண்டாம் |
| GND | GND (ESP32 GND-உடன் கலந்து கொள்ள வேண்டும்) |
| TXD | GPIO 16 (RX2) |
| RXD | GPIO 17 (TX2) |
⚠️ முக்கிய குறிப்பு: SIM800L-க்கு 3.7V - 4.2V power தேவை. ESP32-ன் 5V பின்னை நேரடியாக கொடுத்தால் மாட்யூல் பழுதாகிவிடும். தனியாக Li-ion battery அல்லது buck converter பயன்படுத்தவும்.
Relay Module → ESP32
| Relay Pin | ESP32 Pin |
|---|---|
| VCC | 5V (VIN) |
| GND | GND |
| IN (Signal) | GPIO 26 |
மோட்டார் வயரை Relay-ன் COM மற்றும் NO terminal-ல் கனெக்ட் செய்யவும். (AC மோட்டார் என்றால் எலக்ட்ரீஷியன் உதவியுடன் செய்வது பாதுகாப்பானது.)
Arduino IDE செட்அப்
- arduino.cc -ல் இருந்து Arduino IDE-ஐ உங்கள் கம்ப்யூட்டரில் இன்ஸ்டால் செய்யவும்.
- File → Preferences → Additional Board Manager URLs-ல் இந்த லிங்க்-ஐ சேர்க்கவும்:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Tools → Board → Boards Manager-ல் "esp32" எனத் தேடி இன்ஸ்டால் செய்யவும்.
- Library Manager-ல் இருந்து Blynk library-ஐ இன்ஸ்டால் செய்யவும் (மொபைல் ஆப் கனெக்ட் செய்ய தேவை).
- மொபைலில் Blynk IoT ஆப்பை Play Store-ல் இருந்து இன்ஸ்டால் செய்து, அக்கவுன்ட் உருவாக்கவும்.
Step 2: கோடிங் மற்றும் Upload
ESP32-ஐ USB கேபிள் மூலம் கம்ப்யூட்டருடன் கனெக்ட் செய்யவும். Arduino IDE-ல் Tools → Board-ல் "ESP32 Dev Module" தேர்ந்தெடுத்து, Port-ஐ select செய்யவும்.
கீழே உள்ள கோடை உங்கள் Arduino IDE-ல் பேஸ்ட் செய்யவும். Blynk Auth Token, WiFi SSID, Password ஆகியவற்றை உங்கள் விவரங்களுடன் மாற்றவும்.
#define BLYNK_TEMPLATE_ID "உங்கள் Template ID"
#define BLYNK_TEMPLATE_NAME "Water Level Monitor"
#define BLYNK_AUTH_TOKEN "உங்கள் Auth Token"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <HardwareSerial.h>
// Ultrasonic Sensor pins
#define TRIG_PIN 23
#define ECHO_PIN 22
// Relay pin
#define RELAY_PIN 26
// GSM Module Serial (RX2, TX2)
HardwareSerial sim800(2);
char ssid[] = "உங்கள் WiFi பெயர்";
char pass[] = "உங்கள் WiFi பாஸ்வோர்டு";
char phoneNumber[] = "+91XXXXXXXXXX"; // உங்கள் மொபைல் நம்பர்
int tankHeight = 100; // தொட்டியின் முழு உயரம் (cm)
int lowLevel = 80; // இந்த தூரம் வந்தால் தண்ணீர் குறைவு (cm)
int fullLevel = 15; // இந்த தூரம் வந்தால் தொட்டி நிறைந்தது (cm)
bool motorOn = false;
bool alertSent = false;
BlynkTimer timer;
float getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2; // cm-ல் தூரம்
}
void sendSMS(String message) {
sim800.println("AT+CMGF=1");
delay(500);
sim800.println("AT+CMGS=\"" + String(phoneNumber) + "\"");
delay(500);
sim800.print(message);
delay(500);
sim800.write(26); // SMS அனுப்ப Ctrl+Z
delay(500);
}
void makeCall() {
sim800.println("ATD" + String(phoneNumber) + ";");
delay(20000); // 20 செக்கன் ரிங் ஆகும்
sim800.println("ATH"); // கால் கட் செய்ய
}
void checkWaterLevel() {
float distance = getDistance();
int levelPercent = map(distance, tankHeight, fullLevel, 0, 100);
levelPercent = constrain(levelPercent, 0, 100);
Blynk.virtualWrite(V0, levelPercent);
if (distance >= lowLevel && !motorOn) {
digitalWrite(RELAY_PIN, HIGH); // மோட்டார் ஆன்
motorOn = true;
Blynk.virtualWrite(V1, 1);
Blynk.logEvent("low_water", "தண்ணீர் குறைவு - மோட்டார் ஆன் ஆனது");
sendSMS("தண்ணீர் தொட்டி குறைவாக உள்ளது. மோட்டார் ஆட்டோமேட்டிக்காக ஆன் செய்யப்பட்டது.");
if (!alertSent) {
makeCall();
alertSent = true;
}
}
if (distance <= fullLevel && motorOn) {
digitalWrite(RELAY_PIN, LOW); // மோட்டார் ஆஃப்
motorOn = false;
alertSent = false;
Blynk.virtualWrite(V1, 0);
Blynk.logEvent("tank_full", "தொட்டி நிறைந்தது - மோட்டார் ஆஃப் ஆனது");
sendSMS("தண்ணீர் தொட்டி நிறைந்தது. மோட்டார் ஆட்டோமேட்டிக்காக ஆஃப் செய்யப்பட்டது.");
}
}
BLYNK_WRITE(V1) {
int manualControl = param.asInt();
digitalWrite(RELAY_PIN, manualControl ? HIGH : LOW);
motorOn = manualControl;
}
void setup() {
Serial.begin(115200);
sim800.begin(9600, SERIAL_8N1, 16, 17); // RX=16, TX=17
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(5000L, checkWaterLevel); // ஒவ்வொரு 5 செக்கனுக்கும் சோதிக்கும்
}
void loop() {
Blynk.run();
timer.run();
}
Upload செய்யும் முன் இவைகளை சரிபார்க்கவும்:
- Tools → Upload Speed-ல் 115200 baud rate தேர்ந்தெடுக்கவும்
- Serial Monitor-ஐ open செய்து baud rate-ஐ 115200-க்கு மாற்றவும் (ESP32 debug message-களுக்கு)
- SIM800L module-க்கு 9600 baud rate தான் டிஃபால்ட் என்பதால் கோடில் அதை மாற்ற வேண்டாம்
- Upload பட்டனை அழுத்தி, ESP32 போர்டில் உள்ள BOOT பட்டனை சில போர்டுகளில் அழுத்த வேண்டியிருக்கும்
Upload முடிந்ததும், Serial Monitor-ல் தூரம் (distance) வேல்யூஸ் காட்டினால் ultrasonic sensor சரியாக வேலை செய்கிறது என்று அர்த்தம். SIM800L network-ல் register ஆனதும் அதன் LED ஒவ்வொரு 3 செக்கனுக்கும் ஃப்ளாஷ் ஆகும் - இது நெட்வொர்க் கிடைத்தது என்பதன் அடையாளம்.
Step 3: மொபைல் ஆப் கனெக்ட் செய்தல்
- Blynk IoT ஆப்பில் புதிய Template உருவாக்கி, அதில் இரண்டு Datastream சேர்க்கவும்: V0 - Water Level (0-100%), V1 - Motor ON/OFF Switch
- Dashboard-ல் Gauge widget (V0) மற்றும் Switch widget (V1) வைக்கவும்.
- Template-ல் இருந்து கிடைக்கும் Auth Token-ஐ கோடில் பேஸ்ட் செய்து மீண்டும் அப்லோட் செய்யவும்.
- ஆப்பை திறந்து உங்கள் டிவைஸ் "Online" ஆக காட்டினால் கனெக்ஷன் வெற்றி.
இதன் பின் நீங்கள் எங்கிருந்தும் - வீட்டில் இருந்தோ, பண்ணையில் இருந்தோ, வெளியூரில் இருந்தோ - மொபைலில் தண்ணீர் லெவலை பார்க்கலாம், மோட்டாரை மேனுவலாக ஆன்/ஆஃப் செய்யலாம்.
Step 4: எல்லாவற்றையும் சோதித்தல் (Testing)
- தொட்டியில் தண்ணீர் இல்லாத நேரத்தில் ultrasonic sensor காட்டும் தூரத்தை குறித்துக்கொள்ளவும் - இது
lowLevelவேல்யூவாக கோடில் செட் செய்யவும். - தொட்டி முழுவதும் நிரம்பியதும் வரும் தூரத்தை
fullLevel-ஆக செட் செய்யவும். - மோட்டார் ஆன்/ஆஃப் ஆவதை relay-ன் "click" சத்தம் மூலம் உறுதி செய்யவும்.
- SMS மற்றும் கால் வருகிறதா என்று உறுதி செய்ய தொட்டியில் தண்ணீரை செயற்கையாக குறைத்து/நிரப்பி பார்க்கவும்.
- WiFi இல்லாத இடத்தில் வைத்தாலும், SIM800L மூலம் SMS/Call செயல்பாடு வேலை செய்யும் (இதற்கு WiFi தேவையில்லை, மொபைல் நெட்வொர்க் மட்டும் போதும்).
Step 5: வீட்டில் அல்லது பண்ணையில் இன்ஸ்டால் செய்தல்
- வீட்டில்: Ultrasonic sensor-ஐ டேங்கின் மேல் மூடியில், தண்ணீர் மேற்பரப்பை நேராக பார்க்கும் வகையில் பொருத்தவும். ESP32 மற்றும் GSM மாட்யூலை மழை நீர் படாத, காற்றோட்டமான பாக்ஸ்-ல் வைக்கவும்.
- பண்ணையில்: போர்வெல் டேங்க் அல்லது ஓவர்ஹெட் டேங்க் மேலே சென்சார் பொருத்தி, GSM ஆன்டெனாவை வெளியே வெளிச்சம் படும் இடத்தில் வைக்கவும் - நெட்வொர்க் சிக்னல் தெளிவாக கிடைக்க இது அவசியம்.
- டிவைஸுக்கு தொடர்ந்து கரண்ட் கிடைக்கும் வகையில் 5V அடாப்டர் வழங்கவும். பண்ணைகளில் கரண்ட் கட் ஆகும் இடங்களில் சிறிய சோலார் பேனல் + பேட்டரி பேக்-அப் வைப்பது நல்லது.
- இன்ஸ்டால் முடிந்த பின் ஒரு வாரம் தினமும் காலை/மாலை மொபைலில் சரிபார்த்து, தேவைப்பட்டால்
lowLevel,fullLevelவேல்யூஸை fine-tune செய்யவும்.
இது ஏன் பயனுள்ளது?
இந்த சிஸ்டம் தண்ணீர் வீணாவதை தடுக்கிறது, மோட்டார் ஓவர்ஃப்ளோ ஆகி தண்ணீர் கொட்டுவதை நிறுத்துகிறது, மற்றும் நீங்கள் வீட்டில் இல்லாத நேரத்திலும் தொட்டி காலியாகாமல் பார்த்துக்கொள்கிறது. மின் சக்தி, தண்ணீர் இரண்டையும் சேமிக்க உதவும் ஒரு எளிய ஆட்டோமேஷன்.
பண்ணைகளில் இதன் பயன்பாடு
பண்ணைகளில் போர்வெல் அல்லது ஓவர்ஹெட் டேங்க் வழியாக நீர்ப்பாசனம் செய்யும் விவசாயிகளுக்கு, தொட்டி எப்போது காலியாகும் என்பதை அறிய தினமும் தொட்டி அருகே செல்ல வேண்டிய அவசியம் இல்லாமல் போகிறது. தொட்டி காலியானதும் SMS/கால் வந்து, மோட்டார் தானாக ஆனாகி, பயிருக்கு தண்ணீர் தடங்கல் இல்லாமல் கிடைக்கிறது. இது மனித உழைப்பை குறைத்து, நேரத்தை மிச்சப்படுத்தி, பயிர் வாடாமல் காப்பாற்றுகிறது.
நீங்களே இவ்வளவு செய்ய வேண்டுமா?
இவ்வளவு components வாங்குவது, வயரிங் செய்வது, கோடு எழுதி அப்லோட் செய்வது, ஆப் செட் செய்வது - இது நிறைய நேரமும் கவனமும் தேவைப்படும் வேலை. தப்பு wiring ஆனாலோ, code-ல் சின்ன error வந்தாலோ முழு டிவைஸும் வேலை செய்யாது.
இந்த கஷ்டத்தை நாங்க ஏத்துக்கிட்டோம். Pudhuvayal-ல் இந்த Water Level Monitoring Device-ஐ ரெடியாக assemble செய்து, code upload செய்து, test செய்து உங்களுக்கு அனுப்புகிறோம். நீங்கள் வெறும் டேங்கில் பொருத்தி, மொபைல் ஆப்பில் ஒரு QR கோட் scan செய்தால் போதும்.
வீட்டுக்கும், பண்ணைக்கும் ஏற்ற இந்த Smart Water Level Device-ஐ இப்போதே ஆர்டர் செய்யவும்:
👉 இங்கே கிளிக் செய்து வாங்கவும்
📲 இது போன்ற புதுசு புதுசு IoT, DIY டெக் கருவிகள் பற்றிய பதிவுகளுக்கு

0 Comments