آموزش رزبری پای رزبری پای سیم کارت GSM - GPRS

پروژه سنجش و نمایش دما با SMS برد رزبری پای توسط ماژول Sim800C

raspberry-pi-sms-temperature-monitoring-with-sim800c-digispark
نوشته شده توسط معین صابری

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

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

 

لینک اجرای این آموزش در لایو اینستاگرام

 


آماده‌سازی برد رزبری پای و پورت سریال


در ابتدا، نیاز است تا پورت سریال برد رزبری پای، جهت اتصال به ماژول مخابراتی یا همان ماژول sim800c، در دسترس قرار گیرد. بنابراین، ابتدا یک صفحه ترمینال بازنموده و عبارت زیر را در آن، تایپ نمایید. لازم به ذکر است در صورت وجود رمز عبور بر روی رزبری،  رمز عبور را حذف نمایید.

sudo  raspi-config

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

تنظیمات برد رزبری پای raspi-config - دیجی اسپارک

 

در صفحه فوق، گزینه ۵ را انتخاب نمایید. بعد از انتخاب گزینه فوق، از میان گزینه‌های موجود، p6serial را انتخاب نمایید، پس از انتخاب این مورد، در صورتی که پنجره زیر ظاهر گردید، مطابق تصویر گزینه no را انتخاب نمایید:

تنظیمات p6serial در سیستم عامل رزبین - دیجی اسپارک

 

پس از مورد فوق، نوبت به فعال‌سازی پورت سریال، با انتخاب گزینه yes به صورت زیر، می‌رسد.

فعال کردن سریال پورت رزبری پای - دیجی اسپارک

پس از مورد فوق، پنجره‌ای که ظاهر شده است را با انتخاب گزینه ok تایید نمایید. در این حالت، نیاز به راه‌اندازی مجدد برد رزبری پای است، بنابراین، در ترمینال، عبارت زیر را تایپ نمایید:

reboot

 


نرم افزار ماژول سیم کارت رزبری پای


پس از آنکه برد رزبری مجددا راه‌اندازی گردید، نیاز است تا یک برنامه، به عنوان رابط اتصال بین برد رزبری و ماژول‌های مخابراتی که در این پست همان ماژول sim800c است، نصب گردد.

sudo apt-get install gammu

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

sudo gammu-config

با تایپ عبارت فوق، با پنجره زیر مواجه خواهید شد:

فعال سازی gammu-config در رزبری پای - دیجی اسپارک

در منوی فوق، چنانچه در قسمت port، عبارتی به غیر از عبارت فوق درج شده بود، آن را به شکل فوق، تغییر دهید.

 


برنامه‌نویسی رزبری پای ماژول sim800c


در این قسمت، به طراحی نرم‌افزار جهت دریافت و ارسال پیام با ماژول sim800c، می‌پردازیم. پیش از هرچیز، ابزار برنامه‌نویسی خود را می‌بایست تعیین نماییم. در این پروژه، از ابزار برنامه‌نویسی که خود سیستم عامل لینوکس در اختیار ما قرار می‌دهد، shell script استفاده می‌نماییم. برای تعریف و تشریح  این ابزار، این موضوع را در نظر بگیرید که سیستم عامل لینوکس، دارای دستور العمل‌های بسیاری است که هرکدام وظیفه‌ای را انجام می‌دهند. چند مورد از این دستورات را بالاتر مشاهده نمودید. در حقیقت، کلیه کارهایی که به صورت گرافیکی، نظیر کپی کردن فایل‌ها، انتقال فایل‌ها، اتصال به اینترنت و….. انجام می‌دهیم، به کمک این دستورات، صورت می‌پذیرد. سیستم عامل لینوکس این قابلیت را دارد تا این دستورات را در یک فایل اجرایی ذخیره نموده و آن‌ها را اجرا نماید. ابزاری که سیستم عامل لینوکس در اختیار ما قرار می‌دهد محیط shell script است. در حقیقت، به کمک این دستورات، ما به هسته و یا کرنل سیستم عامل اعلام می کنیم که چه وظایفی را باید انجام دهد. بنابراین، محیط shell script را می‌توان به عنوان پوسته‌ای، دور هسته (کرنل) سیستم عامل در نظر گرفت که به عنوان یک رابط، دستورات را از کاربر تحویل گرفته و به کرنل، جهت اجرا، تحویل می‌دهد.

 

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

 

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

 


اجرا پروژه کنترل پیامکی رزبری پای


برای اجرای کدهای فوق روی ماژول sim800c، ابتدا به کمک ویرایشگر متن nano، یک فایل متنی با نام دلخواه و به صورت زیر ایجاد نمایید، در اینجا ما نام فایل را tmp قرار داده‌ایم.

nano tmp

پس از تایپ عبارت فوق در ترمینال، یک صفحه باز می‌شود، کدهای فوق را در آن کپی نمایید، سپس به قسمت شماره تلفن که با ستاره مشخص شده است، به کمک کلیدهای جهتی کیبرد پیش بروید و شماره تماس خود را در آن درج نمایید. سپس به کمک کلید ترکیبی ctrl+x فایل را ببندید، در اینجا سیستم از شما تقاضای ذخیره فایل نموده که با انتخاب دکمه y، آن را تایید نمایید. پس از این مرحله، می‌بایست فایل فوق را که به صورت متنی است، به حالت اجرایی تبدیل نماییم. بنابراین، به کمک دستور زیر،  فایل از حالت متنی به حالت اجرایی تبدیل خواهد شد:

chmod +x tmp

پس از انجام مرحله فوق، می‌بایست برنامه را اجرا نماییم. بدین منظور، به کمک دستور زیر، برنامه اجرا خواهد شد:

./tmp

پس از مرحله فوق، برنامه به اجرای در خواهد آمد و با ارسال عبارت temp به سیم‌کارت درون شیلد ماژول sim800c رزبری پای، دمای پردازنده به شماره تعیین شده، ارسال خواهد شد.

 


تحلیل کدهای SMS کنترل رزبری پای


در این قسمت، به تحلیل کدهای به کار رفته در نرم‌افزار و ماژول sim800c می‌پردازیم. همانطور که پیشتر بیان گردید، اساس طراحی برنامه مورد نظر، بر پایه و مبنای shell script صورت پذیرفته است. در خط اول، ابتدا یک متغیر به نام x تعریف نموده و مقدار آن را ۵ قرار می‌دهیم. از این متغیر، برای ایجاد یک حلقه تکرار بی‌نهایت، تعریف نموده و مقدار آن را ۵ قرار می‌دهیم. از این متغیر، برای ایجاد یک حلقه تکرار بی‌نهایت، استفاده می‌نماییم. سپس، در خط بعدی، به کمک دستور deleteallsms، کلیه پیام‌های موجود در سیم‌کارت را حذف می‌نماییم. در خط بعدی، به کمک ایجاد یک حلقه تکرار از نوع while، یک حلقه بی‌نهایت ایجاد می‌نماییم. فرمت دستور while در shell script، به صورت کلی، به شکل زیر است.

 

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

 

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

 

 


توضیحات ماژول Sim800C رزبری پای


شیلد SIM800C یک شیلد بهینه شده برای بردهای رزبری پای Raspberry Pi به صورت GSM/GPRS با قابلیت پشتیبانی از ۴ کانال ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰ MHz برای ارسال دیتا، SMS,MMS و برقرای تماس صوتی است. در شیلد SIM800C با استفاه از AT Command و پورت سریال رزبری پای علاوه بر مدیریت تماس صوتی و ارسال اس ام اس میتوان از پورت های GPIO رزبری پای استفاده کرد. مهم‌ترین ویژگی این برد عدم نیاز به سیم کشی است. همین موضوع روند پیشرفت پروژه مد نظر را تسریع می‌بخشد. کافیست ولتاژ ۵ ولت را از پورت مخصوص آن تامین کنید. تا به سادگی به شبکه متصل شود.

 


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


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

ماژول سیم کارت Sim800C

 

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

 

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

معین صابری

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

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

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

۱۰ دیدگاه