Kazalo:

Nintendo Wifi usmerjevalnik: 17 korakov (s slikami)
Nintendo Wifi usmerjevalnik: 17 korakov (s slikami)

Video: Nintendo Wifi usmerjevalnik: 17 korakov (s slikami)

Video: Nintendo Wifi usmerjevalnik: 17 korakov (s slikami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Nintendo Wifi usmerjevalnik
Nintendo Wifi usmerjevalnik

Z uporabo ohišja starega sistema Nintendo Entertainment izdelajte zelo funkcionalen domači usmerjevalnik z uporabo RaspberryPI 3!

1. korak: Namestite potrebno programsko opremo RaspberryPi

Utripanje trdega diska RaspberriPi / namestitev potrebne programske opreme (z uporabo Ubuntu Linux)

Prenesite "RASPBIAN JESSIE LITE"

Ustvarite nov trdi disk za DashboardPI

Vstavite kartico microSD v računalnik prek adapterja USB in ustvarite podobo diska z ukazom dd

Poiščite vstavljeno kartico microSD z ukazom df -h, jo odstranite in ustvarite sliko diska z ukazom dd copy copy

$ df -h/dev/sdb1 7,4G 32K 7,4G 1%/mediji/XXX/1234-5678

$ umount /dev /sdb1

Pozor: preverite, ali je ukaz popolnoma natančen, s tem ukazom lahko poškodujete druge diske

if = lokacija slikovne datoteke RASPBIAN JESSIE LITE = lokacija vaše kartice microSD

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of =/dev/sdb (opomba: v tem primeru je to/dev/sdb,/dev/sdb1 je bila obstoječa tovarniška particija na microSD) Nastavitev vašega RaspberriPi

Novo kartico microSD vstavite v raspberrypi in jo vklopite z monitorjem, priključenim na vrata HDMI

Vpiši se

user: pi pass: raspberry Zaradi varnosti spremenite geslo za račun

sudo passwd pi Omogoči dodatne možnosti RaspberriPi

sudo raspi-config Izberite: 1 Razširite datotečni sistem

9 Napredne možnosti

Ime gostitelja A2 ga spremenite v "NESRouter"

A4 SSH Omogoči strežnik SSH

A7 I2C Omogoči vmesnik i2c Omogoči angleško/ameriško tipkovnico

sudo nano/etc/default/keyboard Spremenite naslednjo vrstico: XKBLAYOUT = "us" Nastavitev preprostega imenika l ukaz [neobvezno]

vi ~/.bashrc

dodaj naslednjo vrstico:

vzdevek l = 'ls -lh'

vir ~/.bashrc Popravi označevanje privzete sintakse VIM [neobvezno]

sudo vi/etc/vim/vimrc

odkomentirajte naslednjo vrstico:

sintaksa na Znova zaženite PI, da dobite najnovejše spremembe

reboot Posodobite nastavitve lokalnega časovnega pasu

sudo dpkg-reconfigure tzdata izberite svoj časovni pas z vmesnikom

2. korak: Ustvarite dostopno točko WiFi

Upoštevajte, da preden ta postane usmerjevalnik, priključimo RaspberryPi v obstoječe omrežje prek njegovih ethernetnih vrat, da namestimo naslednje pakete

sudo apt-get update && sudo apt-get -y nadgradnja

sudo apt-get install dnsmasq hostapd vim

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

sudo vi /etc/dhcpcd.conf

Dodajte naslednjo vrstico:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Uredite razdelek wlan0 tako, da bo videti tako:

avto lo iface lo inet loopback

iface eth0 inet priročnik

samodejni wlan0 iface wlan0 inet statični naslov 10.0.10.1 maska omrežja 255.255.255.0 omrežje 10.0.10.0 oddajanje 10.0.10.255

auto eth1 iface eth1 inet statični naslov 10.0.20.1 maska omrežja 255.255.255.0 omrežje 10.0.20.0 oddajanje 10.0.20.255 Znova naložite strežnik DHCP in odklopite konfiguracijo za povezave eth0 in wlan0

sudo storitev dhcpcd ponovni zagon

sudo ifdown eth0; sudo ifup wlan0

Konfigurirajte HOSTAPD (spremenite ssid in wpa_passphrase na vrednosti po vaši izbiri)

sudo vi /etc/hostapd/hostapd.conf

# To je ime vmesnika WiFi, ki smo ga konfigurirali nad interface = wlan0

# Uporabite gonilnik nl80211 z gonilnikom brcmfmac gonilnika = nl80211

# To je ime omrežja ssid = NintendoWiFi

# Uporabite pas 2,4 GHz hw_mode = g

# Uporabi kanal 6 kanal = 6

# Omogoči 802.11n ieee80211n = 1

# Omogoči WMM wmm_enabled = 1

# Omogoči 40 MHz kanale z 20ns zaščitnim intervalom ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Sprejmite vse naslove MAC macaddr_acl = 0

# Uporabite avtentikacijo WPA auth_algs = 1

# Od odjemalcev zahtevajte, da poznajo ime omrežja ignore_broadcast_ssid = 0

# Uporabite WPA2 wpa = 2

# Uporabite ključ v skupni rabi wpa_key_mgmt = WPA-PSK

# Geslo za omrežje wpa_passphrase = geslo

# Namesto TKIP uporabite AES

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

sudo vi/etc/default/hostapd

Poišči črto

#DAEMON_CONF = "" in ga zamenjajte z

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

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Povežite se z vmesnikom, da se prepričate, da ne pošiljamo stvari drugje server = 8.8.8.8 # Posredujte zahteve DNS v Googlovo domeno DNS, ki je potrebna # Ne posredujte kratkih imen lažnih-priv # Nikoli ne posredujte naslovov v -preusmerjeni naslovni prostori.

# Dodelite naslove IP z neskončnim časom najema (za statistiko uporabe naprave) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, neskončno dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, neskončno NASTAVITEV IPV4 ŠPEDICIJA

sudo vi /etc/sysctl.conf

[razkomentiraj] net.ipv4.ip_forward = 1

Takoj ga aktivirajte s sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

sudo iptables -A NAPREJ -i eth0 -o eth1 -m stanje -stanje POVEZANO, USTANOVLJENO -j SPREJEM

sudo iptables -A NAPREJ -i eth1 -o eth0 -j SPREJEM

sudo iptables -A NAPREJ -i eth0 -o wlan0 -m stanje -stanje POVEZANO, USTANOVLJENO -j SPREJEM

sudo iptables -A NAPREJ -i wlan0 -o eth0 -j SPREJEM

Shranite nastavitve iptables za naslednji ponovni zagon

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

Ustvari datoteko pravil ipv4 (z novo vsebino)

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

iptables-restore </etc/iptables.ipv4.nat Storitve ponovnega zagona

sudo storitev hostapd start sudo storitev dnsmasq start

sudo ponovni zagon

Dodelitev statičnih IP -jev [neobvezno]

Če želite, da imajo gostitelji v vašem omrežju statične ipe, uporabite to

Pridobite gostitelje, ki so trenutno povezani prek DHCP vi /var/lib/misc/dnsmasq.leases

Dodajte naslov MAC (iz zgornjega izhoda) in naslov IP, ki ga želite dodeliti sudo vi /etc/dnsmasq.conf

# glavno namizje dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Opomba: To bo omrežnemu vmesniku dodelilo naslov MAC: 12: 34: 56: 78: 9a: bc naslovu IP 10.0.20.20. Navedeni naslov IP NI nujno v območju DHCP, samo v istem podomrežju. Moje glavno namizje zgoraj je na podomrežju eth1: 10.0.20.0, zato sem mu dal naslov IP 10.0.20.20.

Dodajanje požarnega zidu UFW

sudo apt-get install ufw

Dovoli vrata 22 za javno uporabo (za oddaljeni dostop do omrežja)

sudo ufw dovoljuje 22

Dovoli vsa vrata v mojem lokalnem omrežju

sudo ufw dovoljuje od 10.0.10.0/24 sudo ufw dovoljuje od 10.0.20.0/24

Spletna vrata dovolite vsem

sudo ufw dovoli 80

Varna spletna vrata dovolite vsem

sudo ufw dovoljuje 443

Omogočite UFW in preverite stanje

sudo ufw -force enable

status sudo ufw

Odpravite napako, če se UFW ne zažene ob zagonu

sudo su crontab -e

Dodajte naslednjo vrstico: @reboot /bin /sleep 60; ufw -omogočanje sile

3. korak: Potrebne zaloge: Stari pokvarjen Nintendo

Potrebni materiali: Old Broken Nintendo
Potrebni materiali: Old Broken Nintendo

Staro ohišje Nintendo iz pokvarjenega NES (odstranite vso staro vsebino v ohišju in pustite le zunanji okvir, gumbe za vklop / ponastavitev in povezave krmilnika)

4. korak: Potrebne zaloge: Raspberry Pi 3 Model B

Potrebni zalogi: Raspberry Pi 3 Model B
Potrebni zalogi: Raspberry Pi 3 Model B

5. korak: Potrebni materiali: 1.44 "Serijski: UART/I2C/SPI TFT LCD 128x128 prikazovalni modul

Potrebne zaloge: 1.44
Potrebne zaloge: 1.44
Potrebne zaloge: 1.44
Potrebne zaloge: 1.44

6. korak: Potrebni materiali: 5V 0.1A Mini Fan Raspberry Pi

Potrebni materiali: 5V 0.1A Mini Fan Raspberry Pi
Potrebni materiali: 5V 0.1A Mini Fan Raspberry Pi

Korak 7: Potrebni materiali: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan Omrežni adapter Lan

Potrebni dodatki: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan Omrežni adapter Lan
Potrebni dodatki: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan Omrežni adapter Lan

8. korak: Gradnja

Gradnja
Gradnja

Namestite v NES

Z uporabo 3D tiskalnika natisnite okvir Digole Display "NESPanel" v/construction/display-frame/folder. [če nimate 3D tiskalnika, lahko z orodjem Dremel občutljivo izrežete pravokotno luknjo za zaslon Digole] Odprite naslednje luknje na hrbtni in stranski strani ohišja, da lahko majhen ventilator pritrdite na stranski in napajalni/ethernetni in ethernetni kabel USB za vstop skozi zadnji del.

9. korak: Gradnja Nadaljevanje

Gradbeništvo Cont
Gradbeništvo Cont

Odvijte zgornjo desno črno ploščo iz NES in čisto izrežite dovolj veliko kvadratno luknjo za namestitev zaslona digole. Vroče prilepite zaslon s 3D tiskanim okvirjem "NESPanel" na vrhu.

10. korak: Gradnja Nadaljevanje

Gradbeništvo Cont
Gradbeništvo Cont

RaspberryPi namestite na sredino dna prazne škatle NES, pritrdite z lepilom ali majhnim vijakom skozi dno. S 270 ohmskim uporom priključite "LED za vklop" NES na 5V in GND nožice v Raspberry Pi (kratek LED kabel je ozemljitev). Majhen ventilator priključite na zatiče 5V in GND, da se zažene, ko se enota zažene, prilepite ventilator na luknjo na strani zanj.

11. korak: Priključitev zaslona Digole

Spodnje nožice povežite z zatiči na RaspberryPi

VCC je priključen na 3v GND je ozemljen Podatki so SDA URA je SCL Zdaj bi morali videti napravo v ukazu i2cdetect

i2cdetect -y 1 bi se moral prikazati v mreži besedila kot 27

12. korak: Namestite orodja za spremljanje omrežja in beleženje DB

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

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

Na konec datoteke dodajte naslednjo vrstico: lokalno vse geslo pi sudo -i -u postgres

psql

ustvarite geslo za vlogo pi 'tukaj geslo';

spremenite vlogo pi pi;

spremenite vlogo pi -uporabnika pi;

du

(morali bi videti svojega uporabnika PI z dodeljenimi dovoljenji) ustvarjanje baze podatkov network_stats;

q

izhod

psql -d omrežni_stati

Zaženite naslednje poizvedbe:

Ustvari tabelo traffic_per_minute (id serija, časovni žig brez časovnega pasu NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

USTVARI UNIKATNI INDEKS time_idx ON traffic_per_minute (čas); Kopirajte mapo »logging« kode iz tega projekta v domači imenik vašega RPi

crontab -e

Dodajte to vrstico

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

Korak: Namestite poročilo o prometu (Cronjob zažene vsakih 5 minut)

crontab -e

dodajte naslednjo vrstico

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

Korak 14: Namestite zaslon nadzorne plošče

Kopirajte mapo »display« kode iz tega projekta v domači imenik vašega RPi

Zaženite ga na naslednji način

$ python /home/pi/display/NESRouter.py Nastavite prikazni skript za zagon ob zagonu

crontab -e

Dodajte to vrstico

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

Preverite, ali zaslon začne delovati pri ponovnem zagonu

sudo ponovni zagon

Korak: Namestite spletno mesto za lokalno uporabo/statistiko [https://10.0.10.1]

Namestite lokalno spletno mesto za uporabo/statistiko [https://10.0.10.1]

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

sudo apt-get namestite apache2

sudo storitev apache2 znova zaženite

Odstranite privzete strani

cd /var /www

sudo rm -rf html

Kopirajte mapo 'webportal' iz tega projekta v domačo mapo na svojem RPi in ustvarite simbolno povezavo, ki jo bo lahko uporabljal 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

Omogoči Python CGI Scripting

Dodaj v oznako

Možnosti +ExecCGI AddHandler cgi-script.py ponovni zagon storitve sudo apache2

Zdaj lahko obiščete lokalno spletno mesto HTTP [https://10.0.10.1]

Nastavitev naprednega spremljanja omrežja (prek IPFM)

sudo apt-get posodobitev

sudo apt-get namestite ipfm

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

sudo vi /etc/ipfm.conf

Ustvarite z naslednjo vsebino:

# Globalne spremenljivke

# IPFM lahko nadzira samo eno napravo. NAPRAVA eth0

# GLOBALNI Dnevnik konfiguracije

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

# dnevnik vsako minuto ODSTRANITE VSAKO 1 minuto

# jasna statistika vsak dan POČISTI VSAKO 24 urNO REŠITEV RAZREŽI storitev sudo ipfm start

NEOBVEZNO: Ustvarite lastne slike Nintendo za upodabljanje na zaslonu

Naložite svojo datoteko velikosti 128 x 128 na naslednji URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Izberite slikovno datoteko za nalaganje, dodajte želeno velikost zaslona (širina/višina)

Izberite "256 barv za barvni OLED/LCD (1 bajt/slikovna pika)" v spustnem meniju "Uporablja se za"

Pridobite šesterokotni izhod.

Dodajte šestnajstiški izhod v datoteko display/ build/ header (.h), druge uporabite kot vodila za sintakso.

Novo datoteko vključite v datoteko digole.c #include myimage.h

V slikovno datoteko vključite nov kavelj ukazne vrstice. Opomba: spodnji ukaz pravi, da narišite sliko na položaju 10 slikovnih pik nad 10 slikovnih pik navzdol. Lahko ga spremenite v različne koordinate X, Y, spremenite pa lahko tudi vrednosti 128, 128 na kakršno koli velikost vaše nove slike.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere je definirano v vaši (.h) datoteki}

Zdaj obnovite (prezrite napake) spodaj, da bo vaša nova slika upodobljena z naslednjim ukazom.

$./digole myimage Ponovna izgradnja [vključeno] gonilnika zaslona Digole za vaše izbirne spremembe

$ cd prikaz/izdelava $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole

Korak 16: Končano

Priporočena: