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

חיישן דלת המופעל באמצעות סוללות עם שילוב אוטומציה ביתית, WiFi ו- ESP-NOW: 5 שלבים (עם תמונות)
חיישן דלת המופעל באמצעות סוללות עם שילוב אוטומציה ביתית, WiFi ו- ESP-NOW: 5 שלבים (עם תמונות)

וִידֵאוֹ: חיישן דלת המופעל באמצעות סוללות עם שילוב אוטומציה ביתית, WiFi ו- ESP-NOW: 5 שלבים (עם תמונות)

וִידֵאוֹ: חיישן דלת המופעל באמצעות סוללות עם שילוב אוטומציה ביתית, WiFi ו- ESP-NOW: 5 שלבים (עם תמונות)
וִידֵאוֹ: Blitzwolf BW-IS8 - חיישן טמפרטורה ולחות Zigbee, התחבר ל-zigbee2mqtt ו-SLS 2024, יולי
Anonim
Image
Image

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

המטרות שלי:

  • חיישן שמזהה ומדווח על פתיחת דלת במהירות (<5 שניות)
  • חיישן המזהה סגירת הדלת
  • חיישן המופעל באמצעות סוללה ופועל מספר חודשים על סוללה

החומרה והתוכנה בהשראת

  • לוח הטריג של קווין דארה (TPL5111 ו- TPS73733).
  • הוידאו הזה

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

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

אספקה

קניתי את הרכיבים האלקטרוניים מ- Aliexpress, החלקים העיקריים:

  • סוללת LiPo
  • TPS73733 LDO
  • TPL5111
  • מתג קנים
  • ערוץ P mosfet: IRLML6401TRPBF
  • מַגנֵט
  • לוח מתאם PCB לרכיבי SMD ועוד.

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

חומרה - מעגל
חומרה - מעגל
חומרה - מעגל
חומרה - מעגל
חומרה - מעגל
חומרה - מעגל

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

המעגל פועל כדלקמן:

  • כאשר הדלת נפתחת, ה- TPL5111 מקבל זריקה בסיכה DELAY/M_DRV ומאפשר את ה- TPS73733 LDO שמניע את ה- ESP-01. עבור פעולה זו, יש למשוך את EN/ONE_SHOT נמוך, עיין בגיליון הנתונים של TPL5111.
  • לאחר הפעלת התוכנית (ראה שלב תוכנה), ה- ESP-01 שולח אות בוצע ל- TPL5111 ולאחר מכן משבית את TPS73733 וכתוצאה מכך מצב צריכת חשמל נמוכה מאוד עבור TPL5111 ו- TPS73733.

אני משתמש במתגי קנים עם חיבורי NO ו- NC כאחד. חיברתי את מוליך ה- NC, שכן מתג הקנה חייב לסגור את המעגל בעת הסרת המגנט (הדלת פתוחה) ולפתוח כשהמגנט קרוב (הדלת סגורה).

עבור חיישן הדלת האחורית הוספתי כמה מעבים ונגדים כשגיליתי כמה חוסר יציבות, אולם חוסר היציבות נגרם על ידי התוכנה (esp_now_init) כפי שגיליתי מאוחר יותר.

שלב 2: חומרה - מארז

חומרה - מארז
חומרה - מארז
חומרה - מארז
חומרה - מארז
חומרה - מארז
חומרה - מארז

עיצבתי את המארז ב- Autodesk Fusion360, בהשראת הסרטון הזה של 'הבחור עם המבטא השוויצרי'.

קבצי STL משלושת החלקים:

  • קופסא
  • מִכסֶה
  • מחזיק מגנטים

מתפרסמים בדף ה- Thingiverse שלי.

שלב 3: תוכנה

תוֹכנָה
תוֹכנָה

התוכנית נמצאת ב- Github שלי.

זרימת התוכנית מוצגת בתמונה. עיין במדריך השני שלי להסבר כיצד אני משתמש ב- ESP-NOW.

כאשר המודול מופעל, הוא קודם כל מנסה לשלוח את ההודעה 'OPEN' באמצעות ESP-NOW. אם זה לא מצליח, זה עובר לחיבור WiFi ו- MQTT.

גיליתי שלפחות בהתקנה שלי, ההודעה 'סגור' לא נשלחה בהצלחה באמצעות ESP-NOW, אז הסרתי את זה מהתוכנית והשתמשתי רק ב- WiFi ו- MQTT.

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

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

שלב 4: אוטומציה ביתית ומברק

אוטומציה ביתית ומברק
אוטומציה ביתית ומברק
אוטומציה ביתית ומברק
אוטומציה ביתית ומברק
אוטומציה ביתית ומברק
אוטומציה ביתית ומברק

חיישני הדלתות שלי מתקשרים עם אוטומציה הביתית שלי ב- Openhab ב- Raspberry Pi Zero שלי.

יישומים עיקריים:

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

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

הפריטים, החוקים והקבצים של Openhab שלי נמצאים ב- Github שלי. בקבצים אלה אתה יכול גם לראות את חיישן הדלת שלי של הסככה, שמשתמש במתג קנים חוטי רגיל ובמתג מגע (קצה) קטן ממדפסת תלת מימד בפתח המנעול (ראו את התמונות).

אופן השימוש בפעולת הטלגרם ב- Openhab מתואר כאן.

שלב 5: שיפורים ושיפורים נוספים

שיפורים ושיפורים נוספים
שיפורים ושיפורים נוספים
שיפורים ושיפורים נוספים
שיפורים ושיפורים נוספים

בחודשים האחרונים עשיתי את השיפור הבא.

התמודדו עם פתחי דלתות ארוכים באמצעות אות דופק המתחלף בעצמו

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

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

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

עם זאת, כאשר הדופק 'DONE' של ה- ESP-01 כבה את ה- TPL5111 כאשר הדלת נסגרה, גיליתי שה- TPL5111 לא הופעל על ידי דופק 'DONE' בזמן שהסיכה DELAY/M_DRV הייתה גבוהה. אות HIGH זה בסיכת DELAY/M_DRV נגרם על ידי הדלת שנפתחה ומגע ה- NC של מתג הקנה המחובר למתח הסוללה.

אז, האות לסיכה DELAY/M_DRV לא אמורה להיות גבוהה ברציפות, אלא צריכה להיות פעמית. בגיליון הנתונים TPL5111 אתה יכול למצוא שהוא צריך להיות דופק של> 20 אלפיות השנייה. עשיתי את האות הזה של מיתוג עצמי באמצעות מוספט ערוץ P, קבל ונגד 10K ו 300K, עיין בתוכנית הכלולה.

זה עובד כדלקמן:

  • אם איש הקשר NC של מתג הקנה סגור, השער נמוך והמוספת מופעלת, וכתוצאה מכך אות גבוה על סיכת DELAY/M_DRV המפעילה את המודול.
  • הקבל נטען במהירות, וכתוצאה מכך מתח עולה בשער.
  • לאחר כ -20 אלפיות השנייה, המתח בשער הוא 97% ממתח הסוללה (300K/(300K+10K) שהוא גבוה והמוספת כבוי, וכתוצאה מכך אות נמוך על סיכת DELAY/M_DRV.
  • כאשר סיכה DELAY/M_DRV נמוכה, האות DONE של ה- ESP-01 גורם לכיבוי המודול.

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

חשוב להשתמש ב- Mosfet ערוץ P המתאים לטווח המתחים המשמש כאן. ה- Mosfet חייב להיות דולק לגמרי ב- VGS של בערך - 3.8V ולכבות לגמרי ב- VGS של בערך -0.2 V. ניסיתי כמה Mosfets וגיליתי ש- IRLML6401TRPBF עובד מצוין למטרה זו בשילוב עם נגדי 10K ו- 300K. קבל של 1 uF עובד מצוין בכדי לקבל אורך דופק של כ -20 אלפיות השנייה. קבל גדול יותר גורם לדופק ארוך יותר, שאינו נחוץ, מכיוון שה- TPL5111 הופעל. השתמשתי באוסילוסקופ DSO150 שלי כדי לבדוק את המתחים ואת אורך הדופק.

שיפור מתוכנן: עדכון OTA

אני מתכוון לשלב עדכון OTA באמצעות ההליך הבא, שכבר כלול בחלקו בתוכנה הנוכחית

  • באמצעות Openhab של NodeRed אני מפרסם הודעת 'עדכון' שנשמרה 'נושא עדכון'.
  • אם המודול מופעל ומחובר לשרת MQTT ומנוי ל'נושא העדכון ', הוא מקבל את הודעת העדכון.
  • הודעת העדכון תמנע את כיבוי המודול ותפעיל את
  • באמצעות אתר האינטרנט של HTTPUpdateServer תוכל לעדכן את התוכנה.
  • באמצעות Openhab של NodeRed אני מפרסם הודעה 'ריקה' שנשמרה כ'נושא עדכון '.

שיפור מתוכנן: כיבוי חומרה לאחר זמן מוגדר מראש

בתוכנית הנוכחית, אני משתמש בנגד 200K בין DELAY/M_DRV ו- GND של TPL5111. זה מפעיל את המודול במשך יותר משעתיים (ראה 7.5.3. של גליון הנתונים של TPL5111). עם זאת, אני לא רוצה שהמודול יופעל כל כך הרבה זמן, כי אז הסוללה מתרוקנת. אם פתרון התוכנה (ראה לעיל) נכשל בכיבוי המודול, או אם הודעת העדכון לא מכוונת מכניסה את המודול למצב עדכון, המודול נשאר מופעל במשך זמן רב.

לכן עדיף להשתמש בנגד קטן יותר בין DELAY/M_DRV ו- GND של TPL5111, כך שהמודול יכבה לאחר זמן קצר, למשל נגד 50K וכתוצאה מכך זמן של 7 דקות.

מוּמלָץ: