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

חיישן נוכחות: 12 שלבים
חיישן נוכחות: 12 שלבים
Anonim
חיישן נוכחות
חיישן נוכחות

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

אספקה

  1. ESP32
  2. (אופציונלי) תקע קיר TECKIN WiFi S10
  3. מכשיר מופעל BLE מכל סוג שהוא

שלב 1: הגדר את התרחיש שלך

הגדר את התרחיש שלך
הגדר את התרחיש שלך

עבור ההדק, אתה יכול להשתמש ברוב הלבישים המודרניים. זה יכול להיות Apple Watch, להקת mi fit, טלפון או אפילו לביש DIY שלך מבוסס על ESP32.

כנראה אחד השלבים החשובים ביותר. אתה צריך לחשוב קדימה בשלושה דברים:

1. איזה לביש או מכשיר הולך להיות הטריגר של חיישן הקרבה.

2. מה עומד להפעיל את החיישן (זה נעשה באמצעות IFTTT).

3. כאשר החיישן עומד להפעיל

בדוגמה זו, אשתמש ב- Apple Watch שלי כדי להפעיל תקע חכם להדלקת מנורה כשאני יושב ליד שולחני.

במדריך זה נבחן תקע חכם של TECKIN. אתה יכול למצוא אותו באמזון במחיר טוב. הוא תואם גם ל- Alexa ו- Google Home. ערך רב!

שלב 2: (מבוא) הגדר טריגר - משתמשים מרובים

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

שלב 3: (מבוא) הגדר טריגר - משתמשים מוגבלים

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

- כתובת MAC BLE (שווה ערך לכתובת ה- IP ברשת wifi. הסיבה לכך שהיא לא מבטיחה אבטחה מכיוון שהיא לא כתובת ה- MAC האמיתית של המודול. במכשירי iOS היא משתנה בכל פעם שאתה מפעיל מחדש את ה- Bluetooth, לא כל כך כיף)

- קוד יצרן (אפשרות טובה יותר, אך אין דרך להגביל מכשירים ספציפיים מאותו יצרן/דגם)

- שם, שירות UIDD (נדיר אך האפשרות הטובה ביותר, בעיקר לבישים DIY או אולי אפליקציית אנדרואיד)

כמה הערות:

1. אם מדובר במכשיר iOS:

- יש לך כמה יתרונות וחסרונות חשובים. מקצוענים, הם מעבירים את רמת ההספק שבה הם נתוני פרסום. זה מועיל בשלב הכיול, תגלו ששימוש ב- Apple Watch מועיל מכיוון שהוא משדר במהירות 24db, מכשירי iPhone ורוב המכשירים משדרים ב- 12db.

CON, תצטרך למצוא פתרונות לעקיפת הבעיה. כתובת ה- MAC המפורסמת (שיטת הזיהוי העיקרית) משתנה בכל פעם שהאות Bluetooth מופעל מחדש, כלומר תצטרך להעלות את הקוד בכל פעם … לא כיף. אתה יכול להשתמש בנתוני היצרן שעשויים להשתנות בין הדגמים. המשמעות היא שאתה יכול להגביל כך שהוא יחוש "כל האייפון 8".

2. אם מדובר במכשיר אנדרואיד:

- לי אישית אין מכשיר אנדרואיד. אבל כנראה שיש יישומים רבים שיכולים לתקן את כתובת ה- MAC או אפילו להוסיף שם מותאם אישית (אם זו הדרך שאתה רוצה ללכת). במכשירי iOS יש אפליקציה "nrf connect" שיכולה לעשות זאת. אבל הוא לא מתמשך, כלומר אם אתה נועל את המסך או מחליף אפליקציות.. התצורה תיכבה תוך כמה שניות.

3. עוד ESP32. (ההימור הטוב ביותר שלך)

- קוד פשוט כזה יכול להיות מיושם במכשיר כמו זה; להקה חכמה המופעלת על ידי esp32. הקוד הוא למעשה דוגמה מספריית ESP BLE BLE_IBeacon.ino. לא בדקתי את זה הרבה מכיוון שהלהקה החכמה שלי משלחת, כנראה אפרסם עדכונים בקרוב.

שלב 4: (התקנה) - IFTTT

(התקנה) - IFTTT
(התקנה) - IFTTT

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

IFTTT הוא עוצמתי; אם זה רק לשלוח הודעה פשוטה למכשיר שלך, אתה רוצה שיישלח ציוץ או תדליק נורה עם תקע חכם. במדריך זה ניישם את האחרון עם תקעים חכמים TECKIN התואמים IFTTT. כך או כך, הורד את אפליקציית IFTTT או היכנס לרשת IFTTT.com וצור חשבון.

זהו בינתיים!

אם אתה רק רוצה לשלוח הודעה או משהו אחר מאשר התקע Smart Life אתה יכול לדלג על השלב הבא.

שלב 5: (התקנה) התקן IOT *אופציונלי *

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

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

אפליקציית IFTTT אמורה להסתנכרן עם אפליקציית "החיים החכמים" בצורה חלקה, ככל הנראה תבקש אימות בעת יצירת אירוע בשלב הבא.

שלב 6: (התקנה) IFTTT Webhook Api *משתמשים מנוסים *

(התקנה) IFTTT Webhook Api *משתמשים מנוסים *
(התקנה) IFTTT Webhook Api *משתמשים מנוסים *

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

1. צור אירוע חדש.

2. הגדר "זה" כ- API של webhook. רשום את השם שהגדרת לאירוע.

3. הגדר את "זה" להתנהגות הרצויה לך. עבור התקע החכם חפש חיים חכמים ובחר 'הפעל'.

4. בחר את התקע החכם שלך ולחץ על סיום.

5. במסך הבית חפשו כרטיס 'webhooks'. לאחר שלחצת עליו, לחץ על "קבל יותר" בתחתית.

6. תיעוד עיתונות. זה יראה לך את מפתח ה- api שלך יחד עם בונה אתרים ובודק.

7. השתמש בבונה כתובת האתר עם השם שכתבת במספר 2. תעתיק את זה ותכתוב.

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

אם סיימת, דלג על השלב הבא.

שלב 7: (התקנה) IFTTT Webhook Api *למתחילים עם תמונות *

(התקנה) IFTTT Webhook Api *למתחילים עם תמונות *
(התקנה) IFTTT Webhook Api *למתחילים עם תמונות *
(התקנה) IFTTT Webhook Api *למתחילים עם תמונות *
(התקנה) IFTTT Webhook Api *למתחילים עם תמונות *
(התקנה) IFTTT Webhook Api *למתחילים עם תמונות *
(התקנה) IFTTT Webhook Api *למתחילים עם תמונות *

מדריך מפורט *מדריך הצילום צריך להיות דומה לאנדרואיד ובאינטרנט *

IFTTT היא זרימת עבודה פשוטה, אם "זה קורה" אז "זה קורה". עליך ליצור אחד חדש, 1. באפליקציה לחץ על "קבל יותר" ותראה רשימה.

2. ממש מתחת לשורת החיפוש a אומר "צור אפלטים משלך מאפס", לחץ על סימן הפלוס.

3. הקש על סימן החיבור "זה"

במקרה שלנו "זה" הולך להיות שיחת API דרך האינטרנט. שיחת API היא ייעוץ לכתובת אתר, בערך כמו כשאתה מקליד חיפוש בגוגל והכתובת היא google.com/(מחרוזת תווים ארוכה). ליצירת ה- api: (לאחר לחיצה על "זה")

4. חפש "webhooks"

5. בחר באפשרות היחידה

6. תן שם לאירוע שלך (בדוגמה זו נשתמש ב"שב "). כתוב את השם הזה, חשוב מאוד.

7. הקש על Create Trigger

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

8. הקש על סימן החיבור "זה"

9. חפש "חיים חכמים" (או "הודעות")

10. לחץ על 'הפעל' (יהיה עליך לחזור על שלבים אלה כדי ליצור אירוע נוסף שיש לכבותו כשעוזבים)

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

12. בחר צור פעולה ולאחר מכן סיים.

עכשיו אתה אמור לראות שהאירוע מחובר. כעת עלינו לקבל את כתובת ה- api. לזה:

13. עבור למסך הבית של IFTTT

14. מצא את כרטיס Webhooks

15. בחר "קבל עוד"

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

17. במקומות המיקום "{event}" מלא את שם האירוע שלך (זכור נקודה 6)

18. עבור לתחתית הדף והקש על "בדוק את זה"

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

19. סוף סוף. העתק את כתובת האתר שבה החלפת את שם האירוע שלך (בגיל 17) ושמור אותו במקום בטוח. תזדקק לזה בקרוב.

20. חזור על 1-12. בשעה 6 נשתמש הפעם ב- "Stand". בשעה 10 בחר במקום זאת 'כבה'.

21. חזור על 13-18 אם אתה רוצה, אבל אתה יכול להתחמק מהכתובת שהעתקת בשעה 19, אך כעת שנה את המקום בו כתבת "שב" והחלף ב"עמד ". תוכל לבדוק זאת בדפדפן אינטרנט. זה צריך להגיד 'מזל טוב! שיגרת את אירוע הסטנד '. ואז היה צריך לכבות את התקע.

שלב 8: (קוד) תכנות ה- ESP32

(קוד) תכנות ה- ESP32
(קוד) תכנות ה- ESP32

אתה יכול לדלג על שלב זה אם אתה מרגיש בנוח להעלות סקיצות מה- Arduino IDE ללוח ה- ESP32 שלך. זכור רק להגדיר מחיצה של 2 מגה -בתים לאפליקציה לפחות מכיוון שמשקלל הסקיצה הוא מעט יותר מ -1.2 מגה -גה הרגיל.

יש הרבה הדרכות נהדרות, להלן כמה מהן שאני ממליץ עליהן:

circuitdigest.com/microcontroller-projects…

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

- ESP32 אינו לוח Arduino ובכל זאת ניתן לתכנת אותו על ידי IDE Arduino. עם קוד Arduino פשוט. עם זאת, עדיין יהיה עליך להגדיר את ה- IDE כך שיעבוד עם ESP32.

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

-(אופציונלי, עשוי לעזור) בכלי-> נהל ספריות … -> (מצא ספריית esp BLE)

- ב- Tools, כעת אמורה להיות לך רשימה ארוכה של התקני ESP, אני ממליץ על מודול dev ESP32

- (חשוב) בחר (ללא יישום Ota 2mb/2mb spifs) במנהל המחיצות. שלב זה חשוב מכיוון שהאפליקציה הופכת לכבדה למדי כתוצר של שימוש בחיבורי wifi/http כמו גם סורק BLE.

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

שלב 9: (קוד) העלה את הקוד ל- ESP32

(קוד) העלה את הקוד ל- ESP32
(קוד) העלה את הקוד ל- ESP32

אוקי, אם אתה כאן, זה אומר שהעלית סקיצה בהצלחה ללוח ESP32, רצוי מערכון blink.ino.

עכשיו, הנה הקוד הראשי מצורף, אתה יכול למצוא אותו גם במאגר GitHub. עליך להחליף את הדברים הבאים:

SSID - שם ה- wifi שלך

PSK - סיסמת ה- wifi שלך

sit - כתובת ה- URL עם "Sit" מתוך ה- API של IFTTT שכתבת קודם

stand - כתובת ה- URL עם "Stand" מתוך ה- API של IFTTT שכתבת קודם

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

אם אתה מתכוון להשתמש בזה עם כל סוג של מכשיר מופעל BLE דלג על השלב הבא.

הערה: אם אתה מקבל הודעות שגיאה בזיכרון זה בגלל שהגדרות ברירת המחדל משאירות רק 1MB של זיכרון (מתוך 4mB הנוכחי) עבור קוד הגלם של ESP. זה משאיר מנה לכמה דברים כאפשרות לתכנות באוויר. בדרך כלל אני עושה את הדברים הבאים:

- ב- Tools, כעת אמורה להיות לך רשימה ארוכה של התקני ESP, אני ממליץ על מודול ESP32 dev-Select 'no Ota 2mb app/2mb spifs' at manager partition.

זה נותן לי שטח זיכרון כפול, הדרוש ליישום זה.

שלב 10: (קוד) העלה את הקוד ל- ESP32 *אופציונלי *

(קוד) העלה את הקוד ל- ESP32 *אופציונלי *
(קוד) העלה את הקוד ל- ESP32 *אופציונלי *

להלן החלק המסובך המוזכר בשלב "הגדר את ההדק". המסך יפיק את כתובת ה- MAC (אמור להיראות כמו ##: ##: ##: ##: ## כאשר#הוא מספר או אות מ- עד f), קוד היצרן ו- RSSI (מספר שלילי). כאן אתה צריך לשחק קצת כדי למצוא מהו המכשיר שלך. בדרך כלל אני שם אותו ליד הלוח כדי שאוכל לראות בבירור מהו המספר הקטן ביותר. אני מסיר את הסימון בתיבה 'גלילה אוטומטית' כדי שאוכל להעתיק את הערכים.

  • אם זו כתובת ה- Mac, מלא את 'myDevice' בה. לאחר מכן בטל את השורה מס '96 ושורת ההערה מס' 95
  • אם זה השם, מלא אותו 'myDevice'. לאחר מכן בטל את השורה מס '97 ושורת ההערה מס' 95
  • אם זהו MaufactureData שאין לך מזל כרגע, אני עדיין מפתח את החלק הזה.

להוספת תמיכה במכשירי May אתה אמור להיות מסוגל להעתיק את ההצהרה הקונדיטנטית במספר 96 או מס '97 ולהציב אותן זו ליד זו בתחביר זה:

אם ((תנאי 1) || (תנאי 2) || (תנאי 3)) {

הוסף משתנים נוספים (myDevice1, myDevice2, myDevice3) בהתאם.

שלב 11: מקם את ה- ESP וכייל

מקם את ה- ESP וכייל
מקם את ה- ESP וכייל

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

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

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

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

2. פתח את צג סידורי כשהקוד פועל.

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

3. כאשר אתה קובע את הספים החלף אותם כאן:

  • near_thrsh
  • far_thrsh

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

כמה דברים שכדאי לקחת בחשבון:

1. אתה רוצה בערך 20db הפרש בין הספים. אם near_thrsh מוגדר ל- 50 אז רצוי far_thrsh הוא 70 או יותר. אם ההפרש קצר מדי, ייתכן שתמצא כמה מרחקים או מקומות שבהם הלוח מופעל וכיבוי ללא הפסקה. הגדלת הבדל זה תבטיח לך להימנע מהתנהגות לא רצויה זו. גיליתי באופן אישי ש- 20db של שוליים זה מספיק טוב.

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

3. למד את הכיתה בשורה 82 של הקוד; כאן נעשה כל ההיגיון. למרות שהקוד מגיב היטב. אל תהסס לשאול ב- GitHub!

שלב 12: מזל טוב! אתה גמור

הודע לי בתגובות ההצעות או אם אתה נתקל בבעיות. זכור לבדוק את GitHub אם הבעיה שלך כבר נפתרה!

מוּמלָץ: