- רכיבים נדרשים:
- הסבר עבודה:
- הסבר על ארבע תכונות של טלפון נייד Raspberry Pi:
- תרשים מעגל והסבר:
- הסבר על תכנות:
בפרויקט DIY זה אנו הולכים לבנות טלפון נייד פשוט באמצעות Raspberry Pi, שבו משמש מודול GSM כדי ליצור או לענות לשיחה ולשלוח או לקרוא את ה- SMS , וגם לטלפון ה- Raspberry Pi הזה יש מיקרופון ורמקול לדבר על זה. טלפון . פרויקט זה ישמש גם כממשק תקין של מודול GSM עם פטל פטל, עם כל הקוד הדרוש להפעלת הפונקציות הבסיסיות של כל טלפון. בעבר בנינו אותו סוג של טלפון נייד פשוט באמצעות Arduino, בדוק כאן
רכיבים נדרשים:
- פטל פי 3 (כל דגם)
- מודול GSM
- LCD בגודל 16x2
- לוח מקשים 4x4 (המשתמש רשאי להשתמש בלוח המקשים הממברנה)
- סיר 10k
- קרש לחם
- חיבור מגשר מחבר
- ספק כוח
- רַמקוֹל
- מיקרופון
- כרטיס ה - SIM
- רַמקוֹל
- מעגל מגבר שמע (אופציונלי)
הסבר עבודה:
בכך פרויקט טלפון נייד פטל Pi, השתמשנו במודול GSM ו- פטל Pi 3 לשלוט בתכונות של המערכת כולה והתממשקות כל הרכיבים במערכת זו. 4x4 אלפאנומריים משמשים נטילה כל הסוג של תשומות כמו: זן מספר טלפון נייד, הודעות מסוג, לבצע שיחה, קבלת שיחה, SMS, שלח, לקרוא SMS וכו ' GSM מודול SIM900A משמש כדי לתקשר עם הרשת שהתקשר והודעות מַטָרָה. יש לנו ממשק גם MIC ורמקול לצלילי שיחה קולית וצלצול ו- LCD 16x2 משמש להצגת הודעות, הוראות והתראות.
אלפא-נומרית היא שיטה להזנת מספרים ואלפביתים באמצעות אותה לוח מקשים. בשיטה זו התממשקנו לוח מקשים 4x4 עם Raspberry Pi וקוד כתוב לקבלת אלפבית, בדוק את הקוד בקוד הקוד שלמטה.
העבודה של פרויקט זה קלה. כל התכונות יבוצעו באמצעות לוח מקשים אלפאנומרי. בדוק את הקוד המלא וסרטון ההדגמה שלמטה כדי להבין נכון את התהליך. כאן אנו נסביר את כל ארבעת התכונות של הפרויקטים להלן.
הסבר על ארבע תכונות של טלפון נייד Raspberry Pi:
1. התקשר:
כדי להתקשר באמצעות הטלפון מבוסס Raspberry Pi שלנו, עלינו ללחוץ על 'C' ואז להזין את המספר הנייד עליו אנו רוצים להתקשר. המספר יוזן באמצעות לוח המקשים האלפאנומרי. לאחר הזנת המספר עלינו שוב ללחוץ על 'C'. כעת Raspberry Pi יעבד לחיבור השיחה למספר שהוזן באמצעות פקודת AT:
ATDxxxxxxxxxx;
2. קבל שיחה:
קל מאוד לקבל שיחה. כאשר מישהו מתקשר למספר ה- SIM של המערכת שלך, שם נמצא במודול ה- GSM, המערכת תציג את ההודעה 'נכנס…' על גבי ה- LCD עם מספר המתקשר הנכנס. עכשיו אנחנו רק צריכים ללחוץ על 'A' כדי להשתתף בשיחה הזו. כשאנחנו לוחצים על 'A', Raspberry Pi ישלח פקודה נתונה למודול GSM:
ATA
3. שלח SMS:
כשאנחנו רוצים לשלוח SMS באמצעות הטלפון מבוסס Raspberry Pi שלנו, עלינו ללחוץ על 'D'. כעת המערכת תבקש מספר נמען, פירושו 'למי' אנו רוצים לשלוח SMS. לאחר הזנת המספר עלינו ללחוץ שוב על 'D' וכעת LCD מבקש הודעה. כעת עלינו להקליד את ההודעה, כמו שאנחנו נכנסים לנייד רגיל, באמצעות לוח המקשים ואז לאחר הזנת ההודעה עלינו ללחוץ שוב על ה- 'D' כדי לשלוח SMS. כדי לשלוח SMS Raspberry Pi שולח פקודה נתונה:
AT + CMGF = 1
ושלח 26 ל- GSM כדי לשלוח SMS.
4. קבל וקרא SMS:
גם תכונה זו פשוטה. בכך, GSM יקבל SMS וישמור אותו בכרטיס ה- SIM. ו- Raspberry Pi עוקב ברציפות אחר חיווי ה- SMS שהתקבל באמצעות UART. בכל פעם שיש הודעה חדשה LCD יציג טקסט "הודעה חדשה" ואז אנחנו רק צריכים ללחוץ על 'B' כדי לקרוא את ה- SMS. אינדיקציה ל- SMS שהתקבלה היא:
+ CMTI: "SM", 6 כאשר 6 הוא מיקום ההודעה שבו הוא נשמר בכרטיס ה- SIM.
כאשר Raspberry Pi מקבל את האינדיקציה 'SMS שהתקבלה' אז היא מחלצת מיקום אחסון SMS ושולחת פקודה ל- GSM כדי לקרוא את ה- SMS שהתקבל. והראה טקסט 'הודעה חדשה' על גבי LCD.
AT + CMGR =
כעת GSM שולח הודעה מאוחסנת ל- Raspberry Pi ואז Raspberry Pi לחלץ SMS ראשי ולהציג אותה על גבי ה- LCD.
הערה: אין קידוד עבור MIC ורמקול.
בדוק את הקוד המלא וסרטון ההדגמה שלמטה כדי להבין נכון את התהליך.
תרשים מעגל והסבר:
סיכות LCD 16x2 RS, EN, D4, D5, D6 ו- D7 מחוברות עם סיכת GPIO מספר 18, 23, 24, 25, 8 ו- 7 של Raspberry Pi בהתאמה. סיכת ה- Rx וה- Tx של מודול GSM מחוברים ישירות לסיכה Tx ו- Rx של Raspberry Pi בהתאמה (יש לחבר אחד את השני את הקרקע של Raspberry Pi ו- GSM). 4x4 לוח מקשים שורות סיכות R1, R2, R3, R4 מקושרות ישירות לסיכת GPIO מספר 12,16, 20, 21 של פטל פי ועמודה סיכה של לוח המקשים C1, C2, C3, C4 מקושרים עם סיכת GPIO מספר 26, 19, 13 ו -6 של פטל פי. MIC מחובר ישירות למיקרופון + ולמיקרופון של מודול GSM והרמקול מחובר ב- sp + ובסיכות למודול GSM בעזרת מעגל מגבר שמע זה, להגברת שמע הפלט. מעגל מגבר שמע זה הוא אופציונלי ותוכלו לחבר ישירות את הרמקול למודול GSM ללא מגבר שמע זה.
הסבר על תכנות:
חלק מתכנות של הטלפון הנייד Raspberry Pi הזה הוא מורכב מעט למתחילים. אנו משתמשים כאן בשפת פיתון לצורך התוכנית. אם אתה מתחיל ב- Raspberry Pi, עליך לבדוק את ההדרכות הקודמות שלנו בנושא תחילת העבודה עם Raspberry Pi והתקנה והגדרת תצורה של Raspbian Jessie OS ב- Pi.
בקוד זה, יצרנו מקשי def (): פונקציה לממשק מקשים פשוטים להזנת מספרים. וכדי להזין אלפבית, יצרנו def alphaKeypad (): כך שניתן להשתמש באותה לוח מקשים להזנת האלפבית גם כן. עכשיו הפכנו את לוח המקשים לריבוי זהה לספריית לוח המקשים של Arduino. באמצעות לוח מקשים זה אנו יכולים להזין תווים ומספר שלם באמצעות 10 מקשים בלבד.
כאילו אם נלחץ על מקש 2 (abc2), הוא יראה 'a' ואם נלחץ עליו שוב הוא יחליף 'a' ל- 'b' ואם שוב נלחץ שלוש פעמים הוא יראה 'c' באותו מקום ב- LCD. אם נחכה זמן מה לאחר לחיצה על המקש, הסמן יעבור אוטומטית למיקום הבא ב- LCD. כעת נוכל להזין את התו או המספר הבא. אותו הליך מוחל על מקשים אחרים.
מקשי def (): עבור j בטווח (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 עבור i בטווח (4): אם gpio.input (ROW) = = 0: ch = MATRIX להחזיר ch תוך (gpio.input (ROW) == 0): לעבור gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" בעוד 1: מקש = 0 ספירה = 0 מקש = לוח מקשים () אם מקש == '1': ind = 0 maxInd = 6 מפתח = '1' getChar (Key, ind, maxInd)……………….
ראשית כל, בסקריפט הפיתון הזה כללנו כמה ספריות נדרשות וסיכות מוגדרות עבור LCD, לוח מקשים ורכיבים אחרים:
ייבא RPi.GPIO כ- gpio ייבא זמן ייבוא סדרתי msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
עכשיו הגיע הזמן לתת כיוון לסיכות:
gpio.set אזהרות (שקר) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (led, gpio.OUT) gpio.setup (buz, gpio.OUT) gpio.setup (m11, gpio.OUT) gpio.setup (m12, gpio.OUT) gpio.setup (כפתור, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. פלט (m12, 0)
ואז אתחל את התקשורת הסדרתית כמו להלן:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, פסק זמן = 2)
עכשיו אנחנו צריכים לכתוב איזו פונקציה לנהיגה ב- LCD. פונקציה def lcdcmd (ch): משמש לשליחת פקודה ל- LCD ו- def lcdwrite (ch): הפונקציה משמשת לשליחת נתונים ל- LCD. יחד עם פונקציות אלה, def lcdclear (): משמש לניקוי LCD, def setCursor (x, y): משמש להגדרת מיקום הסמן ב- LCD ו- def lcdprint (Str): משמש להדפסת מחרוזת על LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) if ch & 0x10 == 0x10: gpio.output (D4, 1)………………
def lcdwrite (ch): gpio.output (RS, 1) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) if ch & 0x10 == 0x10: gpio.output (D4, 1) אם ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) עבור i בטווח (l): lcdwrite (ord (Str)) def set סמן (x, y): אם y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
לאחר מכן עלינו לכתוב כמה פונקציות לשליחת SMS, קבלת SMS, שיחה והשתתפות בשיחה.
פונקצית def call (): משמשת לביצוע השיחה. ופונקציה def קבלת שיחה (נתונים): משמש להצגת ההודעה והמספר הנכנסים על גבי LCD. לבסוף def attendCall (): משמש להשתתף בשיחה.
פונקציית def sendSMS (): משמש לכתיבת ושליחת ההודעה בעזרת פונקציית alphaKeypad () . ופונקציה def קבלת SMS (נתונים): משמש לקבל ולקבל את המיקום של SMS. לבסוף def readSMS (אינדקס): משמש להצגת ההודעה על גבי LCD.
תוכל למצוא את כל הפונקציות לעיל בקוד המופיע להלן.
אז ככה תוכלו להמיר את ה- Raspberry Pi שלכם לטלפון נייד בעזרת מודול GSM. בדוק גם את הטלפון החכם מסך מגע זה של פטל.