Tartalomjegyzék:

Raspberry Pi HomeLab és ki van otthon: 11 lépés
Raspberry Pi HomeLab és ki van otthon: 11 lépés

Videó: Raspberry Pi HomeLab és ki van otthon: 11 lépés

Videó: Raspberry Pi HomeLab és ki van otthon: 11 lépés
Videó: HOW TO - Create a Raspberry Pi Smart Home Kiosk (Home Assistant) 2024, December
Anonim
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon
Raspberry Pi HomeLab és ki van otthon

Ez az első elpusztíthatatlan, de ennek az utasításnak két faze van.

faze one: létrehoz egy pi-t, hogy otthoni laboratóriumként dolgozzon az IOT munkában egy diákfejlesztő csapat számára.

faze two: a rendszert használja a fejlesztéshez, egy bemutató megvalósításával a mi otthon projekt segítségével.

ennek végére lesz egy távolról hozzáférhető fej nélküli pi, amellyel az emberek távolról programozhatnak és dolgozhatnak IOT eszközökön.

most arra figyelmeztetek, hogy ha a pi -t a nyilvánosság elé tárod megfelelő biztonság nélkül, nyitva állsz annak a veszélynek, hogy megtámadják az otthoni hálózatodat.

a következő lépésekben áttekintjük az első faze -t, de ez egy link a klubunkkal és az otthoni projekttel kapcsolatos információkhoz.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

a Ki van otthon projekt a következőket teszi: futtat egy python -szkriptet, amely ellenőrzi a hálózatához csatlakoztatott eszközök mac -címét. erre Nmap -ot használ. ezeket a címeket egy címlistára futtatja, és ha a felsorolt cím megvan, akkor egy karaktert küld egy arduino -nak soros kommunikáció segítségével. az arduino egy LED szalagot vezérel, és amikor egy karaktert kap, hozzárendeli az adott eszköz színét, és meggyújtja az adott személy LED -jeit a jelenlétük alapján.

osztályaink alterületét

sites.google.com/view/valencia-robotics

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

klubjaink honlapján

sites.google.com/view/valenciatechclub

a Python -szkriptet biztosította: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

az Arduino -szkriptet és a házilabor végigjárását és beállítását végezte: Dylan Poll

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

Dylan Poll vagyok, én vagyok az egyetemünk technikai klubjának jelenlegi elnöke, és én vagyok a beágyazott rendszerek vezetője.

Kellékek

Egy pi

Egy arduino

Egy kenyértábla

jumper vezetékek

Egy webkamera

egyedileg címezhető RGB LED szalag

tápegység a pi -hez, billentyűzet, egér, számítógép a kezdeti beállításhoz.

1. lépés: A kezdeti beállítási fájlok letöltése és telepítése

a gitt letöltése és telepítése (Windows)

www.putty.org

töltse le és telepítse a rufust

rufus.ie

töltse le a raspbian full buster programot és az ajánlott szoftvert (.zip)

www.raspberrypi.org/downloads/raspbian/

bontsa ki a.zip tartalmát, ez lesz a [képfájl].

vegyen egy micro sd kártyát, és használjon dokkot vagy microsd -t az USB -eszközhöz, és csatlakoztassa a számítógéphez formattálja az SD -kártyát

2. lépés: Második rész: A Raspbian telepítése a Rufus használatával

Második rész: A Raspbian telepítése a Rufus használatával
Második rész: A Raspbian telepítése a Rufus használatával

futtassa a rufus parancsot, válassza ki az SD -kártyát az első mezőben.

3. lépés: harmadik rész: A Pi csatlakoztatása

Miután ez megtörtént, húzza ki az SD -kártyát, helyezze be a pi -n lévő SD -kártya nyílásba, először a HDMI -kábel "alsó" csatlakozójába a pi -hez, majd a billentyűzetet és az egeret, valamint az utolsó tápkábelt. ha először csatlakoztatja az áramellátást, előfordulhat, hogy nem regisztrálja a monitort/tévét.

4. lépés: negyedik rész: A fiók beállítása

jelentkezzen be a pi! -ba, végezze el az első futtatás beállítását! ne hagyd ki! válassza az USA angol billentyűzetet, vagy később nem fogja megtalálni a @ szimbólumát … ha nem, akkor a @ szimbóluma ott van, ahol van. jelentkezzen be a wifi -re a pi -n, még ne frissítse. Megvan az oka. nyomja meg a "Windows billentyűzet gombot "és lépjen a beállításokhoz, lépjen a pi konfigurációhoz. lépjen az interfész fülre.

engedélyezze a VNC -t…. és minden más ne induljon újra.

5. lépés: Ötödik rész: A Pi beállítása fejetlenül (a legjobb dolog valaha)

Ötödik rész: A Pi beállítása fejetlenül (a legjobb dolog valaha)
Ötödik rész: A Pi beállítása fejetlenül (a legjobb dolog valaha)

nézd meg a képernyő jobb felső sarkát. látni fogja a fekete -kék VNC logót. nyisd ki azt. nyomja meg a bejelentkezést, a gyártást és a fiókot. add hozzá a pi -t. asztalon/laptopon nyissa meg a böngésző keresését a google VNC viewer letöltés telepítése alatt. Jelentkezz be a fiókodba. ellenőrizze az e -mailben a bejelentkezést, és engedélyezze magát. csatlakozzon a pi -hez (írja be a pi jelszót a második bejelentkezési menüben), ha működik, kapcsolja ki a pi -t. húzza ki a pi -t és mindent. tegye a pi -t a szoba egyik sarkába, és csak a tápkábelt vezesse hozzá. csatlakozhat a pi -hez a VNC viewer segítségével. most van egy "fejetlen" pi. SSH -t is használhat. (lásd az SSH -információkat a menő dolgok részben)

6. lépés: hatodik rész: A fejlesztéshez szükséges összes alapvető eszköz telepítése Pi -re

Hatodik rész: A fejlesztéshez szükséges összes alapvető eszköz telepítése Pi -re
Hatodik rész: A fejlesztéshez szükséges összes alapvető eszköz telepítése Pi -re

SSH vagy VNC használatával (vagy ha úgy döntött, hogy nem lesz menő, és fejetlenül állítja be), tegye a következőket. nyissa meg a terminált (ez a következő rész eltarthat egy ideig …). futtassa ezeket a parancsokat egyenként, miután mindegyik befejeződött.

sudo apt-get update; sudo apt-get upgrade ffmpeg telepítése {sudo apt-get install ffmpeg

7. lépés: hetedik rész: Az Adafruit WebIDE telepítése

Hetedik rész: Az Adafruit WebIDE telepítése
Hetedik rész: Az Adafruit WebIDE telepítése

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh nyissa meg a böngészőt a fő asztalon. mutassa böngészője URL -jét a „https://***.*.*.***: 8080” címre, cserélje ki a „*” jelzést a Pi helyi IP -címére. hozzon létre felhasználónevet és adja át. most megvan az adafruit webIDE beállítása.

8. lépés: Nyolcadik rész: Frissítse a Node-red és a Node.js fájlokat

A update-nodejs-és-nodered következő kódja indításkor ugyanúgy futtatja a csomópontot, mint az adafruit webIDE, ez fontos, ha ezeken a dolgokon szeretne fejlődni. sudo systemctl enable nodered.service indítsa újra a Pi -t

9. lépés: Kilencedik rész: Az Arduino IDE telepítése

Rész Kilenc: Az Arduino IDE telepítése
Rész Kilenc: Az Arduino IDE telepítése

parancssorból megteheti, de … ez nem a teljes verzió.. azaz nem tudja használni a könyvtár importáló/keresőeszközét, a teljes verzió telepítéséhez el kell mennie az arduino webhelyre, és le kell töltenie a pi modelljének verzióját. ez lesz a pi3 ARM32bitje, szerezd be a stabil kiadást. nyissa meg a terminált. (cserélje ki a *-ket a kiadási információra) futtassa ezeket a parancsokat.

www.arduino.cc/en/Main/Software

cd Letöltések/tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.*/opt sudo /opt/arduino-1.*.*/install.sh

10. lépés: Tizedik rész: Ffmpeg

Tizedik rész: Ffmpeg
Tizedik rész: Ffmpeg

1x webkamera logitech

(a következő tételek nem tartalmazzák a 24/7 adatfolyam futtatásához szükséges) 1x kenyérsütő lemez egy második málna pi modell 3 b (sd kártyával) egyedileg címezhető LED szalag. Az arduino nano jumper vezeték lehetővé teszi a VNC megjelenítést mindkét Pi -n

pi preferenciák, engedélyezze a vnc fiók létrehozását a VNC viewer alkalmazásban FONTOS: azon a pi -n, amelyet nyilvános munkaasztalként szeretne használni, lépjen a vnc szerver beállításaihoz, beállításaihoz, szakértői füléhez, és készenléti időtúllépést tegyen: 0 másodperc, a Vnc bezárása viewer, ha tétlen egy óra múlva, ezzel megakadályozza, hogy az ablak bezáródjon a stream közepén, telepítse a vnc viewer -t a terminál pi streamerére.

sudo apt-get install vnc-java y

csatlakoztassa a webkamerát és … telepítse a webkamerát.

sudo apt install fswebcam

install ffmpeg sudo apt-get install ffmpeg y

itt a saját döntéseid jönnek szóba. a terminálban futtassa ezt a szkriptet, hogy megnyisson egy ablakot a streamer pi asztalon a webkamera számára.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay lehetővé teszi, hogy ezt egy pi -cam nevű ablakban lássa, a webkamera, amelyen látható a dev/video0 helyen, eredeti mérete 1920x1080. Csak a termést akarom látni: szélesség: magasság: topleft_X: topleft_Y és 20 -as képkockasebesség elég nekem. a következő kód streamelni fog.

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

-f x11grab a képernyő megragadására szolgál. képernyőfelbontásom 1280x1024 -re van állítva. Ezt szeretném megjeleníteni 1280x720 -as so -vf videó formátumban.

2m = 2mgb feltöltési sebesség. -f flv a videó.flv formátumba való formázása, hogy a twitch használhassa.

most átadhatja csapatának a VNC hitelesítő adatait a Pi munkaasztalhoz, és távolról láthatják a led szalag változásait. Kiáltás ennek a fickónak ~! a videója segített a helyes úton járni, de még ki kellett találnom, hogyan kell beugranom a webkamerámba… és megtudnom az ffmpeg X/

Arthur Reeder: https://www.youtube.com/embed/kb_5_9GkwZc az egyik lehetséges út, hogy továbbvigyük ezt, az lenne, ha ezt a szerelőt használnánk a streameléshez, és egy másik pi -t és a króm kiterjesztésű fényáramot használnánk az adatfolyam lekérésére, és nem a webkamera betáplálására ebbe vagy más módon. https://www.youtube.com/embed/kb_5_9GkwZc IS: ha hangot szeretne hozzáadni, amint azt a mans youtube videója is mutatja, akkor ezt a karakterláncot használhatja, nem akartam, hogy a házamat rögzítsék, és rángatózásra küldve, ez a szobámban ül, így nem sugározok hangot, ez is segít csökkenteni a pi terhelését.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i default -af acompressor = küszöb = 0,089: ratio = 9: attack = 200: release = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -előre beállított ultragyors -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

11. lépés:

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

most az utolsó szakaszig, megvalósítva az arduino és pi soros kommunikációt a python segítségével.

--- a ki az otthoni projekt --- A projekt egy python szkriptet használ, amely nmap-t futtat a terminálon, másolja át annak tartalmát, elemezze a nem szükséges szöveget, és összehasonlítja a hálózaton lévő mac-címeket a felsoroltakkal mac címeket, és ha van egyezés, az illető otthon van. a mac címeket az útválasztón végzett nyomozási munkával találták meg, de az nmap eszköz információt nyújt a kód által generált szövegfájl eszközeiről. ha a felhasználó jelen van, akkor egy karaktert küld az arduino -nak, és az arduino megvárja, amíg az ellenőrző lista elkészül, és felgyújtja a jelenlegi eszközök mac -címéhez tartozó profiloknak megfelelő LED -eket. hozzáadhat más dolgokat is, például ha a discord botok parancsokat futtatnak azokkal a személyekkel, akik ugyanazzal a kóddal érkeznek vagy mennek, ha az alfolyamat-operátorral végzi a terminálparancsokat a python szkriptjében. így először telepítjük az nmap sudo apt-get install nmap alkalmazást. Ezután le kell töltenie a fájlokat a Git-Hub klubjainkról.

github.com/ValenciaRobotics/embeddedclub

a python kódhoz a raspbian telepítéshez minden szükséges, ami ebben a kódban használatos, így nincs szükség további telepítésre. az import re, az import alfolyamatokat, az importálási időt, a soros importálást használtuk, fontos megjegyezni, hogy a python behúzást használ a kódblokkok szétválasztásához, ezért vegye figyelembe, hogy ha úgy dönt, hogy megváltoztatja a kód írásának módját:) a py thonny ide és néhány más lehetőség közül azt találom, hogy a szkript futtatása thonny -ban valóban egyszerű, ha rákattint a fájlra, és megpróbálja végrehajtani, azt javasolta vagy feltételezte, hogy a thonny az, amit használni akart. a program futtatása előtt szerkesztenie kell az alábbiakat. 14. sor: a * szimbólumok a saját útválasztó adataim elfedésére szolgálnak, ezt le kell cserélnie a saját helyi ip -jére. ugyanaz lenne, mint amit az útválasztóhoz való csatlakozáshoz használ. 28., 38., 48., 58. sor: ezek mindegyike a * szimbólumot használja a hálózatomból felsorolt eszköz -mac -címek elfedésére, a kapcsolatok észleléséhez ezeket a saját hálózatán lévő eszközök mac -címére kell módosítania. miért a mac címek? mert anélkül, hogy lefoglalná a helyeket az eszközéhez, biztosan ugyanazok maradnak, hacsak valaki nem hamisít. problémákat okoz ezzel a kóddal, csak akkor észleli, ha a kapcsolat aktívan használja az internetet, így előfordulhat, hogy nem észleli annak ellenére, hogy a felhasználó jelen van. az arduino kódban a következőket kell megváltoztatni. először az Eszközök fülre kell lépnie, válassza ki a könyvtárak kezelőjét, és keresse meg a "fastLED" kifejezést, és telepítse a "fastLED" könyvtárat. Ezután be kell töltenie a "ki otthon".ino kódot a github oldalról, és szükség szerint módosítania kell a következőket. 86. sor: változtassa meg a színeket annak alapján, hogy mit szeretne csatolni a felhasználóknak:)

// kapcsolja be, amire szüksége van

if (d == 1) {ledek [0] = 0xdd8bff; // lila ledek [1] = 0xdd8bff;}

if (l == 1) {ledek [2] = CRGB:: Zöld; ledek [3] = CRGB:: Zöld;}

if (k == 1) {ledek [4] = CRGB:: Piros; ledek [5] = CRGB:: Piros; }

ha (j == 1) {ledek [6] = CRGB:: Kék; ledek [7] = CRGB:: Kék;}

FastLED.show (); késleltetés (30000); // 10 másodperc várakozás a kapcsolótáskán, a következő rövid magyarázat a további felhasználók hozzáadásához

void loop () {

ha (Serial.available ()> 0) {

Sorozat.println ();

személy = Sorozat.olvasás ();

késleltetés (1000);

kapcsoló (személy) {

„D” eset: d = 1;

személy = 'F';

szám = szám+1;

szünet;

eset ':

d = 0;

személy = 'F';

szám = szám+1;

szünet;

a D nagybetű a python szkriptből kapott karakter, így tudja, hogy a felhasználó jelen van, mert a kapott betű a D nagybetű, ezért az INTEGER d értékét 1 -re változtatja, ha kisbetű, mint amennyit tud hiányoznak, így az INTEGER értéke 0. A LED -ek előzetes világításának feltétele a szkriptben egy olyan kijelentést használ, hogy HA d 1, akkor megvilágítja a LED -et, de ha nem, akkor a led "fekete" marad, azaz nem világít. ez a kód a "fastLED" könyvtárat használja, és sok dokumentáció van erről. ne feledje, hogy ha megváltoztatja a karaktereket, hozzáad karaktereket vagy eltávolít karaktereket, akkor módosítania kell a python parancsfájlt, hogy visszaadja azokat is, amelyeket megváltoztatott, a void ciklus feltételét is. if (count == 4) {holdup ();}} a számlálásnak tükröznie kell a "nyomon követett" eszközök számát. az én esetemben ez 4, tehát megvárja, amíg 4 készüléket jelenlévőnek vagy hiányzónak nyilvánítanak, majd frissíti a LED szalagot. a python kódban a 31., 34., 41., 44., 51., 54., 61., 64. sor a következő sorral rendelkezik. küldeni az arduino -nak. ezt változtasd meg, ha megváltoztatod az arduino kódját vagy fordítva:)

Ismét zárásként szeretném elismerni a csapattársamat, Jon -t, remek munkát végzett, amikor felvette a lazaságot, amikor szükségünk volt rá.

a Python -szkriptet Jonathan De La Cruz biztosította

az Arduino -szkriptet és a házilabor végigjárását és beállítását végezte: Dylan Poll

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

Reméljük nyerünk legalább egy pólót! Ezt frissíteni fogom shell parancsokkal, hogy automatikusan letöltsem és telepítsem ennek nagy részét, klubjaink honlapja valójában letölthető shell parancsfájlokkal rendelkezik az ffmpeg műveletek elvégzéséhez.

Ez a projekt sok időt vett igénybe, az alapoktól alapítottam a klubnak ezt a részlegét, így büszkén mondhatom, hogy ez a pillanat sok örömet okoz nekem.:) köszönöm az idejét, van egy működő platformunk, amit most fejleszteni tudok a klubomban a projekt miatt.

Ajánlott: