Spisu treści:

Laserowy system bezpieczeństwa Raspberry Pi: 13 kroków (ze zdjęciami)
Laserowy system bezpieczeństwa Raspberry Pi: 13 kroków (ze zdjęciami)

Wideo: Laserowy system bezpieczeństwa Raspberry Pi: 13 kroków (ze zdjęciami)

Wideo: Laserowy system bezpieczeństwa Raspberry Pi: 13 kroków (ze zdjęciami)
Wideo: Jak diagnozować i naprawiać sprzęt elektroniczny - poradnik na przykładzie dwóch Raspberry Pi 2024, Lipiec
Anonim
Image
Image
Obraz
Obraz

Dzięki za sprawdzenie mojego instruktażu. Pod koniec tej instrukcji zbudujesz laserowy system tripwire raspberry pi z funkcją powiadamiania e-mailem, która jest pokazana na filmie.

Aby ukończyć tę instrukcję, musisz znać ogólne obwody i lutowanie, wiedzieć, jak korzystać z płytki stykowej i czuć się komfortowo podczas korzystania z terminala na pi. Pomocne będzie również posiadanie doświadczenia w pytonie.

Ten projekt składa się z trzech głównych systemów. Raspberry Pi, laserowy obwód tripwire i komputer obserwacyjny. Naszym celem jest wykorzystanie raspberry pi do wykrycia zmiany napięcia w obwodzie lasera tripwire, a następnie zaalarmowanie komputera obserwacyjnego w formie wiadomości e-mail i strumienia wideo.

Zaczynajmy.

Krok 1: Zaokrąglij wymagane komponenty

Do wykonania tego projektu potrzebne będą następujące elementy.

  1. Przynajmniej jeden działający Raspberry Pi. W tej wersji użyłem modelu Pi w stylu B z raspbian wheezy. Jestem pewien, że ten samouczek będzie działał dobrze, jeśli używasz raspbian jessie.
  2. Zewnętrzne źródło zasilania Raspberry Pi. Po podłączeniu tego wszystkiego będziemy pobierać znaczną ilość prądu. Spędziłem dużo czasu na diagnozowaniu kiepskiego zasilacza jako źródła moich problemów podczas mojej pierwszej budowy. Upewnij się, że masz mocną moc zdolną do źródła co najmniej 2 amperów.
  3. Tani wskaźnik laserowy. Mój znalazłem obok kasy na stacji benzynowej. Jeśli potrzebujesz dokładnego lasera, możesz go znaleźć tutaj. Na etykiecie podano długość fali 630-680 nm. Niezależnie od tego, który laser otrzymasz, określi niektóre inne komponenty w kompilacji. Upewnij się więc, że etykieta identyfikuje długość fali.
  4. Kamera internetowa w stylu USB. Ta kamera internetowa ma regulowaną nóżkę, która pozwala ładnie ustawić kamerę. Okazało się, że kabel USB dostarczony z kamerą internetową był za krótki dla mojej aplikacji, więc znalazłem rozszerzenie w cenie mono.
  5. Jakiś zestaw do wyłamywania dla raspberry pi, dzięki czemu możesz mieć łatwy dostęp do pinów procesora.

    Obraz
    Obraz
    Obraz
    Obraz
  6. Deska do krojenia chleba.
  7. Lutownica.
  8. Przewody połączeniowe do płytki stykowej.
  9. Komponenty obwodu. Pomnóż przez liczbę przewodów, które chcesz.

    • Jedna działająca dioda led
    • Jeden rezystor 100 omów
    • Jeden rezystor 1k
    • Jeden rezystor 10k
    • Jeden rezystor 200k Naprawdę wystarczy każdy duży rezystor. Przetestowałem go z rezystorem 1M i działał dobrze. FYI 10 tys. było za małe.
    • Jeden tranzystor PNP PN:2N4403-APCT-ND
    • Jedna fotodioda (dopasuj ją do długości fali lasera) PN:PDB-C142-ND

Dołączę pliki kicad do płytki drukowanej, ale nie omówię produkcji płytki w tej instrukcji.

W trakcie tego projektu znalazłem przydatne następujące opcjonalne narzędzia:

  1. Instalacja synergii na Raspberry Pi. Jeśli nie jesteś zaznajomiony, to oprogramowanie pozwoli ci kontrolować mysz i klawiaturę raspberry pi za pomocą innego komputera. To miłe, jeśli jesteś podobny do mnie i wygodniej jest na innym komputerze. Jest to również oprogramowanie, które każdy powinien mieć.
  2. Koncentrator USB. Dla każdej kamery internetowej, której chcesz użyć, potrzebujesz jednego portu.
  3. Miernik napięcia lub oscyloskop, jeśli go masz.
  4. Używanie MobaXterm do kontrolowania raspberry pi i manipulowania plikami przez ssh. To musi mieć dla każdego, kto wychowuje się na oknach. Zapoznaj się z tym samouczkiem, aby przygotować się do korzystania z niego.

Krok 2: Pobierz Pi i działaj

  • Obraz
    Obraz

    Pi z dołączonymi minimalnymi komponentami

  • Zanim będziemy mogli strzelać jakimikolwiek laserami, musimy stworzyć kilka warstw oprogramowania. Aby mieć największe szanse na sukces, dobrą praktyką jest rozpoczęcie z czystym kontem. Aby to zrobić, odłącz wszystkie niepotrzebne elementy od Pi. Zmniejszy to szanse na zakłócenia z podłączonego urządzenia.

    Następnie upewnij się, że Twoje Raspberry Pi działa z najnowszym oprogramowaniem, wpisując w terminalu następujące informacje

    aktualizacja sudo apt-get

    Z malinowym pi na bieżąco nadszedł czas na kolejny krok

    Krok 3: Utwórz obwód wykrywania lasera

    Umieść elementy na płytce stykowej, jak pokazano. Zasil płytkę stykową za pomocą wyjścia 5 V pi lub zasilacza stołowego. Na rysunku 1 zasilanie 5 V jest podłączone do dodatniej szyny płytki stykowej w lewym dolnym rogu obrazu, a uziemienie w lewym górnym rogu. Ten obwód wykorzystuje fotodiodę jako przełącznik wyzwalający tranzystor. Tranzystor przetwarza niewielką zmianę napięcia w fotodiodzie na nieco cyfrowy sygnał, który może odczytać pi. We wszystkich kolejnych krokach punkt między 100 omami a diodą sygnalizacyjną będzie w miejscu, w którym próbkujemy obwód za pomocą pi.

    • Obraz
      Obraz

      Ryc. 1: Górny układ płytki drukowanej obwodu

    • Obraz
      Obraz

      Ryc. 2: Widok alternatywny układu płytki stykowej obwodu

    Jeśli chcesz uzyskać bardziej przejrzysty wygląd, załączyłem pliki kicad dla tablicy, która jest pokazana poniżej.

    • Obraz
      Obraz

      Ryc. 3: Widok z góry płyty czujnika

    • Obraz
      Obraz

      Rys 4: Płytka czujnika ISO

    • Krok 4: Zmodyfikuj laser do zasilania zewnętrznego

      W kolejnych krokach zbudujesz zespół wskaźnika laserowego.

      - Zdemontuj wskaźnik laserowy. Zwróć przy tym uwagę na orientację zacisków baterii względem emitera lasera. - Następnie odlutuj sprężynę przyłącza baterii i przycisk chwilowy od lasera. - Przylutuj kawałek drutu między zaciskami, w których znajdował się przycisk. Teraz, gdy zasilanie zostanie dostarczone do lasera, włączy się automatycznie. - Teraz przylutuj dodatnie i ujemne przewody do lasera. Jeśli używasz tego samego lasera z listy części, możesz użyć poniższego obrazu, aby zobaczyć punkty lutowania. Jeśli nie, może być konieczne samodzielne znalezienie punktów lutowania. Możesz użyć orientacji baterii jako wskazówki dla dodatniego lub ujemnego przewodu. Aby znaleźć ostatni punkt lutowniczy, możesz użyć zasilacza 5 V i zbadać obwód za pomocą dwóch przewodów pomiarowych. Po stworzeniu prawidłowego obwodu znalazłeś punkt lutowania, a laser się zaświeci.

      • Obraz
        Obraz

        Pomarańczowy przewód zastępuje chwilowy przycisk

      • Obraz
        Obraz

        Pokazywanie pozytywnych i negatywnych leadów

      - Ostatnim krokiem jest wykonanie kierunkowego słupka montażowego dla lasera, aby można go było łatwo dostosować do celowania w gniazdo lasera. Odkryłem, że większość zestawów Lego Bionicle jest doskonałym źródłem tanich przegubów kulowych. Przyklej jeden kawałek przegubu kulowego do wskaźnika laserowego za pomocą super kleju. Teraz możesz zamontować gniazdo na dowolnej powierzchni i zatrzasnąć laser.

      • Obraz
        Obraz

        Przegub kulowy

      • Obraz
        Obraz

        Złącze kielichowe

      • Obraz
        Obraz

        Zmontowana kula i gniazdo

      • Krok 5: Włącz laser i przetestuj obwód wykrywania

        Podłącz laser do płytki stykowej. Dodatni będzie musiał być podłączony do 5V i uziemić przewód ujemny. Jeśli laser włącza się świetnie, jeśli nie, sprawdź multimetrem, czy masz prawidłowe napięcie. Jeśli to nadal nie działa, spróbuj zamienić przewody na wypadek, gdyby podłączyłeś je od tyłu. Jeśli nadal nie działa, być może nie przylutowałeś do odpowiednich padów, wróć do ostatniego kroku.

        • Obraz
          Obraz

          Działający laser ze zdrową wiązką

        Po uzyskaniu wiązki laserowej nadszedł czas, aby przetestować obwód wykrywania. Skieruj laser na fotodiodę. Dioda powinna zgasnąć sygnalizując, że wiązka jest aktywna. Pomachaj ręką przez wiązkę, a dioda LED powinna zaświecić się, sygnalizując podróż.

        • Obraz
          Obraz

          Wiązka nie jest zepsuta, a dioda jest wyłączona

        • Obraz
          Obraz

          Intruz przerywa wiązkę powodując zaświecenie się diody

        • Krok 6: Podłącz kamerę internetową i przetestuj jej funkcjonalność

          Podłącz kamerę internetową do portu USB. Aby przesyłać strumieniowo wideo, musimy pobrać narzędzie mjpg-streamer. Oto świetny samouczek, jak to zrobić. Po prawidłowym zainstalowaniu mjpg-streamer. Rozpocznij przesyłanie strumieniowe wideo, wpisując w terminalu następujące polecenie.

          cd /gdzie zainstalowałeś mjpg-streamer/mjpg-streamer

          ./mjpg_streamer -i "./input_uvc.so -y /dev/video0" -o "./output_http.so -w./www -p 8081"

          To polecenie skonfiguruje strumień na porcie 8081 przy użyciu źródła video0. Jeśli chcesz użyć wielu kamer internetowych, wprowadź ponownie powyższe polecenie, ale zmień video0 na video1 i 8081 na 8082. W ten sposób przesyłałem strumieniowo do 3 kamer internetowych i pi nie było przeciążone.

          Sprawdź, czy połączenie działa, otwierając przeglądarkę na innym komputerze i wpisując adres ip-of-pi:8081 lub na pi możesz po prostu wpisać localhost:8081. Jeśli nie znasz swojego adresu IP pi, wprowadź następujące informacje w terminalu

          ifconfig

          Jeśli wszystko działa, powinieneś zobaczyć stronę główną mpg-streamer. Kliknij kartę strumienia, aby zobaczyć strumień z kamery internetowej. Poniżej zrzut ekranu interfejsu.

          • Obraz
            Obraz

            Przykładowe wyjście mjpg-streamer

          Robiąc ten samouczek po raz drugi, udało mi się uzyskać dostęp do strony głównej mjpg-streamer, ale nie widziałem strumienia. Aby to naprawić, przeczytałem ten post (link jest teraz uszkodzony), a konkretnie część o formacie pikseli YUYV, jeśli napotkasz pusty strumień, powinieneś go również sprawdzić.

          Krok 7: Przerwa

          Ok, więc w tym momencie powinniśmy mieć uruchomione i uruchomione malinowe pi. Nasz laser został zmodyfikowany do zasilania zewnętrznego. Nasz obwód wykrywania został skonstruowany i potwierdziłeś, że kiedy wiązka lasera uderza w fotodiodę, dioda LED gaśnie, a po przerwaniu wiązki dioda powinna się włączyć. Na koniec powinieneś mieć podłączoną kamerę internetową i funkcjonować strumieniowo.

          Teraz nadszedł czas, aby to wszystko złożyć. Zacznijmy od prostych prób wykrycia wyzwalania wiązki laserowej za pomocą oprogramowania.

          Podłącz obwód wykrywania do płytki stykowej, jak pokazano. Upewnij się, że podłączyłeś przewód sygnałowy czujnika do styku 25 w ramach przygotowań do następnego kroku. Rezystor obniżający nie jest opcjonalny. Miałem 10k leżące dookoła, ale każdy rezystor powinien wystarczyć.

          • Obraz
            Obraz

            Układ płytki prototypowej z PiCobler

          • Krok 8: Monitoruj laser za pomocą oprogramowania

            Napiszmy krótki program do nasłuchiwania sygnału laserowego i wyślij go do terminala. Kod możesz pobrać jako załącznik.

            Prawdopodobnie będziesz musiał zainstalować zależności dla tego skryptu. Python i moduł gpio. Aby je zainstalować, wejdź

            sudo apt-get zainstaluj python-rpi.gpio python3-rpi.gpio

            Po pomyślnej instalacji Pythona pobierz załączony skrypt Pythona o nazwie read_pin.py i uruchom

            cd /katalog, w którym umieściłeś plik/chmod 777 read_pin.py

            Polecenie chmod nada skryptowi uprawnienia do uruchomienia. Następnie sprawdź, czy wszystko jest w porządku i elegancko, biegając

            sudo python3 read_pin.py

            Jeśli wszystko pójdzie dobrze, powinieneś zobaczyć wyjście konsoli, jak pokazano poniżej. Aby wyjść ze skryptu Pythona, wejdź

            Ctrl+C

          • Obraz
            Obraz

            Prawidłowe wyjście konsoli (pokazane przy użyciu MobaXterm)

          Pomachaj ręką przed wiązką lasera, a na konsoli powinien pojawić się komunikat informujący o przerwaniu wiązki. Nie krępuj się pobawić skryptem, aby Twój system działał na różne sposoby.

          Krok 9: Utwórz stronę internetową, aby wyświetlić swój strumień

          Teraz musimy skonfigurować interfejs podglądu kamery internetowej. W tym kroku musisz zainstalować serwer WWW Apache. Istnieje wiele samouczków na temat konfigurowania jednego. Ale oto krótka lista z minimalną konfiguracją.

          sudo apt-get zainstaluj apache2

          po zainstalowaniu powinieneś być w stanie pisać w przeglądarce na raspberry pi

          Lokalny Gospodarz

          Powinieneś zobaczyć stronę powitalną z Apache. Jeśli konfigurujesz serwer WWW po raz pierwszy, prawdopodobnie będziesz chciał skonfigurować swoje pi tak, aby miało statyczny adres IP, aby router zawsze przypisywał właściwy adres IP, jeśli wykonasz cykl zasilania. Jeśli chcesz zobaczyć swój system bezpieczeństwa z innej lokalizacji, musisz skonfigurować przekierowanie portów na routerze. Minęło trochę czasu, ale myślę też, że będziesz musiał przekierować wszystkie porty, które mają również kamerę internetową. Istnieje wiele samouczków, które obejmują te procedury. Pamiętaj, że każdy może zobaczyć Twoją kamerę internetową, jeśli zdecydujesz się skonfigurować przekierowanie portów na routerze.

          Załączone pliki to przykładowe strony internetowe, których możesz użyć do skonfigurowania swojej witryny. Będziesz musiał zmienić rozszerzenie pliku w pliku html, ponieważ nie pozwoliliby mi go przesłać. Następnie umieść pliki w folderze www wywołanym w pliku konfiguracyjnym Apache. Domyślna lokalizacja to

          cd /var/www

          Jeśli chcesz zmienić lokalizację, w której serwer WWW szuka twoich plików html, możesz edytować plik z włączonymi witrynami, wpisując

          sudo nano /etc/apache2/sites-enabled/000-default

          Zmień dowolne wystąpienie /var/www/ na żądaną lokalizację. Umieściłem swój w /home/pi/Desktop/www/

          Gdy masz już pliki html w folderze sieciowym, wpisz localhost w przeglądarce lub adres ip pi z innego komputera. Powinieneś zobaczyć coś takiego.

          • Obraz
            Obraz

            Zrzut ekranu załączonych plików w działaniu

          SŁODKO!

          Krok 10: Skonfiguruj alerty e-mail

          Dzieją się dobre rzeczy! Wykorzystajmy szczęście, próbując wysłać alert e-mailowy z pi na wcześniej zdefiniowany adres e-mail. Załączony skrypt Pythona utworzy wiadomość e-mail, którą chcesz wysłać, połączy się z dostawcą poczty e-mail, takim jak gmail, i wyśle wiadomość e-mail za pomocą dostawcy poczty e-mail. Osiąga się to za pomocą pakietu smtp Pythona. Sugeruję, abyś zrobił fałszywy adres e-mail tylko dla twojego systemu bezpieczeństwa, ponieważ będziemy musieli zmniejszyć bezpieczeństwo twojego konta gmail, aby pakiet smtp działał.

          Będziesz musiał zmodyfikować skrypt w kilku miejscach, aby uzyskać pomyślną transmisję. Jest mocno komentowany i dla Twojej wygody wygeneruje wiele danych wyjściowych na terminalu.

          Rzeczy, które będziesz musiał zmienić, będą

          • twój_ip = "192.168.0.177"
          • twój_ip_opcjonalny_port = ":8080"
          • port_do_kamery = ":8081"
          • send_email_username = "Twoja nazwa użytkownika poczty e-mail"
          • send_email_password = "twoje hasło"

          twój_ip_opcjonalny_port najprawdopodobniej będzie pusty, chyba że twój serwer Apache działa na porcie innym niż domyślny 80. Miałem już serwer działający na 80, więc ustawiłem moje pi na 8080. Port_to_camera będzie portem, który określisz dla swojej kamery uruchomić za pomocą streamera mjpeg.

          Po zmianie tych zmiennych na początku skryptu uruchom program, wpisując w terminalu następujące elementy.

          cd /folder, w którym umieściłeś skrypt/

          sudo python3 send_mail.py

          Jeśli gwiazdki są prawidłowo wyrównane i wszystkie zmienne są poprawne, powinieneś otrzymać wiadomość e-mail podobną do poniższej.

          • Obraz
            Obraz

            Zrzut ekranu załączonych plików w działaniu

          Jest wiele miejsc, w których ten skrypt może zawieść. Nie denerwuj się, jeśli to nie zadziała za pierwszym razem. Użyj punktów debugowania w skrypcie, aby zawęzić obszary problemowe, a następnie skup się na jednym problemie na raz.

          Krok 11: Uruchom skrypt e-mail po wyzwoleniu lasera

          Teraz, gdy pi jest w stanie wysyłać e-maile, zautomatyzujmy to, aby za każdym razem, gdy laser zostanie wyzwolony, otrzymamy wiadomość e-mail. Pobierz załączony plik, który jest zmodyfikowaną wersją read_pin.py, która zawiera nową funkcję uruchamiania skryptu pocztowego. Główna dodatkowa linia jest następująca

          sm_pid = os.spawnlp(os. P_NOWAIT, "/usr/bin/python3", "python3", "/home/pi/Desktop/security/send_mail.py")

          Ta linia uruchomi skrypt wysyłania poczty równolegle ze skryptem wykrywania laserowego. Jest to pożądane, ponieważ wykonanie skryptu wysyłania poczty zajmuje kilka sekund i blokuje działanie skryptu wykrywania laserowego do momentu wysłania wiadomości e-mail. Nie stanowi to problemu dla systemu z jednym aparatem, ale jeśli masz wiele kamer, chciałbyś wykryć laserową podróż w aparacie 1, nawet jeśli aparat 2 wyzwolił zdarzenie e-mail. Zmienna sm_pid będzie zawierać pid procesu uruchomionego przez to polecenie. Sprawdzamy ten identyfikator, jeśli wyzwalacz wiadomości e-mail zostanie wywołany ponownie, jeśli istnieje, wiadomość e-mail nadal jest wysyłana, więc ignorujemy zdarzenie. Jeśli nie istnieje, prawdopodobnie jest to nowe wydarzenie i wysyłana jest wiadomość e-mail.

          Przetestuj wszystko działa, uruchamiając

          cd /katalog, w którym umieściłeś plik/

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Kiedy przerwiesz wiązkę lasera, powinieneś otrzymać e-mail z migawką zrobioną z kamery internetowej.

          Krok 12: Utwórz skrypt główny, aby zainicjować system

          W tym momencie projekt jest w większości gotowy. Ostatnim krokiem jest uproszczenie uruchamiania systemu za pomocą ostatniego skryptu. Uruchomi wszystkie podprogramy i skonfiguruje kamerę za pomocą jednego skryptu. Załączony plik można uruchomić podczas uruchamiania, edytując plik /etc/rc.local. Musisz zmienić rozszerzenie pliku i być może trzeba będzie edytować skrypt, aby zawierał odpowiednie ścieżki, jeśli umieścisz skrypty w innej lokalizacji.

          Krok 13: Wniosek

          Cóż, to jest to. Mam nadzieję, że podobała Ci się ta instrukcja! Daj znać w komentarzach, jeśli masz jakieś pytania lub potrzebujesz bardziej szczegółowych informacji w dowolnym obszarze. Nie przestawaj majstrować!

          • Obraz
            Obraz

    Zalecana: