Оглавление:

Raspberry Pi HomeLab и Who Is Home: 11 шагов
Raspberry Pi HomeLab и Who Is Home: 11 шагов

Видео: Raspberry Pi HomeLab и Who Is Home: 11 шагов

Видео: Raspberry Pi HomeLab и Who Is Home: 11 шагов
Видео: CASA OS СУПЕР ЛЕГКИЙ СТАРТ В DOCKER | ВИДЕО ГАЙД ДЛЯ НОВИЧКОВ | МЕНЕДЖЕР DOCKER КОНТЕЙНЕРОВ 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 и кто дома

Это мой первый неразрушимый, но в этом наставлении есть две фазы.

faze one: настраивает пи для работы в качестве домашней лаборатории для работы в Интернете для группы студентов-разработчиков.

faze two: использует систему для разработки, реализуя демонстрацию с помощью нашего проекта who is home.

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

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

мы рассмотрим первый этап на следующих этапах, но это ссылка на некоторую информацию о нашем клубе и проекте «Кто дома».

github.com/ValenciaRobotics/embeddedclub

Кто дома

Проект Who Is home выполняет следующие действия: запускает скрипт Python, который проверяет MAC-адреса устройств, подключенных к вашей сети. для этого он использует Nmap. он сравнивает эти адреса со списком адресов, и если указанный адрес присутствует, он отправляет символ в Arduino, используя последовательную связь. Arduino управляет светодиодной лентой, и когда он получает символ, у него есть связанный цвет для этого устройства, и он зажигает светодиоды для этого человека в зависимости от их присутствия.

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

sites.google.com/view/valencia-robotics

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

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

sites.google.com/view/valenciatechclub

Скрипт Python предоставил: Джонатан Де Ла Круз

www.linkedin.com/in/jonathandelacruz96/

Скрипт Arduino, а также пошаговая инструкция и настройка домашней лаборатории были выполнены: Диланом Полом

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

Я Дилан Полл, нынешний президент технического клуба нашего колледжа, а также руководитель встраиваемых систем.

Запасы

Пи

Ардуино

Макет

перемычки

Веб-камера

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

источник питания для вашего пи, клавиатура, мышь, компьютер для начальной настройки.

Шаг 1. Загрузка и установка файлов начальной установки

скачать и установить шпатлевку (windows)

www.putty.org

скачать rufus и установить

rufus.ie

скачать raspbian full buster и рекомендованное программное обеспечение (.zip)

www.raspberrypi.org/downloads/raspbian/

извлеките содержимое.zip, это будет ваш [файл изображения].

возьмите карту micro sd и используйте док-станцию или micro sd для устройства usb и подключите его к компьютеру, отформатируйте свою sd-карту

Шаг 2: часть вторая: установка Raspbian с помощью Rufus

Часть вторая: установка Raspbian с помощью Rufus
Часть вторая: установка Raspbian с помощью Rufus

запустите rufus, выберите свою SD-карту в первом поле, выберите файл образа raspbian для.iso /.img выберите начало и дождитесь его завершения.

Шаг 3: часть третья: подключение Pi

После этого вытащите SD-карту, вставьте ее в слот для SD-карты на Pi, его «снизу» подключите шнур HDMI к Pi сначала, затем клавиатуру и мышь и последний кабель питания. если вы сначала подключите питание, он может не зарегистрировать ваш монитор / телевизор.

Шаг 4: часть четвертая: настройка учетной записи

войдите в пи! сделайте первую настройку запуска! не пропускайте это! выберите клавиатуру USA English, иначе вы не найдете свой символ @ позже … если вы этого не сделаете, ваш символ @ находится там, где находится ваш ". Войдите в свой Wi-Fi на Pi еще не обновляйте. У меня есть причина. Нажмите клавишу" Windows на клавиатуре "и перейдите в настройки, перейдите в конфигурацию pi. перейдите на вкладку интерфейсов.

включить VNC…. а все остальное не перезагружается.

Шаг 5: часть пятая: настройка вашего Pi как безголового (лучший вариант)

Часть пятая: Настройка вашего Pi как безголового (лучшее на свете)
Часть пятая: Настройка вашего Pi как безголового (лучшее на свете)

посмотрите в верхний правый угол экрана. вы увидите черно-синий логотип VNC. откройте это. нажмите "Войти", "Сделайте" и "Аккаунт". добавьте пи. на настольном компьютере / ноутбуке откройте поиск в браузере, загрузите программу просмотра Google VNC и установите ее. Войдите в свою учетную запись. проверьте свою электронную почту для входа и авторизуйтесь. подключитесь к своему пи (введите пароль пи во втором меню входа), если он работает, выключите пи. отключите пи и все остальное. поставьте пи в углу своей комнаты и проведите к нему только шнур питания. вы можете подключиться к пи с помощью программы просмотра VNC. теперь у вас есть "безголовый" пи. вы также можете подключиться к нему по 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

(следующие элементы не включают то, что вам нужно для запуска потока 24/7) 1x макет, вторая модель raspberry pi 3b (с sd-картой), индивидуально адресуемая светодиодная лента. Перемычка arduino nano включает программу просмотра VNC на обоих Pi

pi, включите vnc, создайте учетную запись с VNC viewer ВАЖНО: на Pi, который вы планируете использовать в качестве общедоступного рабочего стола, перейдите к настройкам сервера vnc, параметрам, вкладке эксперта и установите время простоя: 0 секунд, он настроен на закрытие Vnc viewer, если он бездействует через час, это не позволит вашему окну закрыться в середине потока. Установите vnc viewer на streamer pi в терминале.

sudo apt-get install vnc-java y

подключите веб-камеру и.. установите веб-камеру.

sudo apt установить fswebcam

установить ffmpeg sudo apt-get install 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. Я хочу видеть только кадрирование = ширина: высота: topleft_X: topleft_Y, и мне достаточно частоты кадров 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: aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (вставьте ключ вашего потока здесь)"

-f x11grab используется для захвата экрана. мое разрешение экрана установлено на 1280x1024. Я хочу отображать это в формате 1280x720, поэтому -vf video.

2 м = скорость загрузки 2 Мбайт. -f flv - форматировать видео в.flv, чтобы Twitch мог его использовать.

Теперь вы можете передать своей команде свои учетные данные VNC на рабочий стол Pi, и они смогут удаленно увидеть изменения в светодиодной полосе. Привет этому парню ~! его видео помогло мне встать на путь, хотя мне все еще нужно было придумать, как вставить веб-камеру… и узнать о ffmpeg X /

Артур Ридер https://www.youtube.com/embed/kb_5_9GkwZc ПРИМЕЧАНИЕ: я не самый информированный человек, это просто работает для моих нужд, если у кого-то есть конструктивный совет, я хотел бы его услышать, но, пожалуйста, не Это означает, что одним из возможных путей для дальнейшего продвижения будет использование этой механики для потоковой передачи, а также использование другого пи и хромового расширения lightstream для получения этого потока, а затем для передачи веб-камеры в этот или любой другой способ. https://www.youtube.com/embed/kb_5_9GkwZc ТАКЖЕ: если вы хотите добавить аудио, как показано в видео на YouTube, вы можете использовать эту строку, я не хотел, чтобы мой дом записывался и отправлено в twitch, он находится в моей комнате, поэтому я не транслирую звук, это также помогает снизить нагрузку на пи.

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/ (вставьте ключ вашего потока здесь)"

Шаг 11:

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

Теперь до последнего этапа, реализуя последовательную связь arduino и pi с python.

--- проект who is home --- В проекте используется скрипт python, который запускает nmap в терминале, копирует его содержимое, разбирает текст, который нам не нужен, и сравнивает MAC-адреса в сети с указанными MAC-адреса, и если есть совпадения, этот человек дома. MAC-адреса были обнаружены в ходе исследовательской работы на маршрутизаторе, но инструмент nmap предоставляет информацию об устройствах в текстовом файле, созданном с помощью кода. если пользователь присутствует, он отправляет символ в arduino, и arduino ждет, пока не будет завершен контрольный список, и загорается светодиодами, соответствующими профилям, перечисленным для MAC-адресов имеющихся устройств. вы можете добавить другие вещи, например, заставить ботов Discord запускать команды людям, приходящим или уходящим с этим же кодом, используя оператор подпроцесса для выполнения команд терминала в вашем скрипте python. поэтому сначала мы устанавливаем nmap sudo apt-get install nmap. Затем вы захотите загрузить файлы на Git-Hub наших клубов.

github.com/ValenciaRobotics/embeddedclub

для кода python установка raspbian идет со всем, что используется в этом коде, поэтому вам не нужно ничего устанавливать дополнительно. мы использовали import re, import subprocess, import time, import serial, важно отметить, что python использует отступ для разделения блоков кода, поэтому имейте в виду, что если вы решите изменить способ написания кода:) py поставляется с thonny ide и несколько других вариантов, я считаю, что запуск сценария в thonny действительно прост, если вы щелкнете файл и попытаетесь его запустить, было предложено или предположено, что thonny - это то, что вы хотели использовать. перед запуском программы вам нужно будет отредактировать следующее. строка 14: символы * используются для маскировки информации о моем собственном маршрутизаторе, вам придется заменить ее своим собственным локальным IP-адресом. это будет то же самое, что вы используете для подключения к маршрутизатору. строки 28, 38, 48, 58: все они используют символ * для маскировки MAC-адресов устройств, перечисленных в моей сети, вы должны изменить их на MAC-адреса устройств в вашей собственной сети для обнаружения соединений. почему mac адреса? потому что без резервирования местоположений для вашего устройства они обязательно останутся такими же, если кто-то не спуфинг. проблемы с этим кодом, он обнаружит, только когда соединение активно использует Интернет, поэтому он может не обнаружиться, несмотря на присутствие пользователя. в коде Arduino вы захотите изменить следующее. Во-первых, вам нужно перейти на вкладку инструментов, выбрать диспетчер библиотек, найти «fastLED» и установить библиотеку для «fastLED». Затем вам нужно будет загрузить код.ino «who is home» со страницы github и изменить следующее по своему желанию. строка 86: измените цвета в зависимости от того, что вы хотите, чтобы ваши пользователи прикрепили:)

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

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

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

if (k == 1) {светодиоды [4] = CRGB:: красный; светодиоды [5] = CRGB:: Красный; }

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

FastLED.show (); задержка (30000); // 10 секунд ожидания на случай коммутатора, краткое объяснение того, как добавить больше пользователей, следующее

void loop () {

if (Serial.available ()> 0) {

Serial.println ();

person = Serial.read ();

задержка (1000);

switch (человек) {

case'D ': d = 1;

person = 'F';

count = count + 1;

перерыв;

case'd ':

d = 0;

person = 'F';

count = count + 1;

перерыв;

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

Опять же, в качестве заключительного слова, я хочу отдать должное своему товарищу по команде Джону, он отлично справился с пробелами, когда нам это было нужно.

Скрипт Python предоставил: Джонатан Де Ла Круз

Скрипт Arduino, а также пошаговая инструкция и настройка домашней лаборатории были выполнены: Диланом Полом

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

Надеюсь, мы выиграем хотя бы футболку! Я буду обновлять это с помощью команд оболочки, чтобы автоматически загружать и устанавливать большую часть этого, на нашем веб-сайте клубов есть загружаемые сценарии оболочки для выполнения операций ffmpeg.

Этот проект занял много времени, я основал это подразделение клуба с нуля, поэтому могу с гордостью сказать, что этот момент приносит мне много радости.:) Спасибо, что уделили время, благодаря этому проекту у нас теперь есть рабочая платформа, которую мы можем развивать в моем клубе.

Рекомендуемые: