מערכת אזעקה עם ארדואינו

מערכת אזעקה עם ארדואינו

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

תכנון הפרוייקט

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

אם כל התנאים התקיימו והמערכת מסיקה שיש פורץ בבית היא שולחת הודעת SMS למספר טלפון שנקבע מראש ע"י טוויליו(twilio) שהוא גשר בין האינטרנט לסלולרי.

רכיבים

  1. ארדואינו אונו או לאונרדו או מגה
  2. מגן אינטרנט
  3. חיישן תנועה אחד או יותר HC-SR501
  4. כפתור לחיצה
  5. נורת לד
  6. חוטים ונגדים

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

כך אמור להיראות בערך השרטוט של המעגל:

blog-arduino_alarm

נעבור על האביזרים:

  • כפתור שדורך ומנטרל את האזעקה מחובר ל 5 וולט(אפשר גם 3.3) ולפין מספר 3 בתור קלט(INPUT). מושכים ממנו גם נגד 10K ל GND שמשמש בתור PULL-DOWN.
  • נורת חיווי כדי שנדע האם האזעקה דרוכה או מנוטרלת מחוברת לפין 5 בתור פלט(OUTPUT).
  • חיישן תנועה שמחובר ל 5 וולט, GND ולפין מספר 2 בתור קלט. אפשר להוסיף עוד חיישנים כדי לכסות עוד חדרים בבית. שימו לב: אין להשתמש בפינים  10,11,12,13

חיבורים

  • קודם כל נחבר את מגן האינטרנט ללוח הארדואינו.

blog-alarm-ethernet

  • נוציא שתי חוטים אחד מ 5 וולט ואחד מ GND כדי לתת כוח למטריצה.

blog-alarm-breadboard

  • נחבר את הכפתור ל 5 וולט במטריצה ואת צידו השני לפין מספר 3. נוסיף גם נגד 10K אוהם ל GND.

blog-alarm-button

  • נחבר את נורת הלד לפין מספר 5 ול GND דרך נגד 330 אוהם.

blog-alarm-led

  • נחבר את חיישן התנועה – VCC הולך ל 5 וולט,GND ל GND ,ו OUT לפין מספר 2. החיבורים הם נקבה לזכר.

blog-alarm-motion

כמה הערות לגבי חיישן התנועה הנקרא גם PIR(passive infra red)

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

עוד עובדה מעניינת לגבי החיישן היא שהוא אמור לקבל מתח של בין 5 ל 20 וולט, והוא מוציא 3.3 וולט במקרה של גילוי. הארדואינו יכול לספק מתח של 5 וולט כך שאין בעיה וכך גם הרספברי פיי, אבל ה esp8266 הישנים ואולי גם בקרים אחרים עובדים על 3.3 וולט. ישנה אפשרות לתת חיישן כח של 3.3 וולט ע"י חיבור ישיר. במקום חיבור לפין ה VCC אפשר להלחים חוט לחיבור H הנמצא בגב החיישן ומקבל 3.3 וולט.

blog-pir-motion-sensor-3

תכנות הארדואינו

הלוגיקה של מערכת האזעקה צריכה להיות משהו בסגנון הזה:

אם ישנה לחיצה על הכפתור – דריכה או נטרול של האזעקה והדלקת או כיבוי נורה.

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

אם לא נוטרלה האזעקה וסף התנועות עבר את 20 אז מבחינת האזעקה ישנו פורץ בבית והיא שולחת SMS או מפעילה זמזם. לאחר מכן ישנה השהייה של 30 שניות והיא מנטרלת את עצמה ומתחילה מחדש.

לאחר בדיקה מצאתי ש 20 הוא סף גבוה מדי והורדתי אותו ל 10!!!

זהו הקוד הראשוני:

blog-arduino_alarm_test

אם הכל עובד כמו שצריך אפשר עכשיו לשלוח SMS כשהאזעקה מגלה פורץ.

חשבון בטויליו לשליחת SMS

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

כשאתם בדף הבית של טוויליו בחרו ב free api key. מלאו את הפרטים ובחרו ססמה. אחרי זה תצטרכו לבחור מספר. רוב המספרים שלהם שמשויכים לישראל יכולים רק להתקשר ולקבל שיחות ולא מסרונים. כאשר מוצג לפניכם מספר טלפון בחרו באפשרות חיפוש מספרים אחרים וסמנו את האפשרות SMS. לאחר מכן בחרו מספר ובממשק המשתמש לחצו על show api credentials. שתי המספרים של account sid ו auth token ישמשו אתכם לשליחה.

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

קוד שליחת SMS

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

blog-arduino-sms-code

אנחנו שולחים בקשת POST לשרת שלנו עם שתי פרמטרים – מספר הטלפון האישי שלנו וגוף עם הודעה. את מספר הטלפון יש לרשום ללא 0 בהתחלה. כתובת ה IP של הארדואינו היא שרירותית וכך גם ה GATEWAY.

קובץ ה PHP שבמקרה זה נקרא arduinosms.php הוא זה שמפעיל את שליחת המסרון ויושב בראש מערכת הקבצים של השרת.

הנה הקוד לשליחת SMS מארדואינו.

עכשיו נותר לנו לכתוב את קוד ה PHP על השרת ששולח את ההודעה:

blog-arduinosms-php

זהו קובץ arduinosms.php הנמצא על השרת. את כל הפרטים של טוויליו ניתן למצוא בממשק המשתמש שלכם כשאתם מחוברים אליו.

לאותה תיקייה של קובץ זה צריך להוסיף את ספריית PHP של טוויליו הנמצאת כאן : ספרייה של טויליו לשימוש בPHP

את כל הסמתוכה הזו אפשר בקלות לבנות על הרספברי פיי אם תורידו אליו apache ו php.

הפרדה בין הגלאים לרכזת

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

את הגלאים שמים בפינת החדר כדי שיכסו כמה שיותר טווח…. הטווח המוצהר שלהם הוא 7 מטר עם זווית כיסוי של 120 מעלות.

blog-alarm-motion-wall

לסיום אפשר גם להלחים את המעגל האלקטרוני :

blog-alarm-solder

ככה נראית מערכת אזעקה עם ארדואינו וגלאי אחד.

 

תגובה אחת על הפוסט “מערכת אזעקה עם ארדואינו

כתיבת תגובה

האימייל לא יוצג באתר.