تحديد مستوى الماء باستخدام الاردوينو

مبتدئ

image_pdf

مقدمة

 يساعد حساس مستوى الماء على قياس كمية الماء في حمامات السباحة والآبار والغواصات والسخانات وغسالات الملابس الأوتوماتيكية وتجمعات مياه الأمطار ويمكننا الاستفادة منه لصنع نظام لسقيا الطيور في الصيف نضعه على نوافذ ومداخل المنزل أو الحدائق أو الشوارع العامة، في هذا الدرس ستتعلم صنع نظام يساعدك على تحديد مستوى الماء باستخدام الاردوينو وحساس مستوى الماء.

المواد والأدوات

تحديد مستوى الماء

1× اردوينو اونو

تحديد مستوى الماء

1× سلك الاردوينو

arduino-smoke-gas-sensor

1× لوحة تجارب – حجم كبير

arduino-water-level-sensor

 شاشة كرستالية (LCD 2×16)

تحديد مستوى الماء

1× مقاومة متغيرة

تحديد مستوى الماء

 حزمة أسلاك توصيل (ذكر- ذكر)

تحديد مستوى الماء

حزمة أسلاك توصيل (ذكر – أنثى)

تحديد مستوى الماء

حساس مستوى الماء

شفرة

1× 40 رأس دبوس

حساس مستوى الماء

يحتوي حساس مستوى الماء على سلسلة من عشرة خطوط نحاسية مكشوفة، خمسة منها خطوط كهربائية وخمس خطوط استشعارية.

هذه الخطوط متشابكة بحيث يكون هناك خط إحساس واحد بين كل خطين للطاقة.

عادةً ما تكون هذه الخطوط غير متصلة ولكن يتم تغطيتها بالماء عند غمرها فيه.

نظام لقياس مستوى الماء

له 3 مداخل موضحة في الشكل التالي:

تحديد مستوى الماء

توصيل الدائرة

لمعرفة المزيد حول الشاشة الكرستالية يمكنك الرجوع للدرس التحكم بالشاشة الكرستالية LCD

لابد من تلحيم المنافذ مع الشاشة الكرستالية، للمزيد حول اللحام يمكنك الرجوع للدرس تعلم كيفية التلحيم – تلحيم القطع باللوحة الإلكترونية

نظام لقياس مستوى الماء

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

ارفع كود نظام تحديد مستوى الماء على لوحة الاردوينو باستخدام برنامج اردوينو IDE.

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int resval = 0; // holds the value
int respin = A5; // sensor pin used

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("WATER LEVEL: ");
}
void loop() {
// set the cursor to column 0, line 1
lcd.setCursor(0, 1);

resval = analogRead(respin); //Read data from analog pin and store it to resval variable

if (resval<=20)
{
lcd.println("Empty ");
}
else if (resval>20 && resval<=350)
{
lcd.println("Low ");
}
else if (resval>350 && resval<=400)
{ lcd.println("Medium ");
}
else if (resval>400){
lcd.println("High ");
}
delay(1000);
}

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

هذا السطر يستدعي مكتبة الشاشة الكرستالية.

نستطيع تحميلها بتتبع المسار التالي:

Sketch > Include libraries > Manage libraries

ثم نكتب بخانة البحث Liquid crystal by Arduino

ثم نضغط على Install.

#include <LiquidCrystal.h>

بعد ذلك عرفنا المتغيرات اللازمة مثل المتغيرات الخاصة بمنافذ الشاشة الكرستالية التي تم توصيلها مع الاردوينو .

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

عرفنا المتغير resval عند قيمة ابتدائية تساوي صفر وعرفنا المتغير respin يمثل قيمة قراءة المدخل التناظري A5.

int resval = 0; // holds the value
int respin = A5; // sensor pin used

في دالة ()setup، التي ستبدأ عند بدء التشغيل، تتم تهيئة الشاشة وتشغيل الإضاءة الخلفية وطباعة النص “WATER LEVEL: “.

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("WATER LEVEL: ");
}

في الدالة ()loop، سيتم حساب كمية الماء المحيطة بحساس مستوى الماء.

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

إذا كانت بين 20 و350 سينطبع على الشاشة مستوى الماء منخفض.

إذا كانت أكبر من 350 وأقل من 400 سينطبع على الشاشة مستوى الماء متوسط.

إذا كانت أكبر من 400 سينطبع على الشاشة مستوى الماء مرتفع.

void loop() {
// set the cursor to column 0, line 1
lcd.setCursor(0, 1);

resval = analogRead(respin); //Read data from analog pin and store it to resval variable

if (resval<=20)
{
lcd.println("Empty ");
}
else if (resval>20 && resval<=350)
{
lcd.println("Low ");
}
else if (resval>350 && resval<=400)
{ lcd.println("Medium ");
}
else if (resval>400){
lcd.println("High ");
}
delay(1000);
}

يمكنك اختبار نظام تحديد مستوى الماء.

لا تنسَ فصل وحدة الطاقة بعد الانتهاء من استخدام النظام.

X
Product added to the cart