فهرست مطالب:

آشکارساز گرفتگی تخلیه: 11 مرحله (همراه با تصاویر)
آشکارساز گرفتگی تخلیه: 11 مرحله (همراه با تصاویر)

تصویری: آشکارساز گرفتگی تخلیه: 11 مرحله (همراه با تصاویر)

تصویری: آشکارساز گرفتگی تخلیه: 11 مرحله (همراه با تصاویر)
تصویری: Part 4 - Triplanetary Audiobook by E. E. Smith (Chs 13-17) 2024, جولای
Anonim
Image
Image

اجازه ندهید که یک فاضلاب مسدود شده سرعت شما را کند کند! وقتی از تعطیلات برگشتیم ، من و همسرم از پوشاندن آب کف آپارتمانمان شگفت زده شدیم و متوجه شدیم حتی آب تمیز نیست ، همه جا تخلیه می شود. پس از پاکسازی فاضلاب و تمیز کردن کف ، این سال را داشتم: چرا ما یک سیستم هشدار برای گرفتگی احتمالی تخلیه نداریم؟ فاضلاب های مسدود شده نه تنها می توانند خانه شما را متوقف کنند ، بلکه هزینه های اضافی را از جیب شما مصرف می کنند ، طبق گفته HomeAdvisor به طور متوسط 206 دلار هزینه پاکسازی زهکشی است ، علاوه بر هزینه های پنهان فرش های آسیب دیده ، مبلمان چوبی و غیره. ایده ما این است که به صاحبان خانه و همچنین شرکتهایی مانند بخشهای تعمیر و نگهداری شهرها و ارائه دهندگان خدمات تخصصی اجازه دهیم تا یک سیستم کارآمد و هوشمند داشته باشند که به هر کسی که مسئول است در اسرع وقت هشدار دهد که اقدامی انجام دهد ، که در غنی سازی شهرهای هوشمند با موارد مهم کمک می کند. ویژگی.

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

اعتبارات برای

  • محمد حسن
  • احمد امام

در این پروژه 3 مرحله اجرا می شود: جمع آوری داده ها ، یادگیری و پیش بینی.

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

و در این ویدئوی بعدی ، نحوه آزمایش سیستم و مدل ، در حالت باز ، سپس در حالت گرفتگی و بازگشت به حالت باز ، نشان داده می شود.

بنابراین ، اجازه دهید گام به گام پیاده سازی خود را بررسی کنیم:

مرحله 1: آزمایش

آزمایش
آزمایش
آزمایش
آزمایش
آزمایش
آزمایش
آزمایش
آزمایش

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

مرحله 2: سخت افزار

سخت افزار
سخت افزار
سخت افزار
سخت افزار
سخت افزار
سخت افزار

I- آردوینو

برای تشخیص صدای آب داخل لوله به سنسور صدا نیاز داریم. با این حال رزبری پای 3 فاقد GPIO آنالوگ است. برای رسیدگی به این مشکل از آردوینو استفاده می کنیم زیرا آردوینو GPIO آنالوگ دارد. بنابراین سنسور صدا Grove را به Grove Arduino shield و Shield را به Arduino UNO 3 متصل می کنیم و سپس Arduino & Raspberry را با استفاده از کابل USB متصل می کنیم. برای کسب اطلاعات بیشتر در مورد سنسور صدا Grove ، می توانید برگه اطلاعات آن را بررسی کنید. می توانید در برگه داده نمونه ای از نحوه خواندن مقادیر حسگر را بیابید. کد نمونه تقریباً از تغییرات کوچک استفاده می کند. در کد زیر سنسور را به A0 در سپر متصل می کنیم. برای نوشتن روی سریال ، از تابع Serial.begin () استفاده می کنیم. برای برقراری ارتباط با Raspberry baud ، نرخ 115200 تنظیم شده است اگر بیشتر از آستانه مشخصی برای کاهش نویز باشد ، داده ها به تمشک ارسال می شود. آستانه 400 و ارزش تأخیر 10 میلی ثانیه یافت شد. آستانه برای فیلتر کردن نویز معمولی و اطمینان از ارسال داده های معنی دار به ابر انتخاب شده است. تأخیر در دور انتخاب شده است تا اطمینان حاصل شود که سنسور هرگونه تغییر در صدای جریان را بلافاصله در لوله تشخیص داده است.

II- Raspberry Pi 3 برای بارگیری موارد اندروید در Raspberry ، می توانید آخرین نسخه را از Android Things Console بارگیری کنید. در این پروژه ما از نسخه: OIR1.170720.017 استفاده می کنیم. برای نصب سیستم عامل روی تمشک مراحل سایت Raspberry را دنبال کنید ، برای Windows می توانید از این مراحل استفاده کنید پس از نصب می توانید رزبری را با استفاده از USB به رایانه خود متصل کنید. سپس در کنسول رایانه خود از دستور زیر برای دریافت IP رزبری استفاده کنید

nmap -sn 192.168.1.*

پس از دریافت IP ، با استفاده از دستور زیر به تمشک خود متصل شوید

adb وصل کنید

برای اتصال تمشک به Wifi (SSID و گذرواژه خود را اضافه کنید)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e رمز عبور ****

مرحله 3: Google Cloud - ثبت نام مجدد

Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد
Google Cloud - ثبت نام مجدد

به لطف گوگل ، Google یک لایه رایگان برای همه کاربران به مدت یک سال با سقف 300 دلار ارائه می دهد:). برای ایجاد پروژه جدید در Google Cloud ، صفحه ها را دنبال کنید

مرحله 4: Google Cloud - Pub/Sub

Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub

Google Cloud Pub/Sub یک سرویس پیام رسانی زمان واقعی است که به شما امکان می دهد بین برنامه های مستقل پیام ارسال و دریافت کنید.

مرحله 5: Google Cloud - IOT Core

Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core

II- IOT CoreA سرویس کاملاً مدیریت شده برای اتصال آسان ، ایمن و مدیریت داده ها از دستگاه های پراکنده در سطح جهانی. IOT Core still Beta ، برای دسترسی به آن باید درخواستی با Justification به Google ارسال کنید. ما درخواست دادیم ، توجیه ما این مسابقه بود. گوگل تأیید کرد ، مجدداً از گوگل تشکر می کنم:). تمشک داده های سنسور را به IOT Core ارسال می کند که خوانش ها را به موضوع PubSub ایجاد شده در مرحله قبل ارسال می کند

مرحله 6: Google Cloud - توابع ابر

Google Cloud - عملکردهای ابر
Google Cloud - عملکردهای ابر
Google Cloud - عملکردهای ابر
Google Cloud - عملکردهای ابر

عملکردهای ابری یک محیط بدون سرور برای ایجاد و اتصال سرویس های ابری است. راه اندازی این تابع موضوع PubSup است که در مرحله 1 ایجاد شده است. وقتی مقدار جدیدی در PubSup نوشته شود و در Cloud DataStore با نوع "SoundValue" نوشته شود ، این عملکرد فعال می شود.

مرحله 7: Google Cloud - Cloud DataStore

Google Cloud Datastore یک پایگاه داده سند NoSQL است که برای مقیاس بندی خودکار ، عملکرد بالا و سهولت توسعه برنامه ساخته شده است. در حالی که رابط Cloud Datastore دارای بسیاری از ویژگی های مشابه پایگاه داده های سنتی است ، اما به عنوان یک پایگاه داده NoSQL از لحاظ توصیف روابط بین اشیاء داده با آنها تفاوت دارد. نیازی به هیچگونه راه اندازی نیست زیرا هنگامی که عملکردهای ابری مقادیر حسگر را در DataStore بنویسند ، داده ها به DataStore اضافه می شوند

مرحله 8: Google Cloud - BigQuery

Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery

ما یک نمونه 10 دقیقه از لوله معمولی و 10 دقیقه از لوله مسدود شده با تفاوت دقیق 1 ساعت بین 2 تکرار جمع آوری می کنیم. پس از بارگیری DataStore داده ها و ایجاد دستکاری برای افزودن طبقه بندی برای هر سطر. در حال حاضر ما 2 فایل csv داریم که یکی برای هر دسته است. به عنوان بهترین روش ، ابتدا فایل های CSV داده ها را در Cloud Storage بارگذاری کنید. در صفحه زیر ما یک سطل جدید ایجاد می کنیم و 2 فایل CSV را بارگذاری می کنیم زیرا این سطل فقط برای تجزیه و تحلیل مورد استفاده قرار می گیرد ، نیازی به انتخاب سطل چند منطقه ای نیست ، سپس Dataset جدید و جدول جدید در BigQuery ایجاد کرده و 2 فایل CSV را از سطل به بالا بارگذاری کنید. میز جدید

مرحله 9: Google Cloud - Data Studio

Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio

سپس از Data Studio برای ترسیم برخی از بینش ها استفاده می کنیم. Data Studio داده ها را از جدول BigQuery می خواند. از نمودارها می توانیم تفاوت بین 2 دسته را در تعداد دورسنجی و مجموع مقادیر در دقیقه مشاهده کنیم. بر اساس این بینش ها می توانیم یک مدل ساده طراحی کنیم ، لوله در صورتی مسدود می شود که در 3 دقیقه متوالی ، تعداد مقادیر تله متری که بالاتر از آستانه نویز (400) بیشتر از 350 دورسنج است. و در 3 دقیقه متوالی ، شمارش ارزش دورسنجی که بالاتر از آستانه جرقه (720) است ، بیش از 10 دورسنجی است.

مرحله 10: مرحله پیش بینی

مرحله پیش بینی
مرحله پیش بینی

هنگامی که از مقدار معینی (THRESHOLD_VALUE) تجاوز می کند که بر روی 350 تنظیم شده است که نویز را کاهش می دهد و میزان جریان آب در لوله را فیلتر می کند ، به عنوان خوانده شده در نظر گرفته می شود.

تجزیه و تحلیل داده ها نشان داد که در حالت باز تعداد خوانش ها کمتر از 100 است ، اما در حالت انسداد ، مقادیر بسیار بیشتر است (به 900 در دقیقه می رسد) ، اما در موارد نادر نیز کمتر از 100 بود. با این حال ، این موارد در نتیجه تکرار نمی شوند ، و برای سه دقیقه متعاقب ، تعداد کل خوانش ها همیشه از 350 فراتر می رفت. داشتن حالت باز در همان سه دقیقه کمتر از 300 را جمع می کند ، ما می توانیم با اطمینان این قانون را وضع کنیم: قانون شماره 1 به مدت سه دقیقه در حالت خام ، در صورت کل > 350 ، سپس یک گرفتگی تشخیص داده می شود. ما دریافتیم حداکثر مقداری که در حالت باز است از مقدار معینی (SPARK_VALUE) که 770 است تجاوز نمی کند ، بنابراین این قانون را اضافه کردیم: قانون شماره 2 اگر مقدار را 350 بخوانید ، بیشتر مسدود شده تشخیص داده می شود.

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

مرحله 11: کد

همه کد های Arduino ، Raspberry & Cloud Function را می توانید در Github پیدا کنید.

برای اطلاعات بیشتر می توانید این پیوند را بررسی کنید

توصیه شده: