نظام أمان باستخدام الأردوينو ووحدة الاتصال اللاسلكي (SIM800l)

متوسط

image_pdf

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

SMS و وحدة SIM800l

المواد والأدوات

اردوينو

X1 اردوينو 

SIM800l

X1 وحدة SIM800L

PIR SENSOR

X1 حساس الحركة

DC TO DC

X1 منظم جهد (DC TO DC)

Half-size Breadboard

X1 لوحة تجارب 

سلك يو اس بى A-B

X1سلك اردوينو 

اسلاك

 اسلاك توصيل(M/M) 

اسلاك

أسلاك توصيل (M/F)

 


وحدة SIM800L

 SIM800l

وحدة الاتصال اللاسلكي (SIM800L) تساعدك في مراقبة المنزل عن بعد أو تنشيط أي نظام داخل منزلك بمكالمة أو رسائل SMS عبارة عن مودم (GSM) مصغر فيمكن استخدامها لإجراء مهام ارسال أو استقبال الرسائل النصية القصيرة، إجراء مكالمات هاتفية أو استقبالها، الاتصال بالإنترنت من خلال (GPRS) و (TCP / IP)، يمكن استخدامها في عدد كبير من مشاريع إنترنت الأشياء. تحتاج أن تضيف شريحة 2G SIM في منفذ الشريحة لتتمكن من برمجته مع المتحكم حسب متطلبات مشروعك

مؤشر الوميض:

يوجد مؤشر الوميض أعلى الجانب الأيمن على وحدة الاتصال اللاسلكي (SIM800L) يشير إلى حالة شبكتك الخلوية. سيومض بمعدلات مختلفة لإظهار حالة الاتصال بالشبكة:

وميض كل ثانية :الوحدة قيد التشغيل ولكنها لم تتصل بالشبكة الخلوية.

SMS و وحدة SIM800l

وميض كل ثانيتين: تم تنشيط بيانات (GPRS)

SMS و وحدة SIM800l

وميض كل ثلاثة ثواني : اتصلت الوحدة بالشبكة الخلوية ويمكنها إرسال / استقبال الاتصال والرسائل القصيرة

منافذ وحدة الاتصال اللاسلكي (SIM800l)

SIM800l

الجدول التالي يوضح وظائف المنافذ

المنفذ في وحدة (SIM 800L) الوظيفة
NET منفذ للحام الهوائي الحلزوني المزود مع الوحدة .
VCC منفذ الطاقة للوحدة. من 3.4 فولت إلى 4.4 فولت. و 2أمبير عدم تزويد الوحدة بالطاقة بشكل كافي سيتسبب في عدم عملها بشكل صحيح
RST (Reset) RST (إعادة الضبط). سحب الدبوس LOW لمدة 100 مللي ثانية لإجراء إعادة تعيين ثابت.
RxD (Receiver) منفذ للاتصال التسلسلي
TxD (Transmitter) منفذ للاتصال التسلسلي
GND GND
RING دبوس مؤشر. يعطي اشارة HIGH افتراضيًا وسينبض LOW لمدة 120 مللي ثانية عند تلقي مكالمة. يمكن أيضًا تهيئته للنبض عند تلقي رسالة نصية قصيرة.
DTR لإلغاء وتنشيط وضع السكون حسب الاشارة التي يتم ارسالها له. إشارة HIGH تفعيل وضع السكون، وبالتالي تعطيل الاتصال التسلسلي. اشارة LOW تعطيل وضع السكون وتشغيل الوحدة.
MIC± مدخل المايكرفون
SPK± مدخل مكبر الصوت

توصيل الدائرة

قبل توصيل الدائرة عليك التأكد من أن خرج منظم الجهد (DC TO DC buck converter) يساوي 4.4 قد يتسبب زيادة الجهد إلى تلف وحدة الاتصال اللاسلكي (SIM800l)

SIM800l

البرمجة

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

 

X
Product added to the cart