İçindekiler:

Raspberry Pi HomeLab ve Kim Evde: 11 Adım
Raspberry Pi HomeLab ve Kim Evde: 11 Adım

Video: Raspberry Pi HomeLab ve Kim Evde: 11 Adım

Video: Raspberry Pi HomeLab ve Kim Evde: 11 Adım
Video: Set Up Your Own VPN at Home With Raspberry Pi! (noob-friendly) 2024, Temmuz
Anonim
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var
Raspberry Pi HomeLab ve Evde Kim Var

Bu benim ilk yıkılmazlığım, Ama bu talimatın iki aşaması var.

birinci aşama: öğrenci geliştiricilerden oluşan bir ekip için IOT çalışması için bir ev laboratuvarı olarak çalışmak üzere bir pi kuruyor.

İkinci aşama: Kim evde projemizi kullanarak bir gösteri uygulayarak sistemi geliştirme için kullanıyor.

Bunun sonunda, insanlar tarafından IOT cihazlarını uzaktan programlamak ve bunlar üzerinde çalışmak için kullanılabilecek, uzaktan erişilebilen bir başsız pi'ye sahip olacaksınız.

Şimdi uyarıyorum, pi'nizi gerekli güvenlik olmadan halka açarak, ev ağınızın saldırıya uğrama riskine kendinizi açmış olursunuz.

İlk aşamayı sonraki adımlarda ele alacağız, ancak bu, kulübümüz ve kimin ev sahibi projesi hakkında bazı bilgilere bir bağlantıdır.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

Who Is Home projesi şunları yapar: ağınıza bağlı cihazların mac adreslerini kontrol eden bir python betiği çalıştırır. bunun için Nmap kullanır. bu adresleri bir adres listesine karşı çalıştırır ve listelenen adres varsa seri iletişim kullanarak bir arduino'ya bir karakter gönderir. arduino bir LED şeridi kontrol eder ve bir karakter aldığında, o cihaz için ilişkili bir renge sahiptir ve o kişi için LED'leri mevcut olmalarına göre yakar.

bölümlerimiz alt sitesi

sites.google.com/view/valencia-robotics

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

kulüp sitemiz

sites.google.com/view/valenciatechclub

Python Komut Dosyası tarafından sağlandı: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Arduino Script ve ev laboratuvarının gözden geçirilmesi ve kurulumu tarafından yapıldı: Dylan Poll

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

Ben Dylan Poll, kolejimizin teknoloji kulübünün şu anki başkanıyım ve aynı zamanda gömülü sistemler lideriyim.

Gereçler

bir pi

bir arduino

bir ekmek tahtası

atlama telleri

bir web kamerası

ayrı ayrı adreslenebilir RGB LED Şerit

pi'niz için güç kaynağı, klavye bir fare, ilk kurulumu yapmak için bilgisayar.

Adım 1: İlk Kurulum Dosyalarını İndirme ve Yükleme

macun indir ve yükle(windows)

www.putty.org

rufus'u indirin ve kurun

rufus.ie

raspbian full buster ve önerilen yazılımı (.zip) indirin

www.raspberrypi.org/downloads/raspbian/

içeriği.zip dosyasına çıkarın, bu sizin [görüntü dosyanız] olacaktır.

bir micro sd kart alın ve bir dock veya microsd to usb aygıtı kullanın ve bilgisayarınıza takın sd kartınızı biçimlendirin

2. Adım: İkinci Bölüm: Rufus Kullanarak Raspbian'ı Kurun

İkinci bölüm: Raspbian'ı Rufus Kullanarak Kurun
İkinci bölüm: Raspbian'ı Rufus Kullanarak Kurun

rufus'u çalıştırın ilk alanda sd kartınızı seçin.iso/.img için raspbian görüntü dosyasını seçin başlangıç seçin ve bitmesini bekleyin.

Adım 3: Üçüncü Bölüm: Pi'yi Takma

bu yapıldıktan sonra sd kartını çıkarın, pi'deki sd kart yuvasına takın, önce HDMI kablosunun "alt" fişinde, sonra klavye ve fareden sonra bir klavye ve fare ve son güç kablosu. önce gücü takarsanız, monitörünüzü/tv'nizi kaydetmeyebilir.

Adım 4: Bölüm Dört: Hesabınızı Ayarlama

pi'ye giriş yapın !ilk çalıştırma kurulumunu yapın! atlamayın! ABD İngilizce klavyeyi seçin veya daha sonra @ sembolünüzü bulamayacaksınız… eğer @ sembolünüz "olduğu yerde" değilse. pi'de wifi'nize giriş yapın henüz güncelleme yapmayın. Bir nedenim var. "windows klavye tuşuna basın " ve tercihlere gidin, pi konfigürasyonuna gidin. arayüzler sekmesine gidin.

VNC'yi etkinleştir…. ve diğer her şey yeniden başlatılmaz.

Adım 5: Beşinci Bölüm: Pi'nizi Başsız Olarak Ayarlamak (Şimdiye Kadarki En İyi Şey)

Beşinci Bölüm: Pi'nizi Başsız Olarak Ayarlamak (Şimdiye Kadarki En İyi Şey)
Beşinci Bölüm: Pi'nizi Başsız Olarak Ayarlamak (Şimdiye Kadarki En İyi Şey)

ekranınızın sağ üst köşesine bakın. siyah ve mavi VNC logosunu göreceksiniz. bunu aç. Oturum aç, oluştur ve hesapla'ya basın. pi'yi ekleyin. masaüstünüzde/dizüstü bilgisayarınızda tarayıcıyı açın google VNC görüntüleyici indirme yüklemesinde arama yapın. hesabınıza giriş yapın. Giriş yapmak için e-postanızı kontrol edin ve kendinizi yetkilendirin. pi'nize bağlanın (ikinci oturum açma menüsünde pi şifresini yazın) çalışıyorsa pi'nizi kapatın. pi'nizi ve her şeyi çıkarın. pi'yi odanızın bir köşesine koyun ve sadece güç kablosunu ona bağlayın. VNC görüntüleyiciyi kullanarak pi'ye bağlanabilirsiniz. artık "başsız" bir pi'niz var. buna SSH da yapabilirsiniz.

Adım 6: Altıncı Bölüm: Bir Pi Üzerinde Geliştirme İçin Tüm Temel Araçların Kurulması

Altıncı Bölüm: Bir Pi Üzerinde Geliştirme İçin Tüm Temel Araçların Kurulması
Altıncı Bölüm: Bir Pi Üzerinde Geliştirme İçin Tüm Temel Araçların Kurulması

SSH veya VNC kullanarak (veya havalı olmamaya karar verdiyseniz ve başsız kurduysanız) aşağıdakileri yapın. terminali açın (bu sonraki kısım biraz zaman alabilir….) bu komutları her biri BİTMİŞ olduktan sonra birer birer çalıştırın.

sudo apt-get güncellemesi; sudo apt-get yükseltme ffmpeg yükleme { sudo apt-get yükleme ffmpeg

Adım 7: Bölüm Yedi: Adafruit WebIDE'nin Kurulumu

Yedinci bölüm: Adafruit WebIDE'nin Kurulumu
Yedinci bölüm: Adafruit WebIDE'nin Kurulumu

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh ana masaüstünüzde bir tarayıcı açın. tarayıcınızın URL'sini "https://***.*.*.***:8080" olarak işaretleyin "*" yerine Pi'nizin yerel IP adresini yazın. bir kullanıcı adı oluşturun ve geçin. artık adafruit webIDE kurulumuna sahipsiniz.

8. Adım: Sekizinci Bölüm: Node-red ve Node.js'yi güncelleyin

update-nodejs-and-nodered sonraki kod, başlangıçta adafruit webIDE'de olduğu gibi nodered çalışmasını sağlayacaktır, bu şeyler üzerinde gelişmek istiyorsanız bu önemlidir. sudo systemctl nodered.service'i etkinleştirin Pi'yi yeniden başlatın

Adım 9: Bölüm Dokuz: Arduino IDE'yi Kurma

Bölüm Dokuz: Arduino IDE'yi Kurma
Bölüm Dokuz: Arduino IDE'yi Kurma

komut satırı üzerinden yapabilirsiniz ama…. tam sürüm olmayacak.. yani kitaplık içe aktarma/arama aracını kullanamazsınız, tam sürümü yüklemek için arduino web sitesine gitmeniz ve pi modelinizin sürümünü indirmeniz gerekir. pi3 için ARM32bit olacak, kararlı sürümü alın. terminali açın.(*'ları sürüm bilgisiyle değiştirin) bu komutları çalıştırın.

www.arduino.cc/en/Main/Software

cd İndirilenler/ tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.* /opt sudo /opt/arduino-1.*.*/install.sh

Adım 10: Onuncu Bölüm: Ffmpeg

Onuncu Bölüm: Ffmpeg
Onuncu Bölüm: Ffmpeg

1x web kamerası logitech

(sonraki öğeler, 7/24 akışı çalıştırmak için gerekenleri içermez) 1x devre tahtası bir ikinci ahududu pi model 3 b (sd kartlı) ayrı ayrı adreslenebilir LED şerit. arduino nano atlama teli, her iki Pi'de de VNC görüntüleyiciyi etkinleştirir

pi tercihleri, vnc'yi etkinleştirin VNC görüntüleyici ile hesap oluşturun ÖNEMLİ: public work bench olarak kullanmayı planladığınız pi'de vnc sunucu ayarlarına, seçeneklere, uzman sekmesine gidin ve boşta kalma zaman aşımı yapın: 0 saniye, Vnc'yi kapatacak şekilde ayarlanmıştır görüntüleyici bir saat sonra boşta kalırsa, bunu yapmak pencerenizin terminaldeki flama pi'de orta akış yükleme vnc görüntüleyicisini kapatmasını durduracaktır.

sudo apt-get install vnc-java y

web kameranızı takın ve web kameranızı kurun.

sudo apt fswebcam yükleyin

ffmpeg'i kurun sudo apt-get ffmpeg y'yi kurun

burada kendi seçimleriniz devreye giriyor. terminalde, web kameranız için streamer pi'nizin masaüstünde bir pencere açmak için bu betiği çalıştırın.

ffplay -window_title "pi-cam" /dev/video0 -video_size 1920x1080 -vf kırpma=400:500:300:50 -framerate 20 ffplay bunu pi-cam adlı bir pencerede görmenize izin verecek, web kamerası sizi gösteriyor dev/video0 konumunda ve orijinal boyutu 1920x1080'dir. Ben sadece crop=width:height:topleft_X:topleft_Y'yi görmek istiyorum ve 20 kare hızı benim için yeterli. sonraki kod seğirmeye aktarılacaktır.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -vf scale=1280x720 -c:v h264 -g 24 -b:v 2M -ön ayarlı ultrafast -c:a aac -pix_fmt yuv420p -f flv " rtmp://live-lax.twitch.tv/app/(insertyourstreamkeyhere)"

-f x11grab ekranınızı almak için kullanılır. ekran çözünürlüğüm 1280x1024 olarak ayarlanmış Bunu 1280x720 so -vf video formatında görüntülemek istiyorum.

2m= 2mgb yükleme hızı. -f flv, twitch'in kullanabilmesi için videoyu.flv olarak biçimlendirmektir.

Artık ekibinize Pi tezgahına VNC kimlik bilgilerinizi verebilirsiniz ve onlar da led şeritteki değişiklikleri uzaktan canlı olarak görebilirler. Bu adama sesleniyorum~! videosu yoluma çıkmama yardımcı oldu, yine de web kameramı nasıl açacağımı bulmam gerekiyordu… ve ffmpeg X/ hakkında bilgi edinmem gerekiyordu.

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NOT: Ben en bilgili kişi değilim, bu sadece benim ihtiyaçlarım için işe yarıyor, eğer birinin yapıcı tavsiyesi varsa duymak isterim ama lütfen yapmayın Bunu daha da ileri götürmenin olası yollarından biri demek, bunu yayınlamak için bu mekaniği kullanmak ve bu akışı almak için başka bir pi ve krom uzantısı ışık akışını kullanmak ve web kamerasını buna veya başka bir şekilde beslemek olacaktır. https://www.youtube.com/embed/kb_5_9GkwZc AYRICA: Adamın youtube videosunda görüldüğü gibi ses eklemek isterseniz bu diziyi kullanabilirsiniz, evimin kayıt edilmesini istemedim ve seğirmeye gönderildi, bu odamda oturuyor, bu yüzden herhangi bir ses akışı yapmıyorum, ayrıca pi üzerindeki yükü azaltmaya yardımcı oluyor.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -i default -af acompressor=eşik=0.089:ratio=9:attack=200:release=1000 -vf scale=1280x720 -c:v h264 - g 24 -b:v 2M -ön ayarlı ultra hızlı -c:a aac -pix_fmt yuv420p -f flv "rtmp://live-lax.twitch.tv/app/(insertyourstreamkeyhere)"

Adım 11:

resim
resim
resim
resim
resim
resim
resim
resim

şimdi python ile arduino ve pi seri iletişimini uygulayarak son aşamaya geliyoruz.

---ev projesi kimdir--- Proje, terminalde nmap çalıştıran, içeriğini kopyalayan, ihtiyacımız olmayan metni ayrıştıran ve ağdaki mac adreslerini listelenenlerle karşılaştıran bir python betiği kullanır. mac adresleri ve bir eşleşme varsa o kişi evde. mac adresleri, yönlendirici üzerinde araştırma çalışması yapılarak bulundu, ancak nmap aracı, kodun oluşturduğu metin dosyasındaki cihazlar hakkında size bilgi verir. kullanıcı varsa arduinoya bir karakter gönderir ve arduino kontrol listesi tamamlanana kadar bekler ve mevcut cihazların mac adresleri için listelenen profillere karşılık gelen ledleri yakar. python betiğiniz içinde terminal komutlarını yürütmek için alt işlem operatörünü kullanarak, aynı kodla gelen veya giden insanlar üzerinde discord botlarının komutları çalıştırması gibi başka şeyler ekleyebilirsiniz. bu yüzden önce nmap sudo apt-get install nmap'i kuruyoruz. sonra Git-Hub kulüplerimizde dosyaları indirmek isteyeceksiniz.

github.com/ValenciaRobotics/embeddedclub

python kodu için, raspbian kurulumu bu kodda kullanılan her şeyle birlikte gelir, bu nedenle ek bir kuruluma ihtiyacınız yoktur. import re, import subprocess, import time, import serial kullandık python'un kod bloklarını ayırmak için girinti kullandığını unutmamak önemlidir, bu yüzden kodun yazılma şeklini değiştirmeye karar verirseniz bunun farkında olun:) py ile birlikte gelir thonny ide ve diğer birkaç seçenek, betiği thonny'de çalıştırmanın gerçekten basit olduğunu görüyorum, dosyaya tıklar ve çalıştırmayı denerseniz, kullanmak istediğiniz şeyin thonny olduğunu önerdi veya varsaydı. programı çalıştırmadan önce, aşağıdakileri düzenlemeniz gerekecektir. satır 14: * sembolleri kendi yönlendirici bilgilerimi maskelemek için kullanılıyor, bunu kendi yerel ip'inizle değiştirmeniz gerekecek. yönlendiricinize bağlanmak için kullandığınızla aynı olacaktır. satır 28, 38, 48, 58: bunların tümü ağımdan listelenen cihaz mac adreslerini maskelemek için * sembolünü kullanır, bağlantıları algılamak için bunları kendi ağınızdaki cihazların mac adreslerine değiştirmeniz gerekir. neden mac adresleri? çünkü cihazınız için konum ayırmadan, biri sahtekarlık yapmadıkça bu konumların aynı kalacağından emin olabilirsiniz. Bu kodla ilgili sorunlar, yalnızca bir bağlantı aktif olarak interneti kullanırken algılar, bu nedenle bir kullanıcı olmasına rağmen algılanmayabilir. arduino kodunda aşağıdakileri değiştirmek isteyeceksiniz. İlk olarak, araçlar sekmesine gitmek, kitaplık yöneticisini seçmek ve "fastLED" aramak ve "fastLED" için kitaplığı kurmak isteyeceksiniz. daha sonra github sayfasından "who is home".ino kodunu yüklemeniz ve aşağıdakileri istediğiniz gibi değiştirmeniz gerekecektir. satır 86: Kullanıcılarınızın ne eklemesini istediğinize göre renkleri değiştirin:)

// ihtiyacın olanı aç

if(d == 1){ ledler[0] = 0xdd8bff; //mor ledler[1] = 0xdd8bff;}

if(l == 1){ ledler[2] = CRGB::Yeşil; led'ler[3] = CRGB::Yeşil;}

if(k == 1){ ledler[4] = CRGB::Kırmızı; led'ler[5] = CRGB::Kırmızı; }

if(j == 1){ ledler[6] = CRGB::Mavi; led'ler[7] = CRGB::Mavi;}

FastLED.show(); gecikme(30000); //10 saniye bekleyin, anahtar durumunda daha fazla kullanıcının nasıl ekleneceğine dair kısa bir açıklama aşağıdadır

boşluk döngüsü(){

if (Serial.available() > 0) {

Seri.println();

kişi = Seri.read();

gecikme(1000);

geçiş(kişi){

durum'D': d = 1;

kişi = 'F';

say=say+1;

kırmak;

case'd':

d = 0;

kişi = 'F';

say=say+1;

kırmak;

büyük harf D, python betiğinden alınan karakterdir, bu nedenle alınan harf büyük D olduğu için kullanıcının mevcut olduğunu bilir, bu nedenle INTEGER d'nin değerini bildiğinden daha küçük bir harfse 1 olarak değiştirir. yoktur, bu nedenle INTEGER 0'a ayarlanır. komut dosyasındaki ledlerin aydınlatılması için önceki koşul, IF d'nin 1'den daha fazla olduğuna dair bir ifade kullanır, ancak o değilse, led yanmamış anlamına gelen "siyah" olarak kalır. bu kod "fastLED" kitaplığını kullanır ve bununla ilgili birçok belge vardır. Karakterleri değiştirirseniz, karakter eklerseniz veya karakterleri kaldırırsanız, değiştirdiğiniz karakterleri geri döndürmek için python betiğini değiştirmeniz gerekeceğini, ayrıca void döngüsündeki koşulu da değiştirmeniz gerekeceğini unutmayın. if(count == 4){holdup();} } sayının "izlediğiniz" cihazların sayısını yansıtması gerekir. benim durumumda 4'tür, bu nedenle 4 cihazın mevcut veya yok olarak bildirilmesini bekler ve ardından LED şeridini günceller. python kodunda, 31, 34, 41, 44, 51, 54, 61, 64 satırları aşağıdaki satıra sahiptir ser.write(b'*') #sends karakteri, seri üzerinden bayt olarak yayınlanır, burada * bir karakterdir arduinoya gönderme. arduino'daki kodu değiştirirseniz bunu değiştirin veya tam tersi:)

Yine, bir kapanış konuşması olarak, takım arkadaşım Jon'a teşekkür etmek istiyorum, ihtiyacımız olduğunda boşluğu almakta harika bir iş çıkardı.

Python Komut Dosyası tarafından sağlandı: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Arduino Script ve ev laboratuvarının gözden geçirilmesi ve kurulumu tarafından yapıldı: Dylan Poll

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

Umarım en azından bir tişört kazanırız! Bunun çoğunu otomatik olarak indirmek ve kurmak için bunu kabuk komutlarıyla güncelleyeceğim, kulüp web sitemiz aslında ffmpeg işlemlerini yapmak için indirilebilir kabuk komut dosyalarına sahiptir.

Bu proje çok zaman aldı, kulübün bu bölümünü sıfırdan kurdum, bu anın bana çok neşe getirdiğini gururla söyleyebilirim.:) Vakit ayırdığınız için teşekkürler, bu proje sayesinde artık kulübümde geliştirmemiz gereken bir çalışma platformumuz var.

Önerilen: