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

יחידת שלט רחוק מבוסס GSM/SMS מבוסס ארדואינו: 16 שלבים (עם תמונות)
יחידת שלט רחוק מבוסס GSM/SMS מבוסס ארדואינו: 16 שלבים (עם תמונות)

וִידֵאוֹ: יחידת שלט רחוק מבוסס GSM/SMS מבוסס ארדואינו: 16 שלבים (עם תמונות)

וִידֵאוֹ: יחידת שלט רחוק מבוסס GSM/SMS מבוסס ארדואינו: 16 שלבים (עם תמונות)
וִידֵאוֹ: מקודד ללא צורך בתשתית מבוסס רשת סלולרית gsm 2024, נוֹבֶמבֶּר
Anonim
יחידת שלט רחוק מבוססת GSM/SMS מבוססת ארדואינו
יחידת שלט רחוק מבוססת GSM/SMS מבוססת ארדואינו

! ! ! הודעה !

בגלל מגדל הסלולר המקומי ששודרג באזור שלי, אני כבר לא יכול להשתמש במודול GSM זה. המגדל החדש כבר לא תומך במכשירי 2G. לכן, אני כבר לא יכול לתת שום תמיכה בפרויקט הזה.

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

בעזרת ה- Arduino Uno ו- Arduino IDE הצלחתי להפוך את הרעיונות שלי למציאות. זה לא הגיע פשוט, כאשר הבעיה היחידה הגדולה ביותר היא המגבלה של 2KB SRAM בלבד. לאחר מחקר רב באינטרנט ופורומים שונים, הצלחתי להתגבר על המגבלה הזו.

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

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

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

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

מפרט היחידה:

  • ניתן לתכנת לכל היותר 250 משתמשים ביחידה
  • ארבע יציאות דיגיטליות
  • ארבע כניסות דיגיטליות
  • ניתן להגדיר כל פלט כפלט PULSE או ON/OFF
  • ניתן להגדיר את משך הדופק של הפלט בין 0.5.. 10 שניות
  • ניתן להגדיר כל קלט להפעלת שינויים OFF ל ON.
  • ניתן להגדיר כל קלט כדי להפעיל שינויים ON ל OFF
  • ניתן להגדיר כל זמן עיכוב קלט בין 0 שניות לשעה
  • ניתן לשלוח הודעות SMS לשינויים בכניסות ל- 5 משתמשים שונים
  • המשתמש יכול להגדיר שמות וטקסט סטטוס עבור כל קלט
  • המשתמש יכול להגדיר שמות וטקסט סטטוס לכל פלט
  • ניתן להגדיר את היחידה לקבלת הודעות איזון כרטיס SIM באמצעות הודעות USSD.
  • כל המשתמשים יכולים לבקש עדכוני סטטוס קלט/פלט של היחידה
  • כל המשתמשים יכולים לשלוט ביציאות בודדות באמצעות הודעות SMS
  • כל המשתמש יכול לשלוט ביציאות בודדות על ידי התקשרות ליחידה

אמצעי בטיחות

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

תכונות אחרות

  • השיחות ליחידה זו הן בחינם, מכיוון שהשיחה אף פעם לא נענית.
  • כאשר קוראים ליחידה, השיחה תיפול רק לאחר 2 שניות. זהו אישור למתקשר שהיחידה השיבה לשיחה.
  • אם ספק שירותי כרטיס ה- SIM תומך בהודעות USSD, ניתן לבצע בירור איזון על ידי המשתמש MASTER. הודעת USSD המכילה את היתרה תועבר לאחר מכן למשתמש MASTER.

שלב 1: ספק כוח

ספק כוח
ספק כוח

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

החשמל מופעל במסופי 12V IN ו- 0V ומוגן על ידי נתיך 1A. מסופים נוספים של 12V OUT זמינים ומוגנים גם על ידי הנתיך.

דיודה D1 מגנה על היחידה מפני חיבורי קוטביות הפוכה בקווי 12V.

קבלים C1 ו- C2 מסננים כל רעש הקיים בקווי האספקה של 12V. אספקת 12V משמשת להפעלת ממסרי היחידה.

אספקת 5V מורכבת מווסת מתח LM7805L, ופלט +5V יציב הדרוש למודול ה- SIM800L GSM, כמו גם למעבד המיקרו. קבלים C3 ו- C4 מסננים כל רעש שעשוי להיות קיים בקו האספקה +5V. שימשו קבלים אלקטרוליטיים יחסית גדולים, שכן מודול ה- SIM800L GSM אכן משתמש בלא מעט כוח בעת שידור.

לא נדרש גוף קירור על ווסת המתח.

שלב 2: כניסות דיגיטליות

כניסות דיגיטליות
כניסות דיגיטליות
כניסות דיגיטליות
כניסות דיגיטליות

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

נגד הכניסה 1K מגביל את זרם הכניסה למצמד האופטו לסביבות 10mA.

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

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

כאשר 12V מופעל (HIGH) לכניסה של מצמד האופטו, בסביבות 10mA יזרום דרך נורית מצמד האופטו. כך הטרנזיסטור של מצמד האופטו יופעל. זה יוריד את הקולט לכמעט 0V, וייראה לוגיקה נמוכה על ידי בקר המיקרו.

שים לב שהקלט שנראה על ידי בקר המיקרו הפוך בהשוואה לקלט 12V.

הקוד הרגיל לקריאת סיכת הקלט נראה כדלקמן:

קלט בוליאני = digitalRead (inputpin);

כדי לתקן את האות ההפוך, השתמש בקוד הבא:

קלט בוליאני =! digitalRead (inputpin); // שימו לב ל! מול הקריאה

כעת, הקלט שנראה על ידי בקר המיקרו יתאים לקלט בכניסת 12V.

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

שלב 3: יציאות דיגיטליות

יציאות דיגיטליות
יציאות דיגיטליות
יציאות דיגיטליות
יציאות דיגיטליות
יציאות דיגיטליות
יציאות דיגיטליות

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

הנגדים מספקים הגבלה של זרם הבסיס לקרקע והטרנזיסטור. הטרנזיסטור משמש להגדלת הזרם הזמין להנעת ממסר. כאשר רק 1mA נמשך מסיכת בקר המיקרו, הטרנזיסטור יכול להחליף עומס של 100mA. יותר ממספיק לרוב סוגי הממסרים. הדיודה היא דיודה מתגבשת, המגנה על המעגל מפני קוצים במתח גבוה במהלך מיתוג ממסר. היתרון הנוסף בשימוש במעגל זה הוא שמתח ההפעלה של הממסר יכול להיות שונה מהמתח של בקר המיקרו. כך, במקום להשתמש בממסר 5V, אפשר להשתמש בכל מתח DC של עד 48V.

היכרות עם ULN2803

ככל שפרויקט דורש יותר ממסרים, כך מספר הרכיבים גבוה יותר. זה יהפוך את עיצוב ה- PCB לקשה יותר ויכול לצרוך שטח יקר PCB. אבל שימוש במערך טרנזיסטור, כמו ULN2803, בהחלט יסייע לשמור על גודל הלוח הקטן. ULN2803 מתאים באופן אידיאלי לכניסות 3.3V ו- 5V מבקר מיקרו ויכול להניע ממסרים עד 48V DC. ל- ULN2803 זה יש 8 מעגלי טרנזיסטור בודדים, שכל מעגל מצויד בכל הרכיבים הדרושים להחלפת ממסר.

מעגל הפלט הסופי מורכב מ- ULN3803, המניע 4 ממסרי פלט DC 12V. כל איש קשר של הממסר זמין במסופי לוח ה- PC.

שלב 4: מתנד בקר מיקרו

מתנד בקר מיקרו
מתנד בקר מיקרו
מתנד בקר מיקרו
מתנד בקר מיקרו
מתנד בקר מיקרו
מתנד בקר מיקרו

מעגל מתנד

בקר המיקרו צריך מתנד כדי לפעול כראוי. כדי לשמור על עיצוב Arduino Uno, המעגל ישתמש במתנד 16MHz הסטנדרטי. שתי אפשרויות זמינות:

גָבִישׁ

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

מָהוֹד

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

כדי לשמור על מספר הרכיבים הנמוך ככל האפשר, בחרתי להשתמש בתהודה של 16 מגה -הרץ.

שלב 5: נוריות חיווי

נוריות חיווי
נוריות חיווי
נוריות חיווי
נוריות חיווי

מה יהיה כל מעגל ללא כמה נוריות? נקבעה על לוח ה- PC עבור נוריות 3 מ מ.

נגדים 1K משמשים להגבלת הזרם דרך הלד לפחות מ- 5mA, בעת שימוש בנורות LED בהירות בגודל 3 מ מ, הבהירות מצוינת.

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

LED אדום

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

LED ירוק

הנורית הירוקה משמשת לציון קלט ופקודות תקינות ו/או נכונות.

שלב 6: מעגל איפוס מעבד מיקרו

מעגל איפוס מעבד מיקרו
מעגל איפוס מעבד מיקרו

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

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

איך זה עובד

הנגד 10K ישמור על קו האיפוס קרוב ל 5V. כאשר לוחצים על הכפתור, הקו RESET ימשך ל- 0V ובכך ישמור על בקר המיקרו באיפוס. כאשר הכפתור משתחרר, שורת האיפוס חוזרת ל- %v ומפעילה מחדש את בקר המיקרו.

שלב 7: מודול SIM800L

מודול SIM800L
מודול SIM800L
מודול SIM800L
מודול SIM800L
מודול SIM800L
מודול SIM800L

לב היחידה הוא מודול ה- GS800 SIM800L. מודול זה משתמש רק ב -3 סיכות קלט/פלט בבקר המיקרו.

המודול מתממשק לבקר המיקרו באמצעות יציאה טורית רגילה.

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

כדי לחסוך מקום, מודול ה- GSM מחובר ללוח המחשב באמצעות כותרת בעלת 7 פינים. זה מקל על הסרת מודול ה- GSM. זה גם מאפשר למשתמש להכניס/להסיר בקלות את כרטיס ה- SIM בתחתית המודול.

יש צורך בכרטיס SIM פעיל, וכרטיס ה- SIM חייב להיות מסוגל לשלוח ולקבל הודעות SMS.

התקנת מודול GSM SIM800L

בעת הפעלת היחידה, סיכת האיפוס של מודול GSM נמשכת לשנייה. זה מבטיח שמודול ה- GSM יתחיל רק לאחר התייצבות אספקת החשמל. מודול ה- GSM לוקח כמה שניות לאתחל מחדש, אז המתן 5 שניות לפני שליחת פקודות AT למודול.

כדי להבטיח שמודול ה- GSM מוגדר לתקשר נכון עם בקר המיקרו, נעשה שימוש בפקודות AT הבאות במהלך ההפעלה:

בְּ

משמש כדי לקבוע אם מודול GSM זמין

ב-+CREG?

סקירת פקודה זו עד לרשום מודול ה- GSM ברשת הסלולר

AT+CMGF = 1

הגדר מצב הודעות SMS ל- ASCII

AT+CNMI = 1, 2, 0, 0, 0

אם ניתן להשיג SMS, שלח פרטי SMS ליציאה הטורקית של מודול GSM

AT+CMGD = 1, 4

מחק את כל הודעות ה- SMS המאוחסנות בכרטיס ה- SIM

AT+CPBS = / "SM

הגדר את ספר הטלפונים של מודול ה- GSM לכרטיס ה- SIM

AT+COPS = 2, ואז AT+CLTS = 1, ואז AT+COPS = 0

הגדר את זמן מודול ה- GSM לזמן רשת הסלולר

המתן 5 שניות עד להגדרת הזמן

AT+CUSD = 1

אפשר פונקציית העברת הודעות USSD

שלב 8: בקר המיקרו

בקר המיקרו
בקר המיקרו
בקר המיקרו
בקר המיקרו
בקר המיקרו
בקר המיקרו

בקר המיקרו הוא AtMega328p סטנדרטי, זהה לזה המשמש ב- Arduino Uno. הקוד דומה אפוא לשניהם. כדי לאפשר תכנות על הלוח קל, כותרת תכנות בת 6 פינים זמינה בלוח המחשב האישי.

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

  • ארבע כניסות דיגיטליות
  • ארבע יציאות דיגיטליות
  • המתנד
  • שני נוריות חיווי
  • אפס מעגל
  • מודול GSM SIM800L

כל התקשורת ממודול ה- GSM וממנו מתבצעת באמצעות הפונקציה SoftwareSerial (). שיטה זו שימשה לשחרור היציאה הסדרתית הראשית עבור ה- Arduino IDE בשלב הפיתוח.

עם 2KB בלבד של SRAM ו- 1KB של EEPROM, אין מספיק זיכרון לאחסון יותר מכמה משתמשים שניתן לקשר אותם ליחידה. כדי לפנות את ה- SRAM, כל פרטי המשתמש מאוחסנים בכרטיס ה- SIM במודול ה- GSM. בעזרת סידור זה, היחידה יכולה לספק עד 250 משתמשים שונים.

נתוני התצורה של היחידה נשמרים ב- EEPROM, ובכך מפרידים נתוני משתמשים ונתוני מערכת זה מזה.

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

שלב 9: ייעול זיכרון SRAM

ייעול זיכרון SRAM
ייעול זיכרון SRAM

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

הגבל את הנתונים שהתקבלו ביציאה הטורית

מודול ה- GSM ידווח לכל ההודעות לבקר המיקרו על היציאה הטורית. בעת קבלת כמה הודעות SMS, האורך הכולל של ההודעה שהתקבלה יכול להיות יותר מ -200 תווים. זה יכול לצרוך במהירות את כל ה- SRAM הזמין בשבב AtMega, ויגרום לבעיות יציבות.

כדי למנוע זאת, ישמשו רק את 200 התווים הראשונים של כל הודעה המתקבלת ממודול ה- GSM. הדוגמה להלן מראה כיצד הדבר מתבצע על ידי ספירת התווים שהתקבלו במונה משתנה.

// סרוק נתונים מיציאה טורית של התוכנה

// ----------------------------------------------- RxString = ""; מונה = 0; while (SSerial.available ()) {delay (1); // עיכוב קצר לתת זמן למיקום נתונים חדשים במאגר // לקבל תו חדש RxChar = char (SSerial.read ()); // הוסף 200 תווים ראשונים למחרוזת אם (Counter <200) {RxString.concat (RxChar); מונה = מונה + 1; }}

הקטנת קוד Serial.print ()

למרות שהוא שימושי במהלך הפיתוח, הצג הטורי Arduino יכול לצרוך הרבה SRAM. הקוד פותח באמצעות כמה שפחות קוד Serial.print (). חלק אחד של הקוד נבדק כדי לעבוד, כל הקוד Serial.print () הוסר מאותו חלק בקוד.

שימוש בקוד Serial.print (F ((""))

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

Serial.println ("מחכה לפעולות ספציפיות");

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

במהלך אוסף הקוד, המהדר יכלול את המחרוזת "מחכה לפעולות ספציפיות" בזיכרון FLASH.

בנוסף, המהדר רואה שהמחרוזת היא קבוע, המשמשת את ההוראה "Serial.print" או "Serial.println". במהלך אתחול המיקרו, קבוע זה ממוקם גם בזיכרון SRAM.

באמצעות הקידומת "F" בפונקציות Serial.print (), היא אומרת למהדר כי מחרוזת זו זמינה רק בזיכרון FLASH. בדוגמה זו, המחרוזת מכילה 28 תווים. זהו 28 בתים שניתן לפנות אותם ב- SRAM.

Serial.println (F ("מחכה לפעולות ספציפיות"));

שיטה זו חלה גם על הפקודות SoftwareSerial.print (). מכיוון שמודול GSM פועל על פקודות AT, הקוד מכיל פקודות רבות של SoftwareSerial.print ("xxxx"). השימוש בקידומת "F" שחרר כמעט 300 בתים של SRAM.

אין להשתמש ביציאה הטורית של החומרה

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

ללא פקודות Serial.print () שנותרו בקוד, 128 בייטים נוספים של SRAM זמינים. זה נעשה על ידי הסרת היציאה הטורית של החומרה מהקוד. זה מעלה את שידור 64 בתים ו- 64 בתים לקבל מאגרים.

// Serial.begin (9600); // יציאה טורית של חומרה מושבתת

שימוש ב- EEPROM למיתרים

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

עם סך של 8 ערוצי קלט/פלט, כך יהיה

  • 8 מחרוזות המכילות את שמות הערוצים, באורך כל 10 תווים
  • 8 מחרוזות המכילות את הערוץ On תיאור, באורך כל 10 תווים
  • 8 מחרוזות המכילות את תיאור הערוץ כבוי, באורך כל 10 תווים

מודעה זו מציגה עד 240 בתים של SRAM. במקום לאחסן מחרוזות אלה ב- SRAM, הן מאוחסנות ב- EEPROM. זה שחרר 240 בתים נוספים של SRAM.

מחרוזת מצהירה באורכים הנכונים

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

מחרוזת GSM_Nr = "";

מחרוזת GSM_Name = ""; מחרוזת GSM_Msg = "";

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

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

מחרוזת GSM_Nr = "1000000000";

מחרוזת GSM_Name = "2000000000"; מחרוזת GSM_Msg = "3000000000";

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

שלב 10: גודל מאגר סידורי תוכנה

גודל מאגר סידורי תוכנה
גודל מאגר סידורי תוכנה

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

// סרוק נתונים מיציאה טורית של התוכנה

// ----------------------------------------------- RxString = ""; מונה = 0; while (SSerial.available ()) {delay (1); // עיכוב קצר לתת זמן למיקום נתונים חדשים במאגר // לקבל תו חדש RxChar = char (SSerial.read ()); // הוסף 200 תווים ראשונים למחרוזת אם (Counter <200) {RxString.concat (RxChar); מונה = מונה + 1; }}

זה דורש מאגר של לפחות 200 בתים גם ליציאה הטורית של התוכנה. כברירת מחדל, מאגר היציאה הטורית של התוכנה הוא 64 בתים בלבד. כדי להגדיל את המאגר הזה, חפש את הקובץ הבא:

SoftwareSerial.h

פתח את הקובץ בעזרת עורך טקסט ושנה את גודל המאגר ל -200.

/******************************************************************************

* הגדרות ************************************************ ****** *****

שלב 11: הכנת לוח ה- PC

יצירת לוח ה- PC
יצירת לוח ה- PC

לוח ה- PC תוכנן באמצעות גרסת התוכנה החופשית של Cadsoft Eagle (אני מאמין שהשם השתנה).

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

אני משתמש בשיטה הבאה ליצירת לוחות PC:

  • תמונת לוח ה- PC מודפסת על Press-n-Peel באמצעות מדפסת לייזר.
  • לאחר מכן הניח את ה- Press-n-Peel על גבי פיסת לוח נקייה של PC, ומאובטח בעזרת סרט דבק.
  • לאחר מכן מועברת תמונת לוח ה- PC מה- Press-n-Peel ללוח ה- PC הריק על ידי העברת הלוח דרך למינציה. בשבילי, 10 כרטיסים עובדים הכי טוב.
  • לאחר שלוח המחשב הצטנן לטמפרטורת החדר, ה- Press-n-Peel מורם באיטיות מהלוח.
  • לוח PC נחרט לאחר מכן באמצעות גבישי אמוניום פרסולפט המומסים במים חמים.
  • לאחר התחריט, הטונר הכחול Press-n-Peel והטונר השחור מוסר על ידי ניקוי לוח הלוח החרוט עם מעט אצטון.
  • הלוח נחתך לגודל בעזרת Dremel
  • חורים לכל רכיבי החורים נקדחים באמצעות מקדחה של 1 מ"מ.
  • מחברי בורג המסוף נקדחים באמצעות מקדח 1.2 מ"מ.

שלב 12: הרכבת לוח ה- PC

הרכבה של לוח ה- PC
הרכבה של לוח ה- PC
הרכבה של לוח ה- PC
הרכבה של לוח ה- PC
הרכבה של לוח ה- PC
הרכבה של לוח ה- PC
הרכבה של לוח ה- PC
הרכבה של לוח ה- PC

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

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

www.shop.rabtron.co.za/catalog/index.php

הערה! הלחמה ראשונה של שני הקופצים הממוקמים מתחת ל- ATMEGA328p

הצו הוא כדלקמן:

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

לפני הכנסת ה- IC, חבר את היחידה ל- 12V ובדוק את כל המתחים כדי להיות תקינים.

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

כאשר הלכה התייבשה, הכנס את ה- IC, אך עזוב את מודול ה- GSM עד שתוכנת ה- AtMega.

שלב 13: תכנות AtMega328p

תכנות AtMega328p
תכנות AtMega328p
תכנות AtMega328p
תכנות AtMega328p
תכנות AtMega328p
תכנות AtMega328p

# # שדרוג קושחה לגרסה 3.02 # #

אפשר לשלוח SMS ל- MASTER USER כאשר החשמל יוחזר למכשיר

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

Arduino UNO כמתכנת AtMega328P

יש להסיר את מודול ה- GSM מלוח המחשב כדי לקבל גישה לכותרת התכנות. הקפד לא לפגוע בחוט האנטנה בעת הסרת מודול ה- GSM.

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

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

פתח את הקובץ המצורף ב- Arduino IDE ותכנת אותו ליחידה.

לאחר התכנות, הסר את כבל התכנות והכנס את מודול ה- GSM.

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

שלב 14: חיבור היחידה

חיבור היחידה
חיבור היחידה
חיבור היחידה
חיבור היחידה
חיבור היחידה
חיבור היחידה

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

מפעיל את היחידה

ודא שהכנסת כרטיס SIM רשום למודול ה- GSM וכי כרטיס ה- SIM מסוגל לשלוח ולקבל הודעות SMS.

חבר ספק כוח 12V DC ל- 12V IN ולכל אחד ממסופי 0V. לאחר הפעלה, הנורית האדומה בלוח המחשב תידלק. תוך דקה בערך, מודול ה- GSM היה צריך להתחבר לרשת הסלולר. הנורית האדומה תיכבה, ונורית אדומה במודול ה- GSM תהבהב במהירות.

לאחר שהגיע שלב זה, היחידה מוכנה להגדרה.

חיבורי קלט

הכניסות הדיגיטליות פועלות על 12V. כדי להפעיל קלט, יש להפעיל 12V על הקלט. הסרת 12V תכבה את הקלט.

חיבורי פלט

כל פלט מורכב ממגע שינוי. חבר כל איש קשר לפי הצורך.

שלב 15: התקנה ראשונית

התקנה ראשונית
התקנה ראשונית

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

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

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

הגדר את מספר הטלפון של MASTER USER

מכיוון שרק MASTER USER יכול להגדיר את היחידה, שלב זה חייב להתבצע תחילה.

  • היחידה חייבת להיות מופעלת.
  • לחץ ושחרר את כפתור האיפוס, והמתן עד שהנורית האדומה בלוח המחשב תיכבה.
  • נורית ה- NET במודול ה- GSM מהבהבת במהירות.
  • היחידה מוכנה כעת לקבל את פקודות ההגדרה הראשונית. זה חייב להתבצע תוך 10 דקות.
  • שלח הודעת SMS המכילה MASTER, תיאור למספר הטלפון של היחידה.
  • אם תתקבל, הנורית הירוקה בלוח המחשב תבהב פעמיים.
  • ה- MASTER USER תוכנן כעת.

שחזר את היחידה לברירות המחדל של היצרן

לאחר שתכנת את MASTER USER, יש להגדיר את הגדרות היחידה לברירות המחדל של היצרן.

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

עיצוב כרטיס ה- SIM

השלב האחרון הוא למחוק את כל המידע המאוחסן בכרטיס ה- SIM ולהגדיר אותו לשימוש ביחידה זו.

  • לחץ ושחרר את כפתור האיפוס, והמתן עד שהנורית האדומה בלוח המחשב תיכבה.
  • נורית ה- NET במודול ה- GSM מהבהבת במהירות.
  • היחידה מוכנה כעת לקבל את פקודות ההגדרה הראשונית. זה חייב להתבצע תוך 10 דקות.
  • שלח הודעת SMS עם ERASESIM בלבד למספר הטלפון של היחידה.
  • אם תתקבל, הנורית הירוקה בלוח המחשב תבהב פעמים עץ.

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

שלב 16: פקודות SMS

פקודות SMS
פקודות SMS

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

פקודה,,,,,

  • כל הפקודות, למעט הפקודות NORMAL USER, תלויות באותיות רישיות.
  • הפרמטרים אינם תלויי רישיות.

פקודות הגדרה ראשונות

מאסטר, שם

מספר הטלפון של שולח ה- SMS משמש כמספר הטלפון של MASTER USER. ניתן להוסיף כאן תיאור ליחידה.

ברור

אפס את היחידה לברירת המחדל של היצרן

CLEARSIM

מחק את כל הנתונים מכרטיס ה- SIM

אִתחוּל

הפעל מחדש את היחידה

MASTER USER פקודות להגדרת היחידה

OUTMODE, c, m, t שימו לב! ! ! עדיין לא מיושם

הגדר ערוצים ספציפיים שיש להם יציאות PULSED, TIMED או LATCHING. t הוא משך הזמן בדקות עבור יציאות TIMED

דופק, סמ ק

הגדר ערוצים ספציפיים ליציאות PULSED. אם לא הוגדר, הערוצים יוגדרו כפלט LATCHING.

PULSETIME, t קובע את משך הפלט הדופק בשניות (0.. 10 שניות)

INPUTON, סמך

הגדר ערוצים שחייבים להפעיל, ושלח הודעת SMS כאשר המצב משתנה מ OFF למצב ON

INPUTOFF, סמ ק

הגדר ערוצים שחייבים להפעיל, ושלח הודעת SMS כשהמצב משתנה מ- ON ל OFF

INTIME, c, t

קובע את זמן השהיית הקלט לגילוי שינויי סטטוס תוך שניות

INTEXT, ch, name, on, off

הגדר את שם כל ערוץ קלט, על טקסט ומכבה טקסט

OUTTEXT, ch, name, on, off

הגדר את שמו של כל ערוץ פלט, על טקסט וכיבוי של טקסט

הוסף, מיקום, מספר, יציאות הסבר, קלט SMS, קלט

הוסף משתמש לכרטיס ה- SIM ב'מיקום 'הזיכרון, כאשר ערוצי הפלט והקלט מוקצים למשתמש

דל, מיקום

מחק משתמש מהמיקום של זיכרון כרטיס ה- SIM

שם הערוץ

יפיק פלט בשם ChannelName

ChannelName, onText, or ChannelName, offText

יפעיל/יכבה את הפלט בשם ChannelName ו- onText/offText

פקודות משתמש רגילות לשליטה ביחידה

???? לבקש עדכון סטטוס קלט/פלט. סטטוס SMS יישלח אל המקור.

שם הערוץ

יפיק פלט בשם ChannelName

שם הערוץ, onText

יפעיל את הפלט בשם שם הערוץ וטקסט הסטטוס onText

ChannelName, offText יכבה את הפלט בשם של Channel Channel וטקסט סטטוס

לתיאור פרטים נוספים של הפקודות, עיין במסמך ה- PDF המצורף.

מוּמלָץ: