Spisu treści:

Wykrywacz zatkania odpływu: 11 kroków (ze zdjęciami)
Wykrywacz zatkania odpływu: 11 kroków (ze zdjęciami)

Wideo: Wykrywacz zatkania odpływu: 11 kroków (ze zdjęciami)

Wideo: Wykrywacz zatkania odpływu: 11 kroków (ze zdjęciami)
Wideo: Co robił żołnierz Łukaszenki w Dźwirzynie? 2024, Lipiec
Anonim
Image
Image

Nie pozwól, aby zatkany odpływ Cię spowolnił! Wracając z wakacji byliśmy zaskoczeni wodą pokrywającą podłogę naszego mieszkania i dowiedzieliśmy się, że to nie jest nawet czysta woda, wszędzie ścieka. Po wyczyszczeniu odpływu i wyczyszczeniu podłogi miałem takie pytanie: dlaczego nie mamy systemu alarmowego na potencjalne zatkanie odpływu? Zatkane odpływy nie tylko mogą zatrzymać Twój dom, ale pochłoną dodatkowe koszty z Twoich kieszeni. Według HomeAdvisor średnio 206 USD to koszt oczyszczenia zatkanego odpływu, oprócz ukrytych kosztów uszkodzonych dywanów, drewnianych mebli itp. Naszą ideą jest umożliwienie właścicielom domów, a także przedsiębiorstwom, takim jak wydziały utrzymania miasta/związków oraz wyspecjalizowanym usługodawcom, posiadanie wydajnego i inteligentnego systemu, który jak najwcześniej będzie ostrzegał osoby odpowiedzialne za podjęcie działań, co przyczynia się do wzbogacenia inteligentnych miast o ważny funkcja.

Idea Chociaż wykrywanie zatorów można wykonać za pomocą wielu technik, takich jak czujniki gazu lub mechanizmy wewnętrzne, nasz zespół skupił się na wykorzystaniu dźwięku jako sygnału wejściowego, ponieważ wiemy, że pukanie w otwartą rurkę jest innym dźwiękiem niż ten, który się wydarzył podczas zamykania. Zgodnie z tą prostą koncepcją, jeśli potrafimy wytrenować model wzorców dźwiękowych występujących na powierzchni rur podczas zatykania się, a także tych, które występują w otwartych rurach, możemy następnie zastosować model do proaktywnego wykrywania, kiedy zatkanie zaczyna się komponować, a następnie zadzwoń kilka rachunków.

Kredyty dla

  • Mohamed Hassan
  • Ahmed Emam

Szczegółowy projekt W projekcie realizowane są 3 fazy: Zbieranie danych, Nauka i przewidywanie.

Przed zastosowaniem tego systemu w prawdziwym życiu, musieliśmy stworzyć wymuszone środowisko symulacyjne, w którym mamy rurę, płynącą wodę i jakoś symulujemy zatkanie. Więc dostaliśmy rurkę, wąż ze źródłem wody, robiąc to w wannie i używając powierzchni wanny do zamknięcia rurki, która reprezentuje zatkanie. W tym filmie wyjaśniamy, w jaki sposób zbudowaliśmy środowisko i jak zbieraliśmy dane do trenowania modelu.

A w następnym filmie, pokazującym, jak przeprowadziliśmy testy systemu i modelu, w trybie otwartym, a następnie w trybie zatykania i z powrotem do trybu otwartego

Przyjrzyjmy się więc krok po kroku naszej implementacji:

Krok 1: Eksperyment

Eksperyment
Eksperyment
Eksperyment
Eksperyment
Eksperyment
Eksperyment
Eksperyment
Eksperyment

W tym scenariuszu używamy małej fajki wodnej połączonej z naszym sprzętem i czujnikiem dźwięku. Sprzęt odczytuje wartość czujnika i wysyła ją z powrotem do chmury. Zostało to zrobione przez 10 minut dla zablokowanej probówki, a następnie kolejne 10 minut dla probówki, która nie jest zablokowana.

Krok 2: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

I- Arduino

Aby wykryć dźwięk wody wewnątrz rury, potrzebujemy czujnika dźwięku. Jednak Raspberry Pi 3 nie ma analogowego GPIO. Aby poradzić sobie z tym problemem, używamy Arduino, ponieważ Arduino ma analogowe GPIO. Podłączamy więc czujnik Grove Sound do nakładki Grove Arduino, a Shield do Arduino UNO 3. Następnie łączymy Arduino i Raspberry za pomocą kabla USB. Więcej informacji na temat czujnika Grove Sound można znaleźć w jego karcie katalogowej. W karcie katalogowej można znaleźć przykładowy kod, jak odczytać wartości czujnika. Przykładowy kod jest prawie używany w przypadku niewielkich zmian. W poniższym kodzie podłączamy czujnik do A0 w nakładce. Do pisania na serialu używamy funkcji Serial.begin(). Aby komunikować się z Raspberry, prędkość transmisji ustawiona na 115200 Dane zostaną wysłane do Raspberry, jeśli przekroczy określony próg w celu zmniejszenia szumu. Przeprowadzono wiele prób, aby wybrać żądane wartości progowe i opóźnienia. Stwierdzono, że próg wynosi 400, a wartość opóźnienia wynosi 10 milisekund. Próg został wybrany w celu filtrowania normalnego szumu i zapewnienia, że do chmury będą wysyłane tylko istotne dane. Opóźnienie zostało wybrane z dala, aby czujnik natychmiast wykrył wszelkie zmiany w dźwięku przepływu wewnątrz rurki.

II- Raspberry Pi 3Aby pobrać rzeczy z Androidem na Raspberry, możesz pobrać najnowszą wersję z konsoli Android Things. W tym projekcie używamy wersji: OIR1.170720.017. postępuj zgodnie z instrukcjami na stronie Raspberry, aby zainstalować system operacyjny na Raspberry, dla Windows możesz skorzystać z tych kroków Po instalacji możesz podłączyć Raspberry do komputera za pomocą USB. Następnie w konsoli komputera użyj poniższego polecenia, aby uzyskać adres IP Raspberry

nmap -sn 192.168.1.*

Po uzyskaniu adresu IP połącz się z Raspberry za pomocą poniższego polecenia

połączenie adb

Aby podłączyć Raspberry do Wi-Fi (dodaj swój identyfikator SSID i hasło)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Połącz

-e identyfikator *****

-e hasło ****

Krok 3: Google Cloud - rejestracja

Google Cloud - rejestracja
Google Cloud - rejestracja
Google Cloud - rejestracja
Google Cloud - rejestracja
Google Cloud - rejestracja
Google Cloud - rejestracja
Google Cloud - rejestracja
Google Cloud - rejestracja

Google oferuje bezpłatny poziom dla wszystkich użytkowników przez rok z pułapem 300 $, Dzięki Google:). Postępuj zgodnie z ekranami, aby utworzyć nowy projekt w Google Cloud

Krok 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 to w pełni zarządzana usługa do przesyłania wiadomości w czasie rzeczywistym, która umożliwia wysyłanie i odbieranie wiadomości między niezależnymi aplikacjami.

Krok 5: Google Cloud - rdzeń IOT

Google Cloud - rdzeń IOT
Google Cloud - rdzeń IOT
Google Cloud - rdzeń IOT
Google Cloud - rdzeń IOT
Google Cloud - rdzeń IOT
Google Cloud - rdzeń IOT

II- IOT CoreW pełni zarządzana usługa do łatwego i bezpiecznego łączenia, zarządzania i pozyskiwania danych z urządzeń rozproszonych na całym świecie. IOT Core nadal Beta, aby mieć do niego dostęp, musisz złożyć prośbę z uzasadnieniem do Google. Złożyliśmy prośbę, naszym uzasadnieniem był ten konkurs. Zatwierdzone przez Google, Jeszcze raz dziękuję Google:). Raspberry wyśle dane z czujników do IOT Core, które przekażą odczyty do utworzonego w poprzednim kroku tematu PubSub

Krok 6: Google Cloud - funkcje w chmurze

Google Cloud - funkcje chmury
Google Cloud - funkcje chmury
Google Cloud - funkcje chmury
Google Cloud - funkcje chmury

Cloud Functions to bezserwerowe środowisko do tworzenia i łączenia usług w chmurze. Wyzwalaczem dla tej funkcji jest temat PubSup utworzony w kroku 1.;; Ta funkcja zostanie uruchomiona, gdy nowa wartość zostanie zapisana w PubSup i zapisze ją w Cloud DataStore z rodzajem „SoundValue”

Krok 7: Google Cloud – Cloud DataStore

Google Cloud Datastore to baza danych dokumentów NoSQL stworzona z myślą o automatycznym skalowaniu, wysokiej wydajności i łatwości tworzenia aplikacji. Chociaż interfejs Cloud Datastore ma wiele takich samych funkcji jak tradycyjne bazy danych, jako baza danych NoSQL różni się od nich sposobem, w jaki opisuje relacje między obiektami danych. Nie ma potrzeby żadnej konfiguracji, ponieważ gdy Cloud Functions zapisze wartości czujnika do DataStore, dane zostaną dodane do DataStore

Krok 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

Pobieramy próbkę 10 min z normalnej rury i 10 min z zablokowanej rury z różnicą dokładnie 1 godziny między 2 iteracjami. Po pobraniu danych DataStore i dokonaj manipulacji, aby dodać klasyfikację dla każdego wiersza. Teraz mamy 2 pliki csv, po jednym dla każdej kategorii. Najlepszym rozwiązaniem jest przesyłanie plików CSV z danymi najpierw do Cloud Storage. Na poniższym ekranie tworzymy nowy zasobnik i przesyłamy dwa pliki CSV Ponieważ ten zasobnik będzie używany tylko do analizy, nie trzeba wybierać zasobnika wieloregionalnego Następnie utwórz nowy zbiór danych i nową tabelę w BigQuery i prześlij dwa pliki CSV z zasobnika do nowy stół

Krok 9: Google Cloud - Studio danych

Google Cloud – Studio danych
Google Cloud – Studio danych
Google Cloud – Studio danych
Google Cloud – Studio danych
Google Cloud – Studio danych
Google Cloud – Studio danych

Następnie używamy Data Studio do wyciągnięcia pewnych wniosków. Studio danych odczyta dane z tabeli BigQuery. Z wykresów widać różnicę między 2 kategoriami pod względem liczby telemetrii i sumy wartości na minutę. W oparciu o te spostrzeżenia możemy zaprojektować prosty model, rura jest uważana za zablokowana, jeśli w ciągu 3 kolejnych minut liczba wartości telemetrii, które są wyższe niż próg szumu (400) przekracza 350 telemetrii. aw ciągu 3 kolejnych minut liczba telemetrii, która jest wyższa niż próg iskry (720), wynosi więcej niż 10 telemetrii.

Krok 10: Faza przewidywania

Faza przewidywania
Faza przewidywania

Odnosimy się do odczytu, gdy przekracza pewną wartość (THRESHOLD_VALUE), która została ustawiona na 350, która filtruje hałas i niższe prędkości przepływu wody w rurze, aby nie był uważany za odczyt

Analiza danych wykazała, że w trybie otwartym liczba odczytów jest mniejsza niż 100, ale w trybie zatykania wartości są znacznie wyższe (osiągnęły 900 na minutę), ale w rzadkich przypadkach były również mniejsze niż 100. Jednak te przypadki nie są konsekwentnie powtarzane, a przez trzy kolejne minuty, całkowita liczba odczytów zawsze przekraczała 350. Mając tryb otwarty w tych samych trzech minutach sumuje się mniej niż 300, moglibyśmy śmiało sformułować tę zasadę: Reguła nr 1 Przez trzy minuty surowe, jeśli suma odczytów > 350, wtedy wykryto zatkanie. Stwierdziliśmy, że maksymalna wartość osiągnięta w trybie otwartym nie przekracza pewnej wartości (SPARK_VALUE), która wynosi 770, więc dodaliśmy następującą regułę: Reguła #2 Jeśli wartość odczytu > 350, najczęściej wykrywane jest zatkanie.

Połączenie obu reguł dało nam łatwy sposób na zaimplementowanie logiki wykrywania, jak pokazano. Zauważ, że poniższy kod został wdrożony na Arduino, który następnie ocenia otrzymane telemetrie w oparciu o nasz model i wysyła do Raspberry, jeśli rura jest zatkana lub otwarta.

Krok 11: Kod

Cały kod dla Arduino, Raspberry i funkcji chmury można znaleźć na Github.

Więcej informacji znajdziesz pod tym linkiem

Zalecana: