سلام عليكم
أشرح لكم ماأعرفه عن أستخدام GSM لغرض أرسال رساله في حاله حصول سرقه او يمكن أستخدامه في تطبيقات أخرى
ولكن أيضا لي طلب هو دعم موضوع لغرض تطويره لفهم بشكل أوسع
وسنتعلم كيف طريقة كتاب الاوامر داخل الكود البرمجي بلغة المايكروسي لأرسال
رساله تحتوي على معلومات معينه ولكن قبل ذلك لتأكد من ان عملية التوصيل
هذه الصورة التي توضح ربط الموديول بالمايكروكنترولر .... لاحظ وجود الليدات التي تعمل وميض عند عملية
الارسال والاستقبال ... لتأكد ان الامر وصل الى الموديول بشكل صحيح بالتالي يبقى دور الموديول ودور شركه الاتصال الذي ينتمي لها ال SIM
http://img02.arabsh.com/uploads/imag...424b6df60c.png
والان دعنا ندخل الى هذه الاومر الخاصه بالموديول ....
قبل الدخول الى الاوامر .... لابد من النتويه ان بعد كل أمر يجب ارسال ضغطة الزر ENTER الى الموديول يتأكيد على
وصول الامر .... ويتم ذلك من خلال ارسال رقم الاسكي كود الخاص بهذا الزر وهو الرقم 13
أولا الامر AT >>
هذا الامر يقوم المايكروكنترولر بارساله الى الموديل لتأكد من ان عملية الاتصال صحيحه وسليمه 100 % ...... حيث
عند ارسال هذه الكلمه ) AT ( الى الموديول يجب على الموديول الرد على المايكروكنترولر بكلمة OK اذا كان الاتصال
سليم فيفهم المايكروكنترلر ان الاتصال سليم وان الموديول جاهز لأستقبال الاوامر
هذا هو كود
[[10]CODE]Char output;
void main(){
UART1_Init(9600);
Delay_ms(100);
UART1_Write_Text("AT");
UART1_Write(13);
UART1_Read_Text(output, 'OK', 10);[/CODE]
حيث تم وضع مودم على بمعدل ارسال 9600 وبعدها أنتظار 100 ملي ثانيه لغرض أستقرار مودم
ثم أرسال كلمه "AT" بعدها ارسال كلمه ENTER باسكي كود
ثم أنتظار لحين قراءه كلمه OK بنهايه النص وخزن البيانات في مصفوفه OUTPUT
**********************************************
الامر الثاني وهو AT+CMGF=1 (Control Massage Format)
وهنا لأرسال رساله من الموديول الى أي هاتف لابد من ضبط الموديول بأن صيغة الرساله هي TEXT وهذه الجمله
تقوم بهذا العمل أي نرسل الجمله كما هي ونرسل بعدا الرقم 13 كما في الاسطر التاليه ... وبالتأكيد ينتظر
المايكروكنترولر الى ان يصل له الرد من الموديول بأنه فهم هذه الكلمه
كود:
UART1_Write_Text("AT+CMGF=1");
UART1_Write(13);
UART1_Read_Text(output, 'OK', 10);
************************************************** *****
الامر الثالث وهو : "الرقم المراد ارسال الرسالة له"رقم "=AT+CMGS
هنا سيتم كتابه رقم المراد ارسال الرساله له
ملاحظه لابد من ارسال هذا رمز " مع رقم لذا سيتم ارسال مايكافئه في اسكي كود هو 0X22
كود:
UART1_Write_Text("AT+CMGS=");
UART1_Write(0x22);
UART1_Write_Text("4435536486468");
UART1_Write(0x22);
UART1_Write(13);
هنا اننا ارسلنا الامر AT+CMGS= ومن ثم ارسلنا الاسكي الخاص بالقوس الاول ومن ثم الرقم
ويجب ان يكون الرقم مزود بالرمز الدولي ومن ثم ارسلنا القوس الثاني ومن ثم ارسلنا رقم الاسكي لل ENTER بالتالي
اصيحت الرساله كامله لدينا لما يلي
AT+CMFS="4435536486468"
فيفهمها الموديول .... والان بقي لدينا أخيرا ارسال نص الرساله المراد ارسالها ويتم ذلك بأرسال الرساله مباشره أي
كما يلي :
UART1_Write_Text("Hello");
وهنا نكون ارسلنا الكلمه Hello الى الرقم 4435536486468 وهو رقم عشوائي فقط لتوضيح الفكره
وهذا كود كامل
كود:
void main(){
UART1_Init(9600);
Delay_ms(100);
UART1_Write_Text("AT");
UART1_Write(13);
UART1_Read_Text(output, 'OK', 10);
UART1_Write_Text("AT+CMGF=1");
UART1_Write(13);
UART1_Read_Text(output, 'OK', 10);
UART1_Write_Text("AT+CMGS=");
UART1_Write(0x22);
UART1_Write_Text("4435536486468");
UART1_Write(0x22);
UART1_Write(13);
UART1_Write_Text("Hello");