במאמר זה, הקוסם יגיד לנו כיצד ליצור מערכת לניטור ושליטה על מפלס המים במיכל. זו מערכת פשוטה ואמינה.
מאפייני המפתח שלה הם כדלקמן:
ניטור מפלס מים בזמן אמת.
משאבת הפעלה / כיבוי אוטומטית.
כיבוי חירום של המשאבה.
כלים וחומרים:
-ארדואינו פרו מיני
חיישן קולי HC-SR04;
- מודול MAX485;
- מודול LCD i2c;
LCD 1602;
- בקר מיקרו ATTINY45 / 85;
- ווסת מתח LM7805;
טרנזיסטור NPN (2n3904);
-N-channel MOSFET IRFD024PBF;
דיודה 1N4007;
מחבר 5 פינים;
מחבר 4 פינים
מחבר -2 פינים;
- מסופים עם 2 אנשי קשר (כחול) - 2 יח ';
- מסוף עם 2 אנשי קשר (ירוק);
ג'ק DC (- 2 יח ')
שקע שמע (זכר / נקבה) - 2 יח ';
- נגד 1 kOhm;
- נגד 10 kOhm - 3 יח ';
- קבל 100 nF - 3 יח ';
קבל 100 uF;
- כפתור SMD, 6x3.5 מ"מ;
מתגי מח"ש (SPST 2) - 2 יח ';
- כפתור הפעלה;
- כוס
ממסר DC-12V;
-יש קשר ממסר;
- ספק כוח DC 5 וולט (> 200 mA);
- ספק כוח 12V DC (> 500 mA);
-תיקים למקרה בגודל מתאים;
-דבקות;
אביזרי הלחמה;
- מברג;
-חוט;
שלב ראשון: יחידת חיישנים
יחידה זו מודדת את מפלס המים ושולחת נתונים לבקר הראשי. יש לו שני חיישנים למדידת מפלס המים. האחד הוא חיישן המרחק הקולי HC-SR04, שני הברגים האחרים הבולטים החוצה, כמוצג בתצלום.
כדי להתקין את החיישנים עליך לבצע את הצעדים הבאים:
הנח את מתמר הקולי הפוך בחזית הכיסוי ליד החלק העליון וסמן את שני החורים עבור המשדר והמקלט הקולי.
חותכים חורים ומהדקים את החיישן במקום בעזרת דבק חם.
לאחר מכן קדחו שני חורים בקוטר 3 מ"מ בפער של 2-3 ס"מ במרכז הכיסוי.
הכנס את ברגי M3 הארוכים כשמסוף החוט מהודק בין שני הכביסים בגב הכיסוי והדק את אגוזי M3 בצד השני.
יחידת החיישנים משתמשת ב- ATTINY45 כמיקרו-בקר העיקרי. כאמור, HC-SR04 משמש למדידת מפלס המים. זה עובד על ידי מדידת המרחק מקצה הטנק.
כמו כן, השליטה מתבצעת באמצעות שני ברגים במעגל, אותם הותקן הטרנזיסטור. בקר המיקרו קורא נתונים משני חיישנים אלה ושולח נתונים לארדואינו המותקן ביחידת הבקר.
ראשית, המאסטר רצה לשלוח נתונים באמצעות מודולי RF-HC. אך טווח המודולים הללו אינו תואם את הדרישות.האשף השתמש בממיר MAX485 TTL ל- RS485 והפך מכשיר קטן להתקנה במקום מודולי HC-12.
ניתן להוריד את התוכנית והקישור ללוח בכתובת זו.
ההתקנה היא כדלקמן:
HC-SR04 למעגל הראשי:
Vcc - 5V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
ברגי M3 למעגל הראשי:
בורג 1 - 5 V (CN1).
בורג 2 - 100 (CN1).
מודול MAX485 (TX):
VCC - 5V (מחבר HC-12)
A - שקע שמע בגודל 1/4 אינץ '.
B - שקע שמע בגודל 1/4 אינץ '.
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 ואחד למשאבת חירום למצב כיבוי.
נמצא קישור לתרשים המעגלים ולעיצוב לוח המעגלים המודפס עבור המשדר והמקלט כאן.
מודול LCD i2c מולחם ישירות למסך 1602. מגשר התאורה האחורית במודול i2c מחובר למתג ההפעלה להפעלה / כיבוי. כפתור החירום (גדול) מחובר למעגל הראשי דרך המחבר P4.
מודול LCD I2c למעגל הראשי (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
חיבורי ממסר ממסר:
A1 - 230 VAC1 (אפס).
A2 - NO (קשר ממסר).
S1 - 230 VAC1 (אפס).
S2 - 230 VAC2 (שלב)
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 ms). זה מראה על שגיאת חיישן ומכבה את המשאבה.
כאשר החיבור משוחזר, הפעולה מתחדשת.
הכל מוכן, תודה לאדון על עניין תוצרת בית.