فهرست مطالب:

سنتز گفتار یکپارچهسازی با سیستمعامل. قسمت: 12 اینترنت اشیا ، اتوماسیون خانگی: 12 مرحله (همراه با تصاویر)
سنتز گفتار یکپارچهسازی با سیستمعامل. قسمت: 12 اینترنت اشیا ، اتوماسیون خانگی: 12 مرحله (همراه با تصاویر)

تصویری: سنتز گفتار یکپارچهسازی با سیستمعامل. قسمت: 12 اینترنت اشیا ، اتوماسیون خانگی: 12 مرحله (همراه با تصاویر)

تصویری: سنتز گفتار یکپارچهسازی با سیستمعامل. قسمت: 12 اینترنت اشیا ، اتوماسیون خانگی: 12 مرحله (همراه با تصاویر)
تصویری: تبدیل کننده صدا به متن با پایتون 2024, نوامبر
Anonim
Image
Image
سنتز گفتار یکپارچهسازی با سیستمعامل. قسمت: 12 اینترنت اشیا ، اتوماسیون خانگی
سنتز گفتار یکپارچهسازی با سیستمعامل. قسمت: 12 اینترنت اشیا ، اتوماسیون خانگی

این مقاله دوازدهمین مجموعه از دستورالعمل های اتوماسیون خانگی است که نحوه ایجاد و ادغام دستگاه IoT Retro Speech Synthesis را در یک سیستم اتوماسیون خانگی موجود شامل کلیه عملکردهای نرم افزاری لازم برای استقرار موفق در محیط داخلی مستند می کند.

تصویر 1 دستگاه تکمیل شده گفتار اینترنت اشیاء را نشان می دهد و تصویر 2 تمام اجزای تشکیل دهنده مورد استفاده در نمونه اولیه را نشان می دهد که برای رفتن به محصول نهایی ، ضریب فاکتور کاهش یافته است.

ویدئو دستگاه را در حال عمل نشان می دهد (در حین آزمایش).

معرفی

همانطور که در بالا ذکر شد ، این دستورالعمل نحوه ساخت یک دستگاه سنتز گفتار یکپارچهسازی با سیستمعامل IoT را توضیح می دهد و بر اساس General Instruments SP0256-AL2 است.

هدف اصلی آن افزودن سنتز صوتی "old school" به یک شبکه اینترنت اشیا است. ممکن است بپرسید چرا "مدرسه قدیمی"؟ خوب ، چون من در دهه 80 بودم که این چیزها برای اولین بار ساخته شد و من یکی از آنها را به BBC Micro وصل کردم ، بنابراین برای من تا حدی نوستالژی در مورد SP0256-AL2 وجود دارد.

من چالش تلاش برای پی بردن به آنچه روی زمین با این صدای خوش صدا Dalek گفته می شود را ترجیح می دهم تا گوش دادن به آهنگ های دلنشین اکو آمازون یا Siri. چالشی که من از شما می پرسم کجاست؟

اوه ، و ناگفته نماند که من همچنین یک "کیسه بار" از IC های "SP0256-AL2" در اطراف دارم.

این دستگاه همچنین می تواند دما و رطوبت محلی را بخواند ، بنابراین ابزار محیطی زیرساخت اینترنت اشیاء موجود من را به شبکه Io مبتنی بر MQTT/OpenHAB متصل می کند که در این سری در مورد اتوماسیون خانگی (HA) توضیح داده شده است ، بر اساس کد استفاده مجدد از اینجا.

در قلب آن یک ESP8266-07 قرار دارد که مسئول ارتباطات MQTT و کنترل کلیه عملکردهای سیستم (دسترسی به کارت SD ، کنترل LED ، حسگر دما/رطوبت ، کنترل صدا ، سنتز گفتار) است. این دستگاه از طریق فایل های متنی ذخیره شده در یک دستگاه به طور کامل قابل تنظیم است کارت SD محلی ، اگرچه پارامترهای کالیبراسیون و امنیت شبکه را می توان از طریق انتشارات MQTT از راه دور برنامه ریزی کرد.

به چه قطعاتی نیاز دارم؟

صورتحساب مواد را اینجا ببینید

به چه نرم افزاری نیاز دارم؟

  • Arduino IDE 1.6.9 ،
  • Arduino IDE برای برنامه ریزی ESP8266-07 پیکربندی شده است (همانند این). سپس IDE را همانطور که در توضیحات مفصل ارائه شده در طرح نرم افزار در اینجا مشخص شده است پیکربندی کنید ،
  • در صورت تمایل به استفاده از قابلیت تست خودکار ، Python v3.5.2 ، جزئیات را در اینجا مشاهده کنید

به چه ابزارهایی نیاز دارم؟

  • میکروسکوپ حداقل x3 (برای لحیم کاری SMT) ،
  • ابزار جمع کننده اتصال دهنده Molex (برای اتصالات JST) ،
  • آهن لحیم کاری SMD (با قلم شار مایع و لحیم کاری با جریان شار) ،
  • پیچ گوشتی ها (مختلف) ،
  • سلاح گرم،
  • مته (مختلف) ،
  • ابزار دستی Countersink ،
  • فایل ها (مختلف) ،
  • درمل (بیت های مختلف) ،
  • نایب محکم (کوچک و بزرگ ، مانند یک کار مشکی و دکری) ،
  • چاقوی کوچک جراحی،
  • کالیپرهای ورنیه (برای اندازه گیری ساخت و برای اندازه گیری قطعات PCB مفید است) ،
  • رانندگان آچار و مهره (مختلف) ،
  • موچین قوی (برای لحیم کاری SMT) ،
  • اره برقی خردسال ،
  • مته (با مته های مختلف مته) ،
  • انبردست ظریف (بینی و بینی تیز) ،
  • برش های فلاش ،
  • DMM با بررسی تداوم شنیدنی ،
  • محدوده دیجیتال دو کانالی (برای اشکال زدایی سیگنال ها مفید است)

به چه مهارتهایی نیاز دارم؟

  • صبر زیاد ،
  • مهارت بسیار زیادی و هماهنگی عالی دست و چشم ،
  • مهارت های لحیم کاری عالی ،
  • مهارت ساخت عالی ،
  • قابلیت تجسم در سه بعد ،
  • برخی از دانش توسعه نرم افزار با "C" (اگر می خواهید کد منبع را بفهمید) ،
  • برخی از دانش پایتون (نحوه نصب و اجرای اسکریپت ها ، اگر می خواهید از تست خودکار استفاده کنید) ،
  • آشنایی با آردوینو و IDE آن ،
  • دانش خوب در زمینه الکترونیک ،
  • آشنایی با شبکه خانگی شما

موضوعات تحت پوشش

  • راهنمای کاربری
  • نمای کلی مدار
  • تولید و مونتاژ PCB
  • ساخت
  • مرور سیستم نرم افزاری
  • مروری بر نرم افزار
  • کالیبراسیون سنسور
  • کنوانسیون نامگذاری موضوع MQTT
  • اشکال زدایی و عیب یابی
  • آزمایش طرح
  • نتیجه
  • منابع مورد استفاده

پیوندهای سری به قسمت 11: IoT Desktop Console. قسمت: 11 اینترنت اشیا ، اتوماسیون خانگی

مرحله 1: راهنمای کاربر

راهنمای کاربری
راهنمای کاربری
راهنمای کاربری
راهنمای کاربری
راهنمای کاربری
راهنمای کاربری

تصویر 1 بالا جلوی Synthesizer Retro Speech و تصویر 2 پشت آن را نشان می دهد.

محوطه جلو

  1. گریل اسپیکر
  2. جک هدفون 3.5 میلی متری: هنگامی که جک 3.5 میلی متری وارد می شود بلندگوی اصلی غیرفعال می شود.
  3. LED قرمز: این LED در حالی که یک کلمه هنگام گفتار از طریق درخواست HTTP شروع می شود ، روشن می شود.
  4. LED آبی: این LED در حالی که یک کلمه هنگام گفتار از طریق درخواست MQTT IoT آغاز می شود ، روشن می شود.

محفظه عقب

  1. دکمه تنظیم مجدد: برای بازنشانی سخت دستگاه IoT ESP8266-07 استفاده می شود.
  2. دکمه فلش: در صورت استفاده از دکمه تنظیم مجدد ، امکان چشمک زدن مجدد ESP8266-07 وجود دارد.
  3. پلاگین آنتن وای فای (پلاگین SMA): برای آنتن وای فای خارجی کمترین تضعیف مسیر RF را به دلیل بسته شدن آلومینیومی انجام می دهد.
  4. پورت برنامه نویسی خارجی: برای رفع نیاز به بازکردن محفظه برای دسترسی به ESP8266-07 برای اهداف برنامه نویسی مجدد. پین های برنامه نویسی ESP8266-07 به پورت برنامه نویسی خارجی منتقل شده اند. تصویر 3 آداپتور برنامه نویسی است.
  5. LED سبز: این سیستم IoT led است و برای نشان دادن وضعیت تشخیصی دستگاه و راه اندازی و حین کار استفاده می شود.
  6. سنسور دما/رطوبت خارجی (AM2320)
  7. شکاف کارت SD: این شامل تمام داده های پیکربندی/امنیتی به همراه صفحات سرور وب است.
  8. جک منبع تغذیه 2.1 میلی متری 6 ولت

مرحله 2: مرور کلی مدار

نمای کلی مدار
نمای کلی مدار
نمای کلی مدار
نمای کلی مدار

دستگاه Retro Speech Synth شامل دو PCB است.

  • RetroSpeechSynthIoTBoard: این یک PCB عمومی ، قابل استفاده مجدد ESP8266-07/12/12E/13 PCB است
  • RetroSpeechSynthBoard: این یک PCB عمومی SP0256-AL2 است

Retro Speech Synth Io Board

این تخته امکان لحیم کاری مستقیم پریزهای ESP8266-07/12/12E/13 یا 0.1 اینچی را فراهم می کند که PCB حامل ESP8266 را در خود جای می دهد.

این برد برای گسترش ورودی/خروجی آن از طریق اتصال I2C طراحی شده است و می تواند سطوح تغذیه 3v3 یا 5v را از طریق Q1 ، Q2 ، R8-13 پشتیبانی کند.

اتصال به صفحه از طریق یکی از دو سرصفحه J2 و J4 ، یک روبان 8 طرفه DIL IDC یا 5 جهت JST/Molex انجام می شود.

U2 و U3 ارائه 3.3v و 5v در مقررات تامین هیئت مدیره. متناوباً اگر به ظرفیت فعلی بیشتری نیاز باشد ، تنظیم کننده های شنت سریال خارج از صفحه به ترتیب از طریق اتصالات J10 و J11 متصل می شوند.

اتصالات J1 و J3 پشتیبانی از کارت SD خارجی را با SPI ارائه می دهند. J1 برای Molex 8 طرفه طراحی شده است و J3 دارای پین مستقیم برای پشتیبانی از سازگاری پین برای PCB کارت SD بدون قفسه با پشتیبانی 3v3 یا 5v است.

Retro Speech Synth Board

کنترل این برد بر روی یک اتصال سازگار با I2C 5v از طریق J1 ، J5 یا J6 ، یک JST/Molex 4 طرفه ، 8 طرفه DIL IDC یا 8 جهت IDC روبان متصل است.

U2 MPC23017 رابط موازی I2C را برای U3 SP0256-AL2 و LEDS D1 (سبز) ، D2 (قرمز) و D3 (آبی) فراهم می کند. خروجی Speech Synth به تقویت کننده صوتی CR1 TBA820M از طریق قابلمه آنالوگ RV1 یا دیگ دیجیتال U1 MCP4561 تغذیه می شود.

دیگ دیجیتال U1 همچنین از طریق I2C سازگار با 5v کنترل می شود.

توجه: دستگاه ESP8266-07 انتخاب شد زیرا دارای یک کانکتور IPX RF یکپارچه است که به آنتن وای فای خارجی اجازه می دهد تا به محفظه آلومینیومی اضافه شود.

مرحله 3: تولید و مونتاژ PCB

تولید و مونتاژ PCB
تولید و مونتاژ PCB
تولید و مونتاژ PCB
تولید و مونتاژ PCB
تولید و مونتاژ PCB
تولید و مونتاژ PCB
تولید و مونتاژ PCB
تولید و مونتاژ PCB

تصاویر 1 و 2 زیر مجموعه های تکمیل شده و سیمی PCB را که بر روی بستر محفظه آلومینیومی قرار گرفته اند نشان می دهد.

این دو PCB با استفاده از Kicad v4.0.7 طراحی شده و توسط JLCPCB تولید شده و توسط من مونتاژ شده و در عکسهای 3 تا 13 در بالا نشان داده شده است.

مرحله 4: ساخت

ساخت
ساخت
ساخت
ساخت
ساخت
ساخت

تصویر 1 یک طرح دستی به سبک هاینس از تمام قطعات پیش ساخته قبل از مونتاژ نهایی را نشان می دهد.

عکسهای 2… 5 عکسهای مختلفی را در حین ساخت محفظه با حداقل فاصله ایجاد می کند.

مرحله 5: مرور سیستم نرم افزاری

مرور سیستم نرم افزاری
مرور سیستم نرم افزاری
مرور سیستم نرم افزاری
مرور سیستم نرم افزاری

این دستگاه سنتز گفتار IoT Retro شامل شش جزء اصلی نرم افزار است که در تصویر 1 بالا نشان داده شده است.

کارت SD

این سیستم فایل فلش SD SPI خارجی است و برای نگهداری اطلاعات زیر استفاده می شود (تصویر 2 بالا را ببینید).

  • نمادها و "صفحه اصلی پیکربندی Speech Synth" index.htm: توسط دستگاه IoT هنگامی که قادر به اتصال به شبکه WiFi IoT شما نیست (معمولاً به دلیل اطلاعات امنیتی نادرست یا اولین بار استفاده) ارائه می شود و وسیله ای را در اختیار کاربر قرار می دهد پیکربندی از راه دور سنسورها بدون نیاز به فلش مجدد محتویات SD جدید. همچنین دارای index1.htm ، mqtt.htm و sp0256.htm است ، اینها صفحات وب محلی هستند که از طریق مرورگر وب قابل دسترسی هستند و امکان کنترل محدود زبان گفتار را فراهم می کند. از طریق
  • اطلاعات امنیتی: این اطلاعات اطلاعاتی را که هنگام استفاده از دستگاه IoT برای اتصال به شبکه WiFi IoT و بروکر MQTT شما استفاده می شود ذخیره می کند. اطلاعات ارسال شده از طریق 'Speech Synth Configuration Home' در این فایل ('secvals.txt') نوشته می شود.
  • اطلاعات کالیبراسیون: اطلاعات موجود در فایلها ('calvals1.txt' و 'calvals2.txt') برای کالیبراسیون سنسورهای دما/رطوبت در صورت نیاز استفاده می شود. ثابتهای کالیبراسیون را می توان از طریق دستورات MQTT از یک کارگزار MQTT یا با فلش مجدد کارت SD به دستگاه IoT نوشت. "calvals1.txt" مربوط به سنسور AM2320 و "calvals2.txt" مربوط به DHT22 است.
  • مقادیر سیستم قابل تنظیم توسط کاربر: اطلاعات موجود در این فایل ('confvals.txt') ، که توسط کاربر انتخاب می شود ، پاسخ های خاصی از سیستم را کنترل می کند ، مانند سطح حجم اولیه دیجیتال ، اعلان خودکار 'سیستم آماده' در اشتراک کارگزار MQTT و غیره.

سرور mDNS

این قابلیت زمانی مورد استفاده قرار می گیرد که دستگاه اینترنت اشیاء نتواند به عنوان یک ایستگاه WiFi به شبکه WiFi شما متصل شود و در عوض تبدیل به یک نقطه دسترسی وای فای شود که شبیه یک روتر WiFi داخلی است. در مورد چنین روتری معمولاً با وارد کردن آدرس IP چیزی مانند 192.168.1.1 (معمولاً روی برچسب روی جعبه چاپ می شود) مستقیماً در نوار آدرس مرورگر خود به آن متصل می شوید ، در این صورت یک صفحه ورود برای ورود دریافت خواهید کرد. نام کاربری و رمز عبور برای پیکربندی دستگاه. برای ESP8266-07 در حالت AP (حالت نقطه دسترسی) دستگاه به طور پیش فرض به آدرس IP 192.168.4.1 گفته می شود ، اما با سرور mDNS که اجرا می شود فقط باید نام دوستانه "SPEECHSVR.local" را در نوار آدرس مرورگر وارد کنید تا به "صفحه اصلی پیکربندی Speech Synth" مراجعه کنید.

مشتری MQTT

سرویس گیرنده MQTT کلیه عملکردهای لازم را برای؛ به کارگزار MQTT شبکه اینترنت اشیا خود متصل شوید ، در موضوعات مورد نظر خود مشترک شوید و بارهای مربوط به یک موضوع مشخص را منتشر کنید. به طور خلاصه عملکرد اصلی اینترنت اشیاء را ارائه می دهد.

سرور وب

این وب سرور دو هدف دارد ؛

  1. اگر دستگاه IoT نتواند به شبکه WiFi متصل شود که SSID ، P/W و غیره در فایل اطلاعات امنیتی موجود در کارت SD موجود است ، دستگاه تبدیل به یک نقطه دسترسی می شود. پس از اتصال به شبکه WiFi ارائه شده توسط Access Point ، وجود یک وب سرور HTTP به شما امکان می دهد مستقیماً به دستگاه متصل شوید و پیکربندی آن را با استفاده از یک مرورگر وب HTTP تغییر دهید. صفحه وب صفحه اصلی که روی کارت SD نیز نگهداری می شود.
  2. هنگامی که دستگاه سنتز IoT Retro Speech به شبکه WiFi و کارگزار MQTT متصل شد ، در صورت دسترسی ، وب سرور HTTP به طور خودکار یک صفحه وب HTTP را ارائه می دهد که به کنترل محدود دستگاه IoT اجازه می دهد تا گزیده ای از عبارات ثابت و توانایی دو LED جلو قرمز و آبی را دوچرخه سواری کنید.

ایستگاه وای فای

این قابلیت به دستگاه IoT این امکان را می دهد تا با استفاده از پارامترهای موجود در فایل اطلاعات امنیتی به شبکه WiFi داخلی متصل شود ، بدون این دستگاه IoT شما قادر به اشتراک/انتشار در کارگزار MQTT نخواهد بود.

WiFi Access Point

قابلیت تبدیل شدن به نقطه دسترسی WiFi وسیله ای است که به وسیله آن دستگاه اینترنت اشیا به شما امکان می دهد به آن متصل شوید و از طریق ایستگاه WiFi و مرورگر (مانند Safari در iPad iPad) تغییرات پیکربندی را انجام دهید. این نقطه دسترسی یک SSID = "SPEECHSYN" + 6 رقم آخر آدرس MAC دستگاه IoT را پخش می کند. رمز عبور این شبکه بسته به صورت خیالی "PASSWORD" نامیده می شود

مرحله 6: مرور کلی نرم افزار

مروری بر نرم افزار
مروری بر نرم افزار
مروری بر نرم افزار
مروری بر نرم افزار
مروری بر نرم افزار
مروری بر نرم افزار

مقدمه

برای کامپایل موفقیت آمیز این کد منبع ، به یک نسخه محلی از کد و کتابخانه هایی که در مرحله 12 ، مراجع مورد استفاده ذکر شده است ، نیاز دارید. اگر از نحوه نصب کتابخانه آردوینو مطمئن نیستید به اینجا بروید.

بررسی اجمالی

این نرم افزار از ماشین حالت استفاده می کند همانطور که در تصویر 1 بالا نشان داده شده است (نسخه کامل منبع در مخزن GitHub من در اینجا). 5 حالت اصلی وجود دارد که در زیر به آنها اشاره شده است.

  • INIT

    این حالت مقداردهی اولیه ، اولین وضعیتی است که پس از روشن شدن برق وارد می شود

  • NOCONFIG

    این حالت در صورتی وارد می شود که پس از روشن شدن فایل secvals.txt نامعتبر یا مفقود شده تشخیص داده شود. در این حالت صفحه پیکربندی قابل مشاهده است

  • در انتظار NW

    این حالت گذرا است ، در حالی که اتصال شبکه WiFi وجود ندارد وارد می شود

  • در انتظار MQTT

    این حالت گذرا است ، پس از اتصال شبکه WiFi وارد می شود و در حالی که هیچ ارتباطی با یک کارگزار MQTT در آن شبکه وجود ندارد

  • فعال

    این حالت عادی عملیاتی است که پس از ایجاد اتصال شبکه WiFi و اتصال کارگزار MQTT وارد می شود. در این حالت دما ، شاخص حرارت و رطوبت در دستگاه سنتز گفتار IoT Retro به طور منظم برای کارگزار MQTT منتشر می شود. در این حالت صفحه اصلی Speech Synth قابل مشاهده است

رویدادهای کنترل کننده گذار بین حالتها در تصویر 1 بالا توضیح داده شده است. انتقال بین حالتها نیز توسط پارامترهای SecVals زیر تنظیم می شود.

  • آدرس IP کارگزار MQTT به صورت اعشاری نقطه چین AAA. BBB. CCC. DDD
  • دومین بندر کارگزار MQTT. به صورت عدد صحیح
  • سومین اتصال کارگزار MQTT قبل از تغییر حالت STA به حالت AP تلاش می کند. به شکل صحیح.
  • چهارمین شبکه WiFi SSID. به صورت متن رایگان.
  • رمز عبور شبکه WiFi پنجم به صورت متن رایگان

همانطور که در بالا ذکر شد اگر دستگاه اینترنت اشیا نتواند به عنوان یک ایستگاه WiFi به شبکه WiFi متصل شود که SSID و P/W در secvals تعریف شده است. متن موجود در کارت SD دستگاه IoT به یک نقطه دسترسی تبدیل می شود. پس از اتصال به این نقطه دسترسی ، صفحه اصلی پیکربندی Speech Synth را مطابق تصویر 2 نشان می دهد (با وارد کردن "SPEECHSVR.local" یا 192.168.4.1 در نوار آدرس مرورگر خود). این صفحه اصلی امکان پیکربندی مجدد دستگاه سنتز گفتار IoT Retro را از طریق یک مرورگر HTTP فراهم می کند.

دسترسی از راه دور در حالت ACTIVE

پس از اتصال به کارگزار MQTT ، امکان کالیبراسیون مجدد و پیکربندی مجدد دستگاه از طریق انتشارات موضوع MQTT نیز وجود دارد. فایل calvals.txt دارای دسترسی R/W و secvals.txt فقط دسترسی نوشتاری در معرض نمایش دارد.

همچنین همانطور که در بالا ذکر شد ، هنگامی که در حالت فعال هستید ، می توانید با وارد کردن 'SPEECHSVR.local' یا 192.168.4.1 در نوار آدرس مرورگر خود ، از طریق رابط HTTP به Speech Synth دسترسی پیدا کنید. این رابط مبتنی بر HTTP امکان کنترل اولیه Speech Synth را فراهم می کند. تصاویر 3 ، 4 و 5 صفحات وب موجود را نشان می دهد.

اشکال زدایی کاربر

در طول راه اندازی بوت ، سیستم سبز IoT که در پشت محفظه هدایت می شود ، بازخورد اشکال زدایی زیر را ارائه می دهد.

  • 1 فلاش کوتاه: بدون فایل پیکربندی روی کارت SD (secvals.txt)
  • 2 چشمک زدن کوتاه: دستگاه اینترنت اشیا در تلاش است تا به شبکه WiFi متصل شود
  • روشنایی مداوم: دستگاه اینترنت اشیا در تلاش است تا به کارگزار MQTT متصل شود
  • خاموش: دستگاه فعال است.

عملکرد دستگاه IoT Retro Speech Synthesis Device در حالت فعال

هنگامی که در حالت ACTIVE قرار دارد ، ESP8266 وارد یک حلقه پیوسته می شود که توابع زیر را فراخوانی می کند. timer_update () ، checkTemperatureAndHumidity () و handleSpeech (). نتیجه خالص آن به گونه ای طراحی شده است که یک رابط HTTP یا MQTT به کاربر ارائه می دهد ، به طور یکپارچه پردازنده گفتار داخلی خود را با واج در صورت نیاز ارائه می دهد و مقادیر پارامتری محیط محلی را در MQTT منتشر می کند.

فهرست جامعی از همه اشتراک ها و نشریات موضوعی از جمله مقادیر بار در کد منبع موجود است.

مرحله 7: کالیبراسیون سنسور

کالیبراسیون سنسور
کالیبراسیون سنسور

هنگامی که دستگاه IoT روشن می شود ، به عنوان بخشی از دنباله بوت ، دو فایل با نام "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، Humidity Sensor #1 به عنوان دستگاه مرجع استفاده کردم. مقادیر حسگر بر حسب درجه سانتیگراد است.

کالیبراسیون رطوبت

از آنجا که من هیچ وسیله ای برای ثبت دقیق یا حتی کنترل رطوبت محیط محلی ندارم ، برای کالیبراسیون سنسور از رویکرد مشابهی که در بالا در مرحله 4 ذکر شد استفاده کردم ، دوباره از سنسور شماره 1 به عنوان مرجع استفاده کردم. با وجود موارد فوق ، من اخیراً مقاله ای عالی در وب پیدا کرده ام که نحوه کالیبراسیون سنسورهای رطوبت را شرح می دهد. شاید بتوانم در آینده این رویکرد را امتحان کنم. مقادیر سنسور در درصد سن رطوبت نسبی است.

مرحله 8: کنوانسیون نامگذاری موضوع MQTT

کنوانسیون نامگذاری موضوع MQTT
کنوانسیون نامگذاری موضوع MQTT
کنوانسیون نامگذاری موضوع MQTT
کنوانسیون نامگذاری موضوع MQTT

همانطور که در دستورالعمل قبلی (اینجا) ذکر شد ، من روی قرارداد نامگذاری موضوعی که در عکس 1 بالا ذکر شده است ، تصمیم گرفتم.

به عنوان مثال ، "AccessMethod/DeviceType/WhichDevice/Action/SubDevice" این کامل نیست ، اما اجازه می دهد تا فیلترهای مفیدی برای مشاهده همه خروجی های سنسور برای یک موضوع پارامتریک مشخص اعمال شوند ، بنابراین امکان مقایسه آسان مانند تصویر 2 بالا با MQTTSpy را فراهم می کند.

این پروژه اولین نمونه ای است که در آن یک دستگاه شامل بیش از یک منبع اصلی از همان نوع انتشار است. یعنی دو سنسور دما/رطوبت ، از دستگاههای فرعی داخلی و خارجی.

همچنین از گروه بندی منطقی قابل گسترش عملکردها در دستگاه IoT مشخص پشتیبانی می کند.

در پیاده سازی این مباحث در نرم افزار ، من از رشته های موضوعی سخت کددار با شناسه های عددی ثابت و تعبیه شده برای هر دستگاه استفاده کردم ، در حالی که در زمان اجرا موضوعات را به صورت پویا تولید می کنم تا در RAM صرفه جویی شود و عملکرد را بالا نگه دارد.

توجه: اگر از نحوه استفاده از MQTTSpy مطمئن نیستید ، راه اندازی یک کارگزار MQTT را اینجا ببینید. قسمت 2: اینترنت اشیا ، اتوماسیون خانگی

مرحله 9: اشکال زدایی و یافتن خطا

اشکال زدایی و عیب یابی
اشکال زدایی و عیب یابی

به طور کلی ، برای پروژه های سرگرمی خود ، در صورت امکان ، من تمایل دارم یک نمونه سخت افزاری نماینده بسازم که نرم افزار در برابر آن توسعه می یابد ، هنگام ادغام نرم افزار در سخت افزار پلتفرم نهایی ، به ندرت دچار مشکل می شوم.

با این حال ، در این مناسبت با خطای متناوب عجیب و غریبی روبرو شدم که به موجب آن برخی از واج ها به نظر می رسید اما برخی دیگر نه.

پس از اشکال زدایی اولیه PCB Speech Synth با استفاده از Arduino Uno برای تهیه واژگان و اثبات اینکه این برد کار می کند ، خطوط I2C بین PCB IoT و PCB Speech Synth را در نظر گرفتم. به عکس 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 در این دستورالعمل مراجعه کنید. یک نسخه کامل از آزمایش های خودکار مورد استفاده در این دستورالعمل در اینجا موجود است.

ویدئویی از توالی آزمایش خودکار در حال کار در بالا نشان داده شده است. دنباله مراحل زیر را انجام می دهد ؛

  • خودکار از طریق MQTT

    • به ستون فقرات MQTT متصل شوید و "System Ready" را اعلام کنید
    • LED سبز را تمرین کنید
    • LED قرمز را تمرین کنید
    • LED آبی را تمرین کنید
    • عملکرد دیجیتال دیگ را بررسی کنید
    • با استفاده از Phonemes صحبت کنید
    • با استفاده از کدهای Hex برای Phonemes صحبت کنید
    • با استفاده از کدها برای عبارات ثابت صحبت کنید
    • کمی سرگرمی دکتر Who و Daleks.
  • دستی از طریق

    • LED آبی را تمرین کنید
    • LED قرمز را تمرین کنید
    • عبارات ثابت "Steven Quinn" ، "Ready System" و "Hello World" را بیان کنید
    • سرور HTTP را داشته باشید ، سرویس دهید

      • جزئیات تراشه Speech Synth
      • جزئیات MQTT

مرحله 11: نتیجه گیری

نتیجه
نتیجه

اگرچه تلاش زیادی برای فایل ها و مته ها و غیره به ویژه برای جلوپنجره بلندگو انجام شد ، اما من فکر می کنم نتیجه از نظر زیبایی خوشایند است و در یک محفظه زیبا و کوچک قرار می گیرد. من می توانستم آن را کوچکتر کنم اما باید به یک PCB وارد می شد و من عمدا آن را به دو قسمت تقسیم کردم تا بتوانم بعداً از PCB ها برای پروژه های دیگر استفاده کنم. بنابراین این یک سازش خوشحال کننده است.

نرم افزار به خوبی کار می کند ، دستگاه اینترنت اشیا مدتی است که بدون هیچ مشکلی در عملکرد پایدار است.

من دما و رطوبت را از طریق Grafana زیر نظر گرفته ام و با دستگاهی که در آن قرار دارد مقایسه می کنم. دو مقدار محیط به خوبی با هم ارتباط دارند و دلالت بر این دارد که کالیبراسیون منطقی است (یا حداقل آنها مشابه هستند).

من از اجرای دستور word ('WFD/SpeechTH/1/Word/Command') کوتاهی کردم زیرا زمانم تمام شده بود و نیاز به ادامه کار داشتم. اگر و هنگامی که پایگاه داده MySQL را راه اندازی می کنم ، ممکن است مجدداً از آن دیدن کنم. در حال حاضر من از InfluxDB استفاده می کنم.

مرحله 12: منابع مورد استفاده

منابع زیر برای کنار هم قرار دادن این دستورالعمل استفاده شد ؛ کد منبع برای دستگاه سنتز گفتار IoT Retro (این شامل یک کپی از همه چیز است)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • نویسنده: نیک اولری
  • هدف: دستگاه را قادر می سازد تا موضوعات MQTT را با یک کارگزار مشخص منتشر یا مشترک شود
  • از:

DHT.h

  • توسط: Adafruit
  • هدف: کتابخانه آردوینو برای DHT11DHT22 و غیره سنسورهای دما و رطوبت
  • از:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • توسط: Adafruit
  • هدف: کتابخانه آردوینو برای AM2320 و غیره سنسور دما و رطوبت
  • از:

MCP4561_DIGI_POT.h

  • نویسنده: استیو کوین
  • هدف: کتابخانه آردوینو برای پتانسیومتر دیجیتال MCP4561
  • از:

Adafruit_MCP23017.h

  • نویسنده: استیو کوین
  • هدف: کتابخانه آردوینو برای توسعه دهنده پورت MCP23017 I2C. این یک چنگال GITHub از Adafruit-MCP23017-Arduino-Library است ، توسط Adafruit.
  • از:

برای سرگرمی

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

تولید PCB

https://jlcpcb.com/

نصب کتابخانه های اضافی آردوینو

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

نحوه بررسی و کالیبراسیون سنسور رطوبت

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/؟utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_207_07_07_77_07_77_07_77_77_07_77_77_07_77_07_77_07_07_07_77_07_07_07_70_07 /

برگه اطلاعات SP0256-AL2

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

فروشگاه چیپس گفتار

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

مسابقه آردوینو 2019
مسابقه آردوینو 2019
مسابقه آردوینو 2019
مسابقه آردوینو 2019

نفر دوم مسابقات آردوینو 2019

توصیه شده: