Innehållsförteckning:
- Tillbehör
- Steg 1: Ladda ner och installera initialinstallationsfiler
- Steg 2: del två: Installera Raspbian med Rufus
- Steg 3: del tre: Anslutning av Pi
- Steg 4: del fyra: Konfigurera ditt konto
- Steg 5: del fem: Konfigurera din Pi som huvudlös (det bästa någonsin)
- Steg 6: del sex: Installera alla kärnverktyg för utveckling på en Pi
- Steg 7: del sju: Installera Adafruit WebIDE
- Steg 8: del åtta: Uppdatera Node-red och Node.js
- Steg 9: del nio: Installera Arduino IDE
- Steg 10: Del tio: Ffmpeg
- Steg 11:
Video: Raspberry Pi HomeLab och Who Is Home: 11 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Detta är min första oförstörbara, men den här instruerbara har två fazes.
faze ett: är att skapa en pi för att arbeta som ett hemlabb för IOT-arbete för ett team av studentutvecklare.
faze två: använder systemet för utveckling, genom att genomföra en demonstration med vårt vem är hem -projekt.
i slutet av detta kommer du att ha en fjärråtkomlig huvudlös pi som kan användas av människor för att fjärrprogrammera och arbeta på IOT -enheter.
nu varnar jag att genom att öppna din pi för allmänheten utan vederbörlig säkerhet öppnar du dig för risken för att ditt hemnätverk attackeras.
Vi kommer att gå igenom den första fazen i följande steg, men det här är en länk till lite information om vår klubb och projektet vem som är hemma.
github.com/ValenciaRobotics/embeddedclub
WhoIsHome
projektet Who Is home gör följande: kör ett python -skript som söker efter mac -adresser för enheter som är anslutna till ditt nätverk. den använder Nmap för detta. den kör dessa adresser mot en adresslista och om den angivna adressen är närvarande skickar den en char till en arduino med hjälp av seriell kommunikation. arduino styr en LED -remsa och när den får en röding har den en tillhörande färg för den enheten och den tänder lysdioderna för den personen baserat på att de är närvarande.
våra divisioner går ned
sites.google.com/view/valencia-robotics
sites.google.com/view/valencia-robotics/cl…
vår klubbsida
sites.google.com/view/valenciatechclub
Python Script tillhandahålls av: Jonathan De La Cruz
www.linkedin.com/in/jonathandelacruz96/
Arduino Script och gå igenom och installationen av hemlabbet gjordes av: Dylan Poll
www.linkedin.com/in/dylan-poll-4a324a1a2/
Jag är Dylan Poll, jag är den nuvarande presidenten för techklubben på vårt college och jag är också den inbäddade systemledaren.
Tillbehör
En pi
En arduino
En brödbräda
bygelkablar
En webbkamera
individuellt adresserbar RGB LED Strip
strömförsörjning för din pi, ett tangentbord en mus, dator för att göra den första installationen.
Steg 1: Ladda ner och installera initialinstallationsfiler
ladda ner och installera kitt (Windows)
www.putty.org
ladda ner rufus och installera
rufus.ie
ladda ner raspbian full buster och rekommenderad programvara (.zip)
www.raspberrypi.org/downloads/raspbian/
extrahera innehållet i.zip detta blir din [bildfil].
ta ett micro sd -kort, och använd en docka eller en microsd till usb -enhet och anslut det till din dator formatera ditt sd -kort
Steg 2: del två: Installera Raspbian med Rufus
kör rufus välj ditt sd -kort i det första fältet välj raspbian -bildfilen för.iso/.img välj start och vänta tills det är klart.
Steg 3: del tre: Anslutning av Pi
efter att det är klart drar du ut sd -kortet, sätter det i sd -kortplatsen på pi, det sitter på "nedre" kontakten i HDMI -kabeln till pi först, än ett tangentbord och en mus, och den sista strömkabeln. om du ansluter ström först kanske det inte registrerar din bildskärm/tv.
Steg 4: del fyra: Konfigurera ditt konto
logga in på pi! gör den första körningen! hoppa inte över det! välj USA engelska tangentbord eller så hittar du inte din @ -symbol senare … om du inte gör det är din @ -symbol där din "är. logga in på ditt wifi på pi uppdatera inte ännu. Jag har en anledning. tryck på" Windows tangentbordstangent "och gå till inställningar, gå till pi -konfiguration. gå till fliken gränssnitt.
aktivera VNC…. och allt annat startar inte om.
Steg 5: del fem: Konfigurera din Pi som huvudlös (det bästa någonsin)
titta längst upp till höger på skärmen. du kommer att se den svarta och blå VNC -logotypen. öppna det. tryck på logga in, skapa och konto. lägg till pi. på din stationära/bärbara dator öppen webbläsarsökning på google VNC viewer nedladdningsinstallation. Logga in på ditt konto. kontrollera din e -post för att logga in och auktorisera dig själv. anslut till din pi (skriv in pi -lösenordet i den andra inloggningsmenyn) om det fungerar stäng av din pi. koppla ur din pi och allt. sätt pien i ett hörn i rummet och dra bara strömkabeln till den. du kan ansluta till pi med VNC viewer. du har nu en "huvudlös" pi. du kan också SSH till den. (se SSH -info i avsnittet om coola saker)
Steg 6: del sex: Installera alla kärnverktyg för utveckling på en Pi
Använd SSH eller VNC (eller om du bestämde dig för att inte vara cool och ställa in den utan huvud) gör följande. öppen terminal (denna nästa del kan ta ett tag …). kör dessa kommandon en i taget efter att var och en är klar.
sudo apt-get uppdatering; sudo apt-get uppgradering installerar ffmpeg {sudo apt-get install ffmpeg
Steg 7: del sju: Installera Adafruit WebIDE
curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh öppna en webbläsare på ditt skrivbord. rikta din webbläsares URL till "https://***.*.*.***: 8080" ersätt "*" med din Pi: s lokala IP -adress. skapa ett användarnamn och skicka. du har nu adafruit webIDE -installationen.
Steg 8: del åtta: Uppdatera Node-red och Node.js
update-nodejs-and-nodered nästa kod kommer att göra nodered körning vid start precis som adafruit webIDE, detta är viktigt om du vill utveckla på dessa saker. sudo systemctl enable nodered.service starta om Pi
Steg 9: del nio: Installera Arduino IDE
du kan göra det via kommandoraden men …. det kommer inte att vara den fullständiga versionen.. vilket betyder att du inte kan använda biblioteksimport-/sökverktyget, för att installera den fullständiga versionen behöver du gå till arduino -webbplatsen och ladda ner versionen för din pi -modell. det kommer att vara ARM32bit för pi3, få den stabila versionen. öppen terminal. (byt ut *: erna med utgivningsinformationen) kör dessa kommandon.
www.arduino.cc/en/Main/Software
cd Nedladdningar/tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.*/opt sudo /opt/arduino-1.*.*/install.sh
Steg 10: Del tio: Ffmpeg
1x webbkamera logitech
(de följande artiklarna innehåller inte vad du behöver för att köra en 24/7 ström) 1x brödbräda en andra hallon pi modell 3 b (med sd -kort) individuellt adresserbar LED -remsa. arduino nano jumper wire aktivera VNC viewer på båda Pi (er)
pi -inställningar, aktivera vnc skapa ett konto med VNC viewer VIKTIGT: på den pi du planerar att använda som en offentlig arbetsbänk, gå till vnc -serverinställningar, alternativ, expertflik och gör inaktiv timeout: 0 sekunder, det är inställt för att stänga Vnc tittaren om den är inaktiv efter en timme, kommer detta att hindra ditt fönster från att stänga mitten av strömmen installera vnc viewer på streamer pi i terminalen.
sudo apt-get install vnc-java y
anslut din webbkamera och..installera din webbkamera.
sudo apt installera fswebcam
installera ffmpeg sudo apt-get install ffmpeg y
det är här dina egna val spelar in. i terminal, kör detta skript för att öppna ett fönster på din streamer pi: s skrivbord för din webbkamera.
ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay låter dig se detta i ett fönster med namnet pi -cam, webbkameran visar dig på plats dev/video0 och dess ursprungliga storlek är 1920x1080. Jag vill bara se beskärningen = bredd: höjd: topleft_X: topleft_Y och en framerate på 20 räcker för mig. nästa kod kommer att strömma till ryck.
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/ (insertyourstreamkeyhere)"
-f x11grab används för att ta tag i din skärm. min skärmupplösning är inställd på 1280x1024 Jag vill visa den i 1280x720 so -vf videoformat.
2m = 2mgb uppladdningshastighet. -f flv är att formatera videon till.flv så att twitch kan använda den.
nu kan du ge ditt team dina VNC -referenser till arbetsbänken Pi och de kan se förändringarna på ledremsan på distans. Rop till den här killen ~! hans video hjälpte mig att komma igång, jag var fortfarande tvungen att ta reda på hur jag skulle dyka in i min webbkamera … och ta reda på om ffmpeg X/
Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc OBS: Jag är inte den mest informerade personen, det fungerar helt enkelt för mina behov, om någon har konstruktiva råd skulle jag gärna höra det men snälla gör det inte vara elak en av de möjliga vägarna för att ta detta vidare, skulle vara att använda denna mekaniker för att strömma detta, och använda en annan pi och kromförlängningens ljusström för att hämta den strömmen och sedan mata webbkameran till den eller på något annat sätt. https://www.youtube.com/embed/kb_5_9GkwZc OCKSÅ: om du vill lägga till ljud, så som det syns i mans youtube -video, kan du använda den här strängen, jag ville inte att mitt hus skulle spelas in och skickas för att rycka, det här sitter i mitt rum så jag strömmar inget ljud, det hjälper också till att minska belastningen på 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 -förinställning ultrasnabb -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"
Steg 11:
nu till den sista delen, implementera seriell kommunikation med arduino och pi med python.
--- vem är hemprojektet --- Projektet använder ett python-skript som kör nmap i terminalen, kopiera innehållet i det, analyserar texten vi inte behöver och jämför mac-adresserna i nätverket mot listade mac -adresser och om det finns en match är den personen hemma. mac -adresserna hittades genom att utföra undersökningsarbete på routern, men nmap -verktyget ger dig information om enheterna i textfilen som genereras av koden. om användaren är närvarande skickar den ett tecken till arduinoen och arduino väntar tills checklistan är klar och lyser upp lysdioder som motsvarar profilerna som listas för mac -adresserna för nuvarande enheter. du kan lägga till andra saker, till exempel att låta discord-bots köra kommandon när personer kommer eller går med samma kod genom att använda delprocessoperatören för att utföra terminalkommandon i ditt python-skript. så först installerar vi nmap sudo apt-get install nmap. nästa kommer du att vilja ladda ner filerna på våra klubbar Git-Hub.
github.com/ValenciaRobotics/embeddedclub
för pythonkoden kommer den raspbiska installationen med allt som används i den här koden, så du behöver inte installera något extra. vi använde import re, import delprocess, importtid, import seriell det är viktigt att notera att python använder indrag för att separera ut kodblock, så var medveten om det om du bestämmer dig för att ändra hur koden skrivs:) py kommer med thonny ide och några andra alternativ, jag tycker att att köra skriptet i thonny är riktigt rakt fram, om du klickar på filen och försöker köra den, var det föreslå eller anta att thonny var vad du ville använda. innan du kör programmet måste du redigera följande. rad 14: * symbolerna används för att maskera min egen routerinformation, du måste ersätta den med din egen lokala ip. det skulle vara detsamma som vad du använder för att ansluta till din router. rad 28, 38, 48, 58: alla använder symbolen * för att maskera enhets -mac -adresser som listas från mitt nätverk, du måste ändra dem till mac -adresserna för enheterna i ditt eget nätverk för att upptäcka anslutningar. varför mac -adresser? för utan att reservera platser för din enhet kommer de säkert att förbli densamma om inte någon lurar. problem med den här koden, kommer den bara att upptäcka medan en anslutning aktivt använder internet, så den kanske inte upptäcks trots att en användare är närvarande. i arduino -koden vill du ändra följande. Först vill du gå till verktygsfliken, välja bibliotekshanteraren och söka efter "fastLED" och installera biblioteket för "fastLED". Därefter måste du ladda in "who is home".ino -koden från github -sidan och ändra följande som du vill. rad 86: ändra färger utifrån vad du vill att dina användare ska bifoga:)
// slå på det du behöver
om (d == 1) {leds [0] = 0xdd8bff; // lila leds [1] = 0xdd8bff;}
om (l == 1) {leds [2] = CRGB:: Grön; leds [3] = CRGB:: Grön;}
om (k == 1) {leds [4] = CRGB:: Röd; lysdioder [5] = CRGB:: Röd; }
om (j == 1) {leds [6] = CRGB:: Blå; leds [7] = CRGB:: Blå;}
FastLED.show (); fördröjning (30000); // 10 sekunders väntan på switchväskan en kort förklaring till hur man lägger till fler användare är följande
void loop () {
if (Serial.available ()> 0) {
Serial.println ();
person = Serial.read ();
fördröjning (1000);
switch (person) {
case'D ': d = 1;
person = 'F';
count = count+1;
ha sönder;
case'd ':
d = 0;
person = 'F';
count = count+1;
ha sönder;
versalen D är det mottagna tecknet från python -skriptet, så det vet att användaren är närvarande eftersom den mottagna bokstaven är versalen D, så det ändrar värdet på INTEGER d till 1, om det är en liten bokstav än den vet att de är frånvarande så INTEGEREN är inställd på 0. villkoret för LED -belysning i manuset från tidigare använder ett uttalande om IF d är 1 än det kommer att tända lysdioden, men om det inte är det lyser LED som "svart" vilket betyder obelyst. denna kod använder biblioteket "fastLED" och det finns mycket dokumentation om detta. Observera att om du ändrar tecknen, lägger till tecken eller tar bort tecken måste du ändra python -skriptet för att returnera dem du också ändrade dem, du måste också ändra villkoret i tomrumsslingan. if (count == 4) {holdup ();}} räkningen måste återspegla antalet enheter du "spårar". i mitt fall är det 4, så det väntar tills 4 enheter har förklarats som närvarande eller frånvarande och sedan uppdaterar det LED -remsan. i pythonkoden har raderna 31, 34, 41, 44, 51, 54, 61, 64 följande rad ser.write (b ' *') #skickar tecken som byte över serie där * är ett tecken det är skicka till arduino. ändra detta om du ändrar koden i arduino eller tvärtom:)
Återigen, som ett avslutande uttalande, vill jag ge kredit till min lagkamrat Jon, han gjorde ett jättebra jobb med att plocka upp slacken när vi behövde det.
Python Script tillhandahålls av: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/
Arduino Script och gå igenom och installationen av hemlabbet gjordes av: Dylan Poll
www.linkedin.com/in/dylan-poll-4a324a1a2/
Förhoppningsvis vinner vi åtminstone en t-shirt! Jag kommer att uppdatera detta med skalkommandon för att automatiskt ladda ner och installera det mesta, vår klubbs webbplats har faktiskt nedladdningsbara skalskript för att utföra ffmpeg -operationerna.
Detta projekt tog mycket tid, jag grundade denna division av klubben från grunden så jag kan stolt säga att det här ögonblicket ger mig mycket glädje.:) tack för din tid, vi har en arbetsplattform att utveckla nu i min klubb på grund av detta projekt.
Rekommenderad:
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Persienner med ESP8266, Google Home och Openhab -integration och webbkontroll: 5 steg (med bilder)
Kontroll av persienner med ESP8266, Google Home och Openhab -integration och webbkontroll: I den här instruktionsboken visar jag dig hur jag lade automatisering till mina persienner. Jag ville kunna lägga till och ta bort automatiseringen, så all installation är klämd på. Huvuddelarna är: Stegmotor Stegdrivrutinstyrd vid ESP-01 Växel och montering
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid