رزبری پای سیم کارت GSM - GPRS پروژه رزبری پای

تبدیل ماژول SIM800C به مودم ۲G سیم کارتی مخصوص رزبری پای Raspberry Pi

change-raspberry-pi-to-Internet-modem-2g-with-sim800c-digispark
نوشته شده توسط معین صابری

در سری آموزش های برد رزبری پای و شیلد SIM800C مخصوص برد رزبری پای، ارتباط برد رزبری پای به شبکه GSM جهت ارسال و  دریافت پیامک را مورد بررسی قرار دادیم. به عنوان نمونه، در این آموزش، به ارسال دمای پردازنده رزبری پای به کمک پیامک به کاربر، پرداختیم. همچنین، در آموزشی دیگر،  کنترل وضعیت یک رله از طریق پیامک را مورد بحث و بررسی، قرار دادیم؛ اما در این مطلب، با تغییر رویکرد پروژه های پیشین، گامی بلندتر برداشته و برد رزبری پای را به کمک اینترنت (GPRS) شیلد SIM800C، به شبکه جهانی اینترنت متصل می نماییم. بدین ترتیب، با اتصال برد رزبری پای به اینترنت GPRS، می توان همانند اتصال آن به یک مودم وای فای، از شبکه جهانی اینترنت بهره مند شده و حتی به کمک مرورگر آن، وب گردی نمود. در این آموزش، مراحل و روش کار را با هم مورد بررسی قرار خواهیم داد. شایان ذکر است که در این آموزش، همانند آموزش های پیشین، از شیلد SIM800C استفاده شده است؛ از مزیت های این شیلد می توان به کاهش پیچیدگی در اتصالات، سهولت در راه اندازی و…. اشاره نمود. در این آموزش ما از برد رزبری پای ۳ مدل +B استفاده نموده ایم، شما نیز می توانید از بردهای مشابه، نظیر برد رزبری پای ۴، استفاده نمایید.  در ادامه این آموزش با مرجع تخصصی رزبری پای و مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.

 


اتصال شیلد SIM800C به رزبری پای


همانطور که حتما مستحضر هستید، شیلد SIM800C یا به عبارت دیگر ماژول SIM800C، توسط فرامینی موسوم به AT-COMMAND ها کنترل می شود. به عنوان مثال، برای برقراری تماس تلفنی، از دستور ATD، برای ارسال پیامک از دستور AT+CMGS، برای اتصال به اینترنت از دستور AT+SAPBR=1,1 استفاده شده و ارسال این دستورات به شیلد، از طریق پروتکل UART، صورت می پذیرد. برد رزبری پای به طور پیشفرض از پورت UART خود برای ارسال پیام های کرنل، استفاده می نماید. همانطور که اطلاع دارید، پروتکل UART از دو پایه به نام های RX و TX به ترتیب برای دریافت و ارسال داده، استفاده می نماید. از آنجاییکه پایه TX برد رزبری پای حین بوت، پیام های کرنل را ارسال می نماید، و از طرفی دیگر پایه RX شیلد به TX رزبری متصل است، ممکن است پیام های ارسالی از طرف رزبری و دریافت آن توسط شیلد، باعث خطا در عملکرد آن(شیلد رزبری پای) گردد. به همین دلیل، در ابتدا، می بایست پورت UART را غیر فعال نماییم. برای غیر فعال سازی پورت، ابتدا از طریق منوی رزبری پای(آرم رزبری پای در بالا و سمت چپ صفحه)، وارد قسمت Preferences شده و سپس روی Raspberry Pi Configuration، مطابق تصویر، کلیک نمایید:

 

با کلیک بر روی تنظیمات رزبری پای، منوی آن به شکل زیر، ظاهر می شود، در این مرحله با انتخاب گزینه interfaces، در قسمت Serial Console، با انتخاب گزینه Disabled، آن را غیرفعال نمایید:

توجه: در صورتیکه در منوی فوق، عبارت serial console را مشاهده ننمودید، نیازی به انجام کاری نیست، فقط دقت داشته باشید که serial port فعال باشد.

 


تنظیمات اینترنت GPRS برد رزبری پای


در این مرحله، نوبت به اتصال برد رزبری پای به اینترنت می رسد. همانطور که مطلع هستید، شیلد SIM800C با دستورات AT-COMMAND کنترل می گردد. در آموزش ارسال دما به کمک برد رزبری، به جای ارسال فرامین AT، از یک نرم افزار واسط به نام gammu، جهت ارسال و دریافت پیامک استفاده نمودیم. در این آموزش نیز، برای ارتباط با شبکه، از یک نرم افزار واسط به نام PPP استفاده خواهیم نمود. این نرم افزار، قابلیت اتصال به شبکه را از طریق پورت سریال، فراهم می آورد. برای نصب این نرم افزار، ابتدا با دسترسی کاربر ریشه (root)،برد رزبری پایه را بروزرسانی نموده و در مرحله بعد، اقدام به نصب نرم افزار PPP می نماییم:

sudo apt-get update
sudo apt-get install ppp screen elinks

پس از نصب نرم افزار، ابتدا اتصال اینترنت برد رزبری پای را جهت جلوگیری از ایجاد تداخل با اینترنت GPRS، قطع نمایید؛ سپس تنظیمات لازم برای اتصال برد رزبری پای به اینترنت از طریق اینترنت شیلد SIM800C را درون یک فایل، قرار می دهیم. به همین منظور، ابتدا با دستور sudo -i، مجوز دسترسی لازم را ایجاد می نماییم. سپس، برای ایجاد فایل تنظیمات، نیاز است تا به محل نصب و اجرای نرم افزار PPP، با دستور زیر، برویم:

cd /etc/ppp/peers/

در اینجا، به کمک ویرایشگر متن nano، فایلی به نام sim800c ایجاد نمایید.

nano sim800c

با بازگشایی فایل، عبارات زیر را در آن کپی نمایید.

 

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

 

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

 

باقی تنظیمات این فایل مربوط به نرخ انتقال داده(باودریت)، تنظیمات آی پی(چون در هربار اتصال آی پی تغییر می نماید،عبارت noipdefault برای آن قرار می دهیم) و … می باشد. بنابراین، بدون تغییر در بقیه قسمت های این فایل، ابتدا کلید ترکیبی ctrl+x را فشرده و و با انتخاب گزینه y، فایل را ذخیره نمایید.

 


اینترنت GPRS رزبری پای با SIM800C


در این مرحله، نوبت به اتصال برد رزبری به اینترنت GPRS می رسد. همانطور که پیشتر بیان گردید، برای اتصال برد رزبری پای به اینترنت از طریق اینترنت GPRS شیلد SIM800C، از یک نرم افزار واسط، به نام PPP استفاده نمودیم تا درخواست های ما برای اتصال به اینترنت را به صورت AT-COMMAND برای ماژول SIM800C، ترجمه نماید. در قسمت بعدی نیز، تنظیمات لازم جهت اتصال به اینترنت، نظیر نام نقطه دسترسی و…. را درون فایلی به نام sim800c ذخیره نمودیم. برای اتصال برد به اینترنت، می بایست از دستور زیر استفاده نمود:

sudo pon sim800c

در عبارت فوق، به کمک دستور pon، اتصال به اینترنت فعال می گردد؛ همچنین، برای اتصال به اینترنت، می بایست نام فایلی که تنظیمات در آن ذخیره شده است(sim800c)،  به عنوان ورودی به pon داده شود. البته برای اتصال به اینترنت، مجوز root لازم بوده که با دستور sudo، این مجوز تامین می گردد. شایان ذکر است که پس از این دستور، می توانید با دستور exit از حالت root خارج شوید.

پس از دستور فوق،برد رزبری پای، همانند اتصال به یک مودم خانگی، به اینترنت متصل می شود. اولین نشانه اتصال برد به اینترنت، تغییر وضعیت چشمک زن شیلد است که به حالت چشمک زن سریع، تغییر وضعیت می دهد. همچنین، برای اطمینان از اتصال برد به اینترنت، دستور ifconfig را در ترمینال وارد نماید. در صورتیکه همه چیز درست پیش رفته باشد، با تصویر زیر مواجه خواهید شد:

 

با توجه به تصویر فوق، در قسمت PPP0 می توانید دو آی پی آدرس را مشاهده نمایید. یکی آی پی بعد از عبارت inet و دیگری پس از عبارت p-t است. اتصال اینترنت از طریق شبکه موبایل، تقریبا مشابه اتصال به یک مودم خانگی است.  همانطور که مودم خانگی یک آی پی آدرس عمومی در شبکه جهانی اینترنت داشته و با اتصال هر دستگاه به مودم، یک آی پی داخلی به آن تخصیص می دهد، دکل مخابراتی نیز یک آی پی آدرس عمومی در شبکه اینترنت داشته و با اتصال هر دستگاه تلفن همراه به آن، یک آی پی داخلی به آن تخصیص می دهد. در اینجا، آی پی درج شده بعد از عبارت inet، همان آی پی دریافت شده از دکل و آی پی درج شده بعد از عبارت p-t، ای پی عمومی(آی پی دکل در شبکه جهانی اینترنت) است. در ادامه، در صورتیکه نیاز داشتید تا ارتباط اینترنت قطع گردد، با دستور sudo poff، ارتباط قطع خواهد شد.

 


وسایل مورد نیاز


شیلد سیم کارت sim800C مخصوص رزبری پای Raspberry Pi GSM Shield

ماژول سیم کارت GSM و GPRS

برد رزبری پای Raspberry Pi

 


جمع بندی


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

 

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

 

 

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

معین صابری

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

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

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

۲۴ دیدگاه

    • سلام
      تست نکردم، ولی به نظر امکان پذیر است. در صورتیکه دیگر دوستان تجربه ای دارند، در بحث شرکت نمایند

  • سلام من این روش رو انجام دادم و عالی بود.
    متشکرم از شما
    فقط یک سوال دارم
    وقتی از این روش برای اینترنت استفاده میکنیم دیگه نمیتونم از at command استفاده کنم
    میخوام برای ارسال پیامک از at command استفاده کنم و برای ارسال عکس ها از این روش، چجوری امکان پذیره؟

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

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

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

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

  • ببخشید میشه یه شیلد سیم کارت نصل ۴ یا نصل ۳.۵
    بهش وصل کرد و از پورت یواس بی واسه وای فایش استفاده کرد و یه سوال دیگه میشه سرعت ارسال و دریافت داده رو باهاش تنظیم کرد.
    یعنی زیادش کرد؟
    ممنون

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

  • سلام
    Ppp در ifconfig نمایش داده میشود و ال ای دی ماژول هم چشمک زن تند میشود اما پینگ نمیدهد
    مینویسه destination host unreachable
    دلیلش چیه؟

  • سلام
    با این روش رزبریم رو به اینترنت متصل کردم
    اما بعد چند ساعت gprs قطع میشه چراغ ماژول هر سه ثانیه چشمک زن میشه. در حالی که دستگاه آنتن دهی خوبی داره .
    توی کد تعریف کردم در این مواقع این دستورا رو وارد کنه:
    sudo poff rnet
    time.sleep(2)
    sudo pon rnet
    اما اصلا نمیتونه دوباره کانکت بشه مگر اینکه برقش رو قطع و وصل کنم.
    شما دلیل احتمالی میدید؟

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

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

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

    • سلام
      بله این ماژول ها پایه reset یا power key دارند که با اعمال پالس، میتوان آن را ریست کرد