תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
במדריך זה נלמד כיצד להכין פח אשפה חכם באמצעות מג'ביט dev. לוח עם Arduino IDE. בואו נתחיל.
אספקה
- מג'יקביט
- כבל USB-A למיקרו USB
- חיישן אולטרסאונד - HC -SR04 (כללי)
- מנוע מיקרו סרוו SG90
שלב 1: סיפור
לפני המעבר לפרויקט אפשר להסתכל על פח אשפה חכם. בכל בית יש פח אשפה אחד או יותר. הרבה פעמים כיסיתם את זה. כי זה יעורר ריח בבית שלך. אז כשאתה רוצה לשים קצת אשפה לפח האשפה, אתה צריך לפתוח אותו. אבל אם, כאשר אתה מתקרב לפח האשפה כדי לשים את הזבל ובאופן אוטומטי המכסה נפתח אז איך הוא נראה. אאאא מטורף…. אז זהו פח האשפה החכם.
שלב 2: תיאוריה ומתודולוגיה
התיאוריה פשוטה מאוד. כאשר אתה מתקרב לפח האשפה הוא יזהה אותך. אם המרחק בינך לבין פח האשפה קטן יותר ממרחק מוגדר כלשהו, מכסה פח האשפה ייפתח אוטומטית. לשם השלמת שני האובייקטים הללו אנו משתמשים בחיישן קולי HC-SRO4 ומנועי סרוו קטנים. אתה יכול להשיג כל סוג של מנוע סרוו דיגיטלי.
שלב 3: התקנת חומרה
לפרויקט זה השתמשנו בעיקר בשלושה רכיבי חומרה. הם מג'יקביט, מנוע סרוו וחיישן קולי. החיבור בין כל החלקים הללו מוצג באיור למעלה.
חיישן אולטרסאונד השתמש 3.3 וולט להפעלה. לכן השתמשנו ביציאה התחתונה הימנית של לוח ה- Magicbit לחיבור חיישן קולי ל- Magicbit. אבל מנוע סרוו משמש 5V לעבודה תקינה, לכן השתמשנו ביציאה התחתונה השמאלית לחיבור מנוע סרוו עם Magicbit. במקרה זה, אנו משתמשים במודול מחבר סרוו מג'יק ביט. אבל אם אין לך את המודול הזה אתה יכול להשתמש בשלושה חוטי מגשר לחיבור 5V ל 5V, Gnd ל- Gnd ואות סיכה ל- 26 פינים ב- magicbit.
עכשיו בואו נסתכל על הצד המכני של הפרויקט שלנו. כדי לפתוח את המכסה אנו משתמשים במנגנון מנוף פשוט מאוד. חיברנו קליפ יד סרוו צד אחד לסרוו. לאחר מכן חיברנו את חור הפינה בקליפ ואת מכסה פח האשפה באמצעות חוט מתכת חזק. חוט המתכת יכול להסתובב ביחס לקליפ סרוו ולכיסוי פחי האשפה. על ידי לימוד תמונה ווידאו מובילים תוכל לבנות זאת בקלות רבה.
שלב 4: התקנת תוכנה
חלק התוכנה גם קל מאוד. בואו נסתכל על קוד Arduino IDE וכיצד קוד זה עובד.
לנהיגת סרוו אנו משתמשים בספריית סרוו ESP32. ספרייה זו כמעט כוללת במנהל הלוח של bit bit ב- Arduino IDE. כדי להתמודד עם חיישן קולי אנו משתמשים בספריית newPing. ניתן להוריד זאת מהקישור הבא.
bitbucket.org/teckel12/arduino-new-ping/d…
הורד את קובץ ה- zip והגש כלים> כלול ספרייה> הוסף ספריית Zip בארדואינו. כעת בחר את קובץ ה- zip שהורדת של ספריית הסיכות החדשה. בקוד אנו מכריזים לראשונה על ספריות חיישן סרוו ואולטראסוני. בפונקציית הלולאה אנו תמיד בודקים את המרחק מפח האשפה לאובייקט הקדמי הקרוב ביותר. אם זה פומפיה מ 200, אז פלט המרחק של הספרייה הוא 0. כאשר המרחק נמוך מ -60 ס"מ, אז הוא מבצע לולאה לפתיחת המכסה על ידי סיבוב סרוו. אם המרחק גדול מ -60 ס"מ, המכסה יונח. על ידי שימוש במשתנה בוליאני אנו תמיד בודקים את מצב הכריכה. אם המכסה למטה אז רק הוא ייפתח. גם להיפך. כעת בחר את יציאת ה- COM והלוח הנכונים כ magcibit, ולאחר מכן העלה את הקוד. כעת פח האשפה החכם שלך מוכן לשימוש.
שלב 5: קוד ארדואינו
#לִכלוֹל
#הגדר TRIGGER_PIN 21 #הגדר ECHO_PIN 22 #הגדר MAX_DISTANCE 200 סונאר NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // כלול מרחק int ספריית סרוו; סרוו רדאר סרבו; הגדרת חלל () {Serial.begin (115200); RadarServo.attach (26); // מגדיר על איזה סיכה הוא עיכוב המצורף של מנוע הסרוו (3000); } לולאת חלל () {// מסובבת את מנוע הסרוו מ -15 ל- 165 מעלות עבור (int i = 0; i <= 180; i ++) {RadarServo.write (i); עיכוב (50); distance = sonar.ping_cm (); // קורא פונקציה לחישוב המרחק הנמדד על ידי החיישן האולטרא סאונד עבור כל תואר עבור (int j = 0; j0) {הפסקה; } Serial.print (i); // שולח את התואר הנוכחי אל Port Serial.print (","); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE עיבוד לאינדקס של Serial.print (j); // שולח את התואר הנוכחי אל Port Serial.print ("*"); Serial.print (1); // שולח את ערך המרחק אל Port Serial.print ("/"); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE Processing לאינדקס Serial.print (מרחק); // שולח את ערך המרחק אל Port Serial.print ("."); // שולח תו חיבור ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE עיבוד לאינדקס}} // חוזר על השורות הקודמות מ- 165 עד 15 מעלות עבור (int i = 180; i> = 0; i-) {RadarServo.write (i); עיכוב (50); מרחק = sonar.ping_cm (); עבור (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {המשך; } Serial.print (i); // שולח את התואר הנוכחי אל Port Serial.print (","); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE עיבוד לאינדקס של Serial.print (j); // שולח את התואר הנוכחי אל Port Serial.print ("*"); Serial.print (-1); // שולח את ערך המרחק אל Port Serial.print ("/"); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE Processing לאינדקס Serial.print (מרחק); // שולח את ערך המרחק אל Port Serial.print ("."); // שולח תו תוספת ממש ליד הערך הקודם הדרוש בהמשך מזהה העיבוד לאינדקס}}}