خانه / آموزش های الکترونیک / آموزش Raspberry / راه اندازی SIM808 توسط Raspberry Pi 3

راه اندازی SIM808 توسط Raspberry Pi 3

sim808 چیست؟
طراحی یک سیستم بر اساس ارسال پیام،انتقال داده،ایجاد تماس صوتی و موقعیت یابی جغرافیایی و یا مواردی از این دست، ملزم به طراحی و استفاده از مدارهای مخابراتی و یا استفاده از ماژول های از پیش طراحی شده مانند خانواده ی SIM800 است.
ماژول مخابراتی SIM808 توسط شرکت SIMCOM ارائه شده است ،SIM808 یک ماژول GPS/GSM/GPRS/BLUETOOTH با قابلیت پشتیبانی از چهار کانال 1900/1800/900/850برای ارسال دیتا،SMS،MMS،برقرای تماس صوتی ودریافت موقعیت جفرافیای است. این ماژول مخابراتی را میتوان به عنوان یک تلفن همراه هوشمند در نظر گرفت که کاربران به وسیله ی آن میتوانند دیتا را به درستی ارسال و دریافت کنند.این ماژول قابلیت پشتیبانی ازتمام اپراتور های مخابراتی را دارا می باشد.برای را ه اندازی وبرقراری ارتباط با این ماژول میتوان از از دو پروتکل UART و SPI استفاده کرد.
برد صنعتی sim808 در محیط های صنعتی ا ی که فاصله ی کنترل کننده ی این برد تا خود برد طولانی است از کانکتور سریالUART- RS232 استفاده میشود. اما در فاصله ی های نزدیک و متوسط از کانکتور ها ی GPIO و USB استفاده میشود .در حالتی که از کانکتور USB استفاده شود باید از پروتکل سریال UART استفاده شود زیرا در برد از یک مبدل USB به سریال استفاده شده است که توسط رزبری قابل استفاده است.اما کانکتوری که در این قسمت از ان استفاده شده است GPIO میباشد. در این کانکتور میتوان از دو پروتکل SPI و UART استفاده کرد. همچنین پینهای دیگری را نیز دارد که در راه اندازی آسان این برد به ما کمک میکنند یکی از پینها پین RI میباشد.
برای کار و راه اندازی این ماژول به سادگی با استفاده از ATCommand ها کنترل این ماژول را در اختیار بگیرید.

 

aaaa

 

ATCOMMAND ؟
یک زبان مشترک در اکثر وسایل جانبی است.که معمولا درگوشی های همراه برای ارتباط پردازنده با وسایل جانبی استفاده شده است.در اینجا تعدادی از دستوراتی که در این پروژه استفاد شده است را آورده ایم.در انتهای هر دستور باید کارکتر NEW LINE که همان عدد 13 است را ارسال کنیم.

دستورات صوتی
دستورات صوتی

 

دستورات عمومی
دستورات عمومی

 

دستورات پیام کوتاه
دستورات پیام کوتاه

نحوه ی کار و شماتیک پروژه:
همانطور که در شکل زیر مشاهد میکنید برای راه اندازی برد SIM808 تنها به 5 سیم نیاز است. که دوسیم آن برای تغذیه ی ماژول استفاده میشود.البته باید توجه کنیدکه ولتاژ تغذیه ماژول جدا از رزبری باشد و از پین های رزبری برای تغذیه ماژول استفاده نکنید
سه سیم دیگری برای ارتباط با SIM808 استفاده شده که دو تای آن برای دریافت و ارسال اطلاعات با پروتکل UART استفاده شده و یک سیم نیز که به پینی بانام RI ماژول وصل شده است. این پین به صورت خروجی در ماژول بوده و در حالت عادی 1منطقی (4.2v) است و در صورتی که یک پیام دریافت شود برای مدت کوتاهی به صفر ولت میرسد و در صورتی که تماسی با سیم کارت داخل ماژول گرفته شود این پین تا قطع تماس به صفر ولت تغییر پیدا میکند. بدین صورت میتوان به رزبری از طریق این پایه برای دریافت پیام وتماس اطلاع داد.

پایه کاربردی دیگر مربوط به روشن / خاموش کردن ماژول است که با نام PWR مشخص شده است. برای روشن کردن و خاموش کردن این ماژول باید یک پالس به مدت یک ثانیه به این پین از طرف رزبری اعمال کرد.
نکته ی مهم دیگر این است که برای کاهش سطح ولتاژ هایی که از طریق ماژول به رزبری میرسد میتوانید از تقسیم مقاوتی نیز استفاده کنید(اگر چه این کار برای محافظت پین های رزبری لازم است ولی به دلیل کم بودن ولتاژ پایه های خروجی ماژول میتوانید از این مقاومت ها استفاده نکنید).برای تغذیه ی این ماژول از یک آداپتور 5V با جریان 2A استفاده کنید. زیرا SIM808 در هنگام اتصال به شبکه جریان بالا یی در حدود 1.5A را از تغذیه میکشد. همچنین برای اتصال به شبکه ی موبایل و GPS نیاز به دو آنتن مجزا دارید.

board-01

کلیات برنامه:
بدنه ی اصلی برنامه ی فوق از تابع gets وتعدادی شرط ساخته شده است بطوری که یک رابط کاربری از طریق خط فرمان ایجاد میکند، در ابتدای اجرا، برنامه از کاربر درخواست نوشتن یک دستور در خط فرمان میکند برای تحقق این امر در داخل تابع main توسط تابع gets یک رشته(دستور) را از کاربر دریافت میکند وبا شرطهای موجود مقایسه میکند و طبق دستور نوشته شده یکی از توابع اجرا میشود. برای مثال اگر کاربر پس از اجرای برنامه دستور call وارد کند برنامه از کاربر درخواست شماره میکند، پس از نوشتن شماره سیستم با شماره ی وارد شده توسط کاربر تماس میگیرد.برای مقایسه ی دستورات وارد شده توسط کاربر از تابع strcmp که درکتابخانه string قرار دارد استفاده شده است.

توابع مورد استفاده در این پروژه:
در توابع که بررسی شده اند بادستوراتی همچون:

مواجه خواهید شد. این دستور در واقع همان کارکتر NEW LINE را از طریق پورت سریال ارسال میکند. بعد از هر دستور فرستاده میشود.

تابع تماس :
از این تابع برای برقراری تماس استفاده میشود.
ورودی اول مقدار توصیفگر فایل مربوط به UART است، که به منظور استفاده ی توابع سریال داخل این تابع استفاده شده است.
ورودی دوم شماره ای که میخواهید با آن تماس بگیرید را به صورت رشته وارد میکنید.
# “ATD” //دستور برقرای تماس
# “ATH”//دستور قطع تماس

 

تابع خواندن پیام:
از این تابع برای خواندن پیام استفاده میشود ورودی اصلی این تابع نیز آدرس پیام است.

 

به محض ارسال آدرس، ماژول شروع به ارسال اطلاعاتی از پیام(همانند شماره تلفن فرستنده،زمان ارسال و…)بعلاوه متن پیام میکند. برای اینکه مراحل استخراج متن پیام ساده باشد، پیام ها باید در قالب خاصی ارسال شوند.
این قالب باید به صورت زیر است.
#پیام کمتر از بیست کارکتر ;
حلقه ی while دوم برای پیدا کردن ابتدای متن پیام و شرط داخل حلقه ی for برای پیدا کردن انتهای پیام بکار رفته است. در نهایت پیام دریافتی در داخل آرایه ای ذخیره میشود تا در مرحله بعد یعنی مرحله شرط ها دستور توسط برنامه اجرا شود.
توجه :اگر پیام خارج از قالب پیشنهادی باشد سیستم در یک حلقه گیر خواهد کرد و سیستم را دچار مشکل میکند.این هزینه ای است که در قبال سادگی پرداخت میکنیم.

 

منبع: ECA

درباره ی electrical engineer

همچنین ببینید

تعریف IP Static برد Raspberry Pi

مقدمه: حتما تاکنون برای شما پیش آمده که بخواهید با Raspberry Pi خود ریموت بشین …

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بیست + 2 =