Mündəricat:

Nintendo Wifi Router: 17 Addım (Şəkillərlə birlikdə)
Nintendo Wifi Router: 17 Addım (Şəkillərlə birlikdə)

Video: Nintendo Wifi Router: 17 Addım (Şəkillərlə birlikdə)

Video: Nintendo Wifi Router: 17 Addım (Şəkillərlə birlikdə)
Video: Home Assistant. Dərs 9.4 ADD-ON - Xiaomi Gateway 3, zigbee2mqtt inteqrasiyası 2024, Noyabr
Anonim
Nintendo Wifi Router
Nintendo Wifi Router

Köhnə Nintendo Əyləncə sistem korpusundan istifadə edərək, RaspberryPI 3 istifadə edərək yüksək funksional bir ev yönləndiricisi istehsal edin!

Addım 1: Lazım olan RaspberryPi Proqramını Qurun

Yanan RaspberriPi Sərt Diski / Lazımi Proqramı Qurun (Ubuntu Linux istifadə edərək)

"RASPBIAN JESSIE LITE" yükləyin

DashboardPI üçün yeni sabit diskinizi yaradın

USB adapter vasitəsilə microSD -ni kompüterinizə daxil edin və dd əmrindən istifadə edərək disk şəkli yaradın

Daxil edilmiş microSD kartınızı df -h əmri ilə tapın, ayırın və disk surəti dd əmri ilə disk şəkli yaradın.

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

$ umount /dev /sdb1

Diqqət: əmrin tamamilə doğru olduğundan əmin olun, bu əmrlə digər disklərə zərər verə bilərsiniz

if = RASPBIAN JESSIE LITE görüntü faylının yeri = microSD kartınızın yeri

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of//dev/sdb (Qeyd: bu halda/dev/sdb,/dev/sdb1 microSD) RaspberriPi qurmaq

Yeni microSD kartınızı raspberrypi -yə daxil edin və HDMI portuna qoşulmuş bir monitorla açın

Daxil ol

istifadəçi: pi pass: moruq Təhlükəsizlik üçün hesab şifrənizi dəyişdirin

sudo passwd pi RaspberriPi Ətraflı Seçimləri aktiv edin

sudo raspi-config seçin: 1 Fayl Sistemini Genişləndirin

9 Ətraflı Seçimlər

A2 Host adı onu "NESRouter" olaraq dəyişdirir

A4 SSH SSH Serverini aktiv edin

A7 I2C i2c interfeysini aktivləşdirin İngilis/ABŞ Klaviaturasını aktivləşdirin

sudo nano/etc/default/keyboard Aşağıdakı sətri dəyişdirin: XKBLAYOUT = "us" Sadə qovluq l əmrini qurun [isteğe bağlı]

vi ~/.bashrc

aşağıdakı sətri əlavə edin:

ləqəbi l = 'ls -lh'

source ~/.bashrc Fix VIM default sintaksisini vurgulayın [isteğe bağlı]

sudo vi/etc/vim/vimrc

aşağıdakı sətri qeyd edin:

Ən son dəyişiklikləri əldə etmək üçün PI -ni yenidən başladın

reboot Yerli saat qurşağı parametrlərini yeniləyin

sudo dpkg-tzdata interfeysindən istifadə edərək vaxt qurşağınızı seçin

Addım 2: WiFi giriş nöqtəsinin yaradılması

Diqqət yetirin, bu yönlendirici halına gəlməzdən əvvəl aşağıdakı paketləri quraşdırmaq üçün RaspberryPi -ni Ethernet portu vasitəsilə mövcud bir şəbəkəyə bağlayırıq.

sudo apt-get update && sudo apt-get -y upgrade

sudo apt-get dnsmasq hostapd vim quraşdırın

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

sudo vi /etc/dhcpcd.conf

Aşağıdakı sətri əlavə edin:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Wlan0 hissəsini belə görünəcək şəkildə düzəldin:

avtomatik geri iface lo inet loopback

iface eth0 inet təlimatı

avtomatik wlan0 iface wlan0 inet statik ünvan 10.0.10.1 şəbəkə maskası 255.255.255.0 şəbəkə 10.0.10.0 yayım 10.0.10.255

avtomatik eth1 iface eth1 inet statik ünvan 10.0.20.1 şəbəkə maskası 255.255.255.0 şəbəkə 10.0.20.0 yayım 10.0.20.255 DHCP Serverini yenidən yükləyin və eth0 və wlan0 əlaqələri üçün konfiqurasiyanı geri qaytarın

sudo xidməti dhcpcd yenidən başladın

sudo ifdown eth0; sudo ifup wlan0

HOSTAPD -ı konfiqurasiya edin (ssid və wpa_passphrase seçimlərini özünüz seçdiyiniz dəyərlərə dəyişin)

sudo vi /etc/hostapd/hostapd.conf

# Bu yuxarıda konfiqurasiya etdiyimiz WiFi interfeysinin adıdır = wlan0

# Nl80211 sürücüsünü brcmfmac sürücü sürücüsü = nl80211 ilə istifadə edin

# Bu ssid = NintendoWiFi şəbəkəsinin adıdır

# 2.4GHz diapazonundan istifadə edin hw_mode = g

# Kanal 6 kanal = 6 istifadə edin

# 802.11n ieee80211n = 1 aktiv edin

# WMM aktivləşdir wmm_enabled = 1

# 20ns mühafizə aralığı ilə 40MHz kanalları aktiv edin ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Bütün MAC ünvanlarını qəbul edin macaddr_acl = 0

# WPA identifikasiyası auth_algs = 1 istifadə edin

# Müştərilərdən şəbəkə adını ignore_broadcast_ssid = 0 bilmələrini tələb edin

# WPA2 wpa = 2 istifadə edin

# Əvvəlcədən paylaşılan bir açar istifadə edin wpa_key_mgmt = WPA-PSK

# Şəbəkə parol ifadəsi wpa_passphrase = parol

# TKIP əvəzinə AES istifadə edin rsn_pairwise = CCMP Çalışaraq bu mərhələdə işlədiyini yoxlaya bilərik (lakin hələ tam internet bağlantısı yoxdur):

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

sudo vi/etc/default/hostapd

Xətti tapın

#DAEMON_CONF = "" ilə əvəz edin

DAEMON_CONF = "/etc/hostapd/hostapd.conf" DNSMASQ -ı konfiqurasiya edin

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

sudo vi /etc/dnsmasq.conf

bind-interfeys # Başqa yerə heç bir şey göndərmədiyimizdən əmin olmaq üçün interfeysi bağlayın server = 8.8.8.8 # DNS sorğularını Google DNS domeninə göndərin # Qısa adları saxta-özəl göndərməyin -ünvanlı boşluqlar.

# IP ünvanlarını sonsuz kirayə müddəti ilə təyin edin (cihaz istifadəsi statistikası üçün) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, sonsuz dhcp aralığı = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, sonsuz IPV4 İLƏ YÜKLƏYİN

sudo vi /etc/sysctl.conf

[şərh etmə] net.ipv4.ip_forward = 1

Dərhal sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward" ilə aktivləşdirin.

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

sudo iptables -A İLƏ -i eth0 -o eth1 -m dövlət -dövlət İLƏ BAĞLI, KURULUB -j QABUL EDİR

sudo iptables -A İLƏ -i eth1 -o eth0 -j QƏBUL ET

sudo iptables -A İLƏ -i eth0 -o wlan0 -m dövlət -dövlət İLƏ BAĞLI, KURULUB -j QABUL EDİR

sudo iptables -A İLƏ -i wlan0 -o eth0 -j QƏBUL ET

Növbəti yenidən başlatma üçün iptables parametrlərini qeyd edin

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

İpv4 qaydaları faylı yaradın (yeni məzmunla)

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

iptables-bərpa </etc/iptables.ipv4.nat Xidmətləri Yenidən Başlat

sudo service hostapd start sudo service dnsmasq start

sudo yenidən başladın

Statik IP təyin etmək [İsteğe bağlı]

Şəbəkənizdəki ev sahiblərinin statik ips olmasını istəyirsinizsə, aşağıdakılardan istifadə edin

Hostları hal -hazırda DHCP vi /var/lib/misc/dnsmasq.leases vasitəsi ilə əlaqələndirin

MAC ünvanını (yuxarıdakı çıxışdan) və onlara təyin etmək istədiyiniz IP ünvanını sudo vi /etc/dnsmasq.conf ünvanına əlavə edin.

# ana masaüstü dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Qeyd: Bu, MAC Ünvanlı şəbəkə interfeysini təyin edəcək: 12: 34: 56: 78: 9a: bc IP ünvanına 10.0.20.20. Sadalanan IP ünvanı, yalnız eyni alt şəbəkədə verilən DHCP aralığında olmaq məcburiyyətində deyil. Yuxarıdakı əsas masaüstüm alt şəbəkə eth1: 10.0.20.0 -da olduğu üçün ona 10.0.20.20 IP ünvanını verdim.

UFW Firewall əlavə olunur

sudo apt-get ufw yükləyin

Ümumi istifadə üçün 22 portuna icazə verin (uzaqdan şəbəkəyə giriş üçün)

sudo ufw icazə 22

Yerli şəbəkədəki bütün limanlara icazə verin

sudo ufw 10.0.10.0/24 tarixindən icazə verin sudo ufw 10.0.20.0/24 tarixindən etibarən icazə verin

Hər kəsin veb portlarına icazə verin

sudo ufw icazə 80

Hər kəs üçün təhlükəsiz veb portlarına icazə verin

sudo ufw icazə 443

UFW -ni aktivləşdirin və vəziyyəti yoxlayın

sudo ufw -güc tətbiq edin

sudo ufw statusu

Başlanğıcda başlamayan UFW ilə BUG -u düzəldin

sudo su crontab -e

Aşağıdakı sətri əlavə edin: @reboot /bin /sleep 60; ufw -güc tətbiq edin

Addım 3: Lazım olan təchizatlar: Köhnə Broken Nintendo

Lazım olan təchizatlar: Köhnə Broken Nintendo
Lazım olan təchizatlar: Köhnə Broken Nintendo

Qırılmış NES -dən Köhnə Nintendo Çantası (yalnız xarici çərçivəni, güc / sıfırlama düymələrini və nəzarətçi əlaqələrini buraxaraq, korpusun içindəki bütün köhnə məzmunu çıxarın)

Addım 4: Lazım olan təchizatlar: Raspberry Pi 3 Model B

Lazımi təchizatlar: Raspberry Pi 3 Model B
Lazımi təchizatlar: Raspberry Pi 3 Model B

Addım 5: Lazım olan təchizatlar: 1.44 "Seriya: UART/I2C/SPI TFT LCD 128x128 Ekran Modulu

Lazım olan vəsaitlər: 1.44
Lazım olan vəsaitlər: 1.44
Lazım olan vəsaitlər: 1.44
Lazım olan vəsaitlər: 1.44

Addım 6: Lazım olan təchizatlar: 5V 0.1A Mini Fan Raspberry Pi

Lazım olan təchizatlar: 5V 0.1A Mini Fan Raspberry Pi
Lazım olan təchizatlar: 5V 0.1A Mini Fan Raspberry Pi

Addım 7: Lazım olan təchizatlar: Ugreen USB 2.0 - 10/100 Fast Ethernet Lan Simli Şəbəkə Adaptoru

Lazımi Təchizatlar: Ugreen USB 2.0 - 10/100 Fast Ethernet Lan Simli Şəbəkə Adaptoru
Lazımi Təchizatlar: Ugreen USB 2.0 - 10/100 Fast Ethernet Lan Simli Şəbəkə Adaptoru

Addım 8: Tikinti

Tikinti
Tikinti

NES -in içərisinə quraşdırın

Bir 3D printerdən istifadə edərək/Construction/display-frame/qovluğunda "NESPanel" Digole Ekran çərçivəsini çap edin. [3D printeriniz yoxdursa, Dremel aləti ilə Digole Ekranı üçün bir kvadrat çuxur kəsə bilərsiniz] Kiçik fanatın bərkidilməsini təmin etmək üçün korpusun arxa və yan tərəfindəki aşağıdakı delikləri kəsin. yan və arxadan daxil olmaq üçün güc/ethernet və USB ethernet kabelləri.

Addım 9: İnşaat Davamı

İnşaat Davamı
İnşaat Davamı

Sağ üst qara paneli NES -dən sökün və digole ekranınızı quraşdırmaq üçün kifayət qədər böyük bir kvadrat çuxur kəsin. Üstündə "NESPanel" 3D çaplı çərçivə olan ekranı Hot Glue ilə yerləşdirin.

Addım 10: İnşaat Davamı

Tikinti Davamı
Tikinti Davamı

RaspberryPi boş NES korpusunun alt hissəsinin ortasına quraşdırın, altından yapışqan və ya kiçik bir vida ilə bağlayın. 270 ohm müqavimət istifadə edərək, NES -in "LED -in gücünü" Raspberry Pi -də 5V və GND pinlərinə qoşun (qısa LED qurğusu torpaqdır). Kiçik fanı 5V və GND pinlərinə də qoşun ki, cihaz işə düşsün, fanı yan deliyə yapışdırın.

Addım 11: Digole Ekranına qoşulun

Aşağıdakı pinləri RaspberryPi üzərindəki pinlərə bağlayın

VCC 3v GND -yə bağlıdır DATA SDA CLOCK SCL -dir İndi cihazı i2cdetect əmrinizdə görməlisiniz

i2cdetect -y 1, mətn ızgarasında 27 olaraq görünməlidir

Addım 12: Şəbəkə İzləmə Alətlərini və DB Qeydini Qurun

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

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

Faylın sonuna aşağıdakı sətri əlavə edin: local all pi password sudo -i -u postgres

psql

rol pi parolunu 'burada parol' yaradın;

pi girişini dəyişdirin;

pi superuser rolunu dəyişdirin;

du

(verilən icazələrlə PI istifadəçinizi görməlisiniz) database_stats verilənlər bazası yaradın;

q

çıxmaq

psql -d network_stats

Aşağıdakı sorğuları işə salın:

TABLO yarat trafik_per_dəqiqə (id seriyası, vaxt zonası olmayan zaman zonası NULL DEĞİL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

TRAFİK_DƏQİQƏSİNDƏ UNİKAL İNDEKS yaradın time_idx (vaxt); Bu layihədəki "giriş" kod qovluğunu RPi -nin ev qovluğuna kopyalayın

crontab -e

Bu xətti əlavə edin

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

Addım 13: Trafik Xülasəsi Hesabatını quraşdırın (Cronjob tərəfindən hər 5 dəqiqədə bir işləyir)

crontab -e

aşağıdakı sətri əlavə edin

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

Addım 14: Göstərici Paneli Ekranını quraşdırın

Bu layihədəki "ekran" kod qovluğunu RPi -nin ev qovluğuna kopyalayın

Aşağıdakı kimi çalıştırın

$ python /home/pi/display/NESRouter.py Başlanğıcda işləmək üçün ekran skriptini qurun

crontab -e

Bu xətti əlavə edin

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

Ekranın yenidən başladıqdan sonra işə başladığını yoxlayın

sudo yenidən başladın

Addım 15: Yerli İstifadə/Statistik Veb saytını quraşdırın [https://10.0.10.1]

Yerli istifadə/statistika veb saytını quraşdırın [https://10.0.10.1]

sudo apt-get yeniləmə && sudo apt-get upgrade -y

sudo apt-get apache2 quraşdırın

sudo xidməti apache2 yenidən başladın

Varsayılan səhifələri silin

cd /var /www

sudo rm -rf html

'Webportal' qovluğunu bu layihədən RPi üzərindəki ev qovluğuna kopyalayın və apache -dən istifadə etmək üçün simvol yaradın

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

Python CGI Skriptini aktiv edin

Etiketin içərisinə əlavə edin

Seçimlər +ExecCGI AddHandler cgi-script.py sudo xidməti apache2 yenidən başladın

İndi yerli HTTP saytına daxil ola bilərsiniz [https://10.0.10.1]

İnkişaf etmiş şəbəkə monitorinqini qurun (IPFM vasitəsilə)

sudo apt-get yeniləməsi

sudo apt-get ipfm quraşdırın

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

sudo vi /etc/ipfm.conf

Aşağıdakı məzmunlarla yaradın:

# Qlobal dəyişənlər

# IPFM yalnız bir cihazı izləyə bilər. CİHAZ et0

# GLOBAL LOGGING KONFİGÜRASİYA QEYDİ

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

# hər dəqiqə daxil olun HƏR 1 dəqiqədən bir atın

hər gün # açıq statistika HƏR 24 SAATLI TƏZİNDƏ həll edin sudo xidməti ipfm start

OPSİYONLU: Ekranda göstərmək üçün öz Nintendo şəkillərinizi yaratmaq

Öz 128x128 faylınızı aşağıdakı URL -yə yükləyin:

www.digole.com/tools/PicturetoC_Hex_convert…

Yükləmək üçün şəkil faylınızı seçin, ekranda hansı ölçüdə olmasını istədiyinizi əlavə edin (Genişlik/Boy)

"İstifadə olunur" açılır menyusunda "Rəngli OLED/LCD (1 bayt/piksel) üçün 256 Rəng" seçin.

Hex çıxışını əldə edin.

Onaltılı çıxışı bir display/ build/ header (.h) faylına əlavə edin, digərlərini sintaksis üçün bələdçi olaraq istifadə edin.

Yeni faylı digole.c faylına daxil edin #include myimage.h

Şəkil sənədinizə yeni bir əmr satırı çəngəlini əlavə edin. Qeyd: Aşağıdakı əmr, şəklinizi 10 pikseldən yuxarı 10 piksel mövqedə çəkin. Fərqli X, Y koordinatlarına dəyişə bilərsiniz, həmçinin 128, 128 dəyərlərini yeni görüntünüzün əsl ölçüsünə görə dəyişə bilərsiniz.

} başqa if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariable Here (.h) faylınızda müəyyən edilmişdir}

İndi yeni görüntünüzü aşağıdakı əmrlə işlətmək üçün aşağıda yenidən qurun (səhvləri görməyin).

$./digole myimage Yenidən Tikinti [Daxildir] İsteğe bağlı dəyişikliklər üçün Digole Ekran Sürücüsü

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

Tövsiyə: