به احتمال زیاد با ماژول SIM900 آشنا هستید و میدانید که با این ماژول میتوانید مانند یک گوشی ساده عمل کنید مثلا پیامک بفرستید پیامک دریافت کنید تماس صوتی برقرار کنید به اینترنت وصل شود و غیره در پروژههای زیادی این ماژول میتواند به ما کمک کند. پروژههای کنترل از راه دور و یا مانیتورینگ از راه دور از جمله کاربردهای این ماژول هستند. چند نمونه از پروژههای طراحی شده با این ماژول را در وبسایت ما ملاحظه میکنید. در ادامه با ما باشید تا نحوهی طراحی یک منبع تغذیه خوب برای این ماژول و ارسال پیامک را برسی کنیم.
- هشدار نشتی گاز با ماژول SIM900 (و ماژولهای مشابه)
کاربرد بالا فقط چند نمونه از کاربردهای این ماژول هستند با خلاقیت شما کاربردهای بیشتری امکان پذیر است.
برای شروع کار تامین تغذیه مناسب برای ماژول SIM900 میباشد که از یک منبع تغذیه آزمایشگاهی و یا یک آداپتور بعلاوه مدار زیر میتوانید استفاده کنید و البته من خودم در بعضی از پروژهها از یک آداپتور و یک دیود سر راه تغذیه ماژول استفاده میکنم.
بعد از اتصال تغذیه ماژول دکمه روی ماژول را 1 ثانیه فشار دهید تا ماژول روشن شود.
برای تست ماژول راحت ماژول میتوانید با یک مبدل USB به سریال آنرا به کامپیوتر وصل کنید.
بعد از اتصال ماژول به مبدل نرم افزار تراترم و یا هر نرم افزار ترمینال سریال مانند هایپرترمینال و یا قسمت ترمینال سریال خود کدویژن را باز کنید و کامنت AT را با حروف بزرگ نوشته و اینتر بزنید. اگر ماژول روشن و مناسب تغذیه شده باشد و سالم باشد باید در جواب این کامنت OK را ارسال کند. نمونه عملی ارسال کامنت و پاسخ را در شکل زیر در نرمافزار TeraTerm مشاهده میکنید.
خب بریم سر ارسال پیامک با ماژول
برای ارسال پیامک اول باید فرمت تکست را برای ماژول انتخاب کنیم. با دستور زیر حالت پیامک به TEXT تغییر حالت میدهد پس قبل از ارسال پیامک باید دستور AT+CMGF=1 را به ماژول ارسال کنیم. بعد از تنظیم حالت پیامک ماژول با دستور زیر پیام را به شماره دلخواه ارسال میکنیم:
در دستور AT+CMGS ارسال پیامک، شماره تلفن باید بین ” ” باشد بعد یک ENTER و متن پیامک و بعد با گرفتن کنترل و زدن دکمه Z و یا CTRL+Z پیامک ارسال میشود.
نحوه اتصال ماژول به میکروکنترلر
در این آموزش من از میکروکنترلر AVR استفاده میکنم ولی برای میکروکنترلرهای دیگر نیز مشابه است. پایه ی RXD ماژول به پایه TXD میکروکنترلر و پایه TXD ماژول به پایه RXD میکروکنترلر وصل میشود. و پایه RI ماژول در مرحله دریافت پیامک بیشتر نیاز است به پایه وقفه میکروکنترلر وصل میشود و البته در این مرحله نیاز نمیباشد.
نکته مهم: در میکروکنترلر چگونه باید ENTER بزنیم و چگونه Ctrl+z بزنیم؟
جوابش خیلی ساده است با کد های اسکلی اینها خب کدهای اسکی مورد استفاده به شرح زیر هستند و برای کدهای بیشتر جدول اسکی را در گوگل سرچ کنید و اونجا کامل نوشته.
NTER 13 Ctrl+z 26 " 34 ' 39
خب خیلی ساده کد زیر در میکروکنترلر AVR و محیط کدویژن برای ارسال پیامک می باشد.
/* SIM900 Header Board Code example Send SMS Melec.ir */ #include <mega16.h> #include <alcd.h> #include <stdio.h> #include <delay.h> interrupt [USART_RXC] void usart_rx_isr(void) { //char data; #asm("cli") //data=UDR; // if you want to check the sim900 answer after send sms and etc... // you can use data var .... #asm("sei") } void main(void) { //USART Register Setting UCSRA=0x00; UCSRB=0x98; UCSRC=0x06; UBRRH=0x00; UBRRL=0x33; DDRD=(1<<DDD3); // PORTD.3 OUTPUT FOR ON/OFF SIM900 lcd_init(16); lcd_clear(); lcd_putsf("** SIM900 **"); lcd_gotoxy(0,1); lcd_putsf(" Melec.ir"); delay_ms(500); ///ON SIM900 PORTD.3=1; delay_ms(1000); PORTD.3=0; #asm("sei") while (1) { if(PIND.4==0){ while(PIND.4==0); lcd_clear(); lcd_putsf(" Sending SMS "); printf("AT%c",13); delay_ms(200); printf("AT+CMGF=1%c",13); delay_ms(200); printf("AT+CMGS=%c09371548691%c%c",34,34,13); // your phone number delay_ms(200); printf("HI! SIM900 %c%c",13,26); //sms text delay_ms(500); lcd_clear(); lcd_putsf("SMS Sent"); } } }
در کد بالا PORTD.3 برای روشن کردن ماژول با یک ترانزیستور به ماژول وصل شده که البته شما میتوانید بصورت دستی با فشار دادن شستی روی برد نیز ماژول را روشن کنید. در کد بالا با فشار دادن کلید وصل شده به پایه PORTD.4 یک پیامک ارسال و میشود روی ال سی دی هم مینویسد که پیامک ارسال شد.
منبع: میکرودیزاینرالکترونیک