- بعض التطبيقات العملية نحتاج احياناً للتواصل مع الهواتف الخلوية , بغرض ارسال رسائل او استقبالها و حتى اجراء مكالمات او استقبالها .
- تعتبر القطعه SIM900 نظام متكامل و فعّال للاتصالات الخلوية رباعية التردد (850 - 900 - 1800 - 1900 ميجا هيرتز ) قادرة على التعامل مع شرائح الهاتف النقّال ارسال و استقبال المكالمات و الرسائل النصية بالأضافة لاحتوائها مزايا اخرى مثل امكانية الوصول للانترنت عبرها , دعمها لخدمة التموضع العالمي GPRS .
* التجربة :
1) أردوينو .
2)EFCOM Pro GSM SIM900
3) اسلاك توصيل
4)لوحة توصيل صغيرة breadboard
5) زمور او ضوء صغير LED Or Buzzer
6) مقاومة 50 - 100 أوم .
7) شريحة هاتف SIM Card
8)مصدر تغذية لا يقل عن 5 فولت - 1 أمبير
- من المهم استخدام شريحة هاتف فعّالة و غير مغلقة Locked و ان تحتوي على رصيد كافي " في حال اردت الأتصال او ارسال رسائل نصية " و ان تكون في مكان توجد به تغطية لشبكة الهاتف.
1) PWR LED : يدل على تغذية اللوحة بالفولتية و بدء تشغيلها .
2)NET LED : هذا الضوء في حال كان يعطي ترميشاً Blink سريعاً فهذا يعني انه لم يربط القطعه مع شبكة الهاتف , اذا تم الربط مع الشبكة بشكل صحيح فسوف يعطي ترميشاً بطيئاً .
3) STA LED:هذا يعطي مؤشراً على بدء الأتصال مع الشبكة في محاولة للاتصال بها .
3) STA LED:هذا يعطي مؤشراً على بدء الأتصال مع الشبكة في محاولة للاتصال بها .
يجب تغذية هذه اللوحة بمصدر جهد كافي لا يزيد جهده عن 5 فولت و لا يقل تياره عن 1 أمبير لان SIM900 تسحب تياراً عالياً في وضعيه التشغيل .
سأقوم بتنفيذ تجربة ارسال و استقبال للمكالمات و معرفة اذا ما كان هنالك اتصال ورد او ان ال SIM900 يقوم باجراء مكالمة .
قم بتغيير رقم الهاتف في المثال بالرقم الذي يناسبك .
عليك ايضاً قبل تحميل البرنامج تحميل هذه المكتبة و وضعها في مسار المكتبات الخاصة بالأردوينو .
البرنامج :
/* SIM900A breakout send and receive calling code written by : AIT-LASRI YOUNES https://www.facebook.com/arduino.electromaroc/ */ #include <SoftwareSerial.h> #include "SIM900.h" #include "sms.h" #include "call.h" CallGSM call; SMSGSM sms; const int buzzer = 12 ; boolean BuzzerStatus = false ; byte CheckCallStatus; void setup() { // put your setup code here, to run once: Serial.begin(38400); pinMode(buzzer,OUTPUT); Serial.println("Mohannad Rawashdeh,GSM Shield Starting ..."); //Start configuration of shield with baudrate. //For http uses is raccomanded to use 4800 or slower. if (gsm.begin(19200)){ Serial.println("Ready to use ");} else{ Serial.println("Failed to initilaize ! " ); } } void check(){ Serial.print("CheckCallStatus is : "); switch(CheckCallStatus){ case 0: Serial.println("no call untill Now");BuzzerStatus = false ; break; case 1: Serial.println("Voice call Incoming");BuzzerStatus=!BuzzerStatus;break; case 2: Serial.println("Active Voice call ");break; } } void loop() { CheckCallStatus=call.CallStatus();check(); digitalWrite(buzzer,BuzzerStatus); if (Serial.read() =='a'){ delay(1000); call.Call("xxxxxxxxx"); //Put Your number here CheckCallStatus=call.CallStatus();check(); delay(20000);// wait to make a Call ! call.HangUp();// Interrupt the calling , finish it . // put your main code here, to run repeatedly: } delay(1000); // put your main code here, to run repeatedly: }
EmoticonEmoticon