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

מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים: 9 שלבים (עם תמונות)
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים: 9 שלבים (עם תמונות)

וִידֵאוֹ: מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים: 9 שלבים (עם תמונות)

וִידֵאוֹ: מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים: 9 שלבים (עם תמונות)
וִידֵאוֹ: אזעקה מבוססת חיישן אור -ללא ארדווינו 2024, מאי
Anonim
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים
מערכת אזעקה אלחוטית של Arduino באמצעות חיישנים קיימים

ניתן לבנות פרויקט זה כחצי שעה בעלות של כ- 20.00 $ אם יש לכם חיישני אזעקה אלחוטיים קיימים 433Mhz או 315Mhz.

זה יכול להיות גם פרויקט חדש שלם עם חיישני אזעקה אלחוטיים, כגון גלאי תנועה אינפרא אדום ומתגי קנים, זמינים באינטרנט בקלות ובזול. פשוט חפש חיישנים של 433Mhz או 315Mhz המשתמשים בקידוד PT2262 או EV1527.

אני בטוח שיש הרבה אנשים כמוני שרכשו מערכת אזעקה GSM/2G עם חיישנים אלחוטיים והיו מרוצים ממנה, אולם כאשר רשת 2G/GSM כבויה במקום שאני גרה, נשארתי עם מערכת אזעקה שיכולתי כבר לא לתכנת או אפילו לקבוע את השעה. באחד הימים שתהיתי מה אני יכול לעשות כדי להפוך את האזעקה לפעילה שוב, עלה בדעתי לבדוק אם ארדואינו יכול לקבל אותות מהחיישנים. נתקלתי ב https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-w--Arduino-/ ולאחר כמה ניסויים קבעתי שאוכל לקבל את האותות מהחיישנים הקיימים שלי. התחלתי בתהליך בניית מערכת אזעקה שיכולה להחליף את האזעקה הקיימת שלי ותספק גם פונקציונליות מוגברת. אחת הבעיות עם האזעקה הישנה מעולם לא הייתה לדעת באמת מי מבין 25 החיישנים שהופעל, על ידי הוספת מסך LCD למבנה האזעקה החדש שלי כעת אני מקבל טקסט על ה- LCD המציין בדיוק איזה חיישן הופעל. ניתן עדיין להפעיל את האזעקה החדשה באופן ידני על ידי מפתחות הכבלים האלחוטיים הקיימים שלי ויש לה שעון בזמן אמת המאפשר לה להתחמש ולהתנתק באופן אוטומטי בשעות היום שנקבעו מראש.

אספקה

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

Arduino Uno או דומה

מודול מקלט 433 או 315 מגה -הרץ עבור Arduino

מודול שעון בזמן אמת DS3231 עבור Arduino

מודול I2C 16x2 LDC עבור Arduino

מתגי קנה אזעקה אלחוטיים, חיישני תנועה ומפתחות מפתחות מרחוק לפי הצורך

זמזם פיזו

נגד LED & 220 אוהם

לוח לחם (אופציונלי אך מומלץ)

ספק כוח מתאים ל- Arduino

חוטי מגשר וכו '

מחשב עם Arduino IDE מותקן

ידע בסיסי בארדואינו

שלב 1: אספקה

אספקה
אספקה
אספקה
אספקה
אספקה
אספקה

כמה תמונות למעלה של החומרים המתכלים שתזדקקו להם לפרויקט זה

שלב 2: חבר את הארדוניו והמודולים כפי שמוצג בתמונה

חבר את הארדוניו והמודולים כפי שמוצג בתמונה
חבר את הארדוניו והמודולים כפי שמוצג בתמונה

פיזו בין סיכה 5 של הארדואינו לאדמה

LED בין סיכה 8 של הארדואינו ונגד 220 אוהם ואז לכדור הארץ

מקלט 433 או 315 מגה -הרץ, VCC עד 5V, GND לקרקע ואחד משני סיכות הנתונים לפין 2 של הארדואינו

מודול I2C 16X2 LCD VCC עד 5V, GND לקרקע, סיכות SCL SDA ל- SCL SDA של הארדואינו (סיכה A5 היא SCL, סיכה A4 היא SDA)

מודול DS3231 RTC VCC עד 5V, GND לקרקע, סיכות SCL SDA ל- SCL SDA של הארדואינו (יש ערכה 2 הממוקמת מעל סיכות GND ו- AREF של רוב הארדואינו)

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

שלב 3: הוסף את הספריות הדרושות ל- IDE של Arduino

הוסף את הספריות הדרושות ל- IDE של Arduino
הוסף את הספריות הדרושות ל- IDE של Arduino
הוסף את הספריות הדרושות ל- IDE של Arduino
הוסף את הספריות הדרושות ל- IDE של Arduino
הוסף את הספריות הדרושות ל- IDE של Arduino
הוסף את הספריות הדרושות ל- IDE של Arduino

ערכת Arduino Sketch להפעלת האזעקה משתמשת בספריות מסוימות שעדיין אינן מותקנות ב- Arduino IDE כברירת מחדל.

כדי להוסיף את ספריית RCSwitch ל- IDE של Arduino. פתח את מזהה Arduino בתפריט העליון בחר "סקיצה" ולאחר מכן מהתפריט הנפתח בחר "כלול ספרייה" ומתפריט הנפתח הבא בחר "נהל ספריות". לאחר מכן בתיבה "סינון החיפוש" הקלד "RCSW", לחץ על ההתקנה הבאה עבור "rc-switch by sui77"

הוראות מפורטות להוספת ספריות בכתובת

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

השעון בזמן אמת DS3231 תואם לספריית DS1307RTC ומשתמש בה.

שלב 4: בשלב הבא עלינו להשיג את הקודים לחיישנים שלך

בשלב הבא עלינו להשיג את הקודים לחיישנים שלך
בשלב הבא עלינו להשיג את הקודים לחיישנים שלך
בשלב הבא עלינו להשיג את הקודים לחיישנים שלך
בשלב הבא עלינו להשיג את הקודים לחיישנים שלך

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

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

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

אולם הנה הגרסה המקוצרת שלי;

כדי להשיג את הקודים שהחיישנים וחיישני המפתח המרוחקים שלך שולחים, חבר את ה- Arduino כפי שהורכב בשלב 1 למחשב באמצעות כבל USB ופתח את ה- Arduino IDE. לאחר מכן ב- Arduino IDE עבור אל התפריט הנפתח "קובץ", ולאחר מכן עבור אל "דוגמאות" גלול מטה ברשימת הסקיצות לדוגמה עד שתמצא "RCSWITCH" ולאחר מכן בחר את המערכון "ReceiveDemo_Advanced" והעלה אותו ל- Arduino. לאחר שהמערכון יעלה בהצלחה פתח את הצג הטורי של ה- Arduino IDE כשהוא עדיין מחובר למחשב האישי שלך באמצעות USB. כעת הפעל את החיישנים הראשון שאליו ברצונך לקבל את הקוד, הפלט מ- RCSwitch יופיע בחלון הצג הטורי. עבור פרויקט זה אנו מחפשים את הקודים העשרוניים כפי שהם מודגשים בצילום המסך 2. יהיה עליך להפעיל את החיישן מספר פעמים ולחפש את הערך העשרוני המופיע בתדירות הגבוהה ביותר, לפעמים יהיו ערכים שונים המעורבים עם ערך אמיתי, זה נגרם על ידי הפרעה מגלי רדיו אקראיים או מכשירים אחרים הפועלים על אותו תדר.

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

שלב 5: תבנית קוד Arduino

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

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

שלב 6: הדבק את הקודים שקיבלת בשלב 5 לתוך סקיצה Arduino תבנית

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

אם תפתח את הסקיצה Wireless_Alarm ב- IDE שלך תראה בשורה 111.

if (mySwitch.getReceivedValue () == 115166236) // קוד לחצן זרוע Fob

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

לדוגמא אם בשלב 5 קיבלת עשרוני 1154321 היית משנה את שורה 111 לקריאה כעת;

if (mySwitch.getReceivedValue () == 1154321) // קוד לחצן זרוע Fob

בצע את אותו הליך עבור שורה 125.

if (mySwitch.getReceivedValue () == 115166234) // קוד כפתור ביטול הפסקת נשק

החלף את 115166234 עבור הקוד של כפתור הנעילה של כפתור הנייד המרוחק שהקלטת בשלב 5.

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

עכשיו לקידוד חיישני האזעקה בסקיצה בשורה 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // פעולה לארון משרד שולח אותות

הוצא את 1151640 והכנס את הערך העשרוני של אחד מחיישני האזעקה שלך.

ואז בשורה 158.

lcd.print (F ("ארון משרד")); // הדפס הודעה ל- lcd כדי לדעת איזה חיישן הופעל (ולך וחפש את הפורץ:)

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

lcd.print (F ("קיצ'נדור")); // הדפס הודעה ל- lcd כדי לדעת איזה חיישן הופעל (ולך וחפש את הפורץ:)

שמות לא יעלו על 16 תווים.

בין שורה 165 ל -187 יש תבנית להעתקה והדבקה של פעמים רבות כנדרש לשורות ישירות מתחת ל -187. החלף את המספר לאחר mySwitch.getReceivedValue () == בעשרוני של אחד מהחיישנים האחרים שלך שהקלטת בשלב 5 ולשנות שם בתוך "" ב- lcd.print (F ("sensornamehere")); לשם שאתה רוצה לתת לחיישן שלך.

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

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

שלב 7: העלה את ה-ino המתוקן ל- Arduino שלך ולבדוק אותו

העלה את ה-ino המתוקן לארדואינו ולבדיקה שלך
העלה את ה-ino המתוקן לארדואינו ולבדיקה שלך
העלה את ה-ino המתוקן לארדואינו ולבדיקה שלך
העלה את ה-ino המתוקן לארדואינו ולבדיקה שלך
העלה את ה-ino המתוקן לארדואינו ולבדיקה שלך
העלה את ה-ino המתוקן לארדואינו ולבדיקה שלך

כשהארדואינו עדיין מחובר למחשב האישי שלך באמצעות USB העלה את הסקיצה ללוח הארדואינו. לאחר השלמת ההעלאה בהצלחה על ה- LCD לקרוא "אזעקה מופעלת". לחץ על כפתור הזרוע בשלט שלך ועל ה- LCD אמור לקרוא "אזעקה מופעלת" והנורית צריכה להיות דולקת כדי להודיע לך שהוא חמוש, כעת הפעל חיישן כשהוא חמוש, LCD צריך לקרוא אזעקה ואחריו חותמת זמן ו במיקום החיישן, הצפצוף אמור להישמע למשך 2 דקות, אלא אם תלחץ על כפתור הנטרול. אם אינך מקבל תוצאה זו בדוק שוב את הקודים שקיבלת בשלב 5 ואת השינויים שביצעת בקוד בשלב הקודם, בדוק שוב את החיווט של כל הרכיבים. אם ה- LCD אינו קורא כלל, יש התאמת ניגודיות בגב מודול ה- LCD. לאחר שהניגודיות מוגדרת כראוי אם ה- LCD עדיין לא קורא נסה לשנות את כתובת ה- LCD מ- 0x3f ל- 0x27 בשורה 12 בסקיצה. פתרון בעיות LCD כאן מדריך I2C LCD

שלב 8: הגדרת השעה במודול RTC ושינוי זמני הזרוע ופירוק הנשק

אני מקווה שה- RTC שלך כבר הוגדר בזמן הנכון, אך אם לא פתח את ה- IDE, בחר 'קובץ' ומתוך התפריט הנפתח לחץ על 'דוגמאות', גלול מטה אל 'DS1307RTC' ובחר את המערכון 'SetTime', הורד את הסקיצה שלך Arduino והוא יקבע את השעון בזמן אמת עם השעה מהמחשב האישי שלך. לאחר מכן יהיה עליך לטעון מחדש את הסקיצה Wireless_Alarm ל- Arduino שלך.

ה- Wireless_Alarm.ino שסיפקתי יגדיר כברירת מחדל את האזעקה לזרוע אוטומטית בשעה 22:15 בכל לילה ותתנתק מנשק בשעה 6:00 בבוקר. כדי לשנות זמנים אלה, שנה את הסקיצה בשורות 71 ו -72. השעה נמצאת בסוגריים לאחר Alarm.alarmRepeat בפורמט HH, MM, SS. שנה את זה לכל זמן שמתאים לך.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // זמן DISARM

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // זמן ARM

אז כדי לשנות את זמן פירוק הנשק ל -9.15 בבוקר וזמן הזרוע לשעה 17:30 הקוד ייראה כך

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // זמן DISARM

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // זמן ARM

אם אינך רוצה שהאזעקה תתחמש ותנתק את הנשק באופן אוטומטי שים // מול 2 השורות והם לא יהיו בשימוש.

//Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // זמן DISARM

//Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // זמן זרוע

ניתן לשנות את הזמן שאליו נשמע צפצוף האזעקה על ידי שינוי שורה 22

const מרווח ארוך = 120000; // לעיכוב אלפי למשך זמן קולות האזעקה

המרווח הוא באלפיות השנייה כך 120000 = 120 שניות, שינוי 120000 ל 30000 יגרום לאזעקה להישמע למשך 30 שניות.

ניתן לחבר סולנואיד להפעלת צפירה, אור נורה, ביפר בנפח גבוה וכו 'גם לסיכה 7 או סיכה 9 ויפעל במשך ה"מרווח "כפי שנקבע לעיל. זכור שהעומס המרבי עבור סיכת Arduino לא יעלה על 40mA.

שלב 9: הערות נוספות

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

עם מודול LCD בגודל 16x2 עליך להשתמש ב- 4 פינים I2C LCD כדי להשתמש בהוראות ובקוד שאני מספקת כאן, זה יכול להתבצע עם LCD רגיל 16 פינים אבל זה לא יעבוד עם החיווט או הקוד כאן.

מתגי קנה אזעקה אלחוטיים, חיישני תנועה ומפתחות מפתחות מרוחקים צריכים להיות 433Mhz או 315Mhz כדי להתאים למקלט שבו אתה מתכוון להשתמש וצריכים להשתמש בקידוד PT2262 או EV1527.

האזעקה ניתנת להרחבה והתאמה, כבר הוספתי כרטיס SD להקלטה כאשר חיישנים מופעלים, שיניתי את ה- LCD כך שידלק רק כאשר כפתור מוחזק והוספתי צפירה של 100dB, אך לא כללתי כאן פרטים כדי לשמור על המאמר כמו קצר ופשוט ככל האפשר. אני מקווה שהשיתוף בעבודה שעשיתי בנושא אזעקה זו יועיל לאחרים.

שמחים לענות על כל שאלה.

תודה.

מוּמלָץ: