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

کنترل وسایل برقی با برد رزبری پای و اینترنت GPRS شیلد SIM800C

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

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

 


برد رزبری پای در پروژه اینترنت اشیا


برد رزبری پای، یک کامپیوتر تک بردی با توان پردازشی فوق العاده که امکان دسترسی مستقیم به پیاه های پردازنده را برای کاربر فراهم می نماید. وجود پردازنده با فرکانس ۱٫۴ گیگاهرتزی، حافظه رم بالا، اتصال کارت SD به عنوان حافظه ذخیره سازی و سیستم عامل قدرتمند لینوکس، استفاده از این پلتفرم را در پروژه های اینترنت اشیا، توجیه می نماید. به کمک این سیستم عامل، می توان به منابع بی شماری از ابزارها و امکانات نرم افزاری و شبکه ای دسترسی داشت. از طرفی، با توجه به وجود این سیستم عامل قدرتمند، بر خلاف بردهای تک برنامه ای، TASK های بیشماری را می توان بدون نگرانی از تاخیر در اجرا، به این برد سپرد.

معرفی برد رزبری پای Raspberry pi 3 A+ digispark

 


تنظیم برد رزبری پای و اتصال به سرور


برای اتصال برد رزبری پای به اینترنت و ارسال و دریافت داده، همانند آموزش اتصال برد رزبری پای به اینترنت GPRS شیلد SIM808، عمل می نماییم. در این آموزش برد رزبری پای به عنوان مادر فرمان به وسایل برقی با اینترنت عمل می‌کند. تنظیمات مربوط به اتصال برد را درون فایلی به نام SIM800C ذخیره کرده و سپس به کمک یک نرم افزار واسط به نام ppp، با دستور زیر، اتصال به اینترنت را فعال می نماییم.

sudo pon sim800c

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

curl --version

تنظیمات رسپبری پای با فرمان به وسایل برقی با اینترنت - دیجی اسپارک

در صورت عدم نصب این ابزار در سیستم خود، با دستور زیر، اقدام به نصب آن نمایید.

sudo apt-get install curl

پس از نصب ابزار فوق، می توان به ارسال و دریافت داده از طریق سرور و به کمک ترمینال در برد رزبری پای پرداخت. در حقیقت ابزار curl را میتوان همانند مرورگر در نظر گرفت که قابلیت اجرای فرامین پروتکل های مختلف نظیر FTP، HTTP و… را از طریق ترمینال لینوکس، فراهم می آورد.

 


کنترل GPIO در برد رزبری پای


یکی از مهم ترین قسمت های پروژه فرمان به وسایل برقی با اینترنت، کنترل وضعیت رله از طریق اینترنت است. مشابه آموزش کنترل رله با پیامک، در اینجا نیز رله خود را به پایه GPIO 26 رزبری متصل نموده و سپس به کمک دستور gpio -g، وضعیت رله را کنترل خواهیم نمود؛ برای تعیین وضعیت پایه به صورت خروجی، از دستور زیر استفاده می نماییم.

gpio -g mode 26 out

سپس تعیین وضعیت پایه به صورت یک منطقی، به کمک دستور زیر صورت می پذیرد.

gpio -g write 26 1

برای بررسی بیشتر در رابطه با پایه های GPIO برد رزبری پای، به تصویر زیر توجه نمایید.

کنترل GPIO برد رزبری پای با ماژول سیم کارت - دیجی اسپارک

در قسمت بعدی، در قالب یک برنامه تحت shell script، برنامه ای خواهیم نوشت که با استفاده از دستور curl، دمای cpu را به سرور ارسال نموده و سرور نیز در جواب، وضعیت رله و پیام متنی کاربر را برای ما ارسال خواهد نمود.

 


شماتیک مدار و اتصالات


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

پایه VCC ماژول رله به ۳٫۳V رزبری

پایه GND ماژول رله به  GND رزبری

پایه IN ماژول رله به پایه GPIO26

اتصال رله به برد رزبری پای Raspberry Pi - دیجی اسپارک

 


سورس برنامه فرمان به وسایل برقی


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

کنترل وسایل برقی با اینترنت GPRS برد رزبری پای - دیجی اسپارک

 

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

 

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

 


تحلیل کدهای پروژه


در پروژه کنترل وسایل برقی با اینترنت سیم کارت رزبری پای، همانند پروژه ارسال پیامکی دما به کمک برد رزبری پای و پروژه کنترل پیامکی رله، به کمک متغیر z و بدون تغییر مقدار آن، یک حلقه تکرار ساختیم تا برنامه ما هواره در حال اجرا باشد. در ادامه، ابتدا پایه ۲۶ را به عنوان خروجی و با مقدار پیشفرض ۰ انتخاب می نماییم. سپس درون حلقه تکرار، به ترتیب، روال زیر را خواهیم داشت.

دریافت دمای CPU رزبری  و ذخیره آن در متغیر tmp

ترکیب دمای ذخیره شده با عبارت =tmp  جهت ارسال داده ها تحت متد POST

استفاده از دستور curl جهت ارسال داده ها به سرور و ذخیره پیام دریافتی از سرور در فایل server.txt به کمک عملگر

ذخیره بایت اول فایل server.txt (وضعیت رله) در فایل state.txt

جستجو در فایل state برای مقدار ۰ یا ۱ در جهت تعیین وضعیت رله

فرمان به رله با توجه به مقدار ذخیره شده در فایل state.txt

 


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


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

شیلد سیم کارت ماژول SIM800C

ماژول رله Relay

کابل فلت


جمع بندی


در این آموزش، به طراحی پروژه ای پرداختیم که به کمک آن، می توانیم علاوه بر ارسال دما به یک سرور اینترنتی(پلتفرم IOT)، از همان سرور فرمان کنترل وضعیت رله را نیز صادر نماییم، برای این منظور، از یک برد رزبری پای ۳ مدل +B به همراه شیلد سیم کارت SIM800C مخصوص برد رزبری، استفاده نموده و مشابه این آموزش، لایه سخت افزار را در طراحی پلتفرم خود، طراحی و پیاده سازی نمودیم. همانطور که مطلع هستید، برد رزبری پای دارای توان پردازشی بسیار بالا در کنار تعداد بی شماری پایه های ورودی و خروجی(GPIO)، می تواند به عنوان یک پلتفرم بسیار قدرتمند در پروژه های اینترنت اشیا ظاهر شود. از طرفی دیگر، وجود سیستم عامل لینوکس با ابزارهای کاربردی بی شمار، برد رزبری پای را به یک انتخاب مهم و پلتفرمی بی رقیب در بازار اینترنت اشیا، تبدیل می نماید.

 


ایده پردازی


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

 

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

 

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

معین صابری

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

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

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

۴ دیدگاه

  • سلام ممنون از آموزش خوبتون

    امکانش هست بگید که چطور میشه Header دلخواد به درخواست هامون اضافه کنیم؟

    مثلا وقتایی که نیاز هست یسری تنظیمات برای Api ارسال کنیم

    • سلام و ممنون از شما
      دقیقا به همان شیوه ای که در کدها داده ها ارسال می گردد، شما نیز می توانید داده های مورد نظر خود را ارسال نمایید.

  • سلام و عرض ادب …
    میخواستم بدونم چطور با استفاده از برنامه نویسی پایتون و برد رزبری پای و ماژول sim800Lمیتونم پیامک ارسال کنم؟