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, Studeni
Anonim
Nintendo Wifi usmjerivač
Nintendo Wifi usmjerivač

Koristeći kućište starog sustava Nintendo Entertainment, izradite visoko funkcionalan kućni usmjerivač pomoću RaspberryPI 3!

Korak 1: Instalirajte potreban RaspberryPi softver

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

Preuzmite "RASPBIAN JESSIE LITE"

Izradite svoj novi tvrdi disk za DashboardPI

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

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

$ 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 slikovne datoteke RASPBIAN JESSIE LITE = mjesto 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 -ja

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

Prijaviti se

user: pi pass: raspberry Promijenite lozinku računa radi sigurnosti

sudo passwd pi Omogući RaspberriPi napredne opcije

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

9 Napredne opcije

A2 naziv hosta promijenite u "NESRouter"

A4 SSH Omogući SSH poslužitelj

A7 I2C Omogući i2c sučelje Omogući englesku/američku tipkovnicu

sudo nano/etc/default/keyboard Promijenite sljedeći redak: XKBLAYOUT = "us" Postavljanje jednostavne naredbe l naredba [opcionalno]

vi ~/.bashrc

dodajte sljedeći redak:

alias l = 'ls -lh'

izvor ~/.bashrc Popraviti isticanje zadane sintakse VIM -a [nije obavezno]

sudo vi/etc/vim/vimrc

raskomentirajte sljedeći redak:

sintaksu na Ponovo pokrenite PI da biste dobili najnovije izmjene

rebootUpdate postavke lokalne vremenske zone

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

Korak 2: Stvaranje WiFi pristupne točke

Imajte na umu, prije nego što ovo postane usmjerivač, priključujemo RaspberryPi na postojeću mrežu putem 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 sljedeći redak:

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 emitiranje 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 emitiranje 10.0.20.255 Ponovno učitavanje DHCP poslužitelja i odbijanje konfiguracije za eth0 i wlan0 veze

sudo usluga dhcpcd ponovno pokretanje

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 s 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ćite 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

# Upotrijebite WPA2 wpa = 2

# Upotrijebite 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

Pronađi liniju

#DAEMON_CONF = "" i zamijenite ga s

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 drugdje server = 8.8.8.8 # Proslijedi DNS zahtjeve na Google DNS-ovu domenu potrebnu # Ne prosljeđuj kratka imena lažno-priv # Nikada ne prosljeđuj adrese u onima koji nisu -usmjereni 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 Prosljeđivanje

sudo vi /etc/sysctl.conf

[ukloni komentar] 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 VEZANO, 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 PRIHVATLJAVANJE

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

Spremite postavke iptablesa za sljedeće ponovno pokretanje

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

Izradite 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 ponovno podizanje sustava

Dodjela statičkih IP adresa (izborno)

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

# glavna radna površina dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Napomena: Ovo će dodijeliti mrežno sučelje s MAC adresom: 12: 34: 56: 78: 9a: bc na IP adresu 10.0.20.20. Navedena IP adresa NE mora biti u zadanom 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 vatrozida

sudo apt-get install ufw

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

sudo ufw dopustiti 22

Dopusti sve portove na mojoj lokalnoj mreži

sudo ufw dopusti od 10.0.10.0/24 sudo ufw dopusti od 10.0.20.0/24

Dopustite web portove svima

sudo ufw dopustiti 80

Dopustite sigurne web portove svima

sudo ufw dopuštaju 443

Omogućite UFW i provjerite status

sudo ufw -prisilno omogućiti

sudo ufw status

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

sudo su crontab -e

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

Korak 3: Potrebne zalihe: Stari pokvareni Nintendo

Potrebne potrepštine: Stari pokvareni Nintendo
Potrebne potrepštine: Stari pokvareni Nintendo

Staro Nintendo kućište iz pokvarenog NES -a (uklonite sav stari sadržaj unutar kućišta, ostavljajući samo vanjski okvir, gumbe za napajanje / resetiranje i priključke kontrolera)

Korak 4: Potrebne zalihe: Raspberry Pi 3 Model B

Potrebne zalihe: Raspberry Pi 3 Model B
Potrebne zalihe: Raspberry Pi 3 Model B

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

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

Korak 6: Potrebne zalihe: 5V 0.1A Mini Fan 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 pribor: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan ožičeni mrežni adapter Lan
Potrebni pribor: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan ožičeni mrežni adapter Lan

Korak 8: Izgradnja

Graditeljstvo
Graditeljstvo

Instalirajte unutar NES -a

Pomoću 3D pisača ispišite okvir Digole zaslona "NESPanel" u/construction/display-frame/folder. [ako nemate 3D pisač, mogli biste nježno izrezati četvrtastu rupu za zaslon Digole pomoću alata Dremel] Izrežite sljedeće rupe otvorene na stražnjoj i bočnoj strani kućišta kako bi se mali ventilator mogao pričvrstiti na bočne strane i kabele za napajanje/ethernet i USB ethernet za ulazak straga.

Korak 9: Konstrukcija Nastavak

Izgradnja Nastavak
Izgradnja Nastavak

Odvrnite gornju desnu crnu ploču od NSES -a i čisto izrežite dovoljno veliku kvadratnu rupu za postavljanje vašeg zaslona s digolom. Vruće zalijepite zaslon s 3D tiskanim okvirom "NESPanel" na njegovom vrhu.

Korak 10: Konstrukcija Nastavak

Izgradnja Nastavak
Izgradnja Nastavak

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 u Raspberry Pi (kratki LED vod je uzemljenje). Spojite mali ventilator na pinove 5V i GND kako bi se pokrenuo kad se jedinica pokrene, zalijepite ventilator na rupu sa strane za njega.

Korak 11: Povezivanje Digole zaslona

Spojite sljedeće pinove s pinovima 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 nadzor 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

Na kraj datoteke dodajte sljedeći redak: lokalna sva pi lozinka sudo -i -u postgres

psql

kreirajte lozinku za ulogu pi 'lozinka ovdje';

promijeni ulogu pi prijave;

alter role pi superuser;

du

(trebali biste vidjeti svog korisnika PI -a s dodijeljenim dopuštenjima) stvoriti bazu podataka network_stats;

q

Izlaz

psql -d mrežna_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 ovaj redak

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

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

crontab -e

dodajte sljedeći redak

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

Korak 14: Instalirajte zaslon 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 skriptu prikaza za pokretanje pri pokretanju

crontab -e

Dodajte ovaj redak

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

Provjerite počinje li zaslon raditi pri ponovnom pokretanju

sudo ponovno podizanje sustava

Korak 15: Instalirajte lokalnu web stranicu 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 mapu 'webportal' iz ovog projekta u svoju kuć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 usluga 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 ažuriranje

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 ZAPIS DOGOVOR KONFIGURACIJE

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

# zapisnik svake minute IZBACITI SVAKU 1 minutu

# 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 zaslonu

Prenesite vlastitu datoteku 128x128 na sljedeći URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Odaberite slikovnu datoteku za prijenos, dodajte željenu veličinu na zaslonu (š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 udicu naredbenog retka u datoteku slike u. Napomena: naredba u nastavku kaže da nacrtajte svoju sliku na položaju 10 piksela preko 10 piksela prema dolje. Možete ga promijeniti u različite X, Y koordinate, također možete promijeniti vrijednosti 128, 128 u 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 obnovite (zanemarite pogreške) u nastavku kako bi se vaša nova slika iscrtala sa sljedećom naredbom.

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

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

Preporučeni: