كيف تصمم أتمتة المنزل بالصوت؟

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



التحكم الصوتي في أتمتة المنزل

كيفية أتمتة الأجهزة المنزلية باستخدام Arduino؟

نظرًا لأن لدينا الفكرة الأساسية ، فلننتقل الآن نحو جمع المكونات وتجميعها لإنشاء دائرة وكتابة الكود لأتمتة أجهزتك المنزلية.



الخطوة 1: المكونات المستخدمة (الأجهزة)

  • اردوينو أونو
  • وحدة بلوتوث HC-05
  • 2N2222 الترانزستور NPN
  • وحدة ترحيل 12 فولت
  • 1 كيلو أوم المقاوم
  • 12V AC إلى DC محول
  • 1N4007 PN Junction Diode
  • أسلاك توصيل

الخطوة 2: المكونات المستخدمة (البرمجيات)

  • Proteus 8 Professional (يمكن تنزيله من هنا )

بعد تنزيل Proteus 8 Professional ، صمم الدائرة عليه. لقد قمنا بتضمين محاكاة البرامج هنا حتى يكون من الملائم للمبتدئين تصميم الدائرة وإجراء الاتصالات المناسبة على الأجهزة.



الخطوة الثالثة: دراسة المكونات

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



  1. اردوينو أونو: Arduino UNO عبارة عن لوحة تحكم دقيقة تتكون من رقاقة ATMega 328P تم تطويرها بواسطة Arduino.cc. تحتوي هذه اللوحة على مجموعة من دبابيس البيانات الرقمية والتناظرية التي يمكن ربطها بلوحات أو دوائر توسعة أخرى. تحتوي هذه اللوحة على 14 دبوسًا رقميًا و 6 دبابيس تناظرية وقابلة للبرمجة باستخدام Arduino IDE (بيئة التطوير المتكاملة) عبر كابل USB من النوع B. يتطلب 5V إلى السلطة على و أ كود C ليشغل.

    اردوينو UNO

  2. HC-05 جهاز إرسال واستقبال تسلسلي لاسلكي يعمل بالبلوتوث : نحتاج إلى اتصال لاسلكي في هذا المشروع ، لذلك سنستخدم تقنية Bluetooth ومن أجل تلك الوحدة التي سيتم استخدامها هي HC-05. تحتوي هذه الوحدة على العديد من معدلات البث بالباود القابلة للبرمجة ولكن معدل الباود الافتراضي هو 9600 بت في الثانية. يمكن تهيئته إما رئيسية أو تابعة ، في حين أن الوحدة النمطية الأخرى HC-06 يمكن أن تعمل فقط في وضع الرقيق. تحتوي هذه الوحدة على أربعة دبابيس. واحد لـ VCC (5V) والثلاثة المتبقية لـ GND و TX و RX. كلمة المرور الافتراضية لهذه الوحدة هي 1234 أو 0000 . إذا أردنا الاتصال بين متحكمين أو التواصل مع أي جهاز مزود بوظيفة Bluetooth مثل الهاتف أو الكمبيوتر المحمول HC-05 يساعدنا على القيام بذلك. تتوفر بالفعل العديد من تطبيقات Android مما يجعل هذه العملية أسهل كثيرًا.

    وحدة بلوتوث HC-05

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

    تطبيق BT Voice Control



  4. وحدة التتابع 12 فولت: إذا أراد أي شخص تبديل أحمال الجهد العالي من متحكم ، فإن لوحة الترحيل 12 فولت يمكنها القيام بذلك. يحتوي على مرحلات 8 × 12 فولت مصنفة عند 10 أمبير / 250 فولت تيار متردد (DC 30V / 10A) يتم تشغيل / إيقاف تشغيل كل وحدة ترحيل عن طريق إدخال رقمي معزول بصريًا يمكن توصيله مباشرة بدبوس إخراج متحكم دقيق. يتطلب فقط جهدًا يبلغ 1.0 فولت تقريبًا لتشغيل المدخلات ولكن يمكنه التعامل مع الفولتية المدخلة حتى 12 فولت. هذا يجعلها مثالية لكل من الأجهزة 5V و 3.3V. يمكنك شراء وحدة الترحيل وفقًا لعدد الأجهزة التي تريد التحكم فيها. على سبيل المثال ، إذا كنت تريد التحكم في 4 أجهزة ، فيجب عليك شراء 4 وحدات ترحيل.

    وحدة ترحيل 12 فولت

الخطوة 4: فهم تصميم الدوائر باستخدام مخطط الدائرة

أولاً ، نحتاج إلى توصيل HC-05 بـ Arduino UNO. نظرًا لأن Bluetooth تستخدم بروتوكول UART ، فنحن بحاجة إلى استخدام دبابيس RX و TX في Arduino. سنستخدم مكتبة 'SoftwareSerial' لتحديد دبابيس RX و TX الخاصة بنا (Pin 2 هو RX و Pin 3 هو TX). سيتم فصل دبوس RX لوحدة Bluetooth ودبوس TX في Arduino. ثانيًا ، سنقوم بتوصيل المرحلات بـ Arduino. لقد استخدمنا لوحة ترحيل جاهزة مع 4 قنوات ، لذلك نحتاج إلى توصيل مدخلات المرحلات الفردية بـ Arduino. لتوصيل الحمل بوحدة الترحيل ، يرجى الرجوع إلى الرسم التخطيطي أدناه:

تجميع دائرة وحدة الترحيل

يتم توصيل أربعة أحمال بوحدة الترحيل للتوضيح وتكون أكثر حذرًا أثناء استخدام التيار المتردد مع لوحة الترحيل. فقط للتوضيح ، قمنا بالتبديل على الأحمال البديلة:

مخطط الرسم البياني

الخطوة 5: مبدأ عمل المشروع

في هذا المشروع ، تُستخدم الأوامر الصوتية للتحكم في الأجهزة المختلفة. قم بتجميع الأجهزة وفقًا لمخطط الدائرة الموضح أعلاه. اجمع كل المكونات الموجودة على اللوح. بعد إجراء التوصيلات اللازمة ، قم بتشغيل مصدر الطاقة للدائرة وإقران بلوتوث الهاتف بوحدة HC-05 Bluetooth. قبل الاقتران ، قم بتثبيت التطبيق المذكور أعلاه في هاتفك الذكي.

الآن ، قم بتوصيل الهاتف بوحدة Bluetooth. انقر فوق الخيار ' قم بتوصيل الروبوت 'وحدد جهاز البلوتوث المناسب. إذا لم يتم إقران الأجهزة في وقت سابق ، فقم بإقرانها الآن عن طريق إدخال رقم التعريف الشخصي 0000 أو 1234.

إقران الهاتف الذكي

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

التعرف على الصوت

عندما يتعرف التطبيق على السلسلة ، سيرسل السلسلة على أنها 'تشغيل الضوء #' وتكون الرسالة الفعلية التي تتلقاها وحدة البلوتوث لها هذا النوع من التنسيق ( '*رسالة#' ). السبب وراء ملء '*' و '#' عند بداية ونهاية السلسلة هو تحديد بداية الرسالة ونهايتها. تتم مقارنة الرسالة المستلمة ببعض السلاسل المحددة مسبقًا وإذا تطابقت الرسالة معها ، يحدث الإجراء المقابل مثل 'التشغيل' وإيقاف التشغيل.

في هذا المشروع ، استخدمنا الأوامر التالية: 'تشغيل التيار المتردد' ، 'إيقاف تشغيل التيار المتردد' ، 'تشغيل الضوء' ، 'إطفاء الضوء' ، 'تشغيل التلفزيون' ، 'إيقاف تشغيل التلفزيون' ، 'تشغيل المروحة 'و' تشغيل الكل 'و' إيقاف تشغيل الكل '.

الخطوة 6: بدء استخدام Arduino

إذا لم تكن معتادًا على Arduino IDE من قبل ، فلا تقلق لأنه أدناه ، يمكنك رؤية خطوات واضحة لنسخ الكود على لوحة وحدة التحكم الدقيقة باستخدام Arduino IDE. يمكنك تنزيل أحدث إصدار من Arduino IDE من هنا واتبع الخطوات المذكورة أدناه:

1). عندما تكون لوحة Arduino متصلة بجهاز الكمبيوتر الخاص بك ، افتح 'لوحة التحكم' وانقر على 'الأجهزة والصوت'. ثم انقر فوق 'الأجهزة والطابعات'. ابحث عن اسم المنفذ الذي تتصل به لوحة Arduino. في حالتي هو “COM14” ولكنه قد يكون مختلفًا على جهاز الكمبيوتر الخاص بك.

البحث عن ميناء

2). الآن افتح Arduino IDE. من الأدوات ، اضبط لوحة Arduino على اردوينو / جينوينو أونو.

لوحة الإعداد

3). من نفس قائمة الأداة ، اضبط رقم المنفذ الذي رأيته في لوحة التحكم.

منفذ الإعداد

4). لاستخدام هذا التطبيق الذي يتم التحكم فيه صوتيًا ، نحتاج إلى مكتبة خاصة ليتم تضمينها في Arduino IDE. هذه المكتبة مرفقة في الرابط أدناه ، مع الرمز. لتضمين المكتبة اذهب إلى رسم> تضمين مكتبة> إضافة ZIP. مكتبة .

تضمين المكتبة

5). قم بتنزيل الكود المرفق أدناه وانسخه إلى IDE الخاص بك. لتحميل الكود ، اضغط على زر التحميل.

يمكنك تنزيل الكود عن طريق النقر هنا.

الخطوة السابعة: فهم الكود

المدونة ليست معقدة للغاية ولكن لا يزال هناك وصف موجز لبعض أجزائها أدناه.

1. في البداية ، تم تضمين مكتبة للسماح بالاتصال التسلسلي على دبابيس رقمية أخرى في Arduino ، باستخدام برنامج لتكرار الوظيفة. يتم تهيئة دبابيس لاستخدامها مع وحدة Bluetooth. يتم تهيئة أربعة دبابيس لاستخدامها في الأجهزة المنزلية المتصلة بالنظام ويتم تهيئة متغير سلسلة لتخزين البيانات الواردة عبر البلوتوث بشكل تسلسلي.

#include const int rxPin = 2 ؛ // تهيئة البيزن لوحدة البلوتوث const int txPin = 3 ؛ SoftwareSerial mySerial (rxPin ، txPin) ؛ int ac = 4 ؛ // تهيئة دبابيس للأجهزة المنزلية int light = 5 ؛ مروحة int = 6 ؛ تلفزيون int = 7 ؛ بيانات السلسلة

2. الإعداد باطل() هي وظيفة قمنا فيها بتعيين المسامير التي تمت تهيئتها لاستخدامها كـ INPUT و OUTPUT. يتم أيضًا تهيئة معدل الباود هنا. معدل الباود هو السرعة التي تتواصل بها لوحة Arduino مع المكونات المرفقة. في وظيفتنا ، قمنا بتعيين جميع المسامير المتصلة بالأجهزة منخفض.

إعداد باطل () {Serial.begin (9600) ؛ mySerial.begin (9600) ، pinMode (ac ، الإخراج) ؛ pinMode (الضوء ، الإخراج) ؛ pinMode (مروحة ، الإخراج) ؛ pinMode (التلفزيون ، الإخراج) ؛ digitalWrite (تيار متردد ، منخفض) ؛ الكتابة الرقمية (خفيفة ، منخفضة) ؛ digitalWrite (مروحة ، منخفضة) ؛ digitalWrite (تلفزيون ، منخفض) ؛ }

3. حلقة فارغة() هي وظيفة تعمل بشكل متكرر في حلقة. هنا يتم تعيين جميع الشروط لجعل النظام يعمل بشكل صحيح. الأتى في حين() يتم استخدام loop لأخذ البيانات التي تأتي بشكل متسلسل إلى وحدة التحكم الدقيقة.

while (1) // الحصول على الإدخال التسلسلي {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

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

if (data == '* turn on AC') {digitalWrite (ac، HIGH) ؛ Serial.println ('ac on') ؛ } else if (data == '* turn off AC') {digitalWrite (ac، LOW)؛ Serial.println ('ac off') ؛ } else if (data == '* turn on light') {digitalWrite (light، HIGH)؛ Serial.println ('ضوء على') ؛ } else if (data == '* turn off light') {digitalWrite (light، LOW)؛ Serial.println ('ضوء إيقاف') ؛ } else if (data == '* turn on fan') {digitalWrite (fan، HIGH)؛ Serial.println ('fan on') ؛ } else if (data == '* turn off fan') {digitalWrite (fan، LOW)؛ Serial.println ('fan off') ؛ } else if (data == '* turn on TV') {digitalWrite (tv، HIGH)؛ Serial.println ('tv on') ؛ } else if (data == '* turn on TV') {digitalWrite (tv، LOW)؛ Serial.println ('tv off') ؛ } else if (data == '* turn on all') {digitalWrite (ac، HIGH)؛ الكتابة الرقمية (خفيفة ، عالية) ؛ digitalWrite (مروحة ، عالية) ؛ الكتابة الرقمية (التلفزيون ، عالية) ؛ Serial.println ('all on') ؛ } else if (data == '* turn off all') {digitalWrite (ac، LOW)؛ الكتابة الرقمية (خفيفة ، منخفضة) ؛ digitalWrite (مروحة ، منخفضة) ؛ digitalWrite (تلفزيون ، منخفض) ؛ Serial.println ('كل إيقاف') ؛ }}

التطبيقات

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