INHOUDSOPGAWE:

Nintendo Wifi -router: 17 stappe (met foto's)
Nintendo Wifi -router: 17 stappe (met foto's)

Video: Nintendo Wifi -router: 17 stappe (met foto's)

Video: Nintendo Wifi -router: 17 stappe (met foto's)
Video: Dit ging niet zoals ik had verwacht..😳 2024, November
Anonim
Nintendo Wifi router
Nintendo Wifi router

Gebruik 'n ou Nintendo Entertainment -stelselkas en produseer 'n baie funksionele tuisrouter met 'n RaspberryPI 3!

Stap 1: Installeer die vereiste RaspberryPi -sagteware

Knipperende RaspberriPi -hardeskyf / Installeer vereiste sagteware (met Ubuntu Linux)

Laai 'RASPBIAN JESSIE LITE' af

Skep u nuwe hardeskyf vir DashboardPI

Plaas die microSD via u USB -adapter op u rekenaar en skep die skyfbeeld met die opdrag dd

Soek u ingevoegde microSD -kaart via die df -h -opdrag, ontkoppel dit en skep die skyfbeeld met die skyfkopie dd -opdrag

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

$ umount /dev /sdb1

Let op: maak seker dat die opdrag heeltemal akkuraat is; u kan ander skywe beskadig met hierdie opdrag

if = ligging van die RASPBIAN JESSIE LITE -prentlêer van = ligging van u microSD -kaart

$ sudo dd bs = 4M as =/path/to/raspbian-jessie-lite.img van =/dev/sdb (let wel: in hierdie geval is dit/dev/sdb,/dev/sdb1 'n bestaande fabriekspartisie op die microSD) Stel u RaspberriPi op

Plaas u nuwe microSD -kaart in die raspberrypi en skakel dit aan met 'n monitor wat op die HDMI -poort gekoppel is

Teken aan

gebruiker: pi pass: framboos Verander u rekeningwagwoord vir sekuriteit

sudo passwd pi Aktiveer RaspberriPi Advanced Options

sudo raspi-config Kies: 1 Brei lêerstelsel uit

9 Gevorderde opsies

A2 Gasheernaam verander dit na "NESRouter"

A4 SSH Aktiveer SSH -bediener

A7 I2C Aktiveer i2c -koppelvlak Aktiveer die Engels/Amerikaanse sleutelbord

sudo nano/etc/default/keyboard Verander die volgende reël: XKBLAYOUT = "us" Stel die eenvoudige gids l opdrag op [opsioneel]

vi ~/.bashrc

voeg die volgende reël by:

alias l = 'ls -lh'

bron ~/.bashrc Fix VIM standaard sintaksis beklemtoon [opsioneel]

sudo vi/etc/vim/vimrc

los die volgende reël op:

sintaksis op Herlaai u PI om die nuutste veranderinge te kry

herlaai Werk plaaslike tydsone -instellings op

sudo dpkg-herkonfigureer tzdata kies u tydsone met behulp van die koppelvlak

Stap 2: Skep die WiFi -toegangspunt

Let op: voordat dit 'n router word, sluit ons die RaspberryPi aan op 'n bestaande netwerk via die ethernet -poort om die volgende pakkette te installeer

sudo apt-get update && 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

Voeg die volgende reël by:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Wysig die wlan0 -afdeling sodat dit so lyk:

outo lo iface lo inet loopback

iface eth0 inet handleiding

auto wlan0 iface wlan0 inet statiese adres 10.0.10.1 netmasker 255.255.255.0 netwerk 10.0.10.0 uitsending 10.0.10.255

outomatiese eth1 iface eth1 inet statiese adres 10.0.20.1 netmask 255.255.255.0 netwerk 10.0.20.0 uitsending 10.0.20.255 Herlaai DHCP -bediener en weerkaats die konfigurasie vir eth0- en wlan0 -verbindings

sudo diens dhcpcd herbegin

sudo ifdown eth0; sudo ifup wlan0

Stel HOSTAPD op (Verander ssid en wpa_passphrase na die waardes van u keuse)

sudo vi /etc/hostapd/hostapd.conf

# Dit is die naam van die WiFi -koppelvlak wat ons hierbo gestel het = wlan0

# Gebruik die nl80211 -bestuurder saam met die brcmfmac -bestuurderbestuurder = nl80211

# Dit is die naam van die netwerk ssid = NintendoWiFi

# Gebruik die 2,4 GHz -band hw_mode = g

# Gebruik kanaal 6 kanaal = 6

# Aktiveer 802.11n ieee80211n = 1

# Aktiveer WMM wmm_enabled = 1

# Aktiveer 40MHz-kanale met 'n 20ns-bewakingsinterval ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Aanvaar alle MAC -adresse macaddr_acl = 0

# Gebruik WPA -verifikasie auth_algs = 1

# Vereis dat kliënte die netwerknaam ignoreer_broadcast_ssid = 0

# Gebruik WPA2 wpa = 2

# Gebruik 'n vooraf gedeelde sleutel wpa_key_mgmt = WPA-PSK

# Die netwerkwagfrase wpa_passphrase = wagwoord

# Gebruik AES, in plaas van TKIP rsn_pairwise = CCMP Ons kan op hierdie stadium kyk of dit werk (maar het nog nie volledige internetverbinding nie):

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

sudo vi/etc/default/hostapd

Vind die lyn

#DAEMON_CONF = "" en vervang dit met

DAEMON_CONF = "/etc/hostapd/hostapd.conf" Stel DNSMASQ op

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Bind aan die koppelvlak om seker te maak dat ons nie dinge elders stuur nie = 8.8.8.8 # Stuur DNS-versoeke aan na Google DNS-domein wat nodig is # Moenie kort name nep-priv nie aanstuur nie # Moet nooit adresse in die nie -route adresruimtes.

# Ken IP-adresse toe met oneindige huurtyd (vir gebruikstatistieke) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, oneindige dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, oneindige INSTEL IPV4 VOORWAARDE

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

Aktiveer dit onmiddellik met sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

sudo iptables -A VOORUIT -i eth0 -o eth1 -m staat -staat VERWANTE, VASGESTELD -j AANVAAR

sudo iptables -A VOORUIT -i eth1 -o eth0 -j AANVAAR

sudo iptables -A VOORUIT -i eth0 -o wlan0 -m staat -staat VERWANTE, VASGESTELD -j AANVAAR

sudo iptables -A VOORUIT -i wlan0 -o eth0 -j AANVAAR

Stoor iptables -instellings vir die volgende herlaai

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

Skep ipv4 reëls lêer (met nuwe inhoud)

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

iptables-herstel </etc/iptables.ipv4.nat Herlaai dienste

sudo diens hostapd begin sudo diens dnsmasq begin

sudo herlaai

Ken statiese IP's toe (opsioneel)

As u wil hê dat gashere in u netwerk statiese ips moet hê, gebruik die volgende

Kry die gashere wat tans verbind is via DHCP vi /var/lib/misc/dnsmasq.leases

Voeg die MAC -adres (van die uitvoer hierbo) en die IP -adres wat u dit aan sudo vi /etc/dnsmasq.conf wil toewys, by

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Nota: Dit gee die netwerk-koppelvlak die MAC-adres: 12: 34: 56: 78: 9a: bc aan IP-adres 10.0 toe.20.20. Die gelyste IP -adres hoef NIE binne die opgegeven DHCP -reeks te wees nie, net op dieselfde subnet. My hoof lessenaar hierbo is op subnet eth1: 10.0.20.0, so ek het dit IP -adres van 10.0.20.20 gegee.

Voeg UFW -firewall by

sudo apt-get install ufw

Laat poort 22 toe vir openbare gebruik (vir afgeleë netwerktoegang)

sudo ufw laat 22 toe

Laat alle poorte op my plaaslike netwerk toe

sudo ufw laat toe vanaf 10.0.10.0/24 sudo ufw laat toe vanaf 10.0.20.0/24

Laat webpoorte toe vir almal

sudo ufw laat 80 toe

Laat veilige webpoorte vir almal toe

sudo ufw laat 443 toe

Aktiveer UFW en kyk na die status

sudo ufw -dwing in staat stel

sudo ufw status

Los BUG op met UFW wat nie begin tydens opstart nie

sudo su crontab -e

Voeg die volgende reël by: @reboot /bin /sleep 60; ufw -dwing in staat stel

Stap 3: Benodighede benodig: Old Broken Nintendo

Benodighede benodig: Old Broken Nintendo
Benodighede benodig: Old Broken Nintendo

Ou Nintendo -omhulsel van 'n gebroke NES (verwyder al die ou inhoud in die omhulsel, laat slegs die buitekant, die aan / uit -knoppies en die kontroleerderverbindings)

Stap 4: Benodighede benodig: Framboos Pi 3 Model B

Benodighede benodig: Raspberry Pi 3 Model B
Benodighede benodig: Raspberry Pi 3 Model B

Stap 5: Benodighede benodig: 1,44 "reeks: UART/I2C/SPI TFT LCD 128x128 skermmodule

Benodighede benodig: 1.44
Benodighede benodig: 1.44
Benodighede benodig: 1.44
Benodighede benodig: 1.44

Stap 6: Benodighede benodig: 5V 0.1A Mini Fan Raspberry Pi

Benodighede benodig: 5V 0.1A Mini Fan Raspberry Pi
Benodighede benodig: 5V 0.1A Mini Fan Raspberry Pi

Stap 7: Benodighede benodig: Ugreen USB 2.0 tot 10/100 Fast Ethernet Lan Wired Network Adapter

Benodighede benodig: Ugreen USB 2.0 tot 10/100 Fast Ethernet Lan -bedrade netwerkadapter
Benodighede benodig: Ugreen USB 2.0 tot 10/100 Fast Ethernet Lan -bedrade netwerkadapter

Stap 8: Konstruksie

Konstruksie
Konstruksie

Installeer binne die NES

Druk die Digole-skerm "NESPanel" in die/construction/display-frame/folder met 'n 3D-drukker. [as u nie 'n 3D -drukker het nie, kan u 'n vierkantige gat vir die Digole -skerm met 'n Dremel -instrument fyn sny] Sny die volgende gate oop aan die agterkant en sykant van die omhulsel sodat die klein waaier aan die kant en die krag-/ethernet- en USB -ethernetkabels om deur die agterkant in te kom.

Stap 9: Konstruksie vervolg

Konstruksie Vervolg
Konstruksie Vervolg

Skroef die swart paneel regs bo van die NES af en sny 'n groot genoeg vierkantige gat om u digole -skerm te monteer. Plak die skerm vas met die 3D -gedrukte raam "NESPanel" bo -op.

Stap 10: Konstruksie vervolg

Konstruksie Vervolg
Konstruksie Vervolg

Monteer die RaspberryPi in die middel van die onderkant van die leë NES -omhulsel, maak dit vas met gom of 'n klein skroefie aan die onderkant. Koppel die "power on LED" van die NES met 'n weerstand van 270 ohm aan die 5V- en GND -penne in die Raspberry Pi (kort LED -kabel is die grond). Koppel die klein waaier ook aan die 5V- en GND -penne om dit te laat loop wanneer die eenheid begin, plak die waaier teen die gat in die sy daarvoor.

Stap 11: Koppel die Digole -skerm aan

Koppel die volgende penne aan die penne op die RaspberryPi

VCC is gekoppel aan 3v GND is gemaal DATA is SDA CLOCK is SCL Nou moet u die toestel in u i2cdetect -opdrag sien

i2cdetect -y 1 dit moet as 27 in die teksrooster verskyn

Stap 12: Installeer gereedskap vir netwerkmonitering en DB -aanmelding

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

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

Voeg die volgende reël by die einde van die lêer: local all pi password sudo -i -u postgres

psql

skep 'n wagwoord hier vir 'n rol pi -wagwoord;

verander rol pi login;

verander rol pi supergebruiker;

du

(u moet u PI -gebruiker sien met die toegestane toestemmings) skep databasis network_stats;

q

uitgang

psql -d netwerk_statistieke

Voer die volgende navrae uit:

SKEP TABEL traffic_per_minute (ID -reeks, tydstempel sonder tydsone NIE NULL nie, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

SKEP UNIEKE INDEKS time_idx ON traffic_per_minute (tyd); Kopieer die gids "aanmelding" van hierdie projek na die tuisgids van u RPi

crontab -e

Voeg hierdie reël by

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

Stap 13: Installeer die verkeersopsommingsverslag (loop elke 5 minute deur Cronjob)

crontab -e

voeg die volgende reël by

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

Stap 14: Installeer die paneelbordskerm

Kopieer die "vertoon" -map met kode van hierdie projek na die tuisgids van u RPi

Begin dit soos volg

$ python /home/pi/display/NESRouter.py Stel die vertoningsskrif op om te begin tydens opstart

crontab -e

Voeg hierdie reël by

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

Kontroleer of die skerm begin met herlaai

sudo herlaai

Stap 15: Installeer die webwerf vir plaaslike gebruik/statistieke [https://10.0.10.1]

Installeer die plaaslike gebruiks-/statistiekwebwerf [https://10.0.10.1]

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

sudo apt-get installeer apache2

sudo service apache2 herbegin

Verwyder verstekbladsye

cd /var /www

sudo rm -rf html

Kopieer 'webportal' gids van hierdie projek na u tuismap op u RPi en skep die simlink vir apache om te gebruik

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

Aktiveer Python CGI Scripting

Voeg binne -in die etiket

Opsies +ExecCGI AddHandler cgi-script.py sudo service apache2 herlaai

U kan nou die plaaslike HTTP -webwerf besoek [https://10.0.10.1]

Stel gevorderde netwerkmonitering op (via IPFM)

sudo apt-get update

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Skep met die volgende inhoud:

# Globale veranderlikes

# IPFM kan slegs een toestel monitor. TOESTEL eth0

# GLOBALE AANMELDING KONFIGURASIE LOG

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

# teken elke minuut DUMP ELKE 1 minuut in

# duidelike statistieke elke dag LEER ELKE 24 uur SORTEER IN OPLOSSING sudo service ipfm start

OPSIONEEL: Maak u eie Nintendo -beelde om op die skerm weer te gee

Laai u eie 128x128 -lêer op na die volgende URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Kies u prentlêer om op te laai, voeg die grootte by wat u wil hê op die skerm (breedte/hoogte)

Kies "256 kleur vir kleur OLED/LCD (1 greep/pixel)" in die "Gebruik vir" -afrollys

Verkry die heksafvoer.

Voeg die hex -uitvoer by 'n display/ build/ header (.h) lêer, gebruik die ander as riglyne vir sintaksis.

Sluit die nuwe lêer in die digole.c -lêer in #include myimage.h

Sluit 'n nuwe haak van die opdragreël by u beeldlêer in die. Let wel: die onderstaande opdrag sê dat u u prent op posisie 10 pixels bo 10 pixels na onder moet trek. U kan dit verander na verskillende X-, Y -koördinate; u kan ook die waardes 128, 128 verander in watter grootte u nuwe beeld ook al is.

} anders if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, en myimageVariableHere, 0); // myimageVariableHere word gedefinieer in jou (.h) lêer}

Herbou (ignoreer die foute) hieronder om u nuwe prentjie met die volgende opdrag weer te gee.

$./digole myimage Herbou [ingesluit] Digole Display Driver vir u opsionele veranderinge

$ cd vertoon/bou $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole

Aanbeveel: