Inhaltsverzeichnis:

Raspberry Pi HomeLab und wer ist zu Hause - Gunook
Raspberry Pi HomeLab und wer ist zu Hause - Gunook

Video: Raspberry Pi HomeLab und wer ist zu Hause - Gunook

Video: Raspberry Pi HomeLab und wer ist zu Hause - Gunook
Video: HOMELAB 2.0 - #04 Projekte & Ideen - Was kann man alles damit machen? #Projekte #Ideen #HOMELAB 2024, November
Anonim
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause
Raspberry Pi HomeLab und wer ist zu Hause

Dies ist mein erstes unzerstörbares, aber dieses instructable hat zwei Fazes.

faze one: richtet ein PI ein, das als Home-Lab für IOT-Arbeiten für ein Team von studentischen Entwicklern dient.

faze two: nutzt das System für die Entwicklung, indem es eine Demonstration mit unserem Who is home-Projekt implementiert.

Am Ende haben Sie einen remote zugänglichen Headless-Pi, der von Menschen verwendet werden kann, um IOT-Geräte aus der Ferne zu programmieren und zu arbeiten.

Jetzt warne ich, dass Sie sich dem Risiko aussetzen, dass Ihr Heimnetzwerk angegriffen wird, indem Sie Ihr Pi ohne angemessene Sicherheit für die Öffentlichkeit öffnen.

Wir werden in den folgenden Schritten die erste Faze durchgehen, aber dies ist ein Link zu einigen Informationen über unseren Club und das Who-is-Home-Projekt.

github.com/ValenciaRobotics/embeddedclub

Wer ist zu Hause

Das Who Is Home-Projekt führt Folgendes aus: führt ein Python-Skript aus, das die Mac-Adressen von Geräten überprüft, die mit Ihrem Netzwerk verbunden sind. es verwendet dafür Nmap. Es führt diese Adressen gegen eine Liste von Adressen aus und wenn die aufgeführte Adresse vorhanden ist, sendet es über serielle Kommunikation ein Zeichen an ein Arduino. Das Arduino steuert einen LED-Streifen und wenn es ein Zeichen empfängt, hat es eine zugeordnete Farbe für dieses Gerät und es leuchtet die LEDs für diese Person basierend auf ihrer Anwesenheit auf.

unsere abteilungen unterseite

sites.google.com/view/valencia-robotics

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

unsere Vereinsseite

sites.google.com/view/valenciatechclub

das Python-Skript wurde bereitgestellt von: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Das Arduino-Skript und der Durchlauf und die Einrichtung des Heimlabors wurden von Dylan Poll durchgeführt

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

Ich bin Dylan Poll, ich bin der derzeitige Präsident des Tech Clubs unserer Hochschule und auch der Leiter der Embedded Systems.

Lieferungen

Ein pi

Ein Arduino

Ein Steckbrett

Überbrückungsdrähte

Eine Webcam

einzeln adressierbarer RGB-LED-Streifen

Stromversorgung für Ihren Pi, eine Tastatur, eine Maus, einen Computer für die Ersteinrichtung.

Schritt 1: Herunterladen und Installieren der Ersteinrichtungsdateien

Putty herunterladen und installieren (Windows)

www.putty.org

rufus herunterladen und installieren

rufus.ie

Download Raspbian Full Buster und empfohlene Software (.zip)

www.raspberrypi.org/downloads/raspbian/

Extrahieren Sie den Inhalt in der.zip-Datei. Dies wird Ihre [Bilddatei] sein.

Nehmen Sie eine Micro-SD-Karte und verwenden Sie ein Dock oder ein Micro-SD-zu-USB-Gerät und schließen Sie es an Ihren Computer an Formatieren Sie Ihre SD-Karte

Schritt 2: Teil 2: Raspbian mit Rufus installieren

Teil 2: Raspbian mit Rufus installieren
Teil 2: Raspbian mit Rufus installieren

starte rufus wähle deine SD-Karte im ersten Feld aus wähle die Raspbian-Image-Datei für die.iso/.img aus wähle start und warte, bis sie fertig ist.

Schritt 3: Teil Drei: Einstecken des Pi

Nachdem das erledigt ist, ziehen Sie die SD-Karte heraus, stecken Sie sie in den SD-Kartensteckplatz auf dem Pi, stecken Sie das HDMI-Kabel an den Pi zuerst, dann eine Tastatur und Maus und das letzte Stromkabel an den "unteren" Stecker. Wenn Sie zuerst die Stromversorgung anschließen, wird Ihr Monitor/Fernseher möglicherweise nicht registriert.

Schritt 4: Teil vier: Einrichten Ihres Kontos

Melden Sie sich bei pi an! Führen Sie die Ersteinrichtung durch! überspringen Sie es nicht! Wählen Sie die US-englische Tastatur aus oder Sie werden Ihr @-Symbol später nicht finden … wenn Sie dies nicht tun, ist Ihr @-Symbol dort, wo Ihr " ist. Melden Sie sich bei Ihrem WLAN auf pi an, aktualisieren Sie es noch nicht. Ich habe einen Grund. Drücken Sie die "Windows-Tastaturtaste" " und gehen Sie zu den Einstellungen, gehen Sie zur pi-Konfiguration. Gehen Sie zur Registerkarte Schnittstellen.

VNC aktivieren…. und alles andere startet nicht neu.

Schritt 5: Teil 5: Einrichten Ihres Pi als kopflos (das Beste, was es je gab)

Teil 5: Einrichten Ihres Pi als kopflos (das Beste, was es je gab)
Teil 5: Einrichten Ihres Pi als kopflos (das Beste, was es je gab)

schauen Sie oben rechts auf Ihrem Bildschirm. Sie sehen das schwarz-blaue VNC-Logo. öffne das. Klicken Sie auf Anmelden, Erstellen und Konto. füge das Pi hinzu. auf Ihrem Desktop/Laptop öffnen Sie den Browser Suche auf Google VNC Viewer Download installieren. Melde dich in deinem Konto an. Überprüfen Sie Ihre E-Mail für den Login und autorisieren Sie sich. Verbinden Sie sich mit Ihrem Pi (geben Sie das Pi-Passwort im zweiten Login-Menü ein), wenn es funktioniert, schalten Sie Ihren Pi aus. Trennen Sie Ihren Pi und alles. Stellen Sie den Pi in eine Ecke Ihres Zimmers und führen Sie nur das Stromkabel dorthin. Sie können mit dem VNC-Viewer eine Verbindung zum Pi herstellen. Sie haben jetzt einen "kopflosen" Pi. Sie können auch per SSH darauf zugreifen. (Siehe SSH-Info im Abschnitt coole Sachen)

Schritt 6: Teil Sechs: Installieren aller Kerntools für die Entwicklung auf einem Pi

Teil Sechs: Installieren aller Kerntools für die Entwicklung auf einem Pi
Teil Sechs: Installieren aller Kerntools für die Entwicklung auf einem Pi

Verwenden Sie SSH oder VNC (oder wenn Sie sich entschieden haben, nicht cool zu sein und es ohne Kopf einzurichten), gehen Sie wie folgt vor. Öffnen Sie das Terminal (dieser nächste Teil kann eine Weile dauern….) führen Sie diese Befehle nacheinander aus, nachdem jeder fertig ist.

sudo apt-get-Update; sudo apt-get upgrade installiere ffmpeg{ sudo apt-get install ffmpeg

Schritt 7: Teil sieben: Installation der Adafruit WebIDE

Teil sieben: Installation der Adafruit WebIDE
Teil sieben: Installation der Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh öffne einen Browser auf deinem Hauptdesktop. Zeigen Sie Ihre Browser-URL auf "https://***.*.*.***:8080" und ersetzen Sie das "*" durch die lokale IP-Adresse Ihres Pi. einen Benutzernamen erstellen und weitergeben. Sie haben jetzt das adafruit webIDE-Setup.

Schritt 8: Teil 8: Node-red und Node.js aktualisieren

update-nodejs-and-nodered Der nächste Code lässt nodered beim Start laufen, genau wie die adafruit webIDE. Dies ist wichtig, wenn Sie an diesen Dingen entwickeln möchten. sudo systemctl enable nodered.service Neustart des Pi

Schritt 9: Teil Neun: Arduino IDE installieren

Teil Neun: Arduino IDE installieren
Teil Neun: Arduino IDE installieren

Sie können es über die Befehlszeile tun, aber…. Es wird nicht die Vollversion sein. Das heißt, Sie können das Bibliotheksimport- / -suchwerkzeug nicht verwenden. Um die Vollversion zu installieren, müssen Sie auf die Arduino-Website gehen und die Version für Ihr Pi-Modell herunterladen. es wird das ARM32bit für den pi3 sein, hol dir die stabile Version. Öffnen Sie das Terminal. (Ersetzen Sie die * durch die Release-Informationen) führen Sie diese Befehle aus.

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

Schritt 10: Teil 10: Ffmpeg

Teil 10: Ffmpeg
Teil 10: Ffmpeg

1x Webcam-Logitech

(die nächsten Elemente enthalten nicht, was Sie für einen 24/7-Stream benötigen) 1x Steckbrett ein zweites Himbeer-Pi-Modell 3 b (mit SD-Karte) einzeln adressierbarer LED-Streifen. Arduino Nano-Jumper-Draht aktiviert VNC-Viewer auf beiden Pi(s)

pi-Einstellungen, aktivieren Sie vnc Erstellen Sie ein Konto mit dem VNC-Viewer WICHTIG: Gehen Sie auf dem pi, das Sie als öffentliche Werkbank verwenden möchten, zu den vnc-Servereinstellungen, -optionen, der Registerkarte "Experte" und stellen Sie ein Leerlauf-Timeout ein: 0 Sekunden, es ist auf das Schließen von Vnc eingestellt viewer, wenn er nach einer Stunde inaktiv ist, verhindert dies, dass Ihr Fenster während des Streams geschlossen wird. Installieren Sie den vnc-Viewer auf dem Streamer-Pi im Terminal.

sudo apt-get install vnc-java y

Schließen Sie Ihre Webcam an und installieren Sie Ihre Webcam.

sudo apt installieren fswebcam

install ffmpeg sudo apt-get install ffmpeg y

Hier kommen Ihre eigenen Entscheidungen ins Spiel. Führen Sie im Terminal dieses Skript aus, um ein Fenster auf dem Desktop Ihres Streamer-Pi für Ihre Webcam zu öffnen.

ffplay -window_title "pi-cam" /dev/video0 -video_size 1920x1080 -vf crop=400:500:300:50 -framerate 20 ffplay ermöglicht es Ihnen, dies in einem Fenster namens pi-cam zu sehen, die Webcam, die Sie zeigt, ist am Standort dev/video0 und seine Originalgröße beträgt 1920x1080. Ich möchte nur crop=width:height:topleft_X:topleft_Y sehen und eine Framerate von 20 reicht mir. der nächste Code wird zu Twitch gestreamt.

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/(fügen Sie Ihren Streamkeyhier ein)"

-f x11grab wird verwendet, um Ihren Bildschirm zu erfassen. meine Bildschirmauflösung ist auf 1280x1024 eingestellt. Ich möchte das in 1280x720 anzeigen, also -vf-Videoformat.

2 m = 2 mgb Upload-Rate. -f flv formatiert das Video in.flv, damit Twitch es verwenden kann.

Jetzt können Sie Ihrem Team Ihre VNC-Anmeldeinformationen an den Workbench Pi geben und die Änderungen am LED-Streifen live aus der Ferne sehen. Gruß an diesen Kerl~! sein Video hat mir geholfen, auf den richtigen Weg zu kommen, ich musste jedoch noch herausfinden, wie ich meine Webcam einschalte… und mehr über ffmpeg X/ erfahren

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc HINWEIS: Ich bin nicht die informierteste Person, dies funktioniert einfach für meine Bedürfnisse. Wenn jemand konstruktive Ratschläge hat, würde ich sie gerne hören, aber bitte nicht Eine der möglichen Routen, um dies weiterzuführen, wäre, diese Mechanik zu verwenden, um dies zu streamen, und ein anderes Pi und die Chrome-Erweiterung Lightstream zu verwenden, um diesen Stream abzurufen und dann die Webcam in diese oder auf andere Weise einzuspeisen. https://www.youtube.com/embed/kb_5_9GkwZc AUCH: Wenn Sie Audio hinzufügen möchten, wie im YouTube-Video des Mannes zu sehen, können Sie diese Zeichenfolge verwenden, ich wollte nicht, dass mein Haus aufgezeichnet wird und an Twitch gesendet, das sitzt in meinem Zimmer, also streame ich kein Audio, es hilft auch, die Belastung des Pi zu verringern.

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/(insertyourstreamkeyhere)"

Schritt 11:

Bild
Bild
Bild
Bild
Bild
Bild
Bild
Bild

jetzt zum letzten abschnitt, um die serielle kommunikation von arduino und pi mit python zu implementieren.

---das Who-is-Home-Projekt--- Das Projekt verwendet ein Python-Skript, das nmap im Terminal ausführt, den Inhalt davon kopiert, den nicht benötigten Text auswertet und die Mac-Adressen im Netzwerk mit den aufgelisteten vergleicht mac-Adressen und wenn es eine Übereinstimmung gibt, ist diese Person zu Hause. die MAC-Adressen wurden durch Nachforschungen am Router gefunden, aber das nmap-Tool gibt Ihnen Informationen über die Geräte in der vom Code generierten Textdatei. Wenn der Benutzer anwesend ist, sendet es ein Zeichen an das Arduino, und das Arduino wartet, bis die Checkliste abgeschlossen ist, und leuchtet LEDs auf, die den für die Mac-Adressen der vorhandenen Geräte aufgelisteten Profilen entsprechen. Sie können andere Dinge hinzufügen, z. B., dass Discord-Bots Befehle ausführen, wenn Personen mit demselben Code kommen oder gehen, indem Sie den Unterprozessoperator verwenden, um Terminalbefehle in Ihrem Python-Skript auszuführen. Also installieren wir zuerst nmap sudo apt-get install nmap. Als nächstes möchten Sie die Dateien auf unserem Club Git-Hub herunterladen.

github.com/ValenciaRobotics/embeddedclub

Für den Python-Code enthält die Raspbian-Installation alles, was in diesem Code verwendet wird, sodass Sie nichts zusätzlich installieren müssen. Wir haben import re, import subprocess, import time, import serial verwendet. Es ist wichtig zu beachten, dass Python Einrückungen zum Trennen von Codeblöcken verwendet thonny ide und ein paar andere Optionen finde ich, dass das Ausführen des Skripts in thonny wirklich einfach ist. Wenn Sie auf die Datei klicken und versuchen, sie auszuführen, wurde vorgeschlagen oder angenommen, dass thonny das ist, was Sie verwenden wollten. Bevor Sie das Programm ausführen, müssen Sie Folgendes bearbeiten. Zeile 14: Die *-Symbole werden verwendet, um meine eigenen Router-Informationen zu maskieren, Sie müssen diese durch Ihre eigene lokale IP-Adresse ersetzen. Es wäre dasselbe, was Sie für die Verbindung zu Ihrem Router verwenden. Zeilen 28, 38, 48, 58: Diese verwenden alle das *-Symbol, um die in meinem Netzwerk aufgelisteten Geräte-Mac-Adressen zu maskieren. Sie müssen diese in die Mac-Adressen der Geräte in Ihrem eigenen Netzwerk ändern, um Verbindungen zu erkennen. warum mac-adressen? Denn ohne die Speicherorte für Ihr Gerät zu reservieren, bleiben sie mit Sicherheit gleich, es sei denn, jemand fälscht. Probleme mit diesem Code werden nur erkannt, während eine Verbindung aktiv das Internet verwendet, sodass sie möglicherweise nicht erkannt wird, obwohl ein Benutzer anwesend ist. Im Arduino-Code möchten Sie Folgendes ändern. Zuerst möchten Sie auf die Registerkarte "Tools" gehen, den Bibliotheksmanager auswählen und nach "fastLED" suchen und die Bibliothek für "fastLED" installieren. Als nächstes müssen Sie den.ino-Code "who is home" von der Github-Seite laden und Folgendes nach Belieben ändern. Zeile 86: Ändern Sie die Farben basierend auf dem, was Ihre Benutzer angehängt haben sollen:)

// schalte ein, was du brauchst

Wenn (d == 1) {leds[0] = 0xdd8bff; // lila LEDs [1] = 0xdd8bff;}

Wenn (l == 1) { LEDs [2] = CRGB:: Grün; LEDs[3] = CRGB::Grün;}

Wenn (k == 1) { LEDs [4] = CRGB:: Rot; LEDs[5] = CRGB::Rot; }

Wenn (j == 1) { LEDs [6] = CRGB:: Blau; LEDs[7] = CRGB::Blau;}

FastLED.show(); Verzögerung (30000); // 10 Sekunden warten auf den Switch-Fall. Eine kurze Erklärung zum Hinzufügen weiterer Benutzer lautet wie folgt

Leere Schleife () {

if (Seriell.verfügbar() > 0) {

Serial.println();

person = Serial.read();

Verzögerung (1000);

Schalter (Person) {

Fall 'D': d = 1;

Person = 'F';

zählen = zählen + 1;

brechen;

Fall'd':

d = 0;

Person = 'F';

zählen = zählen + 1;

brechen;

der Großbuchstabe D ist das empfangene Zeichen aus dem Python-Skript, also weiß es, dass der Benutzer anwesend ist, da der empfangene Buchstabe der Großbuchstabe D ist, also ändert es den Wert von INTEGER d auf 1, wenn es ein Kleinbuchstabe ist, als er weiß fehlen, so dass INTEGER auf 0 gesetzt ist. Die Bedingung für das Aufleuchten der LEDs im Skript von vor verwendet eine Aussage, dass IF d 1 ist, dann wird die LED aufleuchten, aber wenn dies nicht der Fall ist, bleibt die LED "schwarz", was bedeutet, dass sie nicht leuchtet. Dieser Code verwendet die Bibliothek "fastLED" und es gibt eine Menge Dokumentation dazu. Beachten Sie, dass Sie, wenn Sie die Zeichen ändern, Zeichen hinzufügen oder Zeichen entfernen, das Python-Skript ändern müssen, um die geänderten Zeichen zurückzugeben. Sie müssen auch die Bedingung in der void-Schleife ändern. if(count == 4){holdup();} } Die Anzahl muss die Anzahl der Geräte widerspiegeln, die Sie "verfolgen". in meinem Fall sind es 4, also wartet es, bis 4 Geräte als vorhanden oder abwesend deklariert wurden und aktualisiert dann den LED-Streifen. im Python-Code haben die Zeilen 31, 34, 41, 44, 51, 54, 61, 64 die folgende Zeile ser.write(b'*') #sendet Zeichen, die als Byte über seriell umgewandelt werden, wobei * ein Zeichen ist, das es ist an das arduino senden. Ändern Sie dies, wenn Sie den Code im Arduino ändern oder umgekehrt:)

Als abschließendes Statement möchte ich noch einmal meinem Teamkollegen Jon Anerkennung zollen, er hat großartige Arbeit geleistet, um die Lücke zu schließen, wenn wir sie brauchten.

Das Python-Skript wurde bereitgestellt von: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Das Arduino-Skript und der Durchlauf und die Einrichtung des Heimlabors wurden von Dylan Poll durchgeführt

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

Hoffentlich gewinnen wir mindestens ein T-Shirt! Ich werde dies mit Shell-Befehlen aktualisieren, um das meiste davon automatisch herunterzuladen und zu installieren. Unsere Club-Website verfügt tatsächlich über herunterladbare Shell-Skripte, um die ffmpeg-Operationen auszuführen.

Dieses Projekt hat viel Zeit in Anspruch genommen, ich habe diese Abteilung des Clubs von Grund auf gegründet und kann stolz sagen, dass dieser Moment mir viel Freude bereitet.:) danke für deine zeit, wir haben aufgrund dieses projekts jetzt eine arbeitsplattform in meinem club.

Empfohlen: