Isi kandungan:

Penghala Wifi Nintendo: 17 Langkah (dengan Gambar)
Penghala Wifi Nintendo: 17 Langkah (dengan Gambar)

Video: Penghala Wifi Nintendo: 17 Langkah (dengan Gambar)

Video: Penghala Wifi Nintendo: 17 Langkah (dengan Gambar)
Video: Apa Itu Wi-Fi, Router, ISP, LAN, Switch, dan Access Point? Dalam Penjelasan Versi Sederhana 2024, November
Anonim
Penghala Wifi Nintendo
Penghala Wifi Nintendo

Dengan menggunakan casing sistem Old Nintendo Entertainment, hasilkan penghala rumah yang sangat berfungsi menggunakan RaspberryPI 3!

Langkah 1: Pasang Perisian RaspberryPi yang Diperlukan

Flashing RaspberriPi Hard Disk / Pasang Perisian yang Diperlukan (Menggunakan Ubuntu Linux)

Muat turun "RASPBIAN JESSIE LITE"

Buat cakera keras baru anda untuk DashboardPI

Masukkan microSD ke komputer anda melalui penyesuai USB dan buat gambar cakera menggunakan arahan dd

Cari kad microSD anda yang dimasukkan melalui perintah df -h, lepaskannya dan buat imej cakera dengan arahan disk copy dd

$ df -h / dev / sdb1 7.4G 32K 7.4G 1% / media / XXX / 1234-5678

$ umount / dev / sdb1

Awas: pastikan perintah betul-betul tepat, anda boleh merosakkan cakera lain dengan arahan ini

if = lokasi fail gambar RASPBIAN JESSIE LITE = lokasi kad microSD anda

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (nota: dalam kes ini, itu / dev / sdb, / dev / sdb1 adalah partisi kilang yang ada pada microSD) Menyiapkan RaspberriPi anda

Masukkan kad microSD baru anda ke raspberrypi dan hidupkan dengan monitor yang disambungkan ke port HDMI

Log masuk

pengguna: pi pass: raspberry Tukar kata laluan akaun anda untuk keselamatan

sudo passwd pi Dayakan Pilihan Lanjutan RaspberriPi

sudo raspi-config Pilih: 1 Luaskan Sistem Fail

9 Pilihan Lanjutan

Nama Host A2 mengubahnya menjadi "NESRouter"

A4 SSH Dayakan SSH Server

A7 I2C Aktifkan antara muka i2c Aktifkan Papan Kekunci Bahasa Inggeris / AS

sudo nano / etc / default / keyboard Tukar baris berikut: XKBLAYOUT = "us" Sediakan arahan l direktori mudah [pilihan]

vi ~ /.bashrc

tambah baris berikut:

alias l = 'ls -lh'

sumber ~ /.bashrc Betulkan sorotan sintaks lalai VIM [pilihan]

sudo vi / etc / vim / vimrc

melepaskan baris berikut:

sintaks pada Reboot PI anda untuk mendapatkan perubahan terkini

but semula Kemas kini tetapan zon waktu tempatan

sudo dpkg-reconfigure tzdata pilih zon waktu anda menggunakan antara muka

Langkah 2: Membuat Titik Akses WiFi

Harap maklum, sebelum ini menjadi penghala, kami memasang RaspberryPi ke rangkaian yang ada melalui port ethernet untuk memasang pakej berikut

sudo apt-get kemas kini && sudo apt-get -y upgrade

sudo apt-get install dnsmasq hostapd vim

sudo apt-get install vim git python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

Tambahkan baris berikut:

denyinterfaces wlan0 sudo vi / etc / network / antaramuka

Edit bahagian wlan0 sehingga kelihatan seperti ini:

auto lo iface lo inet loopback

manual ifet eth0

auto wlan0 iface wlan0 alamat statik inet 10.0.10.1 netmask 255.255.255.0 rangkaian 10.0.10.0 siaran 10.0.10.255

auto eth1 iface eth1 alamat statik inet 10.0.20.1 netmask 255.255.255.0 rangkaian 10.0.20.0 siaran 10.0.20.255 Muat semula Pelayan DHCP dan lantaikan konfigurasi untuk sambungan eth0 dan wlan0

perkhidmatan sudo dhcpcd mulakan semula

sudo ifdown eth0; sudo ifup wlan0

Konfigurasikan HOSTAPD (Ubah ssid dan wpa_passphrase kepada nilai pilihan anda sendiri)

sudo vi /etc/hostapd/hostapd.conf

# Ini adalah nama antara muka WiFi yang kami konfigurasikan di atas antara muka = wlan0

# Gunakan pemacu nl80211 dengan pemacu pemacu brcmfmac = nl80211

# Ini adalah nama rangkaian ssid = NintendoWiFi

# Gunakan jalur 2.4GHz hw_mode = g

# Gunakan saluran 6 saluran = 6

# Aktifkan 802.11n ieee80211n = 1

# Aktifkan WMM wmm_enabled = 1

# Aktifkan saluran 40MHz dengan selang pengawal 20ns ht_capab = [HT40] [PENDEK-GI-20] [DSSS_CCK-40]

# Terima semua alamat MAC macaddr_acl = 0

# Gunakan pengesahan WPA auth_algs = 1

# Wajibkan klien mengetahui nama rangkaian ign_broadcast_ssid = 0

# Gunakan WPA2 wpa = 2

# Gunakan kunci yang dikongsi sebelumnya wpa_key_mgmt = WPA-PSK

# Frasa laluan rangkaian wpa_passphrase = kata laluan

# Gunakan AES, bukannya TKIP rsn_pairwise = CCMP Kita dapat memeriksa apakah ia berfungsi pada tahap ini dengan menjalankan (tetapi belum mempunyai sambungan internet sepenuhnya):

sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf

sudo vi / etc / default / hostapd

Cari garis

# DAEMON_CONF = "" dan gantikan dengan

DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Konfigurasikan DNSMASQ

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo vi /etc/dnsmasq.conf

bind-interfaces # Ikut ke interface untuk memastikan kita tidak menghantar barang ke tempat lain server = 8.8.8.8 # Teruskan permintaan DNS ke Google DNS domain-diperlukan # Jangan kirimkan nama pendek palsu-priv # Jangan kirimkan alamat di -ruang alamat yang lengkap.

# Tetapkan alamat IP tanpa masa pajakan tak terbatas (untuk statistik penggunaan peranti) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, dhcp-range tak terbatas = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, MENYIAPKAN IPV4 TERHAD

sudo vi /etc/sysctl.conf

[unmentment] net.ipv4.ip_forward = 1

Aktifkan dengan segera dengan sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state BERKAITAN, DITUBUHKAN -j TERIMA

sudo iptables -A FORWARD -i eth1 -o eth0 -j TERIMA

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state BERKAITAN, DITUBUHKAN -j MENERIMA

sudo iptables -A FORWARD -i wlan0 -o eth0 -j TERIMA

Simpan tetapan iptables untuk reboot seterusnya

sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"

Buat fail peraturan ipv4 (dengan kandungan baru)

sudo vi / lib / dhcpcd / dhcpcd-hooks / 70-ipv4-nat

iptables-restore </etc/iptables.ipv4.nat Mulakan Semula Perkhidmatan

sudo service hostapd start sudo service dnsmasq start

rebo sudo

Menetapkan IP Statik [Pilihan]

Sekiranya anda ingin host di rangkaian anda mempunyai ips statik, gunakan yang berikut

Dapatkan host yang kini dihubungkan melalui DHCP vi /var/lib/misc/dnsmasq.leases

Tambahkan Alamat MAC (dari output di atas) dan alamat IP yang ingin anda tetapkan ke sudo vi /etc/dnsmasq.conf

# desktop utama dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Catatan: Ini akan menetapkan antara muka rangkaian dengan Alamat MAC: 12: 34: 56: 78: 9a: bc ke alamat IP 10.0.20.20. Alamat IP yang disenaraikan TIDAK harus berada dalam julat DHCP yang diberikan, hanya pada subnet yang sama. Desktop utama saya di atas adalah pada subnet eth1: 10.0.20.0, jadi saya memberikannya Alamat IP pada 10.0.20.20.

Menambah UFW Firewall

sudo apt-get pasang ufw

Benarkan port 22 untuk kegunaan awam (untuk akses rangkaian jauh)

sudo ufw membenarkan 22

Benarkan semua port di rangkaian tempatan saya

sudo ufw izinkan dari 10.0.10.0/24 sudo ufw izinkan dari 10.0.20.0/24

Benarkan port web untuk semua orang

sudo ufw membenarkan 80

Benarkan port web selamat untuk semua orang

sudo ufw membenarkan 443

Dayakan UFW dan periksa statusnya

sudo ufw --paksa aktifkan

status sudo ufw

Betulkan BUG dengan UFW tidak bermula pada permulaan

sudo su crontab -e

Tambahkan baris berikut: @reboot / bin / sleep 60; ufw --paksa aktifkan

Langkah 3: Bekalan Diperlukan: Nintendo Lama Patah

Diperlukan Bekalan: Nintendo Pecah Lama
Diperlukan Bekalan: Nintendo Pecah Lama

Kes Nintendo Lama dari NES yang rosak (keluarkan semua kandungan lama di dalam casing, hanya tinggal bingkai luar, butang kuasa / tetapan semula dan sambungan pengawal)

Langkah 4: Keperluan yang diperlukan: Raspberry Pi 3 Model B

Keperluan yang diperlukan: Raspberry Pi 3 Model B
Keperluan yang diperlukan: Raspberry Pi 3 Model B

Langkah 5: Bekalan Diperlukan: 1.44 "Siri: Modul Paparan LCD 128x128 UART / I2C / SPI TFT

Keperluan yang diperlukan: 1.44
Keperluan yang diperlukan: 1.44
Keperluan yang diperlukan: 1.44
Keperluan yang diperlukan: 1.44

Langkah 6: Bekalan Diperlukan: 5V 0.1A Mini Fan Raspberry Pi

Keperluan yang diperlukan: 5V 0.1A Mini Fan Raspberry Pi
Keperluan yang diperlukan: 5V 0.1A Mini Fan Raspberry Pi

Langkah 7: Bekalan Diperlukan: Ugreen USB 2.0 hingga 10/100 Fast Ethernet Lan Wired Network Adapter

Diperlukan Bekalan: Ugreen USB 2.0 hingga 10/100 Fast Ethernet Lan Wired Network Adapter
Diperlukan Bekalan: Ugreen USB 2.0 hingga 10/100 Fast Ethernet Lan Wired Network Adapter

Langkah 8: Pembinaan

Pembinaan
Pembinaan

Pasang di dalam NES

Dengan menggunakan pencetak 3D mencetak bingkai Paparan Digole "NESPanel" di folder / construction / display-frame /. [jika anda tidak mempunyai pencetak 3D, anda dapat memotong lubang persegi dengan lembut untuk Digole Display dengan alat Dremel] Potong lubang berikut terbuka di belakang dan sisi casing untuk membolehkan kipas kecil diikat pada sisi dan kabel power / ethernet dan ethernet USB untuk masuk melalui belakang.

Langkah 9: Sambungan Pembinaan

Sambungan Pembinaan
Sambungan Pembinaan

Buka penutup panel hitam kanan atas dari NES dan potong dengan bersih lubang persegi yang cukup besar untuk memasang paparan digole anda. Lekatkan paparan di tempat dengan bingkai dicetak 3D "NESPanel" di bahagian atasnya.

Langkah 10: Sambungan Pembinaan

Sambungan Pembinaan
Sambungan Pembinaan

Pasang RaspberryPi di tengah bawah casing NES kosong, kencangkan dengan gam atau skru kecil melalui bahagian bawah. Dengan menggunakan resister 270 ohm, sambungkan "power on LED" NES ke pin 5V dan GND di Raspberry Pi (plumbum LED pendek adalah tanah). Sambungkan kipas kecil ke pin 5V dan GND juga agar ia berfungsi semasa unit dimulakan, lekatkan kipas pada lubang di sebelahnya.

Langkah 11: Menyambungkan Paparan Digole

Sambungkan pin berikut ke pin pada RaspberryPi

VCC disambungkan ke 3v GND adalah tanah DATA adalah SDA CLOCK adalah SCL Sekarang anda harus melihat peranti dalam perintah i2cdetect anda

i2cdetect -y 1 ia harus muncul di grid teks sebagai 27

Langkah 12: Pasang Alat Pemantauan Rangkaian & Pembalakan DB

sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2

sudo vi /etc/postgresql/9.4/main/pg_hba.conf

Tambahkan baris berikut ke akhir fail: tempatan semua kata laluan sudo -i -u kata laluan pos

psql

buat kata laluan peranan pi 'kata laluan di sini';

ubah peranan pi log masuk;

ubah peranan pi superuser;

du

(anda harus melihat pengguna PI anda dengan izin yang diberikan) membuat pangkalan data network_stats;

q

jalan keluar

psql -d network_stats

Jalankan pertanyaan berikut:

BUAT JADUAL traffic_per_minute (siri bersiri, cap waktu tanpa zon waktu TIDAK NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

BUAT INDEKTIF UNIK time_idx ON traffic_per_minute (masa); Salin folder "logging" kod dari projek ini ke direktori utama RPi anda

crontab -e

Tambahkan baris ini

@reboot / bin / tidur 60; nohup python /home/pi/logging/networkUsage.py> / dev / null 2> & 1

Langkah 13: Pasang Laporan Ringkasan Lalu Lintas (berjalan Setiap 5 Minit oleh Cronjob)

crontab -e

tambah baris berikut

* / 5 * * * * python /home/pi/logging/trafficSummary.py

Langkah 14: Pasang Skrin Papan Pemuka

Salin folder "paparan" kod dari projek ini ke direktori utama RPi anda

Jalankan seperti berikut

$ python /home/pi/display/NESRouter.py Sediakan skrip paparan untuk dijalankan pada permulaan

crontab -e

Tambahkan baris ini

@reboot nohup python /home/pi/display/NESRouter.py> / dev / null 2> & 1

Sahkan bahawa paparan mula berfungsi pada but semula

rebo sudo

Langkah 15: Pasang Laman Web Penggunaan / statistik Tempatan [https://10.0.10.1]

Pasang laman web penggunaan / statistik tempatan [https://10.0.10.1]

sudo apt-get kemas kini && sudo apt-get upgrade -y

sudo apt-get install apache2

perkhidmatan sudo apache2 mulakan semula

Keluarkan halaman lalai

cd / var / www

sudo rm -rf html

Salin folder 'webportal' dari projek ini ke folder rumah anda di RPi anda dan buat symlink untuk digunakan oleh apache

cd / var / www

sudo ln -s / home / pi / webportal html

cd / var / www / html

chmod + x *.py

sudo a2enmod cgi

sudo vi /etc/apache2/sites-enabled/000-default.conf

Dayakan Skrip Python CGI

Tambahkan di dalam teg

Pilihan + ExecCGI AddHandler cgi-script.py sudo service apache2 mulakan semula

Anda kini boleh melayari laman HTTP tempatan [https://10.0.10.1]

Siapkan pemantauan rangkaian lanjutan (melalui IPFM)

sudo apt-get kemas kini

sudo apt-get install ipfm

sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak

sudo vi /etc/ipfm.conf

Buat dengan kandungan berikut:

# Pemboleh ubah global

# IPFM hanya dapat memantau satu peranti. PERANGKAT et0

# LOG KONFIGURASI PEMANDU GLOBAL

FILENAME "/ var / log / ipfm /% Y_% d_% m /% H_% M"

# log setiap minit DUMP SETIAP 1 minit

# jelas statistik setiap hari HILANGKAN SETIAP 24 jam SORT DI RESOLVE perkhidmatan sudo ipfm bermula

PILIHAN: Membuat gambar Nintendo anda sendiri untuk ditampilkan di paparan

Muat naik fail 128x128 anda sendiri ke URL berikut:

www.digole.com/tools/PicturetoC_Hex_convert…

Pilih fail gambar anda untuk dimuat, tambahkan ukuran yang anda mahukan di layar (Lebar / Tinggi)

Pilih "256 Warna untuk Warna OLED / LCD (1 bait / piksel)" dalam dropdown "Digunakan untuk"

Dapatkan output hex.

Tambahkan output hex ke fail display / build / header (.h), gunakan yang lain sebagai panduan untuk sintaks.

Sertakan fail baru dalam fail digole.c #include myimage.h

Sertakan cangkuk baris perintah baru ke fail gambar anda di. Nota: arahan di bawah mengatakan lukiskan gambar anda pada kedudukan 10 piksel lebih dari 10 piksel ke bawah. Anda boleh menukarnya ke koordinat X, Y yang berbeza, anda juga boleh mengubah nilai 128, 128 ke ukuran apa pun sebenarnya gambar baru anda.

} lain jika (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariable Here, 0); // myimageVariable Here ditakrifkan dalam fail (.h) anda}

Sekarang bina semula (abaikan kesalahan) di bawah ini agar gambar baru anda diberikan dengan arahan berikut.

$./digole myimage Membangun Semula [Termasuk] Pemacu Paparan Digole untuk perubahan pilihan anda

$ cd display / build $ gcc digole.c $ mv a.out../../digole $ chmod + x../../digole

Disyorkan: