Mục lục:

Raspberry Pi HomeLab and Who Is Home: 11 bước
Raspberry Pi HomeLab and Who Is Home: 11 bước

Video: Raspberry Pi HomeLab and Who Is Home: 11 bước

Video: Raspberry Pi HomeLab and Who Is Home: 11 bước
Video: Build THIS Home Cybersecurity Lab with Raspberry Pi and Docker for $75 2024, Tháng bảy
Anonim
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home
Raspberry Pi HomeLab và Who Is Home

Đây là lần đầu tiên không thể phá hủy của tôi, Nhưng chỉ dẫn này có hai cảm giác.

faze one: đang thiết lập pi để hoạt động như một phòng thí nghiệm tại nhà cho công việc IOT cho một nhóm các nhà phát triển sinh viên.

lỗi hai: là sử dụng hệ thống để phát triển, bằng cách thực hiện một cuộc trình diễn sử dụng dự án ai là nhà của chúng tôi.

cuối cùng, bạn sẽ có một pi không đầu có thể truy cập từ xa mà mọi người có thể sử dụng để lập trình và làm việc từ xa trên các thiết bị IOT.

bây giờ tôi cảnh báo rằng bằng cách mở pi của bạn cho công chúng mà không có bảo mật thích hợp, bạn sẽ tự mình đối mặt với nguy cơ bị tấn công mạng gia đình của bạn.

chúng tôi sẽ xem xét vấn đề đầu tiên trong các bước sau, nhưng đây là liên kết đến một số thông tin về câu lạc bộ của chúng tôi và dự án nhà ai là nhà.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

dự án Ai là nhà thực hiện như sau: chạy một tập lệnh python để kiểm tra địa chỉ mac của các thiết bị được kết nối với mạng của bạn. nó sử dụng Nmap cho việc này. nó chạy các địa chỉ đó dựa trên một danh sách các địa chỉ và nếu địa chỉ được liệt kê có mặt, nó sẽ gửi một char tới arduino bằng cách sử dụng giao tiếp nối tiếp. arduino điều khiển một dải đèn LED và khi nó nhận được biểu tượng, nó sẽ có màu liên quan cho thiết bị đó và nó sẽ sáng đèn LED cho người đó dựa trên sự hiện diện của chúng.

bộ phận con của chúng tôi

sites.google.com/view/valencia-robotics

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

trang web câu lạc bộ của chúng tôi

sites.google.com/view/valenciatechclub

Tập lệnh Python được cung cấp bởi: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Tập lệnh Arduino và hướng dẫn và thiết lập phòng thí nghiệm tại nhà được thực hiện bởi: Dylan Poll

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

Tôi là Dylan Poll, tôi là chủ tịch hiện tại của câu lạc bộ công nghệ của trường đại học của chúng tôi và tôi cũng là trưởng nhóm hệ thống nhúng.

Quân nhu

Một số pi

A arduino

Một breadboard

dây nhảy

Một webcam

Dải LED RGB có thể định địa chỉ riêng

cung cấp năng lượng cho pi của bạn, bàn phím, chuột, máy tính để thực hiện thiết lập ban đầu.

Bước 1: Tải xuống và cài đặt các tệp thiết lập ban đầu

tải xuống và cài đặt putty (windows)

www.putty.org

tải xuống rufus và cài đặt

rufus.ie

tải xuống raspbian buster đầy đủ và phần mềm được đề xuất (.zip)

www.raspberrypi.org/downloads/raspbian/

trích xuất nội dung trong.zip, đây sẽ là [tệp hình ảnh] của bạn.

lấy thẻ micro sd và sử dụng đế cắm hoặc thiết bị microd vào usb và cắm nó vào máy tính của bạn, định dạng thẻ sd của bạn

Bước 2: Phần Hai: Cài đặt Raspbian bằng Rufus

Phần hai: Cài đặt Raspbian bằng Rufus
Phần hai: Cài đặt Raspbian bằng Rufus

chạy rufus chọn thẻ sd của bạn trong trường đầu tiên chọn tệp hình ảnh raspbian cho.iso /.img chọn bắt đầu và đợi nó hoàn tất.

Bước 3: Phần ba: Cắm Pi

sau khi hoàn thành, rút thẻ sd ra, đặt nó vào khe cắm thẻ sd trên pi, ở "dưới cùng" của nó, cắm dây HDMI vào pi đầu tiên, thay vì bàn phím và chuột, và cáp nguồn cuối cùng. nếu bạn cắm nguồn trước, nó có thể không đăng ký được màn hình / TV của bạn.

Bước 4: Phần thứ tư: Thiết lập tài khoản của bạn

đăng nhập vào pi! thực hiện thiết lập chạy đầu tiên! đừng bỏ qua nó! chọn bàn phím tiếng Anh Hoa Kỳ hoặc bạn sẽ không tìm thấy ký hiệu @ sau đó… nếu bạn không tìm thấy ký hiệu @ của bạn ở vị trí "của bạn. Đăng nhập vào wifi của bạn trên pi chưa cập nhật. Tôi có lý do. Hãy nhấn phím" windows keyboard "và đi tới tùy chọn, chuyển đến cấu hình pi. chuyển đến tab giao diện.

bật VNC…. và mọi thứ khác không khởi động lại.

Bước 5: Phần năm: Thiết lập Pi của bạn là không đầu (Điều tốt nhất từ trước đến nay)

Phần năm: Thiết lập Pi của bạn là không đầu (Điều hay nhất từ trước đến nay)
Phần năm: Thiết lập Pi của bạn là không đầu (Điều hay nhất từ trước đến nay)

nhìn vào phía trên bên phải màn hình của bạn. bạn sẽ thấy logo VNC màu xanh đen. mở cái đó. nhấn đăng nhập, tạo và tạo tài khoản. thêm số pi. trên máy tính để bàn / máy tính xách tay của bạn mở trình duyệt tìm kiếm trên google, cài đặt trình xem VNC download. đăng nhập vào tài khoản của bạn. kiểm tra email của bạn để biết thông tin đăng nhập và tự ủy quyền. kết nối với pi của bạn (nhập mật khẩu pi ở menu đăng nhập thứ hai) nếu nó hoạt động, hãy tắt pi của bạn. rút số pi của bạn và mọi thứ. đặt pi vào một góc trong phòng của bạn và chỉ chạy dây cáp điện cho nó. bạn có thể kết nối với pi bằng trình xem VNC. bây giờ bạn có một số pi "không đầu". bạn cũng có thể SSH cho nó. (xem thông tin SSH trong phần nội dung thú vị)

Bước 6: Phần thứ sáu: Cài đặt tất cả các công cụ cốt lõi để phát triển trên Pi

Phần sáu: Cài đặt tất cả các công cụ cốt lõi để phát triển trên Pi
Phần sáu: Cài đặt tất cả các công cụ cốt lõi để phát triển trên Pi

bằng cách sử dụng SSH hoặc VNC (hoặc nếu bạn quyết định không thích và thiết lập nó không cần thiết), hãy làm như sau. mở thiết bị đầu cuối (phần tiếp theo này có thể mất một lúc….) chạy các lệnh này lần lượt sau khi mỗi lệnh hoàn tất.

sudo apt-get cập nhật; sudo apt-get nâng cấp cài đặt ffmpeg {sudo apt-get install ffmpeg

Bước 7: Phần thứ bảy: Cài đặt Adafruit WebIDE

Phần bảy: Cài đặt Adafruit WebIDE
Phần bảy: Cài đặt Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh mở một trình duyệt trên màn hình chính của bạn. trỏ URL trình duyệt của bạn tới "https://***.*.*.***: 8080" thay thế "*" bằng địa chỉ IP cục bộ của Pi của bạn. tạo tên người dùng và vượt qua. bây giờ bạn có thiết lập adafruit webIDE.

Bước 8: Phần 8: Cập nhật Node-red và Node.js

update-nodejs-and-gật đầu, mã tiếp theo sẽ chạy được gật đầu khi khởi động giống như adafruit webIDE, điều này rất quan trọng nếu bạn muốn phát triển những thứ này. sudo systemctl kích hoạt gật đầu.service khởi động lại Pi

Bước 9: Phần Chín: Cài đặt Arduino IDE

Phần Chín: Cài đặt Arduino IDE
Phần Chín: Cài đặt Arduino IDE

bạn có thể làm điều đó thông qua dòng lệnh nhưng…. Nó sẽ không phải là phiên bản đầy đủ.. nghĩa là bạn không thể sử dụng công cụ tìm kiếm / nhập thư viện, để cài đặt phiên bản đầy đủ, bạn cần truy cập trang web arduino và tải xuống phiên bản cho kiểu máy pi của bạn. nó sẽ là ARM32bit cho pi3, có được bản phát hành ổn định. mở thiết bị đầu cuối. (thay dấu * bằng thông tin phát hành) chạy các lệnh này.

www.arduino.cc/en/Main/Software

cd Tải xuống / tar -xf arduino-1. *. * - linuxarm.tar.xz sudo mv arduino-1. *. * / opt sudo /opt/arduino-1.*.*/install.sh

Bước 10: Phần mười: Ffmpeg

Phần mười: Ffmpeg
Phần mười: Ffmpeg

1x webcam logitech

(các mục tiếp theo không bao gồm những gì bạn cần để chạy một luồng 24/7) 1x breadboard một thứ hai raspberry pi model 3 b (với thẻ sd) dải đèn LED có thể định địa chỉ riêng. arduino nano jumper wire cho phép xem VNC trên cả hai Pi

tùy chọn pi, kích hoạt vnc, tạo tài khoản với trình xem VNC QUAN TRỌNG: trên pi bạn định sử dụng như một băng ghế làm việc công cộng, hãy chuyển đến cài đặt máy chủ vnc, tùy chọn, tab chuyên gia và đặt thời gian chờ nhàn rỗi: 0 giây, nó được thiết lập để đóng Vnc trình xem nếu không hoạt động sau một giờ, làm điều này sẽ ngăn cửa sổ của bạn đóng giữa luồng, cài đặt trình xem vnc trên streamer pi trong thiết bị đầu cuối.

sudo apt-get install vnc-java y

cắm webcam của bạn và … cài đặt webcam của bạn.

sudo apt cài đặt fswebcam

cài đặt ffmpeg sudo apt-get cài đặt ffmpeg y

đây là nơi các lựa chọn của riêng bạn phát huy tác dụng. trong terminal, hãy chạy tập lệnh này để mở một cửa sổ trên màn hình máy tính để bàn của streamer pi cho webcam của bạn.

ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay sẽ cho phép bạn xem điều này trong cửa sổ có tên pi-cam, webcam hiển thị cho bạn tại vị trí dev / video0 và kích thước ban đầu của nó là 1920x1080. Tôi chỉ muốn xem crop = width: height: topleft_X: topleft_Y và tốc độ khung hình 20 là đủ đối với tôi. mã tiếp theo sẽ phát trực tuyến để co giật.

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

-f x11grab được sử dụng để lấy màn hình của bạn. độ phân giải màn hình của tôi được đặt thành 1280x1024 Tôi muốn hiển thị độ phân giải đó ở định dạng video 1280x720 so -vf.

2m = 2mgb tốc độ tải lên. -f flv là định dạng video thành.flv để twitch có thể sử dụng nó.

bây giờ bạn có thể cung cấp cho nhóm của bạn thông tin đăng nhập VNC của bạn vào bàn làm việc Pi và họ có thể thấy các thay đổi đối với dải dẫn trực tiếp từ xa. Kêu lên anh chàng này ~! video của anh ấy đã giúp tôi đi đúng hướng, tôi vẫn phải tìm cách bật webcam của mình… và tìm hiểu về ffmpeg X /

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc LƯU Ý: Tôi không phải là người có nhiều thông tin nhất, điều này chỉ phù hợp với nhu cầu của tôi, nếu ai đó có lời khuyên mang tính xây dựng, tôi rất muốn nghe nhưng xin đừng có nghĩa là một trong những cách có thể để thực hiện điều này xa hơn, sẽ là sử dụng cơ chế này để phát trực tuyến này và sử dụng một số pi khác và luồng ánh sáng mở rộng chrome để tìm nạp luồng đó và hơn là đưa webcam vào đó hoặc theo bất kỳ cách nào khác. https://www.youtube.com/embed/kb_5_9GkwZc CŨNG CÓ: nếu bạn muốn thêm âm thanh, như đã thấy trong video youtube của người dùng, bạn có thể sử dụng chuỗi này, tôi không muốn nhà mình bị ghi âm và Gửi đến twitch, đây là phòng của tôi nên tôi không phát trực tiếp bất kỳ âm thanh nào, nó cũng giúp giảm tải cho số pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i default -af acompressor = ngưỡng = 0,089: ratio = 9: attack = 200: release = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -đặt lại cực nhanh -c: aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (inserttyourstreamkeyhere)"

Bước 11:

Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh

bây giờ đến phần cuối cùng, thực hiện giao tiếp nối tiếp arduino và pi với python.

--- the who is home project --- Dự án sử dụng một tập lệnh python chạy nmap trong thiết bị đầu cuối, sao chép nội dung của nó, phân tích văn bản mà chúng tôi không cần và so sánh địa chỉ mac trên mạng với danh sách địa chỉ mac và nếu có trùng khớp thì người đó có nhà không. địa chỉ mac được tìm thấy bằng cách thực hiện công việc điều tra trên bộ định tuyến, nhưng công cụ nmap cung cấp cho bạn thông tin về các thiết bị trong tệp văn bản do mã tạo ra. nếu người dùng có mặt, nó sẽ gửi một ký tự đến arduino, và arduino đợi cho đến khi danh sách kiểm tra được hoàn thành và đèn LED sáng lên tương ứng với các cấu hình được liệt kê cho địa chỉ mac của các thiết bị hiện tại. bạn có thể thêm những thứ khác, chẳng hạn như để bot bất hòa chạy lệnh khi những người đến hoặc đi với cùng một mã này bằng cách sử dụng toán tử quy trình phụ để thực hiện các lệnh đầu cuối trong tập lệnh python của bạn. vì vậy đầu tiên chúng ta cài đặt nmap sudo apt-get install nmap. tiếp theo, bạn sẽ muốn tải xuống các tệp trên Git-Hub câu lạc bộ của chúng tôi.

github.com/ValenciaRobotics/embeddedclub

đối với mã python, cài đặt raspbian đi kèm với mọi thứ được sử dụng trong mã này, vì vậy bạn không cần cài đặt thêm bất kỳ thứ gì. chúng tôi đã sử dụng import re, import subprocess, import time, import serial, điều quan trọng cần lưu ý là python sử dụng thụt lề để phân tách các khối mã, vì vậy hãy lưu ý nếu bạn quyết định thay đổi cách viết mã:) py đi kèm thonny Ide và một vài tùy chọn khác, tôi thấy rằng việc chạy tập lệnh trong thonny thực sự rất dễ dàng, nếu bạn nhấp vào tệp và cố gắng thực thi nó, nó được gợi ý hoặc giả sử thonny là thứ bạn muốn sử dụng. trước khi bạn chạy chương trình, bạn sẽ cần phải chỉnh sửa những điều sau đây. dòng 14: các ký hiệu * được sử dụng để che thông tin bộ định tuyến của riêng tôi, bạn sẽ phải thay thế thông tin đó bằng ip cục bộ của riêng bạn. nó sẽ giống như những gì bạn sử dụng để kết nối với bộ định tuyến của mình. dòng 28, 38, 48, 58: tất cả đều sử dụng ký hiệu * để che dấu địa chỉ mac của thiết bị được liệt kê từ mạng của tôi, bạn phải thay đổi chúng thành địa chỉ mac của thiết bị trong mạng của riêng bạn để phát hiện kết nối. tại sao địa chỉ mac? bởi vì không đặt trước vị trí cho thiết bị của bạn, chúng chắc chắn sẽ giữ nguyên trừ khi ai đó đang giả mạo. vấn đề với mã này, nó sẽ chỉ phát hiện khi kết nối đang sử dụng internet, vì vậy nó có thể không được phát hiện mặc dù có người dùng. trong mã arduino, bạn sẽ muốn thay đổi những điều sau. trước tiên, bạn sẽ muốn chuyển đến tab công cụ, chọn trình quản lý thư viện và tìm kiếm "fastLED" và cài đặt thư viện cho "fastLED". tiếp theo, bạn sẽ cần tải mã.ino "ai là nhà" từ trang github và thay đổi phần sau theo ý muốn. dòng 86: thay đổi màu sắc dựa trên những gì bạn muốn người dùng của mình đính kèm:)

// bật những gì bạn cần

if (d == 1) {leds [0] = 0xdd8bff; // đèn led màu tím [1] = 0xdd8bff;}

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

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

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

FastLED.show (); chậm trễ (30000); // 10 giây đợi trên trường hợp chuyển đổi một lời giải thích ngắn gọn về cách thêm nhiều người dùng hơn như sau

void loop () {

if (Serial.available ()> 0) {

Serial.println ();

người = Serial.read ();

chậm trễ (1000);

chuyển đổi (người) {

case'D ': d = 1;

người = 'F';

count = count + 1;

nghỉ;

case'd ':

d = 0;

người = 'F';

count = count + 1;

nghỉ;

chữ hoa D là ký tự nhận được từ tập lệnh python, vì vậy nó biết rằng người dùng đang có mặt vì ký tự nhận được là chữ hoa D, vì vậy nó thay đổi giá trị của INTEGER d thành 1, nếu nó là chữ thường thì nó biết họ. vắng mặt vì vậy INTEGER được đặt thành 0. điều kiện để đèn led chiếu sáng trong tập lệnh từ trước sử dụng câu lệnh IF d là 1 thì nó sẽ sáng đèn led, nhưng nếu không phải đèn led đó vẫn là "đen" có nghĩa là không sáng. mã này sử dụng thư viện "fastLED" và có rất nhiều tài liệu về điều này. lưu ý rằng nếu bạn thay đổi ký tự, thêm ký tự hoặc xóa ký tự, bạn sẽ phải thay đổi tập lệnh python để trả lại những ký tự bạn đã thay đổi chúng, bạn cũng sẽ phải thay đổi điều kiện trong vòng lặp void. if (count == 4) {holdup ();}}, số lượng sẽ phải phản ánh số lượng thiết bị bạn đang "theo dõi". trong trường hợp của tôi, nó là 4, vì vậy nó đợi cho đến khi 4 thiết bị được khai báo là có mặt hoặc vắng mặt và sau đó nó cập nhật dải đèn LED. trong mã python, các dòng 31, 34, 41, 44, 51, 54, 61, 64 có dòng sau ser.write (b '*') #sends ký tự được truyền dưới dạng byte trên nối tiếp trong đó * là ký tự. gửi đến arduino. thay đổi điều này nếu bạn thay đổi mã trong arduino hoặc ngược lại:)

Một lần nữa, như một lời tuyên bố kết thúc, tôi muốn ghi công cho người đồng đội của tôi, Jon, anh ấy đã làm rất tốt trong việc tìm ra điểm sơ hở khi chúng tôi cần.

he Python Script được cung cấp bởi: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Tập lệnh Arduino và hướng dẫn và thiết lập phòng thí nghiệm tại nhà được thực hiện bởi: Dylan Poll

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

Hy vọng rằng chúng tôi giành được ít nhất một chiếc áo thun! Tôi sẽ cập nhật điều này với các lệnh shell để tự động tải xuống và cài đặt hầu hết điều này, trang web câu lạc bộ của chúng tôi thực sự có các tập lệnh shell có thể tải xuống để thực hiện các hoạt động ffmpeg.

Dự án này mất rất nhiều thời gian, tôi đã thành lập bộ phận này của câu lạc bộ ngay từ đầu nên tôi có thể tự hào nói rằng khoảnh khắc này mang lại cho tôi rất nhiều niềm vui.:) cảm ơn bạn đã dành thời gian của bạn, chúng tôi có một nền tảng làm việc để phát triển bây giờ trong câu lạc bộ của tôi vì dự án này.

Đề xuất: