- Instalowanie i konfigurowanie „ruchu” w celu uzyskania źródła wideo:
- Konfiguracja kolby w Raspberry Pi do sterowania robotem za pośrednictwem strony internetowej:
- Kod HTML strony internetowej:
- Robot nadzoru
- Schemat obwodu i konfiguracja:
- Jak działać:
W tej sesji zrób to sam budujemy sterowany przez Internet zautomatyzowany samochód do monitoringu przy użyciu raspberry pi i kamery internetowej. Może to być przydatne i niedrogie narzędzie bezpieczeństwa i szpiegowskie, które ma wiele konfigurowalnych opcji i może zostać zbudowane w ciągu kilku godzin. W tym projekcie IoT do budowy tego zrobotyzowanego samochodu używamy głównie Raspberry Pi, kamery internetowej USB i dwóch silników prądu stałego z podwoziem robota.
Ma zamontowaną nad nim kamerę internetową, dzięki której otrzymamy obraz wideo na żywo, a co ciekawe, możemy sterować i przenosić tego robota z poziomu przeglądarki internetowej przez internet. Ponieważ można nim sterować za pomocą strony internetowej, oznacza to, że można nim również sterować za pomocą strony internetowej w telefonie komórkowym. Zbudowaliśmy stronę internetową w HTML, która zawiera linki Left, Right, Forward, Backward, po kliknięciu których możemy przesunąć robota w dowolnym kierunku. Tutaj użyliśmy „Motion” do pobierania obrazu wideo na żywo z kamery USB i użyliśmy „Flask” do wysyłania poleceń ze strony internetowej do Raspberry Pi przy użyciu Pythonaaby przesunąć robota, co szczegółowo wyjaśniono w dalszej części tego samouczka. Mamy zainstalowany system operacyjny Raspbian Jessie na naszej płycie Raspberry Pi. Możesz sprawdzić ten artykuł, aby zainstalować Raspbian OS i rozpocząć pracę z Raspberry Pi.
Instalowanie i konfigurowanie „ruchu” w celu uzyskania źródła wideo:
Motion (Surveillance Software) to darmowe oprogramowanie CCTV do wykrywania ruchu typu open source, opracowane dla systemu Linux. Wykrywa ruch i rozpoczyna nagrywanie go. Dzięki `` Motion '' zainstalowanemu w Raspberry Pi możesz w magiczny sposób zmienić Raspberry Pi w kamerę bezpieczeństwa. Służy do pobierania obrazu wideo na żywo, robienia filmów poklatkowych i robienia migawek w regularnych odstępach czasu. Nagrywa i zapisuje wideo za każdym razem, gdy wykryje ruch lub jakiekolwiek zakłócenie w obszarze widoku. Transmisję wideo na żywo można oglądać w przeglądarce internetowej, wprowadzając adres IP Pi wraz z portem.
Stworzyliśmy szczegółowy samouczek dotyczący używania ruchu z Raspberry Pi i kamerą USB, tutaj krótko wyjaśniamy jego instalację na Raspberry pi, aby nasz robot wysyłał strumieniowe transmisje wideo na żywo na stronę internetową.
Tutaj wystarczy uruchomić tylko kilka poleceń, aby rozpocząć pobieranie pierwszego źródła wideo przez sieć. Wcześniej sprawdź, czy Twój Raspberry Pi jest podłączony do Internetu za pomocą sieci LAN lub Wi-Fi, a następnie wykonaj poniższe czynności:
Krok 1: Najpierw uruchom poniższe polecenie, aby zaktualizować system operacyjny Raspbian na Raspberry Pi:
sudo apt-get update
Krok 2: Następnie zainstaluj bibliotekę ` ` Motion '' za pomocą poniższego polecenia:
sudo apt-get install motion
Krok 3: Teraz ustaw demona Motion na tak, edytując plik: / etc / default / motion, aby zawsze działał. Edytuj ten plik za pomocą edytora `` nano '' z `` sudo '', jak podano poniżej:
sudo nano / etc / default / motion
Następnie zapisz plik, naciskając „CTRL + X”, następnie „Y” i Enter.
Krok 4: Teraz musimy ustawić uprawnienia do katalogu docelowego (/ var / lib / motion /), w którym Motion zapisuje wszystkie nagrania wideo i pliki obrazów. Musimy ustawić „Motion” jako właściciela tego katalogu, wydając poniższe polecenie:
sudo chown motion: motion / var / lib / motion /
To uprawnienie jest konieczne, w przeciwnym razie podczas sprawdzania stanu usługi Motion pojawi się błąd.
Możesz sprawdzić stan usługi za pomocą tego polecenia: sudo service motion status
Krok 5: Teraz już prawie skończyliśmy, musimy tylko zmienić jedną opcję konfiguracji w pliku konfiguracyjnym Motion (/etc/motion/motion.conf ), która jest wyłączona stream_localhost. Musimy wyłączyć to lokalne przesyłanie strumieniowe przez hosta, w przeciwnym razie nie będziemy mogli uzyskać dostępu do źródła wideo w naszej sieci i będzie dostępne tylko z samego Raspberry Pi. Aby to zrobić, edytuj plik konfiguracji ruchu za pomocą edytora „nano” i wyłącz go, jak pokazano poniżej:
sudo nano /etc/motion/motion.conf
Teraz jesteśmy gotowi, aby uzyskać transmisję na żywo z kamery internetowej USB podłączonej do Pi. Po prostu uruchom (lub uruchom ponownie) usługę Motion za pomocą poniższego polecenia i otwórz adres IP swojego Raspberry Pi z portem 8081 w przeglądarce (np. 192.168.43.199:8081). W tym projekcie umieściliśmy ten adres IP w naszym kodzie HTML w tagu img src .
sudo /etc/init.d/motion restart
Zobaczysz transmisję na żywo z kamery internetowej. Tutaj użyliśmy niedrogiej kamery internetowej USB, która działała bezproblemowo z naszym Raspberry Pi, ale możesz również użyć dobrej jakości kamery dla lepszej rozdzielczości. Jak pokaże się w przeglądarce, możesz korzystać z dowolnego urządzenia, aby oglądać kanał, który obsługuje przeglądarkę internetową, taką jak telefon komórkowy, tablet itp.
W razie potrzeby spróbuj ponownie uruchomić Raspberry Pi jako krok rozwiązywania problemów:
sudo reboot
Chodzi o użycie Motion dla naszego robota monitorującego, poza tym ma kilka opcji konfiguracyjnych, które omówiliśmy już w naszym poprzednim samouczku.
Uwaga: jeśli jesteś modelem Raspberry Pi poniżej wersji 3, możesz potrzebować klucza Wi-Fi do bezprzewodowego połączenia Raspberry Pi z routerem.
Konfiguracja kolby w Raspberry Pi do sterowania robotem za pośrednictwem strony internetowej:
Tutaj stworzyliśmy serwer WWW za pomocą Flaska, który zapewnia sposób wysyłania poleceń ze strony internetowej do Raspberry Pi w celu sterowania robotem przez sieć. Flask pozwala nam uruchamiać nasze skrypty Pythona za pośrednictwem strony internetowej i możemy wysyłać i odbierać dane z Raspberry Pi do przeglądarki internetowej i odwrotnie. Flask to microframework dla Pythona. To narzędzie jest oparte na Unicode i ma wbudowany serwer programistyczny i debugger, zintegrowaną obsługę testów jednostkowych, obsługę bezpiecznych plików cookie i jest łatwe w użyciu, dzięki czemu jest przydatne dla hobbystów.
Zainstaluj pakiet obsługi kolby w Raspberry Pi za pomocą następującego polecenia:
$ pip install Flask
Następnie możemy użyć Flaska, po prostu importując go do naszego programu, tak jak zaimportowaliśmy następujące pakiety flask dla tego projektu:
from flask import Flask from flask import Flask, render_template, request
Możesz dowiedzieć się więcej o programowaniu za pomocą Flaska tutaj, sprawdź również nasze poprzednie projekty, w których używaliśmy Flaska do wysyłania wiadomości ze strony internetowej do Raspberry Pi i wysyłania wartości wagi do Raspberry Pi w Smart Container.
Kod HTML strony internetowej:
Stworzyliśmy stronę internetową wykorzystującą język HTML do wyświetlania linków sterujących (w lewo, w prawo, do przodu, do tyłu) w celu przeniesienia robota z przeglądarki internetowej. Użyliśmy skryptu jQuery do wywołania funkcji w naszym programie w języku Python. W kodzie Pythona jest pięć funkcji służących do poruszania robotem w lewo, w prawo, do przodu, do tyłu i zatrzymywania go. Kompletny kod Pythona został podany na końcu. Funkcje te będą wykonywane przez kliknięcie linków kontrolnych na stronie internetowej, a silniki będą się poruszać w zależności od klikniętego łącza. Tutaj napisaliśmy kod w taki sposób, że Robot będzie poruszał się w określonym kierunku podczas klikania i przytrzymywania linku, a gdy tylko zwolnimy przycisk myszy, Robot się zatrzyma. Poniżej znajduje się kod HTML strony internetowej zawierającej jQuery:
Tutaj możesz zobaczyć, że mamy osadzony adres IP, z którego wideo jest przesyłane strumieniowo, na stronie internetowej za pomocą tagu img src . Zmień adres IP zgodnie z Twoim Raspberry Pi, ale zachowaj ten sam port.
Podany powyżej kod HTML należy skopiować i wkleić w jakimś edytorze tekstu (notatniku) i zapisać plik z rozszerzeniem.HTML (robot.html). Następnie umieść ten plik HTML w folderze / templates z uwzględnieniem lokalizacji twojego skryptu Pythona. Oznacza to, że musisz utworzyć folder o nazwie templates, w którym umieściłeś plik kodu Python dla tego robota Raspberry Surveillance Robot, a następnie umieścić plik robot.html w tym folderze szablonów. Ten krok jest ważny, w przeciwnym razie nasz projekt nie zadziała. Możesz bezpośrednio otworzyć plik robot.html, klikając go dwukrotnie, aby zobaczyć, jak będą wyglądać linki sterujące. Następnie sprawdź cały proces w filmie demonstracyjnym na końcu. Po zakończeniu programowania i wszystkiego, możemy po prostu uruchomić kod Pythona w Raspberry Pi i otworzyć IP_address_of_your_Pi: 5010 w przeglądarce internetowej (np.
Możesz sprawdzić adres IP swojego Raspberry Pi za pomocą polecenia ifconfig :
ifconfig
Schemat obwodu i konfiguracja:
Po przetestowaniu kanału wideo na żywo i kodu HTML musimy zbudować robota, używając ręcznie lub gotowych podwozi robota, kół i śrub. Następnie umieść nad nim Power Bank, aby zasilać Raspberry pi, a następnie umieść Raspberry Pi i kamerę internetową nad powerbankiem i napraw konfigurację za pomocą taśmy wiolonczelowej lub gumowych pasków, podłącz kamerę USB do Raspberry Pi.
W tym projekcie IoT nie musimy wykonywać wielu połączeń, wystarczy podłączyć kilka przewodów do układu scalonego sterownika silnika L293D i silników prądu stałego. Połączenia pokazano na schemacie połączeń poniżej. Tutaj użyliśmy płytki drukowanej ogólnego przeznaczenia do montażu układu scalonego L293D, aby zmniejszyć przestrzeń, ale można również użyć małej płytki prototypowej do podłączenia silników prądu stałego z L293D.
Jak działać:
Obsługa i praca tego robota nadzorującego jest bardzo łatwa. Utwórz plik Pythona (rozszerzenie.py) i skopiuj do niego poniższy kod, a następnie zapisz go na swoim Raspberry Pi. Następnie umieść plik HTML w folderze szablonów, jak wyjaśniono powyżej. Nie zapomnij zmienić adresu IP w pliku HTML.
Następnie uruchom kod Pythona, wprowadzając poniższe polecenie:
python name_of_file.py
Następnie otwórz adres IP Raspberry Pi z portem 5010, na przykład http://192.168.43.199:5010 (ponownie zastąp adres IP swoim adresem). Teraz zobaczysz stronę internetową zawierającą cztery łącza do sterowania robotem i strumieniowe wideo na żywo. Użytkownik może sterować robotem, klikając i przytrzymując linki. Jeśli użytkownik kliknie i przytrzyma łącza, robot poruszy się zgodnie z klikniętym linkiem, a kiedy użytkownik zwolni łącze, robot automatycznie się zatrzyma.
Pełny kod Pythona jest podany poniżej, gdzie napisaliśmy różne funkcje do sterowania robotem po kliknięciu linków na stronie internetowej. Możesz je łatwo zrozumieć lub jeśli jesteś początkującym, sprawdź nasze poprzednie samouczki Raspberry Pi. Odwiedza również naszą sekcję robotyki, gdzie można znaleźć ciekawsze i łatwiejsze do zbudowania roboty.