البرمجة
برمجة هذا المشروع تحتاج إلى كتابة الشفرة البرمجية بلغة (C++)على بيئة التطوير المتكاملة للأردوينو Arduino IDE)) يمكن التعرف على البرنامج أكثر من خلال الرابط
أولا: عليك تحميل مكتبة (SoftwareSerial)
ثانيا: كتابة الأوامر البرمجية التالية
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2);
int p=7;
void setup()
{
pinMode(p, INPUT);
mySerial.begin(9600);
delay(1000);
}
void loop()
{int buttonState = digitalRead(7);
if (buttonState == HIGH) {
delay(1000);
mySerial.println("AT");
delay(500);
mySerial.println("AT+CMGF=1");
delay(500);
mySerial.println("AT+CMGS=\"+966XXXXXXXX\"\r");
delay(500);
mySerial.print("Warning! Motion detected!");
delay(500);
mySerial.write(26);}}
شرح الشفرة البرمجية (Code)
استدعاء مكتبة (SoftwareSerial)
#include <SoftwareSerial.h>
تعريف منافذ الأردوينو التي تم توصيلها مع منافذ الارسال والاستقبال للاتصال التسلسلي (TX-RX) في وحدة الاتصال اللاسلكي (SIM800l) حيث تم توصيل المنفذ الرقمي 3 مع منفذ الاستقبال (RX) والمنفذ الرقمي 2 مع منفذ الارسال(TX)
SoftwareSerial mySerial(3, 2);
تعريف منافذ الأردوينو الذي تم توصيل منفذ الخرج (Out) في حساس الحركة وهو المنفذ رقم 7
int p=7;
في دالة () void setup نُعرف منافذ الدخل والخرج
كذلك نقوم بتهيئة الاتصال التسلسلي
void setup()
{
pinMode(p, INPUT);
mySerial.begin(9600);
delay(1000);
}
في دالة void loop () سنعرف متغير يخزن داخله حالة حساس الحركة التي ستم قرأتها من المنفذ رقم 7
ثم نكتب الجملة الشرطية التي تجعل البرنامج ينتظر لمدة ثانية إذا كانت توجد حركة
void loop()
{int buttonState = digitalRead(7);
if (buttonState == HIGH) {
delay(1000);
تحدد بروتوكولات ارتباط الاتصال في بداية الاتصال
mySerial.println("AT");
delay(500);
التشغيل على وضع نص SMS
mySerial.println("AT+CMGF=1");
delay(500);
تحديد الرقم الذي سيتم ارسال الرساله له
mySerial.println("AT+CMGS=\"+9665XXXXXX\"\r");
delay(500);
نص الرسالة الذي سيتم ارسالها في حال وجود حركة
mySerial.print("Warning! Motion detected!");
delay(500);
mySerial.write(26);}}

