جدول المحتويات:

وحدة تحكم IoT الرئيسية. الجزء 9: إنترنت الأشياء ، أتمتة المنزل: 10 خطوات (بالصور)
وحدة تحكم IoT الرئيسية. الجزء 9: إنترنت الأشياء ، أتمتة المنزل: 10 خطوات (بالصور)

فيديو: وحدة تحكم IoT الرئيسية. الجزء 9: إنترنت الأشياء ، أتمتة المنزل: 10 خطوات (بالصور)

فيديو: وحدة تحكم IoT الرئيسية. الجزء 9: إنترنت الأشياء ، أتمتة المنزل: 10 خطوات (بالصور)
فيديو: Elektor Webinar - Dive into the Future of Matter and IoT with Elektor & Espressif 2024, يوليو
Anonim
وحدة تحكم IoT الرئيسية. الجزء 9: إنترنت الأشياء ، أتمتة المنزل
وحدة تحكم IoT الرئيسية. الجزء 9: إنترنت الأشياء ، أتمتة المنزل

تنصل

اقرأ هذا أولاً

يوضح هذا Instructable مشروعًا يستخدم طاقة التيار الكهربائي (في هذا المثال UK 240VAC RMS) ، في حين تم اتخاذ كل الحرص لاستخدام الممارسة الآمنة ومبادئ التصميم الجيد ، هناك دائمًا خطر حدوث صدمة كهربائية قاتلة عند العمل مع جهد الإمداد هذا ولأجل التي لا يمكن للمؤلف تحمل أي مسؤولية في حالة حدوث إصابة شخصية أو ضرر للممتلكات عند متابعة محتواها. وبالتالي ، فإنك تجعل هذا المشروع على مسؤوليتك الخاصة.

الديباجة

توثق هذه المقالة ، وهي التاسعة في سلسلة عن التشغيل الآلي للمنزل ، كيفية إنشاء وحدة تحكم Sonoff 10A IoT الرئيسية ودمجها في نظام أتمتة المنزل الحالي بما في ذلك جميع وظائف البرامج الضرورية لتمكين النشر الناجح في بيئة محلية.

مقدمة

كما هو مذكور أعلاه ، تفاصيل Instructable كيفية إنشاء ودمج وحدة تحكم IoT الرئيسية باستخدام Sonoff 10A من iTead. تم تصنيف الجهاز نفسه على أنه 10amps @ 90 ~ 250VAC ، ومع ذلك فإن هذا التطبيق يزيل التقييم إلى 5amps عبر القابس المنصهر الذي يوفر الإمداد الرئيسي المحلي في المملكة المتحدة لـ 240VAC RMS.

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

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

أخيرًا ، يوضح النثر أيضًا كيفية إعادة برمجة جهاز ESP8266 في Sonoff 10A باستخدام Arduino IDE ويعطي تفاصيل الدائرة الكاملة للجهاز الذي يمكن استخدامه لبرمجة رمز الهدف بشكل موثوق.

ما الأجزاء التي أحتاجها؟

وحدة تحكم Sonoff Mains

  1. 1 قبالة Sonoff 10A هنا
  2. 1 من 7805L 5v منظم الجهد هنا
  3. 1 قبالة 240 / 6VAC 1.5VA محول هنا
  4. 2 قبالة 0.1 المكثفات السيراميك هنا
  5. 1 من 1000 فائق التوهج @ 25 فولت كهربائيا مكثف هنا
  6. 1 من مقوم الجسر 2W01 هنا
  7. 2 من مقاومات 4K7 هنا
  8. 1 من 330R المقاوم هنا
  9. 1 من زر SPST هنا
  10. 1 من Mulitcomp BM12W ABS الضميمة هنا
  11. 1 off TIL111 opto-coupler هنا
  12. 1 خارج كتلة طرفية 3 طرق هنا
  13. 1 قبالة موصل موليكس ثنائي الاتجاه هنا / هنا
  14. 1 من موصل موليكس ثلاثي الاتجاهات هنا / هنا
  15. 1 قبالة موصل موليكس 5-Way مشفر هنا / هنا
  16. 1 من 5 دبابيس موليكس هنا
  17. 1 إيقاف Winbond SPI Flash (W25Q32FVSIG) هنا
  18. 1 قبالة 20 مم حامل فيوز + غطاء هنا
  19. 1 قبالة 20mm ضربة سريعة 500mA الصمامات هنا
  20. 2 من غدد كابل البولي أميد هنا
  21. 1 من قابس التيار الكهربائي بالمملكة المتحدة (BS1363 / A) هنا
  22. 1 من مقبس المملكة المتحدة الرئيسي (BS1363 / A) هنا
  23. 7 قبالة مسامير النايلون M3 16mm CS ، (بما في ذلك 10 قبالة الصواميل) هنا / هنا
  24. 2 من العلاقات البريدية هنا
  25. 1 من فيروبورد (0.1 بوصة) هنا
  26. 1 قبالة أطوال مختلفة 22swg الأسلاك النحاسية المعلبة هنا
  27. 1 off 3M White UK mains هنا
  28. 10 قبالة تجعيد مأخذ موليكس هنا

مبرمج سونوف

  1. 1 off LD33CV 3v3 منظم الجهد هنا
  2. 1 من المبدد الحراري TO-220 هنا
  3. 1 قبالة معجون المبرد هنا
  4. 1 من 10 فائق التوهج @ 16 فولت كهربائيا مكثف هنا
  5. 1 قبالة 0.1 مكثف السيراميك هنا
  6. 1 قبالة زر SPDT هنا
  7. 1 من المقاوم 4K7 هنا
  8. 1 قبالة موصل موليكس ثنائي الاتجاه هنا / هنا
  9. 1 من موصل موليكس ثلاثي الاتجاهات هنا / هنا
  10. 5 قبالة تجعيد مأخذ موليكس هنا
  11. 1 من 6 مآخذ توصيل موليكس هنا
  12. 1 من زر SPST هنا
  13. 1 off 2.1mm PSU socket هنا
  14. 1 من فيروبورد (0.1 بوصة) هنا
  15. 1 من USB إلى المحول التسلسلي (FTDI) هنا

ما هو البرنامج الذي أحتاجه؟

  1. Arduino IDE 1.6.9 هنا
  2. تم تكوين Arduino IDE لبرمجة ESP8266. انظر هنا؛ إعداد Arduino IDE لبرمجة ESP8266-01

ما هي الأدوات التي أحتاجها؟

  1. لحام حديد،
  2. مثقاب ومختلف القطع (بما في ذلك قاطع الثقب المتدرج لغدد الكابلات وزر التحكم) ،
  3. مفكات (مختلفة) ،
  4. مفتاح ربط قابل للتعديل (اثنان ، عرض الفك> 25 مم ، لغدد الكابلات) ،
  5. ملفات (متنوعة) ،
  6. نائب قوي ،
  7. مسدس حرارة،
  8. DMM (يفضل CAT IV).

ما المهارات التي احتاجها؟

  1. فهم جيد للإلكترونيات والسلامة / التصميم / الأسلاك الكهربائية المنزلية وما إلى ذلك ،
  2. معرفة اردوينو و IDE ،
  3. مهارات تصنيع جيدة (لحام ، حفظ الملفات ، حفر ، إلخ) ،
  4. بعض الصبر
  5. بعض الفهم لشبكتك المنزلية.

المواضيع التي تمت تغطيتها

  • مقدمة
  • نظرة عامة على الدائرة
  • سونوف ريترومودز
  • تفاصيل البناء والتجميع
  • محول برمجة Sonoff
  • نظرة عامة على نظام البرنامج
  • نظرة عامة على البرنامج
  • تكوين OpenHAB
  • اختبار جهاز إنترنت الأشياء الخاص بك
  • استنتاج
  • المراجع المستخدمة

روابط السلسلة

إلى الجزء 8: مستشعر درجة الحرارة والرطوبة لشبكة WiFi IoT. الجزء: 8 إنترنت الأشياء ، أتمتة المنزل

إلى الجزء 10: جهاز التحكم عن بعد بالأشعة تحت الحمراء عبر إنترنت الأشياء. الجزء 10 إنترنت الأشياء ، أتمتة المنزل

الخطوة 1: نظرة عامة على الدائرة

نظرة عامة على الدائرة
نظرة عامة على الدائرة
نظرة عامة على الدائرة
نظرة عامة على الدائرة
نظرة عامة على الدائرة
نظرة عامة على الدائرة
نظرة عامة على الدائرة
نظرة عامة على الدائرة

ملخص

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

فيما يلي وصف لدائرة العزل البصري (في الصورة 1 أعلاه).

تفاصيل الدائرة

تستقبل دائرة العزل البصري إمدادها مباشرة من التيار الكهربائي المطبق على الوحدة. يتم تطبيق 240VAC RMS على محول تنحى / عزل TR1 عبر J1 a جهة اتصال pheonix MKDSN2 ، 5 / 3-5.08 بولي أميد 3 اتجاهات مصنفة عند 16A عند 400 فولت قادرة على حمل كابل 2.5 مم (مربع) CSA و F1 a 500mA 20 مم فتيل ضربة سريعة. 6VAC المتوفرة على اللفات الثانوية لـ TR1 هي موجة كاملة مصححة بجسر الصمام الثنائي B1.

يتم بعد ذلك استقرار هذا الخرج المصحح للموجة الكاملة وتنظيمه بواسطة منظم تحويل سلسلة C1 و C2 C3 و R3 و IC1 a 7805L ، مما يوفر سكة إمداد جيدة ونظيفة 5 فولت.

يتم بعد ذلك استخدام سكة 5 فولت للتحكم في المدخلات إلى المعزل البصري OK1 a TIL111 عبر زر SPST أبيض مركب خارجيًا متصل عبر J3. يقترن إخراج TIL111 بإدخال Sonoff GPIO14 عبر المقاوم سحب R2 a 4K7. وبالتالي يتم تحقيق عزل أفضل من 340 فولت (أي جهد الذروة = (240VAC * sqroot (2))).

الخطوة 2: Sonoff RetroMods

سونوف ريترومودز
سونوف ريترومودز
سونوف ريترومودز
سونوف ريترومودز
سونوف ريترومودز
سونوف ريترومودز

من أجل دمج جهاز Sonoff 10A ، من الضروري إجراء بعض التعديلات بأثر رجعي.

الأول هو إضافة موصل موليكس 5 اتجاهات 0.1 بوصة كما هو موضح في الموافقة المسبقة عن علم 1. هذا يسمح بالوصول إلى GPIO14 على Sonoff بمجرد استبدال الغطاء الواقي كما في الصورتين 2 و 3 أعلاه.

على الرغم من عدم ظهوره أعلاه ، فقد أخرجت أيضًا خطوط TX / RX التسلسلية للسماح بالبرمجة في الموقع (راجع تسخير الكابل SK1..3 في الخطوة 1 أعلاه).

التعديل الثاني هو زيادة حجم جهاز SPI Flash من 1 ميغا بايت الافتراضي إلى 4 ميغا بايت ، وهذا للسماح بمساحة كافية لملفات خادم الويب IoT ليتم الاحتفاظ بها في SPIFFS.

لقد اشتريت جهاز فلاش SMD SPI (W25Q32FVSIG) من موقع Ebay هنا

لاستبدال الفلاش ، قمت بإزالة Sonoff LED مؤقتًا كما في الصورة 4 لإعطاء وصول أفضل إلى جهاز SMD. لإلغاء لحام الفلاش ، استخدمت مسدسًا حراريًا كما هو موضح في الموافقة المسبقة عن علم 5 أعلاه. ثم أعد لحام كل من فلاش 4 ميغا بايت ومصباح LED على التوالي (صورة 6).

الخطوة 3: تفاصيل البناء والتجميع

تفاصيل البناء والتجميع
تفاصيل البناء والتجميع
تفاصيل البناء والتجميع
تفاصيل البناء والتجميع
تفاصيل البناء والتجميع
تفاصيل البناء والتجميع
تفاصيل البناء والتجميع
تفاصيل البناء والتجميع

لقد أرفقت وحدة التحكم الرئيسية في صندوق Mulitcomp BM12W ABS (الصورة 1 أعلاه). يحتوي هذا العلبة على إدخالات M3 نحاسية معزولة تسمح بالوصول المتعدد إلى الوحدة دون المساس بخيوط التثبيت بحيث يمكن استبدال الصمامات الداخلية إذا لزم الأمر أو يمكن إجراء فحص داخلي بمرور الوقت (لا يمكن قول الشيء نفسه بالنسبة لجهاز Sonoff ، والذي هي فعالة لمرة واحدة فقط قريبة باستخدام جامعي النفس).

تم تحقيق تخفيف الضغط الأساسي لكابل الإمداد الرئيسي عن طريق غدة كبل بيضاء M16 Nylon / Polyamide 6/6 تدعم كبل OD Min / Max 5mm / 10mm.

تم تخفيف الضغط الثانوي عن طريق رابط مضغوط واحد تم وضعه على الكبل في حالة تطبيق إجهاد مفرط وفشل غدة الكبل ، وسيحافظ الرابط المضغوط على الكابل في مكانه.

لتلائم غدد الكابلات وتوفير مساحة كافية لتركيب إلكترونيات Sonoff والعزل البصري ، قمت بتجريد أضلاع تركيب PCB الداخلية كما هو موضح أعلاه (صورة 2).

تم تثبيت جميع الأجهزة الإلكترونية بإحكام عبر براغي M3 النايلون CS لضمان العزل مع الجزء الخارجي من العلبة. يتم تثبيت إلكترونيات العزل البصري مع 5 نقاط تثبيت لضمان القوة الميكانيكية للصوت في حالة إسقاط الوحدة ، وبالتالي منع كتلة محول العزل من كسر دائرة veroboard.

تم التوريد للوحدة عن طريق كابل CSA أبيض ثلاثي النواة ذو 3 نواة ومشفرة باللون الأبيض في المملكة المتحدة. مع OD 7.2mm قادر على حمل 10A.

تم توصيل الوحدة بمصدر التيار الكهربائي بالمملكة المتحدة (240VAC RMS) عبر قابس أمان قياسي ثلاثي المسامير (BS 1363 / A) معتمد. تم دمج القابس عند 5 أمبير.

تم توصيل جميع كابلات الإمداد الرئيسية بدائرة العزل البصري عبر أطراف اتصال pheonix MKDSN2 ، 5 / 3-5.08 من مادة البولي أميد المصنفة عند 16 أمبير عند 400 فولت قادرة على حمل كابل 2.5 مم (مربع) CSA ، وبالتالي توفير سعة كافية لكابلين في كل موقف.

لم يتم تغليف أي كبلات رئيسية ، تم لفها فقط لمنع تناثر النوى قبل إدخالها في كتلة الموصل. تعد صناعة الكابلات الرئيسية ممارسة خطيرة حيث "يرتاح" اللحام بمرور الوقت مما يؤدي في النهاية إلى فقد الكبل في كتلة الموصل.

ملحوظة:

  • OD = القطر الخارجي.
  • VAC = فولت التيار المتردد
  • RMS = مربع متوسط الجذر
  • CSA = منطقة مقطعية متقاطعة
  • CS = عداد غرق

الخطوة 4: محول البرمجة Sonoff

محول برمجة Sonoff
محول برمجة Sonoff
محول برمجة Sonoff
محول برمجة Sonoff
محول برمجة Sonoff
محول برمجة Sonoff
محول برمجة Sonoff
محول برمجة Sonoff

هناك جانبان يجب مراعاتهما عند إعادة برمجة Sonoff 10A عبر Arduino IDE ؛

  1. تكوين Arduino IDE الخاص بك لبرمجة ESP8266 ،
  2. فعل برمجة الأجهزة نفسها.

تكوين Arduino IDE الخاص بك لبرمجة ESP8266

لتكوين Ardino IDE الخاص بك ، اتبع الإرشادات هنا إعداد Arduino IDE لبرمجة ESP8266-01

برمجة الأجهزة

هذه عملية متعددة الخطوات كما هو الحال في جميع الحالات مع ESP8266. هنا ، يتم تطبيق طاقة Sonoff على اللوحة عبر مصدر خارجي ثابت 3v3 DC وليس من مصدر التيار الكهربائي. ستكون هناك حاجة إلى USB إلى جهاز تسلسلي لإرسال واستقبال البيانات من وإلى Sonoff. قم بتوصيل TX و RX كما هو موضح في الصورة 2 و 4.

خطوات البرمجة (عام)

  1. تأكد أولاً من عدم وجود طاقة رئيسية خارجية مطبقة على Sonoff ،
  2. اضغط مع الاستمرار على الزر الموجود على جهاز Sonoff. (صورة 1 أعلاه ، زر إعادة فلاش ملحوظ) ،
  3. قم بتطبيق مصدر خارجي DC 3v3 على الطرف 1. (صورة 2 أعلاه) ،
  4. حرر زر Sonoff ،
  5. يمكن الآن إعادة برمجة الجهاز بالطريقة المعتادة عبر Arduino IDE.

لتسهيل الأمور قليلاً ، قمت بإنشاء جهاز البرمجة أعلاه (الصورتان 3 و 4) والذي تم توصيله بـ Sonoff عبر كابل تسخير SK1 … 3 (كما هو موضح في هذه الخطوة 1.). سمح ذلك ببرمجة أسهل لـ ESP8266. كما أنه يوفر وسيلة لاختبار GPIO14 كمدخل من خلال استخدام المقاوم سحب R1 a 4K7 والزر S1.

باستخدام جهاز البرمجة أعلاه (صور 3 و 4) خطوات البرمجة هي ،

  1. اضغط مع الاستمرار على زر إعادة الفلاش في Sonoff ،
  2. نبض العرض 3v3 بالضغط لحظيا على S2 ،
  3. حرر زر إعادة الفلاش ،
  4. يمكن الآن برمجة الجهاز.

ملاحظة - تحذير

تحت أي ظرف من الظروف ، يجب توفير الطاقة عبر Mains أثناء نشاط إعادة برمجة Sonoff

الخطوة 5: نظرة عامة على نظام البرنامج

نظرة عامة على نظام البرنامج
نظرة عامة على نظام البرنامج
نظرة عامة على نظام البرنامج
نظرة عامة على نظام البرنامج

يحتوي جهاز IoT Mains Controller هذا في معظمه على نفس المكونات البرمجية الستة الرئيسية الموجودة في Instructable WiFi IoT Temperature and Humidity Sensor. الجزء: 8 إنترنت الأشياء ، أتمتة المنزل والموضح في الموافقة المسبقة عن علم 1 أعلاه ، مع بعض التخصيص.

نظام SPIFFS

هذا هو (تمت ترقيته إلى 4 ميغابايت) على متن SPI Flash Filing System ويستخدم للاحتفاظ بالمعلومات التالية (انظر الصورة 2 أعلاه) ؛

  • الأيقونات والصفحة الرئيسية لتكوين وحدة التحكم الرئيسية html: يتم تقديمها بواسطة جهاز إنترنت الأشياء عندما يتعذر عليه الاتصال بشبكة IoT WiFi الخاصة بك (عادةً بسبب معلومات الأمان غير الصحيحة) وتوفر للمستخدم وسيلة لتكوين وحدة التحكم الرئيسية عن بُعد بدون الحاجة إلى إعادة برمجة أو تحميل محتوى SPIFFS جديد.
  • معلومات الأمان: هذا يحتفظ بالمعلومات المستخدمة عند تشغيل جهاز إنترنت الأشياء للاتصال بشبكة IoT WiFi و MQTT Broker. تتم كتابة المعلومات المقدمة عبر "الصفحة الرئيسية لتكوين وحدة التحكم الرئيسية" في هذا الملف ("secvals.txt").

ملاحظة: لإعداد الجهاز مبدئيًا ، انظر هنا للحصول على تفاصيل كاملة حول كيفية استخدام SPIFFS مع Arduino IDE.

خادم mDNS

يتم استدعاء هذه الوظيفة عندما يفشل جهاز IoT في الاتصال بشبكة WiFi الخاصة بك كمحطة WiFi ، وبدلاً من ذلك أصبح نقطة وصول WiFi أقرب إلى جهاز توجيه WiFi محلي. في حالة وجود جهاز توجيه كهذا ، عادةً ما تتصل به عن طريق إدخال عنوان IP الخاص بشيء مثل 192.168.1.1 (يُطبع عادةً على ملصق مُلصق بالمربع) مباشرةً في شريط عنوان URL الخاص بالمتصفح حيث ستتلقى صفحة تسجيل دخول للدخول إليها اسم المستخدم وكلمة المرور للسماح لك بتهيئة الجهاز. بالنسبة إلى ESP8266 في وضع AP (وضع نقطة الوصول) ، يتم تعيين الجهاز افتراضيًا على عنوان IP 192.168.4.1 ، ولكن مع تشغيل خادم mDNS ، ما عليك سوى إدخال الاسم المألوف للإنسان "MAINSCON.local" في شريط عنوان URL الخاص بالمستعرض لرؤية "الصفحة الرئيسية لتكوين وحدة التحكم الرئيسية".

عميل MQTT

يوفر عميل MQTT جميع الوظائف اللازمة ؛ اتصل بشبكة MQTT لشبكة إنترنت الأشياء الخاصة بك ، واشترك في الموضوعات التي تختارها وانشر الحمولات إلى موضوع معين. باختصار ، يوفر وظائف IoT الأساسية.

خادم ويب

كما هو مذكور أعلاه ، إذا كان جهاز إنترنت الأشياء غير قادر على الاتصال بشبكة WiFi التي تم تعريف SSID و P / W وما إلى ذلك في ملف معلومات الأمان الموجود في SPIFFS ، فسيصبح الجهاز نقطة وصول. بمجرد الاتصال بشبكة WiFi التي توفرها نقطة الوصول ، يتيح لك وجود خادم ويب HTTP الاتصال مباشرة بالجهاز وتغيير تكوينه عبر استخدام مستعرض ويب HTTP ، والغرض من ذلك هو تقديم "تكوين وحدة التحكم الرئيسية" الصفحة الرئيسية "صفحة ويب محفوظة أيضًا في SPIFFS.

محطة واي فاي

تمنح هذه الوظيفة جهاز إنترنت الأشياء القدرة على الاتصال بشبكة WiFi محلية باستخدام المعلمات الموجودة في ملف معلومات الأمان ، وبدون هذا لن يتمكن جهاز إنترنت الأشياء الخاص بك من الاشتراك / النشر إلى MQTT Broker

نقطة وصول WiFi

القدرة على أن تصبح نقطة وصول WiFi هي وسيلة يسمح لك من خلالها جهاز إنترنت الأشياء بالاتصال به وإجراء تغييرات التكوين عبر محطة WiFi ومتصفح (مثل Safari على Apple iPad). تبث نقطة الوصول هذه SSID = "MAINSCON" + آخر 6 أرقام من عنوان MAC لجهاز إنترنت الأشياء. يُطلق على كلمة المرور الخاصة بهذه الشبكة المغلقة اسم "PASSWORD".

الخطوة 6: نظرة عامة على البرنامج

نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج

لتجميع شفرة المصدر هذه بنجاح ، ستحتاج إلى المكتبات الإضافية التالية ؛

PubSubClient.h

  • بقلم: نيك أوليري
  • الغرض: تمكين الجهاز من نشر أو الاشتراك في موضوعات MQTT مع وسيط معين
  • من:

Bounce2.h

  • بقلم: توماس أو فريدريكس
  • الغرض: مفتاح الإدخال de-bounce في البرنامج
  • من:

نظرة عامة على التعليمات البرمجية

يستخدم البرنامج آلة الدولة كما هو موضح في الموافقة المسبقة عن علم 1 أعلاه (نسخة كاملة من المصدر أدناه). هناك 5 ولايات رئيسية على النحو التالي ؛

  • فيه

    حالة التهيئة هذه هي الحالة الأولى التي يتم إدخالها بعد التشغيل

  • NOCONFIG

    يتم إدخال هذه الحالة إذا تم اكتشاف ملف secvals.txt غير صالح أو مفقود بعد تشغيل الطاقة

  • في انتظار NW

    هذه الحالة مؤقتة ، تم إدخالها بينما لا يوجد اتصال بشبكة WiFi

  • معلقة MQTT

    هذه الحالة مؤقتة ، يتم إدخالها بعد إجراء اتصال بشبكة WiFi وبينما لا يوجد اتصال بوسيط MQTT على تلك الشبكة

  • نشيط

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

تم وصف الأحداث التي تتحكم في التحولات بين الدول في الموافقة المسبقة عن علم 1 أعلاه. تخضع الانتقالات بين الولايات أيضًا لمعلمات SecVals التالية ؛

  • عنوان IP الأول للوسيط MQTT. في شكل عشري منقط AAA. BBB. CCC. DDD
  • ميناء وسيط MQTT الثاني. في شكل عدد صحيح.
  • يحاول اتصال وسيط MQTT الثالث القيام قبل التبديل من وضع STA إلى وضع AP. في شكل عدد صحيح.
  • رابع شبكة WiFi SSID. في شكل نص حر.
  • 5 كلمة مرور شبكة WiFi. في شكل نص حر.

كما هو مذكور أعلاه ، إذا كان جهاز إنترنت الأشياء غير قادر على الاتصال كمحطة WiFi بشبكة WiFi التي تعرف SSID و P / W في secvals.txt المحفوظة في SPIFFS ، فسيصبح الجهاز نقطة وصول. بمجرد الاتصال بنقطة الوصول هذه ، ستقدم "الصفحة الرئيسية لتهيئة وحدة التحكم الرئيسية" كما هو موضح أعلاه في الصورة 2 (عن طريق إدخال إما "MAINSCON.local" أو 192.168.4.1 في شريط عنوان URL الخاص بالمستعرض). تسمح هذه الصفحة الرئيسية بإعادة تكوين وحدة التحكم الرئيسية عبر متصفح

اصطلاح تسمية الموضوع MQTT

الموضح في الصورة 3 أعلاه هو اصطلاح التسمية المستخدم لموضوعات MQTT ويتوافق مع النمط المستخدم في Instructable السابق (هنا الخطوة 5).

مواضيع MQTT التي يستخدمها جهاز إنترنت الأشياء هذا

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

الوصول إلى التكوين عن بعد أثناء وجوده في الحالة النشطة

بمجرد الاتصال بـ MQTT Broker ، يمكن إعادة تكوين معلمات الأمان للجهاز عن بُعد عبر منشورات موضوع MQTT. الملف المرتبط secvals.txt به حق وصول للكتابة فقط مكشوف.

تصحيح المستخدم

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

  • 1 فلاش قصير: لا يوجد ملف تكوين موجود في SPIFFS (secvals.txt) ،
  • 2 ومضات قصيرة: يحاول جهاز إنترنت الأشياء الاتصال بشبكة WiFi ،
  • الإضاءة المستمرة: يحاول جهاز Sonoff IoT الاتصال بـ MQTT Broker ،
  • مطفأ: الجهاز نشط ومتصل بـ MQTT Broker.

ملاحظة 1: لا تستخدم "الصفحة الرئيسية لتهيئة وحدة التحكم الرئيسية" مآخذ توصيل آمنة ، وبالتالي فهي تعتمد على أمان شبكتك.

ملاحظة 2: من أجل برمجة العديد من أجهزة إنترنت الأشياء ، سوف تتطلب سلسلة MQTT التحرير قبل التنزيل على كل جهاز. وذلك لأن رقم معرف وحدة التحكم الرئيسية قد تم تضمينه في سلسلة موضوع MQTT. بمعنى آخر. في البرنامج المنشور ، اخترت القيمة 100: "WFD / MainsCont / 100 / Relay / Command / 1" وللجهازي 2 تم ترقيمهما 1 و 2 على التوالي.

  • "WFD / MainsCont / 1 / Relay / Command / 1"
  • "WFD / MainsCont / 2 / Relay / Command / 1"

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

الخطوة 7: تكوين OpenHAB

تكوين OpenHAB
تكوين OpenHAB
تكوين OpenHAB
تكوين OpenHAB
تكوين OpenHAB
تكوين OpenHAB

لأغراض الاختبار ، قررت نشر وحدتي التحكم في التيار الكهربائي في "غرفة المعيشة" في منزلي. يمكن الوصول إلى صفحة OpenHAB هذه عبر صفحة الموقع الرئيسية كما في صورة 1.

لقد قمت بتعديل تكوين OpenHAB.sitemap الوارد في Instructable سابقًا (هنا) وأضفت إدخالات فردية لـ "Mains Controller 1" و "Mains Controller 2" (صورة 2 أعلاه). لقد أضفت أيضًا إدخالات (Living Room Mains Cont. 1 & 2) لعرض اتجاهات RSSI المقاسة عند جهاز استقبال جهازي إنترنت الأشياء الجديدين (صورة 3).

أخيرًا ، أضفت إدخالات إلى ملفات.rules و. item للسماح بمزامنة الحالة الديناميكية لـ Sonoff وتحديث / تنشيط محاولتي الضعيفة في رسم تبديل (يغلق المفتاح عندما يكون نشطًا ويفتح عندما يكون غير نشط). يعطي Pic 2 مثالاً على MC1 نشط و MC2 غير نشط.

ملاحظة 1: إذا لم تكن متأكدًا من كيفية استخدام OpenHAB ، فراجع هنا "إعداد وتكوين OpenHAB. الجزء 6: إنترنت الأشياء ، أتمتة المنزل"

ملاحظة 2: نسخة معدلة من خريطة الموقع والقواعد وملفات العناصر والرموز وما إلى ذلك موجودة في الملف المضغوط أدناه.

ملاحظة 3: RSSI = تم استلام مؤشر قوة الإشارة. هذا مقياس لمدى قدرة جهاز إنترنت الأشياء على رؤية شبكة WiFi الخاصة بك.

الخطوة 8: اختبار جهاز إنترنت الأشياء الخاص بك

Image
Image
اختبار جهاز إنترنت الأشياء الخاص بك
اختبار جهاز إنترنت الأشياء الخاص بك

كما هو موضح في Instructable WiFi IoT درجة الحرارة ومستشعر الرطوبة. الجزء: 8 IoT ، Home Automation Step 7 ، تم تنفيذ الاختبار الأولي لجهاز IoT عبر اتصال MQTT عبر MQTT Spy (كما هو الحال في مخطط كتلة النظام pic 1 أعلاه) ، مراقبة خرج LED ، مدخلات الزر (كل من زر Sonoff re-flash و الزر الخارجي الأبيض) وتصحيح أخطاء حركة المرور على الواجهة التسلسلية. سمح لي هذا بممارسة جميع الموضوعات المشتركة المتاحة والتحقق من الردود المنشورة. على الرغم من أنه تم تنفيذ ذلك يدويًا واستغرق وقتًا طويلاً ، على الرغم من أنه مكّن من تغطية الرسائل / منشورات الموضوعات بنسبة 100٪.

نظرًا لأن الجهاز الرئيسي لحالة البرنامج (الخطوة 6 أعلاه) موروث من Instructable السابق (الجزء: 8) بخلاف التحقق من الصحة ، يمكن للبرنامج الاتصال بـ WiFi N / W و MQTT Broker ، كان من المفترض أن هذا يعمل بشكل صحيح.

تم الانتهاء بعد ذلك من اختبار مستوى النظام بالكامل باستخدام وحدة التحكم الرئيسية والبنية التحتية لإنترنت الأشياء (مرة أخرى صورة 1) هذه المرة باستخدام OpenHAB للتحكم في التفاعل مع جهاز إنترنت الأشياء. يمكن رؤية أجهزة إنترنت الأشياء وإعداد التحميل الوهمي في الموافقة المسبقة عن علم 2 أعلاه.

يعطي الفيديو تفاصيل كاملة عن اختبارات النظام ويظهر بوضوح التزامن الذي يتم الحفاظ عليه بين أجهزة OpenHAB (PC / Chrome و iPad / OpenHAB APP) في الوقت الفعلي. يعرض أيضًا الرسائل المباشرة إلى وحدات التحكم الرئيسية عبر MQTTSpy (انظر هنا لمزيد من التفاصيل إعداد وسيط MQTT. الجزء 2: إنترنت الأشياء ، أتمتة المنزل) وسجل نظام OpenHAB ذي الذيل من خادم raspberry Pi عبر اتصال PuTTY SSH (انظر هنا لمزيد من المعلومات تفاصيل إعداد وتكوين OpenHAB الجزء 6: إنترنت الأشياء ، أتمتة المنزل).

ملاحظة: تم تجميع حركة تصحيح الأخطاء لإصدار البرنامج النهائي.

الخطوة 9: الخاتمة

عام

كان من السهل نسبيًا إكمال المشروع وعمل بشكل جيد. كان البرنامج المضمن بسيطًا في الإنتاج ، كونه نسخة مختصرة من الكود المستخدم في مستشعرات درجة الحرارة والرطوبة في الجزء 8 من هذه السلسلة.

كنت أنوي في البداية الحصول على الأجزاء المكونة البيضاء فقط من أجل جودتها الجمالية. لقد حققت هذا في الكل ما عدا زر التحكم ، حاول قدر المستطاع ، لم أتمكن من الحصول على زر أبيض بالكامل جيد / رخيص.

جهاز Sonoff 10A

لقد أدرجت أدناه ما شعرت أنه إيجابيات وسلبيات معقولة لجهاز Sonoff

الايجابيات

  • الرخيص.
  • دعم المجتمع الجيد.
  • يمكن إعادة البرمجة عبر Arduino IDE.

سلبيات

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

مخاوف

  • لا يغير الخط المحايد. يستخدم مرحل SPST.
  • لا تنصهر.
  • تخفيف ضغط الكابل الضعيف.
  • لم يتم تأمين ثنائي الفينيل متعدد الكلور داخل حاوية Sonoff.

علق على التصميم الهندسي

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

التحسين الممكن

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

ملاحظة أخيرة

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

  • سلك تمديد عالم مجنون
  • تعليقات المجتمع 03 - مخاوف تتعلق بسلامة الطاقة!

الخطوة 10: المراجع المستخدمة

لقد استخدمت المصادر التالية لوضع هذا Instructable معًا ؛

PubSubClient.h

  • بقلم: نيك أوليري
  • الغرض: تمكين الجهاز من نشر أو الاشتراك في موضوعات MQTT مع وسيط معين
  • من:

Bounce2.h

  • بقلم: توماس أو فريدريكس
  • الغرض: مفتاح الإدخال de-bounce في البرنامج
  • من:

نظام SPIFFS

https://esp8266.github.io/Arduino/versions/2.0.0/do…

ترقية Sonoff flash

  • https://www.andremiller.net/content/upgrading-sonof…
  • https://tech.scargill.net/32mb-esp01/
  • https://www.andremiller.net/content/upgrading-sonof…

مخطط حلبة سونوف

https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf

وحدة USB UART (المعروف أيضًا باسم FTDI)

https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398؟epid=503069058&hash=item3f63593d2e: ز: QVUAAOSw71BXP92B

جوائز داروين (الإغاثة الخفيفة)

https://www.darwinawards.com/

TIL111 ورقة بيانات المعزل البصري

موصى به: