תוכן עניינים:
- שלב 1: המעגל
- שלב 2: קוד עיבוד האותות ותקשורת שרת
- שלב 3: תקשורת השרת והנתונים
- שלב 4: אפליקציית האנדרואיד
- שלב 5: מסקנה
וִידֵאוֹ: מד דופק IOT (ESP8266 ואפליקציית אנדרואיד): 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
כחלק מפרויקט השנה האחרונה שלי רציתי לעצב מכשיר שיפקח על קצב הלב שלך, יאחסן את הנתונים שלך בשרת ויודיע לך באמצעות התראה כאשר הדופק שלך אינו תקין. הרעיון מאחורי הפרויקט הזה עלה כאשר ניסיתי לבנות אפליקציית fit-bit המודיעה למשתמש כאשר יש לו בעיה בלב אך לא הצלחתי להבין כיצד להשתמש במידע בזמן אמת. לפרויקט יש ארבעה חלקים עיקריים. כולל המעגל הפיזי למדידת פעימות הלב, מודול Wi-Fi ESP8266 עם קוד עיבוד אותות, השרת לאחסון הקוד ואפליקציית אנדרואיד להצגת קצב הלב.
ניתן לראות למעלה סרטון המפרט את המעגל הפיזי. כל הקוד לפרויקט ניתן למצוא ב- Github שלי.
שלב 1: המעגל
ישנן שתי שיטות עיקריות למדידת פעימות לב אך עבור פרויקט זה החלטתי להשתמש בפוטופלטיסמוגרפיה (PPG) המשתמשת במקור אור אינפרא אדום או אדום שנפרץ דרך שכבות העור הראשונות. חיישן צילום משמש למדידת השינוי בעוצמת האור (כאשר דם זורם בכלי). אותות PPG רועשים להפליא ולכן השתמשתי במסנן פס פס כדי לסנן את התדרים הספציפיים הנדרשים. לב אנושי פועם בין תדר ל -1.6 הרץ. מגבר ה- op שהשתמשתי בו היה lm324 בעל קיזוז המתח הטוב ביותר מבין כל מגברי ה- op שהיו זמינים לי. אם אתה משחזר את הפרויקט הזה, מגבר דיוק אופציונלי יהיה בחירה טובה בהרבה.
נעשה שימוש ברווח של שניים בלבד מכיוון שסבולת המתח המרבית ב- ESP8266 היא 3.3v ולא רציתי לפגוע בלוח שלי!
עקוב אחר המעגל למעלה ונסה לגרום לו לעבוד על לוח לחם. אם אין לך אוסצילוסקופ בבית תוכל לחבר את הפלט לארדואינו ולשרטט אותו אך לוודא שהמתח אינו גבוה מהסובלנות של הארדואינו או של המיקרו -בקר.
המעגל נבדק על לוח לחם ושינוי בתפוקה נצפה כאשר הונחה אצבע לרוחב הלד והטרנזיסטור הצילומי. לאחר מכן החלטתי להלחים את הלוח יחד שלא הוצג בסרטון.
שלב 2: קוד עיבוד האותות ותקשורת שרת
החלטתי להשתמש ב- Arduino IDE ב- ESP8266 מכיוון שהוא כל כך קל לשימוש. כאשר האות נקלט הוא עדיין היה רועש מאוד ולכן החלטתי לנקות אותו בעזרת פילטר ממוצע נע FIR עם מספר מדגם של עשר. שיניתי תוכנית Arduino לדוגמא בשם "החלקה" לשם כך. ניסיתי מעט על מנת למצוא דרך למדוד את תדירות האות. הפולסים היו באורך ובמשרעת משתנים, מכיוון שללב היו ארבעה סוגים שונים של פולסים ומאפייני אותות PPG. בחרתי בערך אמצעי ידוע שתמיד האות חצה כנקודת התייחסות לכל דופק. השתמשתי במאגר טבעת כדי לקבוע מתי שיפוע האות חיובי או שלילי. השילוב של שני אלה אפשר לי לחשב את התקופה בין הפולסים כשהאות היה חיובי ושווה לערך ספציפי.
התוכנה הניבה BPM לא מדויק למדי שלא ניתן היה להשתמש בו בפועל. עם איטרציות נוספות ניתן היה לתכנן תוכנית טובה יותר אך בשל מגבלות זמן זו לא הייתה אופציה. הקוד ניתן למצוא בקישור למטה.
תוכנת ESP8266
שלב 3: תקשורת השרת והנתונים
החלטתי להשתמש ב- Firebase לאחסון הנתונים מכיוון שזהו שירות חינמי וקל מאוד לשימוש עם אפליקציות לנייד. אין ממשק API רשמי ל- Firebase עם ESP8266 אבל מצאתי שהספרייה של Arduino עובדת טוב מאוד.
יש תוכנית לדוגמה שניתן למצוא בספריית ESP8266WiFi.h המאפשרת לך להתחבר לנתב עם ה- SSID והסיסמה. זה שימש לחיבור הלוח לאינטרנט כך שניתן יהיה לשלוח נתונים.
למרות שאחסון הנתונים בוצע בקלות עדיין ישנן מספר בעיות בשליחת הודעות הדחיפה באמצעות בקשת HTTP POST. מצאתי הערה ב- Github שהשתמשה בשיטה מדור קודם לעשות זאת באמצעות הודעות ענן של Google וספריית HTTP עבור ESP8266. ניתן לראות שיטה זו בקוד ב- Github שלי.
ב- Firebase יצרתי פרוייקט והשתמשתי במפתחות ה- API ומפתחות הרישום בתוכנה. הודעות הענן של בסיס האש שימשו עם האפליקציה על מנת לשלוח הודעות דחיפה למשתמש. כאשר נבדקו התקשורת ניתן היה לראות נתונים במאגר הנתונים בזמן ש- ESP8266 פועל.
שלב 4: אפליקציית האנדרואיד
אפליקציית אנדרואיד בסיסית מאוד תוכננה עם שתי פעילויות. הפעילות הראשונה כניסה את המשתמש או רשמה אותו באמצעות ה- Firebase API. חקרתי את גליון הנתונים ומצאתי הדרכות שונות כיצד להשתמש ב- Firebase עם אפליקציה לנייד. הפעילות העיקרית שהציגה למשתמש הנתונים של המשתמש מאזין לאירועים בזמן אמת כך שלא היה עיכוב ניכר בשינויים ב- BPM של המשתמש. הודעות הדחיפה נעשו באמצעות הודעות ענן של Firebase שהוזכרו קודם לכן. יש הרבה מידע שימושי על גליון הנתונים של Firebase כיצד ליישם זאת וניתן לבדוק שהאפליקציה היא שליחת התראות מלוח המחוונים באתר Firebase.
כל הקוד לפעילויות והשיטות להעברת הודעות בענן ניתן למצוא במאגר Github שלי.
שלב 5: מסקנה
היו כמה בעיות מרכזיות במדידת BPM של המשתמש. הערכים היו מגוונים מאוד ולא היו שימושיים לקביעת בריאות המשתמש. זה הסתכם בקוד עיבוד האותות שיושם ב- ESP8266. לאחר מחקר נוסף גיליתי שללב יש ארבעה פולסים שונים עם תקופה משתנה ולכן לא היה פלא שהתוכנה לא הייתה מדויקת. דרך להילחם בכך תהיה לקחת ממוצע מארבעת הפולסים במערך ולחשב את תקופת הלב על פני ארבעת הפולסים.
שאר המערכת הייתה פונקציונלית אך זהו מכשיר ניסיוני מאוד שרציתי לבנות כדי לראות אם האובייקט אפשרי. הקוד הישן ששימש לשליחת הודעות דחיפה בקרוב לא יהיה שמיש, כך שאם אתה קורא את זה בסוף 2018 או מאוחר, דרושה שיטה אחרת. בעיה זו מתרחשת רק עם ה- ESP אם כי אם אתה רוצה ליישם זאת על Arduino מסוגל WiFi זה לא יהיה בעיה.
אם יש לך שאלות או בעיות אנא אל תהסס לשלוח לי הודעה ב- Instructables.
מוּמלָץ:
חיישן דופק באמצעות Arduino (מד דופק): 3 שלבים
חיישן דופק באמצעות Arduino (מד דופק): חיישן פעימות לב הוא מכשיר אלקטרוני המשמש למדידת קצב הלב כלומר מהירות פעימות הלב. ניטור טמפרטורת הגוף, קצב הלב ולחץ הדם הם הדברים הבסיסיים שאנו עושים על מנת לשמור על בריאותנו
שליטה בלד באמצעות מודול WiFi NodeMCU ואפליקציית Blynk: 7 שלבים
שליטה במנורת LED באמצעות מודול WiFi NodeMCU ואפליקציית Blynk: מדריך זה יראה לך כיצד לשלוט בנורית באמצעות מודול WiFi NodeMCU ESP8266 באמצעות אפליקציית הסמארטפון Blynk. אם אתה מתחיל, המשך לקרוא. אם אתה בעל ניסיון רב יותר, ייתכן שיהיה עליך לדלג עד הסוף, שם אני מדבר על
Arduino 4 גלגל כונן מכונית RC באמצעות UNO R3, HC-05 ו- L293D Motorshield עם קידוד ואפליקציית אנדרואיד: 8 שלבים
Arduino 4 גלגל כונן Bluetooth RC מכונית באמצעות UNO R3, HC-05 ו- L293D Motorshield עם קידוד ואפליקציית אנדרואיד: היום אני הולך לספר לך כיצד להכין מכונית RC RC עם bluetooth RC באמצעות מגן מנוע HC 05, L293, מנוע 4 DC, עם קידוד ואפליקציה לאנדרואיד לשליטה במכונית.רכיב בשימוש: -1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293
8 בקרת ממסר עם NodeMCU ומקלט IR באמצעות WiFi ו- IR מרחוק ואפליקציית אנדרואיד: 5 שלבים (עם תמונות)
8 בקרת ממסר עם NodeMCU ומקלט IR באמצעות WiFi ו- IR מרחוק ואפליקציית אנדרואיד: שליטה על 8 בוררי ממסר באמצעות מקלט nodemcu ו- ir באמצעות wifi ו- ir מרחוק ואפליקציית אנדרואיד. השלט הרחוק פועל ללא קשר לחיבור wifi. להלן לחיצה על גרסה מעודכנת פה
שלוט ב- Arduino Uno באמצעות מודול WiFi ESP8266 ואפליקציית Blynk: 6 שלבים
שליטה ב- Arduino Uno באמצעות מודול WiFi ESP8266 ואפליקציית Blynk: פרויקט זה מאפשר לך לשלוט בסיכות ה- Arduino באמצעות מודול WiFi ESP8266-01 ואפליקציית Blynk. אפליקציית Blynk קלה מאוד לשימוש והיא דרך מצוינת להתחיל ללמוד על IoT. מדריך זה מיועד למחשב Windows PC