إرسال واستلم الرسائل القصيرة والمكالمات مع وحدة SIM800L GSM الجزء الثاني اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

الأسلاك - توصيل وحدة SIM800L GSM إلى اردوينو UNO :

الأسلاك - توصيل وحدة SIM800L GSM إلى اردوينو UNO :

الآن بعد أن عرفنا كل شيء عن الوحدة ، يمكننا أن نبدأ في ربطها مع الاردوينو !

ابدأ من خلال لحام أو توصيل الهوائي ، وأدخل بطاقة Micro SIM نشطة بالكامل في المقعد .

الآن ، قم بتوصيل Tx pin on module إلى pin رقم 3 على الاردوينو حيث سنستخدم البرنامج التسلسلي للتحدث إلى الوحدة .

لا يمكننا توصيل Rx pin مباشرة بوحدة الاردوينو الرقمية لأن الاردوينو  يستخدم 5V GPIO بينما تستخدم وحدة SIM800L GSM منطق مستوى 3.3V ولا تتسامح مع 5V .

هذا يعني أن إشارة Tx القادمة من الاردوينو يجب أن تنخفض إلى 3.3 فولت حتى لا تتلف وحدة SIM800L GSM . هناك عدة طرق للقيام بذلك ولكن أسهل طريقة هي استخدام مقسم مقاوم بسيط .

تعمل المقاوم 10K بين SIM800L GSM Rx و Arduino D2 ، و 20 K بين SIM800L GSM Rx و GND بشكل جيد .
الآن ما زلنا مع الاطراف المستخدمة لتوفير الطاقة للوحدة . نظرًا لأن لديك خيارات متعددة لتشغيل الوحدة ، فقد قدمنا ​​مثالين على ذلك . الواحدة تستخدم بطارية 1200mAh Li-Po والآخر تستخدم محول باك LM2596 DC-DC .

Arduino-Wiring-Fritzing-Connections-with-SIM800L-GSM-GPRS-Module-3.7V-LiPo-Battery
Arduino-Wiring-Fritzing-Connections-with-SIM800L-GSM-GPRS-Module-LM2596
تلميح :

في حال كنت تستخدم محول باك LM2596 لتشغيل الوحدة ، تذكر أن تشترك جميع GND في الدائرة.

بمجرد الانتهاء من كل شيء ، تكون جاهزًا للأنطلاق !

تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

كود الاردوينو - اختبار أوامر AT لوحدة SIM800L GSM :

لإرسال أوامر AT والتواصل مع وحدة SIM800L GSM ، سوف نستخدم الشاشة التسلسلية . سيمكّن الكود أدناه الاردوينو من الاتصال بوحدة SIM800L GSM على الشاشة التسلسلية .

قبل أن نتابع الفصل التفصيلي للشفرة ، قم بتوصيل الاردوينو بالكمبيوتر الشخصي ، وقم بتجميع الكود أدناه وتحميله على الاردوينو .

بمجرد فتح شاشة التسلسلية ، تأكد من تحديد الخيار “كلاهما NL & CR”!

لتحميل الكود البرمجي اضغط هنا
#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();
  mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println("AT+CREG?"); //Check whether it has registered in the network
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

يجب أن تشاهد أدناه  على الشاشة التسلسلية .

SIM800L-GSM-Module-Basic-AT-Commands-on-Arduino

أنت الآن حر في إرسال أي أوامر من خلال الشاشة التسلسلية مثل الاوامر أدناه والتي تقدم المزيد من المعلومات حول اتصال الشبكة وحالة البطارية :

ATI – احصل على اسم الوحدة والمراجعة

?AT +COPS  – تحقق من أنك متصل بالشبكة ، وفي هذه الحالة BSNL

?=AT + COPS  – أعد قائمة المشغلين الموجودين في الشبكة…

AT + CBC – سيعود حالة بطارية ليبو. الرقم الثاني هو٪ ممتلئ (في هذه الحالة 93٪) والرقم الثالث هو الجهد الفعلي في mV (في هذه الحالة ، 3.877 فولت)

SIM800L-GSM-Module-Network-Connection-AT-Commands-on-Arduino

كود اردوينو - إرسال الرسائل القصيرة لوحدة SIM800L GSM :

دعنا ننتقل إلى الأشياء المثيرة للاهتمام . دعنا نبرمج اردوينو لإرسال رسالة نصية إلى أي رقم هاتف ترغب فيه . قبل تجربة الكود ، تحتاج إلى إدخال رقم الهاتف . ابحث عن السلسلة ZZxxxxxxxxxx واستبدل ZZ برمز المقاطعة و xxxxxxxxxx برقم الهاتف المكون من 10 أرقام .

لتحميل الكود البرمجي اضغط هنا
#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();

  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
  updateSerial();
  mySerial.print("i electrony | ielectrony.com"); //text content
  updateSerial();
  mySerial.write(26);
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

تبقى الحلقة فارغة لأننا نريد إرسال الرسائل القصيرة مرة واحدة فقط. إذا كنت ترغب في إرسال رسالة نصية قصيرة مرة أخرى ، فما عليك سوى الضغط على مفتاح “إعادة الضبط” في الاردوينو . يظهر أدناه لقطة شاشة الرسائل القصيرة المرسلة من وحدة SIM800L GSM .

Untitled

كود اردوينو - قراءة الرسائل القصيرة لوحدة SIM800L GSM :

الآن دعنا نبرمج اردوينو لقراءة الرسائل الواردة . يعد هذا المخطط مفيدًا للغاية عندما تحتاج إلى بدء إجراء ما عند تلقي رسالة SMS محددة . على سبيل المثال ، عندما يتلقى الاردوينو رسالة نصية قصيرة ، يمكنك إرشادها لتشغيل أو إيقاف تشغيل التتابع. لقد حصلت على الفكرة !

لتحميل الكود البرمجي اضغط هنا
#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();
  
  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

لاحظ أننا في هذه المرة لم نحتفظ بوظيفة الحلقة فارغة نظرًا لأننا نقوم باستقبال الرسائل القصيرة التي وصلت حديثًا . بمجرد إرسال الرسائل القصيرة إلى وحدة SIM800L GSM ، سترى الإخراج أدناه على الشاشة التسلسلية .

3

اردوينو كود - إجراء مكالمة من وحدة SIM800L GSM :

الآن دعنا نبرمج اردوينو لإجراء مكالمة . يعد هذا الكود مفيدًا للغاية عندما ترغب في قيام الاردوينو بإجراء مكالمة استغاثة أو استغاثة في حالة تجاوز درجة الحرارة في حالات الطوارئ أو اقتحام شخص ما لمنزلك . لقد حصلت على الفكرة !

قبل تجربة الكود ، تحتاج إلى إدخال رقم الهاتف . ابحث عن السلسلة ZZxxxxxxxxxx واستبدل ZZ برمز المقاطعة و xxxxxxxxxx برقم الهاتف المكون من 10 أرقام .

لتحميل الكود البرمجي اضغط هنا
#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, i t will back to OK
  updateSerial();
  
  mySerial.println("ATD+ +ZZxxxxxxxxxx;"); //  change ZZ with country code and xxxxxxxxxxx with phone number to dial
  updateSerial();
  delay(20000); // wait for 20 seconds...
  mySerial.println("ATH"); //hang up
  updateSerial();
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

أدناه تظهر لقطة شاشة مكالمة من وحدة SIM800L GSM .

33

كود اردوينو - تلقي المكالمات لوحدة SIM800L GSM :

تلقي مكالمة لا تتطلب أي كود خاص ؛ عليك فقط الاستمرار في الاستماع إلى وحدة SIM800L GSM . ومع ذلك ، قد تجد هذا الكود مفيدًا للغاية ، عندما تحتاج إلى بدء إجراء عند تلقي مكالمة من رقم هاتف معين .

لتحميل الكود البرمجي اضغط هنا
#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

يشار عادة إلى المكالمة الواردة من قبل “RING” على الشاشة التسلسلية تليها رقم الهاتف ومعرف المتصل. لقبول أو تعليق مكالمة ، يتم استخدام أوامر AT التالية :

  • ATA – يقبل مكالمة واردة .
  • ATH – تعليق المكالمة . عند تعليق المكالمة ، لا يرسل أي مشغل على الشاشة التسلسلية مما يشير إلى تعذر الاتصال .

يظهر أدناه الإخراج على الشاشة التسلسلية مكالمة تلقاها وحدة SIM800L GSM .

Unt5itled

أنتهت !!!!

اترك تعليقاً



لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *