Spisu treści:

System alarmowy wykrywania ruchu: 11 kroków (ze zdjęciami)
System alarmowy wykrywania ruchu: 11 kroków (ze zdjęciami)

Wideo: System alarmowy wykrywania ruchu: 11 kroków (ze zdjęciami)

Wideo: System alarmowy wykrywania ruchu: 11 kroków (ze zdjęciami)
Wideo: 11 ustawień w iPhonie, które POWINIENEŚ OD RAZU ZMIENIĆ 📲 2024, Lipiec
Anonim
System alarmowy wykrywania ruchu
System alarmowy wykrywania ruchu

Notatka! Bloki reaktywne nie są już dostępne do pobrania. Podstawowa kamera USB może służyć do wykrywania ruchu w pomieszczeniu. W kolejnych krokach pokażemy, jak za pomocą Reactive Blocks zaprogramować gotową do uruchomienia aplikację Java, która wysyła SMS lub Email po wykryciu ruchu. Dzięki Reative Blocks tworzysz aplikacje Java SE, dzięki czemu aplikację alarmową można wdrożyć na dowolnej maszynie z Java SE i podłączoną lub zintegrowaną kamerą. Aplikacja jest łatwa do wdrożenia na Pi, ponieważ wersja Raspbian ma wstępnie zainstalowaną Oracle Java..

Potrzebujesz:

  1. Raspberry Pi Model B+ z Raspbian OS
  2. Standardowa kamera USB
  3. kabel Ethernet
  4. Ekran i klawiatura dla Pi
  5. Komputer z systemem Windows lub MAC z JDK
  6. Notatka! Bloki reaktywne nie są już dostępne do pobrania. Do zaprogramowania aplikacji będziesz potrzebować Reactive Blocks, wtyczki Eclipse.

Ta aplikacja alarmowa jest jednym z kilku modyfikowalnych przykładowych systemów, które są dostępne po zainstalowaniu bloków reaktywnych. Aplikacja jest gotowa do użycia po wyjęciu z pudełka i nie potrzebujesz żadnych umiejętności programowania w języku Java, aby ukończyć samouczek. Aby tworzyć własne aplikacje i bloki konstrukcyjne Reactive Blocks, musisz być biegłym programistą Java. Podczas budowania bardziej złożonych aplikacji z kilkoma czujnikami i siłownikami, Reactive Blocks ułatwia uzyskanie właściwej logiki i przepływu danych. Reaktywne bloki są bezpłatne dla projektów open source.

Krok 1: Zainstaluj reaktywne bloki

Reaktywne bloki zostały wycofane

Krok 2: Pobierz aplikację z bibliotek

Pobierz aplikację z bibliotek
Pobierz aplikację z bibliotek

Upewnij się, że otworzyłeś perspektywę Reaktywnych bloków i że jesteś w widoku Bloki. Z widoku Bloki wybierz przycisk importu i wybierz Aplikacje referencyjne. Wybierz projekt Detekcja ruchu. W tym momencie zostaniesz poproszony o zarejestrowanie się za pomocą identyfikatora Google. Zapewni to natychmiastowy dostęp do bibliotek bloków konstrukcyjnych oraz modyfikowalnych systemów i samouczków.

Pobrany projekt Motion Detection zawiera trzy aplikacje: Alarm System SMS, Alarm System Email oraz testową aplikację Test motion detection. W tym samouczku przeprowadzimy Cię przez SMS System Alarmowy. Jeśli wolisz wysyłać e-mail, możesz wykonać te same kroki z e-mailem systemu alarmowego

Krok 3: Aplikacja na najwyższym poziomie

Aplikacja na najwyższym poziomie
Aplikacja na najwyższym poziomie

Ten krok zawiera wyjaśnienie aplikacji. Pierwsze zdjęcie przedstawia schemat, jak wygląda kompletna aplikacja na najwyższym poziomie. Składa się z 7 cegiełek; 5 standardowych bloków konstrukcyjnych z bibliotek i 2 niestandardowe bloki, które zostały wykonane dla tej aplikacji.

Standardowe bloki z biblioteki IoT to:

  • Grabber, pobiera obrazy z kamery USB
  • Wykrywanie ruchu, wykonuje rzeczywiste wykrywanie obrazu
  • Zegar okresowy, rozpoczyna się od dokładnych znaczników czasu i wysyła sygnał na pinezkę w każdym okresie.
  • Buffer Eager, automatycznie wypycha pierwszy element z kolejki. Bufor zapewnia, że tylko jedna wiadomość jest wysyłana do bloku SMS Send, ponieważ może on przetwarzać tylko jedną wiadomość na raz.
  • SMS Send Buffered - wysyła SMS-y za pośrednictwem usługi Twilio. Elementy do wysłania są buforowane, aby zapewnić wysyłanie tylko jednej wiadomości na raz.
  • Limiter, aby uniknąć zbyt wielu SMS-ów po wykryciu intruza.
  • Czytaj plik właściwości Java, odczytuje dane konfiguracyjne z pliku wejściowego
  • Zobacz, wyświetla obraz na ekranie.

Blok Timera okresowego działa jako silnik systemowy. Okresowo będzie wysyłał tik, który wysyła sygnał do bloku Grabbera za pomocą pinu chwytającego. Blok Grabbera wykorzystuje Open Intelligent Multimedia Analysis for Java, OpenIMAJ. Po zainicjowaniu bloku uruchamiany jest osobny wątek, który odczytuje dane z kamery. Wątek nasłuchuje kolejki poleceń. Gdy blok otrzyma polecenie za pomocą szpilki, zrobi jedno zdjęcie i dostarczy je na szpilkę obrazu.

Obraz jest następnie przekazywany do bloku Motion Detection, który dokonuje faktycznego wykrycia obrazu. Blok wykrywania ruchu również używa OpenIMAJ. Metoda w tym bloku porównuje dwa obrazy i oznacza zmiany w obrazie po wykryciu ruchu. Metoda bardzo obciąża procesor i musi być uruchamiana w osobnym wątku. Po wykryciu obrazu jest to sygnalizowane na pinie motionDetected, co spowoduje wygenerowanie wiadomości SMS.

Jasnoniebieskie pola to wszystkie metody Java stworzone specjalnie dla tej aplikacji. Kliknięcie bloku metody otwiera edytor Java.

Po kliknięciu bloku konstrukcyjnego można zobaczyć szczegóły logiki wewnątrz bloku. Jeśli na przykład zajrzysz do bloku ReadConfig, zobaczysz, że jest on tworzony przez połączenie jednego istniejącego bloku konstrukcyjnego i 4 metod Java.

Limiter nakłada limit na ilość generowanych wiadomości. Zwróć uwagę na literę P w prawym rogu bloku konstrukcyjnego. Wskazuje, że możesz ustawić miniterwał, przez jaki aplikacja musi czekać, zanim wyśle nową wiadomość SMS. Domyślne ustawienie to 300000ms, czyli 5 minut. Aby zmienić wartość. Kliknij prawym przyciskiem myszy blok i wybierz parametry i rodzaje.

Krok 4: Włącz SMS-y

Włącz SMS-y
Włącz SMS-y

Ta aplikacja alarmowa wykorzystuje Twilio jako usługę SMS. Aby włączyć SMS należy edytować plik config/alarm-system.properties. Możesz go znaleźć w widoku eksploratora pakietów pod br.ref.motiondetection, patrz zdjęcie.

Ten plik jest tym samym plikiem, który jest używany w wiadomości e-mail systemu alarmowego. Jeśli wolisz otrzymywać powiadomienia e-mail, użyj tej aplikacji i edytuj plik za pomocą swoich danych e-mail.

Jeśli nie masz usługi Twilio, możesz zmodyfikować aplikację tak, aby korzystała z własnej usługi SMS. Posiadamy również gotowy do użycia moduł konstrukcyjny dla usługi Clickatell. Możesz też dołączyć modem do wysyłania SMS-ów.

Możesz znaleźć elementy konstrukcyjne dla poczty SMTP, AirVantage Cloud, IBM Bluemix i Xively, aby wymienić tylko kilka.

Pamiętaj, że aby wprowadzić zmiany, musisz najpierw stworzyć własny projekt. Następnie skopiuj/zduplikuj aplikację do swojego nowo utworzonego projektu. Możesz zobaczyć, jak to się robi tutaj:

Nie wahaj się ze mną skontaktować, jeśli potrzebujesz pomocy

Krok 5: Zbuduj i uruchom aplikację na swoim laptopie

Zbuduj i uruchom aplikację na swoim laptopie
Zbuduj i uruchom aplikację na swoim laptopie

Musisz skompilować aplikację przed jej uruchomieniem i wdrożyć ją na Raspberry Pi. Odbywa się to za pomocą generatora kodu Reactive Blocks, który tworzy kompletny projekt Java ze struktury bloków konstrukcyjnych. Kod reprezentujący diagramy to kod synchronizacji, który obsługuje zdarzenia we właściwej kolejności i we właściwym czasie i zazwyczaj stanowi ponad 60% wierszy kodu w programie. Ponieważ bloki konstrukcyjne są precyzyjnymi strukturami matematycznymi, generator może przekształcić tę logikę w bardzo wydajny kod. Jest to bardzo fajna funkcja Reactive Blocks, ponieważ ręczne pisanie takiego kodu jest żmudne i trudne. Aby wygenerować kod, wystarczy:

Kliknij prawym przyciskiem myszy projekt Alarm System SMS w zakładce Projekty i wybierz standardową edycję Java. Upewnij się, że informacje o logowaniu to INFO. Wygenerowany projekt otworzy się automatycznie na karcie Eksplorator pakietów. Zobacz rysunek, aby uzyskać szczegółowe informacje.

Krok 6: Uruchom aplikację na swoim komputerze

Uruchom aplikację na swoim komputerze
Uruchom aplikację na swoim komputerze
Uruchom aplikację na swoim komputerze
Uruchom aplikację na swoim komputerze

Teraz możesz wykonać wygenerowany projekt. W widoku Eksploratora pakietów pod wygenerowanym projektem _exe kliknij prawym przyciskiem myszy AlarmSystemSMS.launch i wybierz RunAs, a następnie wybierz AlarmSystemSMS.

Obserwuj okno na ekranie i widok konsoli. Powinno wyglądać jak na drugim zdjęciu.

Zakończ aplikację, zamykając okno kamery.

W przypadku aplikacji do wysyłania poczty e-mail: Jeśli pojawi się błąd uwierzytelniania, upewnij się, że wysyłanie SMTP jest dozwolone dla Twojej poczty e-mail. Zobacz rozwiązywanie problemów na dole samouczka e-mail:

Krok 7: Eksportuj jako uruchamialny plik JAR

Eksportuj jako uruchamialny plik JAR
Eksportuj jako uruchamialny plik JAR

Jeśli chcesz uruchomić aplikację na Raspberry Pi, następnym krokiem jest wyeksportowanie wygenerowanego projektu do uruchamialnego pliku JAR. Aby to zrobić, kliknij prawym przyciskiem myszy projekt wykonywalny w widoku eksploratora pakietów i wybierz eksport. Następnie wybierz opcję Runnable JAR i naciśnij Dalej. W kolejnym oknie wybierz odpowiednią konfigurację uruchamiania i miejsce docelowe eksportu. W miejscu docelowym eksportu użyj przycisku przeglądania, aby umieścić plik.jar w miejscu, w którym można go znaleźć.

Krok 8: Przygotuj swoje Raspberry Pi

  • Przygotuj kartę SD z Raspbianem (testowaliśmy przy użyciu NOOBS)
  • Włóż kartę SD do Raspberry pi
  • Podłącz aparat
  • Połącz sieć
  • Podłącz ekran i klawiaturę do Pi
  • Uruchom Raspberry pi, podłączając micro USB do zasilania.
  • Znajdź adres IP swojego Raspberry Pi. Po uruchomieniu Twoje Raspberry Pi zgłosi coś w stylu „Mój adres IP to 10.10. 15.107”
  • Testowaliśmy z Raspbianem (domyślny login: pi, hasło: raspberry), który domyślnie zawiera Javę.

Krok 9: Wdróż aplikację na Raspberry Pi

Aby skopiować uruchamialny plik jar z komputera na Rapsberry Pi, wykonaj następujące kroki:

  • Otwórz terminal na swoim komputerze
  • Przejdź do katalogu, w którym znajduje się wygenerowany plik JAR
  • Wpisz scp alarmsystem.jar [email protected]:~/
  • Zostaniesz poproszony o podanie kombinacji hasła. "pi" to domyślna nazwa użytkownika, a "raspberry" domyślne hasło
  • Przejdź do katalogu, w którym znajduje się plik konfiguracyjny alarm_system.properties. Najłatwiej jest mi ręcznie skopiować plik z edytora Eclipse do tego samego katalogu, co plik jar.
  • Wpisz scp motiondetection.ini [email protected]:~/

10.10.15.107 to adres IP, zastąp go adresem IP twojego Raspberry Pi.

- Oczywiście możesz również użyć karty pamięci, aby skopiować go do Pi

Krok 10: Uruchom aplikację na swoim Raspberry Pi

Jesteś teraz gotowy do uruchomienia aplikacji.

  • Zaloguj się do Raspberry Pi bezpośrednio lub zdalnie przez ssh.
  • Utwórz nowy katalog konfiguracyjny: mkdir config
  • Sprawdź, czy uruchamialny plik JAR i.ini zostały skopiowane do Raspberry Pi
  • Przenieś plik.ini do katalogu config: mv alarm_system.properties config/
  • Wpisz sudo java -jar alarmsystem.jar
  • Obejrzyj wyjście na konsoli
  • Zakończ z ^C

Krok 11: Zmodyfikuj swoją aplikację

Możesz teraz dowolnie modyfikować i rozszerzać swoją aplikację. Jeśli chcesz rozszerzyć importowany system, taki jak ten system alarmowy, musisz najpierw stworzyć własny projekt i powielić system alarmowy do własnego projektu.

Pamiętaj, że aby wprowadzić zmiany, musisz najpierw stworzyć własny projekt. Następnie skopiuj/zduplikuj aplikację do swojego nowo utworzonego projektu. Możesz zobaczyć, jak to się robi tutaj:

Postępuj zgodnie ze ścieżką samouczka IoT, aby uzyskać szczegółowe opisy tworzenia lub modyfikowania określonych aplikacji Reactive Blocks.

Zalecana: