- عمل منظم مروحة سقف قائم على إنترنت الأشياء
- المواد المطلوبة لدائرة التحكم في سرعة مروحة التيار المتردد
- دائرة التحكم في منظم مروحة التيار المتردد
- تصميم ثنائي الفينيل متعدد الكلور لمنظم مروحة سقف يتم التحكم فيه بإنترنت الأشياء
- إعداد حساب Firebase
- كود Arduino للتحكم في منظم المروحة باستخدام NodeMCU
- بناء تطبيق Fan Regulator باستخدام MIT App Inventor
- اختبار دائرة مستشعر اللمس ESP32
- مزيد من التحسينات
في هذه المقالة ، نقوم ببناء دائرة منظم مروحة التيار المتردد ، والتي تكون قادرة على التحكم في سرعة المروحة عن طريق تقييد تدفق التيار إلى المروحة. إن مصطلح منظم مروحة سقف مكيف الهواء هو مصطلح ممتع ، ومن ثم فإننا ببساطة نسميه منظم مروحة من الآن فصاعدًا. A دائرة مروحة منظم عنصرا حاسما التي يتم استخدامها لزيادة أو تقليل سرعة من AC / مروحة المحرك وفقا للاحتياجات. قبل بضع سنوات ، كان لديك خيار بين منظم مروحة من النوع المقاوم التقليدي أو منظم إلكتروني ، ولكن في الوقت الحاضر تم استبداله جميعًا بدائرة منظم المروحة الإلكترونية.
في مقال سابق ، أوضحنا لك كيف يمكنك بناء دائرة تحكم في زاوية التيار المتردد باستخدام Arduino والتي كانت قادرة على التحكم في سطوع المصباح الكهربائي المتوهج وأيضًا التحكم في سرعة المروحة ، وذلك لتصعيدها قليلاً. في هذه المقالة ، سنقوم ببناء دائرة منظم مروحة سقف AC تعتمد على إنترنت الأشياء. والتي ستكون قادرة على التحكم في سرعة مروحة السقف الخاصة بك بمساعدة تطبيق Android.
عمل منظم مروحة سقف قائم على إنترنت الأشياء
دارة منظم المروحة عبارة عن دائرة بسيطة قادرة على التحكم في سرعة مروحة سقف التيار المتردد عن طريق تغيير زاوية الطور لموجة جيبية التيار المتردد أو بعبارات بسيطة التحكم الدقيق في TRIAC. كما ذكرت جميع الأعمال الأساسية لدائرة منظم مروحة التيار المتردد في التحكم في زاوية الطور AC مع مقالة 555 Timer و PWM ، سنركز على البناء الفعلي للدائرة. ومرة أخرى إذا كنت تريد معرفة المزيد عن الموضوع ، فيرجى أيضًا مراجعة المقالة حول AC Light Dimmer باستخدام Arduino و TRIAC Project.
يوضح مخطط الكتلة الأساسي أعلاه كيف تعمل الدائرة بالفعل. كما قلت سابقًا ، سننشئ إشارة PWM بمساعدة Firebase IoT و NodeMCU ، ثم سيتم تمرير إشارة PWM من خلال مرشح التمرير المنخفض الذي سيتحكم في بوابة MOSFET بعد ذلك سيتحكم مؤقت 555 TRIAC الفعلي بمساعدة optocoupler.
في هذه الحالة ، يغير تطبيق android القيمة في firebaseDB ويتحقق ESP باستمرار من أي تغييرات تحدث لقاعدة البيانات هذه في حالة حدوث أي تغيير يتم سحبه وتحويل القيمة إلى إشارة PWM
المواد المطلوبة لدائرة التحكم في سرعة مروحة التيار المتردد
تُظهر الصورة أدناه المواد المستخدمة لبناء هذه الدائرة ، نظرًا لأنها مصنوعة من مكونات عامة جدًا ، يجب أن تكون قادرًا على العثور على جميع المواد المدرجة في متجر الهوايات المحلي.
لقد أدرجت أيضًا المكونات في جدول أدناه بالنوع والكمية منذ أن كان مشروعًا توضيحيًا ، وأنا أستخدم قناة واحدة للقيام بذلك. ولكن يمكن توسيع نطاق الدائرة بسهولة حسب المتطلبات.
- برغي موصل 5.04 مم - 2
- موصل 2.54 مم رأس ذكر -1
- 56 كيلو ، 1 واط المقاوم -2
- 1N4007 ديود - 4
- 0.1 فائق التوهج ، 25 فولت مكثف - 2
- منظم الجهد AMS1117 - 1
- 1000 فائق التوهج ، 25 فولت مكثف - 1
- مقبس طاقة تيار مستمر - 1
- 1K المقاوم - 1
- 470R المقاوم - 2
- 47R المقاوم - 2
- 82 ك المقاومات - 1
- مقاومات 10 ك - 5
- جهاز Optocoupler PC817 - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 موسفيت -1
- 3.3 فائق التوهج مكثف - 1
- توصيل الأسلاك - 5
- 0.1 فائق التوهج ، 1 كيلو فولت مكثف - 1
- متحكم ESP8266 (ESP-12E) - 1
دائرة التحكم في منظم مروحة التيار المتردد
الرسم التخطيطي لدائرة منظم مروحة إنترنت الأشياء موضح أدناه ، هذه الدائرة بسيطة للغاية وتستخدم مكونات عامة لتحقيق التحكم في زاوية الطور.
تتكون هذه الدائرة من مكونات مصممة بعناية فائقة. سأمر على كل واحد وأشرح كل كتلة.
شريحة واي فاي ESP8266 (ESP-12E):
هذا هو الجزء الأول من دائرتنا وهو الجزء الذي قمنا فيه بتغيير الكثير من الأشياء ، تبقى الأجزاء الأخرى كما هي تمامًا ، أي إذا كنت قد اتبعت المقالة السابقة.
في هذا القسم ، قمنا بسحب المسامير Enable و Reset و GPIO0 ، أيضًا ، قمنا بسحب GPIO15 و Ground Pin ، والتي أوصت بها ورقة بيانات الشريحة. بالنسبة للبرمجة ، فقد وضعنا رأسًا ثلاثي الأبعاد يعرض TX و RX والدبوس الأرضي الذي يمكننا من خلاله برمجة الشريحة بسهولة بالغة. أيضًا ، لقد قمنا بوضع مفتاح لمسي لوضع GPIO0 على الأرض ، وهذه خطوة ضرورية لوضع ESP في وضع البرمجة. لقد اخترنا دبوس GPIO14 كمخرج يتم من خلاله إنشاء إشارة PWM.
ملحوظة! في وقت البرمجة ، يتعين علينا الضغط على الزر وتشغيل الجهاز بمقبس أسطواني DC.
دائرة الكشف عن المعابر الصفرية:
أولاً ، في قائمتنا دائرة الكشف الصفرية المصممة بمقاومين 56 كيلو ، 1 وات بالتزامن مع أربعة صمامات ثنائية 1n4007 و optocoupler PC817. وهذه الدائرة مسؤولة عن توفير إشارة العبور الصفري إلى المؤقت 555 IC. أيضًا ، قمنا بتسجيل الطور والإشارة المحايدة لاستخدامها مرة أخرى في قسم TRIAC.
AMS1117-3.3V منظم الجهد:
يتم استخدام منظم الجهد AMS1117 لتشغيل الدائرة ، وتكون الدائرة مسؤولة عن توفير الطاقة للدائرة بأكملها. بالإضافة إلى ذلك ، استخدمنا مكثفين 1000 فائق التوهج ومكثف 0.1 فائق التوهج كمكثف فصل لـ AMS1117-3.3 IC.
دائرة التحكم بالمؤقت NE555:
تُظهر الصورة أعلاه دائرة التحكم في المؤقت 555 ، وقد تم تكوين 555 في تكوين أحادي ، لذلك عندما تصل إشارة الزناد من دائرة الكشف عن عبور الصفر إلى الزناد ، يبدأ المؤقت 555 في شحن المكثف بمساعدة المقاوم (بشكل عام) ، لكن دائرتنا بها MOSFET بدلاً من المقاوم ، ومن خلال التحكم في بوابة MOSFET ، نتحكم في التيار المتجه إلى المكثف ، ولهذا السبب نتحكم في وقت الشحن ومن ثم نتحكم في إخراج أجهزة ضبط الوقت 555.
TRIAC ودائرة سائق TRIAC:
يعمل TRIAC كمفتاح رئيسي يتم تشغيله وإيقافه بالفعل وبالتالي يتحكم في إخراج إشارة التيار المتردد. قيادة TRIAC باستخدام محرك MOC3021 Opto-Triac ، لا يقود فقط TRIAC ، ولكنه يوفر أيضًا عزلًا بصريًا ، ومكثف الجهد العالي 0.01 فائق التوهج 2KV ، ويشكل المقاوم 47R دائرة snubber ، التي تحمي دائرتنا من طفرات الجهد العالي التي تحدث عند توصيلها بحمل استقرائي ، الطبيعة غير الجيبية لإشارة التيار المتردد المحولة هي المسؤولة عن المسامير. كما أنه مسؤول عن مشكلات عامل الطاقة ، ولكن هذا موضوع لمقال آخر.
Lowpass-Filter و P-Channel MOSFET (يعمل كمقاوم في الدائرة):
يشكل المقاوم 82K والمكثف 3.3 فائق التوهج مرشح التمرير المنخفض المسؤول عن تنعيم إشارة PWM عالية التردد الناتجة عن Arduino. كما ذكرنا سابقًا ، تعمل P-Channel MOSFET كمقاوم متغير ، يتحكم في وقت شحن المكثف. التحكم فيه هو إشارة PWM التي يتم تنعيمها بواسطة مرشح الترددات المنخفضة.
تصميم ثنائي الفينيل متعدد الكلور لمنظم مروحة سقف يتم التحكم فيه بإنترنت الأشياء
تم تصميم PCB لدائرة منظم مروحة سقف IoT الخاصة بنا في لوحة أحادية الجانب. لقد استخدمت برنامج تصميم Eagle PCB لتصميم ثنائي الفينيل متعدد الكلور الخاص بي ولكن يمكنك استخدام أي برنامج تصميم من اختيارك. الصورة ثنائية الأبعاد لتصميم لوحي موضحة أدناه.
يتم استخدام حشوة أرضية كافية لإجراء اتصالات أرضية مناسبة بين جميع المكونات. يتم ملء مدخل 3.3V DC ومدخل 220 Volt AC على الجانب الأيسر ، ويقع الإخراج على الجانب الأيمن من PCB. يمكن تنزيل ملف التصميم الكامل لـ Eagle مع Gerber من الرابط أدناه.
- تصميم ثنائي الفينيل متعدد الكلور ، ملفات GERBER و PDF لدائرة منظم مروحة السقف
PCB اليدوية:
للراحة ، صنعت نسختي المصنوعة يدويًا من ثنائي الفينيل متعدد الكلور وهي مبينة أدناه.
مع هذا ، أجهزتنا جاهزة وفقًا لمخطط الدائرة لدينا ، والآن يتعين علينا تجهيز تطبيق Android و Google firebase.
إعداد حساب Firebase
بالنسبة للخطوة التالية ، نحتاج إلى إعداد حساب Firebase. ستمر جميع الاتصالات عبر حساب Firebase. لإعداد حساب Firebase ، انتقل إلى موقع Firebase وانقر على "البدء".
بمجرد النقر فوق ، تحتاج إلى تسجيل الدخول باستخدام حساب Google الخاص بك ، و
بمجرد تسجيل الدخول ، تحتاج إلى إنشاء مشروع بالنقر فوق زر إنشاء مشروع.
سيؤدي القيام بذلك إلى إعادة توجيهك إلى صفحة تشبه الصورة أعلاه. اكتب اسم مشروعك وانقر فوق متابعة.
مرة أخرى ، انقر فوق متابعة.
بمجرد القيام بذلك ، تحتاج إلى الموافقة على بعض الشروط والأحكام من خلال النقر فوق مربع الاختيار ، بعد ذلك ، تحتاج إلى النقر فوق الزر إنشاء مشروع.
إذا كنت قد فعلت كل شيء بشكل صحيح ، فبعد مرور بعض الوقت ، ستصلك رسالة مثل هذه. بمجرد الانتهاء ، يجب أن تبدو وحدة تحكم Firebase الخاصة بك مثل الصورة أدناه.
الآن نحن بحاجة إلى جمع شيئين من هنا. للقيام بذلك ، تحتاج إلى النقر فوق اسم المشروع الذي قمت بإنشائه للتو. بالنسبة لي ، إنه CelingFanRegulator ، بمجرد النقر فوقه ، ستحصل على لوحة تحكم مشابهة للصورة أدناه.
انقر فوق الإعدادات ، ثم إعدادات المشروع ، ستظهر الصفحة التي ستحصل عليها مثل الصور أدناه.
انقر فوق حساب الخدمة -> سر قاعدة البيانات.
انسخ سر قاعدة البيانات واحتفظ بها في مكان ما لاستخدامها لاحقًا.
بعد ذلك ، انقر فوق قاعدة البيانات في الوقت الفعلي وانسخ عنوان URL. احتفظ بها أيضًا لاستخدامها لاحقًا.
وهذا كل شيء ، يوجد جانب قاعدة النار للأشياء.
كود Arduino للتحكم في منظم المروحة باستخدام NodeMCU
يعتني رمز Arduino البسيط بالاتصال بين Firebase ووحدة ESP-12E ، ويرد أدناه شرح الدائرة والكود ، أولاً ، نحدد جميع المكتبات اللازمة المطلوبة ، يمكنك تنزيل المكتبات التالية من الروابط المعينة مكتبة Arduino JSON ومكتبة FirebaseArduino
#تضمن
سنكون باستخدام FirebaseArduino مكتبة لإقامة الاتصالات مع firebase.
// اضبط هذه لتشغيل الأمثلة. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "WIFI_SSID" WIFI_SSID الخاص بك SSID "#define
بعد ذلك، قمنا تعريف المضيف firebase ، المصادقة firebase، التي كنا قد حفظته سابقا عندما كنا جعل حساب firebase. ثم قمنا تعريف SSID و كلمة المرور من جهاز التوجيه لدينا.
سلسلة Resivedata ؛ #define PWM_PIN 14 ؛
بعد ذلك ، حددنا متغير نوع السلسلة ، Resivedata حيث سيتم تخزين جميع البيانات وقمنا أيضًا بتحديد PWM_PIN حيث سنحصل على إخراج PWM.
بعد ذلك ، في قسم إعداد الفراغ () ، نقوم بما يلزم ،
Serial.begin (9600) ؛ pinMode (PWM_PIN ، الإخراج) ؛ WiFi.begin (WIFI_SSID ، WIFI_PASSWORD) ؛ Serial.print ("اتصال") ؛ while (WiFi.status ()! = WL_CONNECTED) {Serial.print (".") ؛ تأخير (500) ؛ } Serial.println () ، Serial.print ("متصل:") ؛ Serial.println (WiFi.localIP ()) ؛ Firebase.begin (FIREBASE_HOST، FIREBASE_AUTH) ، Firebase.setString ("Variable / Value"، "FirstTestStrig")؛
أولاً ، نقوم بتمكين المسلسل عن طريق استدعاء دالة Serial.begin () . بعد ذلك ، قمنا بتعيين دبوس PWM على أنه OUTPUT. نبدأ اتصال Wi-Fi بمساعدة وظيفة WiFi.begin () ونمرر SSID وكلمة المرور في الوظيفة. نتحقق من حالة الاتصال في حلقة while وبمجرد الاتصال ، نقطع الحلقة ونستمر. بعد ذلك ، نقوم بطباعة الرسالة المتصلة بعنوان IP.
وأخيرا، علينا أن نبدأ التواصل مع firebase مع Firebase.begin () وظيفة ونحن تمرير FIREBASE_HOST و FIREBASE_AUTH المعلمات التي حددناها في وقت سابق. وقمنا بتعيين السلسلة باستخدام وظيفة setString () ، والتي تمثل نهاية وظيفة الإعداد. في قسم الحلقة الفارغة () ،
Resivedata = Firebase.getString ("المتغير / القيمة") ؛ Serial.println (Resivedata) ؛ analogWrite (PWM_PIN ، الخريطة (Resivedata.toInt () ، 0 ، 80 ، 80 ، 0)) ؛ Serial.println (Resivedata) ؛ تأخير (100) ؛
نسمي دالة getString () بالمتغير / القيمة حيث يتم تخزين البيانات في Firebase ، على سبيل المثال سيكون مثل الصورة أدناه-
ثم نطبع القيمة فقط من أجل التصحيح. بعد ذلك ، نستخدم وظيفة الخريطة لتعيين القيمة ، ويتم استخدام 80 لأنه ضمن النطاق من 0 إلى 80 ، يمكننا التحكم في بوابة MOSFET بدقة ، ومرشح RC lowpass مسؤول إلى حد ما عن هذه القيمة. ضمن هذا النطاق ، تعمل دائرة التحكم في زاوية الطور بدقة ، يمكنك استدعاء القيمة كنقطة حلوة للبرامج والأجهزة. إذا كنت تقوم بهذا المشروع وتواجه مشكلات ، فأنت بحاجة إلى اللعب بالقيمة وتحديد النتائج بنفسك.
وبعد ذلك ، نستخدم الدالة analogWrite () لتغذية البيانات وتمكين PWM ، وبعد ذلك ، نستخدم وظيفة Serial.println () مرة أخرى فقط لمراجعة النتيجة ، وأخيرًا ، نستخدم وظيفة تأخير لتقليل عدد مرات الدخول إلى Firebase API مما يجعل نهاية برنامجنا.
بناء تطبيق Fan Regulator باستخدام MIT App Inventor
مع مساعدة من AppInventor ، ونحن نذهب لجعل التطبيق الروبوت التي من شأنها التواصل مع firebase ولديه السلطة لتغيير البيانات التي يتم تخزينها في قاعدة البيانات firebase.
للقيام بذلك ، انتقل إلى موقع appInventors ، وقم بتسجيل الدخول باستخدام حساب Google الخاص بك ، واقبل الشروط والأحكام. بمجرد القيام بذلك ، ستظهر لك شاشة تشبه الصورة أدناه.
انقر فوق رمز بدء مشروع جديد وقم بتسميته واضغط على موافق ، بمجرد القيام بذلك ، ستظهر لك شاشة مثل الصورة أدناه.
بمجرد الوصول إلى هناك ، تحتاج أولاً إلى وضع ملصقين ، حيث يتم وضع شريط التمرير لأسفل قليلاً ، وبعد ذلك تحتاج إلى سحب بعض الوحدات وهي وحدة FirebaseDB ووحدة الويب.
و firebaseDB تتواصل الوحدة مع firebase و حدة الإنترنت يستخدم لح andle طلب المتشعب. الذي يشبه الصورة أدناه.
بمجرد الانتهاء من ذلك ، ستحتاج إلى سحب شريط التمرير والتسمية التي أطلقنا عليها اسم PWM ، إذا كنت تشعر بالارتباك في هذه اللحظة ، يمكنك الاطلاع على بعض البرامج التعليمية الأخرى المتعلقة بإنشاء تطبيق مع مخترع التطبيق.
بعد أن ننتهي من العملية ، انقر على أيقونة Firebase DB وأدخل الرمز المميز لـ firebase وعنوان URL الخاص بـ firebase الذي حفظناه أثناء إنشاء حساب Firebase.
الآن ، انتهينا من قسم التصميم ونحتاج إلى إعداد قسم الكتلة. للقيام بذلك ، نحتاج إلى النقر فوق زر الحظر في الزاوية اليمنى العليا بجانب المصمم.
بمجرد النقر فوق شريط التمرير ، سيتم تقديمك بقائمة طويلة من الوحدات ، واسحب الوحدة الأولى ، وحرك الماوس فوق زر موضع الإبهام ، سيتم الترحيب بك بوحدتين أخريين ، اسحب كل منهما للخارج. سوف نستخدمها لاحقًا.
الآن نقوم بإرفاق متغير موضع الإبهام ، نقوم بتقريبه ونحصل على قيمة موضع الإبهام. بعد ذلك ، نضغط على firebasedb ونقوم بسحب قيمة علامة FirebaseDB.storeValue للتخزين والوحدة وإرفاقها بالجزء السفلي من قيمة موضع الإبهام.
بمجرد الانتهاء من ذلك ، نقوم بسحب مربع نص فارغ عن طريق النقر فوق كتلة النص وإرفاقه بالعلامة ، هذه هي العلامة التي قمنا بتعيينها في Arduino IDE لقراءة البيانات وكتابتها على firebase. الآن قم بإرفاق متغير قيمة الإبهام بالقيمة لتخزين العلامة. إذا كنت قد فعلت كل شيء بشكل صحيح ، فمن خلال تحريك شريط التمرير ، ستتمكن من تغيير القيم في firebaseDB.
- aia (ملف محفوظ) و.apk (ملف مترجم)
وهو ما يمثل نهاية عملية صنع التطبيق لدينا. لقطة من تطبيق android الذي أنشأناه للتو موضحة أدناه.
اختبار دائرة مستشعر اللمس ESP32
لاختبار الدائرة ، قمت بتوصيل لمبة متوهجة موازية لمروحة السقف ، وقمت بتشغيل الدائرة بمحول 5V DC ، كما ترون في الصورة أعلاه ، تم ضبط شريط تمرير التطبيق على منخفض ، ولهذا يتوهج المصباح عند سطوع منخفض. والمروحة تدور ببطء.
مزيد من التحسينات
بالنسبة لهذا العرض التوضيحي ، يتم إنشاء الدائرة على PCB يدويًا ولكن يمكن إنشاء الدائرة بسهولة على ثنائي الفينيل متعدد الكلور عالي الجودة ، في تجاربي ، حجم ثنائي الفينيل متعدد الكلور هو حقًا قليلاً بسبب حجم المكون ، ولكن في بيئة الإنتاج ، يمكن تقليله باستخدام مكونات SMD الرخيصة ، فقد وجدت أن استخدام مؤقت 7555 بدلاً من مؤقت 555 يزيد من التحكم بشكل كبير ، علاوة على ذلك ، يزيد استقرار الدائرة أيضًا.