Innehållsförteckning:

Nintendo Wifi Router: 17 steg (med bilder)
Nintendo Wifi Router: 17 steg (med bilder)

Video: Nintendo Wifi Router: 17 steg (med bilder)

Video: Nintendo Wifi Router: 17 steg (med bilder)
Video: Камера ANBIUX ДВУГЛАЗКА УДИВИЛА после ОБНОВЛЕНИЯ!!! 2024, November
Anonim
Nintendo wifi -router
Nintendo wifi -router

Använd ett gammalt Nintendo Entertainment -systemfodral för att producera en mycket funktionell hemrouter med en RaspberryPI 3!

Steg 1: Installera nödvändig RaspberryPi -programvara

Blinkande RaspberriPi -hårddisk / Installera nödvändig programvara (med Ubuntu Linux)

Ladda ner "RASPBIAN JESSIE LITE"

Skapa din nya hårddisk för DashboardPI

Sätt i microSD till din dator via USB -adapter och skapa diskavbildningen med kommandot dd

Leta reda på ditt isatta microSD -kort via kommandot df -h, avmontera det och skapa diskavbildningen med kommandot disk copy dd

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

$ umount /dev /sdb1

Varning: se till att kommandot är helt korrekt, du kan skada andra diskar med det här kommandot

if = plats för RASPBIAN JESSIE LITE bildfil av = plats för ditt microSD -kort

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of =/dev/sdb (Obs: i det här fallet är det/dev/sdb,/dev/sdb1 en befintlig fabrikspartition på microSD) Konfigurera din RaspberriPi

Sätt i ditt nya microSD -kort i raspberrypi och slå på det med en bildskärm ansluten till HDMI -porten

Logga in

användare: pi pass: hallon Ändra ditt kontolösenord för säkerhets skull

sudo passwd pi Aktivera avancerade alternativ för RaspberriPi

sudo raspi-config Välj: 1 Expandera filsystemet

9 Avancerade alternativ

A2 -värdnamn ändra det till "NESRouter"

A4 SSH Aktivera SSH -server

A7 I2C Aktivera i2c -gränssnitt Aktivera engelska/amerikanska tangentbordet

sudo nano/etc/default/keyboard Ändra följande rad: XKBLAYOUT = "oss" Konfigurera den enkla katalogen l kommando [valfritt]

vi ~/.bashrc

lägg till följande rad:

alias l = 'ls -lh'

källa ~/.bashrc Fixa VIM -standardsyntaxmarkering [valfritt]

sudo vi/etc/vim/vimrc

kommentera följande rad:

syntax på Starta om din PI för att få de senaste ändringarna

reboot Uppdatera lokala tidszoninställningar

sudo dpkg-omkonfigurera tzdata välj din tidszon med gränssnittet

Steg 2: Skapa WiFi -åtkomstpunkt

Observera att innan detta blir en router ansluter vi RaspberryPi till ett befintligt nätverk via dess Ethernet -port för att installera följande paket

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

Lägg till följande rad:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Redigera avsnittet wlan0 så att det ser ut så här:

auto lo iface lo inet loopback

iface eth0 inet manual

auto wlan0 iface wlan0 inet statisk adress 10.0.10.1 nätmask 255.255.255.0 nätverk 10.0.10.0 sändning 10.0.10.255

auto eth1 iface eth1 inet statisk adress 10.0.20.1 netmask 255.255.255.0 nätverk 10.0.20.0 broadcast 10.0.20.255 Ladda om DHCP -server och studsa konfigurationen för eth0- och wlan0 -anslutningar

sudo service dhcpcd starta om

sudo ifdown eth0; sudo ifup wlan0

Konfigurera HOSTAPD (Ändra ssid och wpa_passphrase till de valda värdena)

sudo vi /etc/hostapd/hostapd.conf

# Detta är namnet på WiFi -gränssnittet som vi konfigurerade ovanför gränssnittet = wlan0

# Använd nl80211 -drivrutinen med brcmfmac -drivrutinsdrivrutinen = nl80211

# Detta är namnet på nätverket ssid = NintendoWiFi

# Använd 2,4 GHz -bandet hw_mode = g

# Använd kanal 6 kanal = 6

# Aktivera 802.11n ieee80211n = 1

# Aktivera WMM wmm_enabled = 1

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

# Acceptera alla MAC -adresser macaddr_acl = 0

# Använd WPA -autentisering auth_algs = 1

# Kräv att klienterna känner till nätverksnamnet ignore_broadcast_ssid = 0

# Använd WPA2 wpa = 2

# Använd en fördelad nyckel wpa_key_mgmt = WPA-PSK

# Nätverkslösenfrasen wpa_passphrase = lösenord

# Använd AES, istället för TKIP rsn_pairwise = CCMP Vi kan kontrollera om det fungerar i detta skede genom att köra (men har inte full internetanslutning ännu):

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

sudo vi/etc/default/hostapd

Hitta linjen

#DAEMON_CONF = "" och ersätt den med

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

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Bind till gränssnittet för att se till att vi inte skickar saker någon annanstans server = 8.8.8.8 # Vidarebefordra DNS-förfrågningar till Google DNS-domänbehov # Vidarebefordra inte kortnamn falska-priv # Vidarebefordra aldrig adresser i -ruttade adressutrymmen.

# Tilldela IP-adresser med oändlig leasingtid (för enhetsanvändningsstatistik) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, oändlig dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, oändlig INSTÄLLNING IPV4 FRAMGÅNG

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

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

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

sudo iptables -A FORWARD -i eth0 -o eth1 -m state -state RELATED, ESTABLISHED -j ACCEPT

sudo iptables -A FRAMÅT -i eth1 -o eth0 -j ACCEPTERA

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state -state RELATED, ESTABLISHED -j ACCEPT

sudo iptables -A FRAMÅT -i wlan0 -o eth0 -j ACCEPTERA

Spara iptables -inställningar för nästa omstart

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

Skapa ipv4 -reglerfil (med nytt innehåll)

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

iptables-restore </etc/iptables.ipv4.nat Starta om tjänster

sudo service hostapd start sudo service dnsmasq start

sudo starta om

Tilldela statiska IP -adresser [Valfritt]

Om du vill att värdar i ditt nätverk ska ha statisk ips, använd följande

Skaffa värdarna som för närvarande är anslutna via DHCP vi /var/lib/misc/dnsmasq.leases

Lägg till MAC -adressen (från utdata ovan) och den IP -adress du vill tilldela dem till sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Obs! Detta tilldelar nätverksgränssnittet MAC-adressen: 12: 34: 56: 78: 9a: bc till IP-adressen 10.0.20.20. Den angivna IP -adressen behöver INTE vara i det angivna DHCP -området, bara på samma delnät. Mitt huvudskrivbord ovan är på subnätet eth1: 10.0.20.0, så jag gav det IP -adressen 10.0.20.20.

Lägger till UFW -brandvägg

sudo apt-get install ufw

Tillåt port 22 för allmänt bruk (för fjärranvändning av nätverk)

sudo ufw tillåta 22

Tillåt alla portar på mitt lokala nätverk

sudo ufw tillåter från 10.0.10.0/24 sudo ufw tillåter från 10.0.20.0/24

Tillåt webbportar till alla

sudo ufw tillåter 80

Tillåt säkra webbportar till alla

sudo ufw tillåter 443

Aktivera UFW och kontrollera statusen

sudo ufw --force aktivera

sudo ufw -status

Fix BUG med UFW startar inte vid start

sudo su crontab -e

Lägg till följande rad: @reboot /bin /sleep 60; ufw --force aktivera

Steg 3: Tillbehör som behövs: Old Broken Nintendo

Tillbehör som behövs: Old Broken Nintendo
Tillbehör som behövs: Old Broken Nintendo

Gammalt Nintendo -fodral från en trasig NES (ta bort allt gammalt innehåll inuti fodralet, lämna bara den yttre ramen, ström / återställningsknapparna och kontrollanslutningarna)

Steg 4: Tillbehör som behövs: Raspberry Pi 3 Model B

Tillbehör som behövs: Raspberry Pi 3 Model B
Tillbehör som behövs: Raspberry Pi 3 Model B

Steg 5: Nödvändiga förbrukningsmaterial: 1,44 "Serial: UART/I2C/SPI TFT LCD 128x128 Display Module

Tillbehör som behövs: 1.44
Tillbehör som behövs: 1.44
Tillbehör som behövs: 1.44
Tillbehör som behövs: 1.44

Steg 6: Nödvändiga tillbehör: 5V 0.1A Mini Fan Raspberry Pi

Nödvändiga tillbehör: 5V 0.1A Mini Fan Raspberry Pi
Nödvändiga tillbehör: 5V 0.1A Mini Fan Raspberry Pi

Steg 7: Tillbehör som behövs: Ugreen USB 2.0 till 10/100 Fast Ethernet Lan Wired Network Adapter

Nödvändiga tillbehör: Ugreen USB 2.0 till 10/100 Fast Ethernet Lan Wired Network Adapter
Nödvändiga tillbehör: Ugreen USB 2.0 till 10/100 Fast Ethernet Lan Wired Network Adapter

Steg 8: Konstruktion

Konstruktion
Konstruktion

Installera inuti NES

Skriv ut Digole Display-ramen "NESPanel" i mappen/construction/display-frame/folder med en 3D-skrivare. [om du inte har en 3D -skrivare kan du försiktigt skära ett fyrkantigt hål för Digole Display med ett Dremel -verktyg] Klipp upp följande hål på baksidan och sidan av fodralet så att den lilla fläkten kan fästas på sidan och ström-/ethernet- och USB -ethernetkablarna för att komma in genom baksidan.

Steg 9: Konstruktion Forts

Konstruktion Forts
Konstruktion Forts

Skruva loss den övre högra svarta panelen från NES och skär rent ett tillräckligt stort fyrkantigt hål för att montera din digoleskärm. Hot Lim fast skärmen med "NESPanel" 3D -tryckt ram ovanpå den.

Steg 10: Konstruktion Forts

Konstruktion Forts
Konstruktion Forts

Montera RaspberryPi i mitten av botten på det tomma NES -fodralet, fäst med lim eller en liten skruv genom botten. Använd en resistor på 270 ohm för att ansluta "power on LED" på NES till 5V- och GND -stiften i Raspberry Pi (kort LED -kabel är marken). Anslut också den lilla fläkten till 5V- och GND -stiften för att få den att köra när enheten startar, limma fläkten mot hålet i sidan för den.

Steg 11: Ansluta Digole Display

Anslut följande stift till stiften på RaspberryPi

VCC är ansluten till 3v GND är jordad DATA är SDA CLOCK är SCL Nu ska du se enheten i ditt i2cdetect -kommando

i2cdetect -y 1 det ska visas i rutnätet för text som 27

Steg 12: Installera nätverksövervakningsverktyg och DB -loggning

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

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

Lägg till följande rad i slutet av filen: local all pi password sudo -i -u postgres

psql

skapa roll -pi -lösenord 'lösenord här';

ändra roll pi -inloggning;

ändra roll pi superanvändare;

du

(du bör se din PI -användare med de beviljade behörigheterna) skapa databas network_stats;

q

utgång

psql -d network_stats

Kör följande frågor:

SKAPA TABELL trafik_per_minut (id -serie, tidsstämpel utan tidszon INTE NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

SKAPA UNIK INDEX time_idx ON traffic_per_minute (time); Kopiera "loggning" -koden från detta projekt till hemkatalogen för din RPi

crontab -e

Lägg till den här raden

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

Steg 13: Installera trafiksammanfattningsrapporten (kör var 5: e minut av Cronjob)

crontab -e

lägg till följande rad

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

Steg 14: Installera instrumentpanelen

Kopiera "display" -koden från detta projekt till hemkatalogen för din RPi

Kör det enligt följande

$ python /home/pi/display/NESRouter.py Konfigurera skärmskriptet för att köras vid start

crontab -e

Lägg till den här raden

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

Kontrollera att skärmen börjar fungera vid omstart

sudo starta om

Steg 15: Installera webbplatsen för lokal användning/statistik [https://10.0.10.1]

Installera den lokala användnings-/statistikwebbplatsen [https://10.0.10.1]

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

sudo apt-get install apache2

sudo service apache2 starta om

Ta bort standardsidor

cd /var /www

sudo rm -rf html

Kopiera "webbportal" -mappen från detta projekt till din hemmapp på din RPi och skapa symlänken för apache att använda

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

Aktivera Python CGI Scripting

Lägg in i taggen

Alternativ +ExecCGI AddHandler cgi-script.py sudo service apache2 restart

Du kan nu besöka den lokala HTTP -webbplatsen [https://10.0.10.1]

Konfigurera avancerad nätverksövervakning (via IPFM)

sudo apt-get uppdatering

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Skapa med följande innehåll:

# Globala variabler

# IPFM kan bara övervaka en enhet. ENHET eth0

# GLOBAL LOGGING CONFIGURATION LOG

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

# logga varje minut DUMP VARJE 1 minut

# tydlig statistik varje dag RENGÖR VARJE 24 timmars SORT I LÖSNING sudo service ipfm start

VALFRITT: Skapa egna Nintendo -bilder som ska återges på displayen

Ladda upp din egen 128x128 -fil till följande URL:

www.digole.com/tools/PicturetoC_Hex_convert …

Välj din bildfil att ladda upp, lägg till vilken storlek du vill att den ska ha på skärmen (bredd/höjd)

Välj "256 färger för färg OLED/LCD (1 byte/pixel)" i rullgardinsmenyn "Används för"

Skaffa hex -utgången.

Lägg till hex -utdata till en display/ build/ header (.h) -fil, använd de andra som vägledningar för syntax.

Inkludera den nya filen i digole.c -filen #include myimage.h

Inkludera en ny kommandoradshake till din bildfil i. Obs: kommandot nedan säger att dra din bild på position 10 pixlar över 10 pixlar nedåt. Du kan ändra den till olika X-, Y -koordinater, du kan också ändra värdena 128, 128 till vilken storlek din nya bild faktiskt är.

} annars if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere definieras i din (.h) -fil}

Bygg nu om (ignorera felen) nedan så att din nya bild återges med följande kommando.

$./digole myimage Re-Building [Inkluderat] Digole Display Driver för dina valfria ändringar

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

Steg 16: Avslutad

Rekommenderad: