מערכת אשפה: 7 שלבים
מערכת אשפה: 7 שלבים
Anonim
מערכת אשפה
מערכת אשפה

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

אספקה

חיישן קולי (HC-SR04)

פטל פי (השתמשנו ב- Pi 4 דגם B)

לוח לחם

כבלי מגשר

זוג נגדים (3 x 1k ohm)

שלב 1: חיבור HC-SR04

חיבור HC-SR04
חיבור HC-SR04

מכיוון שאנו משתמשים ב- Raspberry Pi, עלינו להשתמש במפריד מתח כדי לווסת את המתח הנכנס לתוך סיכות ה- GPIO של ה- Pi מכיוון שהם מאפשרים רק 3.3 וולט. HC-SR04 משתמש 5V אבל צריך להוריד אותו ל 3.3V בעת חיבורו ל- Pi. חבר את סיכות 5V והארקה בהתאמה ועל פי התוכנית שלך צרף את סיכות ההד וההדק לסיכות המכבדות. בתוכנית שלנו השתמשנו בסיכה 23 ו -24 להד ולהדק בהתאמה.

שלב 2: Mosquitto ו- Paho MQTT

לפני שנתחיל לתכנת ב- Python בכדי לגרום לחיישן האולטראסוני לעבוד עם ה- Pi, עלינו להתקין את היישומים הללו כדי לגרום לחיישן האולטראסוני לתקשר עם תוכנת התכנות שלנו Node-RED. Mosquitto הוא מתווך MQTT שתוכל להשתמש בו ב- Pi בעוד Paho MQTT הוא הספרייה המאפשרת לך לקוד ב- Python כדי לגרום לחיישן לתקשר עם מתווך MQTT. כדי להתקין את שני אלה היית מקליד פקודות אלה במסוף ה- Pi שלך

עדכון sudo apt

sudo apt להתקין -y יתושים לקוחות

sudo apt-get להתקין python3-pip

sudo pip3 התקן paho-mqtt

שלב 3: תוכנית פייתון לחיישן קולי

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

שלב 4: צומת אדום

צומת אדום
צומת אדום
צומת אדום
צומת אדום
צומת אדום
צומת אדום
צומת אדום
צומת אדום

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

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

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

שלב 5: רישום נתונים

נתוני רישום
נתוני רישום
נתוני רישום
נתוני רישום
נתוני רישום
נתוני רישום

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

השלבים ליצירת ורישום נתונים הם כדלקמן:

1. צור את מסד הנתונים

2. רישום הנתונים

3. משוך את הנתונים שיוצגו בלוח המחוונים שלנו

4. נקה ומחק את הנתונים

הדרך שבה SQL עובדת היא שעליך ליצור את הנושא שהוא CREATE TABLE, INSERT INTO, SELECT FROM ו- DELETE FROM. באמצעות צמתים של חותמת זמן אנו יכולים לבצע נושאים לצומת sqlite שעושה כל אחת מהפונקציות הללו (ליצור, להכניס, לבחור ולמחוק). אנחנו רק צריכים ליצור את מסד הנתונים פעם אחת וברגע שהוא נעשה נוכל לרשום אליו נתונים. לאחר יצירת מסד הנתונים, אנו יכולים לרשום נתונים והשתמשנו שוב בקלט משתמשים כדי להיכנס כאשר המשאית הגיעה. עשינו את זה כך שלא תוכל לרשום נתונים עד שהמשאית מותרת להגיע, שהם 5 זבל בנפח 80% (נחשב מלא). כמו כן, השתמשנו שוב בצומת הטווח כדי לשנות את ה- 500 בחזרה ל-0-100%. לאחר מכן יש לנו את האפשרות למחוק את כל הנתונים ממסד הנתונים אם נרצה. צומת הטבלה UI הוא צומת המאפשר לנו לראות את הטבלה בצורה מעוצבת יפה בלוח המחוונים שלנו.

שלב 6: פריסה

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

שלב 7: סיכום

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

מוּמלָץ: