التحكم في موقدك من هاتفك الذكي باستخدام WiFi

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



موقد ذكي

كيفية أتمتة موقد الغاز من خلال هاتفك المحمول؟

الآن بما أننا نعرف ملخص المشروع ، دعونا نمضي قدمًا ونجمع معلومات مختلفة لبدء العمل. سنقوم أولاً بإعداد قائمة بالمكونات ثم نقوم بتجميع جميع المكونات معًا لإنشاء نظام عمل.



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

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



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

الخطوة الثانية: تطوير تطبيق Android

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



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

سيتم استخدام زر واحد لفتح وإغلاق صمام الغاز وسيتم استخدام الزر الثاني لإنشاء شرارة تكون مسؤولة عن اشتعال .

الخطوة 3: عمل الدائرة

نظرًا لأننا نعرف الآن الجوهر الرئيسي لهذا المشروع ، فلنجمع كل المكونات معًا لعمل دائرة نهائية.



خذ لوح التجارب وأدخل ملف لوحة ESP32 فيه. خذ كلاً من الترانزستورات والمقاومات وأدخلها في اللوح بطريقة يمكن من خلالها استخدام الترانزستور كمفتاح. اتبع التكوين أدناه حتى لا ترتكب أي أخطاء أثناء إجراء التبديل.

الترانزستور كمفتاح

في الشكل أعلاه ، قم بتوصيل نبيذ المنفذ إلى دبابيس ESP32 ، قم بتوصيل المنفذ Vcc بمصدر 5V الخارجي وتوصيل Vo بوحدة الترحيل. السبب الرئيسي وراء استخدامنا الترانزستور كمفتاح هو أن المرحل يحتاج إلى 5 فولت للعمل ولكن ESP32 يمكنه توفير 3.3 فولت فقط. لذلك نحن بحاجة إلى توفير 5V خارجي للتتابع.

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

وحدة الترحيل

الخطوة 4: العمل

قلب هذا المشروع هو ESP32 وهو لوحة وحدة التحكم الدقيقة. يتم توصيل صمام الغاز وقابس الإشعال بـ ESP عبر وحدات الترحيل. يتم إغلاق صمام الغاز في البداية. عندما يتم تشغيله من تطبيق الهاتف المحمول ، يتم تشغيل صمام الغاز. نفس الشيء في حالة شمعة الإشعال. يمكن إيقاف تشغيله أو إيقاف تشغيله من خلال تطبيق الهاتف المحمول. سيتم توصيل شمعة الإشعال هذه بالموقد حيث يتم إطلاق الغاز. سوف تضيء شمعة الإشعال هذه النار.

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

إذا لم تكن قد عملت على 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 Module.

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

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

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

تم التعليق على الكود المرفق جيدًا ولكن مع ذلك ، يتم شرح بعض أجزائه أدناه.

1. في البداية ، تم تضمين مكتبتين بحيث يتم تمكين WiFi ويمكن توصيل لوحة ESP بقاعدة بيانات Firebase. ثم يتم تضمين مضيف firebase والمصادقة واسم اتصال wifi المحلي وكلمة المرور الخاصة باتصال wifi نفسه. أيضًا ، حدد المسامير الموجودة على لوحة ESP التي سيتم استخدامها لتوصيل الأجهزة الخارجية.

# تضمين // تتضمن مكتبة لاستخدام WiFi #include // تضمين مكتبة للاتصال بـ Firebase #define FIREBASE_HOST 'xxxxxxxxxx' // استبدل xxxxxxxxxx بواسطة مضيف Firebase هنا #define FIREBASE_AUTH 'xxxxxxxxxx' // استبدل xxxxxxxxxx بمصادقة Firebase هنا # حدد WIFI_SSID 'xxxxxxxxxx' // استبدل xxxxxxxxxx باسم اتصال Wifi الخاص بنا #define WIFI_PASSWORD 'xxxxxxxxxx' // استبدل xxxxxxxxxx بكلمة مرور wifi الخاصة بك #define valve 34 // قم بتوصيل صمام الغاز بهذا الدبوس #define spark 35 // connect spark قم بتوصيل هذا الدبوس

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

إعداد باطل () {Serial.begin (115200) ؛ // ضبط معدل الباود pinMode (الصمام ، الإخراج) ؛ // تعيين الدبوس 34 لاستخدامه كـ OUTPUT pinMode (شرارة ، إخراج) ؛ // تعيين دبوس 35 لاستخدامه كمخرج // اتصال بشبكة 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) ، }

3. حلقة فارغة() هي الوظيفة التي تعمل بشكل متكرر في حلقة. في هذه الحلقة ، تتم قراءة القيم من Firebase ويتم فحصها إذا كانت صفرًا أو واحدًا. إذا كانت القيم واحدة ، فسيتم إرسال إشارة عالية إلى الدبوس والتي ستؤدي إلى تشغيل وحدة الترحيل. إذا كانت القيمة صفر ، فسيتم إرسال إشارة LOw إلى طرف ESP مما سيؤدي إلى إيقاف تشغيل المرحل.

حلقة فارغة () {// get value temp1 = Serial.println (Firebase.getFloat ('light')) ؛ // احصل على قيمة تبديل صمام الغاز temp2 = Serial.println (Firebase.getFloat ('AC')) ؛ // احصل على vaue لتبديل شمعة الإشعال إذا (temp1 == 1) {digitalWrite (valve، HIGH) // turn on relay one} else if (temp1 == 0) {digitalWrite (valve، LOW) // turn off relay one} else if (temp2 == 1) {digitalWrite (spark، HIGH) // قم بتشغيل relay two} else if (temp2 == 0) {digitalWrite (spark، LOW) // turn off relay two} // معالجة الخطأ إذا (Firebase.failed ()) {Serial.print ('فشل الإعداد / الرقم:')؛ Serial.println (Firebase.error ()) ، إرجاع؛ } تأخير (1000)؛ }

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