فهرست مطالب:

آموزش Arduino Cellular Shield: 9 مرحله (همراه با تصاویر)
آموزش Arduino Cellular Shield: 9 مرحله (همراه با تصاویر)

تصویری: آموزش Arduino Cellular Shield: 9 مرحله (همراه با تصاویر)

تصویری: آموزش Arduino Cellular Shield: 9 مرحله (همراه با تصاویر)
تصویری: Lesson 12: Using Arduino Programming function and switch | SunFounder Robojax 2024, جولای
Anonim
آموزش سپر سلولی آردوینو
آموزش سپر سلولی آردوینو

سپر سلولی آردوینو به شما امکان می دهد با تلفن همراه خود تماس بگیرید و پیام های متنی ارسال کنید. مغز این سپر SM5100B است که یک ماژول سلولی قوی است که می تواند بسیاری از کارهای اکثر تلفن های همراه استاندارد را انجام دهد. این سپر برای اتصال به شبکه تلفن همراه نیاز به استفاده از سیم کارت دارد. آموزشی که در ادامه می آید یک آموزش استخوان های برهنه برای راه اندازی اولیه سپر و ارسال و دریافت پیام های متنی و تماس های تلفنی است. برای کسب اطلاعات بیشتر در مورد عملکرد ماژول ، حتماً برگه های داده را در صفحه محصول Sparkfun بررسی کنید.

مرحله 1: برو مطالب را دریافت کنید

برو مطالب را بگیر
برو مطالب را بگیر

شما نیاز خواهید داشت:

(x1) سپر سلولی (x1) هدرهای آردوینو قابل جمع شدن (x1) آنتن چهار باندی (x1) Arduino Uno

(توجه داشته باشید که برخی از پیوندهای موجود در این صفحه پیوندهای وابسته هستند. این امر هزینه اقلام را برای شما تغییر نمی دهد. من هر آنچه را که دریافت می کنم در پروژه های جدید سرمایه گذاری می کنم. در صورت تمایل به پیشنهادات دیگر برای تامین کنندگان ، لطفاً به من اجازه دهید بدان.)

مرحله 2: سرصفحه های لحیم کاری

سرصفحه های لحیم کاری
سرصفحه های لحیم کاری
سرصفحه های لحیم کاری
سرصفحه های لحیم کاری
سرصفحه های لحیم کاری
سرصفحه های لحیم کاری

سربرگ ها را در سپر قرار داده و آنها را در جای خود لحیم کنید.

مرحله 3: درج کنید

درج کنید
درج کنید
درج کنید
درج کنید

پین های هدر را در پریزهای آردوینو وارد کنید.

مرحله 4: مجدداً مجدداً لحیم کنید

فروشنده مجدد
فروشنده مجدد

اتصال کابل آنتن به ماژول SM5100B معمولاً زیاد خوب نیست. برای اطمینان از اتصال ، هر یک از اتصالات کابل را به ماژول مجدداً لحیم کنید.

مرحله 5: آنتن را وصل کنید

آنتن را وصل کنید
آنتن را وصل کنید
آنتن را وصل کنید
آنتن را وصل کنید

آنتن را به کابل آنتن بچسبانید.

مرحله 6: سیم کارت را وارد کنید

سیم کارت را وارد کنید
سیم کارت را وارد کنید
سیم کارت را وارد کنید
سیم کارت را وارد کنید
سیم کارت را وارد کنید
سیم کارت را وارد کنید
سیم کارت را وارد کنید
سیم کارت را وارد کنید

سیم کارت را به طور ایمن در سوکت سیم کارت قرار دهید.

مرحله 7: راه اندازی اولیه

مقدار دهی اولیه
مقدار دهی اولیه

کد زیر را روی آردوینو اجرا کنید:

/*

SparkFun Cellular Shield - Passet Through Sample Sketch SparkFun Electronics نوشته شده توسط رایان اوونز 3/توضیحات: این طرح برای اتصال Arduino Duemillanove به Cellular Shield از SparkFun Electronics نوشته شده است. سپر سلولی را می توانید از اینجا خریداری کنید: و پاسخ های ماژول سلولی در ترمینال ارسال می شود. اطلاعات بیشتر در نظرات طرح یافت می شود. برای استفاده از دستگاه ، باید سیم کارت فعال شده ای در محل نگهدارنده سیم کارت قرار داده شود! این طرح از کتابخانه NewSoftSerial نوشته شده توسط Mikal Hart از Arduiniana استفاده می کند. این کتابخانه را می توان در این نشانی اینترنتی بارگیری کرد: https://arduiniana.org/libraries/NewSoftSerial/ این کد تحت مجوز Attribution Creative Commons ارائه شده است. اطلاعات بیشتر را می توانید در اینجا پیدا کنید: https://creativecommons.org/licenses/by/3.0/ (از کد ما آزادانه استفاده کنید! لطفاً به خاطر داشته باشید که در موعد مقرر اعتبار خود را به ما بدهید. با تشکر!) */#include // شامل NewSoftSerial کتابخانه برای ارسال دستورات سریال به ماژول تلفن همراه. #include // برای دستکاری رشته استفاده می شود char incoming_char = 0؛ // کاراکتر ورودی را از Port Port نگه می دارد. نرم افزار سلول اصلی (2 ، 3) ؛ // یک پورت سریال جعلی ایجاد کنید. پین 2 پین Rx است ، پین 3 پین Tx است. void setup () {// مقداردهی اولیه پورت های سریال برای ارتباط. Serial.begin (9600)؛ cell.begin (9600) ؛ //بیایید شروع کنیم! Serial.println ("راه اندازی ارتباط SM5100B …") ؛ } void loop () {// اگر یک کاراکتر از ماژول سلولی وارد شود… if (cell.available ()> 0) {incoming_char = cell.read ()؛ // کاراکتر را از پورت سریال تلفن همراه دریافت کنید. Serial.print (incoming_char) ؛ // کاراکتر ورودی را در ترمینال چاپ کنید. } // اگر یک کاراکتر از ترمینال به آردوینو می آید … if (Serial.available ()> 0) {incoming_char = Serial.read ()؛ // دریافت کاراکتر از ترمینال if (incoming_char == '~') // اگر تایلد باشد … incoming_char = 0x0D؛ //… تبدیل به یک کالسکه به صورت دیگر اگر (incoming_char == '^') // اگر این یک مراقبت بالا است… incoming_char = 0x1A //… تبدیل به ctrl-Z cell.print (incoming_char)؛ // ارسال کاراکتر به ماژول سلولی. Serial.print (incoming_char) ؛ // آن را به پایانه بازگردانید}} / * SM5100B مرجع Quck برای مجموعه فرمان AT * مگر اینکه دستورات AT ذکر شده با فشار دادن کلید "enter" خاتمه یابد. 1.) مطمئن شوید که نوار GSM مناسب برای کشور شما انتخاب شده است. برای ایالات متحده ، نوار باید روی 7 تنظیم شود. برای تنظیم باند ، از این دستور استفاده کنید: AT+SBAND = 7 2.) پس از روشن شدن آردوینو با سپر نصب شده ، بررسی کنید که ماژول سیم کارت را خوانده و تشخیص دهد. با یک پنجره اصلی باز شده و روی پورت آردوینو و 9600 buad ، آردوینو را روشن کنید. دنباله راه اندازی باید چیزی شبیه به این باشد: راه اندازی ارتباط SM5100B … +SIND: 1 +SIND: 10 ، "SM" ، 1 ، "FD" ، 1 ، "LD" ، 1 ، "MC" ، 1 ، "RC" ، 1 ، "ME" ، 1 ارتباط با ماژول پس از نمایش اولین خط شروع می شود. خط دوم ارتباط ، +SIND: 10 ، به ما می گوید که آیا ماژول می تواند سیم کارت را ببیند یا خیر. اگر سیم کارت شناسایی شود ، هر قسمت دیگر 1 است. اگر سیم کارت شناسایی نشده است هر فیلد دیگر 0. است.) قبل از شروع ارسال دستورات منتظر اتصال شبکه باشید. پس از پاسخ +SIND: 10 ، ماژول به طور خودکار تلاش می کند تا به شبکه متصل شود. منتظر بمانید تا دوباره پاسخ های زیر را دریافت کنید: +SIND: 11 +SIND: 3 +SIND: 4 پاسخ +SIND از ماژول سلولی وضعیت ماژول ها را نشان می دهد. در اینجا خلاصه ای از معانی پاسخ ارائه شده است: 0 سیم کارت حذف شده 1 سیم کارت وارد شده است 2 ملودی زنگ 3 ماژول AT تا حدی آماده است 4 ماژول AT کاملاً آماده است 5 شناسه تماس های آزاد شده 6 تماس آزاد شده که ID = 7 سرویس شبکه است در دسترس برای یک تماس اضطراری 8 شبکه از بین می رود 9 صدا ON 10 وضعیت هر دفترچه تلفن را پس از عبارت اولیه 11 نشان می دهد ثبت نام در شبکه پس از ثبت نام در شبکه می توانید تعامل را آغاز کنید. در اینجا چند دستور ساده و مفید برای شروع وجود دارد: برای برقراری تماس: فرمان AT-ATDxxxyyyzzzz شماره تلفن با فرمت: (xxx) yyy-zzz سعی کنید ---- cell.print ("ATDxxxyyyzzzz") ؛ در صورت برقراری تماس تلفنی ، حتماً به برگه اطلاعات دستگاهها مراجعه کنید تا میکروفون و بلندگو را به سپر متصل کنید. برای ارسال پیام txt: فرمان AT - AT+CMGF = 1 این دستور حالت پیام متنی را روی "متن" تنظیم می کند. فرمان AT = AT+CMGS = "xxxyyyzzzz" (بازگشت کالسکه) "متن برای ارسال" (CTRL+Z) این دستور برای توصیف کمی گیج کننده است. شماره تلفن ، با فرمت (xxx) yyy-zzzz داخل دو نقل قول قرار می گیرد. پس از بستن نقل قول ها ، "enter" را فشار دهید. سپس متن مورد نظر را برای ارسال وارد کنید. با ارسال CTRL+Z فرمان AT را پایان دهید. این کاراکتر از ترمینال آردوینو ارسال نمی شود. از یک برنامه ترمینال جایگزین مانند Hyperterminal ، Tera Term ، Bray Terminal یا X-CTU استفاده کنید. ماژول SM5100B می تواند خیلی بیشتر از این کار کند! برای اطلاعات بیشتر در مورد ماژول ، برگه های داده را در صفحه محصول بررسی کنید.*/پورت سریال را در ترمینال باز کنید. در Mac این امر با تایپ کردن انجام می شود: screen /dev/tty.usbmodemfa131 9600 (آدرس سریال آردوینو را با tty.usbmodemfa131 جایگزین کنید) منتظر بمانید تا دنباله زیر بازگردد: شروع ارتباط 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 استفاده کنید:

اگر می خواهید کد نمونه را برای دریافت متن اجرا کنید ، یک LED را به پین 8 وصل کنید و آن را به صورت سری با مقاومت 220 اهم به زمین وصل کنید.

برای ارسال پیام متنی از آموزش ماژول سلولی Tronixstuff دیدن کنید و از کد مثال 26.5 استفاده کنید:

یکی از دستورات زیر را به ماژول تلفن همراه خود ارسال کنید:

// LED را #a1 روشن می کند

// LED را #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: // // // ****************************************** ******************************** #شامل #تعریف #BUFFSIZ 90 // تنظیم آرایه بافر char at_buffer [BUFFSIZ] ؛ char buffidx؛ // متغیرهای وضعیت شبکه int network_registered؛ int network_AT_ready؛ // متغیرهای حالت کد int firstTimeInLoop = 1؛ int firstTimeInOtherLoop = 1 ؛ int x؛ // کاراکتر ورودی را از Port Port نگه می دارد. char incoming_char = 0؛ // یک پورت سریال جعلی ایجاد کنید. پین 2 پین Rx است ، پین 3 پین Tx است. نرم افزار سلول اصلی (2 ، 3) ؛ void setup () {// مقداردهی اولیه پورت سریال Arduino برای اشکال زدایی. Serial.begin (9600)؛ // پورت سریال مجازی را برای صحبت با تلفن اولیه کنید. cell.begin (9600) ؛ //سلام دنیا. Serial.println ("راه اندازی ارتباط SM5100B …") ؛ تاخیر (1000) ؛ // تنظیم وضعیت اولیه شبکه network_registered = 0؛ network_AT_ready = 0؛ } // خواندن رشته های AT از سپر سلولی void readATString (void) {char c؛ buffidx = 0؛ // شروع از begninning برای (x = 0؛ x 0) {c = cell.read ()؛ if (c == -1) {at_buffer [buffidx] = '\ 0'؛ برگشت؛ } if (c == '\ n') {ادامه؛ } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'؛ برگشت؛ } at_buffer [buffidx ++] = c؛ }}} // پردازش رشته های AT باطل 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 Ready") ؛ }} void loop () { / * در صورت فراخوانی برای اولین بار ، حلقه کنید تا شبکه و 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 cell.println ("ATA") تلفن پاسخ دهید ؛ firstTimeInOtherLoop = 0 ؛ }}}

تصویر
تصویر

آیا این را مفید ، سرگرم کننده یا سرگرم کننده می دانید؟ madeineuphoria را دنبال کنید تا جدیدترین پروژه های من را ببینید.

توصیه شده: