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

توليف الكلام الرجعية. الجزء: 12 إنترنت الأشياء ، أتمتة المنزل: 12 خطوة (بالصور)
توليف الكلام الرجعية. الجزء: 12 إنترنت الأشياء ، أتمتة المنزل: 12 خطوة (بالصور)

فيديو: توليف الكلام الرجعية. الجزء: 12 إنترنت الأشياء ، أتمتة المنزل: 12 خطوة (بالصور)

فيديو: توليف الكلام الرجعية. الجزء: 12 إنترنت الأشياء ، أتمتة المنزل: 12 خطوة (بالصور)
فيديو: فضيحة ضحى بدون فلاتر رح تنصدم #ضحى_ومكس 2024, يوليو
Anonim
Image
Image
توليف الكلام الرجعية. الجزء: 12 إنترنت الأشياء ، أتمتة المنزل
توليف الكلام الرجعية. الجزء: 12 إنترنت الأشياء ، أتمتة المنزل

هذه المقالة هي الحلقة الثانية عشرة في سلسلة Instructables الخاصة بالأتمتة المنزلية التي توثق كيفية إنشاء ودمج جهاز IoT Retro Speech Synthesis في نظام أتمتة المنزل الحالي بما في ذلك جميع وظائف البرامج الضرورية لتمكين النشر الناجح داخل بيئة محلية.

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

يظهر الفيديو الجهاز أثناء العمل (أثناء الاختبار).

مقدمة

كما هو مذكور أعلاه ، تفاصيل Instructable هذه حول كيفية صنع جهاز IoT Retro Speech Synthesis ويستند إلى General Instruments SP0256-AL2.

الغرض الأساسي هو إضافة توليف صوتي من "المدرسة القديمة" إلى شبكة إنترنت الأشياء. لماذا "المدرسة القديمة" قد تسأل؟ حسنًا ، لأنني كنت في الثمانينيات عندما تم تصنيع هذه الأشياء لأول مرة وقمت بتوصيل أحدها إلى بي بي سي مايكرو الخاص بي ، لذلك بالنسبة لي هناك درجة من الحنين إلى الماضي المحيط بـ SP0256-AL2.

أفضل التحدي المتمثل في محاولة اكتشاف ما يقال على الأرض من خلال صوت Dalek هذا بدلاً من الاستماع إلى النغمات الرقيقة لصدى Amazon أو Siri. أين التحدي الذي أسألك؟

أوه ، ناهيك عن أن لدي أيضًا "حمل حقيبة" من "SP0256-AL2" ICs الكاذبة.

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

يوجد في قلبه ESP8266-07 المسؤول عن اتصالات MQTT والتحكم في جميع وظائف النظام (الوصول إلى بطاقة SD ، والتحكم في الصمام ، واستشعار درجة الحرارة / الرطوبة ، والتحكم في مستوى الصوت ، وتركيب الكلام). بطاقة SD المحلية ، على الرغم من إمكانية برمجة معلمات أمان الشبكة والمعايرة عبر منشورات MQTT عن بُعد.

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

انظر إلى فاتورة المواد هنا

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

  • اردوينو IDE 1.6.9 ،
  • تم تكوين Arduino IDE لبرمجة ESP8266-07 (نفس هذا). ثم قم بتكوين IDE كما هو موضح في الوصف التفصيلي المقدم في رسم البرنامج هنا ،
  • Python v3.5.2 إذا كنت ترغب في استخدام إمكانية الاختبار الآلي ، يمكنك هنا التفاصيل

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

  • مجهر x3 على الأقل (لحام SMT) ،
  • أداة العقص موصل موليكس (للموصلات JST) ،
  • مكواة لحام SMD (مع قلم تدفق سائل ولحام بقلب متدفق) ،
  • مفكات (مختلفة) ،
  • مسدس حرارة،
  • تدريبات (متنوعة) ،
  • أداة الغاطسة اليدوية ،
  • ملفات (متنوعة) ،
  • دريميل (بتات مختلفة) ،
  • نائب قوي (صغير وكبير ، مثل رفيق العمل من بلاك آند ديكر) ،
  • مشرط،
  • الفرجار الورني (يستخدم لقياس التصنيع ومفيد في تحجيم مكونات ثنائي الفينيل متعدد الكلور) ،
  • المفكات ومحركات الجوز (متنوعة) ،
  • ملاقط قوية (لحام SMT) ،
  • منشارا جونيور
  • حفر (مع لقم الثقب المختلفة) ،
  • كماشة رفيعة (نقطة وفتحة الأنف) ،
  • قواطع دافق ،
  • DMM مع فحص الاستمرارية الصوتية ،
  • نطاق رقمي ثنائي القناة (مفيد لإشارات التصحيح)

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

  • الكثير من الصبر
  • قدر كبير من البراعة اليدوية والتنسيق الممتاز بين اليد والعين ،
  • مهارات لحام ممتازة ،
  • مهارات تصنيع ممتازة ،
  • القدرة على التصور في 3 أبعاد ،
  • بعض المعرفة بتطوير البرامج باستخدام "C" (إذا كنت تريد فهم شفرة المصدر) ،
  • بعض المعرفة ببايثون (كيفية تثبيت البرامج النصية وتشغيلها ، إذا كنت تريد استخدام الاختبار الآلي) ،
  • معرفة اردوينو و IDE ،
  • معرفة جيدة بالإلكترونيات ،
  • بعض الفهم لشبكتك المنزلية.

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

  • دليل الاستخدام
  • نظرة عامة على الدائرة
  • تصنيع وتجميع ثنائي الفينيل متعدد الكلور
  • تلفيق
  • نظرة عامة على نظام البرنامج
  • نظرة عامة على البرنامج
  • معايرة المستشعر
  • اصطلاح تسمية موضوع MQTT
  • اكتشاف الأخطاء وتصحيحها
  • اختبار التصميم
  • استنتاج
  • المراجع المستخدمة

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

الخطوة 1: دليل المستخدم

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

تُظهر الصورة 1 أعلاه مقدمة مُركِّب الكلام الرجعية والصورة 2 في الخلف.

واجهة الضميمة

  1. مكبر صوت جريل
  2. مقبس سماعة الأذن مقاس 3.5 مم: يتم تعطيل السماعة الرئيسية عند إدخال مقبس مقاس 3.5 مم.
  3. مؤشر LED الأحمر: يضيء هذا المؤشر أثناء نطق كلمة عند بدء الكلام عبر طلب
  4. مؤشر LED أزرق: يضيء هذا المؤشر أثناء نطق إحدى الكلمات عند بدء الكلام عبر طلب MQTT IoT.

العلبة الخلفية

  1. زر إعادة التعيين: يستخدم لإعادة ضبط جهاز ESP8266-07 IoT.
  2. زر الفلاش: عند استخدامه بالاقتران مع زر إعادة الضبط ، يسمح بإعادة وميض ESP8266-07.
  3. قابس هوائي WiFi (قابس SMA): لهوائي WiFi خارجي يعطي أقل توهين لمسار RF لأن الإغلاق من الألومنيوم.
  4. منفذ البرمجة الخارجي: لإزالة الحاجة إلى فك العلبة للوصول إلى ESP8266-07 لأغراض إعادة البرمجة. تم إحضار دبابيس البرمجة الخاصة بـ ESP8266-07 إلى منفذ البرمجة الخارجي. الصورة 3 هي محول البرمجة.
  5. LED الأخضر: هذا هو نظام إنترنت الأشياء الذي يستخدم للإشارة إلى الحالة التشخيصية للجهاز والتشغيل وأثناء التشغيل.
  6. مستشعر درجة الحرارة / الرطوبة الخارجية (AM2320)
  7. فتحة بطاقة SD: هذا يحتفظ بجميع بيانات التكوين / الأمان إلى جانب صفحات خادم الويب.
  8. 2.1mm جاك إمداد 6 vdc

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

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

يتكون جهاز Retro Speech Synth من اثنين من ثنائي الفينيل متعدد الكلور ؛

  • RetroSpeechSynthIoTBoard: هذا هو ESP8266-07 / 12 / 12E / 13 PCB عام وقابل لإعادة الاستخدام
  • RetroSpeechSynthBoard: هذا هو PCB عام SP0256-AL2

ريترو الكلام سينث مجلس إنترنت الأشياء

تسمح هذه اللوحة إما باللحام المباشر لـ ESP8266-07 / 12 / 12E / 13 أو مآخذ خطوة 0.1 بوصة تستوعب ثنائي الفينيل متعدد الكلور الناقل ESP8266.

تم تصميم اللوحة لتوسيع I / O الخاص بها عبر اتصال I2C ويمكنها دعم مستويات الإمداد 3v3 أو 5v عبر Q1 و Q2 و R8-13.

يتم التوصيل باللوحة عبر أحد رأسي J2 و J4 ، شريط DIL IDC ذي 8 اتجاهات أو شريط JST / Molex خماسي الاتجاهات.

توفير U2 و U3 3.3 فولت و 5 فولت على لائحة التوريد على متن السفينة. بدلاً من ذلك ، إذا كانت هناك حاجة إلى سعة تيار أكبر ، فقد يتم توصيل منظمات التحويل التسلسلي خارج اللوحة عبر الموصلات J10 و J11 على التوالي.

يوفر الموصلان J1 و J3 دعم بطاقة SD خارجية عبر SPI. تم تصميم J1 من أجل Molex ذي 8 اتجاهات ، ويحتوي J3 على دبوس مباشر لدعم توافق الدبوس لبطاقة SD PCB جاهزة مع دعم 3v3 أو 5v.

مجلس توليف الكلام الرجعية

يتم التحكم في هذه اللوحة عبر اتصال متوافق مع I2C 5v عبر J1 أو J5 أو J6 ، أو موصل JST / Molex رباعي الاتجاهات ، أو موصل DIL IDC ذي 8 اتجاهات أو موصل شريط 8 اتجاهات IDC.

يوفر U2 MPC23017 واجهة I2C إلى واجهة متوازية لـ U3 و SP0256-AL2 و LEDS D1 (أخضر) و D2 (أحمر) و D3 (أزرق). يتم تغذية خرج Speech Synth إلى مضخم الصوت CR1 TBA820M إما عبر وعاء تناظري RV1 أو وعاء رقمي U1 MCP4561.

يتم التحكم أيضًا في Digital Pot U1 عبر I2C المتوافق مع 5 فولت.

ملاحظة: تم اختيار جهاز ESP8266-07 لأنه يحتوي على موصل IPX RF متكامل يسمح بإضافة هوائي WiFi خارجي إلى حاوية الألومنيوم.

الخطوة 3: تصنيع وتجميع ثنائي الفينيل متعدد الكلور

تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور
تصنيع وتجميع ثنائي الفينيل متعدد الكلور

تُظهر الصورتان 1 و 2 التجميعات الفرعية المكتملة والسلكية لثنائي الفينيل متعدد الكلور الموجودة على ركيزة حاوية الألومنيوم.

تم تصميم ثنائي الفينيل متعدد الكلور باستخدام Kicad v4.0.7 ، تم تصنيعه بواسطة JLCPCB وتم تجميعه بواسطتي وعرضه أعلاه الصور من 3 إلى 13.

الخطوة الرابعة: التصنيع

تلفيق
تلفيق
تلفيق
تلفيق
تلفيق
تلفيق

تُظهر الصورة 1 تخطيط أسلوب Haynes Manual لجميع الأجزاء الجاهزة قبل التجميع النهائي.

تظهر الصور رقم 2 … 5 لقطات مختلفة أثناء تصنيع العلبة بأقل قدر من الخلوص.

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

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

يحتوي جهاز IoT Retro Speech Synthesis على ستة مكونات برمجية رئيسية كما هو موضح في الصورة 1 أعلاه.

بطاقة الذاكرة

هذا هو نظام SD SPI Flash Filing الخارجي ويستخدم للاحتفاظ بالمعلومات التالية (انظر الصورة 2 أعلاه) ؛

  • الأيقونات والصفحة الرئيسية لتهيئة الكلام "index.htm: يتم تقديمها بواسطة جهاز إنترنت الأشياء عندما يتعذر عليه الاتصال بشبكة IoT WiFi الخاصة بك (عادةً بسبب معلومات الأمان غير الصحيحة ، أو الاستخدام لأول مرة) ويوفر للمستخدم وسيلة لتكوين المستشعرات عن بُعد دون الحاجة إلى إعادة وميض محتوى SD الجديد ، كما أنه يحمل index1.htm و mqtt.htm و sp0256.htm ، وهي صفحات الويب التي يتم تقديمها محليًا والتي يمكن الوصول إليها عبر مستعرض ويب مما يسمح بالتحكم المحدود في توليف الكلام عبر
  • معلومات الأمان: هذا يحتفظ بالمعلومات المستخدمة عند تشغيل جهاز إنترنت الأشياء للاتصال بشبكة IoT WiFi و MQTT Broker. تتم كتابة المعلومات المقدمة عبر "الصفحة الرئيسية لتهيئة الكلام" في هذا الملف ("secvals.txt").
  • معلومات المعايرة: يتم استخدام المعلومات الواردة في الملفات ("calvals1.txt" و "calvals2.txt") لمعايرة مستشعرات درجة الحرارة / الرطوبة على متن الطائرة إذا لزم الأمر. يمكن كتابة ثوابت المعايرة على جهاز إنترنت الأشياء عبر أوامر MQTT من وسيط MQTT أو عن طريق إعادة وميض بطاقة SD. يتعلق "calvals1.txt" بمستشعر AM2320 و "calvals2.txt" إلى DHT22.
  • قيم النظام القابلة للتكوين بواسطة المستخدم: المعلومات الواردة في هذا الملف ('confvals.txt') ، التي اختارها المستخدم ، تتحكم في استجابات معينة للنظام ، مثل مستوى الصوت الرقمي الأولي ، وإعلان "جاهز للنظام" التلقائي عند اشتراك وسيط MQTT ، إلخ.

خادم mDNS

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

عميل MQTT

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

خادم ويب

خادم الويب هذا له غرضان ؛

  1. إذا كان جهاز إنترنت الأشياء غير قادر على الاتصال بشبكة WiFi التي تم تعريف SSID و P / W وما إلى ذلك في ملف معلومات الأمان الموجود على بطاقة SD ، فسيصبح الجهاز نقطة وصول. بمجرد الاتصال بشبكة WiFi التي توفرها نقطة الوصول ، يتيح لك وجود خادم ويب HTTP الاتصال مباشرة بالجهاز وتغيير تكوينه عبر استخدام متصفح ويب HTTP ، والغرض من ذلك هو تقديم "تكوين سينث الكلام" الصفحة الرئيسية 'التي يتم الاحتفاظ بها أيضًا على بطاقة SD.
  2. بمجرد توصيل جهاز IoT Retro Speech Synthesis بشبكة WiFi ووسيط MQTT ، في حالة الوصول إليه ، سيعرض خادم الويب HTTP تلقائيًا صفحة ويب HTTP تتيح تحكمًا محدودًا في جهاز إنترنت الأشياء للتحدث بمجموعة مختارة من العبارات الثابتة والقدرة على ذلك دورة المصابيح الأمامية الحمراء والزرقاء.

محطة واي فاي

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

نقطة وصول WiFi

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

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

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

الديباجة

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

ملخص

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

  • فيه

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

  • NOCONFIG

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

  • في انتظار NW

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

  • معلقة MQTT

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

  • نشيط

    هذه هي حالة التشغيل العادية التي يتم إدخالها بمجرد إنشاء اتصال بشبكة WiFi واتصال MQTT Broker. خلال هذه الحالة ، يتم نشر درجة الحرارة ومؤشر الحرارة والرطوبة في جهاز IoT Retro Speech Synthesis بشكل منتظم إلى MQTT Broker. في هذه الحالة ، تكون الصفحة الرئيسية لتطبيق Speech Synth مرئية

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

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

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

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

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

كما ذكرنا سابقًا ، بمجرد الدخول إلى الوضع النشط ، يمكن الوصول إلى Speech Synth عبر واجهة HTTP عن طريق إدخال "SPEECHSVR.local" أو 192.168.4.1 في شريط عنوان URL الخاص بالمتصفح. تسمح هذه الواجهة القائمة على HTTP بالتحكم الأساسي في Speech Synth. تظهر الصور 3 و 4 و 5 صفحات الويب المتاحة.

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

أثناء تسلسل التمهيد ، يعطي النظام الأخضر لجهاز IoT الموجود في الجزء الخلفي من العلبة ملاحظات التصحيح التالية ؛

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

وظائف جهاز IoT Retro Speech Synthesis في حالة نشطة

بمجرد الوصول إلى الحالة النشطة ، يدخل ESP8266 حلقة مستمرة تستدعي الوظائف التالية ؛ timer_update () ، والتحقق من درجة الحرارة والرطوبة () والتعامل مع الكلام (). تم تصميم النتيجة الصافية لتزويد المستخدم بواجهة HTTP أو MQTT ، وخدمة معالج الكلام الداخلي بسلاسة مع الصوتيات عند الطلب ونشر القيم المحلية المحيطة عبر MQTT.

يتم تضمين قائمة شاملة لجميع اشتراكات الموضوعات والمنشورات بما في ذلك قيم الحمولة في التعليمات البرمجية المصدر.

الخطوة 7: معايرة المستشعر

معايرة المستشعر
معايرة المستشعر

عندما يتم تشغيل جهاز إنترنت الأشياء ، كجزء من تسلسل التمهيد ، تتم قراءة ملفين باسم "cavals1.txt" و "cavals2.txt" من بطاقة SD.

محتويات هذه الملفات هي ثوابت معايرة كما هو موضح أعلاه في الموافقة المسبقة عن علم 1.

  1. 'cavals1.txt': تستخدم بواسطة AM2320 الخارجي
  2. 'cavals2.txt': يستخدم بواسطة DHT22 الداخلي

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

استراتيجية التقارير

تحدد هذه المعلمة كيفية قيام المستشعر عن بعد بالإبلاغ عن أي تغييرات بارامترية محيطة محلية له. إذا تم تحديد القيمة 0 ، فسيقوم المستشعر عن بُعد بنشر أي تغيير يراه في درجة الحرارة أو الرطوبة في كل مرة يتم فيها قراءة المستشعر المعني (كل 10 ثوانٍ تقريبًا). أي قيمة أخرى ستؤخر نشر التغيير بمقدار 1… 60 دقيقة. يسمح تعديل هذه المعلمة بتحسين حركة مرور شبكة MQTT. وتجدر الإشارة إلى أن بيانات درجة الحرارة والرطوبة من DHT22 تتم قراءتها بالتناوب بسبب قيود المستشعر.

معايرة درجة الحرارة

لمعايرة مستشعر درجة الحرارة ، اتبعت نفس العملية الموضحة هنا الخطوة 4 ، مرة أخرى باستخدام علاقة بسيطة y = mx + c. لقد استخدمت IoT Temperature ، مستشعر الرطوبة # 1 كجهاز مرجعي. القيم من المستشعر بالدرجات المئوية.

معايرة الرطوبة

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

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

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

كما هو مذكور في Instructable سابقًا (هنا) ، استقرت على اصطلاح تسمية الموضوع الموضح في الموافقة المسبقة عن علم 1 أعلاه.

وهي ، "AccessMethod / DeviceType / WhoDevice / Action / SubDevice" ليست مثالية ولكنها تسمح بتطبيق المرشحات المفيدة لرؤية جميع مخرجات المستشعر لموضوع حدودي معين ، مما يسمح بإجراء مقارنة سهلة كما في الصورة 2 أعلاه مع MQTTSpy.

هذا المشروع هو المثيل الأول الذي يحتوي فيه جهاز واحد على أكثر من مصدر منشأ واحد من نفس نوع النشر. بمعنى آخر. مستشعران لدرجة الحرارة / الرطوبة من الأجهزة الفرعية الداخلية والخارجية.

كما أنها تدعم المجموعات المنطقية القابلة للتوسيع بشكل معقول للوظائف داخل جهاز إنترنت الأشياء.

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

ملاحظة: إذا لم تكن متأكدًا من كيفية استخدام MQTTSpy ، فراجع هنا 'Setting Up an MQTT Broker. الجزء 2: إنترنت الأشياء ، أتمتة المنزل"

الخطوة 9: اكتشاف الأخطاء وتصحيحها

اكتشاف الأخطاء وتصحيحها
اكتشاف الأخطاء وتصحيحها

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

ومع ذلك ، في هذه المناسبة ، صادفت خطأً متقطعًا غريبًا حيث ستسمع بعض الأصوات بينما لا يصدر البعض الآخر.

بعد بعض التصحيح الأولي لـ Speech Synth PCB باستخدام Arduino Uno لمصدر الصوتيات وإثبات أن هذه اللوحة كانت تعمل ، أخذت نطاقًا لخطوط I2C بين IoT PCB و Speech Synth PCB. انظر الصورة 1 أعلاه.

يمكنك أن ترى بوضوح "سن المنشار" / الحافة الأسية لإشارة I2C على الآثار.

هذا عادة ما يكون مؤشرًا على أن قيم سحب I2C عالية جدًا مما يمنع جهد الخط من التعافي بسرعة كافية في دائرة الصرف المفتوحة.

كإجراء `` حل بديل '' ، قمت بموازاة اثنين من مقاومات السحب لأعلى SMT R12 و R13 مع 10Ks لإعطاء 4K7 وبالتأكيد ما يكفي من Speech Synth "انفجار في الحياة"

هذا النوع من الفشل هو عكس ما يمكن أن يحدث عند تصحيح هذه الأنواع من المشاريع. بشكل عام ، تميل معظم الوحدات القائمة على I2C التي تم شراؤها من Ebay إلى أن تأتي مع عمليات سحب 10K أو 4K7 مثبتة بالفعل. إذا كنت تنوي استخدام> 5 وحدات I2C ، كل منها به شكا من سحب 4K7 ، فإن الحمل الإجمالي هو 940R وهو ما سيكون كبيرًا جدًا بالنسبة لمرحلة الإخراج للسيد. سيكون الإصلاح هو إزالة اللحام عن جميع مقاومات السحب باستثناء مجموعة واحدة في كل وحدة. ويفضل أن يكون الأبعد جسديًا عن السيد.

نصيحة مفيدة تستحق وضعها في الاعتبار عند تصميم الأجهزة الإلكترونية باستخدام أجهزة I2C.

الخطوة 10: اختبار التصميم

Image
Image
اختبار التصميم
اختبار التصميم
اختبار التصميم
اختبار التصميم

تم إجراء الاختبار باستخدام منهجيتين ؛ يدوي وآلي.

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

تم اختيار MQTTSpy للاختبار اليدوي لأنها أداة ممتازة لتسليم حمولة معينة ونشرها على أي موضوع بسهولة. يعرض أيضًا سجلًا واضحًا ومختومًا بالوقت وهو مفيد جدًا لتصحيح الأخطاء (صورة 3 أعلاه).

تم اعتماد الطريقة الثانية الآلية حيث أصبحت شفرة المصدر أكثر تعقيدًا (> 3700 سطر). زيادة التعقيد تعني دورات اختبار يدوية أطول واختبارات أكثر تعقيدًا. من أجل تحسين الموثوقية والحتمية وجودة الاختبارات ، تم استخدام الاختبار الآلي عبر مدير اختبار بيثون (صورة 1). راجع الخطوة رقم 10 في Instructable حول كيفية تقديم الاختبار الآلي. نسخة كاملة من الاختبارات الآلية المستخدمة في Instructable متاحة هنا.

تم عرض مقطع فيديو لتسلسل الاختبار الآلي قيد التشغيل أعلاه. التسلسل ينفذ الخطوات التالية ؛

  • مؤتمتة عبر MQTT

    • اتصل بعمود MQTT واعلن عن "جاهز للنظام"
    • تمرين الصمام الأخضر
    • تمرين الصمام الأحمر
    • تمرين الصمام الأزرق
    • تحقق من عمل وعاء رقمي
    • تحدث باستخدام الصوتيات
    • تحدث باستخدام رموز سداسية عشرية للفونيمات
    • تحدث باستخدام الرموز لإصلاح العبارات
    • القليل من المرح من دكتور هو وداليكس.
  • يدويًا عبر HTTP / Chrome

    • تمرين الصمام الأزرق
    • تمرين الصمام الأحمر
    • تحدث بعبارات ثابتة مثل "ستيفن كوين" و "جاهز للنظام" و "مرحبًا بالعالم"
    • احصل على خادم HTTP ، قم بتقديم الخدمة

      • تفاصيل حول رقاقة تركيب الكلام
      • تفاصيل MQTT

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

استنتاج
استنتاج

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

يعمل البرنامج بشكل جيد ، وكان جهاز إنترنت الأشياء يعمل بشكل مستقر لبعض الوقت الآن دون أي مشاكل.

لقد كنت أراقب درجة الحرارة والرطوبة عبر Grafana وأقارنها بجهاز موجود في نفس الموقع. كانت القيمتان المحيطتان مترابطتان جيدًا ، مما يعني أن المعايرة معقولة (أو على الأقل متشابهة).

توقفت عن تنفيذ أمر الكلمات ('WFD / SpeechTH / 1 / Word / Command') لأن الوقت قد نفد مني وأحتاج إلى المضي قدمًا. قد أقوم بإعادة زيارة هذا إذا قمت بإعداد قاعدة بيانات MySQL وعندما أقوم بذلك. الآن أنا أستخدم InfluxDB.

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

تم استخدام المصادر التالية لوضع Instructable معًا ؛ رمز المصدر لجهاز IoT Retro Speech Synthesis (يحتوي على نسخة من كل شيء)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

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

DHT.h

  • بقلم: Adafruit
  • الغرض: مكتبة Arduino لـ DHT11DHT22 ، وما إلى ذلك من مستشعرات درجة الحرارة والرطوبة
  • من:

Adafruit_AM2320.h / Adafruit_Sensor.h

  • بقلم: Adafruit
  • الغرض: مكتبة Arduino لـ AM2320 ، وما إلى ذلك مستشعر درجة الحرارة والرطوبة
  • من:

MCP4561_DIGI_POT.h

  • بقلم: ستيف كوين
  • الغرض: مكتبة اردوينو لمقياس الجهد الرقمي MCP4561
  • من:

Adafruit_MCP23017.h

  • بقلم: ستيف كوين
  • الغرض: مكتبة Arduino لـ MCP23017 I2C Port Expander. هذه شوكة GITHub من Adafruit-MCP23017-Arduino-Library بواسطة Adafruit.
  • من:

للمتعة

https://haynes.com/en-gb/

تصنيع ثنائي الفينيل متعدد الكلور

https://jlcpcb.com/

تثبيت مكتبات Arduino إضافية

https://www.arduino.cc/en/Guide/Libraries

كيفية فحص ومعايرة جهاز استشعار الرطوبة

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/؟ /

ورقة بيانات SP0256-AL2

https://www.futurebots.com/spo256.pdf

متجر رقائق الكلام

https://www.speechchips.com/shop/

مسابقة اردوينو 2019
مسابقة اردوينو 2019
مسابقة اردوينو 2019
مسابقة اردوينو 2019

الوصيف في مسابقة Arduino 2019

موصى به: