بردهای رزبری پای چندسالی است که در بازار الکترونیک وارد شده اند و با حضور خود، طراحی و اجرای بسیاری از پروژهای الکترونیک را تحت تاثیر خود قرار دادهاند. این بردها که تحت سیستمعامل لینوکس به تجزیه و تحلیل دادهها با سرعت و دقت بالا میپردازند، روند زمانی توسعه پروژهها را بسیار کوتاه نموده و بیشتر تمرکز طراحی بر روی برنامهنویسی آن، معطوف میگردد. با توجه به امکاناتی که این بردها در اختیار کاربران امکاناتی نظیر پردازنده قدرتمند، حافظه رم بالا، فرکانس کاری بالا پردازنده و…. قرار میدهند، این بردها را میتوان مشابه با یک رایانه در نظر گرفت، اما با این تفاوت که به لطف وجود این بردها، شما امکان دسترسی مستقیم به پایههای پردازنده خود یعنی همان GPIO را دارید. از طرفی، با وجود سیستم عامل، آن هم سیستمعامل قدرتمند لینوکس، انعطاف بسیار زیادی را در توسعه نرمافزاری، ایجاد خواهد نمود.
از طرفی دیگر، به کمک ماژولهای مخابراتی شرکت سیمکام از جمله ماژول sim800c، امکان برقراری ارتباط بیسیم و اتصال به شبکه تلفن همراه را داریم. به کمک این ماژولها، توانایی برقراری تماس تلفنی، ارسال و دریافت پیامک و حتی اتصال به شبکه جهانی اینترنت را داریم. در این آموزش قصد داریم ضمن راهاندازی اولیه برد رزبری پای، آن را به ماژول sim800c متصل نماییم و به کمک برنامهای که خواهیم نوشت، دمای پردازنده را به کاربر پیامک نماییم. در این پروژه، جهت تسریع روند پروژه و کاهش سیمکشی بین برد رزبری و ماژول sim800c، از شیلد رزبری پای ماژول sim800c استفاده شده است. در ادامه این آموزش با مرجع تخصصی رزبری پای و مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.
لینک اجرای این آموزش در لایو اینستاگرام
آمادهسازی برد رزبری پای و پورت سریال
در ابتدا، نیاز است تا پورت سریال برد رزبری پای، جهت اتصال به ماژول مخابراتی یا همان ماژول sim800c، در دسترس قرار گیرد. بنابراین، ابتدا یک صفحه ترمینال بازنموده و عبارت زیر را در آن، تایپ نمایید. لازم به ذکر است در صورت وجود رمز عبور بر روی رزبری، رمز عبور را حذف نمایید.
sudo raspi-config
پس از اینکه عبارت فوق را در ترمینال تایپ نمودید، با صفحه زیر مواجه میشوید.
در صفحه فوق، گزینه ۵ را انتخاب نمایید. بعد از انتخاب گزینه فوق، از میان گزینههای موجود، p6serial را انتخاب نمایید، پس از انتخاب این مورد، در صورتی که پنجره زیر ظاهر گردید، مطابق تصویر گزینه no را انتخاب نمایید:
پس از مورد فوق، نوبت به فعالسازی پورت سریال، با انتخاب گزینه yes به صورت زیر، میرسد.
پس از مورد فوق، پنجرهای که ظاهر شده است را با انتخاب گزینه ok تایید نمایید. در این حالت، نیاز به راهاندازی مجدد برد رزبری پای است، بنابراین، در ترمینال، عبارت زیر را تایپ نمایید:
reboot
نرم افزار ماژول سیم کارت رزبری پای
پس از آنکه برد رزبری مجددا راهاندازی گردید، نیاز است تا یک برنامه، به عنوان رابط اتصال بین برد رزبری و ماژولهای مخابراتی که در این پست همان ماژول sim800c است، نصب گردد.
sudo apt-get install gammu
پس از آنکه مرحله فوق تکمیل گردید، نیاز است تا برنامهای جهت ارسال دمای پردازنده به کاربر، بنویسیم. روال این برنامه را به این صورت طراحی میکنیم که در صورت دریافت پیامی با عنوان temp، به شمارهای که از پیش برای برنامه تعیین نمودهایم، دمای پردازنده را ارسال خواهیم نمود. برای اطمینان بیشتر از صحت عملکرد نرمافزار gammu، میبایست عبارت زیر را تایپ نمایید:
sudo 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 رزبری پای استفاده کرد. مهمترین ویژگی این برد عدم نیاز به سیم کشی است. همین موضوع روند پیشرفت پروژه مد نظر را تسریع میبخشد. کافیست ولتاژ ۵ ولت را از پورت مخصوص آن تامین کنید. تا به سادگی به شبکه متصل شود.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام
خیلی عالی بود متشکرم، با این شیلد sim800 رسپری پای من خیلی مشکل داشتم ولی این آموزش شما روان و عالی کمکم کرد.
خواهش میکنم
موفق باشید
سلام اقای صابری بابت توضیحات کامل ممنونم. آیا با sim800l هم قابل اجراست؟
سلام ، ممنونم، بله ، امکان پذیر هست.
سلام
ایا تماس تلفنی با این ماژول امکان پذیر است؟
سلام
بله، امکان پذیر است.
با سلام
من وقتی دستور sudo gammu-config میزنم روی قسمت پورت نوشته dev/mobile باید اینجا چی بنویسم؟
سلام
به شکل زیر آن را تغییر دهید:
dev/ttyUSB0/
لطفا مراحل نصب فیزیکی دستگاه رو هم بیان کنید.
آیا صرف سوار کردن این هت بر روی رسپبری کافیه یا نیاز به منبع تغذیه مستقل هم داره؟
کافیست شیلد را بر روی رزبری پای سوار نمایید، این شیلد تغذیه خود را از رزبری پای تامین مینماید و نیازی به تغذیه جداگانه ندارد.