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

הודעות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel: 4 שלבים (עם תמונות)
הודעות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel: 4 שלבים (עם תמונות)

וִידֵאוֹ: הודעות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel: 4 שלבים (עם תמונות)

וִידֵאוֹ: הודעות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel: 4 שלבים (עם תמונות)
וִידֵאוֹ: עשר הנשים הכי גבוהות בעולם┃טופטן 2024, נוֹבֶמבֶּר
Anonim
Image
Image
התראות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel
התראות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel

האם אי פעם רצית לקבל הודעה כאשר מתבצעת פעולה באתר שלך אך דוא ל אינו מתאים? האם אתה רוצה לשמוע צליל או פעמון בכל פעם שאתה מבצע מכירה? או שיש צורך בתשומת לב מיידית שלך בגלל מצב חירום בבית?

מכשיר זה יכול להתריע בזמן אמת על כל מה שאתה אוהב.

שלב 1: חיבור המעגל

לחבר את המעגל
לחבר את המעגל
לחבר את המעגל
לחבר את המעגל

המכשיר שבניתי מורכב מלוח NodeMCU עם זמזם כדי להתריע על מכירות שבוצעו באתר. המיקרו -בקר מתוכנת באמצעות תוכנת Arduino והחלק המפעיל יכול להיות כל יישום אינטרנט, iOS או אנדרואיד. יצרתי שני יישומי אינטרנט פשוטים, אחד ב- Laravel והשני ב- HTML רגיל ו- JavaScript לדוגמא.

מכיוון שלוח NodeMCU יכול לפעול בבטחה עד סביב 12mA של זרם על הפינים, הזמזם מחובר באמצעות טרנזיסטור NPN. השתמשתי ב- 2N2222 מכיוון שרבים מהם מונחים אך אני בטוח שהעיקרון יהיה זהה לכל טרנזיסטור NPN אחר.

כדי לחבר את המעגל, חבר את אספן הטרנזיסטור לסיכת הווין שעל הלוח. הזמזם פועל על 5V ומכיוון שנפעיל את המכשיר מ- USB, סיכה זו תיתן לנו את המתח לפני הרגולטור של 3.3V בלוח.

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

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

שלב 2: הכינו את אפליקציות האינטרנט

הכינו את אפליקציות האינטרנט
הכינו את אפליקציות האינטרנט
הכינו את אפליקציות האינטרנט
הכינו את אפליקציות האינטרנט
הכינו את אפליקציות האינטרנט
הכינו את אפליקציות האינטרנט

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

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

אפליקציית Laravel משתמשת בחבילת "firebase-php" של Kreait, והיא מקושרת להלן. התקן את החבילה על ידי הפעלת "מלחין דורש kreait/firebase-php". לאחר סיום ההתקנה, עלינו ליצור את הבקר שבו הפעולה תתרחש. קראתי לשיטה "עדכון" וחיברתי אותה במסלולים בפעולת POST.

כדי לאחזר את מופע Firebase אתה צריך קובץ json שאתה צריך להוריד ממסוף ה- Firebase שלך. מקם קובץ זה בשורש פרוייקט Laravel שלך ושמו אותו firebase.json. בעת אחזור מופע בסיס האש, עלינו לספק את הנתיב לקובץ זה בשיטת withCredentials.

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

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

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

שלב 3: תכנות את לוח NodeMCU

תכנת לוח NodeMCU
תכנת לוח NodeMCU
תכנות את לוח NodeMCU
תכנות את לוח NodeMCU
תכנות את לוח NodeMCU
תכנות את לוח NodeMCU

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

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

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

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

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

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

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

שלב 4: תהנה מהמכשיר שלך

תהנה מהמכשיר שלך!
תהנה מהמכשיר שלך!

כל הקוד בו השתמשתי זמין בחשבון GitHub שלי המקושר למטה יחד עם הקישור לתרשים של הפרויקט.

קוד מקור

סכמטי

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

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

אם אהבת את הפרויקט אנא הירשם לערוץ היוטיוב שלי:

טעמו את הקוד

מוּמלָץ: