- חומרים נדרשים
- תוכנה בשימוש
- מודול GSM
- תקשורת עם מודול GSM באמצעות פקודות AT
- ATMega16 GSM מודול ממשק דיאגרמת מעגלים
- יצירת הפרויקט עבור ATmega16 באמצעות CodeVision
- קוד והסבר
- בנה את הפרויקט
- העלה את הקוד ל- Atmega16
מעניין להשתמש במודולי GSM במיוחד כאשר הפרויקט שלנו דורש גישה מרחוק. המודולים הללו יכולים לבצע את כל הפעולות שהטלפון הנייד הרגיל שלנו יכול לעשות, כמו לבצע / לקבל שיחה, לשלוח / לקבל SMS, להתחבר לאינטרנט באמצעות GPRS וכו '. אתה יכול גם לחבר מיקרופון ורמקול רגילים למודול זה ולשוחח שיחות לנייד. זה יפתח דלתות לפרויקטים יצירתיים רבים אם ניתן יהיה להתממשק אליו עם מיקרו-בקר. מכאן שבמדריך זה נלמד כיצד נוכל לממשק את מודול ה- GSM (SIM900A) למיקרו-בקר ה- AVR ATmega16 ונדגים זאת על ידי שליחת וקבלת הודעות באמצעות מודול GSM.
חומרים נדרשים
- אטמגה 16
- מודול GSM (SIM900 או כל אחר)
- תצוגת אל סי די
- ללחוץ על כפתורים
- נגדים 10k, פוטנציומטר
- חוטי חיבור
- מתאם 12 וולט
- מתכנת USBasp
- כבל FRC עם 10 פינים
תוכנה בשימוש
נשתמש בתוכנת CodeVisionAVR לכתיבת הקוד שלנו ובתוכנת SinaProg להעלאת הקוד שלנו ל- Atmega16 באמצעות מתכנת USBASP.
אתה יכול להוריד תוכנות אלה מהקישורים הנתונים:
CodeVisionAVR:
SinaProg:
לפני שנכנס לתרשימים וקודים, אנו למדים על מודול GSM ועבודתו.
מודול GSM
ניתן להשתמש במודול ה- GSM גם ללא כל מיקרו-בקר באמצעות מצב הפקודה AT. כפי שמוצג לעיל, מודול ה- GSM מגיע עם מתאם USART אשר ניתן לממשק ישירות למחשב באמצעות מודול MAX232 או בעזרת הפינים Tx ו- Rx ניתן לחבר אותו למיקרו-בקר. ניתן גם להבחין בסיכות האחרות כמו MIC +, MIC-, SP +, SP- וכו 'בהן ניתן לחבר מיקרופון או רמקול. ניתן להפעיל את המודול באמצעות מתאם 12 וולט דרך שקע חבית DC רגיל.
הכנס את כרטיס ה- SIM שלך לחריץ של המודול והפעל אותו, עליך להבחין בנורת חשמל דולקת. עכשיו המתן כדקה בערך, וכדאי שתראה נורית אדומה (או כל צבע אחר) מהבהבת פעם אחת בכל 3 שניות. משמעות הדבר היא שהמודול שלך הצליח ליצור קשר עם כרטיס ה- SIM שלך. עכשיו אתה יכול להמשיך בחיבור המודול שלך לטלפון או לכל מיקרו-בקר.
אתה יכול לבנות פרויקטים מגניבים רבים באמצעות מודול GSM כמו:
- לוח מודעות אלחוטי באמצעות GSM ו- Arduino
- מענה לשיחות אוטומטיות באמצעות מודול Arduino ו- GSM
- אוטומציה ביתית מבוססת GSM באמצעות Arduino
- חיישן PIR ומערכת אבטחה מבוססת GSM
בדוק גם את כל הפרויקטים הקשורים ל- GSM כאן.
תקשורת עם מודול GSM באמצעות פקודות AT
כפי שאולי ניחשתם נכון, מודול ה- GSM יכול לתקשר באמצעות תקשורת טורית ויכול להבין רק שפה אחת והיא " פקודות AT ". לא משנה מה אתה יכול לספר או לבקש ממודול ה- GSM, זה צריך להיות רק באמצעות פקודות AT. למשל אם אתה רוצה לדעת אם המודול שלך פעיל. עליך לשאול (לשלוח) פקודה כמו "AT" והמודול שלך יענה "בסדר".
פקודות AT אלה מוסברות היטב בגיליון הנתונים שלה וניתן למצוא אותן בגיליון הנתונים הרשמי שלה. בסדר! בסדר! זהו גיליון נתונים של 271 עמודים וייתכן שייקח לך ימים לקרוא אותם. אז נתתי כמה פקודות AT החשובות למטה כדי שתוכל להפעיל את זה בקרוב.
בְּ |
משיב באישור לאישור |
ב- + CPIN? |
בדוק את איכות האות |
AT + COPS? |
מצא את שם ספק השירות |
ATD96XXXXXXXX; |
התקשר למספר הספציפי, מסתיים במעי הגס למחצה |
AT + CNUM |
מצא את מספר כרטיס ה- SIM (ייתכן שלא יעבוד עבור חלק מה- SIM) |
ATA |
ענה לשיחה הנכנסת |
ATH |
השבת את השיחה הנכנסת הנוכחית |
AT + COLP |
הצג את מספר השיחה הנכנסת |
AT + VTS = (מספר) |
שלח מספר DTMF. אתה יכול להשתמש בכל מספר בלוח המקשים הנייד שלך עבור (מספר) |
AT + CMGR |
AT + CMGR = 1 קורא הודעה במיקום הראשון |
AT + CMGD = 1 |
מחק הודעה במיקום הראשון |
AT + CMGDA = "DEL ALL" |
מחק את כל ההודעות מה- SIM |
AT + CMGL = "ALL" |
קרא את כל ההודעות מה- SIM |
AT + CMGF = 1 |
הגדר תצורת SMS. "1" מיועד למצב טקסט בלבד |
AT + CMGS = “+91 968837XXXX” > טקסט CircuitDigest
|
שולח SMS למספר מסוים כאן 968837XXXX. כשרואים ">" התחל להזין את הטקסט. לחץ על Ctrl + Z כדי לשלוח את הטקסט. |
AT + CGATT? |
לבדיקת חיבור לאינטרנט בכרטיס SIM |
AT + CIPSHUT |
לסגירת חיבור TCP, כלומר לנתק את האינטרנט מהטופס |
AT + CSTT = "APN", "שם משתמש", "מעבר" |
התחבר ל- GPRS באמצעות APN ומפתח ה- Pass שלך. ניתן להשיג מספק הרשת. |
AT + CIICR |
בדוק אם בכרטיס ה- SIM יש חבילת נתונים |
AT + CIFSR |
קבל IP של רשת ה- SIM |
AT + CIPSTART = "TCP", "SERVER IP", "PORT" |
משמש להגדרת חיבור IP TCP |
ב- + CIPSEND |
פקודה זו משמשת לשליחת נתונים לשרת |
כאן נשתמש בפקודה AT + CMGF ו- AT + CMGS כדי לשלוח הודעות.
אם השתמשת במודול GSM עם Arduino, בעת קבלת הודעות אתה יכול להשתמש בפקודה + CMT: כדי להציג את המספר הנייד ואת הודעת הטקסט בצג הסדרתי. הודעת טקסט מופיעה בשורה השנייה כפי שמוצג בתמונה.
אנו נסרוק את הפקודה + CMT: כדי לבדוק אם ההודעה זמינה או לא.
ATMega16 GSM מודול ממשק דיאגרמת מעגלים
החיבורים יהיו כדלקמן
- Tx ו- Rx של מודול GSM ל- Rx (Pin14) ו- Tx (Pin15) של Atmega16 בהתאמה.
- לחץ על הכפתורים ל- PD5 (Pin19) ו- PD6 (Pin20).
- חיבורי LCD:
- RS - PA 0
- R / W - PA1
- EN - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
יצירת הפרויקט עבור ATmega16 באמצעות CodeVision
לאחר התקנת CodeVisionAVR ו SinaProg תוכנות , בצע את השלבים הבאים כדי ליצור פרויקט וקוד כותב:
כבר הועלה
שלב 1. פתח את CodeVision לחץ על קובץ -> חדש -> פרויקט . תיבת דו-שיח אישור תופיע. לחץ על כן
שלב 2. קוד אשף ייפתח. לחץ על אפשרות ראשונה כלומר AT90 ולחץ על אישור.
שלב 3: - בחרו את שבב המיקרו-בקר שלכם, כאן ניקח את Atmega16L כפי שמוצג.
שלב 4: - לחץ על USART . בחר מקלט ואת משדר על ידי לחיצה על זה. כפי שמוצג מטה:
שלב 5: - לחץ על LCD אלפאנומרי ובחר אפשר תמיכה LCD אלפאנומרית .
שלב 6: - לחץ על תוכנית -> צור, שמור ויצא . כעת, יותר ממחצית העבודה שלנו הושלמה
שלב 7: - הכינו תיקיה חדשה על שולחן העבודה כך שהקבצים שלנו יישארו בתיקיה אחרת אנחנו נפוזרים על כל חלון שולחן העבודה. תן שם לתיקייה שלך כרצונך ואני מציע להשתמש באותו שם כדי לשמור קבצי תוכנית.
נקיים שלוש תיבות דו-שיח אחת אחרי השנייה כדי לשמור קבצים.
בצע את אותו הדבר בשתי תיבות דו-שיח אחרות שיופיעו לאחר שמירת הראשון.
עכשיו, סביבת העבודה שלך נראית ככה.
רוב העבודה שלנו הושלמה בעזרת הקוסם. כעת עלינו לכתוב קוד עבור GSM בלבד.
קוד והסבר
כל קבצי הכותרת מחוברים אוטומטית לאחר יצירת הפרויקט, עליך לכלול רק את קובץ הכותרת של delay.h ולהצהיר על כל המשתנים. קוד מלא ניתן בסוף הדרכה זו.
#לִכלוֹל
הפוך פונקציה לקבלת נתונים מרשם ה- UDR. פונקציה זו תחזיר נתונים שהתקבלו.
תו לא חתום קיבל_ערך (בטל) { תוך (! (UCSRA & (1 <
בואו בעוד הלולאה שבה אנו יוצרים שני אם הצהרות, אחד לשליחת הודעה אחרת לקבלה. כפתור השליחה מחובר עם PIND6 של ATmega וקבל הודעת כפתור עם PIND5.
כאשר PIND6 (לחצן שלח) נלחץ הראשון אם אמירה תבצע וכל הפקודות לשלוח הודעה תבצע אחד אחד.
ואילו (1) { // lcd_clear (); lcd_putsf ("Send-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("קבל-> באט 2"); אם (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("שולח Msg…"); עבור (z = 0; cmd_1! = "; z ++) { UDR = cmd_1; עיכוב_מס (100); } UDR = ('\ r'); עיכוב_מס (500); עבור (z = 0; cmd_2! = "; z ++) { UDR = cmd_2; עיכוב_מס (100); }…..
אם לחצן קבל הודעה נלחץ, בעוד (b! = '+') לולאה תבדוק אם פקודת CMT קיימת או לא. אם ההווה, השני תוך הלולאה תבצע וללכת לקו השני של פקודת ולהדפיס את ההודעה על LCD אחד אחד.
בעוד (PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("קבלת הודעה…"); b = קיבל_ערך (); בעוד (b! = '+') { b = קיבל_ערך (); } b = קיבל_ערך (); אם (b == 'C') { b = קיבל_ערך (); ... ..
לולאה זו מעבירה את התוכנית לשורה השנייה של הפקודה ומאחסנת את ההודעה במערך.
בעוד (b! = 0x0a) { b = קיבל_ערך (); } עבור (b = 0; b <3; b ++) { c = קיבל_ערך (); msg = c; } .. ..
זה עבור לולאה הוא להציג את ההודעה על LCD.
עבור (z = 0; z <3; z ++) { a = msg; lcd_putchar (א); // הדפס ב- lcd delay_ms (10); }
הקוד המלא עם סרטון הדגמה ניתן להלן, כעת עלינו לבנות את הפרויקט שלנו.
בנה את הפרויקט
לחץ על בנה את סמל הפרויקט כפי שמוצג.
לאחר בניית הפרויקט, נוצר קובץ HEX בתיקיית Debug-> Exe אשר ניתן למצוא בתיקיה שיצרת בעבר כדי לשמור את הפרויקט שלך. נשתמש בקובץ HEX זה להעלאה ל- Atmega16 באמצעות תוכנת Sinaprog.
העלה את הקוד ל- Atmega16
חבר את המעגלים שלך על פי התרשים הנתון לתכנית Atmega16. חיבור הצד האחד של כבל FRC למתכנת USBASP והצד השני יתחבר לסיכות SPI של מיקרו-בקר כמתואר להלן:
- Pin1 של מחבר נקבה FRC -> Pin 6, MOSI של Atmega16
- סיכה 2 מחוברת ל- Vcc של atmega16 כלומר סיכה 10
- סיכה 5 מחוברת לאיפוס atmega16 כלומר סיכה 9
- סיכה 7 מחוברת ל- SCK של atmega16 כלומר סיכה 8
- סיכה 9 מחוברת ל- MISO של atmega16 כלומר סיכה 7
- סיכה 8 מחוברת ל- GND של atmega16 כלומר סיכה 11
אנו מעלים את קובץ ה- Hex שנוצר לעיל באמצעות Sinaprog, לכן פתח אותו ובחר Atmega16 מהתפריט הנפתח של המכשיר. בחר את קובץ HEX מתיקיית Debug-> Exe כפי שמוצג.
כעת, לחץ על תוכנית והקוד שלך ייצרב במיקרו בקר ATmega16.
סיימת והמיקרו-בקר שלך מתוכנת. פשוט לחץ על הכפתורים כדי לשלוח ולקבל את ההודעות בטופס GSM ו- ATmega16 מיקרו-בקר.
הקוד וההדגמה המלאים מופיע להלן.