Sommario:
- Passaggio 1: installa il software RaspberryPi richiesto
- Passaggio 2: Creazione del punto di accesso WiFi
- Passaggio 3: forniture necessarie: vecchio Nintendo rotto
- Passaggio 4: materiali di consumo necessari: Raspberry Pi 3 Modello B
- Passaggio 5: materiali di consumo necessari: modulo display LCD 128x128 seriale da 1,44 pollici: UART/I2C/SPI TFT LCD
- Passaggio 6: materiali di consumo necessari: mini ventola da 5 V 0,1 A Raspberry Pi
- Passaggio 7: materiali di consumo necessari: adattatore di rete cablata LAN Ugreen USB 2.0 a 10/100 Fast Ethernet
- Passaggio 8: costruzione
- Fase 9: Costruzione Cont
- Fase 10: Costruzione Cont
- Passaggio 11: collegamento del display Digole
- Passaggio 12: installazione degli strumenti di monitoraggio della rete e registrazione del database
- Passaggio 13: installa il report di riepilogo del traffico (viene eseguito ogni 5 minuti da Cronjob)
- Passaggio 14: Installa lo schermo del dashboard
- Passaggio 15: installare il sito Web di utilizzo/statistiche locale [http://10.0.10.1]
Video: Router Wi-Fi Nintendo: 17 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:05
Utilizzando una custodia del sistema Old Nintendo Entertainment, produci un router domestico altamente funzionale utilizzando un RaspberryPI 3!
Passaggio 1: installa il software RaspberryPi richiesto
Disco rigido RaspberriPi lampeggiante / Installazione del software richiesto (utilizzando Ubuntu Linux)
Scarica "RASPBIAN JESSIE LITE"
Crea il tuo nuovo disco rigido per DashboardPI
Inserisci la microSD sul tuo computer tramite l'adattatore USB e crea l'immagine del disco usando il comando dd
Individua la scheda microSD inserita tramite il comando df -h, smontala e crea l'immagine del disco con il comando disk copy dd
$ df -h /dev/sdb1 7.4G 32K 7.4G 1% /media/XXX/1234-5678
$ umount /dev/sdb1
Attenzione: assicurati che il comando sia completamente preciso, puoi danneggiare altri dischi con questo comando
if=posizione del file immagine RASPBIAN JESSIE LITE of=posizione della tua scheda microSD
$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (nota: in questo caso, è /dev/sdb, /dev/sdb1 era una partizione di fabbrica esistente sul microSD) Configurazione di RaspberriPi
Inserisci la tua nuova scheda microSD nel raspberrypi e accendilo con un monitor collegato alla porta HDMI
Login
utente: pi pass: raspberry Cambia la password del tuo account per sicurezza
sudo passwd pi Abilita le opzioni avanzate di RaspberriPi
sudo raspi-config Scegli: 1 Espandi file system
9 Opzioni avanzate
A2 Hostname cambialo in "NESRouter"
A4 SSH Abilita server SSH
A7 I2C Abilita interfaccia i2c Abilita la tastiera inglese/americana
sudo nano /etc/default/keyboard Modifica la seguente riga: XKBLAYOUT="us" Imposta la directory semplice comando l [opzionale]
vi ~/.bashrc
aggiungi la seguente riga:
alias l='ls -lh'
source ~/.bashrc Correzione dell'evidenziazione della sintassi predefinita di VIM [opzionale]
sudo vi /etc/vim/vimrc
decommenta la seguente riga:
sintassi su Riavvia il tuo PI per ottenere le ultime modifiche
rebootAggiorna le impostazioni del fuso orario locale
sudo dpkg-reconfigure tzdata seleziona il tuo fuso orario usando l'interfaccia
Passaggio 2: Creazione del punto di accesso WiFi
Si prega di notare, prima che questo diventi un router, stiamo collegando il RaspberryPi a una rete esistente tramite la sua porta ethernet per installare i seguenti pacchetti
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
Aggiungi la seguente riga:
negareinterfaces wlan0 sudo vi /etc/network/interfaces
Modifica la sezione wlan0 in modo che assomigli a questa:
auto lo iface lo inet loopback
iface eth0 inet manuale
auto wlan0 iface wlan0 inet indirizzo statico 10.0.10.1 netmask 255.255.255.0 rete 10.0.10.0 broadcast 10.0.10.255
auto eth1 iface eth1 inet indirizzo statico 10.0.20.1 netmask 255.255.255.0 rete 10.0.20.0 broadcast 10.0.20.255 Ricarica il server DHCP e rimbalza la configurazione per le connessioni eth0 e wlan0
sudo service dhcpcd riavvio
sudo ifdown eth0; sudo ifup wlan0
Configura HOSTAPD (cambia ssid e wpa_passphrase con i valori di tua scelta)
sudo vi /etc/hostapd/hostapd.conf
# Questo è il nome dell'interfaccia WiFi che abbiamo configurato sopra interface=wlan0
# Usa il driver nl80211 con il driver brcmfmac driver=nl80211
# Questo è il nome della rete ssid=NintendoWiFi
# Usa la banda a 2,4 GHz hw_mode=g
# Usa canale 6 canale=6
# Abilita 802.11n ieee80211n=1
# Abilita WMM wmm_enabled=1
# Abilita i canali a 40MHz con intervallo di guardia di 20ns ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Accetta tutti gli indirizzi MAC macaddr_acl=0
# Usa autenticazione WPA auth_algs=1
# Richiede ai client di conoscere il nome della rete ignore_broadcast_ssid=0
# Usa WPA2 wpa=2
# Usa una chiave pre-condivisa wpa_key_mgmt=WPA-PSK
# La passphrase di rete wpa_passphrase=password
# Usa AES, invece di TKIP rsn_pairwise=CCMP Possiamo verificare se funziona in questa fase eseguendo (ma non ha ancora la connettività Internet completa):
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
sudo vi /etc/default/hostapd
Trova la linea
#DAEMON_CONF="" e sostituiscilo con
DAEMON_CONF="/etc/hostapd/hostapd.conf" Configura DNSMASQ
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf
bind-interfaces # Associa all'interfaccia per assicurarci che non stiamo inviando cose altrove server=8.8.8.8 # Inoltra richieste DNS a Google DNS domain-necessario # Non inoltrare nomi brevi bogus-priv # Non inoltrare mai indirizzi nel non -spazi di indirizzi instradati.
# Assegna indirizzi IP con tempo di locazione infinito (per le statistiche sull'utilizzo del dispositivo) dhcp-range=wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, infinito dhcp-range=eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, infinito SET UP IPV4 FORWARDING
sudo vi /etc/sysctl.conf
[rimuovi il commento] net.ipv4.ip_forward=1
Attivalo immediatamente con 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 FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Salva le impostazioni di iptables per il prossimo riavvio
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Crea file regole ipv4 (con nuovi contenuti)
sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
iptables-restore < /etc/iptables.ipv4.nat Riavvia i servizi
sudo service hostapd start sudo service dnsmasq start
sudo reboot
Assegnazione di IP statici [Facoltativo]
Se desideri che gli host sulla tua rete abbiano IP statici, utilizza quanto segue
Acquisire gli host attualmente connessi tramite DHCP vi /var/lib/misc/dnsmasq.leases
Aggiungi l'indirizzo MAC (dall'output sopra) e l'indirizzo IP che desideri assegnare a sudo vi /etc/dnsmasq.conf
# desktop principale dhcp-host=12:34:56:78:9a:bc, 10.0.20.20 Nota: questo assegnerà l'interfaccia di rete con l'indirizzo MAC: 12:34:56:78:9a:bc all'indirizzo IP 10.0.20.20. L'indirizzo IP elencato NON deve essere nell'intervallo DHCP fornito, solo sulla stessa sottorete. Il mio desktop principale sopra è sulla sottorete eth1:10.0.20.0, quindi gli ho dato l'indirizzo IP 10.0.20.20.
Aggiunta di firewall UFW
sudo apt-get install ufw
Consenti la porta 22 per l'uso pubblico (per l'accesso alla rete remota)
sudo ufw consenti 22
Consenti tutte le porte sulla mia rete locale
sudo ufw consentire da 10.0.10.0/24 sudo ufw consentire da 10.0.20.0/24
Consenti le porte web a tutti
sudo ufw consenti 80
Consenti porte web sicure a tutti
sudo ufw consenti 443
Abilita UFW e controlla lo stato
sudo ufw --force enable
sudo ufw status
Risolto BUG con UFW che non si avviava all'avvio
sudo su crontab -e
Aggiungi la seguente riga: @reboot /bin/sleep 60; ufw --force enable
Passaggio 3: forniture necessarie: vecchio Nintendo rotto
Vecchia custodia Nintendo da un NES rotto (rimuovi tutti i vecchi contenuti all'interno della custodia, lasciando solo la cornice esterna, i pulsanti di accensione / ripristino e le connessioni del controller)
Passaggio 4: materiali di consumo necessari: Raspberry Pi 3 Modello B
Passaggio 5: materiali di consumo necessari: modulo display LCD 128x128 seriale da 1,44 pollici: UART/I2C/SPI TFT LCD
Passaggio 6: materiali di consumo necessari: mini ventola da 5 V 0,1 A Raspberry Pi
Passaggio 7: materiali di consumo necessari: adattatore di rete cablata LAN Ugreen USB 2.0 a 10/100 Fast Ethernet
Passaggio 8: costruzione
Installa all'interno del NES
Utilizzando una stampante 3D, stampare la cornice del display Digole "NESPanel" nella cartella /construction/display-frame/. [se non si dispone di una stampante 3D è possibile praticare delicatamente un foro quadrato per il display Digole con uno strumento Dremel] Tagliare i seguenti fori aperti nella parte posteriore e laterale della custodia per consentire il fissaggio della piccola ventola sul lato e i cavi di alimentazione/ethernet e USB ethernet per entrare attraverso la parte posteriore.
Fase 9: Costruzione Cont
Svita il pannello nero in alto a destra dal NES e taglia in modo netto un foro quadrato abbastanza grande per montare il tuo display digole. Incolla a caldo il display in posizione con il telaio stampato in 3D "NESPanel" sopra di esso.
Fase 10: Costruzione Cont
Monta il RaspberryPi al centro della parte inferiore del case vuoto del NES, fissalo con la colla o una piccola vite attraverso il fondo. Usando un resistore da 270 ohm, collega il "LED di accensione" del NES ai pin 5V e GND nel Raspberry Pi (il cavo LED corto è la massa). Collega anche la piccola ventola ai pin 5V e GND per farla funzionare all'avvio dell'unità, incolla la ventola contro il foro sul lato.
Passaggio 11: collegamento del display Digole
Collega i seguenti pin ai pin del RaspberryPi
VCC è collegato a 3v GND è a terra DATA è SDA CLOCK è SCL Ora dovresti vedere il dispositivo nel tuo comando i2cdetect
i2cdetect -y 1 dovrebbe apparire nella griglia di testo come 27
Passaggio 12: installazione degli strumenti di monitoraggio della rete e registrazione del database
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
Aggiungi la seguente riga alla fine del file: local all pi password sudo -i -u postgres
psql
crea ruolo pi password 'password qui';
modificare il ruolo pi login;
alterare il ruolo pi superutente;
du
(dovresti vedere il tuo utente PI con i permessi concessi) create database network_stats;
Q
Uscita
psql -d network_stats
Eseguire le seguenti query:
CREATE TABLE traffic_per_minute (id seriale, timestamp senza fuso orario NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);
CREA INDICE UNICO time_idx ON traffic_per_minute (time); Copia la cartella "logging" del codice da questo progetto nella home directory del tuo RPi
crontab -e
Aggiungi questa riga
@reboot /bin/sleep 60; nohup python /home/pi/logging/networkUsage.py >/dev/null 2>&1
Passaggio 13: installa il report di riepilogo del traffico (viene eseguito ogni 5 minuti da Cronjob)
crontab -e
aggiungi la seguente riga
*/5 * * * * python /home/pi/logging/trafficSummary.py
Passaggio 14: Installa lo schermo del dashboard
Copia la cartella "display" del codice da questo progetto nella home directory del tuo RPi
Eseguilo come segue
$ python /home/pi/display/NESRouter.py Imposta lo script di visualizzazione da eseguire all'avvio
crontab -e
Aggiungi questa riga
@reboot nohup python /home/pi/display/NESRouter.py >/dev/null 2>&1
Verificare che il display inizi a funzionare al riavvio
sudo reboot
Passaggio 15: installare il sito Web di utilizzo/statistiche locale [https://10.0.10.1]
Installa il sito Web di utilizzo/statistiche locale [https://10.0.10.1]
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install apache2
sudo service apache2 riavvio
Rimuovi le pagine predefinite
cd /var/www
sudo rm -rf html
Copia la cartella 'webportal' da questo progetto nella tua cartella home sul tuo RPi e crea il collegamento simbolico per Apache da usare
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
Abilita script Python CGI
Aggiungi all'interno del tag
Opzioni +ExecCGI AddHandler cgi-script.py sudo service apache2 restart
Ora puoi visitare il sito HTTP locale [https://10.0.10.1]
Configurazione del monitoraggio di rete avanzato (tramite IPFM)
sudo apt-get update
sudo apt-get install ipfm
sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak
sudo vi /etc/ipfm.conf
Crea con i seguenti contenuti:
# Variabili globali
# IPFM può monitorare un solo dispositivo. DISPOSITIVO eth0
# REGISTRO GLOBALE CONFIGURAZIONE LOG
FILENAME "/var/log/ipfm/%Y_%d_%m/%H_%M"
# log ogni minuto SCARICA OGNI 1 minuto
# cancella statistiche ogni giorno CANCELLA OGNI 24 ore ORDINA IN RISOLUZIONE sudo service ipfm start
FACOLTATIVO: creare le tue immagini Nintendo da visualizzare sul display
Carica il tuo file 128x128 al seguente URL:
www.digole.com/tools/PicturetoC_Hex_convert…
Scegli il tuo file immagine da caricare, aggiungi la dimensione che vuoi che sia sullo schermo (larghezza/altezza)
Seleziona "256 colori per OLED/LCD a colori (1 byte/pixel)" nel menu a discesa "Utilizzato per"
Ottieni l'output esadecimale.
Aggiungi l'output esadecimale a un file display/build/header (.h), usa gli altri come guide per la sintassi.
Includere il nuovo file nel file digole.c #include myimage.h
Includere un nuovo hook della riga di comando al file immagine nel file. Nota: il comando seguente dice di disegnare la tua immagine in posizione 10 pixel su 10 pixel in basso. Puoi cambiarlo in diverse coordinate X, Y, puoi anche cambiare i valori 128, 128 a qualsiasi dimensione sia effettivamente la tua nuova immagine.
} else if (strcmp(digoleCommand, "myimage") == 0) { drawBitmap256(10, 10, 128, 128, &myimageVariableHere, 0); // myimageVariableHere è definito nel tuo file (.h) }
Ora ricostruisci (ignora gli errori) di seguito per visualizzare la tua nuova immagine con il seguente comando.
$./digole myimage Re-Building [Incluso] Digole Display Driver per le tue modifiche facoltative
$ cd visualizza/costruisci $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole
Consigliato:
Steam Punk Il tuo UPS per ottenere ore di attività per il tuo router Wi-Fi: 4 passaggi (con immagini)
Steam Punk Il tuo UPS per ottenere ore di attività per il tuo router Wi-Fi: C'è qualcosa di fondamentalmente sgradevole nel fatto che il tuo UPS converta la sua alimentazione a batteria da 12 V CC in alimentazione a 220 V CA in modo che i trasformatori che eseguono il router e la fibra ONT possano riconvertirlo in 12V CC! Sei anche contro il [tipicamente
UPS per router WiFi V4: 6 passaggi (con immagini)
UPS per router WiFi V4: Ciao a tutti, con l'aumento del lavoro da casa, tutti noi vogliamo lavorare senza interruzioni, le interruzioni di corrente sono molto comuni in India. Molti appartamenti hanno installato generatori di backup, che si attivano entro pochi secondi dall'interruzione dell'alimentazione. l'interruzione di corrente è per f
Ups per router: 6 passaggi (con immagini)
Aumenti per i router: nei paesi in via di sviluppo, le interruzioni di corrente sono comuni… Abbiamo un generatore di energia elettrica come backup, ma c'è un piccolo intervallo di tempo di 20 secondi durante i cambi. Il mio router viene riavviato e impiega da 3 a 5 minuti per riconnettersi. E se sei
Router domestico wireless con misuratore di utilizzo analogico: 5 passaggi (con immagini)
Router domestico wireless con misuratore di utilizzo analogico: sono cresciuto dentro e intorno alle barche realizzando cablaggi e pannelli di controllo e ho una collezione di misuratori e amp; quadranti che normalmente si troverebbero collegati a piccoli motori diesel marini. Oggi lavoro come progettista realizzando interfacce per il networking
Incredibile HULK Nintendo Wii con USB extra: 6 passaggi (con immagini)
Incredible HULK Nintendo Wii W/ Extra Usb: Bene, ho FINALMENTE finito il mio secondo Wii Mod!!! L'incredibile HULK personalizzato Wii. Ho seguito il consiglio dei tuoi ragazzi e già attraverso questo su e-bay! Spero che mi faccia un po' di pasta! Questo Instructable sarà molto simile al mio Super Mario Wii tranne per il fatto che