مشروع جهاز التنبيه من نفاذ الماء في الخزانات المائية اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

شرح فكرة المشروع

  • في عالم يواجه تحديات متزايدة في مجال إدارة الموارد المائية، تعتبر صهاريج المياه حلا ضروريا لتلبية الاحتياجات المنزلية للمياه، خصوصا في المناطق النائية التي لا يمكن للماء أن يصلها عبر البنى التحتية. إذ تعتبر المياه من أساسيات الحياة اليومية، ما يبرز أهمية ضمان توفرها بشكل مستمر.
  • تتنوع الأغراض التي تستخدم من أجلها صهاريج المياه، سواء كان ذلك نتيجة لنقص المياه في المنطقة التي نعيش فيها، أو لظروف الطوارئ التي تحدث نتيجة لظروف طبيعية أو أزمات إنسانية. لذا يعتبر وجود خزانات مائية امر حاسم والزامي من أجل تأمين الكميات الكافية، وذلك في ظل التغيرات المناخية والضغوط المتزايدة على موارد المياه في العديد من المناطق حول العالم.
  • وعليه، فإن نفاد الماء في صهاريج التخزين يمثل مشكلا كبيرًا، يؤدي إلى عدم توفر المياه اللازمة للشرب والري وشتى الاستخدامات اليومية، مما يزيد من صعوبة الظروف المعيشية. ومن هذا المنطلق، ولضمان استدامة المياه في الصهاريج  بالقدر الكافي، يجب تبني استراتيجيات فعّالة ازاء ذلك، مثل صيانة الصهاريج بانتظام، تحسين جمع مياه الأمطار، واستخدام تقنيات لترشيد استهلاك المياه. هذه الإجراءات قد تساعد في مواجهة تحديات الجفاف عموما وتضمن توفر المياه لفترات أطول.
  • وفي سياق الكلام، يمكن لبعض الدارات الالكترونية، مثل انظمة المتحكمات أردوينو، أن تقدم حلا مفيدا، إذ يمكن تصميم دارة تقوم بقياس منسوب الماء داخل الصهاريج و التنبيه عند اقتراب نفاده. يوفر هذا النظام إشعارات فورية تمكن من اتخاذ إجراءات سريعة لإعادة تعبئة الصهاريج قبل نفادها، مما يضمن استمرارية توفر المياه. كما يساهم في تقليل القلق بشأن عدم الانتباه لنفاذ الماء بشكل مفاجئ لدى سكان المناظق النائية.
  • في هذا المشروع، سيتم تصميم نظام للتنبيه من نفاذ الماء في الخزانات المائية باستخدام حساس مستوى الماء، بحيث تتم عملية قياس مستوى الماء في الصهريج عبر عدة مراحل: أولاعبر تغيير قيمة المقاومة الموجودة في الحساس، ومن ثم تُحول هذه الإشارة التناظرية  إلى قيمة رقمية باستخدام تحويل من تناظري إلى رقمي  (ADC)، بعدها يقرأ متحكم الأردوينو هذه القيمة الرقمية الواردة، ومن ثم  يقوم بمقارنتها مع عتبة محددة مسبقًا لتحديد ما إذا كان مستوى الماء منخفضًا. ام لا. بحيث إذا كانت القيمة المقاسة أقل من العتبة المحددة، فهذا يعني أن مستوى الماء منخفض. وفي هذه الحالة، يتم تشغيل الجرس الطنان Active Buzzer عبر منفذ رقمي على الأردوينو، كما يتم عرض نسبة مستوى الماء الحالي على شاشة  LCD. وتتكرر العملية كل ثانية أو حسب الفترة الزمنية المحددة في الكود، مما يتيح مراقبة مستمرة لمستوى الماء.

أدوات المشروع

  • اردوينو اونو مع سلك توصيل Arduino Uno: عدد 1
  • حساس مسنوى الماء: عدد 1
  • أسلاك توصيل من ذكر إلى أنثى 40 دبوس 20 سم wires 40pcs Male to Female
  • جرس 5 فولت طنان Active Buzzer: عدد 1
  • 9V Maxell Alkaline Battery بطارية قلوية: عدد 1
  • لوح تجارب 400 نقطة لون ابيض Solderless Breadboard: عدد 1
  • أسلاك توصيل ذكر لذكر 40 قطعة 20 سم Male to Male jumper wires: عدد 1
  • شاشة LCD 16 x 02 IIC/I2C Serial: عدد 1
  • موصل بطارية 9 فولت: عدد 1

مخطط المشروع

الكود البرمجي

تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.
  • للتعرف على تجهيز لوحة أردوينو للبرمجة قم بزيارة الرابط التالي.
  • للإطلاع على كيفية تحميل وتنصيب المكتبات قم بزيارة الرابط التالي.
  • قبل تحميل الكود البرمجي، عليك تحميل المكتبات التالية:
  • LiquidCrystal_I2C.h
  • في حال لم يعمل هذا الكود البرمجي، قم بتحميل ملف الكود بالضغط على زر التحميل الموجود في الأسفل.

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // 0x27 هو عنوان I2C للشاشة LCD 16×2

int waterSensorPin = A0; // مدخل الاستشعار لحساس الماء
int buzzerPin = 8; // دبوس البازر

void setup() {
lcd.init(); // بدء تشغيل الشاشة LCD
lcd.backlight(); // تفعيل الإضاءة الخلفية
lcd.setCursor(0, 0);
lcd.print(“Water Level Detector”); // عرض رسالة البداية على الشاشة
delay(2000); // تأخير 2 ثانية
lcd.clear(); // مسح الشاشة

pinMode(buzzerPin, OUTPUT);
}

void loop() {

int sensorValue = analogRead(waterSensorPin);

// تحويل القيمة إلى نسبة مئوية
float waterPercentage = map(sensorValue, 0, 1023, 0, 100);

// عرض النسبة المئوية على الشاشة
lcd.setCursor(0, 1);
lcd.print(“Level: “);
lcd.print(waterPercentage);
lcd.print(“% “);

if (sensorValue < 20) {
digitalWrite(buzzerPin, HIGH);
} else {
digitalWrite(buzzerPin, LOW);
}

delay(1000); // تأخير لقراءة متكررة
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *