سیم کارت GSM - GPRS

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

نوشته شده توسط معین صابری

در دو قسمت قبل، در رابطه با کلیات ماژول SIM800L و نحوه تامین تغذیه آن، سخن به میان آوردیم. اکنون در قسمت سوم، به برقراری تماس تلفنی و نکات و فرامین مربوط به آن می پردازیم. در قسمت دوم، به مبحث بسیار مهم، تغذیه پرداختیم. آنچنان که در قسمت دوم بیان شد، این ماژول حین اتصال به شبکه و برقراری تماس تلفنی، جریان زیادی لازم دارد. به همین منظور، منبع تغذیه شما می بایست از توان حداقل دو آمپری، برخوردار باشد. در این آموزش، به بررسی نحوه برقراری تماس تلفنی، دریافت تماس تلفنی، فعال سازی Id Caller و… خواهیم پرداخت. در ادامه، با مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.

 


برقراری تماس تلفنی ماژول SIM800L


ماژول سیم کارت SIM800 یک ماژول GSM/GPRS است که امکان برقراری تماس تلفنی را با استفاده از AT-Command ها فراهم می‌کند. AT-Command ها دستورات استانداردی هستند که برای ارتباط با ماژول از طریق رابط سریال (Serial Interface) استفاده می‌شوند. در زیر تعدادی از AT-Command های مهم برای برقراری تماس تلفنی با ماژول SIM800 را معرفی شده است.

برقراری تماس تلفنی:

  • ATD<number>;\r\n (مثال: ATD1234567890;\r\n) :این دستور برای برقراری تماس تلفنی با شماره مورد نظر استفاده می‌شود. شماره تلفن را در جایگاه <number> قرار دهید.

پاسخ به تماس و پاسخ دهی به تماس ورودی:

  • ATA\r\n : این دستور برای پاسخ دادن به تماس ورودی استفاده می‌شود.

قطع تماس:

  • ATH\r\n : این دستور برای قطع تماس در حال برقراری یا در حال پاسخ دادن به تماس استفاده می‌شود.

ارسال صدای DTMF:

  •  AT+VTS=”<dtmf_sequence>”\r\n = (مثال: AT+VTS=”123#”\r\n) : این دستور برای ارسال صدای DTMF به طرف مقابل (برای انجام عملیات مانند ارسال شماره پیچیده) استفاده می‌شود. دنباله DTMF را در جایگاه <dtmf_sequence> قرار دهید.

ثبت وضعیت تماس و پیدا کردن شماره تلفن فرد در حال تماس:

  • AT+CLCC\r\n : این دستور برای دریافت وضعیت تماس فعلی و شماره تلفن طرف مقابل استفاده می‌شود.

قطع صدا:

  • AT+CHUP\r\n این دستور برای قطع صدا در حالت تماس استفاده می‌شود.

تنظیم مود مکالمه (Voice Call):

  • AT+CVHU=<mode>\r\n (مثال: AT+CVHU=0\r\n) این دستور برای تنظیم حالت مکالمه استفاده می‌شود. حالت ۰ به معنی عدم ارسال خروجی صوتی و حالت ۱ به معنی ارسال خروجی صوتی است.

آنتن آفلاین:

  • AT+CFUN=<fun>\r\n (مثال: AT+CFUN=4\r\n) این دستور برای غیرفعال کردن آنتن ماژول SIM800 و قطع ارتباط با شبکه استفاده می‌شود. حالت ۴ به معنی غیرفعال کردن ماژول است.

مشاهده وضعیت سیگنال شبکه:

  • AT+CSQ\r\n این دستور برای دریافت سطح سیگنال شبکه GSM استفاده می‌شود.

تنظیم مود اتصال صوتی:

  • AT#FRQMODE=<mode>\r\n (مثال: AT#FRQMODE=0\r\n) این دستور برای تنظیم حالت مود اتصال صوتی استفاده می‌شود. حالت ۰ به معنی تنظیم مود صوتی (voice mode) و حالت ۱ به معنی تنظیم مود داده (data mode) است.

 

برقراری تماس تلفنی SIM800L، تقریبا همانند تلفن های همراه است. همانطور که در یک تلفن همراه، با وارد کردن سیم کارت و تعیین شماره مقصد، تماس را برقرار می سازید، دقیقا همین مورد در ماژول SIM800L صادق است. برای برقراری تماس تلفنی SIM800L، می بایست فرمان تماس را از طریق پروتکل UART، به ماژول ارسال نماییم. ماژول SIM800L، برای اجرای هر فرمان نظیر ارسال پیامک، برقراری تماس تلفنی و… از یکسری دستورات از پیش تعیین شده به نام AT-Command ها پشتیبانی می نماید. جدول زیر، تعدادی از فرامین مهم برای برقراری تماس را نشان می دهد.

دستورات AT Command برای راه اندازی تماس صوتی با ماژول سیم کارت Sim800 - دیجی اسپارک

در قسمت شماره یک این آموزش، در رابطه با نحوه برقراری ارتباط با ماژول از طریق مبدل سریال به USB صحبت کرده ایم. در ادامه، با اتصال مبدل به رایانه، از طریق ترمینال آردویینو، اقدام به ارسال فرامین تماس خواهیم نمود. اما پیش از ادامه، به اتصال بلندگو و میکروفون به ماژول، برای برقراری تماس، می پردازیم.

 


اتصال میکروفون و بلندگو SIM800L


برای برقراری تماس تلفنی دو طرفه صوتی، نیاز به میکروفون و بلندگو خواهیم داشت. بر روی ماژول SIM800L، پایه های زیر، مربوط به میکروفون و بلندگو است. با اتصال بلندگو و میکروفون، می توانید تماس صوتی دو طرفه برقرار نمایید. پایه های اتصال میکروفون و بلندگو، به شرح زیر است.

SPK+: پایه مثبت بلندگو

SPK-: پایه منفی بلندگو

MIC+: پایه مثبت میکروفون

MIC-: پایه منفی میکروفون

در زیر، تصویر این پایه ها را مشاهده می نمایید.

پایه های ماژول سیم کارت Sim800L برای برقراری تماس - دیجی اسپارک

 


برقراری تماس تلفنی ماژول SIM800L


 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

 


مدیریت تماس و تنظیم CALLER ID


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

 


تنظیم میزان قدرت میکروفون


همانطور که گفته شد، ماژول SIM800L قابلیت برقراری تماس صوتی دو طرفه را داراست. شما می توانید همانند یک تلفن همراه، با این ماژول تماس گرفته و از طرق میکروفون صحبت کنید و صدای طرف مقابل را با بلندگو، بشنوید. در ماژول SIM800L، می توان میزان حساسیت میکروفون را تنظیم کرده و حتی آن را حین تماس، قطع نمایید. برای این منظور، می توانید از دستور زیر، استفاده نمایید.

AT+CMIC=0,15

برای تنظیم میزان حساسیت میکروفون، می توانید عددی بین ۰(قطع میکروفون) و ۱۵(قدرت کامل) تنظیم نمایید.

اتصال میکروفن و بلندگو به ماژول سیم کارت Sim800L - دیجی اسپارک

 


تنظیم آهنگ زنگ ماژول SIM800L و ولوم بلندگو


در قسمت پیشین، نحوه تنظیم میزان حساسیت میکروفون را بررسی نمودیم. در این قسمت، به بررسی نحوه تنظیم میزان صدای زنگ تماس و تنظیم آهنگ آن می پردازیم. در ابتدا، به کمک دستور زیر، میزان ولوم زنگ صدا را تنظیم می نماییم.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 


وضعیت پایه RING


در قسمت پیشین، در قسمت مدیریت تماس دریافتی، در رابطه با عبارت RING در حین دریافت تماس، صحبت کردیم. زمانیکه با ماژول تماس گرفته می شود، ماژول عبارت RING و در صورت فعال سازی id caller، شماره تلفن تماس گیرنده را ارسال می نماید. اما علاوه بر این، حین تماس گیری، وضعیت پایه RI ماژول SIM800L تغییر می نماید. در حالت عادی، ولتاژ روی این پایه، ۲٫۸ ولت یا یک منطقی ماژول SIM800L است. زمانیکه تماسی با ماژول گرفته می شود، این پایه وضعیت خود را به ۰ تغییر داده و تا زمانیکه تکلیف تماس مشخص نگردد(رد و یا پذیرش)، وضعیت این پایه ۰ خواهد ماند. از این قابلیت می توان به صورت وقفه خارجی، برای تشخیص تماس در آردویینو و یا سایر میکروکنترلرها، استفاده نمود.دستورات AT Command برای راه اندازی تماس صوتی با ماژول سیم کارت Sim800 - دیجی اسپارک

 

 


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


ماژول SIM800L

مبدل سریال به USB

بلندگو

میکروفون

 


جمع بندی


در این آموزش که قسمت سوم از سلسله آموزش های ماژول SIM800L به شمار می رود، به نحوه برقراری تماس تلفنی به کمک ماژول SIM800L پرداختیم.  ماژول SIM800L، همانند یک تلفن همراه، قادر به برقراری تماس، ارسال و دریافت پیامک و اتصال به اینترنت است.  در این آموزش، به دستورات مربوط به برقراری تماس، دریافت و مدیریت تماس، فعال سازی id caller، تنظیم آهنگ زنگ ماژول، تنظیم شدت صدای بلندگوی مکالمه و … پرداختیم. در آموزش های بعدی، به دیگر قابلیت های ماژول SIM800L نظیر پیامک و اینترنت، خواهیم پرداخت.

 


دیگر آموزش‌های راه اندازی Sim800L


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

راه اندازی و کار با ماژول سیم کارت SIM800L بخش دوم: تغذیه

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

راه اندازی و کار با ماژول SIM800L بخش پنجم: اینترنت GPRS سیم کارت

راه اندازی و کار با ماژول SIM800L بخش ششم: آپلود و دانلود فایل در اینترنت

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

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

راه اندازی و کار با ماژول SIM800L، بخش نهم: کنترل و کاهش توان مصرفی

راه اندازی و کار با ماژول SIM800L: بخش دهم فعال سازی DTMF

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

 

چنانچه در مراحل راه اندازی و انجام این آموزش با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۰۶ دیدگاه

  • سلام
    ممنون بابت آموزش من دستور at+csq که میزنم، هیچی بر نمیگردونه، به نظرتون مشکل از چیه؟

    • سلام
      دلیل این خطا موارد زیر می تواند باشد:
      ۱-عدم اتصال صحیح RX,TX مبدل سریال به ماژول
      ۲-عدم قرار دادن گراند مشترک بین مبدل و ماژول

  • سلام شما در ابتدا گفتید بایت تغذیه این ماژول حداقل ۲آمپر باشه ولی من برای تغذیه این ماژول از خود آردویینو کمک گرفتم و الان یک ماهه با ولتاژ ۵ولت آردویینو کار میکنه و تغذیه آردویینو هم از پورت usbکامپیوتر هست. به نظرشما آیا این کار من به کامپیوتر و آردویینو آسیبی وارد میکنه؟

    • سلام
      این ماژول همانطور که گفته شد، جریان لحظه ای ۲ امپر نیاز دارد. در صورت ضعف تغذیه این مورد را م یتواند با خازن جبران نمود. اما تغذیه این ماژول از طریق آردویینو متصل به رایانه، شدنی است اما اصولی نیست. چراکه در پروژه های سنگین جریان لحظه ای ماژول بالا رفته و نیاز به تامین تغذیه مناسب خواهید داشت.

    • سلام، در مدارات dc زمانیکه خازن به صورت موازی قرار می گیرد، شروع به شارژ شدن می نماید. این مورد دقیقا مثل یک باتری می ماند که به شارژ متصل شده و فول شارژ شده باشد.
      در طرف دیگر، زمانیکه مداری با قطعات مختلف مثلا سنسور ها و ماژول های مختلف دارید، ممکن است یک ماژول یا سنسور جریان لحظه ای بالایی از مدار بکشد. این موضوع سبب کاهش ولتاژ تغذیه شده و می تواند در عملکرد ماژول سیم کام تاثیر بگذارد. در اینجا خازن که از پیش شارژ شده وارد مدار شده و افت ولتاژ را جبران میکند. برین ترتیب ولتاژ ماژول همواره ثابت خواهد ماند.

    • سلام
      همانطور که در جدول ابتدای مطلب آمده، به کمک دستور ATH می توان تماس تلفنی را قطع نمود.

  • مهندس این ماژول ها خودشون حافظه دارن؟ مثلا قدرت میکروفون رو یکبار تنظیم کنیم روی۱۵ دیگه نیازی به تنظیم نیست؟و با قطع برق مقدار قدرت میکروقون رو تو خودش ذخیره کرده؟

    • سلام
      بله، بعضی دستورات را می توان در حافظه ذخیره نمود. پس از انجام تنظیمات، از دستور زیر استفاده کنید:
      AT&W
      دستور فوق تنظیمات را ذخیره می کند.

  • سلام مهندس وقتی با یک گوشی به ماژول زنگ میزنیم و قبل از اینکه تایید کنیم تماس رو، با همون گوشی قطع کنیم چه دستوری رو ماژول بر میگردونه؟

  • سلام مهندس
    آیا میشه این تماس دوطرفه با دو sim800 انجام بشه
    واینکه میشه بخش میکروفن و بلندگو را با هدست یا هندزفری وصل کرد؟
    ممنون

    • سلام
      بله تماس بین دو SIM800 کاملا امکان پذیر هست.
      برای سوال دوم بله، می توانید هدفون متصل کنید.

      • با تشکر از پاسخ سریع شما چند سوال دیگه اینکه
        برای وصل هدفون به ماژول چه رابطی باید بگیریم؟؟
        و اینکه آیا جعبه ایی هست که مدارها داخل اون باشن و فقط خروجی ها مثل usb و محل اتصال هدفون به مدار بیرون باشه
        عمر کاری آن چگونه است
        و اینکه باطری لیتیومی با چه ولتاژی نیاز هستش
        یه سوال دیگه اینکه آیا میشه همزمان برنامه دیگه ای مثل قطع و وصل کردن یک دستگاه و یا …. رو قطعه پیاده کنیم
        سوال آخر اینکه میشه لیست کامل وسایلی که باید خریداری بشه رو بفرمایید
        ممنون بابت دقت نظر و حوصله شما

        • خواهش میکنم
          توجه داشته باشدی که این ماژول پایه های جداگانه برای بلندگو و میکروفون دارد. بنابراین این موارد باید جداگانه متصل شوند. برای اتصال، یا باید کابل های میکروفون و بلندگو را از جک آن جدا کنید و به ماژول متصل کنید. یا اینکه جک مادگی ۳٫۵ میلی متری تهییه کرده و به ماژول متصل کنید. به عنوان مثال یک جک مانند زیر:
          لینک جک ۳٫۵ کلیک کنید

          برای جعبه، می توانید از جعبه های اماده استفاده کنید. قاب های مشکی رنگ پلایتیکی ساده ای که می توانید به سادگی آن را تهییه کرده و در قسمت های مختلف آن، سوراخکاری جهت اتصال جک انجام دهید.
          در رابطه با باتری، می بایست باتری متناسب با مدت زمان کارکرد و جریان مدار خود انتخای کنید. اما باتری زیر مورد مناسبی است:
          لینک باتری ۱۲۰۰ میلی آمپر، کلیک کنید
          برای سوال آخر هم بله، این مورد کاملا امکان پذیر است.

    • سلام
      کمی بیشتر توضیح دهید.
      شما با ماژول تماس می گیرید، اما تماس برقرار نمی شود یا اینکه با ماژول به شماره تلفن تماس می گیرد اما تماس برقرار نمی شود؟

        • وضعیت چشمک زن ماژول به چه صورتی هست؟
          اینکه می گویید تماس وصل نمی شود، شما با ماژول تماس می گیرید؟
          لطفا به این دو سوال با دقت جواب دهید.

            • سلام
              راهنمایی تنها از همین طریق صورت می گیرد. سوالات خود را دقیق، واضح و با حوصله بپرسید تا راهنمایی به شکل درست انجام بگیرد.

            • سلام چه جوری میشه در یک تماس چند مخاطب را اضافه کرد و باهم ادغام کرد و حالت تماس به صورت کنفرانسی داشت.ممنون

              • سلام
                برای این مورد می بایست از دستور AT+CHLD استفاده کنید. اپراتورهای همراه اول و ایرانسل تا ۵ نفر را به صورت کنفرانسی پشتیبانی می کنند. برای این مورد، مراحل زیر را دنبال کنید:
                ۱-ابتدا با شماره ماژول تماس بگیرید و پس از برقراری تماس، با دستور ATA تماس را قبول کنید.
                ۲-در اینجا با دستور AT+CHLD=2 تماس را در حالت HOLD قرار دهید.
                ۳ در اینجا با دستور ATD تماس را با شخص دیگری برقرار کنید. نحوه استفاده از این دستور در توضیحات مطلب آمده است.
                ۴- پس از اینکه تماس مرحله قبل برقرار شد، در ماژول دستور AT+CHLD=3 را وارد نمایید. حال تماس کنفرانسی سه نفره برقرا می شود.

              • #include
                SoftwareSerial SIM800(2, 3);
                String myNumber = “+989376739526”;

                void callMe()
                {
                SIM800.print(F(“ATD”));
                SIM800.print(myNumber);
                SIM800.print(F(“ATA”));
                SIM800.print(F(“;\r\n”));
                }

                void setup()
                {
                delay(7000);
                Serial.begin(9600);
                SIM800.begin(9600);
                Serial.println(“Initializing …”);
                delay(1000);
                callMe();
                }
                void loop()
                {
                if (SIM800.available() > 0)
                Serial.write(SIM800.read());
                }

                • سلام
                  از این کد استفاده کنید:
                  #include
                  SoftwareSerial SIM800(2, 3);
                  void setup()
                  {
                  delay(7000);
                  Serial.begin(9600);
                  SIM800.begin(9600);
                  Serial.println(“برای اتصال به شبکه یک دقیقه صبر کنید”);
                  Serial.flush();
                  for (int i = 0; i < 60; i++) {
                  Serial.println(i);
                  Serial.flush();
                  delay(1000);
                  }
                  Serial.println("در حال برقراری تماس");
                  delay(1000);
                  SIM800.print("ATD+989376739526;\r\n");
                  SIM800.flush();
                  delay(5000);
                  delay(5000);
                  }
                  void loop()
                  {

                  }

  • سلام مهندس لایو فوق‌العاده بود
    فقط اگه میشه یه مدار طراحی کنید که نویز صدا ماژول سیم‌کارت را بگیره

    • سلام و متشکرم از لطف شما
      بله حتما
      البته شیلد رزبری پای ماژول SIM800C کیفیت خوبی دارد.

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

  • ببخشید در آردوینو میخواستم دستور AT+SAPBR=3,1,”Contype”,”GPRS ارسال کنم ولی ” این رشته رو با ” خود کد اشتباه میگیره.

    • سلام
      به این صورت ارسال کنید. مورد را تست کنید و لطفا در کامنت بعدی نتیجه را اعلام نمایید.
      AT+SAPBR=3,1,\”Contype\”,”GPRS

  • سلام مهندس میشه فرم ویر ماژول SIM 800l را اپدیت کرد؟
    اگر میشود لطفاً یه اموزش درموردش بزارید

  • سلام مهندس میشه بجای استفاده از USB به سریال پایه منفی و ریست اردوینو را بهم متصل کرد و پایه های سریال ماژول سیم‌کارت را به TX و RX اردوینو وصل کرد و دستورات را اجرا کرد؟

    • سلام
      برای این کار برنامه نویسی لازم داریم. ولی چرا پایه ریست و منفی آردوینو را به هم متصل کنیم؟

  • سلام
    تفاوت مدل esp ماژول sim800 با این مدل چیه نحوه راه‌اندازی و یا برنامه نویسی ش فرق میکنه؟؟
    تو مشخصات فنی زده به جای ۳٫۶ولت از پنج ولت استفاده میشه

    • سلام
      تفاوت ساختاری ندارند، ظاهرا این برد روی خود رگولاتور دارد که با کاهش ولتاژاز ۵ به ولتاژ ایده آل ماژول ها، تغذیه آن ها را فراهم می کند.

  • با سلام
    من برا ماژول sim800l میکروفن خازنی وصل کردن بعد از چند بار استفاده ماژول به شبکه وصل نمیشه و چراغش هر چشمک میزنه
    آیا ماژول سوخته؟
    آیا برای اتصال میکروفن ، به خازن یا مقومت نیاز داره؟

    • سلام
      خیر ماژول نسوخته
      برای اتصال میکروفن نیازی به مدار جانبی نیست.
      وضعیت چشمک زن به چه صورت است؟

    • سلام و متشکرم
      بخش تغذیه منظور شماست یا بخش دوم همین آموزش؟
      لطفا بیشتر توضیح دهید تا اگر ایرادی هست، برطرف گردد

      • توی قسمت خرید همین ماژول از سایت دانشجو کیت لینک آموزش گذاشتن برای قسمت تغذیه لینک اشتباهه ، من لینک آموزش تغذیه رو از یه جا دیگه پیدا کردم

          • ممنون ، ببخشید من هر کاری میکنم برای دستور AT+CCALR? ارور میفرسته ، دلیلش چی میتونه باشه

            • خواهش می کنم
              دقت کنید که علامت سوال باید انتهای عبارت قرار گرفته و کیبرد در حالت انگلیسی باشد.

              • به نظرم مشکل از ماژول یو اس بی به سریالمه که به sim800L کانکت نمیشه ، ولی مطمئن نیستم ، فقط چراغ پاورش روشن میشه ، rx و tx خاموشه چراغشون

                • احتمال این موضوع هست
                  برای تست سلامت مبدل، آن را به رایانه متصل کنید، سپس پایه RX مبدل را به پایه TX مبدل وصل کنید. پس از این مرحله یک صفحه سریال مانیتور آردوینو را باز کنید. در این حالت هرچه که در سریال مانیتور تایپ و اینتر می کنید باید در سریال مانیتور مشاهده کنید. در صورتیکه چنین نبود یعنی مبدل مشکل دارد.

  • سلام و عرض ادب
    برای محدود سازی ماژول طوریکه فقط از یک شماره خاص دستور بگیره باید چکار انجام داد؟
    من این خط رو به اوایل کدها در LOOP اضافه کردم ولی آردوینو اون خطای داخل عکس رو می گرفت. که با پاک کردن اون دابل کوتیشن ها علامت گذاری شده خطا رفع شد. قسمت اول شرط برای تماس و قسمت دوم شرط برای پیام است.

    https://s4.uupload.ir/files/untitled_pxgh.jpg

    آیا این کار که انجام دادم اوکی است؟
    آیا روش دیگری وجود دارد؟ چه روشی؟

  • البته با تشکر فراوان از شما در بخش ۱۱ م آموزش SIM800L مطلبتون رو دیدم. اونجا جواب داده بودید.تشکر

  • مهندس صابری سلام من چون از زمان کودکی از دانشجو الکترونیک کیت میخریدم و هنوز هم دارمشون کیت آیفون تصویری رو هم به تازگی تهیه کردم ولی چون به آردوینو و پروگرام ها وسیستم کامپیوتر آشنا نیستم و دیگه سنمون هم بالا رفته نتونستم راهش بندازم خواستم فردی رو اگه امکانش هست معرفی بفرمایید هزینش رو هم به روی چشم میزارم این پروژه رو واسم انجام بدهند ممنون از شما و سایت خوبتون در پناه حق باشید

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

  • void setup() {
    Serial.begin(115200);
    check_connect(); //کنترل و انتظار جهت اتصال ماژول GSM به شبکه
    Serial.print(“AT+CMGF=1\r\n”); //به کمک این دستور ارسال پیامک در حالت متن قرار می گیرد.
    delay(1000);
    Serial.print(“AT+CMGD=1,4\r\n”); //به کمک این دستور حافظه پیامک ها را خالی می کنیم.
    delay(1000);
    Serial.print(“AT+CSMP=17,167,0,0\r\n”); //به کمک این دستور تنظیمات ارسال پیامک را انجام می دهیم. این دستور برای سیم کارت ایرانسل الزامی است.
    delay(1000);

    }

    void loop() {

    send_sms(); //ارسال پیامک
    }

    void check_connect() {
    char ccalr[] = {“+CCALR: 1”};
    Serial.println(“WAITING TO CONNECT TO NETWORK”);
    Serial.flush();
    while (true) {
    Serial.print(“AT+CCALR?\r\n”); // ارسال دستور AT+CCALR به ماژول، در صورتیکه ماژول به شبکه متصل گردد ماژول عبارت CCALR: 1 را بر میگرداند
    if (Serial.find(ccalr) == true) // نتیجه تابع find در صورتی true می شود که عبارت مورد نظر یافت شده باشد، در غیر اینصورت درون حلقه تا زمانیکه نتیجه مورد نظر یافت نشود، باقی خواهد ماند
    break; // خروج از حلقه با یافتن پیام مورد نظر
    }
    Serial.println(“CONNECTED TO NETWORK”);
    Serial.flush();
    }
    void send_sms() {
    String number = “+98**********”;
    Serial.print(“AT+CMGS=\”” + number + “\”\r\n”);
    Serial.flush();
    delay(1000);
    Serial.println(“Hi”);//ارسال متن پیام
    Serial.flush();
    delay(1000);
    Serial.write(0x1a); //کاراکتر ctrl+z جهت ارسال پیام
    delay(5000);
    }
    سلام وقتتون بخیر کد بالارو برای سه سیم کارت ایرانسل همراه اول و رایتل امتحان کردم ولی هیچ کودوم به شبکه متصل نشد و چراغ یک ثانیه یکبار چشمک میزند
    منبع تغذیه ۴٫۱ ولت پایه tx به rx آردوینو و پایه rx به tx متصل است
    مشکل از کجا میتونه باشه؟
    (کد رو از سایت برداشتم)

    • سلام و متشکرم
      مشکل از کد نیست، مشکل از اتصالت تغذیه هست، منبع تغذیه شما چند آمپر هست؟

      • از کاهنده ولتاژ هم با خروجی ۳٫۸ ولت و ماکزیمم جریان خروجی ۳ آمپر هم استفاده کردم ولی تاثیری نداشت و شبکه پیدا نشد

        • سلام
          وضعیت کابل های متصل به sim800l چطور هست؟ از چه کابل هایی برای اتصال خروجی کاهنده به sim800l استفاده کرده اید؟ همچنین وضعیت چشمک زن ماژول را یکبار دیگر بفرمایید.

        • موضوع را باید کامل تر بررسی کنیم. اگر برایتان مقدور است لطفا فیلمی از ماژول sim800l و وضعیت چشک زن آن روی یکی از سرویس های آپلود فایل آپلود کنید. سپس لینک را در اینجا به اشتراک بگذارید.

  • سلام .من میخاستم ببینم از ماژول میشه به تلفن وصل بشم.و مدت زمان اگه برق ماژول وصل بشه چقدر زمان میبره تا به تلفن وصل بشه.من برای داخل ماشین میخام تا در باز بشه تماس برقرار بشه.

  • درود بر شما ، مهندس کد من وقتی سنسور pir حرکتی تشخیص میده با موبایلم تماس میگیره و وقتی جواب میدم چند ثانیه صدای محیط رو میشنوم و بعد میره رو حالت انتظار . چیکار باید کرد که روحالت انتظار نره؟ و سوال بعد اینکه وقتی با ماژول تماس میگیرم فقط زنگ میخوره و تماس منو وصل نمیکنه ؟ و سوال سوم اینکه چطوری میشه که ماژول فقط شماره منو پاسخ بده و اگر تماس دیگه ای از شماره های مختلف داشت بوق اشغال بزنه که ماژولم اشغال نشه . سپاس از زحمات شما

    • برای سوال اول، ابتدا AT&F را وارد کنید. این دستور ماژول را ریست فکتوری میکند.
      سوال دوم اینکه برای وصل شدن تماس از دستور ATA باید استفاده کنید.
      سوال سوم باید لیست مجاز تعریف کنید. روی این لینک کلیک کرده و آموزش آن را مطالعه کنید.

  • #include
    SoftwareSerial mySerial(11,12);  // (Rx,Tx  > Tx,Rx)
    char incomingByte;
    String inputString;
    int relay1 = 2;
    int relay2 = 3;
    int relay3 = 4;
    int relay4 = 5;
    int relay5 = 6;
    int relay6 = 7;
    // Output for Relay Control
    void setup() {
    pinMode(relay1, OUTPUT);
    pinMode(relay2, OUTPUT);
    pinMode(relay3, OUTPUT);
    pinMode(relay4, OUTPUT);
    pinMode(relay5, OUTPUT);
    pinMode(relay6, OUTPUT);
    digitalWrite(relay1, LOW);
    digitalWrite(relay2, LOW);
    digitalWrite(relay3, LOW);
    digitalWrite(relay4, LOW);
    digitalWrite(relay5, LOW);
    digitalWrite(relay6, LOW);
    // Initial state of the relay
    Serial.begin(9600);
    mySerial.begin(9600);
    while(!mySerial.available()){
    mySerial.println(“AT”);
    delay(1000);
    Serial.println(“Connecting…”);         }
    Serial.println(“Connected!”); 
    mySerial.println(“AT+CMGF=1”);  //Set SMS to Text Mode
    delay(1000);
    mySerial.println(“AT+CNMI=1,2,0,0,0”); //Procedure to handle newly arrived messages(command name in text: new message indications to TE)
    delay(1000);  

    mySerial.println(“AT+CMGL=\”REC UNREAD\””); // Read Unread Messages
    }
    void loop() {
    if(mySerial.available()){
    delay(100);       // Serial Buffer      
    while(mySerial.available()){
    incomingByte = mySerial.read();         inputString += incomingByte;
    }
    delay(10);
    Serial.println(inputString);        
    inputString.toUpperCase(); // Uppercase the Received Message
    //turn RELAY ON or OFF
    if (inputString.indexOf(“1ON”) > -1){          
    digitalWrite(relay1, HIGH);
    }
    if (inputString.indexOf(“2ON”) > -1){          
    digitalWrite(relay2, HIGH);
    }
    if (inputString.indexOf(“3ON”) > -1){          
    digitalWrite(relay3, HIGH);
    }
    if (inputString.indexOf(“4ON”) > -1){          
    digitalWrite(relay4, HIGH);
    }
    if (inputString.indexOf(“5ON”) > -1){          
    digitalWrite(relay5, HIGH);
    }
    if (inputString.indexOf(“ALARMON”) > -1){          
    digitalWrite(relay6, HIGH);
    }

    if (inputString.indexOf(“1OFF”) > -1){          
    digitalWrite(relay1, LOW);
    }
    if (inputString.indexOf(“2OFF”) > -1){          
    digitalWrite(relay2, LOW);
    }
    if (inputString.indexOf(“3OFF”) > -1){          
    digitalWrite(relay3, LOW);
    }
    if (inputString.indexOf(“4OFF”) > -1){          
    digitalWrite(relay4, LOW);
    }
    if (inputString.indexOf(“5OFF”) > -1){          
    digitalWrite(relay5, LOW);
    }
    if (inputString.indexOf(“ALARMOFF”) > -1){          
    digitalWrite(relay6, LOW);
    }
    delay(50);         //Delete Messages & Save Memory
    if (inputString.indexOf(“OK”) == -1){        
    mySerial.println(“AT+CMGDA=\”DEL ALL\””);        
    }
    inputString = “”;
    }
    }

    درود بر شما ، مهندس این کد بالا مربوط به کنترل ۶ عدد رله است . فقط اینکه چطوری میشه این کد رو شخصی سازی کرد که فقط با شماره تماس من کار کنه و اینکه چطوری میشه وقتی پیامک ( ۱on ) رو به سیم هشتصد میفرستیم و رله ۱ رو روشن میکنه ، بعدش ماژول با پیامک جواب بده که رله یک روشن شد مثلا بفرسته : (relay 1 on )
    ممنون میشم راهنمایی بفرمایید . سپاس

  • سلام من اشتراک هم دارم ولی کدی تو این پروژه نیست باید چه کاری کنم تا کدش برام بیاد؟

    • با سلام
      این قسمت صرفا راهنمایی راه اندازی تماس تلفنی و بررسی دستورات مهم است. کد نویسی در این آموزش وجود ندارد. به پروژه‌هایی که لینک شده‌اند مراجعه کنید.

  • سلام وقت بخیر
    وقتی از ماژول زنگ میزنم به گوشی و جواب میدم یه صدای پیوسته وززز داره مشکلش کجاست ؟

  • سلام مهندس خسته نباشید
    من دانش آموز الکترونیک هستم میخواستم ببینم این ماژول رو میشه با ارتباط USART میکرو AVR وصل کرد؟
    و اگه میشه میتونید یه آموزشی رو بهم معرفی کنید که چطور میشه با ارتباط USART این دستوراتی که گفتید رو برای ماژول بفرستم.
    تشکر

    • با سلام
      بله ارتباط ماژول سیم کارتی از طریق UART است. آموزش خاصی نیاز نیست. ارتباط UART را برقرار کنید. بادریت را روی ۹۶۰۰ قرار داده و دستورات AT را به ماژول ارسال کنید.