إنشاء مفتاح تشغيل / إيقاف لاسلكي لجهاز الكمبيوتر الخاص بك

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



تبديل الكمبيوتر اللاسلكي

كيفية عمل محول لاسلكي لجهاز الكمبيوتر الخاص بك على الهاتف المحمول؟

الخطوة 1: تجميع المكونات

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



  • ESP32
  • 2N2222 الترانزستور NPN
  • 1 كيلو أوم المقاوم (x2)
  • وحدة التتابع 5 فولت
  • توصيل الأسلاك

الخطوة الثانية: البرامج المراد تثبيتها

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



  • بيئة تطوير أندرويد.
  • جافا JDK.

الخطوة الثالثة: تثبيت Android Studio

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



  1. افتح لوحة التحكم وانقر فوق النظام والأمن .
  2. انقر فوق النظام .

    النظام

  3. انقر فوق وضع نظام متقدم ثم انقر فوق المتغيرات البيئية .

    وضع نظام متقدم

  4. في قسم متغير النظام ، انقر فوق المسار ثم انقر فوق تحرير. جديد تحرير المتغير البيئي سيظهر مربع.

    تعديل المسار



  5. اذهب الآن إلى ج: ملفات البرنامج جافا في جهاز الكمبيوتر الخاص بك. افتح مجلد JDK ، وانقر فوق مجلد bin ، ثم انسخ مسار هذا المجلد.

    مسار مجلد bin

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

    نسخة جافا

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

الخطوة 4: الاتصال بـ Firebase

الآن بعد أن قمنا بتثبيت Android Studio ، دعنا نطلقه ونصنع مشروعًا جديدًا لربطه بقاعدة Firebase. للقيام بذلك ، اتبع الخطوات التالية.

1. قم بتشغيل Android Studio وقم بإنشاء مشروع جديد بالنقر فوق نشاط فارغ .

مشروع جديد

2. الآن قم بتسمية مشروعك باسم الكمبيوتر تحديد كوتلن كلغة ، وحدد الحد الأدنى لمستوى API وفقًا لهاتفك المحمول.

مشروع جديد

3-بما أننا سنستخدم الإنترنت للتحكم في دبابيس التوت. سنقوم بتعيين إذن في تطبيقنا للوصول إلى شبكة wifi المحلية. للقيام بذلك ، انتقل إلى app> manifests> AndroidManifest.xml وأضف الأمر التالي.

 

إذن الإنترنت

3. الآن ، انقر فوق n أدوات. ستظهر قائمة منسدلة اختر منها Firebase.

اتصال Firebase

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

مساعد Firebase

5. تواصل على الاتصال بـ Firebase زر. سوف يأخذك إلى متصفح الويب الافتراضي. أولاً ، سيطلب منك تسجيل الدخول إلى حساب Gmail الخاص بك. ثم انقر فوق أضف Realtime Database إلى تطبيقك وقبول التغييرات.

6. اذهب الآن إلى وحدة تحكم Firebase . هناك سترى مشروع تم إنجازه بالفعل. يعني شعار android الموجود على رمز هذا المشروع أنه ينتمي بالفعل إلى تطبيق android.

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

8. ستظهر قائمة تطالبك بتعيين وضع قاعدة البيانات الخاصة بك. انقر فوق وضع الاختبار ثم انقر فوق ممكن .

وضع الاختبار

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

Realtime Firebase

10. الآن انقر فوق قواعد علامة التبويب وقم بتغيير التكوينات إلى صحيح . بمجرد الانتهاء من كل شيء ، انقر فوق ينشر .

تغيير التكوينات

11. شيء واحد عليك القيام به بخلاف توصيل Firebase ، هو تحديث إصدار قاعدة البيانات. لذلك ، انقر فوق اذهب إلى المستندات . انقر الآن على خطوط إرشاد واختر أدلة Android من القائمة التي تظهر على الشاشة. قم بالتمرير لأسفل حتى يظهر الجدول. ابحث عن Real-Time Database في هذا الجدول وابحث عن نسختها. في حالتي ، هو كذلك 19.1.0

الإصدار

12. انقر فوق مخطوطات Gradle ، قائمة على الجانب الأيسر من الشاشة. ثم حدد مبني. gradle (الوحدة: التطبيق). الآن في الكود ، ابحث عن إصدار قاعدة بيانات الوقت الحقيقي واستبدله بالإصدار الجديد.

إصدار Firebase

13. الآن قم بمزامنة المشروع من خلال النقر على زر المزامنة الظاهر أعلى الشاشة.

الخطوة 5: عمل التخطيط

الآن ، نظرًا لأن تطبيق Android الخاص بنا متصل بقاعدة Firebase ، فلنقم بعمل تخطيط لتطبيقنا يستخدمه المستخدم لتشغيل الكمبيوتر أو إيقاف تشغيله. لعمل تخطيط ، انتقل إلى التطبيق> الدقة> التخطيط> activity_main.xml. حيث سنقوم بتصميم تخطيط. انسخ الكود الوارد أدناه لعمل عرض نصي.

 

سيبدو تخطيط تطبيقنا كما يلي:

تخطيط التطبيق

الخطوة 6: تشفير الخلفية في Kotlin

نظرًا لأننا أنشأنا الواجهة الأمامية للتطبيق ، فلننتقل خطوة إلى الأمام ونكتب رمز الواجهة الخلفية لربطه بقاعدة Firebase. لقد قمنا بتوصيل مفتاح تبديل سيرسل 0 إلى قاعدة بيانات Firebase عندما يكون في حالة إيقاف التشغيل ، وسوف يرسل 1 إلى قاعدة بيانات firebase عندما يكون في حالة تشغيل.

الآن ، في الزاوية اليسرى ، انقر فوق app> java> com.example.computerswitch> main_activity ، وأضف الكود التالي هناك في صفك. إذا حدث أي خطأ في المكتبة ، اضغط على ALT + ENTER لتضمين تلك المكتبة تلقائيًا.

var database = FirebaseDatabase.getInstance () var myRef = database.reference الداخلي lateinit var btnSwitch: تبديل تجاوز المرح onCreate (saveInstanceState: Bundle؟) {super.onCreate (saveInstanceState) setContentView (R.layout.activity_main) btnSwitch = find. id.switch2) مثل التبديل btnSwitch.setOnClickListener {if (btnSwitch.isChecked) {myRef.child ('switch'). setValue ('1')} else {myRef.child ('switch'). setValue ('0') }}}

في الصورة أدناه ، يمكنك أن ترى أنه في حالة تشغيل المفتاح ، يتم تحميل '1' إلى قاعدة بيانات Firebase. وبالمثل ، سيتم استبدال '0' هنا عند إيقاف تشغيل المفتاح.

القيمة

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

إذا لم تكن قد عملت على Arduino IDE من قبل ، فلا تقلق لأنه يتم عرض خطوة بخطوة لإعداد Arduino IDE أدناه.

  1. قم بتنزيل أحدث إصدار من Arduino IDE من اردوينو.
  2. قم بتوصيل لوحة Arduino بجهاز الكمبيوتر وافتح لوحة التحكم. انقر فوق الأجهزة والصوت. مفتوح الان الأجهزة والطابعة وابحث عن المنفذ الذي تتصل به اللوحة الخاصة بك. في حالتي هو كذلك COM14 ، لكنه يختلف في أجهزة الكمبيوتر المختلفة.

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

  3. انقر فوق ملف ثم انقر فوق تفضيلات. انسخ الرابط التالي في ملف عنوان URL لمدير مجلس الإدارة الإضافي. ' https://dl.espressif.com/dl/package_esp32_index.json '

    التفضيلات

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

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

  5. اذهب الآن رسم> تضمين مكتبة> إدارة المكتبات.

    إدارة المكتبات

  6. سيتم فتح قائمة. في شريط البحث ، اكتب اردوينو جسون. ستظهر قائمة. تثبيت Arduino JSON بواسطة Benoit Blanchon.

    اردوينو جسون

  7. الآن انقر فوق أدوات. سوف تظهر القائمة المنسدلة. اضبط اللوحة على وحدة تطوير ESP.

    لوحة الإعداد

  8. انقر فوق قائمة الأداة مرة أخرى وقم بتعيين المنفذ الذي لاحظته في لوحة التحكم من قبل.

    منفذ الإعداد

  9. الآن قم بتحميل الكود المرفق في الرابط أدناه وانقر على زر التحميل لنسخ الكود على ملف متحكم ESP32 .

    رفع

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

في الملف المضمن من C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 ، من C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: خطأ: StaticJsonBuffer هي فئة من ArduinoJson 5. يرجى الاطلاع على arduinojson.org/upgrade لمعرفة كيفية ترقية برنامجك إلى ArduinoJson الإصدار 6 StaticJsonBuffer jsonBuffer ؛ ^ في ملف مضمن من C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 ، من C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: خطأ: StaticJsonBuffer هو فصل دراسي من ArduinoJson 5. يرجى الاطلاع على arduinojson.org/upgrade لمعرفة كيفية ترقية برنامجك إلى الإصدار 6 من ArduinoJson يعود StaticJsonBuffer (). parseObject (_data) ؛ ^ تم العثور على مكتبات متعددة لـ 'WiFi.h' المستخدمة: C:  Users  Pro  AppData  Local  Arduino15 packs  esp32  Hardware  esp32  1.0.2  libraries  WiFi غير مستخدم: C:  Program Files ( x86)  Arduino  libraries  WiFi استخدام مكتبة WiFi في الإصدار 1.0 في المجلد: C:  Users  Pro  AppData  Local  Arduino15 packs  esp32  Hardware  esp32  1.0.2  libraries  WiFi باستخدام المكتبة IOXhop_FirebaseESP32-master في المجلد: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (قديم) باستخدام مكتبة HTTPClient في الإصدار 1.2 في المجلد: C:  Users  Pro  AppData  Local  Arduino15 packs  esp32  Hardware  esp32  1.0.2  libraries  HTTPClient باستخدام مكتبة WiFiClientSecure في الإصدار 1.0 في المجلد: C:  Users  Pro  AppData  Local  Arduino15 packs  esp32  Hardware  esp32  1.0.2  libraries  WiFiClientSecure باستخدام مكتبة ArduinoJson في الإصدار 6.12.0 في المجلد: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson إنهاء الحالة 1 خطأ في التحويل البرمجي لوحدة ESP32 Dev للوحة.

لا داعي للقلق لأنه يمكننا التخلص من هذه الأخطاء باتباع بعض الخطوات البسيطة. تظهر هذه الأخطاء لأن الإصدار الجديد من Arduino JSON به فئة أخرى بدلاً من StaticJsonBuffer. هذه هي فئة JSON 5. لذلك يمكننا ببساطة التخلص من هذا الخطأ عن طريق تخفيض إصدار Arduino JSON من Arduino IDE. ببساطة اذهب إلى رسم> تضمين مكتبة> إدارة المكتبات. البحث عن Arduino JSON بواسطة Benoit Blanchon التي قمت بتثبيتها من قبل. قم بإلغاء تثبيته أولاً ثم قم بتعيين نسخته على 5.13.5. الآن بعد أن قمنا بتعيين إصدار قديم من Arduino JSON ، قم بتثبيته مرة أخرى وإعادة ترجمة الكود. هذه المرة ، سيتم ترجمة التعليمات البرمجية الخاصة بك بنجاح.

لتنزيل الكود ، انقر هنا.

الخطوة 8: تجميع الدائرة

الآن بما أن تطبيقنا جاهز ويعمل بكامل طاقته ، فلنرى كيف سنقوم بتوصيل الدائرة بالكمبيوتر.

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

الخطوة 9: الكود

الكود بسيط جدًا ، ولكن مع ذلك ، يتم شرحه بإيجاز أدناه.

1. في البداية ، تم تضمين مكتبتين بحيث يمكن استخدام Firebase مع ESP32.

# تضمين # تضمين

2. ثم يتم تقديم معلومات حول قاعدة بيانات Firebase الخاصة بك واتصال Wifi ويتم الإعلان عن دبوس ESP الذي سيتم استخدامه مع وحدة الترحيل.

#define FIREBASE_HOST 'xxxxx' // استبدله بمضيف Firebase #define FIREBASE_AUTH 'xxxxx' // استبدله بـ firebase auth #define WIFI_SSID 'xxxxx' // استبدل هذا بـ WIFI SSID #define WIFI_PASSWORD 'xxxxx' // استبدلها بكلمة مرور wifi الخاصة بك int swi = 34 ؛ // قم بتوصيل pin34 من ESP بوحدة الترحيل

3. الإعداد باطل() هي وظيفة تعمل مرة واحدة فقط عند تشغيل الدائرة أو الضغط على زر تمكين. هنا يتم كتابة الرمز t لتوصيل لوحة ESP بـ WIFI. يتم أيضًا إعلان دبوس ESP المستخدم مع وحدة الترحيل على أنه OUTPUT هنا.

إعداد باطل () {Serial.begin (115200) ؛ pinMode (SWI ، الإخراج) ؛ // الاتصال بشبكة wifi. WiFi.begin (WIFI_SSID ، WIFI_PASSWORD) ؛ Serial.println ('اتصال') ؛ while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.') ؛ تأخير (500) ؛ } Serial.println () ، Serial.print ('متصل:') ؛ Serial.println (WiFi.localIP ()) ؛ Firebase.begin (FIREBASE_HOST، FIREBASE_AUTH) ، }

أربعة. حلقة فارغة() هي وظيفة تعمل بشكل متكرر في حلقة. هنا ، تتم قراءة القيمة من Firebase. إذا كانت هذه القيمة تساوي '1' ، فسيتم إرسال الإشارة العالية إلى وحدة الترحيل وسيتم تشغيل الكمبيوتر. عندما تكون هذه القيمة '0' ، سيتم إيقاف تشغيل الكمبيوتر.

الحلقة الفارغة () {// read value if (Firebase.getFloat ('switch') == 1) {digitalWrite (swi، HIGH)؛ } else {digitalWrite (swi، LOW)؛ } // معالجة الخطأ إذا (Firebase.failed ()) {Serial.print ('setting / number failed:')؛ Serial.println (Firebase.error ()) ، إرجاع؛ } تأخير (1000)؛ }