Съдържание:

Raspberry Pi HomeLab и кой е у дома: 11 стъпки
Raspberry Pi HomeLab и кой е у дома: 11 стъпки

Видео: Raspberry Pi HomeLab и кой е у дома: 11 стъпки

Видео: Raspberry Pi HomeLab и кой е у дома: 11 стъпки
Видео: Home Assistant. Урок 1.1 - Установка Supervised HA на Raspberry PI 3B+ или 4B, обновление 11.2021 2024, Юли
Anonim
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи
Raspberry Pi HomeLab и Кой е вкъщи

Това е първият ми неразрушим, но този инструктаж има две фази.

Първа фаза: настройването на pi да работи като домашна лаборатория за работа по IOT за екип от студенти разработчици.

Втора фаза: използва системата за разработка, като прилага демонстрация, използвайки нашия проект „Който е у дома“.

до края на това ще имате дистанционно достъпно пи без глава, което може да се използва от хората за дистанционно програмиране и работа на IOT устройства.

сега предупреждавам, че като отворите своя пи за обществеността без надлежна сигурност, вие се отваряте за риска от атака на домашната ви мрежа.

ще преминем през първата фаза в следващите стъпки, но това е връзка към малко информация за нашия клуб и проекта „кой е вкъщи“.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

проектът Who Is home прави следното: изпълнява скрипт на python, който проверява за mac адресите на устройства, свързани към вашата мрежа. той използва Nmap за това. той изпълнява тези адреси срещу списък с адреси и ако изброеният адрес присъства, той изпраща char до arduino, използвайки серийни комуникации. arduino контролира LED лента и когато получи символ, той има свързан цвят за това устройство и свети светодиодите за това лице въз основа на тяхното присъствие.

нашите подразделения са подсайт

sites.google.com/view/valencia-robotics

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

сайта на нашите клубове

sites.google.com/view/valenciatechclub

скриптът на Python е предоставен от: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

скриптът на Arduino и разходката и настройката на домашната лаборатория са направени от: Dylan Poll

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

Аз съм Дилън Поул, настоящият президент съм на техническия клуб на нашия колеж и също съм водещ на вградените системи.

Консумативи

Пи

Ардуино

Макет

джъмперни проводници

Уеб камера

индивидуално адресируема RGB LED лента

захранване за вашето пи, клавиатура мишка, компютър за първоначална настройка.

Стъпка 1: Изтегляне и инсталиране на файлове за първоначална настройка

изтеглете и инсталирайте kit (windows)

www.putty.org

изтеглете rufus и инсталирайте

rufus.ie

изтеглете raspbian full buster и препоръчителен софтуер (.zip)

www.raspberrypi.org/downloads/raspbian/

извлечете съдържанието в.zip това ще бъде вашият [файл с изображение].

вземете micro sd карта и използвайте док или microsd за usb устройство и го включете във вашия компютър, форматирайте вашата sd карта

Стъпка 2: Втора част: Инсталирайте Raspbian с помощта на Rufus

Втора част: Инсталирайте Raspbian с помощта на Rufus
Втора част: Инсталирайте Raspbian с помощта на Rufus

стартирайте rufus изберете вашата SD карта в първото поле изберете файла с изображение на raspbian за.iso/.img select start и изчакайте да приключи.

Стъпка 3: трета част: Включване на Pi

след това извадете SD картата, поставете я в слота за sd карта на pi, тя е на "долния" щепсел в HDMI кабела към pi първо, след това клавиатура и мишка и последен захранващ кабел. ако включите първо захранването, може да не регистрира монитора/телевизора ви.

Стъпка 4: четвърта част: Настройка на вашия акаунт

влезте в pi! направете настройката за първо стартиране! не го пропускайте! изберете английска клавиатура на САЩ или по -късно няма да намерите своя символ @ … ако не го направите, вашият символ @ е мястото, където е ". влезте във вашия wifi на pi все още не се актуализира. Имам причина. натиснете" клавиша на клавиатурата на windows "и отидете на предпочитания, отидете на pi конфигурация. отидете на раздела интерфейси.

активирайте VNC … и всичко останало не се рестартира.

Стъпка 5: пета част: Настройване на вашия Pi като без глава (най -доброто нещо някога)

Част пета: Настройване на вашия Pi като без глава (най -доброто нещо някога)
Част пета: Настройване на вашия Pi като без глава (най -доброто нещо някога)

погледнете в горния десен ъгъл на екрана. ще видите черно -синьото лого на VNC. отвори това. натиснете влезте, направете и акаунт. добавете пи. на вашия работен плот/лаптоп отворете търсене в браузъра в google VNC viewer изтегляне инсталиране. влезте в акаунта си. проверете имейла си за влизане и се оторизирайте. свържете се с вашия pi (въведете паролата pi във второто меню за вход), ако работи, изключете вашия pi. изключете си пи и всичко. поставете пи в ъгъла в стаята си и прокарайте само захранващия кабел към него. можете да се свържете с pi с помощта на VNC viewer. сега имате "без глава" пи. можете също да го SSH. (вижте SSH информация в секцията готини неща)

Стъпка 6: част шеста: Инсталиране на всички основни инструменти за разработка на Pi

Част шеста: Инсталиране на всички основни инструменти за разработка на Pi
Част шеста: Инсталиране на всички основни инструменти за разработка на Pi

използвайки SSH или VNC (или ако сте решили да не сте готини и го настроите без глава) направете следното. отворен терминал (тази следваща част може да отнеме известно време …) изпълнете тези команди една по една, след като всяка от тях приключи.

sudo apt-get update; sudo apt-get upgrade инсталиране на ffmpeg {sudo apt-get install ffmpeg

Стъпка 7: Седма част: Инсталиране на Adafruit WebIDE

Част седма: Инсталиране на Adafruit WebIDE
Част седма: Инсталиране на Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh отворете браузър на основния си работен плот. посочете URL адреса на браузъра си на „https://***.*.*.***: 8080“заменете „*“с локалния IP адрес на вашия Pi. направете потребителско име и преминете. вече имате настройката adafruit webIDE.

Стъпка 8: част осма: Актуализирайте Node-red и Node.js

update-nodejs-and-nodered следващият код ще накара nodered да се изпълнява при стартиране, точно като adafruit webIDE, това е важно, ако искате да развивате тези неща. sudo systemctl enable nodered.service рестартирайте Pi

Стъпка 9: част девета: Инсталиране на Arduino IDE

Част девета: Инсталиране на Arduino IDE
Част девета: Инсталиране на Arduino IDE

можете да го направите чрез командния ред, но … няма да е пълната версия.. което означава, че не можете да използвате инструмента за импортиране/търсене на библиотеката, за да инсталирате пълната версия, трябва да отидете на уебсайта arduino и да изтеглите версията за вашия модел pi. това ще бъде ARM32bit за pi3, получете стабилната версия. отворете терминала. (заменете *с информацията за освобождаването) изпълнете тези команди.

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

Стъпка 10: Десета част: Ffmpeg

Част десета: Ffmpeg
Част десета: Ffmpeg

1x уеб камера logitech

(следващите елементи не включват това, от което се нуждаете, за да стартирате денонощен поток) 1x макет на втора малина pi модел 3 b (със SD карта) индивидуално адресируема LED лента. arduino nano jumper wire позволява VNC viewer на двата Pi (s)

предпочитания за pi, активирайте vnc направете акаунт с VNC viewer ВАЖНО: на pi, което планирате да използвате като публична работна пейка, отидете на настройките на vnc сървъра, опциите, раздела за експерти и направете празен престой: 0 секунди, той е настроен да затвори Vnc viewer, ако не работи след час, това ще спре прозореца ви да се затвори в средата на потока, инсталирайте vnc viewer на стример pi в терминала.

sudo apt-get install vnc-java y

включете вашата уеб камера и … инсталирайте вашата уеб камера.

sudo apt инсталирайте fswebcam

инсталирайте ffmpeg sudo apt-get инсталирайте ffmpeg y

тук влизат в сила вашите собствени избори. в терминала, стартирайте този скрипт, за да отворите прозорец на работния плот на стриймъра pi за вашата уеб камера.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay ще ви позволи да видите това в прозорец с име pi -cam, уеб камерата, която ви показва, е на място dev/video0 и оригиналният му размер е 1920x1080. Искам само да видя crop = width: height: topleft_X: topleft_Y и framerate 20 е достатъчен за мен. следващият код ще се стриймва, за да се свие.

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 x11grab се използва за хващане на екрана ви. резолюцията на моя екран е зададена на 1280x1024 Искам да го покажа в 1280x720 so -vf видео формат.

2m = 2mgb скорост на качване. -f flv е да форматирате видеото в.flv, така че twitch да може да го използва.

сега можете да дадете на вашия екип вашите идентификационни данни за VNC на работната маса Pi и те могат да видят промените в LED лентата на живо от разстояние. Викайте към този човек ~! неговото видео ми помогна да стигна до път, все пак трябваше да разбера как да вляза в уеб камерата си … и да разбера за ffmpeg X/

Артър Рийдър https://www.youtube.com/embed/kb_5_9GkwZc ЗАБЕЛЕЖКА: Аз не съм най -информираният човек, това просто работи за моите нужди, ако някой има конструктивни съвети бих искал да го чуя, но моля не Това означава, че един от възможните маршрути за преминаване по -нататък, би било да се използва този механик за поточно предаване на това и да се използва друго пи и светлинния поток с хромово разширение, за да се извлече този поток и след това да се подаде уеб камерата в това или по друг начин. https://www.youtube.com/embed/kb_5_9GkwZc СЪЩО: ако искате да добавите аудио, както се вижда във видеоклипа на mans youtube, можете да използвате този низ, не исках да записвам къщата си и изпратено за потрепване, това е в стаята ми, така че не предавам аудио, но също така помага да се намали натоварването на pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i по подразбиране -af компресор = праг = 0.089: ratio = 9: attack = 200: release = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -предварително зададен ултрабърз -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (вмъкнете вашия поток оттук)"

Стъпка 11:

Образ
Образ
Образ
Образ
Образ
Образ
Образ
Образ

сега до последния участък, прилагайки arduino и pi серийна комуникация с python.

--- проектът who is home --- Проектът използва скрипт на python, който изпълнява nmap в терминала, копира съдържанието му, анализира текста, който не ни трябва, и сравнява mac адресите в мрежата с изброените mac адреси и ако има съвпадение, този човек е у дома. mac адресите бяха открити чрез извършване на разследваща работа на рутера, но инструментът nmap ви дава информация за устройствата в текстовия файл, генериран от кода. ако потребителят присъства, той изпраща знак към arduino и arduino изчаква, докато контролния списък приключи, и свети светодиоди, съответстващи на профилите, изброени за mac адресите на настоящите устройства. можете да добавите други неща, като например да имате ботове за раздори, които изпълняват команди на хора, идващи или заминаващи със същия код, като използвате оператора подпроцес за изпълнение на терминални команди във вашия скрипт на python. така че първо инсталираме nmap sudo apt-get install nmap. След това ще искате да изтеглите файловете в нашите клубове Git-Hub.

github.com/ValenciaRobotics/embeddedclub

за кода на python инсталацията raspbian идва с всичко, използвано в този код, така че не се нуждаете от нищо допълнително инсталирано. използвахме import re, import subprocess, time import, import serial. Важно е да се отбележи, че python използва отстъп за отделяне на кодови блокове, така че имайте предвид, че ако решите да промените начина, по който кодът е написан:) py идва с thonny ide и няколко други опции, намирам, че изпълнението на скрипта в thonny е наистина направо, ако щракнете върху файла и се опитате да го изпълните, беше предложено или предположено, че thonny е това, което искате да използвате. преди да стартирате програмата, ще трябва да редактирате следното. ред 14: символите * се използват за маскиране на моята собствена информация за рутера, ще трябва да го замените със собствения си локален ip. би било същото като това, което използвате за свързване към вашия рутер. редове 28, 38, 48, 58: всички те използват символа * за маскиране на mac адреси на устройства, изброени в моята мрежа, трябва да ги промените на mac адресите на устройствата в собствената си мрежа, за да откриете връзки. защо mac адреси? тъй като без да резервират местоположения за вашето устройство, те със сигурност ще останат същите, освен ако някой не подправя. проблеми с този код, той ще открие само докато една връзка активно използва интернет, така че може да не бъде открит въпреки присъствието на потребител. в кода на arduino ще искате да промените следното. първо ще искате да отидете в раздела инструменти, да изберете мениджър на библиотеки и да потърсите „fastLED“и да инсталирате библиотеката за „fastLED“. След това ще трябва да заредите „кой е вкъщи“.ino кода от страницата на github и да промените следното, както желаете. ред 86: променете цветовете според това, което искате вашите потребители да са прикачили:)

// включете това, от което се нуждаете

if (d == 1) {leds [0] = 0xdd8bff; // лилави светодиоди [1] = 0xdd8bff;}

if (l == 1) {leds [2] = CRGB:: Зелено; светодиоди [3] = CRGB:: Зелено;}

if (k == 1) {leds [4] = CRGB:: Червено; светодиоди [5] = CRGB:: Червено; }

if (j == 1) {leds [6] = CRGB:: Синьо; светодиоди [7] = CRGB:: Синьо;}

FastLED.show (); забавяне (30000); // 10 секунди изчакване на превключвателя Кратко обяснение как да добавите повече потребители е следното

void loop () {

if (Serial.available ()> 0) {

Serial.println ();

лице = Serial.read ();

забавяне (1000);

превключвател (човек) {

случай 'D': d = 1;

person = 'F';

count = count+1;

прекъсване;

случай :

d = 0;

person = 'F';

count = count+1;

прекъсване;

главната буква D е полученият символ от скрипта на python, така че той знае, че потребителят присъства, защото получената буква е главна буква D, така че променя стойността на INTEGER d на 1, ако е малка, отколкото знае, че те липсват, така че INTEGER е зададен на 0. условието за осветяване на светодиоди в скрипта от преди използва изявление, че IF d е 1, то ще светне светодиода, но ако не е, този светодиод остава като "черен", което означава, че не свети. този код използва библиотеката "fastLED" и има много документация за това. имайте предвид, че ако промените знаците, добавите знаци или премахнете знаци, ще трябва да промените скрипта на python, за да върнете тези, които сте ги променили, също ще трябва да промените условието в цикъла на void. if (count == 4) {holdup ();}} броят ще трябва да отразява броя на устройствата, които "проследявате". в моя случай е 4, така че изчаква, докато 4 устройства бъдат обявени за присъстващи или отсъстващи и след това актуализира LED лентата. в кода на python редовете 31, 34, 41, 44, 51, 54, 61, 64 имат следния ред ser.write (b ' *') #изпраща знак, хвърлен като байт над сериен, където * е знак, който е изпращане до arduino. променете това, ако промените кода в arduino или обратно:)

Отново, като заключително изявление, искам да отдам признание на моя съотборник Джон, той свърши чудесна работа, като вдигна слабината, когато имахме нужда от нея.

Скриптът на Python е предоставен от: Jonathan De La Cruzhttttps: //www.linkedin.com/in/jonathandelacruz96/

скриптът на Arduino и разходката и настройката на домашната лаборатория са направени от: Dylan Poll

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

Дано спечелим поне тениска! Ще актуализирам това с команди на черупки за автоматично изтегляне и инсталиране на повечето от това, уебсайтът на нашите клубове всъщност има скриптове за обвивка, които могат да се изтеглят, за да извършват операциите ffmpeg.

Този проект отне много време, създадох това подразделение на клуба от самото начало, така че с гордост мога да кажа, че този момент ми носи много радост.:) благодаря за отделеното време, имаме работна платформа, която да развием сега в моя клуб заради този проект.

Препоръчано: