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

نظام إنذار لاسلكي اردوينو باستخدام المستشعرات الموجودة: 9 خطوات (بالصور)
نظام إنذار لاسلكي اردوينو باستخدام المستشعرات الموجودة: 9 خطوات (بالصور)

فيديو: نظام إنذار لاسلكي اردوينو باستخدام المستشعرات الموجودة: 9 خطوات (بالصور)

فيديو: نظام إنذار لاسلكي اردوينو باستخدام المستشعرات الموجودة: 9 خطوات (بالصور)
فيديو: أردوينو للمبتدئين - (33) كيفية التحكم بالأجهزة باستعمال أي ريموت 2024, يوليو
Anonim
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة
نظام إنذار لاسلكي اردوينو باستخدام أجهزة الاستشعار الموجودة

يمكن بناء هذا المشروع في حوالي نصف ساعة بتكلفة حوالي 20.00 دولارًا أمريكيًا إذا كان لديك 433 ميجا هرتز أو 315 ميجا هرتز أجهزة استشعار إنذار لاسلكية.

يمكن أن يكون أيضًا مشروعًا جديدًا كاملاً مزودًا بأجهزة استشعار إنذار لاسلكية ، مثل كاشفات الحركة بالأشعة تحت الحمراء ومفاتيح القصب ، المتاحة بسهولة وبتكلفة زهيدة عبر الإنترنت. ابحث فقط عن مستشعرات 433 ميجا هرتز أو 315 ميجا هرتز تستخدم ترميز PT2262 أو EV1527.

أنا متأكد من أن هناك العديد من الأشخاص مثلي الذين اشتروا نظام إنذار GSM / 2G مزودًا بأجهزة استشعار لاسلكية وكانوا سعداء به ، ولكن عندما تم إيقاف تشغيل شبكة 2G / GSM في المكان الذي أعيش فيه ، بقيت مع نظام إنذار أستطيع لم يعد البرنامج أو حتى ضبط الوقت عليه. في أحد الأيام بينما كنت أتساءل عما يمكنني فعله لجعل المنبه يعمل مرة أخرى ، حدث لي أن أتحقق مما إذا كان بإمكان Arduino استقبال إشارات من أجهزة الاستشعار. لقد عثرت على https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ وبعد بعض التجارب قررت أنه يمكنني تلقي الإشارات من أجهزة الاستشعار الموجودة لدي. لقد بدأت عملية إنشاء نظام إنذار يمكن أن يحل محل المنبه الحالي الخاص بي ، كما أنه سيوفر وظائف إضافية. كانت إحدى المشكلات المتعلقة بالتنبيه القديم هي عدم معرفة أي جهاز من المستشعرات البالغ عددها 25 مستشعرًا ، وذلك من خلال إضافة شاشة LCD إلى جهاز الإنذار الجديد ، أحصل الآن على نص على شاشة LCD يشير بالضبط إلى المستشعر الذي تم تنشيطه. لا يزال من الممكن تسليح المنبه الجديد يدويًا بواسطة مفاتيح المفاتيح اللاسلكية الموجودة لديّ ولديه ساعة في الوقت الفعلي للسماح له بالتسلح تلقائيًا ونزع سلاحه في أوقات محددة مسبقًا من اليوم.

اللوازم

راجع الملاحظات الإضافية في النهاية للتأكد من استخدام الإصدار الصحيح من هذه الأجزاء.

Arduino Uno أو ما شابه

وحدة استقبال 433 أو 315 ميجا هرتز لاردوينو

DS3231 وحدة ساعة الوقت الحقيقي لاردوينو

وحدة I2C 16x2 LDC للاردوينو

مفاتيح التنبيه اللاسلكية ، مستشعرات الحركة وسلاسل المفاتيح عن بعد حسب الرغبة

الجرس بيزو

LED & 220 أوم المقاوم

اللوح (اختياري لكن موصى به)

مصدر طاقة مناسب لاردوينو

أسلاك العبور إلخ

جهاز كمبيوتر مثبت عليه Arduino IDE

المعرفة الأساسية لاردوينو

الخطوة 1: المستلزمات

اللوازم
اللوازم
اللوازم
اللوازم
اللوازم
اللوازم

بعض الصور أعلاه للإمدادات التي ستحتاجها لهذا المشروع

الخطوة 2: قم بربط Ardunio والوحدات النمطية كما هو موضح في الصورة

قم بربط Ardunio والوحدات النمطية كما هو موضح في الصورة
قم بربط Ardunio والوحدات النمطية كما هو موضح في الصورة

بيزو بين دبوس 5 اردوينو والأرض

LED بين دبوس 8 من Arduino ومقاوم 220 أوم ثم إلى الأرض

جهاز استقبال 433 أو 315 ميجا هرتز ، VCC إلى 5 فولت ، GND على الأرض وإما أحد دبابيس البيانات 2 إلى pin2 من Arduino

I2C 16X2 LCD Module VCC to 5V، GND to ground، SCL SDA pin to SCL SDA of Arduino (pin A5 هو SCL، pin A4 is SDA)

DS3231 RTC Module VCC to 5V، GND to ground، SCL SDA pin to SCL SDA of Arduino (توجد المجموعة الثانية الموجودة فوق دبابيس GND و AREF لمعظم Arduino)

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

الخطوة 3: أضف المكتبات الضرورية إلى Arduino IDE

أضف المكتبات الضرورية إلى Arduino IDE
أضف المكتبات الضرورية إلى Arduino IDE
أضف المكتبات الضرورية إلى Arduino IDE
أضف المكتبات الضرورية إلى Arduino IDE
أضف المكتبات الضرورية إلى Arduino IDE
أضف المكتبات الضرورية إلى Arduino IDE

يستخدم Arduino Sketch لتشغيل المنبه بعض المكتبات التي لم يتم تثبيتها بالفعل على Arduino IDE افتراضيًا.

لإضافة مكتبة RCSwitch إلى Arduino IDE. افتح Arduino IDE في القائمة العلوية حدد "Sketch" ثم من القائمة المنسدلة حدد "Include library" ومن القائمة المنسدلة التالية حدد "Manage libraries". ثم في مربع "تصفية البحث" اكتب "RCSW" ، ثم انقر فوق تثبيت لـ "rc-switch by sui77"

إرشادات مفصلة حول إضافة مكتبات على

أثناء وجودنا فيه ، نحتاج أيضًا إلى إضافة مكتبات تسمى Time و TimeAlarms و DS1307RTC و LiquidCrystal_I2C ، وهو نفس الإجراء الموضح أعلاه ولكن البحث عن اسم كل مكتبة جديدة وتثبيتها. شاهد لقطات الشاشة أعلاه إذا لم تكن متأكدًا من المكتبات التي يجب استخدامها.

تتوافق ساعة الوقت الحقيقي DS3231 مع مكتبة DS1307RTC وتستخدمها.

الخطوة 4: بعد ذلك ، نحتاج إلى الحصول على رموز أجهزة الاستشعار الخاصة بك

بعد ذلك ، نحتاج إلى الحصول على الرموز الخاصة بأجهزة الاستشعار الخاصة بك
بعد ذلك ، نحتاج إلى الحصول على الرموز الخاصة بأجهزة الاستشعار الخاصة بك
بعد ذلك ، نحتاج إلى الحصول على الرموز الخاصة بأجهزة الاستشعار الخاصة بك
بعد ذلك ، نحتاج إلى الحصول على الرموز الخاصة بأجهزة الاستشعار الخاصة بك

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

هناك معلومات مستفيضة حول كيفية الحصول على هذه الرموز في كلا الموقعين ؛

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

ومع ذلك ، ها هي روايتي المختصرة ؛

للحصول على الرموز التي ترسلها أجهزة الاستشعار ووحدات التحكم عن بعد ، قم بتوصيل Arduino كما تم تجميعه في الخطوة 1 بجهاز كمبيوتر عبر كابل USB وافتح Arduino IDE. ثم في Arduino IDE ، انتقل إلى القائمة المنسدلة "ملف" ، ثم انتقل إلى "أمثلة" ، قم بالتمرير لأسفل في قائمة أمثلة الرسومات حتى تجد "RCSWITCH" ثم حدد الرسم التخطيطي "ReceiveDemo_Advanced" وقم بتحميله على Arduino. بمجرد تحميل المخطط بنجاح ، افتح الشاشة التسلسلية لـ Arduino IDE مع استمرار توصيلها بجهاز الكمبيوتر الخاص بك عبر USB. الآن قم بتشغيل أول المستشعرات التي تريد الحصول على الكود الخاص بها ، وسيظهر الإخراج من RCSwitch في نافذة الشاشة التسلسلية. بالنسبة لهذا المشروع ، نبحث عن الرموز العشرية كما هو موضح في الصورة 2. ستحتاج إلى تشغيل المستشعر عدة مرات للبحث عن القيمة العشرية التي تظهر في أغلب الأحيان ، وأحيانًا تكون هناك قيم مختلفة مختلطة مع القيمة الحقيقية ، وهذا سبب عن طريق التداخل من موجات الراديو العشوائية أو الأجهزة الأخرى التي تعمل على نفس التردد.

لاحظ الرمز العشري لجهاز الاستشعار لاستخدامه في الخطوة التالية. كرر ذلك لجميع المستشعرات وأشرطة المفاتيح البعيدة التي تريد استخدامها في المشروع ، مع تتبع الرمز الذي يتوافق مع أي جهاز استشعار. إذا كنت تستخدم keyfobs لتسليح المنبه ونزع سلاحه ، فستحتاج إلى ملاحظة الرموز المختلفة لزر الذراع وزر نزع السلاح لكل جهاز تحكم عن بعد.

الخطوة 5: قالب كود اردوينو

يوجد أدناه نسخة من كود Arduino الخاص بي كملف.ino يسمى Wireless_Alarm. يمكنك النقر فوقه ويفتح في Arduino IDE. أنا لست مبرمجًا ، يتم تجميع الكود الخاص بي جزئيًا من الأمثلة الموجودة في Arduino IDE ، وربما لا يكون أنيقًا بشكل خاص ولكنه يعمل وكان موثوقًا به على مدار فترة زمنية طويلة.

تذكر إعادة حفظ الرسم بعد إجراء التغييرات لتضمين الرموز من أجهزة الاستشعار الخاصة بك.

الخطوة 6: الصق الرموز التي حصلت عليها في الخطوة 5 في قالب Arduino Sketch

الآن خطوات تخصيص الكود لأجهزة الاستشعار و keyfobs البعيدة التي تستخدمها.

إذا فتحت مخطط Wireless_Alarm في IDE الخاص بك ، فسترى في السطر 111.

إذا (mySwitch.getReceivedValue () == 115166236) // كود زر Fob arm

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

على سبيل المثال ، إذا حصلت على 1154321 في الخطوة 5 ، يمكنك تعديل السطر 111 ليقرأ الآن ؛

إذا (mySwitch.getReceivedValue () == 1154321) // كود زر Fob arm

اتبع نفس الإجراء للخط 125.

إذا (mySwitch.getReceivedValue () == 115166234) // كود زر نزع السلاح Fob

استبدل 115166234 برمز زر نزع سلاح المفتاح البعيد الذي سجلته في الخطوة 5.

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

الآن لتشفير مستشعرات الإنذار في المخطط في السطر 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // إجراء لخزانة مكتب مرسل الإشارة

أخرج 1151640 وأدخل القيمة العشرية لأحد مستشعرات الإنذار.

ثم في السطر 158.

lcd.print (F ("دولاب المكتب")) ؛ // اطبع رسالة على شاشة LCD لمعرفة المستشعر الذي تم تنشيطه (واذهب وابحث عن السارق:)

قم بتغيير دولاب المكتب إلى أي شيء ترغب في عرضه على شاشة LCD لهذا المستشعر. على سبيل المثال ، إذا كنت تريد قراءة kitchendoor ، فاجعل الخط يبدو هكذا ؛

lcd.print (F ("Kitchendoor")) ؛ // اطبع رسالة على شاشة LCD لمعرفة المستشعر الذي تم تنشيطه (واذهب وابحث عن السارق:)

يجب ألا تتجاوز الأسماء 16 حرفًا.

يوجد بين السطر 165 و 187 قالب لنسخ ولصق عدة مرات كما هو مطلوب للأسطر الموجودة أسفل 187 مباشرةً. استبدل الرقم بعد mySwitch.getReceivedValue () == بالعلامة العشرية لأحد أجهزة الاستشعار الأخرى التي قمت بتسجيلها في الخطوة 5 وتغيير الاسم داخل "" في lcd.print (F ("sensornamehere")) ؛ إلى الاسم الذي تريد أن تطلقه على المستشعر الخاص بك.

إذا كنت لا تستخدم مفاتيح التحكم عن بعد لتسليح وإلغاء تنشيط المنبه ، يمكنك فقط تجاهل الأسطر 111-136 أو وضع // في بداية كل سطر من الخطوط غير المرغوب فيها ولن يقرأها Arduino.

تذكر حفظ الملف بعد إجراء التغييرات.

الخطوة 7: قم بتحميل ملف.ino المعدل إلى Arduino واختباره

قم بتحميل.ino المعدل إلى Arduino الخاص بك والاختبار
قم بتحميل.ino المعدل إلى Arduino الخاص بك والاختبار
قم بتحميل.ino المعدل إلى Arduino الخاص بك واختباره
قم بتحميل.ino المعدل إلى Arduino الخاص بك واختباره
قم بتحميل.ino المعدل إلى Arduino الخاص بك والاختبار
قم بتحميل.ino المعدل إلى Arduino الخاص بك والاختبار

مع استمرار توصيل Arduino بجهاز الكمبيوتر الخاص بك عن طريق USB ، قم بتحميل الرسم التخطيطي إلى لوحة Arduino. بمجرد اكتمال التحميل بنجاح ، يجب أن تقرأ شاشة LCD رسالة "Alarm On Disarmed". اضغط على زر الذراع الموجود بجهاز التحكم عن بُعد الخاص بك ويجب أن تقرأ شاشة LCD رسالة "إنذار عند التسلح" ويجب أن يضيء مؤشر LED لإعلامك بأنه مسلح ، والآن قم بتشغيل المستشعر أثناء تسليحه ، ويجب أن تقرأ شاشة LCD رسالة الإنذار يتبعها طابع زمني و موقع المستشعر ، يجب أن يصدر صوت الصفارة لمدة دقيقتين ما لم تضغط على زر نزع السلاح. إذا لم تحصل على هذه النتيجة ، فأعد التحقق من الرموز التي حصلت عليها في الخطوة 5 والتغييرات التي أجريتها على الكود في الخطوة السابقة ، وأعد فحص الأسلاك لجميع المكونات. إذا كانت شاشة LCD لا تقرأ على الإطلاق ، فهناك تعديل تباين في الجزء الخلفي من وحدة LCD. بمجرد ضبط التباين بشكل صحيح إذا كانت شاشة LCD لا تزال لا تقرأ ، حاول تغيير عنوان شاشة LCD من 0x3f إلى 0x27 في السطر 12 في الرسم التخطيطي. استكشاف أخطاء شاشات الكريستال السائل وإصلاحها هنا I2C LCD تعليمي

الخطوة 8: ضبط الوقت على وحدة RTC وتغيير أوقات الذراع ونزع السلاح

نأمل أن يكون RTC قد تم ضبطه بالفعل مع الوقت الصحيح ، ولكن إذا لم يتم فتح IDE ، فحدد "ملف" ومن القائمة المنسدلة ، انقر فوق "أمثلة" ، وانتقل لأسفل إلى "DS1307RTC" وحدد الرسم التخطيطي "SetTime" ، وقم بتنزيل المخطط على Arduino وسيقوم بتعيين ساعة الوقت الفعلي مع الوقت من جهاز الكمبيوتر الخاص بك. ستحتاج بعد ذلك إلى إعادة تحميل رسم Wireless_Alarm إلى Arduino.

سيعمل جهاز Wireless_Alarm.ino الذي قدمته افتراضيًا على ضبط المنبه على التسلح تلقائيًا في الساعة 10.15 مساءً كل ليلة وإزالته في الساعة 6.00 صباحًا كل صباح. لتغيير هذه الأوقات ، قم بتعديل المخطط في السطور 71 و 72. الوقت بين قوسين بعد Alarm.alarm كرر بالتنسيق HH ، MM ، SS. قم بتغيير هذا إلى أي وقت يناسبك.

Alarm.alarmRepeat (6 ، 00 ، 0 ، MorningAlarm) ؛ // نزع الوقت

Alarm.alarmRepeat (22، 15، 0، EveningAlarm) ؛ // ARM الوقت

لذلك لتغيير وقت نزع السلاح إلى 9.15 صباحًا ووقت الذراع إلى 5.30 مساءً ، سيبدو الرمز هكذا

Alarm.alarmReat (9 ، 15 ، 0 ، MorningAlarm) ؛ // نزع الوقت

Alarm.alarmRepeat (17 ، 30 ، 0 ، EveningAlarm) ؛ // ARM الوقت

إذا كنت لا تريد أن يتم تسليح المنبه ونزع سلاحه تلقائيًا ، فضع // أمام الخطين ولن يتم استخدامهما.

//Alarm.alarmRepeat (6 ، 00 ، 0 ، MorningAlarm) ؛ // نزع الوقت

//Alarm.alarmRepeat (22، 15، 0، EveningAlarm) ؛ // وقت الذراع

يمكن تغيير وقت صوت صفارة الإنذار عن طريق تعديل السطر 22

فاصل زمني طويل = 120000 ؛ // لميلي التأخير لطول أصوات التنبيه

الفاصل الزمني بالمللي ثانية ، لذا 120000 = 120 ثانية ، وتغيير 120000 إلى 30000 سيجعل صوت التنبيه لمدة 30 ثانية.

يمكن أيضًا توصيل ملف لولبي لتشغيل صفارة الإنذار ، وضوء قوي ، وصافرة عالية الحجم ، وما إلى ذلك ، إلى دبوس 7 أو دبوس 9 وسيتم تشغيله لـ "الفاصل الزمني" كما هو محدد أعلاه. ضع في اعتبارك أن الحد الأقصى للحمل لدبوس Arduino يجب ألا يتجاوز 40 مللي أمبير.

الخطوة 9: ملاحظات إضافية

عند اختيار وحدة استقبال 433 أو 315 ميجاهرتز لـ Arduino ، يجب عليك اختيار التردد الذي يتناسب مع مستشعرات الإنذار التي تنوي استخدامها. أقترح شراء وحدة تأتي مع هوائيات حلزونية صغيرة للحصول على أفضل أداء ، أو بدلاً من ذلك ، تعمل الهوائيات السلكية المستقيمة بطول 17.3 مم على زيادة الأداء أيضًا.

مع وحدة LCD مقاس 16 × 2 ، يجب عليك استخدام 4 سنون I2C LCD لاستخدام التعليمات والرمز الذي قدمته هنا ، ويمكن صنعه باستخدام شاشة LCD قياسية ذات 16 سنًا ولكنها لن تعمل مع الأسلاك أو الكود هنا.

يجب أن تكون مفاتيح التنبيه اللاسلكية وأجهزة استشعار الحركة ووحدات التحكم عن بعد 433 ميجا هرتز أو 315 ميجا هرتز لتتوافق مع جهاز الاستقبال الذي تنوي استخدامه ويجب أن تستخدم ترميز PT2262 أو EV1527.

التنبيه قابل للتوسيع وقابل للتكيف ، لقد أضفت بالفعل بطاقة SD للتسجيل عند تشغيل المستشعرات ، وقمت بتعديل شاشة LCD لتضيء فقط عند الضغط على زر وإضافة صفارة إنذار 100 ديسيبل ، ولكن لم يتم تضمين التفاصيل هنا للحفاظ على المقالة على أنها قصير وبسيط قدر الإمكان. آمل أن تكون مشاركة العمل الذي قمت به بشأن هذا الإنذار مفيدًا للآخرين.

سعداء للرد على أي أسئلة.

شكرا.

موصى به: