Table des matières:

Raspberry Pi HomeLab et Who Is Home : 11 étapes
Raspberry Pi HomeLab et Who Is Home : 11 étapes

Vidéo: Raspberry Pi HomeLab et Who Is Home : 11 étapes

Vidéo: Raspberry Pi HomeLab et Who Is Home : 11 étapes
Vidéo: How to Homelab: 3 awesome apps to run on your Raspberry Pi 2024, Novembre
Anonim
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison
Raspberry Pi HomeLab et qui est à la maison

Il s'agit de mon premier indestructible, mais cette instructable a deux fazes.

faze one: configure un pi pour qu'il fonctionne comme un laboratoire à domicile pour le travail IOT pour une équipe d'étudiants développeurs.

faze two: utilise le système pour le développement, en mettant en œuvre une démonstration à l'aide de notre projet who is home.

à la fin de cela, vous aurez un pi sans tête accessible à distance qui peut être utilisé par des personnes pour programmer et travailler à distance sur des appareils IOT.

maintenant, je préviens qu'en ouvrant votre pi au public sans sécurité, vous vous exposez au risque d'attaque de votre réseau domestique.

nous allons passer en revue la première faze dans les étapes suivantes, mais il s'agit d'un lien vers des informations sur notre club et le projet who is home.

github.com/ValenciaRobotics/embeddedclub

QuiEstMaison

le projet Who Is home effectue les opérations suivantes: exécute un script python qui vérifie les adresses mac des appareils connectés à votre réseau. il utilise Nmap pour cela. il exécute ces adresses contre une liste d'adresses et si l'adresse répertoriée est présente, il envoie un caractère à un arduino en utilisant des communications série. l'arduino contrôle une bande LED et lorsqu'il reçoit un char, il a une couleur associée pour cet appareil et il allume les LED pour cette personne en fonction de leur présence.

sous-site de nos divisions

sites.google.com/view/valencia-robotics

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

le site de nos clubs

sites.google.com/view/valenciatechclub

le script Python a été fourni par: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

le script Arduino, la marche à suivre et la configuration du laboratoire à domicile ont été effectués par: Dylan Poll

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

Je suis Dylan Poll, je suis l'actuel président du club technologique de notre collège et je suis également le responsable des systèmes embarqués.

Fournitures

Un pi

Un arduino

Une planche à pain

fils de liaison

Une webcam

Bande LED RVB adressable individuellement

alimentation pour votre pi, un clavier une souris, un ordinateur pour faire la configuration initiale.

Étape 1: Téléchargement et installation des fichiers de configuration initiale

télécharger et installer putty (windows)

www.putty.org

télécharger rufus et installer

rufus.ie

télécharger raspbian full buster et le logiciel recommandé (.zip)

www.raspberrypi.org/downloads/raspbian/

extraire le contenu du.zip ce sera votre [fichier image].

prenez une carte micro sd et utilisez un dock ou un périphérique microsd vers usb et branchez-le sur votre ordinateur formatez votre carte sd

Étape 2: deuxième partie: installer Raspbian à l'aide de Rufus

Deuxième partie: Installer Raspbian à l'aide de Rufus
Deuxième partie: Installer Raspbian à l'aide de Rufus

exécutez rufus sélectionnez votre carte SD dans le premier champ sélectionnez le fichier image raspbian pour le.iso/.img sélectionnez démarrer et attendez qu'il se termine.

Étape 3: Troisième partie: Branchement du Pi

une fois cela fait, retirez la carte SD, insérez-la dans la fente pour carte SD sur le pi, c'est sur la prise "inférieure" du cordon HDMI au pi d'abord, qu'un clavier et une souris, et le dernier câble d'alimentation. si vous branchez d'abord l'alimentation, il se peut que votre moniteur/téléviseur ne soit pas enregistré.

Étape 4: quatrième partie: Configuration de votre compte

connectez-vous à pi !faites la première configuration d'exécution ! ne le sautez pas ! sélectionnez le clavier anglais américain ou vous ne trouverez pas votre symbole @ plus tard… si vous ne le faites pas, votre symbole @ est là où se trouve votre ". connectez-vous à votre wifi sur pi ne mettez pas encore à jour. J'ai une raison. appuyez sur la touche du clavier Windows " et allez dans les préférences, allez dans la configuration pi. allez dans l'onglet interfaces.

activer VNC…. et tout le reste ne redémarre pas.

Étape 5: cinquième partie: configurer votre Pi comme sans tête (la meilleure chose de tous les temps)

Cinquième partie: Configurer votre Pi comme sans tête (la meilleure chose de tous les temps)
Cinquième partie: Configurer votre Pi comme sans tête (la meilleure chose de tous les temps)

regardez en haut à droite de votre écran. vous verrez le logo VNC noir et bleu. ouvre ça. appuyez sur connexion, créez et comptez. ajouter le pi. sur votre ordinateur de bureau/ordinateur portable, ouvrez la recherche du navigateur sur l'installation de téléchargement de la visionneuse google VNC. Connectez-vous à votre compte. vérifiez votre e-mail pour la connexion et autorisez-vous. connectez-vous à votre pi (tapez le mot de passe pi dans le deuxième menu de connexion) si cela fonctionne, éteignez votre pi. débranchez votre pi et tout. placez le pi dans un coin de votre pièce et n'y acheminez que le câble d'alimentation. vous pouvez vous connecter au pi à l'aide de la visionneuse VNC. vous avez maintenant un pi "sans tête". vous pouvez également y accéder en SSH (voir les informations SSH dans la section trucs sympas)

Étape 6: Sixième partie: Installation de tous les outils de base pour le développement sur un Pi

Sixième partie: Installer tous les outils de base pour développer sur un Pi
Sixième partie: Installer tous les outils de base pour développer sur un Pi

en utilisant SSH ou VNC (ou si vous avez décidé de ne pas être cool et de le configurer sans tête), procédez comme suit. open terminal (cette prochaine partie peut prendre un certain temps….) exécutez ces commandes une à la fois après qu'elles soient TERMINÉES.

sudo apt-get mise à jour; sudo apt-get upgrade install ffmpeg{ sudo apt-get install ffmpeg

Étape 7: Septième partie: Installation du WebIDE Adafruit

Septième partie: Installation du WebIDE Adafruit
Septième partie: Installation du WebIDE Adafruit

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh ouvre un navigateur sur votre bureau principal. pointez l'URL de votre navigateur sur "https://***.*.*.***:8080" remplacez le "*" par l'adresse IP locale de votre Pi. faire un nom d'utilisateur et passer. vous avez maintenant la configuration webIDE d'adafruit.

Étape 8: huitième partie: mettre à jour Node-red et Node.js

update-nodejs-and-nodered le prochain code fera fonctionner nodered au démarrage tout comme le webIDE adafruit, c'est important si vous voulez développer sur ces choses. sudo systemctl enable nodered.service redémarrer le Pi

Étape 9: neuvième partie: Installation de l'IDE Arduino

Neuvième partie: Installation de l'IDE Arduino
Neuvième partie: Installation de l'IDE Arduino

vous pouvez le faire via la ligne de commande mais…. ce ne sera pas la version complète.. ce qui signifie que vous ne pouvez pas utiliser l'outil d'importation/recherche de bibliothèque, pour installer la version complète, vous devez vous rendre sur le site Web d'arduino et télécharger la version pour votre modèle pi. ce sera l'ARM32bit pour le pi3, obtenez la version stable. open terminal. (remplacez les * par les informations de version) exécutez ces commandes.

www.arduino.cc/en/Main/Software

Téléchargements de cd/ tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.* /opt sudo /opt/arduino-1.*.*/install.sh

Étape 10: Dixième partie: Ffmpeg

Dixième partie: Ffmpeg
Dixième partie: Ffmpeg

1x webcam logitech

(les éléments suivants n'incluent pas ce dont vous avez besoin pour exécuter un flux 24h / 24 et 7j / 7) 1x planche à pain une deuxième bande de LED adressable individuellement raspberry pi modèle 3 b (avec carte sd). le fil de connexion arduino nano active la visionneuse VNC sur les deux Pi(s)

préférences pi, activer vnc créer un compte avec la visionneuse VNC IMPORTANT: sur le pi que vous prévoyez d'utiliser comme banc de travail public, accédez aux paramètres du serveur vnc, options, onglet expert et faites un délai d'inactivité: 0 secondes, il est configuré pour fermer Vnc viewer si inactif après une heure, cela empêchera votre fenêtre de se fermer à mi-chemin installez vnc viewer sur streamer pi dans le terminal.

sudo apt-get install vnc-java y

branchez votre webcam et..installez votre webcam.

sudo apt installer fswebcam

installer ffmpeg sudo apt-get installer ffmpeg y

c'est là que vos propres choix entrent en jeu. dans le terminal, exécutez ce script pour ouvrir une fenêtre sur le bureau de votre streamer pi pour votre webcam.

ffplay -window_title "pi-cam" /dev/video0 -video_size 1920x1080 -vf crop=400:500:300:50 -framerate 20 ffplay vous permettra de voir cela dans une fenêtre nommée pi-cam, la webcam qu'elle vous montre est à l'emplacement dev/video0 et sa taille d'origine est de 1920x1080. Je veux seulement voir le crop=width:height:topleft_X:topleft_Y et un framerate de 20 me suffit. le prochain code sera diffusé sur Twitch.

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

-f x11grab est utilisé pour récupérer votre écran. ma résolution d'écran est réglée sur 1280x1024. Je veux l'afficher au format vidéo 1280x720 donc -vf.

2 m = taux de téléchargement de 2 mgb. -f flv est de formater la vidéo en.flv afin que Twitch puisse l'utiliser.

maintenant, vous pouvez donner à votre équipe vos informations d'identification VNC à l'établi Pi et ils peuvent voir les modifications apportées à la bande led en direct à distance. Bravo à ce gars~ ! sa vidéo m'a aidé à me mettre sur la bonne voie, je devais quand même trouver comment faire apparaître ma webcam… et découvrir ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc REMARQUE: je ne suis pas la personne la plus informée, cela fonctionne simplement pour mes besoins, si quelqu'un a des conseils constructifs, j'aimerais les entendre mais s'il vous plaît ne le faites pas Cela signifie que l'une des voies possibles pour aller plus loin serait d'utiliser ce mécanisme pour diffuser cela, et d'utiliser un autre pi et l'extension chrome lightstream pour récupérer ce flux et alimenter la webcam dans cela ou de toute autre manière. https://www.youtube.com/embed/kb_5_9GkwZc AUSSI: si vous souhaitez ajouter de l'audio, comme on le voit dans la vidéo youtube de l'homme, vous pouvez utiliser cette chaîne, je ne voulais pas que ma maison soit enregistrée et envoyé à twitch, cela est assis dans ma chambre donc je ne diffuse aucun audio, cela aide également à réduire la charge sur le 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 -preset ultrarapide -c:a aac -pix_fmt yuv420p -f flv "rtmp://live-lax.twitch.tv/app/(insertyourstreamkeyhere)"

Étape 11:

Image
Image
Image
Image
Image
Image
Image
Image

maintenant à la dernière ligne droite, implémentant la communication série arduino et pi avec python.

---le projet who is home --- Le projet utilise un script python qui exécute nmap dans le terminal, copie le contenu de celui-ci, analyse le texte dont nous n'avons pas besoin et compare les adresses mac sur le réseau avec celles répertoriées adresses mac et s'il y a une correspondance, cette personne est à la maison. les adresses mac ont été trouvées en effectuant un travail d'enquête sur le routeur, mais l'outil nmap vous donne des informations sur les périphériques dans le fichier texte généré par le code. si l'utilisateur est présent, il envoie un caractère à l'arduino, et l'arduino attend que la liste de contrôle soit terminée, et allume les LED correspondant aux profils répertoriés pour les adresses mac des appareils présents. vous pouvez ajouter d'autres choses, comme faire en sorte que les robots discord exécutent des commandes sur des personnes entrant ou sortant avec ce même code en utilisant l'opérateur de sous-processus pour exécuter des commandes de terminal dans votre script python. donc d'abord nous installons nmap sudo apt-get install nmap. Ensuite, vous voudrez télécharger les fichiers sur nos clubs Git-Hub.

github.com/ValenciaRobotics/embeddedclub

pour le code python, l'installation de raspbian est livrée avec tout ce qui est utilisé dans ce code, vous n'avez donc besoin de rien d'autre installé. nous avons utilisé import re, import subprocess, import time, import serial il est important de noter que python utilise l'indentation pour séparer les blocs de code, alors sachez-le si vous décidez de changer la façon dont le code est écrit:) le py est livré avec thonny ide et quelques autres options, je trouve que l'exécution du script dans thonny est vraiment simple, si vous cliquez sur le fichier et essayez de l'exécuter, il a été suggéré ou supposé que thonny est ce que vous vouliez utiliser. avant d'exécuter le programme, vous devrez modifier les éléments suivants. ligne 14: les symboles * sont utilisés pour masquer les informations de mon propre routeur, vous devrez les remplacer par votre propre ip locale. ce serait la même chose que ce que vous utilisez pour vous connecter à votre routeur. lignes 28, 38, 48, 58: elles utilisent toutes le symbole * pour masquer les adresses mac des appareils répertoriées sur mon réseau, vous devez les remplacer par les adresses mac des appareils de votre propre réseau pour détecter les connexions. pourquoi les adresses mac ? car sans réserver d'emplacements pour votre appareil, ils sont sûrs de rester les mêmes, à moins que quelqu'un ne les falsifie. problèmes avec ce code, il ne détectera que lorsqu'une connexion utilise activement Internet, il peut donc ne pas être détecté malgré la présence d'un utilisateur. dans le code arduino, vous voudrez changer ce qui suit. tout d'abord, vous voudrez aller dans l'onglet outils, sélectionner le gestionnaire de bibliothèques, rechercher "fastLED" et installer la bibliothèque pour "fastLED". Ensuite, vous devrez charger le code.ino "qui est à la maison" à partir de la page github et modifier les éléments suivants à votre guise. ligne 86: changez les couleurs en fonction de ce que vous voulez que vos utilisateurs attachent:)

// activer ce dont vous avez besoin

if(d == 1){ leds[0] = 0xdd8bff; // leds violettes[1] = 0xdd8bff;}

if(l == 1){ leds[2] = CRGB::Vert; leds[3] = CRGB::Vert;}

if(k == 1){ leds[4] = CRGB::Rouge; leds[5] = CRGB::Rouge; }

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

FastLED.show(); retard (30000); //10 secondes d'attente sur le boîtier du commutateur, une brève explication sur la façon d'ajouter plus d'utilisateurs est la suivante

boucle vide(){

if (Série.disponible() > 0) {

Serial.println();

personne = Serial.read();

retard(1000);

changer (personne){

cas 'D': d = 1;

personne = 'F';

compte=compte+1;

Pause;

case'd':

d = 0;

personne = 'F';

compte=compte+1;

Pause;

le D majuscule est le caractère reçu du script python, il sait donc que l'utilisateur est présent car la lettre reçue est le D majuscule, il change donc la valeur de l'ENTIER d en 1, s'il s'agit d'une minuscule qu'il ne le sait sont absents, donc l'ENTIER est défini sur 0. la condition d'éclairage des leds dans le script d'avant utilise une déclaration selon laquelle IF d est égal à 1, mais si ce n'est pas le cas, la led reste "noire", ce qui signifie éteint. ce code utilise la bibliothèque "fastLED" et il y a beaucoup de documentation à ce sujet. notez que si vous modifiez les caractères, ajoutez des caractères ou supprimez des caractères, vous devrez modifier le script python pour renvoyer ceux que vous avez modifiés également, vous devrez également modifier la condition dans la boucle void. if(count == 4){holdup();} } le nombre devra refléter le nombre d'appareils que vous "suivez". dans mon cas c'est 4, donc il attend que 4 appareils aient été déclarés présents ou absents puis il met à jour la bande LED. dans le code python, les lignes 31, 34, 41, 44, 51, 54, 61, 64 ont la ligne suivante ser.write(b'*') # envoie le caractère converti en octet sur serial où * est un caractère c'est envoyer à l'arduino. changez cela si vous changez le code dans l'arduino ou vice versa:)

Encore une fois, en guise de conclusion, je tiens à remercier mon coéquipier Jon, il a fait un excellent travail pour prendre le relais quand nous en avions besoin.

Le script Python a été fourni par: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

le script Arduino, la marche à suivre et la configuration du laboratoire à domicile ont été effectués par: Dylan Poll

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

J'espère que nous gagnerons au moins un t-shirt ! Je vais le mettre à jour avec des commandes shell pour télécharger et installer automatiquement la plupart de ces éléments. Le site Web de nos clubs contient en fait des scripts shell téléchargeables pour effectuer les opérations ffmpeg.

Ce projet a pris beaucoup de temps, j'ai fondé cette division du club à partir de zéro donc je peux dire avec fierté que ce moment m'apporte beaucoup de joie.:) merci pour votre temps, nous avons une plateforme de travail à développer maintenant dans mon club à cause de ce projet.

Conseillé: