Мазмуну:

Raspberry Pi HomeLab жана үй ким: 11 кадам
Raspberry Pi HomeLab жана үй ким: 11 кадам

Video: Raspberry Pi HomeLab жана үй ким: 11 кадам

Video: Raspberry Pi HomeLab жана үй ким: 11 кадам
Video: Homelab upgrade: New Raspberry Pi Cluster rackmount 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: студенттик иштеп чыгуучулар тобу үчүн IOT иштөө үчүн үй-лаборатория катары иштөө үчүн пи орнотуп жатат.

экинчи фаза: биздин үй долбоорубузду колдонуп, демонстрацияны ишке ашыруу менен, системаны өнүктүрүү үчүн колдонуп жатат.

Мунун аягында сиз алыстан жеткиликтүү башсыз пи аласыз, аны адамдар IOT түзмөктөрүндө алыстан программалоо жана иштөө үчүн колдоно алышат.

Мен азыр эскертип жатам, пиңизди элге эч кандай коопсуздуксуз ачуу менен, сиз өзүңүздү үй тармагыңызга кол салуу коркунучу алдында ачасыз.

Биз кийинки баскычтарда биринчи баскычты басып өтөбүз, бирок бул биздин клуб жана үй долбоору жөнүндө кээ бир маалыматтарга шилтеме.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

Who is home долбоору төмөнкүлөрдү аткарат: тармагыңызга туташкан түзмөктөрдүн Mac даректерин текшерүүчү python скриптин иштетет. бул үчүн Nmap колдонот. ал бул даректерди даректердин тизмесине каршы иштетет жана эгерде көрсөтүлгөн дарек бар болсо, анда ал сериялык байланышты колдонуу менен arduinoго char жөнөтөт. arduino LED тилкесин көзөмөлдөйт жана ал чараны алганда, ошол түзмөктүн тиешелүү түсү бар жана ошол адамдын светодиоддорун алардын катышуусунун негизинде күйгүзөт.

биздин бөлүмдөр азаят

sites.google.com/view/valencia-robotics

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

биздин клубдардын сайты

sites.google.com/view/valenciatechclub

Python Script тарабынан берилген: Джонатан Де Ла Круз

www.linkedin.com/in/jonathandelacruz96/

Arduino Script жана үй лабораториясын басып өтүү: Дилан Сурамжылоо

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

Мен Дилан Сурамжылоомун, мен биздин колледждин технологиялык клубунун учурдагы президентимин жана мен дагы камтылган системалардын лидеримин.

Жабдуулар

A pi

A arduino

Нан тактасы

секирүүчү зымдар

Веб -камера

жеке даректелүүчү RGB LED тилкеси

Сиздин пиңизди электр менен камсыздоо, клавиатура чычкан, компьютерди баштапкы орнотууну жасоо үчүн.

1 -кадам: Баштапкы орнотуу файлдарын жүктөө жана орнотуу

шпаклевканы жүктөө жана орнотуу (терезелер)

www.putty.org

rufus жүктөп алып, орнотуңуз

rufus.ie

raspbian full buster жана сунушталган программаны жүктөп алыңыз (.zip)

www.raspberrypi.org/downloads/raspbian/

.zipтеги мазмунун чыгарыңыз, бул сиздин [сүрөт файлы] болот.

micro sd картты алып, usb түзмөгүнө док же microsd колдонуп, аны компьютериңизге кошуңуз SD картаңызды

2 -кадам: Экинчи бөлүк: Rufus аркылуу Raspbian орнотуу

Экинчи бөлүк: Rufus аркылуу Raspbian орнотуу
Экинчи бөлүк: Rufus аркылуу Raspbian орнотуу

rufusту иштетүү sd картаңызды биринчи талаада.iso/.img үчүн raspbian сүрөт файлын тандап, анын бүтүшүн күтүңүз.

3 -кадам: Үчүнчү бөлүк: Пи -ге туташтыруу

Бул бүткөндөн кийин, sd картаны сууруп алып, пидеги SD картанын уячасына салыңыз, анын "астыңкы" жагындагы HDMI кабелин пиеге, клавиатура менен чычканга жана акыркы кубат кабелине караганда. Эгер сиз биринчи жолу электр кубатына туташтырсаңыз, анда ал мониторду/телеканалды каттабай калышы мүмкүн.

4 -кадам: Төртүнчү бөлүк: Каттоо эсебиңизди орнотуу

пи кирүү! биринчи иштетүү орнотуу кыл! өткөрүп жибербеңиз! АКШ англисче баскычтопту тандаңыз, болбосо @ символуңузду кийинчерээк таба албайсыз … эгер сиз @ символуңузду "кайда" койбосоңуз. wi -ге wi -ге кирүү азырынча жаңырбайт. Менин себебим бар. "Windows клавиатура баскычын басыңыз "жана артыкчылыктарга өтүңүз, pi конфигурациясына өтүңүз. Интерфейстер өтмөгүнө өтүңүз.

VNC иштетүү…. жана башка нерселердин баары кайра жүктөлбөйт.

5 -кадам: Бешинчи бөлүк: Пиңизди башсыз кылып коюу (Эң жакшы нерсе)

Бешинчи бөлүк: Пиңизди башсыз кылып коюу (эң сонун нерсе)
Бешинчи бөлүк: Пиңизди башсыз кылып коюу (эң сонун нерсе)

экраныңыздын жогорку оң жагын караңыз. сиз кара жана көк VNC логотибин көрөсүз. муну ач. кирүүнү, жасоону жана эсепке алууну басыңыз. пи кошуу. үстөлүңүздө/ноутбугуңузда google VNC Viewerде браузерди ачыңыз. каттоо эсебиңизге кириңиз. кирүү үчүн электрондук почтаңызды текшериңиз жана өзүңүзгө уруксат бериңиз. пиңизге туташыңыз (экинчи кирүү менюсунда pi сырсөзүн териңиз), эгер ал иштесе пиңизди өчүрүңүз. пиңизди жана бардыгын ажыратыңыз. пиңизди бөлмөңүздүн бурчуна коюп, ага электр кабелин гана өткөрүңүз. сиз VNC көрүүчү аркылуу пи туташа аласыз. сизде азыр "башы жок" пи бар. ага SSH да кошсоңуз болот. (SSH маалыматын сонун нерселер бөлүмүнөн караңыз)

6 -кадам: Алтынчы бөлүк: Пи боюнча иштеп чыгуу үчүн бардык негизги куралдарды орнотуу

Алтынчы бөлүк: Пи боюнча иштеп чыгуу үчүн бардык негизги куралдарды орнотуу
Алтынчы бөлүк: Пи боюнча иштеп чыгуу үчүн бардык негизги куралдарды орнотуу

SSH же VNC колдонуу (же эгер сиз салкын болбоону чечсеңиз жана башсыз орнотсоңуз) төмөнкүлөрдү аткарыңыз. ачык терминал (бул кийинки бөлүккө бир аз убакыт кетиши мүмкүн …) бул командаларды ар бири БҮТКӨНдөн кийин бирден иштетет.

sudo apt-get жаңыртуу; 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" деп көрсөтүңүз, "*" дегенди Piңиздин жергиликтүү IP дареги менен алмаштырыңыз. колдонуучу атын жасап, өтүңүз. азыр сизде adafruit webIDE орнотуусу бар.

8-кадам: Сегизинчи бөлүк: Node-red жана Node.js жаңыртуу

update-nodejs-and-nodered кийинки коду adafruit webIDE сыяктуу эле стартапта чуркап калат, эгер сиз бул нерселерди өнүктүргүңүз келсе, бул маанилүү. sudo systemctl иштетүү nodered.service Pi кайра

9 -кадам: Тогузунчу бөлүк: Arduino IDE орнотуу

Тогузунчу бөлүк: Arduino IDE орнотуу
Тогузунчу бөлүк: Arduino IDE орнотуу

сиз муну буйрук сабы аркылуу жасай аласыз, бирок …. бул толук версия болбойт.. китепкананын импорттоо/издөө куралын колдоно албайсыз дегенди билдирет, толук версиясын орнотуу үчүн arduino веб -сайтына кирип, пи моделиңиздин версиясын жүктөп алышыңыз керек. бул pi3 үчүн ARM32bit болот, туруктуу чыгарылышын алыңыз. ачык терминал. (*дегенди бошотуу маалыматы менен алмаштырыңыз) бул буйруктарды аткарыңыз.

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 breadboard экинчи малина пи модели 3 b (sd картасы менен) жеке даректүү LED тилкеси. arduino нано секиргич зымы VNC көрүүчүнү Pi (лерде) тең иштетет

pi артыкчылыктары, vncти VNC көрүүчүсү менен эсепке алууну иштетүү МААНИЛҮҮ: коомдук иштөөчү отургуч катары колдонууну пландап жаткан пи боюнча, vnc серверинин жөндөөлөрүнө, параметрлерине, эксперттик өтмөккө өтүңүз жана бош убакыттын өтүшүн жасаңыз: 0 секунд, ал Vnc жабылат Көрүүчү бир сааттан кийин бош туруп калса, муну жасоо терезеңизди орто агымдын жабылышын токтотот, vnc көрүүчүнү терминалдагы стример piге орнотуңуз.

sudo apt-get орнотуу vnc-java y

веб -камераңызды сайып, вебкамераңызды орнотуңуз.

sudo apt fswebcam орнотуу

ffmpeg sudo apt-get ffmpeg y орнотуу

бул жерде сиздин жеке тандооңуз ойнойт. терминалда, веб -камераңыз үчүн стримериңиздин иш столунда терезе ачуу үчүн бул скриптти иштетиңиз.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf түшүм = 400: 500: 300: 50 -фрейм 20 ffplay муну pi -cam аттуу терезеден көрүүгө мүмкүндүк берет, анын веб -камерасы сизди көрсөтүп турат dev/video0 жайгашкан жерде жана анын баштапкы өлчөмү 1920x1080. Мен түшүмдү гана көргүм келет = туурасы: бийиктиги: topleft_X: topleft_Y жана кадрдын ылдамдыгы 20 мен үчүн жетиштүү. кийинки код чуркап агат.

ffmpeg -f x11grab -video_size 1280x1024 -кадр 24 -i $ DISPLAY -f alsa -vf масштабы = 1280x720 -c: v h264 -g 24 -b: v 2M -алдам ылдамдыгы -c: a aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (yourstreamkeyhere)"

-f x11grab экраныңызды басып алуу үчүн колдонулат. Менин экран чечимим 1280x1024кө коюлган, мен муну 1280x720 -vf форматында көргүм келет.

2m = 2mgb жүктөө ылдамдыгы. -f flv -бул видеону.flv кылып форматтоо, ошондуктан twitch аны колдоно алат.

Эми сиз өзүңүздүн командаңызга VNC грамоталарын workbench Pi -ге бере аласыз жана алар алыстан алып баруучу тилкеге өзгөртүүлөрдү көрө алышат. Бул кишиге кыйкырык ~! анын видеосу мага туура жолго түшүүгө жардам берди, мен дагы вебкамкамды кантип ачуум керек экенин билишим керек болчу … жана ffmpeg X/ жөнүндө билүү

Артур Ридер https://www.youtube.com/embed/kb_5_9GkwZc ЭСКЕРТҮҮ: Мен эң маалыматтуу адам эмесмин, бул менин муктаждыктарым үчүн иштейт, эгерде конструктивдүү кеңештер бар болсо, мен уккум келет, бирок сураныч Муну улантуунун мүмкүн болгон жолдорунун бири - бул механикти колдонуу, бул агымды алуу үчүн жана башка агымды алуу үчүн дагы бир пи жана хром кеңейтүү жарык агымын колдонуу жана вебкамераны тигил же бул жол менен берүү. https://www.youtube.com/embed/kb_5_9GkwZc ДАГЫ: эгер сиз youtube видеосунан көрүнүп тургандай аудио кошкуңуз келсе, анда бул сапты колдонсоңуз болот, мен үйүмдүн жаздырылышын каалаган эмесмин. титирөө үчүн жөнөтүлгөн, бул менин бөлмөмдө отурат, ошондуктан мен эч кандай аудио чыгарбайм, бул дагы пидеги жүктү азайтууга жардам берет.

ffmpeg -f x11grab -video_size 1280x1024 -кадр 24 -i $ DISPLAY -f alsa -i демейки -af acompressor = босого = 0.089: катыш = 9: чабуул = 200: релиз = 1000 -vf шкаласы = 1280x720 -c: v h264 - g 24 -b: v 2M -ультра ылдам -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

11 -кадам:

Сүрөт
Сүрөт
Сүрөт
Сүрөт
Сүрөт
Сүрөт
Сүрөт
Сүрөт

Эми python менен arduino жана pi сериялык байланышты ишке ашыруунун акыркы чегине жетти.

--- ким үй проектиси --- Долбоор терминалда nmap иштеген python скриптин колдонот, анын мазмунун көчүрөт, бизге кереги жок текстти талдайт жана тармактагы Mac даректерин тизмедегилер менен салыштырат. mac даректери жана дал келүү болсо, ал адам үйдө. mac даректери роутерде иликтөө иштерин жүргүзүү менен табылган, бирок nmap куралы код аркылуу түзүлгөн текст файлындагы түзмөктөр жөнүндө маалымат берет. эгер колдонуучу бар болсо, анда ал arduinoго белги жөнөтөт, жана arduino текшерүү тизмеси бүткүчө күтөт жана учурдагы түзмөктөрдүн Mac даректери үчүн тизмеленген профилдерге туура келген LED ди күйгүзөт. башка нерселерди кошсоңуз болот, мисалы, дисктин боттору ушул код менен келген же бара жаткан адамдарга командаларды иштетип, питон скриптиңиздеги терминалдык буйруктарды аткаруу үчүн суб-процесс операторун колдонуп. Ошентип, адегенде nmap sudo apt-get install nmap орнотобуз. Андан кийин сиз биздин клубдардагы файлдарды Git-Hub жүктөп алууну каалайсыз.

github.com/ValenciaRobotics/embeddedclub

python коду үчүн, raspbian орнотуусу бул коддо колдонулган нерселердин баары менен коштолот, андыктан кошумча орнотулган нерсенин кереги жок. Биз импортту кайра, импорттун субпроцессин, импорттук убакытты, сериялык импортту колдонгонубузду белгилөө маанилүү, python код блокторун бөлүү үчүн чегинүүнү колдонот, андыктан коддун жазылышын өзгөртүүнү чечсеңиз, анда билиңиз:) py менен келет thonny ide жана башка бир нече варианттар, мен сценарийди thonnyде иштетүү чынында эле алдыга жылат, эгерде сиз файлды чыкылдатып, аны аткарууга аракет кылсаңыз, анда Thonny сиз колдонгуңуз келген нерсени сунуштаган же болжолдогон. программаны иштетүүдөн мурун, төмөнкүлөрдү түзөтүшүңүз керек болот. 14 -сап: * символдору менин роутерим тууралуу маалыматты маска кылуу үчүн колдонулат, сиз муну жергиликтүү ip менен алмаштырышыңыз керек болот. роутериңизге туташуу үчүн колдонгонуңуз менен бирдей болмок. саптар 28, 38, 48, 58: булардын бардыгы * символун колдонуп, менин тармагымдан саналган түзмөктүн мак даректерин маска кылуу үчүн, байланыштарды аныктоо үчүн аларды өз тармагыңыздагы түзмөктөрдүн Mac даректерине алмаштырышыңыз керек. эмне үчүн Mac даректери? анткени сиздин түзмөк үчүн жерлерди ээлеп койбостон, кимдир бирөө алдап кетпесе, алар ошол бойдон калат. бул код менен болгон көйгөйлөр, ал Интернетти активдүү колдонуп жаткан учурда гана аныктайт, андыктан ал колдонуучу болгонуна карабай аныкталбашы мүмкүн. arduino кодунда сиз төмөнкүлөрдү өзгөрткүңүз келет. Биринчиден, сиз куралдар өтмөгүнө өтүп, китепканалар менеджерин тандап, "fastLED" издеп, "fastLED" үчүн китепкананы орноткуңуз келет. Андан кийин сиз "үйдө ким".ino кодун github баракчасынан жүктөп, төмөнкүлөрдү каалаганыңыздай өзгөртүүңүз керек болот. 86 -сап: колдонуучулар тиркеген нерселердин негизинде түстөрдү өзгөртүү:)

// сизге керектүү нерсени күйгүзүңүз

if (d == 1) {leds [0] = 0xdd8bff; // кызгылт леддер [1] = 0xdd8bff;}

if (l == 1) {leds [2] = CRGB:: Green; leds [3] = CRGB:: Жашыл;}

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

if (j == 1) {leds [6] = CRGB:: Blue; leds [7] = CRGB:: Көк;}

FastLED.show (); кечигүү (30000); // 10 секунд күтө туруңуз, башка колдонуучуларды кантип кошуу керектиги жөнүндө кыскача түшүндүрмө

void loop () {

эгер (Serial.available ()> 0) {

Serial.println ();

адам = Serial.read ();

кечигүү (1000);

которуу (адам) {

case'D ': d = 1;

адам = 'F';

count = count+1;

тыныгуу;

Case'd ':

d = 0;

адам = 'F';

count = count+1;

тыныгуу;

D тамгасы - бул питон скриптинен алынган белги, андыктан ал колдонуучу бар экенин билет, анткени алынган тамга D тамгасы, андыктан INTEGER d маанисин 1ге өзгөртөт, эгерде алар билгенден кичине тамга болсо жок, андыктан INTEGER 0 коюлган. скрипттеги ледтерди жарыктандыруунун шарты, эгерде d d 1 болсо, анда ал светофорду күйгүзөт, бирок эгер ал андай болбосо, "кара" бойдон кала берет. Бул код "fastLED" китепканасын колдонот жана бул боюнча көптөгөн документтер бар. эгер сиз белгилерди өзгөртсөңүз, белгилерди кошсоңуз же белгилерди алып салсаңыз, сиз аларды өзгөрткөндөрдү кайтаруу үчүн python скриптин өзгөртүүгө туура келет, ошондой эле боштук циклиндеги шартты өзгөртүүгө туура келет. if (count == 4) {holdup ();}} саны сиз "байкап жаткан" түзмөктөрдүн санын чагылдырышы керек болот. менин учурда бул 4, ошондуктан ал 4 түзмөк бар же жок деп жарыяланганга чейин күтөт, андан кийин ал LED тилкесин жаңыртат. питон кодунда 31, 34, 41, 44, 51, 54, 61, 64 -саптарда төмөнкү ser.write (b ' *') #сап бар, ал сериалдын үстүнөн байт катары чыгарылган arduinoго жөнөтүү. кодду arduino же тескерисинче өзгөртсөңүз муну өзгөртүңүз:)

Дагы, жыйынтыктоочу билдирүү катары, мен командалашым Жонго кредит бергим келет, ал бизге керек болгондо боштукту жыйноодо мыкты иштеген.

ал Python Script тарабынан берилген: Джонатан Де Ла Крузhttps://www.linkedin.com/in/jonathandelacruz96/

Arduino Script жана үй лабораториясын басып өтүү: Дилан Сурамжылоо

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

Биз жок дегенде футболканы утуп алабыз деп үмүттөнөбүз! Мен муну көбүн автоматтык түрдө жүктөө жана орнотуу үчүн кабык буйруктары менен жаңыртып турам, биздин клубдардын веб -сайтында ffmpeg операцияларын аткаруу үчүн жүктөлүүчү кабык сценарийлери бар.

Бул долбоор көп убакытты талап кылды, мен клубдун бул бөлүмүн түп тамырынан бери түптөдүм, ошондуктан сыймыктануу менен айта алам, бул учур мага чоң кубаныч тартуулайт.:) Убактыңыз үчүн рахмат, бул долбоордун аркасында азыр менин клубумда иштеп чыгуу үчүн жумушчу платформа бар.

Сунушталууда: