Სარჩევი:

სანიაღვრე ბლოკადის დეტექტორი: 11 ნაბიჯი (სურათებით)
სანიაღვრე ბლოკადის დეტექტორი: 11 ნაბიჯი (სურათებით)

ვიდეო: სანიაღვრე ბლოკადის დეტექტორი: 11 ნაბიჯი (სურათებით)

ვიდეო: სანიაღვრე ბლოკადის დეტექტორი: 11 ნაბიჯი (სურათებით)
ვიდეო: Geberit ცისტერნის შეკეთება. ინსტრუქცია, თუ როგორ უნდა შეაკეთოთ გაჟღენთილი ცისტერნა? 2024, დეკემბერი
Anonim
Image
Image

არ დაუშვათ ჩაკეტილი გადინება შეანელოთ! შვებულებიდან რომ დავბრუნდით, მე და ჩემი მეუღლე გაგვიკვირდა, რომ წყალი ფარავდა ჩვენი ბინის იატაკს და აღმოვაჩინეთ, რომ ეს სუფთა წყალი კი არა, ყველგან სანიაღვრეა. სანიაღვრე ნაწილის გაწმენდისა და იატაკის გაწმენდის შემდეგ გამიჩნდა ეს კითხვა: რატომ არ გვაქვს სიგნალიზაციის სისტემა გადინების პოტენციური დაბლოკვისთვის? ჩაკეტილი სანიაღვრეები არა მარტო სახლს შეგიჩერებთ, არამედ ჯიბიდან მოიხმარს დამატებით ხარჯებს, საშუალოდ $ 206 არის დაბლოკილი სანიაღვრე გაწმენდის საფასური HomeAdvisor– ის თანახმად, დაზიანებული ხალიჩების, ხის ავეჯის და სხვა ფარული ხარჯების გარდა. ჩვენი იდეაა, მივცეთ სახლის მესაკუთრეებს, აგრეთვე საწარმოებს, როგორიცაა ქალაქის/ნაერთების ტექნიკური მომსახურების დეპარტამენტები და სპეციალიზებული მომსახურების მიმწოდებლები, ჰქონდეთ ეფექტური და ინტელექტუალური სისტემა, რომელიც გააფრთხილებს ვინც არის პასუხისმგებელი რაც შეიძლება ადრე, მიიღოს ზომები, რაც ხელს უწყობს ჭკვიანი ქალაქების გამდიდრებას მნიშვნელოვანი თვისება.

მიუხედავად იმისა, რომ ბლოკირების გამოვლენა შეიძლება განხორციელდეს რიგი ტექნიკის საშუალებით, მაგალითად, გაზის სენსორების ან შიდა მექანიზმების გამოყენებით, ჩვენი გუნდი ორიენტირებული იყო ხმის გამოყენებაზე, რადგან ჩვენ ვიცით, რომ გახსნილი მილის დაკაკუნება განსხვავდება ხმისგან. დახურვისას. ამ მარტივი კონცეფციის თანახმად, თუ ჩვენ შეგვიძლია მოვარჯულოთ მოდელი ხმის შაბლონები, რომლებიც წარმოიქმნება მილის ზედაპირზე დაბლოკვის დროს, ისევე როგორც ეს შაბლონები ხდება გახსნილ მილებში, მაშინ ჩვენ შეგვიძლია გამოვიყენოთ მოდელი პროაქტიულად გამოსაჩენად, როდესაც ბლოკირების შედგენა იწყება, და ჩვენ შემდეგ დარეკე რაღაც გადასახადები.

კრედიტები ამისთვის

  • მუჰამედ ჰასანი
  • აჰმედ იმამი

პროექტი დეტალურად 3 ეტაპია განხორციელებული ამ პროექტში: მონაცემთა შეგროვება, სწავლა და პროგნოზირება.

ამ სისტემის რეალურ ცხოვრებაში გამოყენებამდე, ჩვენ გვჭირდებოდა ძლიერი სიმულაციური გარემოს შექმნა, სადაც ჩვენ გვაქვს მილები, მიედინება წყალი და როგორმე ვაკეთებდით დაბლოკვის სიმულაციას. ამრიგად, ჩვენ მივიღეთ მილი, წყლის შლანგი წყლის წყლით, რომელიც ამას აკეთებს აბაზანის აბაზანაში და ვიყენებთ აბაზანის ზედაპირს მილის დასაკეტად, რაც წარმოადგენს ჩაკეტვას. ამ ვიდეოში ჩვენ განვმარტავთ, თუ როგორ შევქმენით გარემო და როგორ შევაგროვეთ მონაცემები სამოდელო ტრენინგისთვის.

და ამ მომდევნო ვიდეოში, რომელიც გვიჩვენებს, თუ როგორ ჩავატარეთ ტესტირება სისტემისა და მოდელისთვის, ღია რეჟიმში, შემდეგ დაბლოკვის რეჟიმში და ისევ ღია რეჟიმში.

ასე რომ, მოდით შეისწავლოთ ჩვენი განხორციელება ეტაპობრივად:

ნაბიჯი 1: ექსპერიმენტი

Ექსპერიმენტი
Ექსპერიმენტი
Ექსპერიმენტი
Ექსპერიმენტი
Ექსპერიმენტი
Ექსპერიმენტი
Ექსპერიმენტი
Ექსპერიმენტი

ამ სცენარში ჩვენ ვიყენებთ წყლის მცირე მილს, რომელიც დაკავშირებულია ჩვენს ტექნიკასთან და ხმის სენსორთან. აპარატურა კითხულობს სენსორის მნიშვნელობას და აბრუნებს მას ღრუბელში. ეს გაკეთდა 10 წუთის განმავლობაში დაბლოკილი მილისთვის, შემდეგ კიდევ 10 წუთის განმავლობაში მილისთვის, რომელიც არ არის დაბლოკილი.

ნაბიჯი 2: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

მე- არდუინო

მილის შიგნით წყლის ხმის გამოსავლენად ჩვენ გვჭირდება ხმის სენსორი. თუმცა Raspberry Pi 3 – ს არ აქვს ანალოგური GPIO. ამ საკითხის გადასაჭრელად ჩვენ ვიყენებთ Arduino– ს, რადგან Arduino– ს აქვს ანალოგური GPIO. ასე რომ, ჩვენ ვუკავშირდებით Grove Sound სენსორს Grove Arduino ფარს და ვუკავშირდებით Shield– ს Arduino UNO 3. შემდეგ ჩვენ ვუკავშირდებით Arduino & Raspberry– ს USB კაბელის გამოყენებით. Grove Sound სენსორის შესახებ მეტი ინფორმაციის მისაღებად შეგიძლიათ შეამოწმოთ მისი მონაცემთა ფურცელი. თქვენ შეგიძლიათ იხილოთ მონაცემთა ფურცელში კოდის ნიმუში, თუ როგორ უნდა წაიკითხოთ სენსორის მნიშვნელობები. საცდელი კოდი თითქმის გამოიყენება მცირე ცვლილებებისთვის. ქვემოთ მოყვანილ კოდში ჩვენ ვუკავშირდებით სენსორს A0- ს ფარში. სერიალზე დასაწერად ვიყენებთ Serial.begin () ფუნქციას. ჟოლოსთან კომუნიკაციისთვის 115200 -ზე დაყენებული მაჩვენებელი ჟოლოს გადაეგზავნება, თუ ის გარკვეულ ზღურბლზე მეტია ხმაურის შესამცირებლად. ბევრი ცდა ჩატარდა სასურველი ბარიერის და დაყოვნების მნიშვნელობების ასარჩევად. ბარიერი აღმოჩნდა 400 და გადადების ღირებულება 10 მილიწამი. ბარიერი არჩეულია ნორმალური ხმაურის გასაფილტრად და იმის უზრუნველსაყოფად, რომ ღრუბელში გაიგზავნება მხოლოდ მნიშვნელოვანი მონაცემები. დაგვიანება არჩეულია, რათა დარწმუნდეს, რომ სენსორმა დაუყოვნებლივ აღმოაჩინა მილის შიგნით მიმდინარე ბგერის ნებისმიერი ცვლილება.

II- Raspberry Pi 3 Raspberry– ზე Android ნივთების ჩამოსატვირთად შეგიძლიათ ჩამოტვირთოთ უახლესი ვერსია Android Things Console– დან. ამ პროექტში ჩვენ ვიყენებთ ვერსიას: OIR1.170720.017. მიჰყევით ჟოლოს საიტზე არსებულ ნაბიჯებს ჟოლოზე ოპერაციული სისტემის დასაყენებლად, Windows– ისთვის შეგიძლიათ გამოიყენოთ ეს ნაბიჯები ინსტალაციის შემდეგ შეგიძლიათ დაუკავშიროთ ჟოლო თქვენს კომპიუტერს USB– ის გამოყენებით. შემდეგ კომპიუტერის კონსოლში გამოიყენეთ ქვემოთ მოყვანილი ბრძანება, რომ მიიღოთ ჟოლოს IP

nmap -sn 192.168.1.*

IP- ის მიღების შემდეგ დაუკავშირდით თქვენს ჟოლოს ქვემოთ მოცემული ბრძანების გამოყენებით

adb დაკავშირება

თქვენი ჟოლოს Wifi– ს დასაკავშირებლად (დაამატეთ თქვენი SSID და პაროლი)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-ეს ssid *****

-ე საიდუმლო ფრაზა ****

ნაბიჯი 3: Google Cloud - რეგისტრაცია

Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია
Google Cloud - რეგისტრაცია

Google გთავაზობთ უფასო იარუსს ყველა მომხმარებლისთვის ერთი წლის განმავლობაში, ჭერი 300 $, მადლობა Google:). მიჰყევით ეკრანებს 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 კვლავ ბეტაა, მასზე წვდომისთვის თქვენ უნდა გააკეთოთ მოთხოვნა Google– ის დასაბუთებით. ჩვენ გავაკეთეთ მოთხოვნა, ჩვენი გამართლება იყო ეს კონკურსი. Google- მა დაამტკიცა, მადლობა 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 მონაცემთა ბაზა, იგი განსხვავდება მათგან იმით, თუ როგორ აღწერს ურთიერთობას მონაცემთა ობიექტებს შორის. არ არის საჭირო რაიმე დაყენება, რადგან მას შემდეგ რაც Cloud ფუნქციები ჩაწერს სენსორის მნიშვნელობებს 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 ფაილს, რადგან ეს თაიგული იქნება გამოყენებული მხოლოდ ანალიზისთვის, არ არის საჭირო მრავალ რეგიონალური კალათის არჩევა, შემდეგ შევქმნათ ახალი მონაცემთა ნაკრები და ახალი ცხრილი BigQuery– ში და ჩავტვირთოთ 2 CSV ფაილი ვედროდან ახალი მაგიდა

ნაბიჯი 9: Google Cloud - მონაცემთა სტუდია

Google Cloud - მონაცემთა სტუდია
Google Cloud - მონაცემთა სტუდია
Google Cloud - მონაცემთა სტუდია
Google Cloud - მონაცემთა სტუდია
Google Cloud - მონაცემთა სტუდია
Google Cloud - მონაცემთა სტუდია

შემდეგ ჩვენ ვიყენებთ მონაცემთა სტუდიას გარკვეული შეხედულებების დასახატად. მონაცემთა სტუდია წაიკითხავს მონაცემებს BigQuery ცხრილიდან. გრაფიკიდან ჩვენ ვხედავთ განსხვავებას 2 კატეგორიას შორის ტელემეტრიის რაოდენობასა და მნიშვნელობების ჯამში წუთში. ამ შეხედულებების საფუძველზე ჩვენ შეგვიძლია შევქმნათ მარტივი მოდელი, მილაკი ჩაკეტილად ითვლება, თუ 3 მომდევნო წუთში, ტელემეტრიის მნიშვნელობების რაოდენობა, რომელიც აღემატება ხმაურის ზღვარს (400), არის 350 -ზე მეტი ტელემეტრია. და 3 ზედიზედ წუთში, ტელემეტრიის ღირებულების რაოდენობა, რომელიც აღემატება ნაპერწკლის ზღურბლს (720), არის 10 -ზე მეტი ტელემეტრია.

ნაბიჯი 10: პროგნოზირების ეტაპი

პროგნოზირების ეტაპი
პროგნოზირების ეტაპი

ჩვენ ვკითხულობთ კითხვას, როდესაც ის აღემატება გარკვეულ მნიშვნელობას (THRESHOLD_VALUE), რომელიც დაყენებულია 350 -ზე, რომელიც ფილტრავს ხმაურს და ამცირებს წყლის ნაკადის სიჩქარეს მილში.

მონაცემთა ანალიზმა აჩვენა, რომ ღია რეჟიმში კითხვის რაოდენობა 100 -ზე ნაკლებია, მაგრამ დაბლოკვის რეჟიმში, მნიშვნელობები გაცილებით მაღალია (წუთში 900 -ს მიაღწია), მაგრამ იშვიათ შემთხვევებში 100 -ზე ნაკლები იყო. თუმცა, ეს შემთხვევები შესაბამისად არ მეორდება და სამი მომდევნო წუთის განმავლობაში, წაკითხვის მთლიანი რაოდენობა ყოველთვის აღემატებოდა 350 -ს. იმავე სამ წუთში ღია რეჟიმი 300 -ზე ნაკლებს შეაჯამებს, ჩვენ შეგვიძლია დარწმუნებით დავაყენოთ ეს წესი: წესი # 1 სამი წუთის განმავლობაში ნედლეულში, თუ მთლიანი კითხვა > 350, შემდეგ აღმოჩნდება clog. ჩვენ აღმოვაჩინეთ, რომ ღია რეჟიმში მიღწეული მაქსიმალური მნიშვნელობა არ აღემატება გარკვეულ მნიშვნელობას (SPARK_VALUE), რომელიც აღმოჩენილია 770, ასე რომ ჩვენ დავამატეთ ეს წესი: წესი # 2 თუ ვკითხულობთ მნიშვნელობას> 350 -ზე, მაშინ უმეტესად აღმოჩნდება დაბლოკვა.

ორივე წესის გაერთიანებამ მოგვცა მარტივი გზა გამოვლენის ლოგიკის განსახორციელებლად, როგორც ნაჩვენებია. გაითვალისწინეთ, რომ Arduino– ზე განთავსებულია ქვემოთ კოდი, რომელიც შემდეგ აფასებს მიღებულ ტელემეტრიას ჩვენი მოდელის მიხედვით და გაგზავნის ჟოლოს, თუ მილი დაბლოკილია ან გახსნილი.

ნაბიჯი 11: კოდი

Arduino, Raspberry & Cloud ფუნქციის ყველა კოდი შეგიძლიათ იხილოთ Github– ზე.

დამატებითი ინფორმაციისთვის შეგიძლიათ შეამოწმოთ ეს ბმული

გირჩევთ: