Obsah:

Raspberry Pi HomeLab a Kto je doma: 11 krokov
Raspberry Pi HomeLab a Kto je doma: 11 krokov

Video: Raspberry Pi HomeLab a Kto je doma: 11 krokov

Video: Raspberry Pi HomeLab a Kto je doma: 11 krokov
Video: Adguard Home и Pi-hole - блокираторы рекламы, трекеров и DNS сервера. Установка и использование. 2024, Júl
Anonim
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma
Raspberry Pi HomeLab a Kto je doma

Toto je môj prvý nezničiteľný, ale tento návod má dve fázy.

faze jedna: je zriadenie pí tak, aby fungovalo ako domáce laboratórium pre prácu IOT pre tím študentských vývojárov.

Faze dva: používa systém na vývoj implementáciou ukážky pomocou projektu, kto je doma.

do konca tohto budete mať diaľkovo prístupné bezhlavé pi, ktoré môžu ľudia používať na diaľku na programovanie a prácu na zariadeniach IOT.

Teraz varujem, že otvorením svojho pí pre verejnosť bez náležitého zabezpečenia sa otvoríte riziku útoku na vašu domácu sieť.

v nasledujúcich krokoch prejdeme prvú fázu, ale toto je odkaz na niektoré informácie o našom klube a projekte kto je doma.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

projekt Kto je doma robí nasledovné: spustí pythonový skript, ktorý skontroluje adresy MAC zariadení pripojených k vašej sieti. používa na to Nmap. prevádza tieto adresy proti zoznamu adries a ak je uvedená adresa prítomná, odosiela znak arduino pomocou sériovej komunikácie. arduino ovláda LED pásik a keď dostane znak, má priradenú farbu pre toto zariadenie a rozsvieti LED diódy pre túto osobu na základe ich prítomnosti.

naše divízie sú nižšie

sites.google.com/view/valencia-robotics

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

stránka nášho klubu

sites.google.com/view/valenciatechclub

skript Python poskytol: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Skript Arduino, prechádzku a nastavenie domáceho laboratória vykonal: Dylan Poll

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

Som Dylan Poll, som súčasným prezidentom technologického klubu našej vysokej školy a som tiež vedúcim integrovaných systémov.

Zásoby

Pi

Arduino

Chlebník

prepojovacie vodiče

Webkamera

individuálne adresovateľný RGB LED pásik

napájanie vášho pi, klávesnice, myši, počítača na vykonanie počiatočného nastavenia.

Krok 1: Sťahovanie a inštalácia počiatočných inštalačných súborov

stiahnuť a nainštalovať tmel (Windows)

www.putty.org

stiahnite si rufus a nainštalujte ho

rufus.ie

stiahnuť Raspbian Full Buster a odporúčaný softvér (.zip)

www.raspberrypi.org/downloads/raspbian/

rozbaľte obsah v súbore.zip, toto bude váš [súbor s obrázkom].

vezmite kartu micro SD a pomocou doku alebo microSD zariadenia USB ho zapojte do počítača a naformátujte svoju kartu SD

Krok 2: časť druhá: Nainštalujte Raspbian pomocou programu Rufus

Druhá časť: Nainštalujte Raspbian pomocou Rufusu
Druhá časť: Nainštalujte Raspbian pomocou Rufusu

run rufus vyberte svoju sd kartu v prvom poli vyberte súbor s obrázkom raspbian pre súbor.iso/.img vyberte štart a počkajte, kým sa dokončí.

Krok 3: časť tretia: Pripojenie Pi

Po dokončení vytiahnite kartu SD, vložte ju do zásuvky na kartu SD na pi, jeho na „spodnej“zástrčke zapojte najskôr kábel HDMI do počítača pi, potom ako klávesnicu a myš, a posledný napájací kábel. ak najskôr zapojíte napájanie, váš monitor/televízor sa nemusí zaregistrovať.

Krok 4: časť štyri: Nastavenie účtu

prihláste sa do pi! urobte prvé spustenie nastavenia! nepreskočte to! zvoľte americkú anglickú klávesnicu alebo svoj symbol @ neskôr nenájdete … ak nie, symbol @ je tam, kde je vaše „. Prihláste sa do svojej siete Wi -Fi na pi zatiaľ neaktualizujte. Mám dôvod. kliknite na klávesnicu Windows“ a prejdite na predvoľby, prejdite na konfiguráciu pi. prejdite na kartu rozhrania.

povoliť VNC…. a všetko ostatné sa nereštartuje.

Krok 5: časť piata: Nastavenie vášho Pi ako bezhlavého (najlepšia vec vôbec)

Časť päť: Nastavenie vášho Pi ako bezhlavého (najlepšia vec vôbec)
Časť päť: Nastavenie vášho Pi ako bezhlavého (najlepšia vec vôbec)

pozrite sa v pravom hornom rohu obrazovky. uvidíte čierno -modré logo VNC. otvor to kliknite na Prihlásiť sa, Vytvoriť účet a. pridajte pi. na počítači/prenosnom počítači otvorte prehliadač a v prehliadači Google VNC stiahnite a nainštalujte. Prihláste sa do svojho účtu. skontrolujte svoj e -mail a prihláste sa a autorizujte sa. pripojte sa k svojmu pí (zadajte heslo pí v druhom prihlasovacom menu), ak funguje, vypnite pi. odpojte svoje pi a všetko. dajte pi do rohu svojej miestnosti a veďte k nemu iba napájací kábel. k pí sa môžete pripojiť pomocou prehliadača VNC. teraz máš „bezhlavé“pi. môžete na to tiež použiť SSH. (Informácie o SSH nájdete v sekcii skvelých vecí)

Krok 6: časť šesť: Inštalácia všetkých základných nástrojov pre vývoj na Pi

Časť šiesta: Inštalácia všetkých základných nástrojov na vývoj na Pi
Časť šiesta: Inštalácia všetkých základných nástrojov na vývoj na Pi

pomocou SSH alebo VNC (alebo ak ste sa rozhodli nebyť cool a nastaviť to bezhlavo), postupujte takto. otvorený terminál (táto ďalšia časť môže chvíľu trvať …) spustite tieto príkazy jeden po druhom, keď je každý DOKONČENÝ.

sudo apt-get aktualizácia; sudo apt-get upgrade install ffmpeg {sudo apt-get install ffmpeg

Krok 7: časť siedma: Inštalácia Adafruit WebIDE

Siedma časť: Inštalácia Adafruit WebIDE
Siedma časť: Inštalácia Adafruit WebIDE

zvinutie https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh otvorte prehliadač na hlavnej ploche. nasmerujte URL svojho prehliadača na „https://***.*.*.***: 8080“nahraďte „*“miestnou IP adresou vášho Pi. zadajte používateľské meno a zadajte heslo. teraz máte nastavenie adafruit webIDE.

Krok 8: časť osem: Aktualizujte Node-red a Node.js

update-nodejs-and-nodered the next code will make nodered run when startup just like the adafruit webIDE, this is important if you want to develop on these things. sudo systemctl povoliť nodered.service reštartujte Pi

Krok 9: časť deväť: Inštalácia Arduino IDE

Časť deviata: Inštalácia Arduino IDE
Časť deviata: Inštalácia Arduino IDE

Môžete to urobiť pomocou príkazového riadku, ale … nepôjde o plnú verziu.. to znamená, že nemôžete použiť nástroj na import/vyhľadávanie knižnice. Ak si chcete nainštalovať plnú verziu, musíte ísť na webovú stránku arduino a stiahnuť si verziu pre svoj model pi. bude to ARM32bit pre pi3, získajte stabilné vydanie. otvorte terminál. (nahraďte *s informáciami o vydaní) spustite tieto príkazy.

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: Časť desiata: Ffmpeg

Časť desiata: Ffmpeg
Časť desiata: Ffmpeg

1x webová kamera logitech

(ďalšie položky neobsahujú to, čo potrebujete na spustenie streamu 24/7) 1x nepájivá doska a druhý malinový pi model 3 b (so sd kartou) individuálne adresovateľný LED pás. arduino nano prepojovací kábel povoľuje prehliadač VNC na oboch Pi

pí preferencie, povoľte vnc vytvoriť účet pomocou prehliadača VNC DÔLEŽITÉ: na pi, ktoré plánujete použiť ako verejnú pracovnú lavicu, prejdite na nastavenia servera vnc, možnosti, kartu expert a urobte časový limit nečinnosti: 0 sekúnd, je nastavený na zatvorenie Vnc prehliadač, ak je po hodine nečinný, zastaví sa tým zatvorenie vášho okna v strede streamu nainštalujte prehliadač vnc na streamer pi v termináli.

sudo apt-get install vnc-java y

zapojte webovú kameru a … nainštalujte si webovú kameru.

sudo apt install fswebcam

nainštalovať ffmpeg sudo apt-get nainštalovať ffmpeg y

tu vstupujú do hry vaše vlastné voľby. v termináli spustením tohto skriptu otvoríte okno na ploche vášho streamer pi pre vašu webovú kameru.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay vám to umožní vidieť v okne s názvom pi -cam, webová kamera, ktorá vám ukazuje, je na mieste dev/video0 a jeho pôvodná veľkosť je 1920x1080. Chcem vidieť iba crop = width: height: topleft_X: topleft_Y a stačí mi framerate 20. nasledujúci kód sa bude streamovať na zášklby.

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

-f x11grab sa používa na zachytenie vašej obrazovky. moje rozlíšenie obrazovky je nastavené na 1280x1024 Chcem to zobraziť vo formáte videa 1280x720 so -vf videa.

2 m = rýchlosť odosielania 2 mgb. -f flv je formátovanie videa do.flv, aby ho twitch mohol použiť.

teraz môžete svojmu tímu odovzdať svoje poverenia VNC na pracovný stôl Pi a oni môžu na diaľku naživo vidieť zmeny v led páse. Kričte na toho chlapa ~! jeho video mi pomohlo dostať sa na správnu cestu, stále som však musel zistiť, ako sa dostať do webovej kamery, … a dozvedieť sa viac o ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc POZNÁMKA: Nie som najinformovanejšia osoba, toto jednoducho funguje pre moje potreby. Ak má niekto konštruktívnu radu, rád by som ju počul, ale nie byť jednou z možných ciest, ako to posunúť ďalej, by bolo použiť túto mechaniku na streamovanie tohto a použiť iný pi a chrómový predlžovací svetelný prúd na načítanie tohto prúdu a potom na napájanie webovej kamery do tohto alebo akýmkoľvek iným spôsobom. https://www.youtube.com/embed/kb_5_9GkwZc TIEŽ: ak chcete pridať zvuk, ako je vidieť na mans youtube videu, môžete použiť tento reťazec, nechcel som, aby bol môj dom nahrávaný a odoslané do twitchu, toto sedí v mojej izbe, takže neposielam žiadny zvuk, tiež to pomáha zmierniť zaťaženie pí.

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 -prednastavené ultrarýchle -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

Krok 11:

Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok

teraz do posledného úseku, implementácia arduino a pi sériovej komunikácie s pythonom.

--- projekt kto je doma --- projekt používa pythonový skript, ktorý v termináli beží nmap, skopíruje jeho obsah, analyzuje nepotrebný text a porovná adresy MAC v sieti s uvedenými mac adresy a ak existuje zhoda, táto osoba je doma. adresy mac boli nájdené vykonaním vyšetrovacej práce na smerovači, ale nástroj nmap vám poskytuje informácie o zariadeniach v textovom súbore generovanom kódom. ak je používateľ prítomný, pošle znak do arduina a arduino počká, kým sa nevykoná kontrolný zoznam, a rozsvieti diódy LED zodpovedajúce profilom uvedeným pre adresy MAC súčasných zariadení. môžete pridať ďalšie veci, napríklad nechať diskordérov spúšťať príkazy ľuďom, ktorí prichádzajú alebo odchádzajú s rovnakým kódom, pomocou operátora podprocesu na vykonanie príkazov terminálu vo vašom skripte python. tak najskôr nainštalujeme nmap sudo apt-get install nmap. Ďalej si budete chcieť stiahnuť súbory z našich klubov Git-Hub.

github.com/ValenciaRobotics/embeddedclub

pre kód python je inštalácia raspbian dodávaná so všetkým, čo je použité v tomto kóde, takže nepotrebujete nič ďalšie nainštalované. použili sme import re, import subprocesu, čas importu, import seriálu, je dôležité si uvedomiť, že python používa na oddeľovanie blokov kódu odsadenie, takže si uvedomte, že ak sa rozhodnete zmeniť spôsob písania kódu:) py prichádza s thonny ide a niekoľko ďalších možností, zistil som, že spustenie skriptu v thonny je skutočne jednoduché, ak kliknete na súbor a pokúsite sa ho spustiť, bolo to navrhnúť alebo predpokladať, že thonny je to, čo ste chceli použiť. Pred spustením programu budete musieť upraviť nasledujúce. riadok 14: Symboly * sa používajú na maskovanie informácií o mojom vlastnom smerovači, budete ich musieť nahradiť vlastnou miestnou adresou IP. bolo by to rovnaké ako to, čo používate na pripojenie k svojmu smerovaču. riadky 28, 38, 48, 58: všetky používajú symbol * na maskovanie MAC adries zariadení uvedených v mojej sieti. Na detekciu pripojení ich musíte zmeniť na mac adresy zariadení vo vašej vlastnej sieti. prečo mac adresy? pretože bez rezervácie miest pre vaše zariadenie určite zostanú rovnaké, pokiaľ niekto nepodvádza. problémy s týmto kódom, detekuje ho iba vtedy, keď pripojenie aktívne používa internet, takže sa nemusí zistiť, napriek tomu, že je prítomný používateľ. v kóde arduino budete chcieť zmeniť nasledujúce. Najprv budete chcieť prejsť na kartu nástrojov, vybrať správcu knižníc a vyhľadať „fastLED“a nainštalovať knižnicu pre „fastLED“. Ďalej budete musieť načítať.ino kód „kto je doma“zo stránky github a podľa potreby zmeniť nasledujúce. riadok 86: zmeňte farby podľa toho, čo chcete, aby mali vaši používatelia pripojené:)

// zapnite, čo potrebujete

if (d == 1) {leds [0] = 0xdd8bff; // fialové diódy [1] = 0xdd8bff;}

if (l == 1) {leds [2] = CRGB:: Green; LED [3] = CRGB:: Zelená;}

if (k == 1) {leds [4] = CRGB:: Red; leds [5] = CRGB:: červená; }

if (j == 1) {leds [6] = CRGB:: Blue; leds [7] = CRGB:: Blue;}

FastLED.show (); oneskorenie (30 000); // Nasleduje stručné vysvetlenie, ako pridať ďalších používateľov, 10 sekúnd v prípade prepínača

prázdna slučka () {

ak (Serial.available ()> 0) {

Serial.println ();

osoba = Serial.read ();

oneskorenie (1000);

prepínač (osoba) {

prípad'D ': d = 1;

osoba = 'F';

count = count+1;

prestávka;

case'd ':

d = 0;

osoba = 'F';

count = count+1;

prestávka;

veľké D je prijatý znak zo skriptu pythonu, takže vie, že je používateľ prítomný, pretože prijaté písmeno je veľké D, takže zmení hodnotu INTEGER d na 1, ak je to malé písmeno, než vie chýbajú, takže INTEGER je nastavený na 0. Podmienka pre osvetlenie LED v skripte predtým používa tvrdenie, že IF d je 1, potom rozsvieti LED, ale ak nie, LED zostane ako „čierna“, čo znamená nesvieti. tento kód používa knižnicu „fastLED“a je o tom veľa dokumentácie. Všimnite si toho, že ak zmeníte znaky, pridáte znaky alebo odstránite znaky, budete musieť zmeniť skript pythonu, aby vrátil aj tie, ktoré ste zmenili. Budete tiež musieť zmeniť podmienku v prázdnej slučke. if (count == 4) {holdup ();}} count bude musieť odrážať počet zariadení, ktoré „sledujete“. v mojom prípade je to 4, takže čaká, kým nebudú 4 zariadenia vyhlásené za prítomné alebo neprítomné, a potom aktualizuje LED pás. v kóde pythonu majú riadky 31, 34, 41, 44, 51, 54, 61, 64 nasledujúci riadok ser.write (b ' *') #odosiela znak prenášaný ako bajt oproti sériovému, kde * je znak, ktorým je odoslanie do arduina. zmeňte to, ak zmeníte kód v arduine alebo naopak:)

Opäť, ako záverečné vyhlásenie, chcem poďakovať svojmu spoluhráčovi Jonovi, ktorý odviedol skvelú prácu pri zachytávaní voľných chvíľ, keď sme to potrebovali.

Scenár Pythonu poskytol: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Skript Arduino, prechádzku a nastavenie domáceho laboratória vykonal: Dylan Poll

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

Dúfajme, že vyhráme aspoň tričko! Budem to aktualizovať pomocou príkazov shellu, aby sa väčšina z toho automaticky stiahla a nainštalovala. Naše webové stránky klubov v skutočnosti obsahujú skripty shell, ktoré je možné vykonať na vykonanie operácií ffmpeg.

Tento projekt zabral veľa času, túto divíziu klubu som založil od základov, aby som mohol hrdo povedať, že mi tento moment prináša veľkú radosť.:) ďakujem za váš čas, kvôli tomuto projektu máme v mojom klube teraz pracovnú platformu na rozvoj.

Odporúča: