לוח מודעות אלחוטי הוא מונח סלקטיבי מאוד לפרויקט זה, מכיוון שיש לו היקף רחב מאוד ולא רק לוח מודעות פשוט. ראשית עלינו להבין את מטרת הפרויקט הזה, במערכת זו אנו יכולים להציג הודעה או הודעה למכשיר תצוגה כלשהו כמו LCD, ואת ההודעה הזו ניתן להגדיר או לשנות בקלות מכל מקום בעולם, פשוט באמצעות מתקן ה- SMS של מכשיר נייד. לא משנה מה ההודעה שאנחנו רוצים להציג, פשוט שלחו את ה- SMS של הטקסט הזה, עם קידומת וסיומת כלשהי.
זה מאוד שימושי בבתי מלון, קניונים, מכללות, משרדים וניתן להשתמש בו בכל מקום, אפילו בבית. כמו שאתה יכול להגדיר את ההודעה כמו "אל תפריע" בשער החדר של המלון שלך, יכול להגדיר הודעה ליד בית הדלת שלך כשאתה לא נמצא, וכמובן שהוא משמש לוח מודעות בבתי ספר, מכללות, אולמות קולנוע וכו '. כן, זה פשוט לא לוח הודעות פשוט, התועלת בפרויקט זה היא שאתה יכול להגדיר או לשנות את ההודעה או ההודעה מכל מקום, פשוט לשלוח SMS מהטלפון שלך. אתה יכול גם לבדוק פרויקט דומה אך על סוג אחר של תצוגה: לוח התוצאות של Arduino באמצעות תצוגת מטריקס LED P10 חיצונית.
בעבר השתמשנו במתקן ה- SMS של הטלפון הנייד לאבטחה ביתית ושליטה מרחוק על מכשירי החשמל הביתיים: PIR חיישן ומערכת אבטחה מבוססת GSM ואוטומציה ביתית מבוסס GSM באמצעות Arduino
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
הסבר עבודה:
בפרויקט זה, Arduino UNO משמש לשליטה בתהליך כולו, מודול GSM (SIM900A) לקבלת SMS / הודעה שנשלחה מהטלפון הנייד ו- LCD להצגת ההודעה.
אנו יכולים לשלוח הודעה או הודעה כלשהי כמו "# Circuit Digest *", "# We Wills Welcome You *" באמצעות ה- SMS. כאן השתמשנו בקידומת במחרוזת ההודעה שהיא '#'. קידומת זו משמשת לזיהוי התחלת ההודעה או ההודעה. ו- '*' משמש כסיומת לציון סוף ההודעה או ההודעה.
כאשר אנו שולחים SMS מהטלפון הנייד למודול GSM אז GSM מקבל את ה- SMS ושולח אותו לארדואינו. כעת קרא ארדואינו SMS זה וחלץ הודעת הודעה ראשית מהמחרוזת שהתקבלה ושמור במחרוזת אחרת. ואז שולח את ההודעה שחולצה ל- 16x2 LCD באמצעות פקודות מתאימות.
עבודה נוספת על מערכת זו מוסברת בסעיף 'תיאור קוד' להלן. לפני שנכנס לפרטי תכנות עלינו לדעת על מודול GSM.
מודול GSM:
מודול GSM משמש במכשירי תקשורת רבים המבוססים על טכנולוגיית GSM (Global System for Mobile Communications). הוא משמש לאינטראקציה עם רשת GSM באמצעות מחשב. מודול GSM מבין רק פקודות AT ויכול להגיב בהתאם. הפקודה הבסיסית ביותר היא "AT", אם GSM מגיב בסדר אז זה עובד טוב אחרת הוא מגיב עם "ERROR". ישנן פקודות AT שונות כמו ATA למענה לשיחה, ATD לחיוג לשיחה, AT + CMGR לקריאת ההודעה, AT + CMGS למשלוח SMS וכו '. אחרי פקודות AT צריך להחזיר Carriage כלומר \ r (0D ב- hex), כמו "AT + CMGS \ r". אנו יכולים להשתמש במודול GSM באמצעות פקודות אלה:
ATE0 להפעלת הד
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "מספר נייד"
>> עכשיו נוכל לכתוב את ההודעה שלנו
>> לאחר כתיבת ההודעה
Ctrl + Z שלח פקודת הודעה (26 בעשרוני).
ENTER = 0x0d ב- HEX
ה- SIM900 הוא מודול GSM / GPRS מרובע-להקות המספק ביצועי GSM / GPRS 850/900/1800 / 1900MHz עבור קול, SMS ונתונים עם צריכת חשמל נמוכה.
תיאור המעגל:
חיבורי לוח מודעות אלחוטי באמצעות GSM ו- Arduino פשוטים ומוצגים באיור שלהלן. כאן תצוגת גביש נוזלי (LCD) משמשת להצגת "הודעה" או הודעה, הנשלחת באמצעות הטלפון הנייד כ- SMS. סיכות נתונים של LCD כלומר RS, EN, D4, D5, D6, D7 מחוברות לסיכו הדיגיטלי של ארדואינו מספר 7, 6, 5, 4, 3, 2. וסיכה Rx ו- Tx של מודול GSM מחוברת ישירות ב- Tx ו- Rx סיכה של ארדואינו בהתאמה. ומודול GSM מופעל באמצעות מתאם 12 וולט.
תיאור קוד:
ניתן להבין את קוד התוכנית בקלות; הדבר החדש כאן הוא פונקציית אתחול GSN gsm_init (), שמוסבר בסופו של דבר.
בתוכנית, קודם כל אנו כוללים ספרייה לתצוגת גביש נוזלי (LCD) ואז אנו מגדירים נתונים וסיכות בקרה עבור LCD וכמה משתנים.
#לִכלוֹל
לאחר מכן, מאותחל התקשורת הטורית ב 9600 bps ונותן כיוון לסיכה המשומשת. ואתחל את מודול ה- GSM בלולאת ההגדרה.
הגדרת חלל () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, HIGH); lcd.print ("אתחול GSM…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("הודעה אלחוטית");
לקבלת נתונים באופן סדרתי אנו משתמשים בשתי פונקציות, האחת היא Serial.available שבודקת כל מידע סדרתי שמגיע או לא ואחת אחרת היא Serial.read שקוראת את הנתונים שמגיעים סדרתי.
בטל serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; אם (ch == '*') {temp = 1; lcd.clear (); lcd.print ("ההודעה התקבלה"); עיכוב (1000); }}}
לאחר קבלת נתונים באופן סדרתי, אנו שומרים אותם במחרוזת ומחרוזת זו נבדקת אם הם '#' ו- '*' כדי למצוא את ההתחלה והסיום של ההודעה או ההודעה. ואז סוף סוף הודעה מודפסת על גבי LCD באמצעות lcd.print:
loop loop () {for (int חתום t = 0; t <60000; t ++) {serialEvent (); אם (temp == 1) {x = 0, k = 0, temp = 0; בעוד (x
פונקציית האתחול 'gsm_init () ' עבור GSM חשובה כאן, שם ראשית, מודול GSM נבדק אם הוא מחובר או לא על ידי שליחת פקודת 'AT' למודול GSM. אם מתקבלת תגובה אישור, פירושה שהיא מוכנה. המערכת ממשיכה לבדוק את המודול עד שהוא מוכן או עד לקבלת 'אישור'. ואז ECHO מכובה על ידי שליחת הפקודה ATE0, אחרת מודול GSM יהדהד את כל הפקודות. ואז לבסוף זמינות הרשת נבדקת באמצעות 'AT + CPIN?' פקודה, אם כרטיס מוכנס הוא כרטיס ה- SIM וה- PIN קיים, זה נותן את התגובה + CPIN: READY. זה גם לבדוק שוב ושוב עד למציאת הרשת. ניתן להבין זאת היטב על ידי הסרטון שלהלן.
בטל gsm_init () {lcd.clear (); lcd.print ("מודול איתור.."); בוליאני at_flag = 1; בעוד (at_flag) {Serial.println ("AT"); בעוד (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } עיכוב (1000); }