Isi kandungan:

Raspberry Pi HomeLab dan Who Is Home: 11 Langkah
Raspberry Pi HomeLab dan Who Is Home: 11 Langkah

Video: Raspberry Pi HomeLab dan Who Is Home: 11 Langkah

Video: Raspberry Pi HomeLab dan Who Is Home: 11 Langkah
Video: Как получить доступ к домашней сети из Интернета с помощью Raspberry Pi и Zerotier 2024, Julai
Anonim
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home
Raspberry Pi HomeLab dan Who Is Home

Ini adalah yang pertama saya tidak dapat dihancurkan, Tetapi arahan ini mempunyai dua kesan.

faze one: menubuhkan pi untuk berfungsi sebagai makmal rumah untuk kerja IOT untuk sekumpulan pemaju pelajar.

faze two: menggunakan sistem untuk pembangunan, dengan melaksanakan demonstrasi menggunakan projek rumah kita.

menjelang akhir ini, anda akan mempunyai pi tanpa kepala yang dapat diakses dari jarak jauh yang dapat digunakan oleh orang untuk memprogram dan bekerja pada peranti IOT dari jauh.

sekarang saya memberi amaran, bahawa dengan membuka pi anda kepada orang ramai tanpa keselamatan yang sewajarnya, anda akan menghadapi risiko jaringan rumah anda diserang.

kami akan membahas fasa pertama dalam langkah-langkah berikut, tetapi ini adalah pautan ke beberapa maklumat mengenai kelab kami dan projek siapa di rumah.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

projek Who Is home melakukan perkara berikut: menjalankan skrip python yang memeriksa alamat mac peranti yang disambungkan ke rangkaian anda. ia menggunakan Nmap untuk ini. ia menjalankan alamat tersebut dengan senarai alamat dan jika alamat yang disenaraikan ada, ia akan mengirimkan char ke arduino dengan menggunakan komunikasi bersiri. arduino mengendalikan jalur LED dan apabila ia menerima char, ia mempunyai warna yang berkaitan untuk peranti itu dan ia menyalakan LED untuk orang itu berdasarkan bahawa mereka ada.

laman web bahagian kami

sites.google.com/view/valencia-robotics

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

laman web kelab kami

sites.google.com/view/valenciatechclub

Skrip Python disediakan oleh: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Skrip Arduino dan berjalan dan penyiapan makmal rumah dilakukan oleh: Dylan Poll

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

Saya Dylan Poll, saya adalah presiden kelab teknologi semasa kolej kami dan saya juga peneraju sistem tertanam.

Bekalan

A pi

Seorang arduino

Papan roti

wayar pelompat

Kamera web

Jalur LED RGB yang boleh ditujukan secara individu

bekalan kuasa untuk pi anda, papan kekunci tetikus, komputer untuk melakukan persediaan awal.

Langkah 1: Memuat turun dan Memasang Fail Persediaan Awal

muat turun dan pasang dempul (tingkap)

www.putty.org

muat turun rufus dan pasang

rufus.ie

muat turun raspbian full buster dan perisian yang disyorkan (.zip)

www.raspberrypi.org/downloads/raspbian/

ekstrak kandungan di.zip ini akan menjadi [fail gambar] anda.

ambil kad sd mikro, dan gunakan dok atau peranti mikrosd ke usb dan pasangkannya ke dalam komputer anda format kad sd anda

Langkah 2: bahagian Kedua: Pasang Raspbian Menggunakan Rufus

Bahagian Kedua: Pasang Raspbian Menggunakan Rufus
Bahagian Kedua: Pasang Raspbian Menggunakan Rufus

jalankan rufus pilih kad sd anda di medan pertama pilih fail gambar raspbian untuk.iso /.img pilih mula dan tunggu sehingga selesai.

Langkah 3: bahagian Ketiga: Memasang Pi

setelah selesai mengeluarkan kad sd, masukkan ke dalam slot kad sd pada pi, pasangkan kabel "bawah" pada kabel HDMI ke pi terlebih dahulu, daripada papan kekunci dan tetikus, dan kabel kuasa terakhir. jika anda memasang kuasa terlebih dahulu mungkin tidak mendaftarkan monitor / tv anda.

Langkah 4: bahagian Keempat: Menyiapkan Akaun Anda

log masuk ke pi! lakukan persediaan larian pertama! jangan langkau! pilih papan kekunci bahasa Inggeris Amerika Syarikat atau anda tidak akan menemui simbol @ anda nanti … jika anda tidak mempunyai simbol @ di mana anda berada. log masuk ke wifi anda pada pi belum dikemas kini. Saya ada alasan. tekan "kekunci papan kekunci windows "dan pergi ke pilihan, pergi ke konfigurasi pi. pergi ke tab antara muka.

aktifkan VNC…. dan semua yang lain jangan reboot.

Langkah 5: bahagian Lima: Menyiapkan Pi Anda Tanpa Kepala (Perkara Terbaik yang Pernah)

Bahagian Lima: Menyiapkan Pi Anda Tanpa Kepala (Perkara Terbaik yang Pernah)
Bahagian Lima: Menyiapkan Pi Anda Tanpa Kepala (Perkara Terbaik yang Pernah)

lihat bahagian kanan atas skrin anda. anda akan melihat logo VNC hitam dan biru. buka itu. tekan masuk, buat dan akaun. tambah pi. pada carian penyemak imbas desktop / komputer riba anda pada pemasangan muat turun pemirsa VNC google. log masuk ke akaun anda. periksa e-mel anda untuk log masuk dan beri kebenaran kepada anda sendiri. sambungkan ke pi anda (taipkan kata laluan pi pada menu log masuk kedua) jika berfungsi mematikan pi anda. cabut plag anda dan segalanya. letakkan pi di sudut bilik anda dan jalankan hanya kabel kuasa kepadanya. anda boleh menyambung ke pi menggunakan VNC viewer. anda kini mempunyai pi "tanpa kepala". anda juga boleh SSH. (lihat maklumat SSH di bahagian yang menarik)

Langkah 6: bahagian Enam: Memasang Semua Alat Teras untuk Membangunkan Pi

Bahagian Enam: Memasang Semua Alat Teras untuk Membangunkan Pi
Bahagian Enam: Memasang Semua Alat Teras untuk Membangunkan Pi

menggunakan SSH atau VNC (atau jika anda memutuskan untuk tidak menjadi sejuk dan mengaturnya tanpa kepala) lakukan perkara berikut. buka terminal (bahagian seterusnya mungkin memerlukan masa….) jalankan arahan ini satu demi satu setelah setiap selesai.

sudo apt-get kemas kini; sudo apt-get upgrade memasang ffmpeg {sudo apt-get install ffmpeg

Langkah 7: bahagian Tujuh: Memasang Adafruit WebIDE

Bahagian Tujuh: Memasang Adafruit WebIDE
Bahagian Tujuh: Memasang Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo buka penyemak imbas di desktop utama anda. arahkan URL penyemak imbas anda ke "https://***.*.*.***: 8080" ganti "*" dengan alamat IP tempatan Pi anda. buat nama pengguna dan lulus. anda kini mempunyai persediaan webIDE adafruit.

Langkah 8: bahagian Kelapan: Kemas kini Node-red dan Node.js

kemas kini-nodejs-dan-mengangguk kod seterusnya akan mengangguk pada permulaan seperti webIDE adafruit, ini penting jika anda ingin mengembangkan perkara-perkara ini. sudo systemctl aktifkan mengangguk. perkhidmatan memulakan semula Pi

Langkah 9: bahagian Sembilan: Memasang Arduino IDE

Bahagian Sembilan: Memasang Arduino IDE
Bahagian Sembilan: Memasang Arduino IDE

anda boleh melakukannya melalui baris arahan tetapi…. ia tidak akan menjadi versi lengkap.. bermaksud anda tidak boleh menggunakan alat import / carian perpustakaan, untuk memasang versi lengkap anda perlu pergi ke laman web arduino dan memuat turun versi untuk model pi anda. ia akan menjadi ARM32bit untuk pi3, dapatkan pelepasan stabil. buka terminal. (ganti * dengan maklumat pelepasan) jalankan arahan ini.

www.arduino.cc/en/Main/Software

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

Langkah 10: Bahagian Sepuluh: Ffmpeg

Bahagian Sepuluh: Ffmpeg
Bahagian Sepuluh: Ffmpeg

1x logitech kamera web

(item seterusnya tidak termasuk apa yang anda perlukan untuk menjalankan aliran 24/7) 1x papan roti model pi raspberry kedua model 3 b (dengan kad sd) jalur LED yang boleh ditujukan secara individu. wayar jumper arduino nano membolehkan penampil VNC pada kedua-dua Pi

keutamaan pi, aktifkan vnc membuat akaun dengan penampil VNC PENTING: pada pi yang anda rancangkan untuk digunakan sebagai bangku kerja awam, pergi ke tetapan pelayan vnc, pilihan, tab pakar, dan buat masa tunggu terbiar: 0 saat, ia ditetapkan untuk menutup Vnc viewer jika diam selepas satu jam, melakukan ini akan menghentikan tetingkap anda daripada menutup mid stream memasang vnc viewer pada streamer pi di terminal.

sudo apt-get install vnc-java y

pasangkan kamera web anda dan … pasang kamera web anda.

sudo apt pasangkan fswebcam

pasang ffmpeg sudo apt-get pasang ffmpeg y

inilah pilihan anda sendiri. di terminal, jalankan skrip ini untuk membuka tetingkap di desktop pi streamer anda untuk kamera web anda.

ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay akan membolehkan anda melihat ini di tetingkap bernama pi-cam, kamera web yang menunjukkannya adalah di lokasi dev / video0 dan saiz asalnya ialah 1920x1080. Saya hanya mahu melihat crop = width: height: topleft_X: topleft_Y dan framerate 20 cukup untuk saya. kod seterusnya akan mengalir ke berkedut.

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

-f x11grab digunakan untuk merebut skrin anda. resolusi skrin saya ditetapkan ke 1280x1024 Saya ingin memaparkannya dalam format video jadi -vf 1280x720.

2m = kadar muat naik 2mgb. -f flv adalah untuk memformat video menjadi.flv sehingga kedutan dapat menggunakannya.

sekarang anda boleh memberikan kelayakan VNC kepada pasukan anda ke meja kerja Pi dan mereka dapat melihat perubahan pada jalur yang dipimpin secara langsung dari jarak jauh. Berteriak kepada lelaki ini ~! videonya menolong saya berada di landasan yang betul, saya masih perlu mencari cara untuk muncul di kamera web saya … dan mengetahui tentang ffmpeg X /

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc CATATAN: Saya bukan orang yang paling berpengetahuan, ini hanya berfungsi untuk keperluan saya, jika ada yang mempunyai nasihat yang membina saya ingin mendengarnya tetapi jangan bermaksud salah satu jalan yang mungkin untuk melangkah lebih jauh, adalah menggunakan mekanik ini untuk mengalirkan ini, dan menggunakan pi lain dan aliran cahaya sambungan krom untuk mengambil aliran itu dan daripada memasukkan kamera web ke dalam atau dengan cara lain. https://www.youtube.com/embed/kb_5_9GkwZc JUGA: jika anda ingin menambahkan audio, seperti yang dilihat dalam video mans youtube, anda boleh menggunakan tali ini, saya tidak mahu rumah saya dirakam dan dihantar ke kedutan, ini duduk di bilik saya jadi saya tidak mengalirkan audio apa pun, ia juga membantu mengurangkan beban pada pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i default -af acompressor = threshold = 0.089: ratio = 9: serangan = 200: pelepasan = 1000 -vf skala = 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/ (insertyourstreamkeyhere)"

Langkah 11:

Imej
Imej
Imej
Imej
Imej
Imej
Imej
Imej

sekarang hingga akhir, melaksanakan komunikasi bersiri arduino dan pi dengan python.

--- the who is home project --- Projek ini menggunakan skrip python yang menjalankan nmap di terminal, menyalin kandungannya, menghuraikan teks yang tidak kita perlukan, dan membandingkan alamat mac di rangkaian dengan yang disenaraikan alamat mac dan jika ada pertandingan orang itu ada di rumah. alamat mac dijumpai dengan melakukan kerja penyiasatan pada penghala, tetapi alat nmap memberi anda maklumat mengenai peranti dalam fail teks yang dihasilkan oleh kod tersebut. jika pengguna hadir, ia akan menghantar watak ke arduino, dan arduino menunggu sehingga senarai semak selesai, dan menyalakan LED yang sesuai dengan profil yang disenaraikan untuk alamat mac peranti sekarang. anda boleh menambahkan perkara lain, seperti bot discord menjalankan perintah pada orang yang datang atau pergi dengan kod yang sama dengan menggunakan pengendali sub proses untuk melaksanakan perintah terminal dalam skrip python anda. jadi pertama kita memasang nmap sudo apt-get install nmap. seterusnya anda mahu memuat turun fail di kelab kami Git-Hub.

github.com/ValenciaRobotics/embeddedclub

untuk kod python, pemasangan raspbian dilengkapi dengan semua yang digunakan dalam kod ini, jadi anda tidak memerlukan pemasangan tambahan. kami menggunakan import re, import subprocess, import time, import serial adalah penting untuk diperhatikan bahawa python menggunakan lekukan untuk memisahkan blok kod, jadi berhati-hatilah bahawa jika anda memutuskan untuk mengubah cara kod ditulis:) py disertakan dengan Thonny ide dan beberapa pilihan lain, saya dapati bahawa menjalankan skrip dalam thonny benar-benar lurus ke depan, jika anda mengklik pada fail tersebut dan berusaha untuk melaksanakannya, itu menunjukkan atau menganggap thonny adalah perkara yang anda ingin gunakan. sebelum anda menjalankan program ini, anda perlu menyunting perkara berikut. baris 14: simbol * digunakan untuk menyembunyikan maklumat penghala saya sendiri, anda harus menggantinya dengan ip tempatan anda sendiri. ia akan sama dengan yang anda gunakan untuk menyambung ke penghala anda. baris 28, 38, 48, 58: semuanya menggunakan simbol * untuk menyembunyikan alamat mac peranti yang disenaraikan dari rangkaian saya, anda harus menukarnya ke alamat mac peranti di rangkaian anda sendiri untuk mengesan sambungan. mengapa alamat mac? kerana tanpa menempah lokasi untuk peranti anda, mereka pasti tetap sama kecuali seseorang melakukan penipuan. masalah dengan kod ini, ia hanya akan dapat dikesan semasa sambungan menggunakan internet secara aktif, jadi mungkin tidak dapat dikesan walaupun ada pengguna. dalam kod arduino, anda ingin mengubah yang berikut. pertama, anda mahu pergi ke tab alat, pilih pengurus perpustakaan, dan cari "fastLED" dan pasang perpustakaan untuk "fastLED". seterusnya anda perlu memuatkan kod.ino "who is home" dari halaman github dan ubah yang berikut mengikut kehendak anda. baris 86: ubah warna berdasarkan apa yang anda mahu dilampirkan oleh pengguna anda:)

// hidupkan apa yang anda perlukan

jika (d == 1) {leds [0] = 0xdd8bff; // led ungu [1] = 0xdd8bff;}

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

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

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

FastLED.show (); kelewatan (30000); // Tunggu 10 saat pada kotak suis penjelasan ringkas mengenai cara menambahkan lebih banyak pengguna adalah berikut

gelung kosong () {

jika (Bersiri. tersedia ()> 0) {

Bersiri.println ();

orang = Serial.read ();

kelewatan (1000);

bertukar (orang) {

case'D ': d = 1;

orang = 'F';

kiraan = hitung + 1;

rehat;

kes ':

d = 0;

orang = 'F';

kiraan = hitung + 1;

rehat;

huruf besar D adalah watak yang diterima dari skrip python, jadi ia tahu bahawa pengguna hadir kerana huruf yang diterima adalah huruf besar D, sehingga mengubah nilai INTEGER d menjadi 1, jika huruf kecil daripada yang diketahui mereka tidak hadir sehingga INTEGER ditetapkan ke 0. syarat untuk pencahayaan led dalam skrip dari sebelumnya menggunakan pernyataan bahawa IF d adalah 1 daripada itu akan menyalakan led, tetapi jika tidak, LED tetap sebagai "hitam" yang bermaksud tidak menyala. kod ini menggunakan perpustakaan "fastLED" dan terdapat banyak dokumentasi mengenai perkara ini. perhatikan bahawa jika anda menukar watak, menambah watak atau membuang watak, anda perlu menukar skrip python untuk mengembalikan yang anda ubah juga, anda juga perlu mengubah keadaan dalam gelung kosong. if (count == 4) {holdup ();}} pengiraan mesti menggambarkan jumlah peranti yang anda "jejak". dalam kes saya adalah 4, jadi ia menunggu sehingga 4 peranti dinyatakan tidak ada dan tidak ada dan kemudian ia mengemas kini jalur LED. dalam kod python, baris 31, 34, 41, 44, 51, 54, 61, 64 mempunyai baris ser.write berikut (b '*') menghantar ke arduino. ubah ini jika anda menukar kod dalam arduino atau sebaliknya:)

Sekali lagi, sebagai pernyataan penutup, saya ingin memberi penghargaan kepada rakan sepasukan saya, Jon, dia melakukan pekerjaan yang hebat dalam mengatasi kekurangan ketika kami memerlukannya.

Skrip Python disediakan oleh: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Skrip Arduino dan berjalan dan penyiapan makmal rumah dilakukan oleh: Dylan Poll

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

Semoga kita memenangi sekurang-kurangnya t-shirt! Saya akan mengemas kini ini dengan perintah shell untuk memuat turun dan memasang secara automatik sebahagian besarnya, laman web kelab kami sebenarnya mempunyai skrip shell yang boleh dimuat turun untuk melakukan operasi ffmpeg.

Projek ini memerlukan banyak masa, saya mengasaskan bahagian kelab ini dari bawah ke atas sehingga saya dengan bangga mengatakan bahawa saat ini membawa saya banyak kegembiraan.:) terima kasih kerana meluangkan masa, kami mempunyai platform kerja untuk dikembangkan sekarang di kelab saya kerana projek ini.

Disyorkan: