תוכן עניינים:

מכשיר מים אוטומטי למעקב אחר הצריכה: 6 שלבים
מכשיר מים אוטומטי למעקב אחר הצריכה: 6 שלבים

וִידֵאוֹ: מכשיר מים אוטומטי למעקב אחר הצריכה: 6 שלבים

וִידֵאוֹ: מכשיר מים אוטומטי למעקב אחר הצריכה: 6 שלבים
וִידֵאוֹ: עדן חסון ואודיה - הנשיקה! 😱 2024, יולי
Anonim
מכשיר מים אוטומטי למעקב אחר הצריכה
מכשיר מים אוטומטי למעקב אחר הצריכה
מכשיר מים אוטומטי למעקב אחר הצריכה
מכשיר מים אוטומטי למעקב אחר הצריכה

שלום שם!

לפני כמה חודשים, הייתי בחדר שלי וחשבתי איזה סוג של פרויקט אני רוצה לעשות למשימה בבית ספר. רציתי להכין משהו שמתאים לי ושהוא יועיל לי בעתיד. לפתע, אמי נכנסה לחדר והתחילה להתלונן על שאינה שותה מספיק מים. מיד הייתה לי התגלות. עלה בי הרעיון להכין מכשיר מים אוטומטי (כמו באולם הקולנוע) העוקב אחר צריכת המים שלך על בסיס יומי.

עם פטל פטל, כמה חיישנים, משאבה ומעט ידע ניסיתי להפוך את זה לטוב ככל האפשר.

בסוף כל השלבים, יהיה לך מכשיר מים פועל שממלא את בקבוק המים שלך ומתחבר ואינטראקציה עם ה- Raspberry Pi שלך. לא רק שתוכל לעקוב אחר צריכת המים שלך על בסיס אחוזים, אלא תהיה לך גם אפשרות לצפות בטמפרטורה ובמפלס המים של מיכל המים שלך. לבסוף, תוכל לבדוק את הנתונים הסטטיסטיים שלך. אם זה נשמע לך מעניין, הקפד לבדוק זאת ולנסות זאת בעצמך!

מאגר GitHub:

אספקה

בקרי מיקרו

פטל פי 4

חיישנים ומודולים

השתמשתי ב -4 חיישנים:

חיישן קולי 2xHC-SR04

חיישנים אולטרסאונד מודדים מרחק באמצעות גלי קולי. ראש החיישן פולט גל קולי ומקבל את הגל המוחזר בחזרה מהמטרה. חיישנים אולטרא סאונד מודדים את המרחק ליעד באמצעות מדידת הזמן בין הפליטה לקליטה. השתמשתי בשניים מהם כדי לבדוק אם יש בקבוק בקרבת מקום ולמדוד את המרחק למים במיכל.

טופס מידע

1x חיישן טמפרטורה DS18B20

ה- DS18B20 הוא חיישן טמפרטורה הניתן לתכנות בעל 1 חוטים מתוך מקסימום משולב. הוא נמצא בשימוש נרחב למדידת טמפרטורה בסביבות קשות כמו בתמיסות כימיות, מוקשים או אדמה וכו '. השתמשתי בו למדידת טמפרטורת המים של מיכל המים.

טופס מידע

מודול RFID אחד מסוג RC522

RC522 הוא מודול RFID של 13.56MHz המבוסס על בקר MFRC522 של מוליכים למחצה של NXP. המודול יכול לתמוך ב- I2C, SPI ו- UART ובדרך כלל נשלח עם כרטיס RFID ומפתח מפתח. הוא משמש בדרך כלל במערכות נוכחות ויישומים אחרים לזיהוי אדם/אובייקט. בפרויקט זה הוא משמש למערכת זיהוי/התחברות.

טופס מידע

ו -2 מפעילים:

1x משאבה פריסטלטית 12-24V

השתמשתי במשאבה פריסטלטית כדי להעביר את המים מהמיכל לבקבוק מים. רוב המשאבות היו איטיות מדי, אז הלכתי על גרסת 24V שאני מפעיל באמצעות מתאם מתח 24V.

1x תצוגת LCD

ה- LCD משמש להצגת כתובת ה- IP והודעות חשובות. צג קריסטל נוזלי (LCD) הוא צג בעל מסך שטוח או מכשיר אופטי אחר בעל אפנון אלקטרוני המשתמש במאפייני אפנון האור של גבישים נוזליים בשילוב מקטבים.

טופס מידע

מַעֲטֶפֶת

אם כבר מדברים על המעטפת, עשיתי עשה זאת בעצמך עם אספקה ממחסן הום (במקרה שלי ה בריקו בבלגיה). השתמשתי בדיקט שחתכתי לגודל הנכון. אדבר על איך הצגתי את הטענה שלי בשלב נוסף, אבל להלן הדברים שתצטרך:

  • 3x קרשים דיקט
  • 1x משפך קטן
  • 1x מיכל מים (אתה יכול לבחור איזה כמות שאתה רוצה, הלכתי על 10 ליטר)
  • 1x מגש טפטוף

אתה יכול למצוא את כל החומרים והתמחור ב- BOM המצורף.

שלב 1: חיבור כל האלקטרוניקה

חיבור כל האלקטרוניקה
חיבור כל האלקטרוניקה
חיבור כל האלקטרוניקה
חיבור כל האלקטרוניקה

כעת, לאחר שסיכמנו את כל האלקטרוניקה, הגיע הזמן לחבר אותם. הכנתי שני מעגלי פריטינג, קרש לחם ואחד סכמטי, כדי להראות לך כיצד והיכן צריך לחבר את כל האלקטרוניקה. אתה יכול למצוא את קישור ההורדה לפריטינג כאן: https://fritzing.org/download/. כפי שצוין קודם לכן, השתמשתי ב- Raspberry Pi וחיברתי סורק RFID, שני חיישנים אולטראסוניים, חיישן טמפרטורה אחד, LCD ומשאבה פריסטלטית למים.

צירפתי את שני המעגלים בקובץ PDF, אם אתה רוצה להסתכל עליו מקרוב.

שלב 2: הגדרת ה- Raspberry Pi

נשתמש ב- Raspberry Pi שלנו כדי להריץ ולשלוט על הכל: backend, frontend ומסד נתונים.

פטל פטל אינו פועל אוטומטית. נצטרך לעבור כמה שלבים כדי להתחיל להשתמש בו.

שלב 1: Raspbian

אם אתה משתמש ב- Raspberry Pi חדש לגמרי, תזדקק ל- raspbian. קישור ההורדה והדרכה ניתן למצוא כאן.

שלב 2: כתיבת התמונה ל- SD

כעת, לאחר שיש לך את תמונת ה- Raspbian שלך, תזדקק לתוכנת כתיבת תמונות (אני ממליץ על win32diskimager) בכדי לכתוב את קובץ התמונה לכרטיס ה- SD. את ההדרכה המלאה תוכלו למצוא כאן.

שלב 3: כניסה ל- Raspberry Pi

פתח את "Powershell" והקלד "ssh [email protected]". אם הכל ילך כשורה, הם יבקשו ממך סיסמה (סיסמת ברירת המחדל היא תמיד פטל). בדרך כלל זה אמור להיכנס אליך ל- Raspberry Pi. כעת נצטרך לבצע כמה שינויים בהגדרות שלנו. הקלד sudo raspi-config במסוף ולחץ על enter. נווט לאפשרויות הלוקליזציה> שנה אזור זמן והגדר אותו לאזור הזמן שלך. עליך גם לשנות את מדינת ה- Wi-Fi שלך למיקום שלך. לבסוף, עבור לאפשרויות הממשק והפעל SPI, I2C וחוט אחד. זה יהיה חשוב להשתמש בחיישנים בצורה נכונה.

שלב 4: הגדרת חיבור האינטרנט

אנו נשתמש ברשת WiFi. אתה יכול להוסיף את הרשת הביתית שלך באמצעות:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

יהיה עליך לאתחל את ה- Pi שלך כדי ליצור חיבור. כדי לבדוק אם זה עבד, תוכל להשתמש ב- ifconfig כדי לבדוק אם יש כתובת IP.

שלב 5: הגדרת שרת האינטרנט ומסד הנתונים

ראשית, עדיף לעדכן ולשדרג את המערכת עם רצף הפקודות הבא:

  1. sudo apt dist-upgrade-auto-remove -y
  2. sudo apt upgrade
  3. עדכון sudo apt
  4. sudo apt הסרה אוטומטית

לאחר שתעשה זאת, נזדקק לחבילות הבאות עבור שרת האינטרנט ובסיס הנתונים שלנו:

אפאצ'י

sudo apt להתקין apache2 -y

PHP

sudo apt להתקין php

sudo apt להתקין phpMyAdmin -y

אל תשכח להגדיר סיסמת MySQL מאובטחת כאשר היא מבקשת להגדיר סיסמה.

MariaDB

sudo apt להתקין mariadb-server mariadb-client -y

sudo apt להתקין php -mysql -y

sudo systemctl הפעלה מחדש של apache2.service

שלב 6: התקנת ספריות פייתון

עבור backend, נצטרך כמה ספריות עבור Python. אנו נתקין אותם באמצעות pip3, מכיוון שאנו משתמשים ב- python3.

pip3 התקן את mysql-connector-python

pip3 התקן flask-socketio

pip3 התקן בקבוקונים

pip3 התקן gevent

pip3 התקן gevent-websocket

sudo apt להתקין python3 -mysql.connector -y

pip3 התקן mfrc522! (נצטרך זאת כדי להשתמש בסורק ה- RFID)

שלב 7: הכנת קוד Visual Studio

להפעלת הקוד, אני ממליץ להשתמש ב- Visual Studio Code לחיבור ה- Raspberry Pi שלך. קישור ההורדה להתקנת VSC ניתן למצוא כאן.

אם עדיין אין לך התקנה לפיתוח מרחוק באמצעות SSH, תוכל למצוא את השלבים לעשות זאת כאן.

שלב 3: יצירת מסד הנתונים

יצירת מסד הנתונים
יצירת מסד הנתונים

נשמור את כל נתוני החיישנים ונתוני המשתמש שלנו במסד נתונים.

מסד הנתונים שלי מורכב מ -5 טבלאות:

התקן

ל- Device Device יש DeviceID, המתייחס למכשיר עצמו. DeviceName נותן את שם המכשיר, במקרה זה חיישן קולי, חיישן טמפרטורה,… DeviceType נותן את סוג המכשיר (חיישן או מפעיל).

הִיסטוֹרִיָה

היסטוריית הטבלאות מכילה את כל היסטוריית החיישנים, יחד עם תאריך התאריך (HistoryDate) ההיסטוריה נוספה וערך הרגע בהיסטוריה. יש לו גם שני מפתחות זרים:

  • DeviceID, כדי לקשר יומן ספציפי למכשיר
  • UserID, כדי לקשר משתמש ספציפי ליומן (זאת מכיוון שאנו עושים שימוש ב- RFID, ואנו רוצים להוסיף את יומן ההיסטוריה למשתמש ספציפי אחד)

מִשׁתַמֵשׁ

משתמש בטבלה משמש ליצירת מערכת התחברות למשתמש באמצעות סורק ה- RFID. הוא מורכב מכינוי, שם פרטי, שם משפחה, סיסמה ו- RFID (זהו מספר ה- RFID של תג). כל משתמש מקושר למכולה (מיכל מים) ונושא גם את ה- ContainerID כמפתח זר.

מְכוֹלָה

מיכל השולחן מורכב מכל המכולות השונות. יש לו מזהה, מיכלת מיכל (זה יכול להיות ארגון, בית או כל דבר אחר). לבסוף, יש לו MaxLevel המייצג את הנפח המרבי שיש למיכל.

הגדרות

להגדרות הטבלה יש מזהה Settings, ועוקב אחר DailyGoal של כל משתמש + התאריך שבו הוסיף DailyGoal על ידי המשתמש. זה מסביר את מזהה User ID של המפתח הזר.

ניתן למצוא זבל של מסד הנתונים במאגר GitHub שלי תחת מסד נתונים.

שלב 4: הגדרת ה- backend

אין פרויקט ללא תומך עובד.

הקצה האחורי מורכב מארבעה דברים שונים:

עוזרים

העוזרים הם כל השיעורים המשמשים את החיישנים והמפעילים השונים. יש עוזר לחיישן הטמפרטורה (DS18B20), לחיישנים האולטראסוניים (HCSR05) שיוכלו למדוד את המרחק ול- LCD לכתוב הודעות למסך.

מאגרים

בתיקיית המאגרים תמצאו 2 קבצי Python:

  • Database.py שהוא עוזר להוציא שורות ממסד הנתונים שלך. זה מקל על ההפעלה והקריאה של מסד הנתונים.
  • DataRepository.py המכיל את כל שאילתות ה- SQL, המשמשות את הקוד הראשי (app.py). הם משמשים לקבלת, עדכון או מחיקה של נתונים ממסד הנתונים.

app.py

זהו קוד ה- backend העיקרי של הפרויקט. הוא מבצע את ההתקנה על ידי הגדרת כל הסיכות והמצבים ומכיל את הקוד לגרום למשאבה לעבוד, להשיג את הטמפרטורה, להשיג את המשתמש וכן הלאה. הוא מכיל גם את המסלולים המשמשים לאחזור נתונים ממסד הנתונים ומכל ה- socketio.on. עבור כל דף HTML יש socketio.on אחר כדי לוודא שכל פונקציה עובדת בזמן הנכון.

config.py

נותר לנו קובץ אחד: config.py. זהו הקובץ עם אפשרויות התצורה להתחברות למסד הנתונים שלך. אל תשכח להגדיר את אישורי מסד הנתונים שלך.

ניתן למצוא את ה- backend במאגר שלי תחת Backend.

שלב 5: הגדרת החזית

הגדרת Frontend
הגדרת Frontend
הגדרת Frontend
הגדרת Frontend

עבור Frontend, התחלתי בעיצוב איך שרת האינטרנט שלי צריך להיראות ב- AdobeXD. השתמשתי בצבעים בלוגו שלי, שהם כתומים ושני גוונים כחולים שונים. ניסיתי לשמור על העיצוב פשוט ככל האפשר ויצרתי טיפת מים שמראה את האחוזים עד כמה השגת את מטרת היום שלך.

במאגר GitHub שלי, תמצא את Frontend שלי תחת קוד> Frontend. חשוב שתדביק את זה בתיקייה /var /html שלך של Raspberry Pi כדי להפוך אותו לנגיש משרת האינטרנט.

הוא מורכב מכמה קבצי HTML המובילים לדפים השונים. תוכל למצוא גם את screen.css שלי עם כל ה- CSS הדרוש לך בכדי שזה ייראה כמו הפרויקט שלי. לבסוף, יהיו לך קבצי JavaScript שונים תחת סקריפטים. סקריפטים אלה מתקשרים עם ה- backend שלי כדי להציג נתונים ממסד הנתונים או מה- backend שלי.

ניתן למצוא את ה- backend במאגר שלי תחת Frontend.

שלב 6: יצירת מעטפת

יצירת מעטפת
יצירת מעטפת
יצירת מעטפת
יצירת מעטפת
יצירת מעטפת
יצירת מעטפת

אם אנחנו מדברים על המקרה שלי, ישנם שני חלקים עיקריים:

מעטפת חיצונית

בניתי את המארז מאפס. השתמשתי בלוחות דיקט ונסרתי אותם בגדלים הנכונים. הברגתי את כל הקרשים וקדחתי חורים עבור ה- LCD, הכפתור, החיישן האולטראסוני כדי לזהות אם קיים בקבוק איזה מים והמשפך לחלוקת המים. חילקתי את המארז לחלקים שונים כדי לשמור על הפרדת המים והאלקטרוניקה והשתמשתי במגש כבלים כדי להגן על הכבלים מפני דליפת מים. בסרטון המצורף תוכלו לראות את רוב ההיבטים של המארז שלי וכיצד הכנתי אותו. הדפסתי גם תלת מימד כפתור המודבק לכפתור רגיל. לבסוף, השתמשתי במגש טפטוף כדי לאסוף את כל המים שנשפכו. השתמשתי גם בצירים כדי לפתוח ולסגור לוח צד כדי להסתכל על האלקטרוניקה שלי. אתה תמיד יכול להשתמש במתקן יד שנייה או שאתה יכול גם להשתמש בחומרים אחרים.

למידות המדויקות של הבניין שלי, צירפתי קובץ PDF עם כל גדלי הלוחות המשמשים במקרה.

מיכל מים

מיכל המים לא היה פשוט. קיבלתי מיכל מים עם חור בתחתית, אז הייתי צריך להקליט אותו כדי לעצור את הדליפה. תזדקק לארבעה חורים: אחד לחיישן הטמפרטורה, אחד לצינור המשאבה שלך. אחד לצינור למילוי המיכל ואחד לחיישן אולטרסוני. עבור האחרון, הדפסתי תלת מימד עבורו, אשר ניתן למצוא כאן. זה נותן לחיישן הגנה רבה יותר מפני מים. לאחר מכן קידחתי מלבן בחלק העליון של הטנק, כדי להניח עליו את החיישן.

מוּמלָץ: