في هذه المقالة ، سيخبرنا المعالج عن كيفية إنشاء نظام لرصد ومراقبة مستوى الماء في الخزان. إنه نظام بسيط وموثوق.
ميزاته الرئيسية هي كما يلي:
رصد مستوى المياه في الوقت الحقيقي.
مضخة تشغيل / إيقاف أوتوماتيكية.
إغلاق طارئ للمضخة.
الأدوات والمواد:
-اردوينو برو ميني
- جهاز استشعار بالموجات فوق الصوتية HC-SR04 ؛
- الوحدة MAX485 ؛
- وحدة LCD i2c ؛
LCD 1602 ؛
- متحكم ATTINY45 / 85 ؛
- منظم الجهد LM7805 ؛
NPN الترانزستور (2n3904) ؛
-N- قناة MOSFET IRFD024PBF ؛
ديود 1N4007 ؛
موصل 5 دبوس
موصل 4 دبوس
-2 موصل دبوس
- محطات مع جهات اتصال 2 (أزرق) - 2 جهاز كمبيوتر ؛
- محطة مع جهتي اتصال (خضراء) ؛
جاك DC (- 2 قطعة).
- مقبس صوتي (ذكر / أنثى) - قطعتان ؛
- المقاوم 1 كيلو أوم ؛
- المقاوم 10 كيلو أوم - 3 قطع ؛
- مكثف 100 nF - 3 قطع ؛
مكثف 100 فائق التوهج ؛
- زر SMD ، 6x3.5mm ؛
- مفاتيح DIP (SPST 2) - 2 جهاز كمبيوتر ؛
- زر الطاقة ؛
- بهلوان.
-12V تتابع العاصمة.
-توصيل المقاولين ؛
- مصدر طاقة تيار مستمر 5 فولت (> 200 مللي أمبير) ؛
- مصدر طاقة DC 12V (> 500 مللي أمبير) ؛
-صناديق لحجم مناسب.
-الأصحاب.
- ملحقات لحام.
- مفك البراغي ؛
-سلك.
الخطوة الأولى: وحدة الاستشعار
تقيس هذه الوحدة مستوى المياه وترسل البيانات إلى وحدة التحكم الرئيسية. لديها مستشعرين لقياس مستوى الماء. أحدهما هو مستشعر المسافة بالموجات فوق الصوتية HC-SR04 ، والمسمارين الآخرين البارزين البارزين للخارج ، كما هو موضح في الصورة.
لتثبيت المستشعرات ، عليك تنفيذ الخطوات التالية:
ضع محول الطاقة بالموجات فوق الصوتية رأسًا على عقب في الجزء الأمامي من الغطاء بالقرب من الجزء العلوي وضع علامة على الفتحتين لجهاز الإرسال والاستقبال بالموجات فوق الصوتية.
اقطع الفتحات واربط المستشعر في مكانه باستخدام الغراء الساخن.
ثم احفر ثقبين بقطر 3 مم مع فجوة 2-3 سم في منتصف الغطاء.
أدخل مسامير M3 الطويلة مع تثبيت طرف السلك بين الغسلين على الجزء الخلفي من الغطاء وشد صواميل M3 على الجانب الآخر.
تستخدم وحدة الاستشعار ATTINY45 كمتحكم دقيق أساسي. كما ذكرنا سابقًا ، يستخدم HC-SR04 لقياس مستوى الماء. يعمل عن طريق قياس المسافة من أعلى الخزان.
أيضا ، يتم التحكم باستخدام مسامير في الدائرة ، والتي يتم تثبيت الترانزستور. يقرأ الميكروكونترولر البيانات من كلا المستشعرين ويرسل البيانات إلى Arduino المثبتة في وحدة التحكم.
أولاً ، أراد المعلم إرسال البيانات من خلال وحدات HC-12 RF. لكن نطاق هذه الوحدات لا يتطابق مع المتطلبات.استخدم المعالج محول MAX485 TTL إلى RS485 وقام بعمل رافعة صغيرة للتثبيت بدلاً من وحدات HC-12.
يمكن تنزيل المخطط والارتباط باللوحة على هذا العنوان.
التثبيت على النحو التالي:
HC-SR04 إلى الدائرة الرئيسية:
VCC - 5V (CN1).
trig - trigPin (CN1).
صدى - echoPin (CN1).
Gnd - GND (CN1).
مسامير M3 إلى الدائرة الرئيسية:
الترباس 1-5 فولت (CN1).
الترباس 2 - 100 (CN1).
وحدة MAX485 (TX):
VCC - 5 فولت (موصل HC-12)
أ - مقبس صوت 1/4-inch.
B - مقبس صوت 1/4-inch.
GND - GND (موصل HC-12)
R0 - RX (موصل HC-12)
RE - VCC (MAX485) أو 5V.
DE - RE (يتم اختصاره كـ RE و DE).
DI - TX (موصل HC-12).
مقبس DC (موصل P1):
نصيحة - 5V
كم - GND
الخطوة الثانية: جهاز التحكم
تشغيل وحدة التحكم بسيط. يتم استخدام Arduino كوحدة التحكم الرئيسية. يتلقى بيانات الاستشعار المرسلة من لوحة الإرسال من خلال وحدة max485. يحتوي على شاشة LCD 1602 تعرض مستوى الماء الحالي وتشغيل المضخة. يستخدم مرحل 12 فولت كمفتاح لتشغيل موصل التتابع. يحتوي على مفتاحين ، واحد للإضاءة الخلفية لشاشة LCD والآخر لمضخة الطوارئ للتشغيل / الإيقاف.
يوجد ارتباط بمخطط الدائرة وتصميم لوحة الدوائر المطبوعة لجهاز الإرسال والاستقبال هنا.
وحدة i2c LCD ملحومة مباشرة إلى 1602 LCD. يتم توصيل وصلة الإضاءة الخلفية في وحدة i2c بمفتاح التبديل للتشغيل / الإيقاف. يتم توصيل زر الطوارئ (كبير) بالدائرة الرئيسية عبر الموصل P4.
وحدة LCD I2c إلى الدائرة الرئيسية (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
اتصالات التتابع التتابع:
A1 - 230 فاك 1 (صفر).
A2 - NO (اتصال التتابع).
S1 - 230 فاك 1 (صفر).
S2 - 230 فاك 2 (المرحلة)
L1 - سلك محرك المضخة 1
L2 - سلك محرك المضخة 2.
قم بتوصيل جهة اتصال ترحيل COM بـ 230 VAC2 (خط).
الخطوة الثالثة: البرمجيات والبرمجة
تحتاج الآن إلى برمجة وحدات التحكم على كلا الجهازين.
لتنزيل رمز إلى ATTINY45 ، يقوم بتنزيل مكتبة SoftwareSerial.h.
في وظيفة الحلقة ،
> تحقق أولاً مما إذا كان الخزان ممتلئًا أم لا.
> إذا كانت ممتلئة يرسل "255".
> إذا لم يكن ممتلئًا ، فإنه يفحص مستوى الماء باستخدام مستشعر صوت فوق صوتي وينقل البيانات عبر الاتصال التسلسلي.
يستخدم هذا البرنامج الوظيفة الفرعية getwtrLvl () للحصول على مستوى المياه الحالي. أولاً ، يقيس الوقت الذي يستغرقه المستشعر لإرسال واستقبال الموجات فوق الصوتية. ثم يتم تحويل الوقت إلى المسافة باستخدام سرعة الصوت.
dist = pulseIn (echoPin، HIGH) ؛ // الوقت الذي تقضيه الموجة الصوتية.
dist = dist / 28/2 ؛ // ترجمة الوقت إلى مسافة بالسنتيمتر
dist = dist * 1.25 ؛ // هنا 1.25 هو عامل التصحيح للتغلب على خطأ القياس
عودة dist // يعيد المسافة إلى دالة الاستدعاء
الآن لاردوينو.
في وظيفة الحلقة:
> أولاً يتم فحص ما إذا كان زر الطوارئ مضغوطًا أم لا.
> فحص المستشعر. يتحقق جزء من البرنامج من وجود خطأ في المستشعر. أي إذا كانت البيانات المستلمة غير صالحة (<= 1) 5 مرات ، فإن الشاشة تعرض خطأ المستشعر وتتوقف المضخة.
> يعرض الجزء التالي مستوى الماء الحالي ويعطي أمرًا بالمضخة 1 إذا كان مستوى الماء صغيرًا ، أو 0 إذا كان 100٪ (ممتلئ).
يستخدم هذا البرنامج وظيفتين فرعيتين UpdtMotor () و getWaterLvl (). تُظهر وظيفة updtMotor () تشغيل المضخة على شاشة LCD ، وترسل أيضًا إشارة إلى المرحل.
تتحقق الدالة getWaterLvl أولاً لمعرفة ما إذا كان هناك أي خطأ في الاتصال. إذا لم يتم تأسيس الاتصال بين جهاز الإرسال وجهاز الاستقبال خلال فترة الانتظار (3000 مللي ثانية). يظهر خطأ في المستشعر ويوقف المضخة.
عند استعادة الاتصال ، تستأنف العملية.
كل شيء جاهز ، وذلك بفضل المعلم للحصول على اهتمام محلية الصنع.