خانه / مطالب علمی / کنترل رله با پیامک توسط Sim800L

کنترل رله با پیامک توسط Sim800L

ارتباط از راه دور، يكي از قابليت هاي کلیدی و کاربردی براي طراحان الكترونيك به حساب مي آيد.حال آنکه يك مهندس طراح با افزودن برد راه انداز SIM800 به دستگاه طراحي شده خود اين قابليت حياتي را در اختيار مي گيرد. برد راه انداز SIM800 در حقيقت يك تلفن همراه هوشمند است كه فرمان هاي مختلف و متنوع دستگاه های طراحي شده را به درستي دريافت و ارسال مي نمايد و از سوي ديگر پاسخ های مربوطه را نيز از دستگاه يا كاربر انساني دريافت كرده و به دستگاههاي طراحي شده تحويل مي دهد.

 

PinOut ماژول Sim800L

مشخصات ماژول Sim800L

Supply voltage: 3.8V – 4.2V
Recommended supply voltage: 4V
Power consumption:
sleep mode < 2.0mA
idle mode < 7.0mA
GSM transmission (avg): 350 mA
GSM transmission (peek): 2000mA
Module size: 25 x 23cm
Interface: UART (max. 2.8V) and AT commands
SIM card socket: microSIM (bottom side)
Supported frequencies: Quad Band (850 / 950 / 1800 /1900 MHz)
Antenna connector: IPX
Status signaling: LED
Working temperature range: -40 do + 85 ° C

برنامه کنترل رله با پیامک توسط Sim800L

شماتیک قسمت sim800

توضیحات برنامه :
ابتدا تنظیمات کد ویزارد رو به صورت زیر انجام میدیم:

سپس در برنامه اصلی هدر string رو اضافه میکنیم به همراه متغیر های مورد نیاز که جلوتر توضیح داده خواهند شد:

به کد های تولید شده کدویزارد دست نمیزنیم،به جز خط زیر که مربوط به یوزارته:

کد:
در این کد RXEN رو صفر میکنیم
سپس قبل حلقه while یه تاخیر 10 ثانیه ای قرار میدیم برای اینکه sim800 شبکه رو پیدا کنه(میتونید این زمان رو کمترش کنید) و سپس دوباره RXEN رو فعال میکنیم:

کد:
در کد زیر AT میفرستیم تا اینکه OK دریافت کنیم
توجه کنید sim800 به صورت auto baudrate می باشد یعنی اگر AT براش بفرستیم خودش تشخیص میده که با چه باد ریتی براش دیتا فرستادیم و با همون بادریت برامون دیتا میفرسته که اینجا بادریت رو 9600 تنظیم کردیم
نکته مهم در این کد استفاده از تابع strstr می باشد.به کمک این تابع شما میتونید در بافر دریافت دیتا دنبال رشته مورد نظرتون بگردید که اگر پیدا شد مقدار اشاره گر pch عددی غیر صفر خواهد شد
جلوتر در مورد این تابع توضیح بیشتری میدم.برای اطلاعات تکمیلی میتونید لینک های زیر رو هم ببینید

http://www.cplusplus.com/reference/cstring/strstr/
https://www.tutorialspoint.com/c_sta…ion_strstr.htm

بعد از اینکه OK دریافت شد portb.1 صفر خواهد شد.

در خط زیر echo را خاموش میکنیم تا دیتاهایی که خودمون میفرستیم رو دیگه دریافت نکنیم:

کد:
با استفاده از خط زیر بافر دریافت را پاک میکنیم

کد:
با استفاده از کد زیر حالت پیامک را روی text mode قرارمیدهیم(دو حالت داریم pud و textmode که باید پیامک رو روی text mode تنظیم کنیم) و منتظر میمونیم تا OK دریافت کنیم:

کد:
با استفاده از کد زیر پیامک sim800 was turned on رو به شماره ای که از قبل تعیین کردیم میفرستیم:

با استفاده از کد زیر پیامک های ذخیره شده در ماژول را پاک میکنیم:
در کد زیر میاد میبینه که اگر تعداد پیام به 8 رسید کل پیام های ماژول رو پاک میکنه:
در کد زیر منتظر میمونه تا +CMTI از ماژول دریافت کنه که یعنی پیام جدید اومده
فرمت کد دریافتی به صورت زیره:
که سیزدهمین کاراکتر شماره خونه ایه که پیام در اون ذخیره شده که یعنی pch[12] برابر شماره خونه پیامک دریافتی میشه
بنابر این میایم با کد زیر پیام اون خونه رو میخونیم(درواقع همون پیام جدید)
با استفاده از کد زیر هم میاد بررسی میکنه که اگر on# اومد رله رو وصل و اگر off# اومد رله رو قطع میکنه
کتابخانه آلتیوم ، شماتیک و فوت پرینت ماژول SIM800L

نویسنده :  سید رضا باباتبار

لینک موضوع در انجمن :  http://www.eca.ir/forums/thread77254.html

پاسخ دهید

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

*

code