Inhoudsopgave:
- Benodigdheden
- Stap 1: Initiële installatiebestanden downloaden en installeren
- Stap 2: deel twee: Raspbian installeren met Rufus
- Stap 3: deel drie: de Pi. aansluiten
- Stap 4: deel vier: uw account instellen
- Stap 5: deel vijf: je Pi instellen als headless (het beste ooit)
- Stap 6: deel zes: alle kernhulpmiddelen voor ontwikkeling installeren op een Pi
- Stap 7: deel zeven: de Adafruit WebIDE installeren
- Stap 8: deel acht: update Node-red en Node.js
- Stap 9: deel negen: Arduino IDE installeren
- Stap 10: Deel tien: Ffmpeg
- Stap 11:
Video: Raspberry Pi HomeLab en wie thuis is: 11 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Dit is mijn eerste onverwoestbare, maar deze instructable heeft twee fazes.
faze one: is een pi aan het opzetten om te werken als een thuislab voor IOT-werk voor een team van studentontwikkelaars.
fase twee: gebruikt het systeem voor ontwikkeling, door een demonstratie te implementeren met behulp van ons who is home-project.
aan het einde hiervan heb je een op afstand toegankelijke headless pi die door mensen kan worden gebruikt om op afstand te programmeren en op IOT-apparaten te werken.
nu waarschuw ik dat door je pi voor het publiek te openen zonder de nodige beveiliging, je jezelf blootstelt aan het risico dat je thuisnetwerk wordt aangevallen.
we zullen de eerste fase in de volgende stappen bespreken, maar dit is een link naar wat informatie over onze club en het who is home-project.
github.com/ValenciaRobotics/embeddedclub
Wie Is Thuis
het Who Is home-project doet het volgende: voert een python-script uit dat controleert op de mac-adressen van apparaten die op uw netwerk zijn aangesloten. het gebruikt hiervoor Nmap. het voert die adressen uit tegen een lijst met adressen en als het vermelde adres aanwezig is, stuurt het een char naar een arduino met behulp van seriële communicatie. de Arduino bestuurt een LED-strip en wanneer hij een char ontvangt, heeft hij een bijbehorende kleur voor dat apparaat en hij verlicht de LED's voor die persoon op basis van hun aanwezigheid.
onze divisies subsite
sites.google.com/view/valencia-robotics
sites.google.com/view/valencia-robotics/cl…
onze clubsite
sites.google.com/view/valenciatechclub
het Python-script werd geleverd door: Jonathan De La Cruz
www.linkedin.com/in/jonathandelacruz96/
het Arduino-script en het doorlopen en instellen van het thuislab is gedaan door: Dylan Poll
www.linkedin.com/in/dylan-poll-4a324a1a2/
Ik ben Dylan Poll, ik ben de huidige president van de tech club van ons college en ik ben ook de embedded systems lead.
Benodigdheden
een pi
een arduino
een breadboard
jumperdraden
Een webcam
individueel adresseerbare RGB LED Strip
voeding voor je pi, een toetsenbord, een muis, een computer om de eerste installatie uit te voeren.
Stap 1: Initiële installatiebestanden downloaden en installeren
download en installeer putty (windows)
www.putty.org
download rufus en installeer
rufus.ie
download raspbian volledige buster en aanbevolen software (.zip)
www.raspberrypi.org/downloads/raspbian/
pak de inhoud in de.zip uit. Dit wordt je [afbeeldingsbestand].
neem een micro-sd-kaart en gebruik een dock of een microsd-naar-usb-apparaat en sluit deze aan op uw computer formatteer uw sd-kaart
Stap 2: deel twee: Raspbian installeren met Rufus
run rufus selecteer je SD-kaart in het eerste veld selecteer het raspbian-afbeeldingsbestand voor de.iso/.img select start en wacht tot het klaar is.
Stap 3: deel drie: de Pi. aansluiten
trek daarna de SD-kaart eruit, plaats deze in de SD-kaartsleuf op de pi, steek de "onderste" stekker in de HDMI-kabel naar de pi, dan een toetsenbord en muis en de laatste voedingskabel. als u eerst de stroom aansluit, wordt uw monitor/tv mogelijk niet geregistreerd.
Stap 4: deel vier: uw account instellen
log in op pi !doe de eerste run setup! sla het niet over! selecteer Amerikaans Engels toetsenbord of je zult je @-symbool later niet vinden… als je dat niet doet, is je @-symbool waar je " is. log in op je wifi op pi update nog niet. Ik heb een reden. druk op de "windows-toetsenbordtoets " en ga naar voorkeuren, ga naar pi-configuratie. ga naar het tabblad interfaces.
VNC inschakelen…. en al het andere start niet opnieuw op.
Stap 5: deel vijf: je Pi instellen als headless (het beste ooit)
kijk rechtsboven in je scherm. u ziet het zwart-blauwe VNC-logo. dat openen. klik op inloggen, maken en account. voeg de pi toe. op uw desktop/laptop open browser zoeken op google VNC-viewer downloaden installeren. Log in op jouw account. controleer je e-mail voor het inloggen en autoriseer jezelf. maak verbinding met je pi (typ het pi-wachtwoord in het tweede inlogmenu) als het werkt, zet je pi uit. koppel je pi en alles los. zet de pi in een hoek in je kamer en leid er alleen de stroomkabel naar toe. je kunt verbinding maken met de pi met behulp van VNC-viewer. je hebt nu een "headless" pi. je kunt er ook SSH naartoe (zie SSH info in de coole dingen sectie)
Stap 6: deel zes: alle kernhulpmiddelen voor ontwikkeling installeren op een Pi
met SSH of VNC (of als je besloot niet cool te zijn en het headless in te stellen) doe het volgende. open terminal (dit volgende deel kan even duren…) voer deze commando's een voor een uit nadat ze allemaal VOLTOOID zijn.
sudo apt-get update; sudo apt-get upgrade ffmpeg installeren{ sudo apt-get install ffmpeg
Stap 7: deel zeven: de Adafruit WebIDE installeren
curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh open een browser op uw hoofdbureaublad. wijs uw browser-URL naar "https://***.*.*.***:8080" vervang de "*" door het lokale IP-adres van uw Pi. maak een gebruikersnaam aan en geef door. je hebt nu de adafruit webIDE setup.
Stap 8: deel acht: update Node-red en Node.js
update-nodejs-and-nodered de volgende code laat nodered draaien bij het opstarten, net als de adafruit webIDE, dit is belangrijk als je je op deze dingen wilt ontwikkelen. sudo systemctl enable nodered.service herstart de Pi
Stap 9: deel negen: Arduino IDE installeren
je kunt het doen via de opdrachtregel, maar …. het zal niet de volledige versie zijn.. wat betekent dat je de bibliotheekimport / zoekfunctie niet kunt gebruiken, om de volledige versie te installeren die je nodig hebt om naar de arduino-website te gaan en de versie voor je pi-model te downloaden. het zal de ARM32bit voor de pi3 zijn, haal de stabiele release. open terminal.(vervang de *'s door de release-info) voer deze commando's uit.
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
Stap 10: Deel tien: Ffmpeg
1x webcam logitech
(de volgende items bevatten niet wat je nodig hebt om een 24/7 stream te laten lopen) 1x breadboard een tweede raspberry pi-model 3 b (met sd-kaart) individueel adresseerbare LED-strip. arduino nano-jumperdraad schakelt VNC-viewer in op beide Pi('s)
pi-voorkeuren, schakel vnc in maak een account met VNC-viewer BELANGRIJK: op de pi die u als openbare werkbank wilt gebruiken, ga naar vnc-serverinstellingen, opties, expert-tabblad en maak time-out voor inactiviteit: 0 seconden, het is ingesteld om Vnc te sluiten viewer als deze na een uur inactief is, voorkomt u dat uw venster halverwege de stream sluit. Installeer vnc-viewer op streamer pi in terminal.
sudo apt-get install vnc-java y
sluit je webcam aan en..installeer je webcam.
sudo apt install fswebcam
installeer ffmpeg sudo apt-get installeer ffmpeg y
dit is waar je eigen keuzes in het spel komen. in terminal, voer dit script uit om een venster op het bureaublad van je streamer pi te openen voor je webcam.
ffplay -window_title "pi-cam" /dev/video0 -video_size 1920x1080 -vf crop=400:500:300:50 -framerate 20 ffplay laat je dit zien in een venster genaamd pi-cam, de webcam die je laat zien is op locatie dev/video0 en de oorspronkelijke grootte is 1920x1080. Ik wil alleen de crop=width:height:topleft_X:topleft_Y zien en een framerate van 20 is genoeg voor mij. de volgende code zal naar twitch streamen.
ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -vf scale=1280x720 -c:v h264 -g 24 -b:v 2M -preset ultrasnel -c:a aac -pix_fmt yuv420p -f flv " rtmp://live-lax.twitch.tv/app/(vul hier uw streamsleutel in)"
-f x11grab wordt gebruikt om je scherm te pakken. mijn schermresolutie is ingesteld op 1280x1024 Ik wil dat weergeven in 1280x720 dus -vf videoformaat.
2m= uploadsnelheid van 2 mgb. -f flv is om de video te formatteren in.flv zodat twitch het kan gebruiken.
nu kun je je team je VNC-referenties geven aan de werkbank Pi en ze kunnen de wijzigingen aan de ledstrip op afstand live zien. Shout-out naar deze man~! zijn video hielp me op het goede spoor te komen, ik moest echter nog uitzoeken hoe ik in mijn webcam moest duiken … en meer te weten komen over ffmpeg X/
Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc OPMERKING: ik ben niet de meest geïnformeerde persoon, dit werkt gewoon voor mijn behoeften, als iemand constructief advies heeft, hoor ik het graag, maar doe het alsjeblieft niet een van de mogelijke routes om dit verder te brengen, zou zijn om deze monteur te gebruiken om dit te streamen, en een andere pi en de chromen extensie lightstream te gebruiken om die stream op te halen en dan de webcam daarin of op een andere manier te voeden. https://www.youtube.com/embed/kb_5_9GkwZc OOK: als je audio wilt toevoegen, zoals te zien is in de youtube-video van de man, kun je deze string gebruiken, ik wilde niet dat mijn huis werd opgenomen en verzonden naar twitch, dit zit in mijn kamer, dus ik stream geen audio, het helpt ook de belasting van de pi te verminderen.
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 ultrasnel -c:a aac -pix_fmt yuv420p -f flv "rtmp://live-lax.twitch.tv/app/(insertyourstreamkeyhere)"
Stap 11:
nu naar het laatste stuk, het implementeren van arduino en pi seriële communicatie met python.
---the who is home-project--- Het project gebruikt een python-script dat nmap in terminal uitvoert, de inhoud daarvan kopieert, de tekst die we niet nodig hebben ontleedt en de mac-adressen op het netwerk vergelijkt met de vermelde mac-adressen en als er een match is, is die persoon thuis. de mac-adressen zijn gevonden door onderzoek te doen op de router, maar de nmap-tool geeft je informatie over de apparaten in het tekstbestand dat door de code wordt gegenereerd. als de gebruiker aanwezig is, stuurt het een karakter naar de Arduino, en de Arduino wacht tot de checklist is voltooid, en licht LED's op die overeenkomen met de profielen die worden vermeld voor de mac-adressen van huidige apparaten. je kunt andere dingen toevoegen, zoals discord-bots opdrachten laten uitvoeren op mensen die met dezelfde code komen of gaan door de subprocesoperator te gebruiken om terminalopdrachten in je python-script uit te voeren. dus eerst installeren we nmap sudo apt-get install nmap. vervolgens wil je de bestanden downloaden op onze clubs Git-Hub.
github.com/ValenciaRobotics/embeddedclub
voor de python-code wordt de raspbian-installatie geleverd met alles wat in deze code wordt gebruikt, dus u hoeft niets extra's te installeren. we gebruikten import re, import subproces, import time, import serial. Het is belangrijk op te merken dat python inspringing gebruikt voor het scheiden van codeblokken, dus houd er rekening mee dat als je besluit de manier waarop de code is geschreven te veranderen:) de py wordt geleverd met thonny ide en een paar andere opties, ik vind dat het uitvoeren van het script in thonny echt ongecompliceerd is, als je op het bestand klikt en het probeert uit te voeren, was het suggereren of aannemen dat thonny is wat je wilde gebruiken. voordat u het programma uitvoert, moet u het volgende bewerken. regel 14: de *-symbolen worden gebruikt om mijn eigen routerinformatie te maskeren, die moet je vervangen door je eigen lokale ip. het zou hetzelfde zijn als wat u gebruikt om verbinding te maken met uw router. regels 28, 38, 48, 58: deze gebruiken allemaal het * -symbool om de mac-adressen van apparaten uit mijn netwerk te maskeren, je moet die wijzigen in de mac-adressen van de apparaten op je eigen netwerk om verbindingen te detecteren. waarom mac-adressen? want zonder locaties voor uw apparaat te reserveren, zullen ze zeker hetzelfde blijven, tenzij iemand spoofing uitvoert. problemen met deze code, wordt deze alleen gedetecteerd wanneer een verbinding actief internet gebruikt, dus wordt deze mogelijk niet gedetecteerd ondanks de aanwezigheid van een gebruiker. in de arduino-code wilt u het volgende wijzigen. eerst ga je naar het tabblad tools, selecteer je bibliothekenbeheer, zoek je naar "fastLED" en installeer je de bibliotheek voor "fastLED". vervolgens moet je de "wie is er thuis".ino-code van de github-pagina laden en het volgende naar wens wijzigen. regel 86: verander de kleuren op basis van wat u wilt dat uw gebruikers hebben toegevoegd:)
// zet aan wat je nodig hebt
if(d == 1){ leds[0] = 0xdd8bff; // paarse leds [1] = 0xdd8bff;}
if(l == 1){ leds[2] = CRGB::Groen; leds [3] = CRGB::Groen;}
if(k == 1){ leds[4] = CRGB::Rood; leds [5] = CRGB::Rood; }
if(j == 1){ leds[6] = CRGB::Blauw; leds[7] = CRGB::Blauw;}
FastLED.show(); vertraging (30000); //10 seconde wacht op de schakelkast een korte uitleg voor het toevoegen van meer gebruikers is de volgende:
lege lus(){
if (Serial.available() > 0) {
Serieel.println();
persoon = Serieel.lezen();
vertraging (1000);
schakelaar(persoon){
geval'D': d = 1;
persoon = 'F';
tel = tel+1;
pauze;
geval'd':
d = 0;
persoon = 'F';
tel = tel+1;
pauze;
de hoofdletter D is het ontvangen teken van het python-script, dus het weet dat de gebruiker aanwezig is omdat de ontvangen letter de hoofdletter D is, dus het verandert de waarde van de INTEGER d in 1, als het een kleine letter is dan weet het dat ze zijn afwezig, dus de INTEGER is ingesteld op 0. de voorwaarde voor leds-verlichting in het script van vóór gebruikt een verklaring dat ALS d 1 is, de led zal oplichten, maar als dat niet het geval is, blijft de led als "zwart" wat betekent dat hij niet brandt. deze code maakt gebruik van de bibliotheek "fastLED" en er is veel documentatie hierover. merk op dat als u de tekens wijzigt, tekens toevoegt of tekens verwijdert, u het python-script moet wijzigen om degene die u hebt gewijzigd ook terug te geven, u zult ook de voorwaarde in de void-lus moeten wijzigen. if(count == 4){holdup();} } de telling moet het aantal apparaten weergeven dat u "volgt". in mijn geval is het 4, dus het wacht tot 4 apparaten als aanwezig of afwezig zijn verklaard en dan werkt het de ledstrip bij. in de python-code hebben de regels 31, 34, 41, 44, 51, 54, 61, 64 de volgende regel ser.write(b'*') #sends character cast as byte over serial waarbij * een teken is dat het is naar de arduino sturen. verander dit als je de code in de arduino verandert of vice versa:)
Nogmaals, als slotverklaring wil ik mijn teamgenoot Jon bedanken, hij heeft geweldig werk geleverd door de speling op te vangen wanneer we die nodig hadden.
Het Python-script werd geleverd door: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/
het Arduino-script en het doorlopen en instellen van het thuislab is gedaan door: Dylan Poll
www.linkedin.com/in/dylan-poll-4a324a1a2/
Hopelijk winnen we in ieder geval een t-shirt! Ik zal dit updaten met shell-commando's om het meeste hiervan automatisch te downloaden en te installeren, onze clubwebsite heeft eigenlijk downloadbare shell-scripts om de ffmpeg-bewerkingen uit te voeren.
Dit project heeft veel tijd gekost, ik heb deze divisie van de club van de grond af aan opgericht, dus ik kan met trots zeggen dat dit moment me veel vreugde brengt.:) bedankt voor je tijd, we hebben een werkplatform om nu in mijn club te ontwikkelen vanwege dit project.
Aanbevolen:
Hoe maak je Spring Vibration Sensor thuis!: 5 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe maak je een veertrillingssensor thuis!: Ik werkte aan een nieuw project met een veertrillingssensor, ook bekend als de "poor man's" versnellingsmeter/bewegingssensor! Deze veertrillingsschakelaars zijn zeer gevoelige, niet-directionele, door trillingen geïnduceerde triggerschakelaars. Binnen is een
Hoe u thuis een RC-vliegtuig kunt maken onder $ 60: 4 stappen
Hoe maak je een RC-vliegtuig thuis onder $ 60: Vandaag zal ik je laten zien hoe je een rc-vliegtuig kunt bouwen onder de $ 60. Je kunt mijn video op youtube bekijken voor begrip. In de video vertelde ik de prijs in Indiase roepies omdat ik me op het Indiase publiek wil richten. Als je mijn video leuk vindt, abonneer dan op mijn kanaal voor toekomstige
Thuis een printplaat maken: 11 stappen
Thuis een printplaat maken: print eerst uw plan op papier met laserstraalprinters
Thuis PCB maken: 14 stappen (met afbeeldingen)
Hoe PCB thuis te maken: Website Link: www.link.blogtheorem.com Hallo allemaal, Dit is instructable gaat over "Hoe PCB thuis te maken" zonder speciaal materiaal.Als student elektronica-engineering probeer ik doe-het-zelf-projecten te maken die een eenvoudige elektronica-omschakeling vereisen
Thuis een Bluetooth-gestuurde RC-auto maken: 4 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe u thuis een Bluetooth-gestuurde RC-auto kunt maken: leer hoe u een eenvoudige, door een smartphone bestuurde robotauto kunt maken met behulp van Arduino en zeer eenvoudige elektronische componenten