Spisu treści:

Raspberry Pi HomeLab i kto jest w domu: 11 kroków
Raspberry Pi HomeLab i kto jest w domu: 11 kroków

Wideo: Raspberry Pi HomeLab i kto jest w domu: 11 kroków

Wideo: Raspberry Pi HomeLab i kto jest w domu: 11 kroków
Wideo: Która wersja Raspberry Pi OS jest dla Ciebie? [tylko dla początkujących] 2024, Listopad
Anonim
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu
Raspberry Pi HomeLab i kto jest w domu

To mój pierwszy niezniszczalny, ale ten instruktażowy ma dwa etapy.

faze one: konfiguruje pi, aby pracowało jako domowe laboratorium do pracy IOT dla zespołu programistów studentów.

Faza druga: wykorzystuje system do rozwoju, realizując demonstrację z wykorzystaniem naszego projektu who is home.

pod koniec tego będziesz miał zdalnie dostępne bezgłowe pi, które może być używane przez ludzi do zdalnego programowania i pracy na urządzeniach IOT.

teraz ostrzegam, że otwierając swoje pi dla publiczności bez należytego bezpieczeństwa, otwierasz się na ryzyko ataku na twoją sieć domową.

Pierwszą fazę omówimy w kolejnych krokach, ale jest to link do informacji o naszym klubie i o tym, kto jest domowym projektem.

github.com/ValenciaRobotics/embeddedclub

KtoJestDomem

projekt Kto jest domem wykonuje następujące czynności: uruchamia skrypt Pythona, który sprawdza adresy mac urządzeń podłączonych do sieci. używa do tego Nmapa. uruchamia te adresy na liście adresów i jeśli podany adres jest obecny, wysyła znak do arduino za pomocą komunikacji szeregowej. arduino steruje paskiem LED, a gdy otrzymuje znak, ma przypisany kolor dla tego urządzenia i zapala diody LED dla tej osoby na podstawie ich obecności.

podstrona naszych oddziałów

sites.google.com/view/valencia-robotics

sites.google.com/view/valencia-robotics/cl…

strona naszych klubów

sites.google.com/view/valenciatechclub

Skrypt Pythona został dostarczony przez: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Skrypt Arduino oraz przejście i konfigurację laboratorium domowego wykonał: Dylan Poll

www.linkedin.com/in/dylan-poll-4a324a1a2/

Nazywam się Dylan Poll, jestem obecnym prezesem klubu technologicznego naszej uczelni, a także jestem liderem systemów wbudowanych.

Kieszonkowe dzieci

Pi

Arduino

Deska do krojenia chleba

przewody połączeniowe

Kamera internetowa

indywidualnie adresowalna taśma LED RGB

zasilacz do twojego pi, klawiatura mysz, komputer do wstępnej konfiguracji.

Krok 1: Pobieranie i instalowanie wstępnych plików instalacyjnych

pobierz i zainstaluj kit (windows)

www.putty.org

pobierz rufusa i zainstaluj

rufus.ie

pobierz raspbian pełny buster i zalecane oprogramowanie (.zip)

www.raspberrypi.org/downloads/raspbian/

wyodrębnij zawartość w archiwum.zip to będzie twój [plik obrazu].

weź kartę micro sd i użyj stacji dokującej lub microsd do urządzenia USB i podłącz go do komputera sformatuj kartę sd

Krok 2: część druga: Zainstaluj Raspbian za pomocą Rufusa

Część druga: Zainstaluj Raspbian za pomocą Rufusa
Część druga: Zainstaluj Raspbian za pomocą Rufusa

uruchom rufus wybierz swoją kartę SD w pierwszym polu wybierz plik obrazu raspbian dla.iso/.img wybierz start i poczekaj na zakończenie.

Krok 3: część trzecia: Podłączanie Pi

po wykonaniu tej czynności wyciągnij kartę SD, włóż ją do gniazda karty SD w pi, najpierw podłącz przewód HDMI do pi, a następnie klawiaturę i mysz, a na końcu kabel zasilający. jeśli najpierw podłączysz zasilanie, może nie zarejestrować monitora/telewizora.

Krok 4: część czwarta: zakładanie konta

zaloguj się do pi ! wykonaj pierwszą konfigurację uruchomienia! nie pomijaj tego! wybierz klawiaturę angielską USA lub później nie znajdziesz symbolu @… jeśli nie, twój symbol @ jest tam, gdzie znajduje się „. zaloguj się do swojego wifi na pi, nie aktualizuj jeszcze. Mam powód. naciśnij „klawisz klawiatury Windows i przejdź do preferencji, przejdź do konfiguracji pi. przejdź do zakładki interfejsy.

włączyć VNC…. a wszystko inne nie uruchamia się ponownie.

Krok 5: część piąta: ustawienie swojego Pi jako bez głowy (najlepsza rzecz w historii)

Część piąta: Konfiguracja twojego Pi jako bez głowy (najlepsza rzecz w historii)
Część piąta: Konfiguracja twojego Pi jako bez głowy (najlepsza rzecz w historii)

spójrz na prawy górny róg ekranu. zobaczysz czarno-niebieskie logo VNC. otwórz to. naciśnij Zaloguj się, Marka i Konto. dodaj pi. na komputerze stacjonarnym/laptopie otwórz wyszukiwanie w przeglądarce na google VNC viewer pobierz zainstaluj. Zaloguj się na swoje konto. sprawdź pocztę e-mail, aby się zalogować i autoryzuj się. połącz się z pi (wpisz hasło pi w drugim menu logowania), jeśli to działa, wyłącz pi. odłącz swoje pi i wszystko. umieść pi w rogu w swoim pokoju i poprowadź do niego tylko kabel zasilający. możesz połączyć się z pi za pomocą przeglądarki VNC. masz teraz „bezgłowe” pi. możesz także przez SSH. (zobacz informacje o SSH w dziale fajne rzeczy)

Krok 6: część szósta: Instalacja wszystkich podstawowych narzędzi do programowania na Pi

Część szósta: Instalacja wszystkich podstawowych narzędzi do programowania na Pi
Część szósta: Instalacja wszystkich podstawowych narzędzi do programowania na Pi

używając SSH lub VNC (lub jeśli zdecydowałeś się nie być fajny i ustawić go bez głowy) wykonaj następujące czynności. otwórz terminal (ta następna część może chwilę potrwać…) uruchom te polecenia pojedynczo po zakończeniu każdego z nich.

aktualizacja sudo apt-get; sudo apt-get uaktualnij instalowanie ffmpeg{ sudo apt-get zainstaluj ffmpeg

Krok 7: część siódma: Instalacja Adafruit WebIDE

Część siódma: Instalacja Adafruit WebIDE
Część siódma: Instalacja Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh otwiera przeglądarkę na głównym pulpicie. wskaż adres URL przeglądarki na „https://***.*.*.***:8080”, zamień „*” na lokalny adres IP swojego Pi. zrób nazwę użytkownika i przepustkę. masz teraz konfigurację adafruit webIDE.

Krok 8: część ósma: Zaktualizuj Node-red i Node.js

update-nodejs-and-nodered następny kod sprawi, że nodered będzie uruchamiany przy starcie, tak jak webIDE adafruit, jest to ważne, jeśli chcesz programować na tych rzeczach. sudo systemctl włącz nodered.service uruchom ponownie Pi

Krok 9: część dziewiąta: instalacja Arduino IDE

Część dziewiąta: instalowanie Arduino IDE
Część dziewiąta: instalowanie Arduino IDE

możesz to zrobić za pomocą wiersza poleceń, ale…. nie będzie to pełna wersja.. co oznacza, że nie możesz użyć narzędzia do importowania/wyszukiwania bibliotek, aby zainstalować pełną wersję, musisz przejść do witryny arduino i pobrać wersję dla swojego modelu pi. będzie to ARM32bit dla pi3, pobierz stabilną wersję. otwórz terminal.(zamień * na informacje o wydaniu) uruchom te polecenia.

www.arduino.cc/en/Main/Software

cd Downloads/ tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.* /opt sudo /opt/arduino-1.*.*/install.sh

Krok 10: Część dziesiąta: Ffmpeg

Część dziesiąta: Ffmpeg
Część dziesiąta: Ffmpeg

1x kamera internetowa logitech

(kolejne pozycje nie zawierają tego, co jest potrzebne do uruchomienia strumienia 24/7) 1x płytka stykowa drugi model raspberry pi 3 b(z kartą sd) indywidualnie adresowana taśma LED. przewód zworki arduino nano włącza przeglądarkę VNC na obu Pi (s)

preferencje pi, włącz vnc załóż konto w przeglądarce VNC WAŻNE: na pi, którego planujesz używać jako publicznego stanowiska pracy, przejdź do ustawień serwera vnc, opcji, zakładki ekspertów i ustaw limit czasu bezczynności: 0 sekund, jest ustawiony na zamknięcie Vnc Viewer, jeśli jest bezczynny po godzinie, spowoduje to zatrzymanie okna przed zamknięciem w trakcie instalacji vnc viewer na streamerze pi w terminalu.

sudo apt-get zainstaluj vnc-java y

podłącz kamerę internetową i… zainstaluj kamerę internetową.

sudo apt zainstaluj fswebcam

zainstaluj ffmpeg sudo apt-get zainstaluj ffmpeg y

tutaj wchodzą w grę twoje własne wybory. w terminalu uruchom ten skrypt, aby otworzyć okno na pulpicie twojego streamera pi dla kamery internetowej.

ffplay -window_title "pi-cam" /dev/video0 -video_size 1920x1080 -vf crop=400:500:300:50 -framerate 20 ffplay pozwoli ci zobaczyć to w oknie o nazwie pi-cam, kamera internetowa, którą ci pokazuje jest w lokalizacji dev/video0, a jego oryginalny rozmiar to 1920x1080. Chcę tylko zobaczyć crop=szerokość:wysokość:topleft_X:topleft_Y, a liczba klatek na sekundę 20 jest dla mnie wystarczająca. następny kod będzie przesyłany strumieniowo do Twitcha.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -vf scale=1280x720 -c:v h264 -g 24 -b:v 2M -preset ultrafast -c:a aac -pix_fmt yuv420p -f flv " rtmp://live-lax.twitch.tv/app/(tutaj wstaw klucz do strumienia)"

-f x11grab służy do przechwytywania ekranu. moja rozdzielczość ekranu jest ustawiona na 1280x1024 Chcę wyświetlić to w formacie wideo 1280x720, więc -vf.

2m = szybkość przesyłania 2mgb. -f flv to formatowanie wideo do formatu.flv, aby Twitch mógł z niego korzystać.

teraz możesz podać swojemu zespołowi swoje dane uwierzytelniające VNC do workbench Pi, a oni mogą zdalnie zobaczyć zmiany w pasku ledowym na żywo. Pozdrawiam tego gościa~! jego film pomógł mi wejść na właściwe tory, ale wciąż musiałem wymyślić, jak wskoczyć do mojej kamery internetowej… i dowiedzieć się o ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc UWAGA: Nie jestem najlepiej poinformowaną osobą, to po prostu działa na moje potrzeby, jeśli ktoś ma konstruktywne rady, chciałbym je usłyszeć, ale proszę nie miej na myśli jedną z możliwych dróg, aby posunąć to dalej, byłoby użycie tego mechanizmu do przesyłania strumieniowego tego i użycie innego strumienia pi i rozszerzenia światła chromowanego, aby pobrać ten strumień, a następnie przesłać kamerę internetową w ten lub w inny sposób. https://www.youtube.com/embed/kb_5_9GkwZc RÓWNIEŻ: jeśli chcesz dodać dźwięk, jak widać na wideo mans youtube, możesz użyć tego ciągu, nie chciałem, aby mój dom był nagrywany i wysłane do Twitcha, to siedzi w moim pokoju, więc nie przesyłam żadnego dźwięku, pomaga to również zmniejszyć obciążenie na pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -i default -af acompressor=threshold=0.089:ratio=9:attack=200:release=1000 -vf scale=1280x720 -c:v h264 - g 24 -b:v 2M -preset ultrafast -c:a aac -pix_fmt yuv420p -f flv "rtmp://live-lax.twitch.tv/app/(tutaj wstaw klucz strumienia)"

Krok 11:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

teraz do ostatniego etapu, implementując komunikację szeregową arduino i pi z pythonem.

---the who is home project--- Projekt używa skryptu Pythona, który uruchamia nmap w terminalu, kopiuje jego zawartość, analizuje tekst, którego nie potrzebujemy, i porównuje adresy mac w sieci z wymienionymi adresy mac, a jeśli jest dopasowanie, ta osoba jest w domu. adresy mac zostały znalezione podczas prac śledczych na routerze, ale narzędzie nmap dostarcza informacji o urządzeniach w pliku tekstowym wygenerowanym przez kod. jeśli użytkownik jest obecny, wysyła znak do arduino, a arduino czeka na zakończenie listy kontrolnej i zapala diody LED odpowiadające profilom wymienionym dla adresów mac obecnych urządzeń. możesz dodać inne rzeczy, takie jak uruchamianie przez boty Discord poleceń osobom przychodzącym lub wychodzącym z tym samym kodem, używając operatora podprocesu do wykonywania poleceń terminala w skrypcie Pythona. więc najpierw instalujemy nmap sudo apt-get install nmap. następnie będziesz chciał pobrać pliki na naszym klubie Git-Hub.

github.com/ValenciaRobotics/embeddedclub

w przypadku kodu Pythona instalacja raspbian zawiera wszystko, co zostało użyte w tym kodzie, więc nie potrzebujesz niczego dodatkowego instalowanego. użyliśmy import re, import subprocess, import time, import serial ważne jest, aby pamiętać, że python używa wcięcia do oddzielania bloków kodu, więc pamiętaj o tym, jeśli zdecydujesz się zmienić sposób pisania kodu:) py jest dostarczane z thonny ide i kilka innych opcji, uważam, że uruchomienie skryptu w thonny jest naprawdę proste, jeśli klikniesz plik i spróbujesz go wykonać, zasugerujesz lub założysz, że thonny jest tym, czego chciałeś użyć. zanim uruchomisz program, będziesz musiał wyedytować następujące. linia 14: symbole * są używane do maskowania informacji o moim własnym routerze, musisz je zastąpić własnym lokalnym adresem IP. byłby taki sam, jak ten, którego używasz do łączenia się z routerem. linie 28, 38, 48, 58: wszystkie używają symbolu * do maskowania adresów mac urządzeń wymienionych w mojej sieci, musisz je zmienić na adresy mac urządzeń w twojej sieci, aby wykryć połączenia. dlaczego adresy mac? ponieważ bez zarezerwowania lokalizacji dla Twojego urządzenia, z pewnością pozostaną takie same, chyba że ktoś się podszywał. problemy z tym kodem, wykryje tylko wtedy, gdy połączenie aktywnie korzysta z Internetu, więc może nie zostać wykryty pomimo obecności użytkownika. w kodzie arduino będziesz chciał zmienić następujące. najpierw będziesz chciał przejść do zakładki narzędzi, wybrać menedżera bibliotek, wyszukać „fastLED” i zainstalować bibliotekę dla „fastLED”. następnie będziesz musiał załadować kod.ino "kto jest w domu" ze strony github i zmienić następujące, jak chcesz. linia 86: zmień kolory w zależności od tego, co chcesz, aby dołączyli Twoi użytkownicy:)

//włącz to, czego potrzebujesz

if(d == 1){ diody[0] = 0xdd8bff; //fioletowe diody [1] = 0xdd8bff;}

if(l == 1){ diody [2] = CRGB::Zielony; diody [3] = CRGB::Zielony;}

if(k == 1){ diody [4] = CRGB::Czerwony; diody[5] = CRGB::Czerwony; }

if(j == 1){ diody[6] = CRGB::Niebieski; diody[7] = CRGB::Niebieski;}

FastLED.show(); opóźnienie (30000); //10 sekund czekaj na obudowę przełącznika krótkie wyjaśnienie, jak dodać więcej użytkowników, jest następujące

pusta pętla () {

jeśli (Serial.available() > 0) {

Serial.println();

osoba = Serial.odczyt();

opóźnienie (1000);

przełącznik (osoba){

przypadek „D”: d = 1;

osoba = 'F';

liczba=liczba+1;

przerwa;

przypadek”:

d = 0;

osoba = 'F';

liczba=liczba+1;

przerwa;

duża litera D to odebrany znak ze skryptu python, więc wie, że użytkownik jest obecny, ponieważ odebrana litera to duża litera D, więc zmienia wartość INTEGER d na 1, jeśli jest to mała litera, to wie, że są nieobecne, więc wartość INTEGER jest ustawiona na 0. Warunek świecenia diod w skrypcie sprzed używa stwierdzenia, że JEŻELI d jest 1 to dioda zapali się, ale jeśli nie, dioda pozostanie jako "czarna" czyli nie świeci. ten kod używa biblioteki "fastLED" i jest na ten temat dużo dokumentacji. zauważ, że jeśli zmienisz znaki, dodasz znaki lub usuniesz znaki, będziesz musiał zmienić skrypt Pythona, aby zwrócić te, które zmieniłeś, będziesz musiał również zmienić warunek w pętli void. if(count == 4){holdup();} } licznik będzie musiał odzwierciedlać liczbę urządzeń, które „śledzisz”. w moim przypadku jest to 4, więc czeka, aż 4 urządzenia zostaną zadeklarowane jako obecne lub nieobecne, a następnie aktualizuje pasek LED. w kodzie Pythona wiersze 31, 34, 41, 44, 51, 54, 61, 64 mają następującą linię ser.write(b'*') #sends znak rzutowany jako byte over serial gdzie * jest znakiem wysyłanie do arduino. zmień to jeśli zmienisz kod w arduino lub odwrotnie:)

Ponownie, jako oświadczenie końcowe, chciałbym podziękować mojemu koledze z zespołu Jonowi, wykonał świetną robotę, podnosząc luz, kiedy go potrzebowaliśmy.

Skrypt Pythona został dostarczony przez: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Skrypt Arduino oraz przejście i konfigurację laboratorium domowego wykonał: Dylan Poll

www.linkedin.com/in/dylan-poll-4a324a1a2/

Mamy nadzieję, że wygramy przynajmniej koszulkę! Będę aktualizować to za pomocą poleceń powłoki, aby automatycznie pobierać i instalować większość z tego, nasza strona internetowa klubów faktycznie ma do pobrania skrypty powłoki do wykonywania operacji ffmpeg.

Ten projekt zajął dużo czasu, założyłem ten oddział klubu od podstaw, więc mogę z dumą powiedzieć, że ten moment sprawia mi wiele radości.:) dziękuję za poświęcony czas, mamy platformę roboczą do rozwinięcia w moim klubie dzięki temu projektowi.

Zalecana: