- חומרים נדרשים:
- טיסה בקנה מידה SIM900 GSM מודול:
- מודול קול ISD1820:
- תרשים מעגל והסבר:
- תכנות את Arduino שלך:
- עובד:
בעולם המודרני של ימינו כולנו תלויים בטלפונים ניידים כאמצעי התקשורת האלחוטי העיקרי שלנו. אבל, כולנו נתקלנו במצבים שבמהלכם לא נוכל לענות לשיחותינו, שיחות אלה עשויות להיות שיחה אישית חשובה או שיחה עסקית שמשנה חיים, ופשוט היית יכול לפספס את ההזדמנות הזו מכיוון שלא היית מסוגל לענות על כך. להתקשר באותה שעה מסוימת.
פרויקט זה נועד לפתור בעיה זו על ידי יצירת מכונת משיבון אוטומטית באמצעות מודול Arduino ו- GSM. בפעם הבאה כשתעבור למספר טלפון חדש או תצא לטיול עלייה לרגל ארוך או תיהנה מחופשה ראויה פשוט השתמש במכונה זו כדי להקליט את קולך תוך ציון הסיבה להיעדרות וכל שיחותיך ייענו אוטומטית על ידי מכונה זו ועל ידיך יושמע להם קול מוקלט. זה יכול לשמש גם למספרי העסק שלך כדי לענות לשיחות הלקוח שלך בשעות שאינן משרד. נשמע מעניין נכון? אז בואו נבנה את זה..
חומרים נדרשים:
הפרויקט אולי נשמע מעט מסובך אבל הוא ממש קל לבנייה, אתה רק צריך את הרכיבים הבאים
- ארדואינו אונו
- מודול GSM - סים 900 Flyscale
- מודול קול ISD 1820
- מתאם 12 וולט למודול GSM כוח
- סוללה 9V להספקת Arduino
- חוטי חיבור
לפני שנמשיך לפרויקט, בואו נכיר את מודול GSM ומודול הקול ISD 1820
טיסה בקנה מידה SIM900 GSM מודול:
מודולי GSM מרתקים לשימוש במיוחד כאשר הפרויקט שלנו דורש גישה מרחוק. המודולים הללו יכולים לבצע את כל הפעולות שהטלפון הנייד הרגיל שלנו יכול לעשות, כמו לבצע / לקבל שיחה, לשלוח / לקבל SMS, להתחבר לאינטרנט באמצעות GPRS וכו '. אתה יכול גם לחבר מיקרופון ורמקול רגילים למודול זה ולשוחח שיחות לנייד. להלן מספר מדריכים עליהם באמצעות מיקרו-בקר שונה:
- שיחה והודעה באמצעות Arduino ו- GSM Module
- התקשרו וטקסטו באמצעות Raspberry Pi ו- GSM Module
- מודול GSM ממשק עם מיקרו-בקר PIC - בצע וקבל שיחות
כפי שמוצג בתמונה למטה, מודול ה- GSM מגיע עם מתאם USART הניתן לממשק ישיר למחשב באמצעות מודול MAX232 או בעזרת הפינים Tx ו- Rx ניתן לחבר אותו למיקרו-בקר. ניתן גם להבחין בסיכות האחרות כמו MIC +, MIC-, SP +, SP- וכו 'בהן ניתן לחבר מיקרופון או רמקול. ניתן להפעיל את המודול באמצעות מתאם 12 וולט דרך שקע חבית DC רגיל.
הכנס את כרטיס ה- SIM שלך לחריץ של המודול והפעל אותו, עליך להבחין בנורת חשמל דולקת. עכשיו המתן כדקה בערך, וכדאי שתראה נורית אדומה (או כל צבע אחר) מהבהבת פעם אחת בכל 3 שניות. משמעות הדבר היא שהמודול שלך הצליח ליצור קשר עם כרטיס ה- SIM שלך. עכשיו אתה יכול להמשיך בחיבור המודול שלך לטלפון או לכל מיקרו-בקר.
מודול קול ISD1820:
מודול הקול ISD 1820 הוא באמת מודול מגניב שיכול לתבל את הפרויקטים שלך בהודעות קוליות. מודול זה מסוגל להקליט קליפ שמע למשך 10 שניות ואז להשמיע אותו בעת הצורך. המודול עצמו מגיע עם מיקרופון ורמקול (8 אוהם 0.5 וואט) והוא אמור להראות בערך כמו זה שמוצג למטה.
מודול עובד על + 5V והוא יכול להיות מופעל באמצעות מקלות ברג בצד שמאל. יש לו גם שלושה כפתורים בתחתית שהם Rec. כפתור, PlayE. כפתור ו- PlayL. כפתור בהתאמה. באפשרותך להקליט את קולך על ידי לחיצה על ה- Rec. כפתור והפעל אותו באמצעות כפתור PlayE. ה- PlayL ינגן את הקול כל עוד אתה מחזיק את הכפתור. כאשר אנו מתממשקים עם MCU, אנו יכולים להשתמש בסיכות בצד שמאל. פינים אלה הם 3V-5V נסבלים ולכן ניתן להניע אותם ישירות על ידי Arduino / ESP8266. בפרויקט שלנו אנו שולטים בסיכת PLAYE באמצעות סיכת D8 של מודול Arduino שלנו. כדי שנוכל להשמיע את הקול המוקלט כאשר שיחה מזוהה ומתקבלת על ידי מודול ה- GSM.
תרשים מעגל והסבר:
תרשים המעגל השלם של פרויקט מענה אוטומטי למשיבון קולי זה ניתן לעיל. כפי שאתה יכול לראות הקשרים הם ממש פשוטים. אנו מפעילים את מודול ה- GSM עם מתאם 12V 1A ו- Arduino עם סוללה 9V, מודול ה- ISD Voice מופעל באמצעות סיכה +5V של Arduino. כידוע אנו יכולים להקליט כל דבר במודול הקול שלנו על ידי לחיצה על כפתור rec וזה יושמע כאשר לוחצים על PE, יש לשלוח את האודיו הזה למיקרופון של מודול ה- GSM. אז אנו מחברים את סיכת הרמקול של מודול הקול לפין המיקרופון של מודול ה- GSM.
כאן, מודול Arduino ו- GSM מתחבר סדרתי, סיכת ה- Tx של Arduino מחוברת לסיכה 9 וסיכה Rx מחוברת סיכה 10. זה יעזור לארדואינו להקשיב למודול ה- GSM. כאשר מגיעה שיחה למודול ה- GSM הארדואינו יקשיב לו ויבקש ממודול ה- GSM לענות לשיחה. ה- Arduino מוודא שהשיחה פעילה ואז מנגן את ההודעה הקולית המוקלטת במודול הקול על ידי כך שהסיכה 8 (מחובר ל- PE של מודול הקול) תגיע גבוה ל 200 ms.
תכנות את Arduino שלך:
אנו יודעים מהפסקה לעיל מה תפקידו של ארדואינו כאן; עכשיו בואו נסתכל על הקוד שעושה את אותו הדבר. הקוד המלא Arduino של הפרויקט ניתן בתחתית דף זה, עוד כאן אני נשפך הקוד לתוך מפרשיות קטנות כדי להסביר את זה.
לפני שנקדים התקנה נוספת של ספריית GSM, אנא לחץ על קישור ספריית GSM זה של Github כדי להוריד את הספרייה ששימשה בפרויקט זה. תקבל קובץ zip אשר יש להוסיף לספריית Arduino שלך על ידי סקיצה -> כלול Librarey -> הוסף קובץ ZIP .
שלוש השורות הראשונות של הקוד המוצגות למטה משמשות לכלול את הספרייה לקוד שלנו. אנו משתמשים בספרייה הסדרתית ובספריית החוטים מכיוון שאיננו משתמשים בסיכות Rx ו- Tx המוגדרות כברירת מחדל של Arduino כדי לתקשר עם מודול GSM.
#לִכלוֹל
אנו מאפשרים תקשורת טורית בסיכות 9 ו -10 באמצעות השורה הבאה. הדבר מתאפשר על ידי הספרייה הסדרתית של התוכנה שכללנו לעיל.
תוכנה gprs סידורי (9,10); // TX, RX
בתוך פונקציית ההתקנה שלנו, אנו מאתחלים את המסך הטורי בקצב שידור 9600 ומודול ה- GSM מאותחל גם עם 9600 שידור. הסיכה 8 שמפעילה את הקול מוכרזת כסיכת פלט.
הגדרת חלל () {Serial.begin (9600); // צג סדרתי עובד על 9600 baudrate לצורך איתור באגים sim900_init (& gprs, 9600); // מודול GSM עובד על pinMode 9600 baudrate (8, OUTPUT); // סיכה להפעלת Voice Serial.println ("Arduino - מכונת קול אוטומטית"); }
בשלב הבא עלינו ליצור פונקציה שתוכל לקרוא ולהבין מה אומר מודול ה- GSM דרך היציאה הטורית שלו. אם נשתמש בשורת קריאה סדרתית פשוטה כמו "gprs.read ()" כדי לקרוא את ההודעה נקבל אותם בצורה של ערכי עשרוניים ASCII, זה לא יהיה הגיוני בעינינו.
אז הפונקציה הבאה משמשת להמרת ערכים עשרוניים אלה למחרוזות באמצעות אובייקטים מחרוזת ואז לשרשר אותם ליצירת מחרוזת. ערך המחרוזת הסופי מאוחסן במשתנה Fdata , שהוא מסוג מחרוזת וניתן להשתמש בו להשוואה עם כל ערכי המחרוזת.
בטל check_Incoming () {if (gprs.available ()) // אם GSM אומר משהו {Incomingch = gprs.read (); // הקשיבו לו ושמרו במשתנה זה אם (Incomingch == 10 - Incomingch == 13) // אם כתוב רווח (10) או Newline (13) זה אומר שהוא השלים מילה אחת {Serial.println (data); Fdata = נתונים; נתונים = ""; } // הדפיסו את המילה ונקו את המשתנה כדי להתחיל טרי אחר {String newchar = String (char (Incomingch)); // להמיר את הצ'ר למחרוזת באמצעות אובייקטים מחרוזת data = data + newchar; // לאחר ההמרה למחרוזת, בצע שרשור מחרוזות}}}
השורות הבאות משמשות לאיתור באגים, עם הקווים הבאגים האלה אתה יכול לשלוח כל פקודות AT מהצג הסידורי של Arduino ל GSM וגם לראות מה הוא תגובות על צג סדרתי.
אם (Serial.available ()) {// משמש לניפוי באגים ב- gprs.write (Serial.read ()); // משמש לניפוי באגים} // משמש לניפוי באגים
כפי שנאמר קודם, על ארדואינו לבדוק אם מודול ה- GSM מקבל שיחות כלשהן. ניתן לעשות זאת על ידי הפיכת ה- Arduino לבדיקת " RING " מכיוון שמודול ה- GSM יפיק RING במקרה של שיחה על פי רשימת הפקודות של AT. כאשר הוא מוצא שיחה הוא ימתין 5 שניות וישלח את הפקודה " ATA " למודול ה- GSM, הדבר יגרום למודול ה- GSM לענות לשיחה ולאחר המענה הוא יגיב ב"אישור ". הארדואינו שוב ממתין לאישור " אישור " ואז הופך את הפין 8 לגובה 200 ms כדי להשמיע את הקול המוקלט ממודול הקול.
אם (Fdata == "RING") // אם מודול ה- GSM אומר RING {עיכוב (5000); // המתן ל- 5 שניות כדי ליצור 3 עיכוב צלצולים. gprs.write ("ATA \ r \ n"); // ענה לשיחה Serial.println ("מקום התקבל"); // משמש לניפוי באגים בזמן (Fdata! = "OK") // עד שהשיחה נענתה בהצלחה {check_Incoming (); // קרא את מה שמודעת GSM אומרת Serial.println ("משחק הודעה מוקלטת"); // משמש לניפוי באגים // הפעל את עיכוב ההודעה הקולית המשוחזרת (500); digitalWrite (8, HIGH); // עבור עיכוב גבוה (200); // המתן ל- 200 msec digitalWrite (8, LOW); // לך נמוך}
עובד:
ברגע שהקוד והחומרה שלך מוכנים, הגיע הזמן להנאה. הפעל את שני המודולים ולחץ על כפתור REC במודול הקול והקליט הודעה. הודעה זו יכולה להיות באורך של 10 שניות בלבד.
עכשיו תכנת את Arduino שלך באמצעות הקוד הנתון להלן והכנס את מכונית ה- SIM למודול ה- GSM, אתה צריך לחכות לפחות 2 דקות עכשיו כדי שמודול ה- GSM יוכל ליצור קשר עם ספק שירותי הרשת שלך. לאחר שתסיים אתה אמור לראות נורית LED בצבע אדום מהבהבת פעם אחת לכל 3 שניות, זה מציין שה- SIM שלך מוכן לשיחות. כעת אתה יכול לנסות להתקשר לכרטיס SIM זה מכל מספר שאתה אמור לשמוע את ההודעה שהוקלטה לאחר שלוש צלצולים רצופים. העבודה המלאה של הפרויקט מוצגת בסרטון להלן.
טאדאאאאא !!! עכשיו יש לך מכונת מענה אוטומטית לשיחה קולית משלך ופשוט קדימה והשתמש בה במידת הצורך והדהים את החברים והמשפחה בה.
מקווה שנהניתם מהפרויקט ובניתם משהו דומה, אם היו לכם בעיות פרסמו אותם בסעיף ההערות ואני אעזור לכם.