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

הדרכה למגן הסלולר של ארדואינו: 9 שלבים (עם תמונות)
הדרכה למגן הסלולר של ארדואינו: 9 שלבים (עם תמונות)

וִידֵאוֹ: הדרכה למגן הסלולר של ארדואינו: 9 שלבים (עם תמונות)

וִידֵאוֹ: הדרכה למגן הסלולר של ארדואינו: 9 שלבים (עם תמונות)
וִידֵאוֹ: הדרכה מקוונת (וובינר) בנושא בטיחות בעבודה בגובה 2024, יולי
Anonim
הדרכת מגן הסלולר של ארדואינו
הדרכת מגן הסלולר של ארדואינו

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

שלב 1: לך קנה דברים

לך קנה דברים
לך קנה דברים

אתה תצטרך:

(x1) מגן סלולרי (x1) כותרות Arduino הניתנות לערימה (x1) אנטנת Quad -band (x1) Arduino Uno

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

שלב 2: כותרות הלחמה

כותרות הלחמה
כותרות הלחמה
כותרות הלחמה
כותרות הלחמה
כותרות הלחמה
כותרות הלחמה

הכנס את הכותרות לתוך המגן והלחם אותן במקומן.

שלב 3: הכנס

לְהַכנִיס
לְהַכנִיס
לְהַכנִיס
לְהַכנִיס

הכנס את סיכות הכותרת לשקעים על הארדואינו.

שלב 4: משחזר

משחזר
משחזר

החיבור של כבל האנטנה למודול SM5100B בדרך כלל אינו טוב במיוחד. פתח מחדש כל אחד מחיבורי הכבל למודול כדי להבטיח קישוריות.

שלב 5: חבר את האנטנה

חבר את האנטנה
חבר את האנטנה
חבר את האנטנה
חבר את האנטנה

השחילו את האנטנה לכבל האנטנה.

שלב 6: הכנס כרטיס SIM

הכנס כרטיס SIM
הכנס כרטיס SIM
הכנס כרטיס SIM
הכנס כרטיס SIM
הכנס כרטיס SIM
הכנס כרטיס SIM
הכנס כרטיס SIM
הכנס כרטיס SIM

הכנס את כרטיס ה- SIM בצורה מאובטחת לשקע כרטיס ה- SIM.

שלב 7: אתחל

לְאַתחֵל
לְאַתחֵל

הפעל את הקוד הבא ב- Arduino:

/*

SparkFun Cellular Shield - מעבר סקיצה לדוגמא SparkFun Electronics נכתב על ידי Ryan Owens 3/תיאור: סקיצה זו נכתבת לממשק Arduino Duemillanove למגן סלולרי מ SparkFun Electronics. ניתן לרכוש את המגן הסלולרי כאן: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 בסקיצה זו מועברים פקודות סדרתיות מתוכנית מסוף למודול הסלולרי SM5100B; ותגובות מהמודול הסלולרי מתפרסמות במסוף. מידע נוסף נמצא בהערות הסקיצה. יש להכניס כרטיס SIM מופעל למחזיק כרטיס ה- SIM על הלוח על מנת להשתמש במכשיר! מערכון זה משתמש בספריית NewSoftSerial שנכתבה על ידי מיקל הארט מארדואניאנה. ניתן להוריד את הספרייה בכתובת URL זו: https://arduiniana.org/libraries/NewSoftSerial/ קוד זה מסופק תחת רישיון הייחוס של Creative Commons. מידע נוסף ניתן למצוא כאן: https://creativecommons.org/licenses/by/3.0/ (השתמש בקוד שלנו באופן חופשי! אנא זכור לתת לנו אשראי היכן שהוא מגיע. תודה!) */#Include // כלול את NewSoftSerial ספרייה לשלוח פקודות טוריות למודול הסלולרי. #include // משמש למניפולציות מחרוזות char incoming_char = 0; // יחזיק את הדמות הנכנסת מהנמל הסידורי. SoftwareSerial cell (2, 3); // צור יציאה טורית 'מזויפת'. סיכה 2 היא סיכת Rx, סיכה 3 היא סיכת ה- Tx. הגדרת void () {// אתחל יציאות טוריות לתקשורת. Serial.begin (9600); cell.begin (9600); // בואו נתחיל! Serial.println ("הפעלת תקשורת SM5100B …"); } לולאת void () {// אם נכנסת תו מהמודול הסלולרי … if (cell.available ()> 0) {incoming_char = cell.read (); // קבל את הדמות מהיציאה הסדרתית הסלולרית. Serial.print (incoming_char); // הדפס את התו הנכנס למסוף. } // אם תו מגיע מהמסוף ל- Arduino … if (Serial.available ()> 0) {incoming_char = Serial.read (); // קבל את התו שמגיע מהמסוף אם (incoming_char == '~') // אם זה tilde … incoming_char = 0x0D; //… להמיר להחזרת כרכרה אחרת אם (incoming_char == '^') // אם מדובר ב- caret למעלה … incoming_char = 0x1A; //… להמיר ל- ctrl-Z cell.print (incoming_char); // שלח את הדמות למודול הסלולרי. Serial.print (incoming_char); // מהדהד אותו בחזרה למסוף}} / * SM5100B הפניה לקאק למערך הפקודות AT * אלא אם כן צויינו פקודות AT כלשהן על ידי לחיצה על מקש 'enter'. 1.) ודא שנבחרה פס GSM המתאים למדינה שלך. בארה"ב יש להגדיר את הלהקה על 7. כדי להגדיר את הלהקה, השתמש בפקודה הבאה: AT+SBAND = 7 2.) לאחר הפעלת הארדואינו כשהמגן מותקן, ודא שהמודול קורא ומזהה את כרטיס ה- SIM. עם חלון חיצוני פתוח ומוגדר לנמל Arduino ו- 9600 באד, הדלק את הארדואינו. רצף ההפעלה צריך להיראות בערך כך: הפעלת תקשורת SM5100B … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 התקשורת עם המודול מתחילה לאחר הצגת השורה הראשונה. קו התקשורת השני, +SIND: 10, אומר לנו אם המודול יכול לראות כרטיס SIM. אם כרטיס ה- SIM מזוהה כל שדה אחר הוא 1; אם כרטיס ה- SIM אינו מזוהה כל שדה אחר הוא 0. 3.) המתן לחיבור לרשת לפני שתתחיל לשלוח פקודות. לאחר תגובת +SIND: 10 המודול יתחיל באופן אוטומטי לנסות להתחבר לרשת. המתן עד שתקבל את הטלפונים הבאים: +SIND: 11 +SIND: 3 +SIND: 4 תגובת +SIND מהמודול הסלולרי מספרת את מצב המודולים. להלן פירוט מהיר של משמעויות התגובה: 0 כרטיס SIM הוסר 1 כרטיס SIM הוכנס 2 מנגינת צלצול 3 מודול AT מוכן חלקית 4 מודול AT מוכן לגמרי 5 מזהה שיחות שפורסמו 6 שידור משוחרר שהזהות שלו = 7 שירות הרשת הוא זמין לשיחת חירום. להלן מספר פקודות פשוטות ושימושיות להתחלת העבודה: לביצוע שיחה: פקודת AT-ATDxxxyyyzzzz מספר טלפון עם הפורמט: (xxx) yyy-zzz נסה ---- cell.print ("ATDxxxyyyzzzz"); אם אתה מבצע שיחת טלפון, הקפד להפנות את גליון הנתונים של המכשירים כדי לחבר מיקרופון ורמקול למגן. לשליחת הודעת txt: הפקודה AT - AT+CMGF = 1 פקודה זו קובעת את מצב הודעת הטקסט ל'טקסט '. הפקודה AT = AT+CMGS = "xxxyyyzzzz" (החזרת עגלה) 'טקסט לשליחה' (CTRL+Z) פקודה זו מבלבלת מעט לתאר. מספר הטלפון, בפורמט (xxx) yyy-zzzz נכנס למרכאות כפולות. לחץ על 'enter' לאחר סגירת הציטוטים. לאחר מכן הזן את הטקסט שיש לשלוח. סיים את הפקודה AT על ידי שליחת CTRL+Z. לא ניתן לשלוח דמות זו מהמסוף של ארדואינו. השתמש בתוכנית מסוף חלופית כמו Hyperterminal, Tera Term, Bray Terminal או X-CTU. מודול SM5100B יכול לעשות הרבה יותר מזה! עיין בדפי הנתונים בדף המוצר למידע נוסף על המודול.*/פתח את היציאה הטורית במסוף. במחשב Mac זה מתבצע על ידי הקלדת: screen /dev/tty.usbmodemfa131 9600 (החלף tty.usbmodemfa131 בכתובת הסידורית של Arduino) המתן עד שהרצף הבא יוחזר: הפעלת תקשורת SM5100B … +SIND: 3 +SIND: 4 +SIND: 11 (אם רצף זה אינו מוחזר בדוק את קודי השגיאה המופיעים בתחתית הקוד למעלה, ונתח באגים כראוי. ייתכן שיהיה עליך להגדיר את המודול לשימוש בצפון אמריקה - ראה להלן - לפני שהוא נרשם לרשת (כלומר +SIND 11)) שלח את הפקודות הבאות ליציאה הטורית: שלח את זה לשימוש צפון אמריקאי: AT+SBAND = 7 הגדר את השעה הנוכחית - yy/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "שלח שיחת מבחן: ATD4155551212

שלב 8: הודעות טקסט

הודעות טקסט
הודעות טקסט

הורד והתקן את SerialGSM בספריית ה- Arduino שלך.

לשליחת הודעת טקסט בקר במדריך הסלולר Tronixstuff והשתמש בקוד לדוגמה 26.3:

אם ברצונך להריץ את קוד הדוגמא לקבלת טקסט, חבר נורית לפין 8 והנח אותו בסדרה עם נגד 220 אוהם לקרקע.

לשליחת הודעת טקסט בקר במדריך הסלולר Tronixstuff והשתמש בקוד לדוגמה 26.5:

שלח אחת מהפקודות הבאות למודול הסלולרי שלך:

// מדליק את הנורית #a1

// מכבה את הנורית #a0

שלב 9: קול

קוֹל
קוֹל
קוֹל
קוֹל
קוֹל
קוֹל

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

כדי לאתחל שיחה קולית העלה את הקוד הבא:

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

// התקשר // // קוד חיץ המבוסס על: // // //********************************************************************************** #include #define BUFFSIZ 90 //Set up buffer array char at_buffer[BUFFSIZ]; char buffidx; //Network state variables int network_registered; int network_AT_ready; //Code state variables int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; //Will hold the incoming character from the Serial Port. char incoming_char=0; //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. SoftwareSerial cell(2, 3); void setup() { //Initialize Arduino serial port for debugging. Serial.begin(9600); //Initialize virtual serial port to talk to Phone. cell.begin(9600); //Hello World. Serial.println("Starting SM5100B Communication…"); delay(1000); //Set initial network state network_registered = 0; network_AT_ready = 0; } //Read AT strings from the cellular shield void readATString(void) { char c; buffidx= 0; // start at begninning for (x = 0; x 0) { c=cell.read(); if (c == -1) { at_buffer[buffidx] = '\0'; return; } if (c == '\n') { continue; } if ((buffidx == BUFFSIZ - 1) || (c == '\r')){ at_buffer[buffidx] = '\0'; return; } at_buffer[buffidx++]= c; } } } //Process the AT strings void ProcessATString() { if(strstr(at_buffer, "+SIND: 8") != 0) { network_registered = 0; Serial.println("network Network Not Available"); } if(strstr(at_buffer, "+SIND: 11") != 0) { network_registered=1; Serial.println("network Registered"); } if(strstr(at_buffer, "+SIND: 4") != 0) { network_AT_ready=1; Serial.println("network AT Ready"); } } void loop() { /* If called for the first time, loop until network and AT is ready */ if(firstTimeInLoop == 1) { firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) { readATString(); ProcessATString(); } } //LET'S MAKE A PHONE CALL! if(firstTimeInOtherLoop == 1){ //Change the 10 digit phone number to whatever you wish cell.println("ATD4155551212"); firstTimeInOtherLoop = 0; } }

To receive a voice call upload the following code

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

// ANSWER A CALL // // BUFFERING CODE BASED UPON: // // // ******************************************* ********************************* #include #define BUFFSIZ 90 // הגדר מאגר מערך char at_buffer [BUFFSIZ]; חרוסת buffidx; // משתני מצב רשת int network_registered; int network_AT_ready; // משתני מצב קוד int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // יחזיק את הדמות הנכנסת מהנמל הסידורי. char incoming_char = 0; // צור יציאה טורית 'מזויפת'. סיכה 2 היא סיכת Rx, סיכה 3 היא סיכת ה- Tx. SoftwareSerial cell (2, 3); הגדרת void () {// אתחל יציאה טורית של Arduino לצורך איתור באגים. Serial.begin (9600); // אתחל יציאה טורית וירטואלית כדי לדבר עם טלפון. cell.begin (9600); //שלום עולם. Serial.println ("הפעלת תקשורת SM5100B …"); עיכוב (1000); // הגדר מצב רשת ראשוני network_registered = 0; network_AT_ready = 0; } // קרא מחרוזות AT מהחלל המגן הסלולרי readATString (void) {char c; buffidx = 0; // התחל בהתחלה עבור (x = 0; x 0) {c = cell.read (); אם (c == -1) {at_buffer [buffidx] = '\ 0'; לַחֲזוֹר; } אם (c == '\ n') {המשך; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; לַחֲזוֹר; } at_buffer [buffidx ++] = c; }}} // עיבד את מחרוזות AT void ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("רשת הרשת לא זמינה"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("רשומה ברשת"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("רשת AT מוכנה"); }} לולאת void () { / * אם מתקשרים בפעם הראשונה, לולאה עד שהרשת ו- AT מוכנים * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// חפש שיחה נכנסת if (strstr (at_buffer, "+CPAS: 3")! = 0) {// ענה לטלפון cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}

תמונה
תמונה

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

מוּמלָץ: