البرمجة
برمجة هذا المشروع تحتاج إلى كتابة الشفرة البرمجية بلغة (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);}}