Indholdsfortegnelse:

Nintendo Wifi Router: 17 trin (med billeder)
Nintendo Wifi Router: 17 trin (med billeder)

Video: Nintendo Wifi Router: 17 trin (med billeder)

Video: Nintendo Wifi Router: 17 trin (med billeder)
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, November
Anonim
Nintendo wifi router
Nintendo wifi router

Brug en gammel Nintendo Entertainment -systemkasse til at producere en meget funktionel hjemmrouter ved hjælp af en RaspberryPI 3!

Trin 1: Installer påkrævet RaspberryPi -software

Blinkende RaspberriPi -harddisk / Installer påkrævet software (Brug af Ubuntu Linux)

Download "RASPBIAN JESSIE LITE"

Opret din nye harddisk til DashboardPI

Indsæt microSD til din computer via USB -adapter, og opret diskbilledet ved hjælp af kommandoen dd

Find dit indsatte microSD -kort via kommandoen df -h, afmonter det, og opret diskbilledet med kommandoen disk copy dd

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

$ umount /dev /sdb1

Forsigtig: sørg for, at kommandoen er fuldstændig nøjagtig, du kan beskadige andre diske med denne kommando

hvis = placering af RASPBIAN JESSIE LITE billedfil af = placering af dit microSD -kort

$ sudo dd bs = 4M hvis =/path/to/raspbian-jessie-lite.img af =/dev/sdb (Bemærk: i dette tilfælde er det/dev/sdb,/dev/sdb1 var en eksisterende fabrikspartition på microSD) Opsætning af din RaspberriPi

Indsæt dit nye microSD -kort i raspberrypi, og tænd det med en skærm tilsluttet HDMI -porten

Log på

bruger: pi pass: hindbær Skift din kontos adgangskode for sikkerhed

sudo passwd pi Aktiver RaspberriPi Avancerede indstillinger

sudo raspi-config Vælg: 1 Udvid filsystemet

9 Avancerede indstillinger

A2 -værtsnavn ændre det til "NESRouter"

A4 SSH Aktiver SSH -server

A7 I2C Aktiver i2c -grænseflade Aktiver engelsk/amerikansk tastatur

sudo nano/etc/default/keyboard Skift følgende linje: XKBLAYOUT = "os" Konfigurer den simple bibliotek l kommando [valgfrit]

vi ~/.bashrc

tilføj følgende linje:

alias l = 'ls -lh'

kilde ~/.bashrc Fix VIM standardsyntaks fremhævning [valgfrit]

sudo vi/etc/vim/vimrc

kommenter følgende linje:

syntaks på Genstart din PI for at få de seneste ændringer

genstart Opdater lokale tidszoneindstillinger

sudo dpkg-omkonfigurer tzdata vælg din tidszone ved hjælp af grænsefladen

Trin 2: Oprettelse af WiFi -adgangspunktet

Bemærk, før dette bliver en router, tilslutter vi RaspberryPi til et eksisterende netværk via dets ethernet -port for at installere følgende pakker

sudo apt-get opdatering && sudo apt-get -y opgradering

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

Tilføj følgende linje:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Rediger wlan0 -sektionen, så den ser sådan ud:

auto lo iface lo inet loopback

iface eth0 inet manual

auto wlan0 iface wlan0 inet statisk adresse 10.0.10.1 netmask 255.255.255.0 netværk 10.0.10.0 udsendelse 10.0.10.255

auto eth1 iface eth1 inet statisk adresse 10.0.20.1 netmask 255.255.255.0 netværk 10.0.20.0 broadcast 10.0.20.255 Genindlæs DHCP -server og afvis konfigurationen for eth0- og wlan0 -forbindelser

sudo service dhcpcd genstart

sudo ifdown eth0; sudo ifup wlan0

Konfigurer HOSTAPD (Skift ssid og wpa_passphrase til de værdier, du selv vælger)

sudo vi /etc/hostapd/hostapd.conf

# Dette er navnet på den WiFi -grænseflade, vi konfigurerede ovenfor grænsefladen = wlan0

# Brug nl80211 -driveren med brcmfmac -driverdriveren = nl80211

# Dette er navnet på netværket ssid = NintendoWiFi

# Brug 2,4 GHz -båndet hw_mode = g

# Brug kanal 6 kanal = 6

# Aktiver 802.11n ieee80211n = 1

# Aktiver WMM wmm_enabled = 1

# Aktiver 40MHz kanaler med 20ns vagtinterval ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Accepter alle MAC -adresser macaddr_acl = 0

# Brug WPA -godkendelse auth_algs = 1

# Kræver, at klienter kender netværksnavnet ignore_broadcast_ssid = 0

# Brug WPA2 wpa = 2

# Brug en på forhånd delt nøgle wpa_key_mgmt = WPA-PSK

# Netværksadgangssætningen wpa_passphrase = adgangskode

# Brug AES, i stedet for TKIP rsn_pairwise = CCMP Vi kan kontrollere, om det fungerer på dette tidspunkt ved at køre (men ikke har fuld internetforbindelse endnu):

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

sudo vi/etc/default/hostapd

Find linjen

#DAEMON_CONF = "" og erstat det med

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

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Bind til grænsefladen for at sikre, at vi ikke sender ting andre steder server = 8.8.8.8 # Videresend DNS-anmodninger til Google DNS-domænebehovet # Videresend ikke korte navne falsk-priv # Videresend aldrig adresser i -ruterede adresserum.

# Tildel IP-adresser med uendelig leasingtid (for enhedsbrugsstatistik) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, uendelig dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, uendelig OPSÆT IPV4 FREMSEND

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

Aktiver det med det samme med sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

sudo iptables -E FREMTID -i eth0 -o eth1 -m tilstand -stat RELATERET, ESTABLERET -j ACCEPT

sudo iptables -A FREMTIL -i eth1 -o eth0 -j ACCEPT

sudo iptables -E FREMTID -i eth0 -o wlan0 -m tilstand -stat RELATERET, ETABLERET -j ACCEPT

sudo iptables -A FREMTIL -i wlan0 -o eth0 -j ACCEPT

Gem iptables -indstillinger til næste genstart

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

Opret ipv4 -reglerfil (med nyt indhold)

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

iptables-restore </etc/iptables.ipv4.nat Genstart tjenester

sudo service hostapd start sudo service dnsmasq start

sudo genstart

Tildeling af statiske IP'er [valgfrit]

Hvis du vil have værter på dit netværk til at have statisk ips, skal du bruge følgende

Anskaff de værter, der i øjeblikket er forbundet via DHCP vi /var/lib/misc/dnsmasq.leases

Tilføj MAC -adressen (fra output ovenfor) og den IP -adresse, du gerne vil tildele dem til sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Bemærk: Dette tildeler netværksgrænsefladen MAC-adressen: 12: 34: 56: 78: 9a: bc til IP-adressen 10.0.20.20. Den angivne IP -adresse behøver IKKE at være i det angivne DHCP -område, bare på det samme subnet. Mit hovedskrivebord ovenfor er på subnet eth1: 10.0.20.0, så jeg gav det IP -adresse 10.0.20.20.

Tilføjelse af UFW Firewall

sudo apt-get install ufw

Tillad port 22 til offentlig brug (til fjernnetværksadgang)

sudo ufw tillade 22

Tillad alle porte på mit lokale netværk

sudo ufw tillader fra 10.0.10.0/24 sudo ufw tillader fra 10.0.20.0/24

Tillad webporte til alle

sudo ufw tillader 80

Tillad sikre webporte til alle

sudo ufw tillade 443

Aktiver UFW, og kontroller status

sudo ufw -tvinge til

sudo ufw status

Fix BUG med UFW, der ikke starter ved opstart

sudo su crontab -e

Tilføj følgende linje: @reboot /bin /sleep 60; ufw -tvinge til

Trin 3: Nødvendige forsyninger: Old Broken Nintendo

Nødvendige forsyninger: Old Broken Nintendo
Nødvendige forsyninger: Old Broken Nintendo

Gammel Nintendo -sag fra en ødelagt NES (fjern alt det gamle indhold inde i kassen, lad kun den ydre ramme, tænd / sluk -knapperne og controllerforbindelserne efterlades)

Trin 4: Nødvendige forbrugsvarer: Raspberry Pi 3 Model B

Nødvendige forsyninger: Raspberry Pi 3 Model B
Nødvendige forsyninger: Raspberry Pi 3 Model B

Trin 5: Nødvendige forbrugsvarer: 1,44 "Seriel: UART/I2C/SPI TFT LCD 128x128 skærmmodul

Nødvendige forbrugsvarer: 1.44
Nødvendige forbrugsvarer: 1.44
Nødvendige forbrugsvarer: 1.44
Nødvendige forbrugsvarer: 1.44

Trin 6: Nødvendige forsyninger: 5V 0.1A Mini Fan Raspberry Pi

Nødvendige forsyninger: 5V 0.1A Mini Fan Raspberry Pi
Nødvendige forsyninger: 5V 0.1A Mini Fan Raspberry Pi

Trin 7: Nødvendige forbrugsvarer: Ugreen USB 2.0 til 10/100 Fast Ethernet Lan Wired Network Adapter

Nødvendige forbrugsvarer: Ugreen USB 2.0 til 10/100 Fast Ethernet Lan -kablet netværksadapter
Nødvendige forbrugsvarer: Ugreen USB 2.0 til 10/100 Fast Ethernet Lan -kablet netværksadapter

Trin 8: Konstruktion

Konstruktion
Konstruktion

Installer inde i NES

Udskriv en Digole Display-ramme "NESPanel" i mappen/construction/display-frame/folder med en 3D-printer. [hvis du ikke har en 3D -printer, kan du delikat skære et firkantet hul til Digole -displayet med et Dremel -værktøj] Skær følgende huller op bag på og bag på kabinettet, så den lille blæser kan fastgøres på side og strøm-/ethernet- og USB -ethernet -kablerne for at komme ind gennem bagsiden.

Trin 9: Konstruktion Forts

Konstruktion Forts
Konstruktion Forts

Skru det øverste højre sorte panel af NES og skær rent et stort nok firkantet hul til at montere din digole -skærm. Hot Lim lim skærmen på plads med "NESPanel" 3D -printet ramme over toppen af den.

Trin 10: Konstruktion Forts

Konstruktion Forts
Konstruktion Forts

Monter RaspberryPi midt i bunden af det tomme NES -kabinet, spænd med lim eller en lille skrue gennem bunden. Ved hjælp af en 270 ohm resister skal du tilslutte "tændt LED" på NES til 5V- og GND -benene i Raspberry Pi (kort LED -ledning er jorden). Tilslut også den lille blæser til 5V- og GND -benene for at få den til at køre, når enheden starter, lim ventilatoren mod hullet i siden til den.

Trin 11: Tilslutning af Digole Display

Tilslut følgende ben til stifterne på RaspberryPi

VCC er forbundet til 3v GND er jordet DATA er SDA CLOCK er SCL Nu skal du se enheden i din i2cdetect -kommando

i2cdetect -y 1 det skal vises i tekstgitteret som 27

Trin 12: Installer værktøjer til overvågning af netværk og DB -logning

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

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

Tilføj følgende linje til slutningen af filen: local all pi password sudo -i -u postgres

psql

opret rolle pi -adgangskode 'adgangskode her';

ændre rolle pi login;

ændre rolle pi superbruger;

du

(du skal se din PI -bruger med de tilladelser, der er givet) opret database network_stats;

q

Afslut

psql -d netværksstatistik

Kør følgende forespørgsler:

OPRET TABEL traffic_per_minute (id seriel, tidsstempel uden tidszone IKKE NULL, eth0_down reel, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

OPRET UNIK INDEX time_idx ON traffic_per_minute (time); Kopier mappen "logning" med kode fra dette projekt til hjemmekataloget på din RPi

crontab -e

Tilføj denne linje

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

Trin 13: Installer trafikoversigtsrapporten (kører hvert 5. minut af Cronjob)

crontab -e

tilføj følgende linje

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

Trin 14: Installer instrumentbrættet

Kopier "vis" -mappen med kode fra dette projekt til hjemmekataloget på din RPi

Kør det som følger

$ python /home/pi/display/NESRouter.py Konfigurer displayskriptet til at køre ved opstart

crontab -e

Tilføj denne linje

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

Kontroller, at skærmen begynder at fungere ved genstart

sudo genstart

Trin 15: Installer det lokale forbrug/statistikwebsted [https://10.0.10.1]

Installer det lokale brugs-/statistikwebsted [https://10.0.10.1]

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

sudo apt-get install apache2

sudo service apache2 genstart

Fjern standardsider

cd /var /www

sudo rm -rf html

Kopier 'webportal' -mappe fra dette projekt til din hjemmemappe på din RPi, og opret symlinket til apache, der kan bruges

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

Aktiver Python CGI Scripting

Tilføj inde i mærket

Options +ExecCGI AddHandler cgi-script.py sudo service apache2 genstart

Du kan nu besøge det lokale HTTP -websted [https://10.0.10.1]

Opsætning af avanceret netværksovervågning (via IPFM)

sudo apt-get opdatering

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Opret med følgende indhold:

# Globale variabler

# IPFM kan kun overvåge en enhed. ENHED eth0

# GLOBAL LOGGING KONFIGURATIONSLOG

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

# log hvert minut DUMP HVER 1 minut

# klar statistik hver dag RET HVER 24 timers SORT I LØS sudo service ipfm start

VALGFRIT: Oprettelse af dine egne Nintendo -billeder til gengivelse på displayet

Upload din egen 128x128 -fil til følgende URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Vælg din billedfil, der skal uploades, tilføj den størrelse, du vil have den på skærmen (bredde/højde)

Vælg "256 farver til farve OLED/LCD (1 byte/pixel)" i rullemenuen "Anvendes til"

Få hex -output.

Føj hex -output til en display/ build/ header (.h) fil, brug de andre som vejledninger til syntaks.

Medtag den nye fil i digole.c -filen #include myimage.h

Inkluder en ny kommandolinjekrog til din billedfil i. Bemærk: Kommandoen herunder siger, at tegne dit billede i position 10 pixels over 10 pixels ned. Du kan ændre det til forskellige X-, Y -koordinater, du kan også ændre værdierne 128, 128 til den størrelse, dit nye billede faktisk er.

} ellers hvis (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128 og myimageVariableHere, 0); // myimageVariableHere er defineret i din (.h) fil}

Genopbyg nu (ignorer fejlene) herunder for at få dit nye billede gengivet med følgende kommando.

$./digole myimage Re-Building [Inkluderet] Digole Display Driver til dine valgfrie ændringer

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

Anbefalede: