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

אזעקה PIR ל- WiFi (ואוטומציה ביתית): 7 שלבים (עם תמונות)
אזעקה PIR ל- WiFi (ואוטומציה ביתית): 7 שלבים (עם תמונות)

וִידֵאוֹ: אזעקה PIR ל- WiFi (ואוטומציה ביתית): 7 שלבים (עם תמונות)

וִידֵאוֹ: אזעקה PIR ל- WiFi (ואוטומציה ביתית): 7 שלבים (עם תמונות)
וִידֵאוֹ: Обзор и конфигурация модуля EBYTE LoRa 2024, נוֹבֶמבֶּר
Anonim
Image
Image
אזעקה PIR ל- WiFi (ואוטומציה ביתית)
אזעקה PIR ל- WiFi (ואוטומציה ביתית)

סקירה כללית

מדריך זה ייתן לך את היכולת לצפות בתאריך/שעה אחרונים (ואופציה היסטוריה של פעמים) של מתי הופעלו ה- PIRs (חיישני אינפרא אדום פאסיביים) של הבית שלך, בתוכנת האוטומציה הביתית שלך. בפרויקט זה אדון כיצד להשתמש עם OpenHAB (תוכנת אוטומציה ביתית חינמית, בה אני משתמש באופן אישי) למרות שהיא תעבוד עם כל תוכנה או יישום אוטומציה ביתי אחר התומך ב- MQTT (המתואר גם בהמשך מאמר זה). מדריך זה יוביל אותך בשלבים הדרושים כיצד לחבר לוח מעגלים ו- Wemos D1 mini (לוח IOT שמשתמש בשבב ESP8266) הנכנס לאזורי האזעקה בתיבת בקרת האזעקה שלך כך שכאשר אזור (המכיל אחד או יותר PIRs) מופעל, ה- Wemos שולח הודעה באופן אלחוטי באמצעות פרוטוקול MQTT לתוכנת האוטומציה הביתית שלך, אשר מציגה את התאריך/השעה האחרונים של ההדק. קוד Arduino לתכנת ה- Wemos מסופק גם כן.

מבוא

התמונה למעלה היא מה שאני רואה דרך אחד המסכים באפליקציית OpenHAB באייפון שלי. טקסט התאריך/שעה מקודד בצבע כדי לספק ייצוג מהיר יותר של מתי הופעל ה- PIR - הוא יראה אדום (מופעל בתוך הדקה האחרונה), כתום (מופעל בתוך 5 הדקות האחרונות), ירוק (מופעל בתוך 30 הדקות האחרונות), כחול (מופעל בתוך השעה האחרונה) או אחרת, שחור. לחיצה על התאריך/השעה תציג תצוגה היסטורית של גורמי PIR, כאשר אמצעי 1 מופעל ו -0 אינו פעיל. ישנם שימושים רבים לכך, למשל זה יכול להשלים את פתרון הנוכחות הביתית שלך, הוא יכול לזהות תנועה אם אתה לא נמצא, ובאמצעות כללי OpenHAB, לשלוח הודעות לטלפון שלך, תוכל להשתמש בו כמוני כדי לראות אם הילדים שלי נמצאים לקום באמצע הלילה, מופעל על ידי PIR השוכן מחוץ לחדרי השינה שלהם!

OpenHAB היא פשוט תוכנת האוטומציה הביתית בה אני משתמשת, ישנן רבות אחרות - ואם הן תומכות ב- MQTT אז תוכל להתאים את הפרויקט הזה בקלות לתוכנה שבה אתה משתמש.

הנחות

הוראה זו מניחה שכבר יש לך (או תתקין):

  • ברור שמערכת אזעקה ביתית עם PIR (חיישני אינפרא אדום פסיבי) ושיש לך גישה לתיבת בקרת האזעקה לחיבור החיווט הדרוש.
  • OpenHAB (תוכנת אוטומציה ביתית קוד פתוח בחינם) פועלת, אם כי כפי שנדון היא אמורה לעבוד עם כל תוכנת אוטומציה ביתית שיכולה לכלול כריכת MQTT. לחלופין, אתה יכול לשנות את הקוד בעצמך כך שיתאים לצרכים שלך.
  • מתווך MQTT (או דומה) של Mosquitto מותקן ומחייב המוגדר עם OpenHAB (MQTT הוא פרוטוקול סוג הרשמה/פרסום שהוא קל משקל ונהדר לתקשורת בין מכשירים)

אם אינך מפעיל OpenHAB ומתווך MQTT, עיין במאמר מצוין זה באתר MakeUseOf

מה אני צריך?

כדי ליצור את הבקר האלחוטי, יהיה עליך למקור את החלקים הבאים:

  • Wemos D1 mini V2 (כולל שבב אלחוטי ESP8266 מובנה)
  • משווה LM339 (זה יעשה את הבדיקה של PIR סרק מול מופעל)
  • מקור מתח 5V DC ל- Wemos (OR, ממיר DC-DC buck. הערה: ווסת מתח LM7805 עשוי שלא לפעול עבור יישום זה כפי שיפורט בהמשך בפרויקט זה)
  • שני נגדים למפריד מתח (הגודל יהיה תלוי במתח האזעקה שלך, יידונו בהמשך הפרויקט)
  • נגד אחד של 1K אוהם כדי לשמש כנגד למטה לשליטה על כוח LM339
  • MOSFET 2N7000 אחד (או דומה) להפעלה לוגית של LM339 (אולי אופציונלי, נדון בהמשך הפרויקט)
  • לוח לחם בגודל מתאים להתקנת ובדיקות מעגלים
  • חבורה של חוטי קרש לחיבור הכל ביחד
  • כלים נחוצים: חותכי צד, חוט ליבה אחת
  • רב מטר DC (חובה!)

שלב 1: תיבת הבקרה של מערכת האזעקה

תיבת הבקרה של מערכת האזעקה
תיבת הבקרה של מערכת האזעקה

ראשית כמה אזהרות והסתייגות

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

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

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

2. בעת הפעלת מערכת האזעקה מחדש, לאחר כ ~ 12 שעות לוח הבקרה של האזעקה החל לצפצף עם קודי תקלות. לאחר שקבעתי את קודי התקלה באמצעות המדריך, גיליתי שהוא מזהיר אותי כי:

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

3. באזעקה שלי, ישנם 4 גושי חיבור אזורי x (שכותרתם Z1 -Z4) עבור ה- PIR לחבר ללוח האזעקה הראשי, עם זאת - מערכת האזעקה שלי מסוגלת למעשה ל 8 אזורים. כל בלוק חיבור אזור יכול למעשה להריץ 2 x אזורים כל אחד (Z1 עושה Z1 ו- Z5, Z2 עושה Z2 ו- Z6 וכן הלאה). למערכת האזעקה יש הגנת חבלה מובנית כדי לעצור מישהו לומר, לפתוח את המכסה למערכת האזעקה כאמור לעיל, או לחתוך את החוטים ל- PIR. הוא מבחין בין כל חבל אזור באמצעות נגדי EOL (סוף השורה). אלה נגדים בגודל מיוחד השוכנים ב"קצה הקו " - במילים אחרות, בתוך מתג החבלה של PIR (או מתג הבקרה, או תיבת סירנה או כל מה שמחובר לאזור זה) כאמור נגדים אלה משמשים כ"חבלה". הגנה ' - מבחינה טכנית, אם מישהו חותך את הכבלים ל- PIR - מכיוון שמערכת האזעקה מצפה לראות התנגדות מסוימת מאותו PIR, אזי אם ההתנגדות תשתנה, היא מניחה שמישהו התעסק עם המערכת ויפעיל את האזעקה.

לדוגמה:

באזעקה שלי, אזור "Z4" כולל 2 חוטים, אחד יוצא ל- PIR במסדרון שלי ואחד יוצא למתג החבלה של תיבת הבקרה. בתוך המסדרון PIR, יש לו נגד של 3300 אוהם. החוט השני המופעל אל מתג החבלה של תיבת הבקרה, כולל נגד של 6800 אוהם המחובר בסדרה. כך מבחינה מערכת האזעקה (באופן הגיוני) בין חבטות "Z4" ו- "Z8". באופן דומה, אזור "Z3" כולל PIR (עם נגד של 3300 אוהם) וגם מתג חבלה לסירנה (עם נגדו של 6800 אוהם) המרכיב "Z7". מתקין האזעקות היה מגדיר מראש את מערכת האזעקה כך שידע איזה מכשיר מחובר לכל אזור (ושינה את גודל הנגד EOL כך שיתאים, מכיוון שמערכת האזעקה מתוכנתת לדעת מה גודל הנגדים השונים של EOL. תחת בשום מקרה אין לשנות את ערך הנגדים האלה!)

אז בהתבסס על האמור לעיל, מכיוון שלכל אזור עשויים להיות מחוברים מספר מכשירים גם כן (עם ערכי התנגדות שונים), וזוכרים את הנוסחה V = IR (מתח = אמפר x התנגדות) אז זה עשוי גם אומר שלכל אזור יכולים להיות מתח שונה. מה שמוביל אותנו לשלב הבא, מדידת כל אזורי איסור מול מתח מופעל …

שלב 2: מדידת מתח אזעקה

מדידת מתח אזעקה
מדידת מתח אזעקה
מדידת מתח אזור אזעקה
מדידת מתח אזור אזעקה

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

אזהרה: סביר להניח שרוב מערכת האזעקה שלך פועלת על 12V DC, אולם תהיה לה הזנת הכוח הראשונית שלה בהספק של 220V (או 110V) AC, עם שנאי הממיר כוח מ- AC ל- DC. קרא את המדריך והקפד על אמצעי זהירות נוספים וודא שאתה לא מודד מסופי AC !!! על פי צילום המסך של מערכת האזעקה שלי בדף זה, אתה יכול לראות כי החלק התחתון של התמונה הוא מתח AC, שהפך ל- 12V DC. אנו מודדים את 12V DC בתיבות האדומות המודגשות. לעולם אל תיגע בחשמל. היזהר במיוחד!

מדידת מתח PIR

יש לי 4 x PIR המחוברים ל- Z1 עד Z4. מדוד כל אחד מהאזורים שלך כדלקמן.

  1. ראשית, זהה את מסוף ה- GND ואת מסופי האזורים בלוח האזעקה. הדגשתי את אלה בתמונה המוצגת במדריך האזעקה של בוש שלי.
  2. תפוס את המולטימטר שלך והגדר את מדידת המתח שלך ל- 20V DC. חבר את כבל השחור (COM) ממולטימטר שלך למסוף ה- GND שעל האזעקה. הנח את הכבל האדום (+) ממולטימטר שלך באזור הראשון - במקרה שלי שכותרתו "Z1". רשום את קריאת המתח. בצע את אותם השלבים עבור האזורים הנותרים. מדידות המתח שלי הן כדלקמן:
  • Z1 = 6.65V
  • Z2 = 6.65V
  • Z3 = 7.92V
  • Z4 = 7.92V

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

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

  • Z1 = 0V
  • Z2 = 0V
  • Z3 = 4.30V
  • Z4 = 4.30V

לפי האמור לעיל, אני יכול לראות שכאשר אזורים 1 ו -2 מופעלים, המתח יורד מ -6.65V ל -0V. אולם כאשר אזורים 3 ו -4 מופעלים, המתח יורד מ -7.92V ל -4.30V.

מדידת ספק כוח 12V

אנו נשתמש במסוף 12V DC מתיבת בקרת האזעקה כדי להפעיל את הפרויקט שלנו. עלינו למדוד את המתח מהזנת 12V DC על האזעקה. למרות שהוא כבר מציין 12V, עלינו לדעת קריאה מדויקת יותר. במקרה שלי, הוא למעשה קורא 13.15V. כתוב זאת, תזדקק לערך זה בשלב הבא.

מדוע אנו מודדים מתח?

הסיבה שאנחנו צריכים למדוד מתח עבור כל PIR היא בגלל המעגל שנוצר. אנו נשתמש בשבב השוואת דיפרנציאל LM339 מרובע (או משווה מגבר אופ-אמפר) כמרכיב החשמלי המרכזי בפרויקט זה. ל- LM339 יש 4 משווחי מתח עצמאיים (4 ערוצים) כאשר כל ערוץ לוקח 2 מתח כניסה x (אחד הפוך (-) ואחד שאינו היפוך (+), ראה תרשים) אם המתח של מתח הכניסה ההפוך אמור לרדת נמוך מ- המתח הבלתי הפיך, אז הפלט הקשור שלו ימשך לקרקע. באופן דומה, אם מתח הכניסה שאינו הפוך יורד נמוך יותר מהכניסה ההפוכה, אז הפלט נמשך עד Vcc. באופן נוח, בבית שלי יש לי 4 x אזעקות PIR/אזורים - לכן כל אזור יחוייב לכל ערוץ במשווה. אם יש לך יותר מ -4 x PIRs, תזדקק למשווה עם יותר ערוצים, או LM339 אחר!

הערה: ה- LM339 צורכת חשמל בננו-אמפר, כך שהיא לא תשפיע על עמידות ה- EOL של מערכת האזעקה הקיימת.

אם זה מבלבל, המשך לשלב הבא בכל מקרה זה יתחיל להיות הגיוני יותר ברגע שנחבר אותו!

שלב 3: יצירת מחלק מתח

Image
Image

מהו מחלק מתח?

מחלק מתח הוא מעגל בעל 2 נגדים (או יותר) בסדרה. אנו מספקים מתח ב (Vin) לנגד הראשון (R1) הרגל השנייה של R1 מתחברת לרגל הראשונה של הנגד השני (R2), והקצה השני של R2 מתחבר ל- GND. לאחר מכן אנו לוקחים מתח יציאה (Vout) מהחיבור בין R1 ל- R2. מתח זה יהפוך למתח ההתייחסות שלנו ל- LM339. למידע נוסף על אופן הפעולה של מחלקי מתח, עיין בסרטון YouTube של Adohms

(הערה: לנגדים אין קוטביות, כך שניתן לחווט אותם בכל כיוון)

חישוב מתח ההתייחסות שלנו

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

לוקח את האזעקה שלי כדוגמה …

מתחי הסרק באזור היו Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V. מתח הסרק הנמוך ביותר הוא אפוא 6.65V

המתחים המופעלים באזור היו: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. המתח המופעל הגבוה ביותר הוא אפוא 4.30V

אז אנחנו צריכים לבחור מספר באמצע הדרך בין 4.30V ל- 6.65V (לא חייב להיות מדויק, רק בערך) במקרה שלי, מתח הייחוס שלי צריך להיות סביב 5.46V. הערה: אם המתח הסרק הנמוך והגבוה ביותר קרוב מאוד זה לזה בגלל אזורים מרובים הגורמים לטווח של מתחים שונים, ייתכן שיהיה עליך ליצור 2 או יותר מפרידי מתח.

חישוב ערכי הנגד שלנו עבור מחלק המתח

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

חשב את Vout באמצעות חוק אוהם …

Vout = Vs x R2 / (R1 + R2)

… או השתמש במחשבון מחלק מתח מקוון:-)

יהיה עליך להתנסות בערכי הנגד עד שתשיג את הפלט הרצוי. במקרה שלי, זה הסתדר עם R1 = 6.8k אוהם ו- R2 = 4.7K אוהם, מחושב בצורה ארוכה כדלקמן:

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61, 805 /11, 500

Vout = 5.37V

שלב 4: חיבור ה- LM339

חיבור Wemos D1 מיני
חיבור Wemos D1 מיני

מחלק מתח לכניסות הפוכות LM339

כפי שנדון קודם לכן בנוגע למשווה LM339, הוא ידרוש 2 כניסות. האחד יהיה מתח מכל PIR לכל מסוף שאינו הפוך (+) של הערוצים, השני יהיה מתח ההתייחסות שלנו למסוף ההפוך (-) שלנו. מתח ההתייחסות צריך להאכיל את כל 4 כניסות ההפוך של המשווה. כבה את מערכת האזעקה לפני ביצוע השלבים הבאים.

  • העבר חוט מגוש 12V DC במערכת האזעקה אל המסילה + בלוח הלחם שלך *
  • העבר חוט מגוש ה- GND במערכת האזעקה אל המסילה - בלוח הלחם שלך **
  • התקן את המשווה LM339 באמצע לוח הלחם (החריץ מציין הכי קרוב לסיכה 1)
  • התקן את הנגדים 2 x ליצירת מעגל מחלק מתח וחוט למתח מחולק החוצה
  • הפעל חוטים מ- Vout 'מתח מתח' לכל מסוף הפוך LM339

* טיפ: השתמש בקליפ תנין לעוצמה במידת האפשר, מכיוון שזה מקל על מתן הפעלה/כיבוי לפרויקט שלך ** חשוב! ייתכן שיהיה צורך ב- MOSFET אם אתה מפעיל את ה- Wemos מלוח האזעקה! במקרה שלי, LM339, Wemos והאזעקה כולם מקבלים חשמל מאותו מקור (כלומר: מערכת האזעקה עצמה) זה מאפשר לי להפעיל את החשמל לכל דבר עם חיבור חשמל יחיד. עם זאת, כברירת מחדל, סיכות ה- GPIO ב- Wemos מוגדרות כסיכות "INPUT" - כלומר הן לוקחות את כל המתח שנזרק אליהן ומסתמכות על אותו מקור כדי לספק רמות מתח נכונות (רמות min/max) כך שה- Wemos ינצח ' לא להתרסק או להישרף. במקרה שלי מערכת האזעקה מפעילה את כוחה ומתחילה לבצע את רצף האתחול שלה מהר מאוד - כל כך מהר, עד שהיא עושה את זה לפני שה- Wemos יכולים לאתחל ולהכריז על סיכות ה- GPIO כ- "INPUT_PULLUP" (המתח מתח פנימי בתוך שְׁבָב). זה לא אומר שהבדלי המתח יגרמו ל- Wemos לקרוס כאשר המערכת כולה קיבלה חשמל. הדרך היחידה לעקוף אותו היא לכבות ולהדליק את ה- Wemos ידנית. כדי לפתור זאת, נוסף MOSFET ופועל כ"מתג לוגי "להפעלת ה- LM339. זה מאפשר ל- Wemos לאתחל, להגדיר את 4 פיני ה- GPIO המשווים שלו כ- "INPUT_PULLUP's", לעכב כמה שניות ואז (באמצעות סיכת GPIO נוספת D5 המוגדרת כ- OUTPUT) לשלוח אות "HIGH" באמצעות PINIO D5 ל- MOSFET, מה שמדליק באופן הגיוני את LM339. הייתי ממליץ להתחבר כמו למעלה, אבל אם אתה מוצא שהוומוס קורס כמוני, יהיה עליך לכלול את ה- MOSFET עם הנגד למטה של 1 קאוהם. למידע נוסף על אופן הפעולה, עיין בסוף מדריך זה.

אזורי אזעקה לכניסות LM339 שאינן מהפכות

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

  • חוט מ- Z1 עובר לקלט LM339 1+
  • Wire מ- Z2 עובר לקלט LM339 2+
  • Wire מ- Z3 עובר לקלט LM339 3+
  • Wire מ- Z4 עובר לקלט LM339 4+

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

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

שלב 5: חיבור Wemos D1 Mini

חיווט Wemos D1 מיני

כעת דאגנו לכל כניסות LM339, כעת עלינו לחבר את ה- Wemos D1 mini. כל סיכת פלט LM339 עוברת לסיכת Wemos GPIO (קלט/פלט למטרות כלליות) שאותה אנו מייעדים באמצעות קוד כסיכת זרימת קלט. ה- Wemos לוקח עד 5V מקסימום כמתח ה- Vcc (מקור הכניסה) שלו (למרות שמווסת את זה באופן פנימי עד 3.3V) נשתמש בווסת מתח LM7805 נפוץ מאוד (ערוך: ראה להלן) כדי להוריד את מסילת 12V בלוח הלוח עד 5V להפעלת ה- Wemos. גליון הנתונים של LM7805 מציין שאנחנו צריכים קבל מחובר לכל צד של הרגולטור כדי להחליק את הכוח, כפי שמוצג בתמונת לוח הלחם.הרגל הארוכה יותר של הקבל היא חיובית (+) לכן וודא כי היא מחוברת בצורה הנכונה.

ווסת המתח לוקח מתח פנימה (סיכה בצד שמאל), קרקע (סיכה אמצעית) ומתח החוצה (סיכת צד ימין) בדוק שוב את הנעוץ אם ווסת המתח שלך משתנה מה- LM7805.

(עריכה: גיליתי שהגברים שמגיעים מלוח האזעקה היו גבוהים מדי מכדי להתמודד עם LM7805. הדבר גרם לחום רב בגוף החום הקטן של ה- LM7805 וגרם לו להיכשל, ובתורו גרם לוומוס לעצור. החלפתי את LM7805 והקבלים בממיר DC-DC באק במקום זאת ומאז לא היו לי בעיות. קל מאוד לחבר אותם. פשוט חבר את מתח הכניסה מהאזעקה, התחבר תחילה למולטימטר והשתמש בבורג הפוטנציומטר. והתאם עד שמתח המוצא הוא ~ 5V)

סיכות קלט של GPIO

לפרויקט זה אנו משתמשים בסיכות הבאות:

  • אזור Z1 => סיכה D1
  • אזור Z2 => סיכה D2
  • אזור Z3 => סיכה D3
  • אזור Z4 => סיכה D5

העבר את הפלט מה- LM339, לסיכות ה- GPIO הקשורות בלוח ה- Wemos, בהתאם לתמונת לוח הלוח המוצגת בשלב זה. שוב, יש לי קוד מקודד של התשומות והתפוקות התואמות, כדי שיהיה קל יותר לראות מה מתייחס למה. כל סיכת GPIO בארדואינו מוגדרת כ- 'INPUT_PULLUP', כלומר הם ימשכו עד 3.3V בשימוש רגיל (IDLE) ו- LM339 ימשוך אותם לקרקע במידה וה- PIR יופעל. הקוד מזהה את השינוי HIGH to LOW ושולח הודעה באופן אלחוטי לתוכנת האוטומציה הביתית שלך. אם אתה נתקל בבעיות בעבודה זו, ייתכן שיש לך את הכניסות ההפוכות לעומת ההפוכות שלך בצורה הלא נכונה (אם המתח מ- PIR שלך יעלה כאשר הוא מופעל, כפי שקורה ברוב תחביבי ה- PIR, אז תרצה את החיבורים ההפך)

Arduino IDE

הסר את ה- Wemos מלוח הלחם, כעת עלינו להעלות אליו קוד (קישור חלופי כאן) לא אפרט על אופן הפעולה, מכיוון שיש הרבה מאמרים באינטרנט על העלאת קוד ל- Wemos או ESP8266 אחר לוחות סוג. חבר את כבל ה- USB שלך ללוח ה- Wemos ולמחשב האישי שלך והפעל את ה- Arduino IDE. הורד את הקוד ופתח אותו בפרויקט שלך. יהיה עליך לוודא שהלוח הנכון מותקן ונטען עבור הפרויקט שלך וכן יציאת COM הנכונה שנבחרה (כלים, יציאה). תצטרך גם להתקין את הספריות המתאימות (PubSubClient, ESP8266Wifi) כדי לקבל את לוח Wemos הכלול במערכון שלך, עיין במאמר זה.

יהיה עליך לשנות את שורות הקוד הבאות ולהחליף ב- SSID וסיסמה משלך לחיבור האלחוטי שלך. כמו כן, שנה את כתובת ה- IP כך שתצביע על מתווך MQTT משלך.

// וויי - פיי

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (172, 16, 223, 254)

לאחר השינוי, אמת את הקוד ולאחר מכן העלה ללוח Wemos באמצעות כבל USB.

הערות:

  • אם אתה משתמש ביציאות GPIO שונות, יהיה עליך להתאים את הקוד. אם אתה משתמש יותר או פחות אזורים ממה שיש לי, יהיה עליך גם להתאים את הקוד ואת TOTAL_ZONES = 4; קבוע שיתאים.
  • במהלך ההפעלה של מערכת האזעקה שלי, מערכת האזעקה תבצע בדיקת חשמל לכל 4 x PIRs שגרמו לכל GPIO המחובר לקרקע, וגרמו ל- Wemos לחשוב שהאזורים מופעלים. הקוד יתעלם משליחת הודעות MQTT אם הוא רואה את כל 4 האזורים x פעילים בו זמנית, מכיוון שהוא מניח שמערכת האזעקה מופעלת.

קישור הורדה חלופי לקוד כאן

שלב 6: בדיקה ותצורת OpenHAB

בדיקה ותצורת OpenHAB
בדיקה ותצורת OpenHAB

בדיקת MQTT

MQTT היא מערכת העברת הודעות "הירשם / פרסם". מכשיר אחד או יותר יכולים לדבר עם "מתווך MQTT" ו"הרשם "לנושא מסוים. כל הודעה נכנסת מכל מכשיר אחר ש"פורסמו "לאותו נושא, תידחק החוצה על ידי המתווך לכל המכשירים שנרשמו אליו. זהו פרוטוקול קל במיוחד ופשוט לשימוש ומושלם כמערכת הפעלה פשוטה כמו זו כאן. לבדיקה, תוכל לצפות בהודעות MQTT נכנסות מה- Wemos לברוקר ה- MQTT שלך על ידי הפעלת הפקודה הבאה בשרת Mosquitto שלך (Mosquitto היא אחת מני רבות תוכנות MQTT Broker הזמינות). פקודה זו מנויה להודעות keepalive נכנסות:

mosquitto_sub -v -t openhab/alarm/status

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

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

mosquitto_sub -v -t openhab/alarm/#

הודעות הסטטוס הרגילות צריכות להיכנס, וכך גם כתובת ה- IP של ה- Wemos עצמה. לכו מול PIR, וכדאי שתראו גם את פרטי האזור שמציינים שהוא פתוח, ואז כעבור שנייה או יותר שהוא סגור, בדומה להלן:

openhab/אזעקה/סטטוס 1

openhab/אזעקה/אזור 1 פתוח

openhab/אזעקה/אזור 1 סגור

ברגע שזה עובד, נוכל להגדיר את OpenHAB כך שזה יוצג יפה ב- GUI.

תצורה של OpenHAB

השינויים הבאים נדרשים ל- OpenHAB:

קובץ טרנספורמציה 'alarm.map': (אופציונלי, לבדיקה)

CLOSED = IdleOPEN = TriggeredNULL = לא ידוע- = לא ידוע

קובץ טרנספורמציה 'status.map':

0 = נכשל

1 = מקוון -= למטה! NULL = לא ידוע

קובץ 'פריטים':

String alarmMonitorState "Alarm Monitor [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} Alarm stringMonitorIPAddress "IP Monitor Monitor [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} אזור zone1_Chart_Period "תרשים אזור 1" צור קשר alarmZone1State "אזור 1 מצב [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: state: default "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Number zone2_Chart_Period" תרשים אזור 2 "צור קשר alarmZone2State" אזור 2 מצב [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} מחרוזת alarmZone2Trigger" אולם ראשון PIR [%1 $ ta %1 $ tr] "Number zone3_Chart_Period" תרשים אזור "3" צור קשר לאזור Zone3State "אזור 3 ציין [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" חדר שינה PIR [%1 $ ta%1 $ tr] "מספר zone4_Chart_Period "תרשים אזור" "צור קשר alarmZone4State" מצב אזור 4 [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openha b/alarm/zone4: state: ברירת מחדל "} alarm stringZone4Trigger" אולם ראשי PIR [%1 $ ta %1 $ tr]"

קובץ 'מפת אתר' (כולל גרף rrd4j):

פריט טקסט = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone1_Chart_Period label = מיפוי "תקופה" = [0 = "שעה", 1 = "יום", 2 = "שבוע"] כתובת URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Uninitized] כתובת URL של התמונה = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] כתובת URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} פריט טקסט = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone2_Chart_Period label = מיפוי "תקופה" = [0 = "שעה", 1 = "יום", 2 = "שבוע"] כתובת URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Uninitialized] כתובת האתר של התמונה = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] כתובת האתר = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} פריט טקסט = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {מסגרת {Switch item = zone3_Chart_Period label = "תקופות" מיפויים = [0 = "שעה", 1 = "יום", 2 = "שבוע"] כתובת URL של התמונה = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == לא -אינניליזציה] תמונה url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] כתובת URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} טקסט item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone4_Chart_Period label = " תקופה "mappings = [0 =" שעה ", 1 =" יום ", 2 =" שבוע "] כתובת URL =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Uninitialized] כתובת URL של התמונה = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] כתובת URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // אופציונלי אך שימושי לאבחון סטטוס ותוספת IP ss פריט טקסט = alarmMonitorState פריט טקסט = alarmMonitorIPAddress

קובץ 'כללים':

כלל "שינוי מצב אזעקה 1 של מצב אזעקה"

כאשר הפריט alarmZone1State השתנה ל- OPEN ולאחר מכן postUpdate (alarmZone1Trigger, new DateTimeType ()) alarmZone1State.state = סוף סגור

כלל "שינוי מצב אזעקה 2 מצב"

כאשר הפריט alarmZone2State השתנה ל- OPEN ולאחר מכן postUpdate (alarmZone2Trigger, new DateTimeType ()) alarmZone2State.state = סוף סגור

כלל "שינוי מצב אזעקה 3 של מצב אזעקה"

כאשר הפריט alarmZone3State השתנה ל- OPEN ולאחר מכן postUpdate (alarmZone3Trigger, new DateTimeType ()) alarmZone3State.state = CLOSED סוף

כלל "שינוי מצב אזעקה 4"

כאשר הפריט alarmZone4State השתנה ל- OPEN ולאחר מכן postUpdate (alarmZone4Trigger, חדש DateTimeType ()) alarmZone4State.state = סוף סגור

ייתכן שיהיה עליך לשנות מעט את תצורת OpenHAB לעיל כך שיתאים להתקנה שלך.

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

בהצלחה!

מוּמלָץ: