Sadržaj:

Nintendo Wifi usmjerivač: 17 koraka (sa slikama)
Nintendo Wifi usmjerivač: 17 koraka (sa slikama)

Video: Nintendo Wifi usmjerivač: 17 koraka (sa slikama)

Video: Nintendo Wifi usmjerivač: 17 koraka (sa slikama)
Video: The Xbox 360 Turned 17 this Year 2024, Novembar
Anonim
Nintendo Wifi ruter
Nintendo Wifi ruter

Koristeći kućište starog sistema Nintendo Entertainment, proizvedite visoko funkcionalan kućni usmjerivač koristeći RaspberryPI 3!

Korak 1: Instalirajte potreban RaspberryPi softver

Bljeskanje RaspberriPi tvrdog diska / instaliranje potrebnog softvera (pomoću Ubuntu Linuxa)

Preuzmite "RASPBIAN JESSIE LITE"

Kreirajte svoj novi tvrdi disk za DashboardPI

Umetnite microSD u računalo putem USB adaptera i kreirajte sliku diska pomoću naredbe dd

Pronađite umetnutu microSD karticu pomoću naredbe df -h, isključite je i kreirajte sliku diska pomoću naredbe dd copy copy

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

$ umount /dev /sdb1

Oprez: provjerite je li naredba potpuno točna, ovom naredbom možete oštetiti druge diskove

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

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of =/dev/sdb (napomena: u ovom slučaju to je/dev/sdb,/dev/sdb1 je bila postojeća tvornička particija na microSD) Postavljanje vašeg RaspberriPi -a

Umetnite svoju novu microSD karticu u raspberrypi i uključite je s monitorom spojenim na HDMI priključak

Ulogovati se

user: pi pass: raspberry Promijenite lozinku radi sigurnosti radi sigurnosti

sudo passwd pi Omogućite RaspberriPi napredne opcije

sudo raspi-config Odaberite: 1 Proširite Sistem datoteka

9 Napredne opcije

A2 ime hosta promijenite u "NESRouter"

A4 SSH Omogući SSH server

A7 I2C Omogući i2c interfejs Omogući englesku/američku tastaturu

sudo nano/etc/default/keyboard Promijenite sljedeći red: XKBLAYOUT = "us" Postavite jednostavnu naredbu l naredbu [opcionalno]

vi ~/.bashrc

dodajte sledeći red:

alias l = 'ls -lh'

izvor ~/.bashrc Popravite isticanje podrazumevane sintakse VIM -a [opcionalno]

sudo vi/etc/vim/vimrc

raskomentirajte sljedeći redak:

sintaksa na Ponovo pokrenite PI da biste dobili najnovije promjene

rebootUpdate postavke lokalne vremenske zone

sudo dpkg-reconfigure tzdata odaberite svoju vremensku zonu pomoću sučelja

Korak 2: Kreiranje WiFi pristupne tačke

Imajte na umu da prije nego što ovo postane usmjerivač, priključujemo RaspberryPi na postojeću mrežu preko njegovog ethernet porta kako bismo instalirali sljedeće pakete

sudo apt-get update && sudo apt-get -y nadogradnja

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

Dodajte sledeći red:

denyinterfaces wlan0 sudo vi/etc/network/sučelja

Uredite odjeljak wlan0 tako da izgleda ovako:

auto lo iface lo inet petlja

iface eth0 inet priručnik

auto wlan0 iface wlan0 inet statička adresa 10.0.10.1 maska mreže 255.255.255.0 mreža 10.0.10.0 emitovanje 10.0.10.255

auto eth1 iface eth1 inet statička adresa 10.0.20.1 maska mreže 255.255.255.0 mreža 10.0.20.0 emitovanje 10.0.20.255 Ponovo učitati DHCP server i odbiti konfiguraciju za eth0 i wlan0 veze

ponovno pokretanje sudo servisa dhcpcd

sudo ifdown eth0; sudo ifup wlan0

Konfigurirajte HOSTAPD (Promijenite ssid i wpa_passphrase na vrijednosti po vlastitom izboru)

sudo vi /etc/hostapd/hostapd.conf

# Ovo je naziv WiFi sučelja koje smo konfigurirali iznad interface = wlan0

# Koristite upravljački program nl80211 sa upravljačkim programom brcmfmac upravljačkog programa = nl80211

# Ovo je naziv mreže ssid = NintendoWiFi

# Koristite opseg 2,4 GHz hw_mode = g

# Koristite kanal 6 kanal = 6

# Omogući 802.11n ieee80211n = 1

# Omogući WMM wmm_enabled = 1

# Omogući kanale od 40 MHz sa zaštitnim intervalom od 20 ns ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Prihvatite sve MAC adrese macaddr_acl = 0

# Koristite WPA provjeru autentičnosti auth_algs = 1

# Zahtijevajte od klijenata da znaju naziv mreže ignore_broadcast_ssid = 0

# Koristite WPA2 wpa = 2

# Koristite unaprijed podijeljeni ključ wpa_key_mgmt = WPA-PSK

# Mrežni pristupni izraz wpa_passphrase = lozinka

# Koristite AES, umjesto TKIP rsn_pairwise = CCMP Možemo provjeriti radi li u ovoj fazi pokretanjem (ali još nema potpunu internetsku vezu):

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

sudo vi/etc/default/hostapd

Nađi liniju

#DAEMON_CONF = "" i zamenite ga sa

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

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

sudo vi /etc/dnsmasq.conf

bind-sučelja # Vežite se na sučelje kako biste bili sigurni da ne šaljemo stvari na drugo mjesto server = 8.8.8.8 # Proslijedite DNS zahtjeve na Google DNS potrebnu domenu # Ne prosljeđujte kratka imena lažna-priv # Nikada ne prosljeđujte adrese u onima koji nisu -preusmjereni adresni prostori.

# Dodijelite IP adrese s beskonačnim vremenom najma (za statistiku upotrebe uređaja) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, beskonačni dhcp-raspon = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, beskonačno POSTAVLJANJE IPV4 Špedicija

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

Odmah ga aktivirajte pomoću sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

sudo iptables -A NAPRIJED -i eth0 -o eth1 -m stanje -stanje POVEZANO, USTANOVLJENO -j PRIHVATLJAVANJE

sudo iptables -A NAPRIJED -i eth1 -o eth0 -j PRIHVATI

sudo iptables -A NAPRIJED -i eth0 -o wlan0 -m stanje -stanje POVEZANO, USTANOVLJENO -j PRIHVATI

sudo iptables -A NAPRIJED -i wlan0 -o eth0 -j PRIHVATI

Sačuvajte postavke iptablesa za sljedeće ponovno pokretanje

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

Kreirajte datoteku pravila ipv4 (s novim sadržajem)

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

iptables-restore </etc/iptables.ipv4.nat Usluge ponovnog pokretanja

sudo servis hostapd start sudo servis dnsmasq start

sudo reboot

Dodjeljivanje statičkih IP adresa (opcionalno)

Ako želite da domaćini na vašoj mreži imaju statičke ipove, upotrijebite sljedeće

Nabavite hostove koji su trenutno povezani putem DHCP -a vi /var/lib/misc/dnsmasq.leases

Dodajte MAC adresu (iz gornjeg izlaza) i IP adresu koju želite dodijeliti sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Napomena: Ovo će dodijeliti mrežni interfejs sa MAC adresom: 12: 34: 56: 78: 9a: bc IP adresi 10.0.20.20. Navedena IP adresa NE mora biti u danom DHCP rasponu, samo na istoj podmreži. Moja glavna radna površina iznad je na podmreži eth1: 10.0.20.0, pa sam joj dao IP adresu 10.0.20.20.

Dodavanje UFW zaštitnog zida

sudo apt-get install ufw

Dozvoli port 22 za javnu upotrebu (za udaljeni pristup mreži)

sudo ufw dozvoljavaju 22

Dopusti sve portove na mojoj lokalnoj mreži

sudo ufw allow od 10.0.10.0/24 sudo ufw allow od 10.0.20.0/24

Dozvolite web portove svima

sudo ufw dozvoljava 80

Dozvolite sigurne web portove svima

sudo ufw dozvoljavaju 443

Omogućite UFW i provjerite status

sudo ufw --force enable

sudo ufw status

Ispravite BUG sa UFW -om koji se ne pokreće pri pokretanju

sudo su crontab -e

Dodajte sljedeći red: @reboot /bin /sleep 60; ufw -omogućavanje sile

Korak 3: Potrebne zalihe: Stari pokvareni Nintendo

Potrebne potrepštine: Old Broken Nintendo
Potrebne potrepštine: Old Broken Nintendo

Staro Nintendo kućište iz pokvarenog NES -a (uklonite sav stari sadržaj u kućištu, ostavljajući samo vanjski okvir, tipke za uključivanje / poništavanje i veze kontrolera)

Korak 4: Potrebne zalihe: Raspberry Pi 3 Model B

Potrebni potrošni materijal: Raspberry Pi 3 Model B
Potrebni potrošni materijal: Raspberry Pi 3 Model B

Korak 5: Potrebni potrošni materijal: 1.44 "Serijski: UART/I2C/SPI TFT LCD 128x128 Modul ekrana

Potrebne zalihe: 1.44
Potrebne zalihe: 1.44
Potrebne zalihe: 1.44
Potrebne zalihe: 1.44

Korak 6: Potrebne zalihe: 5V 0.1A mini ventilator Raspberry Pi

Potrebni potrošni materijal: 5V 0.1A Mini Fan Raspberry Pi
Potrebni potrošni materijal: 5V 0.1A Mini Fan Raspberry Pi

Korak 7: Potrebne zalihe: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan ožičeni mrežni adapter Lan

Potrebni potrošni materijal: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan ožičeni mrežni adapter Lan
Potrebni potrošni materijal: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan ožičeni mrežni adapter Lan

Korak 8: Konstrukcija

Građevinarstvo
Građevinarstvo

Instalirajte unutar NSZ -a

Pomoću 3D štampača odštampajte Digole okvir za prikaz "NESPanel" u/construction/display-frame/folderu. [ako nemate 3D printer, mogli biste nježno izrezati kvadratnu rupu za Digole zaslon pomoću Dremel alata] Izrežite sljedeće rupe otvorene na stražnjoj i bočnoj strani kućišta kako biste omogućili da se mali ventilator pričvrsti na sa strane i kablove za napajanje/ethernet i USB ethernet za ulazak sa zadnje strane.

Korak 9: Konstrukcija Nastavak

Izgradnja Kont
Izgradnja Kont

Odvrnite gornji desni crni panel od NSES -a i čisto izrežite dovoljno veliku kvadratnu rupu za postavljanje vašeg ekrana digole. Vruće zalijepite zaslon s 3D tiskanim okvirom "NESPanel" preko njegovog vrha.

Korak 10: Konstrukcija Nastavak

Izgradnja Kont
Izgradnja Kont

Postavite RaspberryPi na sredinu dna praznog kućišta NES -a, pričvrstite ga ljepilom ili malim vijkom kroz dno. Koristeći otpornik od 270 ohma, spojite "LED za uključivanje" NES -a na pinove 5V i GND na Raspberry Pi (kratki LED vodič je uzemljenje). Spojite mali ventilator na pinove 5V i GND kako bi se pokrenuo kada se jedinica pokrene, zalijepite ventilator na rupu sa strane za njega.

Korak 11: Povezivanje Digole zaslona

Priključite sljedeće pinove na pinove na RaspberryPi

VCC je spojen na 3v GND je uzemljen PODACI su SDA SAT je SCL Sada biste trebali vidjeti uređaj u naredbi i2cdetect

i2cdetect -y 1 trebao bi se pojaviti u mreži teksta kao 27

Korak 12: Instalirajte alate za nadgledanje mreže i evidentiranje baze podataka

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

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

Dodajte sljedeći redak na kraj datoteke: lokalna sva pi lozinka sudo -i -u postgres

psql

kreirajte lozinku za lozinku pi 'lozinka ovdje';

promenite ulogu pi prijavljivanja;

alter role pi superuser;

du

(trebali biste vidjeti svog PI korisnika s dodijeljenim dozvolama) kreiranje baze podataka network_stats;

q

Izlaz

psql -d network_stats

Pokrenite sljedeće upite:

CREATE TABLE traffic_per_minute (id serija, vremenska oznaka bez vremenske zone NE NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

CREATE UNIQUE INDEX time_idx ON traffic_per_minute (vrijeme); Kopirajte mapu "logging" koda iz ovog projekta u početni direktorij vašeg RPi -a

crontab -e

Dodajte ovu liniju

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

Korak 13: Instalirajte Sažetak izvještaja o prometu (pokreće Cronjob svakih 5 minuta)

crontab -e

dodajte sledeći red

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

Korak 14: Instalirajte ekran nadzorne ploče

Kopirajte mapu "display" koda iz ovog projekta u početni direktorij vašeg RPi

Pokrenite ga na sljedeći način

$ python /home/pi/display/NESRouter.py Postavite prikaznu skriptu za pokretanje pri pokretanju

crontab -e

Dodajte ovu liniju

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

Provjerite da ekran počinje raditi pri ponovnom pokretanju

sudo reboot

Korak 15: Instalirajte lokalnu web lokaciju za upotrebu/statistiku [https://10.0.10.1]

Instalirajte lokalnu web stranicu za upotrebu/statistiku [https://10.0.10.1]

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

sudo apt-get install apache2

sudo servis apache2 ponovno pokretanje

Uklonite zadane stranice

cd /var /www

sudo rm -rf html

Kopirajte fasciklu 'webportal' iz ovog projekta u svoju matičnu mapu na RPi -ju i stvorite simboličku vezu koju će apache koristiti

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

Omogućite Python CGI skriptiranje

Dodaj unutar oznake

Opcije +ExecCGI AddHandler cgi-script.py sudo servis apache2 ponovno pokretanje

Sada možete posjetiti lokalnu HTTP stranicu [https://10.0.10.1]

Postavi napredni nadzor mreže (putem IPFM -a)

sudo apt-get update

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Kreirajte sa sljedećim sadržajem:

# Globalne varijable

# IPFM može nadzirati samo jedan uređaj. UREĐAJ eth0

# GLOBALNI DOGOVOR LOGON KONFIGURACIJE

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

# zapisnik svake minute DUMP SVAKE 1 minute

# jasna statistika svaki dan BRIŠITE SVAKO 24 SAT SORTIRAJTE U RJEŠENJU sudo usluga ipfm početak

NEOBVEZNO: Stvaranje vlastitih Nintendo slika za iscrtavanje na ekranu

Otpremite vlastitu datoteku 128x128 na sljedeću URL adresu:

www.digole.com/tools/PicturetoC_Hex_convert…

Odaberite datoteku slike za učitavanje, dodajte željenu veličinu na ekranu (širina/visina)

Odaberite "256 boja za OLED/LCD u boji (1 bajt/piksel)" u padajućem izborniku "Koristi se za"

Dobijte šesterokutni izlaz.

Dodajte heksadecimalni izlaz u datoteku display/ build/ header (.h), a ostale koristite kao vodiče za sintaksu.

Uključite novu datoteku u datoteku digole.c #include myimage.h

Uključite novu poveznicu komandne linije u datoteku slike u. Napomena: naredba ispod kaže da nacrtajte svoju sliku na poziciji 10 piksela preko 10 piksela prema dolje. Možete ga promijeniti u različite X, Y koordinate, a također možete promijeniti vrijednosti 128, 128 na bilo koju veličinu vaše nove slike.

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

Sada ponovo napravite (zanemarite greške) u nastavku kako bi se vaša nova slika iscrtala sa sljedećom naredbom.

$./digole myimage Ponovna izgradnja [Uključeno] Digole upravljačkog programa za vaše izborne izmjene

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

Preporučuje se: