آموزش آردوینوپروژه های آردوینو

ساخت موبایل ساده با برد آردوینو و ماژول GSM Sim900

سلام. ساخت موبایل ساده با برد آردوینو و ماژول GSM Sim900 را آماده کردیم.

برقراری تماس و ارسال SMS با آردوینو و سیم 900

بعضی از افراد استفاده از ماژول GSM برای تماس و پیامک را سخت و دشوار میدانند. در حالیکه این کار بسیار ساده است. در این پروژه آردوینو ما میخواهیم با استفاده از ماژول sim900 یک تلفن همراه ساده بسازیم که میتوانیم تماس بگیریم و دریافت کنیم همچنین اس ام اس بدهیم و بگیریم. این پروژه Arduino دارای میکروفن و بلندگو است.

در این پروژه تلفن همراه آردوینو، ما از Arduino Uno برای کنترل ویژگی های کل سیستم استفاده کرده ایم. از یک صفحه کلید 4×4 برای گرفتن ورودی های مختلف مثل ارسال و دریافت پیام و تماس و تایپ متن پیام استفاده میشود. ماژول سیم 900 برای برقراری ارتباط با شبکه استفاده میشود. همچنین از بلندگو و میکروفن برای صدای مکالمه و زنگ استفاده کرده ایم. از ال سی دی کاراکتری نیز برای نمایش پیام ها و … استفاده میشود.

فیلم زیر به شما در درک نحوه کار این پروژه کمک شایانی میکند.

پیشنهاد میکنم پروژه خانه هوشمند با SMS و آردوینو را نیز مشاهده کنید.

دستورالعمل ها و هشدارها استفاده می شود. Alphanumeric روشی است برای وارد کردن اعداد و حروف هر دو با استفاده از یک صفحه کلید استفاده میشود.

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

امکانات تلفن همراه مبتنی بر Arduino

نحوه کار پروژه موبایل با آردوینو

1. برقراری تماس: برای برقراری تماس با استفاده از تلفن مبتنی بر Arduino ، باید “C” را فشار داده و سپس باید شماره موبایل را که می خواهیم با آن تماس برقرار کنیم، وارد کنیم. با استفاده از صفحه کلید شماره وارد می شود. پس از وارد کردن شماره ، مجدداً باید “C” را فشار دهیم. اکنون آردوینو برای برقراری تماس با شماره وارد شده خودش دستور زیر را اجرا میکند.

ATDxxxxxxxxxx; <Enter>     xxxx شماره مورد نظر شما است

2. دریافت تماس: دریافت تماس بسیار آسان است. وقتی شخصی به شماره سیم کارت شما، که در ماژول GSM قرار داده شده است، تماس می گیرد، سیستم شما پیام “Incoming…” را روی ال سی دی کاراکتری به همراه شماره فرد نشان می دهد. برای جواب دادن به این تماس، فقط باید “A” را فشار دهیم. هنگامی که “A” را فشار می دهیم ، Arduino دستور زیر را به ماژول GSM ارسال می کند:

ATA <enter>

3. ارسال پیامک: وقتی می خواهیم با استفاده از تلفن آردوینو پیامکی بفرستیم، باید “B” را فشار دهیم. سیستم شماره گیرنده را درخواست می کند، یعنی “به چه کسی” می خواهیم اس ام اس ارسال کنیم. بعد از وارد کردن شماره ، باید “D” را فشار دهیم و اکنون ال سی دی از شما متن پیام را می خواهد. حال باید با استفاده از صفحه کلید، پیام را تایپ کنیم، و بعد از وارد کردن پیام باید دوباره “D” را فشار دهیم تا پیام کوتاه ارسال شود. سپس رزبری پای خودش این دستور را پردازش میکند و به ماژول سیم 900 میفرستد.

AT+CMGF=1 <enter>
AT+CMGS=”xxxxxxxxxx” <enter>   xxxx شماره مورد نظر شماست

4. دریافت و خواندن پیام کوتاه: این ویژگی نیز ساده است. ماژول Sim 900 پیامکی را دریافت کرده و آن را در سیم کارت ذخیره می کند. و Arduino بطور مداوم وضعیت پیامک های دریافتی را از طریق UART نظارت می کند. ما فقط باید “D” را فشار دهیم تا اس ام اس را بخوانیم.

+CMTI: “SM” <SMS stored location>        
+CMTI: “SM”,6 شش مکانی است که پیامک در سیم کارت قرار گرفته است

هنگامی که آردوینو این نشانه را دریافت کند، آنگاه به محل ذخیره پیامک میرود و آن را استخراج میکند و متن آن را در ال سی دی نمایش میدهد.

AT+CMGR=<SMS stored location><enter>
AT+CMGR=6

مدار پروژه موبایل با آردوینو

شماتیک مدار این پروژه ساده است. پین های ال سی دی را مانند تصویر به آردوینو متصل کنید. پین های Rx و Tx ماژول GSM به ترتیب مستقیما به پین D3 و D2 آردوینو وصل کنید. پین های ردیف های صفحه کلید یعنی R1, R2, R3, R4 مستقیماً به پین های شماره 11،10 ، 9 ، 8 از Arduino متصل میشوند. میکروفن به طور مستقیم به پین ها mic+ و mic- ماژول سیم 900 متصل میشود. اسپیکر نیز به پین SP+ و SP- ماژول SIM900 متصل میشود.

مطلب پیشنهادی:  ساخت رادار سونار با آردوینو و اندروید

برقراری تماس و ارسال SMS با Arduino و سیم 900

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

قطعات مورد نیاز

  1. برد آردوینو Uno
  2. ماژول GSM SIM900
  3. ال سی دی کاراکتری 16*2
  4. صفحه کلید 4×4
  5. بلندگو
  6. میکروفن
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

برنامه نویسی ارسال و دریافت SMS با آردوینو

بخشی از برنامه نویسی این پروژه برای مبتدیان کمی پیچیده است. کد کامل پروژه در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا برخی از قسمت های کد Arduino را توضیح میدهیم.

برای ارتباط صحیح صفحه کلید با آردوینو برای وارد کردن شماره ها و پیام ها، باید کتابخانه آن را فراخوانی کنیم. همچنین همانطور که گفته شد ما از یک صفحه کلید برای وارد کردن اعداد و حروف استفاده میکنیم. بنابراین برای وارد کردن حروف الفبای انگلیسی ما تابع void alfakey () را ایجاد میکنیم. سپس میتوانیم با استفاده از 10 کلید هر کاراکتر یا عددی را وارد کنیم.

اگر کلید 2 را دو بار فشار دهیم اول a و سپس b را نمایش میدهد. و اگر دیگر دکمه را فشار ندهیم همان b ثبت میشود و اگر بار دیگر فشار دهیم c نمایش داده میشود. (مانند گوشی های دکمه ای قدیمی که با کیبورد عددی، حروف نیز تایپ میشد)

#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char hexaKeys[ROWS][COLS] = 
{
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {11, 10, 9, 8}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {7, 6, 5, 4}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void alfakey()
{
 int x=0,y=0;
 int num=0;
  while(1)
  {
    lcd.cursor();
    char key=customKeypad.getKey();
    if(key)
    {
       if(key=='1')
       {
         num=0;
         lcd.setCursor(x,y);
         .... .....
         ........ ....

به غیر از صفحه کلید، ما بسیاری از توابع دیگر مانند call void () برای ویژگی تلفن ، sms void () برای ویژگی پیام رسانی ، void lcd_status () برای نمایش وضعیت روی LCD و gsm_init () برای اولیه سازی ماژول GSM و غیره ایجاد کرده ایم.

با بارگذاری کد و انجام اتصالات مدار، ما به راحتی یک تلفن ساده را راه اندازی میکنیم. به راحتی میتوانیم با هرجا تماس بگیریم، از هر جا با ما تماس بگیرند و هر پیامی را ارسال و دریافت کنیم.

4.1 (14 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

برای ارسال تصاویر از انجمن سایت استفاده کنید.

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

51 نظر

  1. سلام موقع آپلود سورس کد به آردینو ، ارور زیر میاد میشه راهنمایی کنید مشکل چیه؟ Arduino: 1.8.19 (Windows 10), Board: “Arduino Uno”

    mobile:31:10: fatal error: Keypad.h: No such file or directory
    #include
    compilation terminated.
    exit status 1
    Keypad.h: No such file or directory
    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    1. سلام عزیز
      کتابخانه keypad را نصب کنید

  2. سلام دوباره
    سوال بعدی من اینه گه اگر سیم کارت شارژ برا برقراری تماس نداشته باشه باید چکار کنه ؟ آیا میشه این رو هم به برنامه نویسی اضافه کنیم که بتونیم با همین پروژه شارژ هم خریداری کرد؟

  3. سلام جناب آیا میشه از LCD گرافیکی یا نظیر این LCD ها هم استفاده کرد
    چون یک مقدار این LCD کاراکتری زیبایی پروژه رو از بین میبره و اگه بشه یک مدل LCD با شکل و شمایل بهتر و بزرگتر استفاده کرد بهتر میشه

    1. سلام عزیز
      بله میشه استفاده کرد در کد باید تفاوت زیادی ایجاد کنید

  4. سلام اگه قصد ساخت برد اندروید رو داشته باشیم که هم ماژول جی پی اس و هم سیم کارت خور باشه که بتونیم برنامه ای که الان با گوشی کار میکنیم روی این برد نصب بشه چکار باید کرد برنامه ما در مورد رانندگان تاکسی تلفنی که هم از تاکسیمتر برنامه دارند استفاده میکنند وهم اینترنتی سرویس میگیرند چون گوشی داغ میکنه و زود باطری تموم میکنه در این مورد راهکار چیه لطفا راهنمایی بفرمایید باتشکر

  5. سلام من مدار رو مونتاژ کردم تماسش کار میکنه ولی ارسال پیام رو انجام نمیده

    1. سلام عزیز
      برای یادگیری ارسال پیامک و برقراری تماس با آردوینو و sim800l میتونید دوره آردوینو را مشاهده کنید.

  6. به جای ماژول GSM SIM900 میشه از چیز کم قیمت تری استفاده کرد؟

    1. سلام وقت بخیر
      بله میشه استفاده کرد نیاز به تغییر جزئی در کد هست

  7. سلام لطفا یک دوره اموزش برای sim800 بزارید. چون خیلی بیشتر از sim900 کاربرد داره و sim900 هم دیگه تولید نمیشه و کمیاب هست. بعد sim800l هم خیلی کاربردیه و ارزونه.

  8. سلام جناب ببخشید دکمه اینتر کجاست؟؟؟
    واقعا ممنون که رایگان گذاشتید

    1. دکمه اینتر روی کیبورد هست
      خواهش میکنم عزیز

  9. سلام.واقعا دستتون دردنکنه که اینو رایگان گذاشتین .خیلی ممنون نمی دونین من چقدر خوشحال شدم.

    1. سلام جناب. خوشحالم که براتون مفید بوده.

  10. سلام و عرض ادب.
    جناب مهندس رحیمی عزیز .ارزش محبت و لطف شما بسیار پسندیده وقابل ستایش هست.
    خدا قوت
    گلستان

    1. سلام جناب، بسیار ممنونم از لطف شما

    2. سلام‌
      میشه از اردینو attiny85 استفاده کرد ؟
      در صورتی ک فقط از ماژول gsm استفاده کنیم
      مث یه کار اتومات با یه پیامک ارسالی
      لطفا راهنمایی کنید

  11. می شود عکس دقیق ماژولی را که خودتان استفاده کرده اید بفرستید
    ممنون

    1. سلام جناب. عکس ماژول استفاده شده در تصاویر مطلب موجود هست و نام دقیق آن sim900 هست.

    1. سلام جناب. انواع فروشگاه های اینترنتی قطعات الکترونیکی این ماژول رو موجود دارند.

    2. نمیتونیم نام فروشگاه قطعات الکترونیکی بدیم.

    3. این ماژول مشابه نداره؟ اگر داره نامش را دقیق بگویید و عکسش را بفرستید.

    4. سلام جناب. ماژول های دیگه sim800 هم قابل استفاده هستند اما نیاز به تغییرات در کد و شماتیک دارند.

  12. سلام این پروژه را می توان با ماژول sim 800l درست کرد ؟؟؟؟؟؟؟؟

    1. سلام جناب. با ماژول مورد نظر شما تست نشده.

    2. جناب عرض کردم با ماژول مورد نظر شما تست نشده.

    3. اره میشه هیچ تغییری نیاز نیست فقط باید راجبش تحقیق کتید

    1. سلام عزیز. با نرم افزار winrar باز کنید.

    2. بلدم زیپ باز کنم فایل ایراد داشت

    3. تست کردم جناب، فایل سالمه چه ارورری دریافت میکنید ؟

    4. جناب من چک کردم مشکلی نداشته شما یک بار دیگه فایل رو دانلود کنید و حتما با نرم افزار winrar باز کنید.

    5. نمی شه به ایمیل من ارسال کنید اونی که تست کردی

    6. بله الان به ایمیلتون ارسال کردم

    7. سلام
      نرم افزار winrar رو به آخرین ورژن آپدیت کنید.
      و یا اینکه نرم افزار 7zip رو نصب کنید.
      مشکلتون حل می شه با این دو مورد.

  13. سلام خسته نباشید
    ببخشید پیامک که با سیم ۸۰۰ ارسال میکنیم خالی دریافت میشه یا عبارت
    Not conntent supported
    دریافت میشه
    به نظرتون مشکل چیه؟

    1. سلام. از همین پروژه سایت ما استفاده کردید ؟

  14. سلام وقت بخیر… من یک برنامه با سیم800 و اردوینو راه اندازی کردم…میخام سیم800 متن پیامک رو بگیره و داخل یک متغیر اردوینو بریزه… و یک پیام تایید هم بفرسته.لطفا راهنمایی کنید

    1. سلام این مبحث طولانیه نمیتونم توی نظرات بگم شما “متغیر در آردوینو” رو در گوگل سرچ کنید.

  15. باسلام.یک سوال در مورد sim800l داشتم. من یک سیم800 با اردوینو راه اندازی کردم و هر3ثانیه یکبار چشمک میزنه و پیامک هم دریافت میکنه اما ارسال پیامک انجام نمیده و دستورات AT هم در ابتدا اجرا میشدن و جواب میگرفتم اما دفعات بعدی اجرا نشدن
    لطفا راهنماییم کنید با تشکر

    1. سلام جناب. لطف کنید با یک پروژه دیگه که مربوط به sim800l هست تست کنید تا متوجه شید مشکل از برنامست یا ماژول

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *