Inhoudsopgave:

Nintendo Wifi Router: 17 stappen (met afbeeldingen)
Nintendo Wifi Router: 17 stappen (met afbeeldingen)

Video: Nintendo Wifi Router: 17 stappen (met afbeeldingen)

Video: Nintendo Wifi Router: 17 stappen (met afbeeldingen)
Video: Mini UPS 12-24 V voor routers, IP-camera's, LED, mini-pc, elektrische kranen - beoordelen en testen 2024, November
Anonim
Nintendo Wifi-router
Nintendo Wifi-router

Maak met behulp van een oude Nintendo Entertainment-systeembehuizing een zeer functionele thuisrouter met behulp van een RaspberryPI 3!

Stap 1: Installeer de vereiste RaspberryPi-software

RaspberriPi-harde schijf knipperen / vereiste software installeren (met Ubuntu Linux)

Download "RASPBIAN JESSIE LITE"

Maak uw nieuwe harde schijf voor DashboardPI

Plaats de microSD in uw computer via een USB-adapter en maak de schijfkopie met de opdracht dd

Lokaliseer uw geplaatste microSD-kaart via de opdracht df -h, ontkoppel deze en maak de schijfkopie met de opdracht disk copy dd

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

$ umount /dev/sdb1

Let op: zorg ervoor dat het commando volledig nauwkeurig is, je kunt andere schijven beschadigen met dit commando

if=locatie van RASPBIAN JESSIE LITE afbeeldingsbestand van=locatie van uw microSD-kaart

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (let op: in dit geval is het /dev/sdb, /dev/sdb1 was een bestaande fabriekspartitie op de microSD) Uw RaspberriPi. instellen

Plaats uw nieuwe microSD-kaart in de raspberrypi en zet hem aan met een monitor aangesloten op de HDMI-poort

Log in

gebruiker: pi pass: raspberry Wijzig uw accountwachtwoord voor beveiliging

sudo passwd pi Geavanceerde opties voor RaspberriPi inschakelen

sudo raspi-config Kies: 1 Vouw Bestandssysteem uit

9 geavanceerde opties

A2 Hostnaam verander het in "NESRouter"

A4 SSH SSH-server inschakelen

A7 I2C i2c-interface inschakelen Schakel het Engelse/Amerikaanse toetsenbord in

sudo nano /etc/default/keyboard Wijzig de volgende regel: XKBLAYOUT="us" Stel de eenvoudige directory l-opdracht in [optioneel]

vi ~/.bashrc

voeg de volgende regel toe:

alias l='ls -lh'

source ~/.bashrc Fix VIM standaard syntax highlighting [optioneel]

sudo vi /etc/vim/vimrc

verwijder het commentaar van de volgende regel:

syntaxis op Start uw PI opnieuw op om de laatste wijzigingen te krijgen

rebootLokale tijdzone-instellingen bijwerken

sudo dpkg-reconfigure tzdata selecteer uw tijdzone met behulp van de interface

Stap 2: Het wifi-toegangspunt maken

Let op, voordat dit een router wordt, sluiten we de RaspberryPi aan op een bestaand netwerk via de ethernetpoort om de volgende pakketten te installeren

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-essentiële python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

Voeg de volgende regel toe:

denyinterfaces wlan0 sudo vi /etc/network/interfaces

Bewerk de wlan0-sectie zodat deze er als volgt uitziet:

auto lo iface lo inet loopback

iface eth0 inet handleiding

auto wlan0 iface wlan0 inet statisch adres 10.0.10.1 netmask 255.255.255.0 netwerk 10.0.10.0 broadcast 10.0.10.255

auto eth1 iface eth1 inet statisch adres 10.0.20.1 netmask 255.255.255.0 netwerk 10.0.20.0 broadcast 10.0.20.255 Herlaad DHCP-server en bounce de configuratie voor eth0- en wlan0-verbindingen

sudo-service dhcpcd opnieuw opstarten

sudo ifdown eth0; sudo ifup wlan0

Configureer HOSTAPD (verander ssid en wpa_passphrase naar de waarden van uw eigen keuze)

sudo vi /etc/hostapd/hostapd.conf

# Dit is de naam van de wifi-interface die we hierboven hebben geconfigureerd interface=wlan0

# Gebruik de nl80211 driver met de brcmfmac driver driver=nl80211

# Dit is de naam van het netwerk ssid=NintendoWiFi

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

# Gebruik kanaal 6 kanaal = 6

# 802.11n inschakelen ieee80211n=1

# WMM inschakelen wmm_enabled=1

# Schakel 40MHz-kanalen in met een bewakingsinterval van 20ns ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accepteer alle MAC-adressen macaddr_acl=0

# Gebruik WPA-authenticatie auth_algs=1

# Vereisen dat klanten de netwerknaam weten neg_broadcast_ssid=0

# Gebruik WPA2 wpa=2

# Gebruik een vooraf gedeelde sleutel wpa_key_mgmt=WPA-PSK

# De netwerkwachtwoordzin wpa_passphrase=wachtwoord

# Gebruik AES in plaats van TKIP rsn_pairwise=CCMP We kunnen controleren of het in dit stadium werkt door het uit te voeren (maar heeft nog geen volledige internetverbinding):

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

sudo vi /etc/default/hostapd

Vind de lijn

#DAEMON_CONF="" en vervang het door

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

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Bind aan de interface om er zeker van te zijn dat we dingen niet ergens anders heen sturen server=8.8.8.8 # Stuur DNS-verzoeken door naar Google DNS-domein nodig # Stuur geen korte namen nep-priv door # Stuur nooit adressen door in de niet -gerouteerde adresruimten.

# IP-adressen toewijzen met oneindige leasetijd (voor gebruiksstatistieken van apparaten) dhcp-range=wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, oneindig dhcp-range=eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, oneindig INSTELLEN IPV4 DOORSTUREN

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward=1

Activeer het onmiddellijk 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 FORWARD -i eth0 -o eth1 -m state --state GERELATEERD, GEVESTIGD -j ACCEPTEREN

sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTEREN

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state GERELATEERD, GEVESTIGD -j ACCEPTEREN

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPTEREN

Sla iptables-instellingen op voor de volgende herstart

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

Maak ipv4-regelsbestand (met nieuwe inhoud)

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

iptables-restore < /etc/iptables.ipv4.nat Services herstarten

sudo-service hostapd start sudo-service dnsmasq start

sudo reboot

Statische IP's toewijzen [optioneel]

Als u wilt dat hosts op uw netwerk statische ips hebben, gebruik dan het volgende:

Verkrijg de hosts die momenteel zijn verbonden via DHCP vi /var/lib/misc/dnsmasq.leases

Voeg het MAC-adres (van de uitvoer hierboven) en het IP-adres dat u ze wilt toewijzen toe aan sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host=12:34:56:78:9a:bc, 10.0.20.20 Opmerking: Dit zal de netwerkinterface met het MAC-adres: 12:34:56:78:9a:bc toewijzen aan IP-adres 10.0.20.20. Het vermelde IP-adres hoeft NIET in het opgegeven DHCP-bereik te zijn, alleen op hetzelfde subnet. Mijn hoofddesktop hierboven bevindt zich op subnet eth1:10.0.20.0, dus ik heb het IP-adres 10.0.20.20 gegeven.

UFW-firewall toevoegen

sudo apt-get install ufw

Sta poort 22 toe voor openbaar gebruik (voor externe netwerktoegang)

sudo ufw toestaan 22

Alle poorten op mijn lokale netwerk toestaan

sudo ufw toestaan vanaf 10.0.10.0/24 sudo ufw toestaan vanaf 10.0.20.0/24

Sta webpoorten toe voor iedereen

sudo ufw 80. toestaan

Sta veilige webpoorten toe aan iedereen

sudo ufw toestaan 443

Schakel UFW in en controleer de status

sudo ufw --force enable

sudo ufw-status

BUG repareren waarbij UFW niet start bij opstarten

sudo su crontab -e

Voeg de volgende regel toe: @reboot /bin/sleep 60; ufw --geforceerd inschakelen

Stap 3: Benodigde benodigdheden: oude kapotte Nintendo

Benodigde benodigdheden: oude kapotte Nintendo
Benodigde benodigdheden: oude kapotte Nintendo

Oude Nintendo Case van een kapotte NES (verwijder alle oude inhoud in de case, laat alleen het buitenste frame, de power / reset-knoppen en de controller-aansluitingen over)

Stap 4: Benodigde benodigdheden: Raspberry Pi 3 Model B

Benodigde benodigdheden: Raspberry Pi 3 Model B
Benodigde benodigdheden: Raspberry Pi 3 Model B

Stap 5: Benodigde benodigdheden: 1,44" serieel: UART/I2C/SPI TFT LCD 128x128 displaymodule

Benodigde benodigdheden: 1.44 "
Benodigde benodigdheden: 1.44 "
Benodigde benodigdheden: 1.44 "
Benodigde benodigdheden: 1.44 "

Stap 6: Benodigde benodigdheden: 5V 0.1A Mini Fan Raspberry Pi

Benodigde benodigdheden: 5V 0.1A miniventilator Raspberry Pi
Benodigde benodigdheden: 5V 0.1A miniventilator Raspberry Pi

Stap 7: Benodigde benodigdheden: Ugreen USB 2.0 naar 10/100 Fast Ethernet Lan bekabelde netwerkadapter

Benodigde benodigdheden: Ugreen USB 2.0 naar 10/100 Fast Ethernet LAN bekabelde netwerkadapter
Benodigde benodigdheden: Ugreen USB 2.0 naar 10/100 Fast Ethernet LAN bekabelde netwerkadapter

Stap 8: constructie

Bouw
Bouw

Installeer in de NES

Gebruik een 3D-printer om het Digole Display-frame "NESPanel" af te drukken in de map /construction/display-frame/. [Als je geen 3D-printer hebt, kun je voorzichtig een vierkant gat maken voor het Digole-display met een Dremel-gereedschap] Snijd de volgende gaten open in de achterkant en zijkant van de behuizing zodat de kleine ventilator op de behuizing kan worden bevestigd zijkant en de stroom/ethernet- en USB-ethernetkabels om via de achterkant binnen te komen.

Stap 9: Constructie Vervolg

Bouw vervolg
Bouw vervolg

Schroef het zwarte paneel rechtsboven van de NES los en snijd een vierkant gat dat groot genoeg is om uw digole-display te monteren. Lijm het display op zijn plaats met het "NESPanel" 3D-geprinte frame eroverheen.

Stap 10: Bouw vervolg

Bouw vervolg
Bouw vervolg

Monteer de RaspberryPi in het midden van de onderkant van de lege NES-behuizing, bevestig met lijm of een kleine schroef door de onderkant. Gebruik een weerstand van 270 ohm en sluit de "power on LED" van de NES aan op de 5V- en GND-pinnen in de Raspberry Pi (korte LED-kabel is de grond). Sluit de kleine ventilator ook aan op de 5V- en GND-pinnen om deze te laten draaien wanneer het apparaat opstart, lijm de ventilator tegen het gat in de zijkant ervoor.

Stap 11: Het Digole-display aansluiten

Sluit de volgende pinnen aan op de pinnen op de RaspberryPi

VCC is verbonden met 3v GND is aarde DATA is SDA CLOCK is SCL Nu zou je het apparaat in je i2cdetect-opdracht moeten zien

i2cdetect -y 1 het zou in het tekstraster moeten verschijnen als 27

Stap 12: Network Monitoring Tools & DB Logging installeren

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

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

Voeg de volgende regel toe aan het einde van het bestand: local all pi wachtwoord sudo -i -u postgres

psql

maak rol pi wachtwoord 'wachtwoord hier';

wijzig rol pi login;

verander rol pi superuser;

du

(u zou uw PI-gebruiker moeten zien met de verleende machtigingen) maak database network_stats;

Q

Uitgang

psql -d netwerk_stats

Voer de volgende query's uit:

CREATE TABLE traffic_per_minute (id serieel, tijdtijdstempel zonder tijdzone NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

MAAK UNIEKE INDEX time_idx ON traffic_per_minute (tijd); Kopieer de "logging"-map met code van dit project naar de homedirectory van uw RPi

crontab -e

Voeg deze regel toe

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

Stap 13: Installeer het Verkeersoverzichtsrapport (wordt elke 5 minuten uitgevoerd door Cronjob)

crontab -e

voeg de volgende regel toe:

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

Stap 14: Installeer het dashboardscherm

Kopieer de "display"-map met code van dit project naar de homedirectory van uw RPi

Voer het als volgt uit:

$ python /home/pi/display/NESRouter.py Stel het weergavescript in om bij het opstarten uit te voeren

crontab -e

Voeg deze regel toe

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

Controleer of het scherm begint te werken bij opnieuw opstarten

sudo reboot

Stap 15: Installeer de website voor lokaal gebruik/statistieken [https://10.0.10.1]

Installeer de website voor lokaal gebruik/statistieken [https://10.0.10.1]

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

sudo apt-get install apache2

sudo-service apache2 opnieuw opstarten

Standaardpagina's verwijderen

cd /var/www

sudo rm -rf html

Kopieer de 'webportal'-map van dit project naar je thuismap op je RPi en maak de symbolische link voor apache om te gebruiken

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

Python CGI-scripting inschakelen

Toevoegen in de tag

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

U kunt nu de lokale HTTP-site bezoeken [https://10.0.10.1]

Geavanceerde netwerkbewaking instellen (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

Maak met de volgende inhoud:

# Globale variabelen

# IPFM kan slechts één apparaat bewaken. APPARAAT eth0

# GLOBAL LOGGING CONFIGURATIELOGBOEK

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

# log elke minuut DUMP ELKE 1 minuut

# wis elke dag statistieken WIS ELKE 24 uur SORTEER IN OPLOSSEN sudo service ipfm start

OPTIONEEL: je eigen Nintendo-afbeeldingen maken om op het scherm weer te geven

Upload uw eigen 128x128-bestand naar de volgende URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Kies uw afbeeldingsbestand om te uploaden, voeg toe hoe groot u het op het scherm wilt hebben (Breedte/Hoogte)

Selecteer "256 kleuren voor OLED/LCD-kleuren (1 byte/pixel)" in de vervolgkeuzelijst "Gebruikt voor"

Verkrijg de hex-uitgang.

Voeg de hex-uitvoer toe aan een display/build/header (.h)-bestand, gebruik de andere als handleidingen voor syntaxis.

Voeg het nieuwe bestand toe aan het digole.c-bestand #include myimage.h

Voeg een nieuwe opdrachtregelhaak toe aan uw afbeeldingsbestand in de. Opmerking: het onderstaande commando zegt dat je je afbeelding moet tekenen op positie 10 pixels boven 10 pixels naar beneden. Je kunt het veranderen in verschillende X-, Y-coördinaten, je kunt ook de waarden 128, 128 wijzigen in de grootte van je nieuwe afbeelding.

} else if (strcmp(digoleCommand, "myimage") == 0) { drawBitmap256(10, 10, 128, 128, &myimageVariableHere, 0); // myimageVariableHere is gedefinieerd in uw (.h) bestand }

Herbouw nu (negeer de fouten) hieronder om uw nieuwe afbeelding te laten renderen met de volgende opdracht.

$./digole myimage Re-Building [Inbegrepen] Digole Display Driver voor uw optionele wijzigingen

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

Aanbevolen: