جدول المحتويات:
- اللوازم
- الخطوة 1: الميزات
- الخطوة 2: ثنائي الفينيل متعدد الكلور
- الخطوة 3: التجميع
- الخطوة 4: نظرة عامة على البرمجة
- الخطوة 5: المدخلات
- الخطوة 6: النواتج
- الخطوة 7: التسجيل
- الخطوة 8: الجرس
- الخطوة 9: تكامل إنترنت الأشياء الخارجي
- الخطوة 10: الاستخدام
- الخطوة 11: الخطط المستقبلية
فيديو: ESP32 Smart Home Hub: 11 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
يستغرق إنشاء نظام يمكنه التعامل مع كميات كبيرة من بيانات أجهزة الاستشعار ، وله مخرجات متعددة ، والاتصال بالإنترنت أو بشبكة محلية وقتًا طويلاً وكميات كبيرة من الجهد. في كثير من الأحيان ، يعاني الأشخاص الذين يرغبون في إنشاء شبكات منزلية ذكية خاصة بهم من القدرة على العثور على المكونات المخصصة وتجميعها في نظام أكبر. لهذا السبب كنت أرغب في إنشاء نظام أساسي معياري وغني بالميزات من شأنه أن يجعل من السهل إنشاء مجسات ومخرجات متصلة بإنترنت الأشياء.
بفضل DFRobot و PCBGOGO.com لرعايتهما هذا المشروع!
لمزيد من المعلومات المتعمقة ، قم بزيارة Github repo:
اللوازم
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
مستشعر DHT22
www.dfrobot.com/product-1102.html
-
APDS9960 مستشعر الضوء والإيماءات
www.dfrobot.com/product-1361.html
-
وحدة I2C 20x4 LCD
www.dfrobot.com/product-590.html
-
شريط RGB LED تناظري
www.dfrobot.com/product-1829.html
- DRV8825 محركات السائر
- قارئ بطاقة SD
- NEMA17 السائر موتورز
الخطوة 1: الميزات
الميزة الرئيسية لهذه اللوحة هي ESP32 FireBeetle Development Board التي تتعامل مع جميع الاتصالات وقراءات أجهزة الاستشعار والمخرجات. هناك نوعان من محركات السائر التي تتحكم في اثنين من محركات السائر ثنائية القطب.
تم أيضًا كسر ناقل I2C للاستخدام مع مكونات مثل APDS9960 أو شاشة LCD. لقراءة درجة الحرارة ، هناك دبابيس مكسورة للاتصال بمستشعر DHT22 ، بالإضافة إلى مقاوم ضوئي لقراءة مستويات الإضاءة المحيطة.
يوجد دعم لشريط الضوء التناظري على اللوحة ، والذي يحتوي على ثلاث وحدات MOSFET لقيادة مصابيح LED.
الخطوة 2: ثنائي الفينيل متعدد الكلور
لقد بدأت عملية تصميم ثنائي الفينيل متعدد الكلور من خلال إنشاء مخطط تخطيطي في Eagle أولاً. نظرًا لأنني لم أتمكن من العثور على مكتبة ESP32 FireBeetle ، فقد استخدمت للتو رأسي دبوس 1x18 بدلاً من ذلك. بعد ذلك ، قمت بإنشاء دائرة إدارة طاقة يمكنها قبول 12 فولت من خلال مقبس أسطواني تيار مستمر وتحويله إلى 5 فولت لتشغيل المستشعرات و ESP32.
بعد الانتهاء من التخطيطي ، انتقلت إلى تصميم ثنائي الفينيل متعدد الكلور نفسه.
كنت أعلم أن قابس برميل DC يجب أن يكون بالقرب من مقدمة اللوحة ، وأن مكثفات تنعيم مزود الطاقة 100 فائق التوهج يجب أن تكون قريبة من مدخلات طاقة محرك السائر. بعد أن تم وضع كل شيء ، بدأت في توجيه الآثار.
في حين أن Oshpark تصنع مركبات ثنائي الفينيل متعدد الكلور عالية الجودة ، فإن أسعارها مرتفعة للغاية. لحسن الحظ ، يصنع موقع PCBGOGO.com أيضًا ثنائي الفينيل متعدد الكلور رائعًا بسعر مناسب. تمكنت من شراء عشرة مركبات ثنائي الفينيل متعدد الكلور مقابل 5 دولارات فقط ، بدلاً من دفع 52 دولارًا مقابل ثلاث لوحات فقط من Oshpark.com.
الخطوة 3: التجميع
بشكل عام ، كان تجميع اللوحة أمرًا سهلاً للغاية. لقد بدأت بلحام المكونات المثبتة على السطح ، ثم ربط موصل جاك البرميل والمنظم. بعد ذلك ، قمت بلحام رؤوس الدبوس لمكونات مثل محركات المحركات و FireBeetle.
بعد الانتهاء من اللحام ، اختبرت اللوحة من أجل ماس كهربائى عن طريق وضع مقياس متعدد في وضع قياس المقاومة ومعرفة ما إذا كانت المقاومة قد تجاوزت مقدارًا معينًا. مرت اللوحة ، لذلك تمكنت بعد ذلك من توصيل كل مكون.
الخطوة 4: نظرة عامة على البرمجة
أردت أن يكون رمز هذه اللوحة معياريًا وسهل الاستخدام. وهذا يعني وجود العديد من الفئات التي تتعامل مع وظائف محددة ، إلى جانب فئة غلاف أكبر تجمع بين الفئات الأصغر.
الخطوة 5: المدخلات
للتعامل مع المدخلات ، قمت بإنشاء فئة تسمى "Hub_Inputs" ، والتي تتيح للمحور المنزلي التواصل مع APDS9960 ، جنبًا إلى جنب مع إنشاء وإدارة الأزرار وواجهات اللمس السعوية. يحتوي على الوظائف التالية:
زر إنشاء
احصل إذا تم الضغط على الزر
احصل على عدد مرات الضغط على الزر
احصل على أحدث إيماءة
احصل على قيمة اللمس السعوية
يتم تخزين الأزرار كبنية ، بثلاث سمات: is_pressed و numberPresses و pin. يتم إرفاق كل زر بمقاطعة عند إنشائه. عندما يتم تشغيل هذه المقاطعة ، يتم تمرير مؤشر خدمة المقاطعة (ISR) (يُعطى كعنوان ذاكرة له في مجموعة الأزرار) ويزيد عدد مرات الضغط على الزر ، جنبًا إلى جنب مع تحديث قيمة is_pressed المنطقية.
قيم اللمس السعوية أبسط بكثير. يتم استرجاعها عن طريق تمرير دبوس اللمس إلى وظيفة touchRead ().
يتم تحديث أحدث إيماءة عن طريق استطلاع APDS9960 والتحقق مما إذا تم اكتشاف إيماءة جديدة ، وإذا تم اكتشاف إيماءة واحدة ، فقم بتعيين متغير الإيماءة الخاصة على تلك الإيماءة.
الخطوة 6: النواتج
يتميز محور المنزل الذكي بعدة طرق لإخراج المعلومات وتغيير الأضواء. هناك دبابيس تكسر ناقل I2C ، مما يسمح للمستخدمين بتوصيل شاشة LCD. حتى الآن ، يتم دعم حجم واحد فقط من شاشات الكريستال السائل: 20 × 4. باستخدام الوظيفة "hub.display_message ()" ، يمكن للمستخدمين عرض الرسائل على شاشة LCD عن طريق تمرير كائن سلسلة.
يوجد أيضًا رأس دبوس لتوصيل سلسلة من مصابيح LED التناظرية. استدعاء الوظيفة "hub.set_led_strip (r ، g ، b)" ، يحدد لون الشريط.
يتم تشغيل محركي السائر باستخدام زوج من لوحات القيادة DRV8825. قررت استخدام مكتبة BasicStepper للتعامل مع التحكم في المحركات. عندما يتم تمهيد اللوحة ، يتم إنشاء كائنين من السائر ، ويتم تمكين كلا المحركين. لخطوة كل محرك ، يتم استخدام وظيفة "hub.step_motor (motor_id ، الخطوات)" ، حيث يكون معرف المحرك إما 0 أو 1.
الخطوة 7: التسجيل
نظرًا لأن اللوحة بها العديد من أجهزة الاستشعار ، فقد أردت القدرة على جمع البيانات وتسجيلها محليًا.
لبدء التسجيل ، يتم إنشاء ملف جديد باستخدام "hub.create_log (اسم الملف ، الرأس)" ، حيث يتم استخدام الرأس لإنشاء صف ملف CSV يشير إلى الأعمدة. يكون العمود الأول دائمًا طابعًا زمنيًا في السنة شهر اليوم الساعة: الحد الأدنى: تنسيق الثانية. للحصول على الوقت ، تحصل وظيفة hub.log_to_file () على الوقت باستخدام وظيفة basic_functions.get_time (). يتم بعد ذلك تمرير هيكل tm time بالإشارة إلى وظيفة التسجيل ، جنبًا إلى جنب مع البيانات واسم الملف.
الخطوة 8: الجرس
ما فائدة لوحة إنترنت الأشياء إذا كنت لا تستطيع تشغيل الموسيقى؟ لهذا السبب قمت بتضمين الجرس بوظيفة تشغيل الأصوات. يبدأ استدعاء "hub.play_sounds (اللحن ، المدة ، الطول)" في تشغيل أغنية ، حيث يكون اللحن عبارة عن مجموعة من ترددات النغمات ، والمدة كمجموعة من فترات النوتة ، والطول مثل عدد النغمات.
الخطوة 9: تكامل إنترنت الأشياء الخارجي
يدعم المركز حاليًا خطافات الويب IFTTT. يمكن تشغيلها عن طريق استدعاء Hub_IoT.publish_webhook (عنوان url ، بيانات ، حدث ، مفتاح) أو وظيفة Hub_IoT.publish_webhook (url ، data). يؤدي هذا إلى إرسال طلب POST إلى عنوان URL المحدد مع إرفاق تلك البيانات ، إلى جانب اسم الحدث إذا لزم الأمر. لإعداد مثال لتكامل IFTTT ، قم أولاً بإنشاء تطبيق صغير جديد. ثم حدد خدمة webhook التي يتم تشغيلها عند تلقي طلب.
بعد ذلك ، اتصل بالحدث "high_temp" واحفظه. بعد ذلك ، حدد خدمة Gmail للجزء "هذا" ، واختر خيار "إرسال بريد إلكتروني إلى نفسي". ضمن إعداد الخدمة ، ضع "درجة الحرارة مرتفعة!" للموضوع ، ثم وضعت "درجة الحرارة المقاسة لـ {{Value1}} عند {{OccurredAt}}" ، والتي توضح درجة الحرارة المقاسة والوقت الذي تم فيه بدء الحدث.
بعد إعداده ، قم ببساطة بلصق عنوان URL الخاص بخطاف الويب الذي تم إنشاؤه بواسطة IFTTT ، ووضع "high_temp" في قسم الحدث.
الخطوة 10: الاستخدام
لاستخدام Smart Home Hub ، ما عليك سوى الاتصال بأي وظائف مطلوبة سواء في الإعداد () أو الحلقة (). لقد قمت بالفعل بوضع أمثلة على استدعاءات الوظائف ، مثل طباعة الوقت الحالي واستدعاء حدث IFTTT.
الخطوة 11: الخطط المستقبلية
يعمل نظام Smart Home Hub جيدًا لأتمتة المنزل البسيطة ومهام جمع البيانات. يمكن استخدامه لأي شيء تقريبًا ، مثل ضبط لون شريط LED ، ومراقبة درجة حرارة الغرفة ، والتحقق مما إذا كان الضوء قيد التشغيل ، ومجموعة كاملة من المشاريع المحتملة الأخرى. في المستقبل ، أود توسيع الوظائف أكثر. قد يشمل ذلك إضافة خادم ويب أكثر قوة واستضافة ملفات محلية وحتى Bluetooth أو mqtt.
موصى به:
اختيار محرك خطوة ومحرك لمشروع شاشة الظل الآلي في Arduino: 12 خطوة (بالصور)
اختيار Step Motor و Driver لمشروع شاشة الظل الآلي من Arduino: في هذا Instructable ، سأنتقل إلى الخطوات التي اتخذتها لتحديد Step Motor و Driver لمشروع نموذج شاشة الظل الآلي. شاشات الظل هي طرازات Coolaroo ذات الكرنك اليدوية الشائعة وغير المكلفة ، وأردت استبدال
GroupONE Smart Home: 27 خطوة
GroupONE Smart Home: مرحبًا! مشروع Raspberry Pi هذا هو & quot؛ منزل ذكي & quot؛ نظام الإدارة ، وهو قادر على قياس البيانات المختلفة مثل درجات الحرارة والرطوبة وقيم الضوء في أجزاء مختلفة من المنزل. سيغطي هذا Instructable إعداد الإدخال
ماسح سيكلوب ثلاثي الأبعاد My Way خطوة بخطوة: 16 خطوة (بالصور)
Ciclop 3D Scanner My Way خطوة بخطوة: مرحبًا بالجميع ، سأدرك ماسح Ciclop ثلاثي الأبعاد الشهير ، كل الخطوات الموضحة جيدًا في المشروع الأصلي غير موجودة ، لقد قمت ببعض الإصلاح لتبسيط العملية ، أولاً أقوم بطباعة القاعدة ، وأعيد ضبط ثنائي الفينيل متعدد الكلور ، لكن استمر
تكامل IoT-HUB-Live (ESP 8266 ، Arduino): 11 خطوة
تكامل IoT-HUB-Live (ESP 8266 ، Arduino): إذا كان لديك أجهزة إنترنت الأشياء وتحتاج إلى خدمة سحابية لتخزين قياساتك
DIY Google Home مع مكبر صوت Bluetooth على Raspberry Pi Zero Docking Hub: 7 خطوات (بالصور)
DIY Google Home مع مكبر صوت Bluetooth على Raspberry Pi Zero Docking Hub: لدينا تعليمات حول DIY Amazon Echo Alexa - Alexa Voice Assistant على Raspberry Pi Zero Docking Hub. هذه المرة نريد أن نوضح لك كيفية إنشاء DIY Google Home. في هذا الدليل ، سنوضح لك كيفية تثبيت وإعداد مساعد Google