جدول المحتويات:

نظام الأمن الهاتفي مع الأردوينو: 5 خطوات
نظام الأمن الهاتفي مع الأردوينو: 5 خطوات

فيديو: نظام الأمن الهاتفي مع الأردوينو: 5 خطوات

فيديو: نظام الأمن الهاتفي مع الأردوينو: 5 خطوات
فيديو: ملخص حياة المبرمج 😂 #Shorts 2024, شهر نوفمبر
Anonim
نظام أمان الهاتف مع اردوينو
نظام أمان الهاتف مع اردوينو

سيكون منزلك غير محمي إذا لم تطبق هذا المشروع. سيساعدك هذا المشروع على إطلاق إنذار عبر الهاتف الخلوي عندما يقتحم متطفل منزلك.

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

لهذا ، سوف نستخدم لوحة Arduino المتوافقة مع وحدة SIM800L ومستشعر PIR. سيكون مستشعر PIR مسؤولاً عن اكتشاف وجود دخيل وسيكون SIM800L مسؤولاً عن إرسال رسالة تنبيهية قصيرة إلى صاحب المنزل.

اللوازم

  • لوحة متوافقة مع اردوينو
  • جهاز استشعار PIR
  • المقاوم 10kR
  • صداري
  • بروتوبورد
  • وحدة SIM800L

الخطوة الأولى: قلب المشروع

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

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

يتم تنفيذ هذه العملية بفضل أوامر التحكم بين Arduino ووحدة SIM800L. لذلك ، من هذا المنطلق ، سوف نقدم لك خطوة بخطوة لبناء هذا النظام ، وترك منزلك محميًا وتحذيرك كلما اقتحمه أي دخيل.

إذا كنت ترغب في تنزيل لوحة Arduino المتوافقة ، يمكنك الوصول إلى هذا الرابط والحصول على الملفات لشراء اللوحات الخاصة بك في JLCPCB.

الآن ، لنبدأ!

الخطوة الثانية: مشروع الدائرة الإلكترونية والبرمجة

الدائرة الإلكترونية للمشروع والبرمجة
الدائرة الإلكترونية للمشروع والبرمجة
الدائرة الإلكترونية للمشروع والبرمجة
الدائرة الإلكترونية للمشروع والبرمجة

أولاً ، سنجعل الدائرة الإلكترونية متاحة ثم نناقش رمز المشروع خطوة بخطوة من أجلك.

# تتضمن شريحة SoftwareSerial (10 ، 11) ؛

String SeuNumero = "+5585988004783" ؛

# تعريف الاستشعار 12

منطقية ValorAtual = 0 ، ValorAnterior = 0 ؛

الإعداد باطل()

{Serial.begin (9600) ، Serial.println ("Inicializando Sistema…") ؛ تأخير (5000) ؛ رقاقة تبدأ (9600) ؛ تأخير (1000) ؛

pinMode (المستشعر ، المدخلات) ؛ // Configura o Pino do Sensor como Entrada

}

حلقة فارغة()

{// Le o valor do pino do sensor ValorAtual = digitalRead (sensor)؛

إذا (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert ؛ الشجاعة الأمامية = 1 ؛ }

إذا (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude () ، الشجاعة الأمامية = 0 ؛ }

}

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa

{chip.println ("AT + CMGF = 1") ؛ تأخير (1000) ؛ chip.println ("AT + CMGS = \" "+ SeuNumero +" / "\ r") ؛ تأخير (1000) ؛ String SMS = "تنبيه التطفل!" ؛ chip.println (SMS) ؛ تأخير (100) ؛ chip.println ((شار) 26) ؛ تأخير (1000) ؛ }

void NoMoreIntrude () // Funcao para enviar mensagem de alerta Umidade Normal

{chip.println ("AT + CMGF = 1") ؛ تأخير (1000) ؛ chip.println ("AT + CMGS = \" "+ SeuNumero +" / "\ r") ؛ تأخير (1000) ؛ String SMS = "لا مزيد من التطفل!"؛ chip.println (SMS) ؛ تأخير (100) ؛ chip.println ((شار) 26) ؛ تأخير (1000) ؛ }

في الكود الموضح أدناه ، أعلنا في البداية عن مكتبة الاتصالات التسلسلية SoftwareSerial.h ، كما هو موضح أدناه.

#يشمل

بعد تحديد المكتبة ، تم تحديد دبابيس الاتصال Tx و Rx. هذه المسامير عبارة عن دبابيس بديلة وتستخدم للسماح بالاتصال التسلسلي على دبابيس Arduino الأخرى. تم تطوير مكتبة SoftwareSerial للسماح لك باستخدام البرنامج لتكرار الوظائف

رقاقة SoftwareSerial (10 ، 11) ؛

بعد ذلك ، تم الإعلان عن رقم الهاتف المحمول أدناه.

String SeuNumero = "+5585988004783" ؛

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

سيتم إرسال الرسالة في حالة اكتشاف متسلل داخل المنزل. مستشعر PIR (الأشعة تحت الحمراء السلبية) هو مستشعر يستخدم لاكتشاف الحركة من إشارة الأشعة تحت الحمراء. من الإشارة المرسلة إلى Arduino ، سترسل وحدة SIM800L رسالة إلى المستخدم.

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

الخطوة 3: وظيفة Void Setup ()

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

الإعداد باطل()

{

Serial.begin (9600) ؛ Serial.println ("Inicializando Sistema…") ؛ تأخير (5000) ؛ رقاقة تبدأ (9600) ؛ تأخير (1000) ؛ pinMode (المستشعر ، المدخلات) ؛ // Configura o Pino do Sensor como Entrada}

كما يمكن أن ترى ، تمت تهيئة الاتصالين التسلسليين. يتم استخدام Serial.begin لتهيئة المسلسل الأصلي لـ Arduino والشريحة.begin هي المسلسل الذي تمت محاكاته من خلال مكتبة SoftwareSerial. بعد ذلك ، سنقوم بوظيفة الحلقة الفارغة.

الخطوة 4: المشروع ووظيفة الحلقة الفراغية

المشروع ووظيفة الحلقة الفراغية
المشروع ووظيفة الحلقة الفراغية
المشروع ووظيفة الحلقة الفراغية
المشروع ووظيفة الحلقة الفراغية

الآن ، سوف نقدم المنطق الرئيسي للبرمجة في وظيفة الحلقة الفارغة.

الحلقة الفارغة () {// Le o valor do pino do sensor ValorAtual = digitalRead (sensor)؛

إذا (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert () ،

الشجاعة الأمامية = 1 ؛

}

إذا (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude () ،

الشجاعة الأمامية = 0 ؛

}

}

أولاً ، ستتم قراءة الإشارة من مستشعر وجود PIR كما هو موضح أدناه.

ValorAtual = digitalRead (مستشعر) ؛

بعد ذلك ، سيتم التحقق مما إذا كانت القيمة في ValorAtual المتغير هي 1 أو 0 ، كما هو موضح أدناه.

إذا (ValorAtual == 1 && ValorAnterior == 0) {IntrudeAlert ()؛

الشجاعة الأمامية = 1 ؛

} إذا (ValorAtual == 0 && ValorAnterior == 0) {NoMoreIntrude ()؛

الشجاعة الأمامية = 0 ؛

}

حالة المتغير ValorAtual هو 1 والمتغيرات ValorAn front هو 0 ، يتم تنشيط المستشعر بالفعل ويتم إلغاء تنشيطه من الأمام (ValorAnterior == 0). بهذه الطريقة ، سيتم تنفيذ الوظيفة وسيتلقى المستخدم الرسالة على هاتفك المحمول. بعد ذلك ، ستكون قيمة المتغير ValorAnterior متساوية عند 1.

بهذه الطريقة ، سيتم الإشارة إلى المتغير ValorAnterior المتغير بأن الحالة الفعلية للمستشعر يتم تشغيلها.

الآن ، إذا كانت قيمة المتغير ValorAtual تساوي 0 وقيمة المتغير الأمامي الشجاعة تساوي 0 ، لا يكتشف المستشعر التطفل ثم يتم تشغيل قيمته.

بهذه الطريقة ، سيرسل النظام الرسالة للهاتف المحمول الخاص بالمستخدم وسيقوم بتحديث القيمة الفعلية للمستشعر لـ 0. ستشير هذه القيمة إلى أن المستشعر لا يعمل في الوقت الحالي.

الرسائل التي تم إرسالها للمستخدم معروضة أعلاه.

الآن ، سوف نتعلم كيفية عمل الوظيفة لإرسال الرسائل للهاتف المحمول الخاص بالمستخدم.

الخطوة 5: وظائف إرسال الرسائل

في هذا النظام ، هناك وظيفتان. إنها وظائف لها نفس الهيكل. الفرق بينهما هو الاسم والرسالة المرسلة ، ولكن عندما نحللها ، سنرى أنهما متماثلان تمامًا.

بعد ذلك ، سنقدم الهيكل الكامل للوظائف ونناقش الكود.

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa {chip.println ("AT + CMGF = 1")؛ تأخير (1000) ؛ chip.println ("AT + CMGS = \" "+ SeuNumero +" / "\ r") ؛ تأخير (1000) ؛ String SMS = "Opened Door!"؛ chip.println (SMS) ؛ تأخير (100) ؛ chip.println ((شار) 26) ؛ تأخير (1000) ؛ }

void NoMoreIntrude () // Funcao para enviar mensagem de alerta Umidade Normal

{chip.println ("AT + CMGF = 1") ؛ تأخير (1000) ؛ chip.println ("AT + CMGS = \" "+ SeuNumero +" / "\ r") ؛ تأخير (1000) ؛ سلسلة SMS = "باب مغلق!" ؛ chip.println (SMS) ؛ تأخير (100) ؛ chip.println ((شار) 26) ؛ تأخير (1000) ؛ }

تستخدم الوحدة النمطية SIM800L أمر AT للتحكم في وظائفها. لذلك ، من خلال هذه الأوامر ، سنرسل رسالة إلى الهاتف المحمول للمستخدم.

يتم استخدام AT + CGMF = 1 لتكوين الوحدة النمطية للعمل في وضع نص SMS. بعد التأخير ، سيرسل النظام الرسالة للمستخدم من خلال الأمر التالي.

chip.println ("AT + CMGS = \" "+ SeuNumero +" / "\ r") ؛

في الأمر ، سيتم إعداد وحدة SIM800L لإرسال رسالة لرقم الهاتف المحمول المسجل في السلسلة SeuNumero. بعد ذلك ، سيقوم النظام بتحميل الرسالة في السلسلة وإرسالها للهاتف المحمول الخاص بالمستخدم ، كما هو موضح أدناه.

سلسلة SMS = "باب مغلق!" ؛ chip.println (SMS) ؛ تأخير (100) ؛ chip.println ((شار) 26) ؛ تأخير (1000) ؛

يستخدم الحرف (26) للإشارة إلى نهاية الرسالة. تشبه عملية العمل هذه وظيفتين لإرسال رسالة للمستخدم.

شكر وتقدير

الآن ، نحن نقدر دعم JLCPCB للقيام بهذا العمل ، وإذا كنت مهتمًا ، فقم بالوصول إلى الرابط التالي وقم بتنزيل لوحة Arduino المتوافقة.

موصى به: