Cuprins:
- Pasul 1: Instalați software-ul RaspberryPi necesar
- Pasul 2: Crearea punctului de acces WiFi
- Pasul 3: consumabile necesare: Nintendo vechi rupt
- Pasul 4: consumabile necesare: Raspberry Pi 3 Model B
- Pasul 5: consumabile necesare: 1,44 "Serial: UART / I2C / SPI TFT LCD 128x128 Module Display
- Pasul 6: consumabile necesare: 5V 0.1A Mini ventilator Raspberry Pi
- Pasul 7: Consumabile necesare: Ugreen USB 2.0 la 10/100 Fast Ethernet Lan Adaptor de rețea cu fir
- Pasul 8: Construcție
- Pasul 9: Const. Cont
- Pasul 10: Cont
- Pasul 11: Conectarea ecranului Digole
- Pasul 12: Instalați instrumentele de monitorizare a rețelei și înregistrarea bazei de date
- Pasul 13: Instalați raportul de rezumat al traficului (rulează la fiecare 5 minute de Cronjob)
- Pasul 14: Instalați ecranul tabloului de bord
- Pasul 15: Instalați site-ul de utilizare locală / statistici [http://10.0.10.1]
Video: Router Nintendo Wifi: 17 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Folosind o carcasă veche Nintendo Entertainment, produceți un router acasă extrem de funcțional folosind un RaspberryPI 3!
Pasul 1: Instalați software-ul RaspberryPi necesar
Discul dur intermitent RaspberriPi / Instalarea software-ului necesar (folosind Ubuntu Linux)
Descărcați „RASPBIAN JESSIE LITE”
Creați noul dvs. hard disk pentru DashboardPI
Introduceți microSD-ul pe computer prin intermediul adaptorului USB și creați imaginea discului folosind comanda dd
Localizați cardul microSD introdus prin comanda df -h, demontați-l și creați imaginea discului cu comanda dd copy copy dd
$ df -h / dev / sdb1 7.4G 32K 7.4G 1% / media / XXX / 1234-5678
$ umount / dev / sdb1
Atenție: asigurați-vă că comanda este complet precisă, cu această comandă puteți deteriora alte discuri
if = locația fișierului imagine RASPBIAN JESSIE LITE a = locația cardului dvs. microSD
$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (notă: în acest caz, este / dev / sdb, / dev / sdb1 era o partiție fabrică existentă pe microSD) Configurarea RaspberriPi
Introduceți noul card microSD în raspberrypi și porniți-l cu un monitor conectat la portul HDMI
Autentificare
utilizator: pi pass: raspberry Schimbați parola contului pentru securitate
sudo passwd pi Activați opțiunile avansate RaspberriPi
sudo raspi-config Alegeți: 1 Extindeți sistemul de fișiere
9 Opțiuni avansate
A2 Hostname schimbați-l în „NESRouter”
A4 SSH Activați serverul SSH
A7 I2C Activați interfața i2c Activați tastatura engleză / SUA
sudo nano / etc / default / keyboard Schimbați următoarea linie: XKBLAYOUT = "noi" Configurați comanda directorului simplu l [opțional]
vi ~ /.bashrc
adăugați următoarea linie:
alias l = 'ls -lh'
sursă ~ /.bashrc Remediați evidențierea sintaxei implicite VIM [opțional]
sudo vi / etc / vim / vimrc
decomentați următoarea linie:
sintaxă pe Reporniți PI pentru a obține cele mai recente modificări
reboot Actualizați setările pentru fusul orar local
sudo dpkg-reconfigure tzdata selectați fusul orar folosind interfața
Pasul 2: Crearea punctului de acces WiFi
Rețineți, înainte ca acesta să devină un router, conectăm RaspberryPi la o rețea existentă prin portul său Ethernet pentru a instala următoarele pachete
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
Adăugați următoarea linie:
denyinterfaces wlan0 sudo vi / etc / network / interfaces
Editați secțiunea wlan0 astfel încât să arate astfel:
auto lo iface lo inet loopback
iface eth0 inet manual
auto wlan0 iface wlan0 inet adresa statică 10.0.10.1 netmask 255.255.255.0 rețea 10.0.10.0 transmis 10.0.10.255
auto eth1 iface eth1 inet adresa statică 10.0.20.1 netmask 255.255.255.0 rețea 10.0.20.0 transmis 10.0.20.255 Reîncărcați serverul DHCP și săriți configurația pentru conexiunile eth0 și wlan0
sudo service dhcpcd restart
sudo ifdown eth0; sudo ifup wlan0
Configurați HOSTAPD (Schimbați ssid și wpa_passphrase la valorile pe care le alegeți)
sudo vi /etc/hostapd/hostapd.conf
# Acesta este numele interfeței WiFi pe care am configurat-o mai sus interface = wlan0
# Utilizați driverul nl80211 cu driverul driverului brcmfmac = nl80211
# Acesta este numele rețelei ssid = NintendoWiFi
# Utilizați banda de 2,4 GHz hw_mode = g
# Utilizați canalul 6 canal = 6
# Activați 802.11n ieee80211n = 1
# Activați WMM wmm_enabled = 1
# Activați canale de 40 MHz cu interval de protecție 20ns ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]
# Acceptați toate adresele MAC macaddr_acl = 0
# Utilizați autentificarea WPA auth_algs = 1
# Solicitați clienților să știe numele rețelei ignore_broadcast_ssid = 0
# Folosiți WPA2 wpa = 2
# Folosiți o cheie pre-partajată wpa_key_mgmt = WPA-PSK
# Expresia de acces la rețea wpa_passphrase = parolă
# Utilizați AES, în loc de TKIP rsn_pairwise = CCMP Putem verifica dacă funcționează în această etapă rulând (dar nu are încă conectivitate completă la internet):
sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf
sudo vi / etc / default / hostapd
Găsiți linia
# DAEMON_CONF = "" și înlocuiți-l cu
DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Configurează DNSMASQ
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf
bind-interfaces # Legați-vă la interfață pentru a ne asigura că nu trimitem lucruri în altă parte server = 8.8.8.8 # Redirecționați cereri DNS către domeniul DNS DNS necesar # Nu redirecționați nume scurte false-priv # Nu redirecționați niciodată adrese în -spatii de adrese trase.
# Atribuiți adrese IP cu timp de leasing infinit (pentru statistici de utilizare a dispozitivului) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, infinit dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, CONFIGURARE infinită IPV4 FORWARDING
sudo vi /etc/sysctl.conf
[necomentează] net.ipv4.ip_forward = 1
Activați-l imediat cu sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASCHERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED, STABILIT -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, STABILIT -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Salvați setările iptables pentru următoarea repornire
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"
Creați fișierul de reguli ipv4 (cu conținut nou)
sudo vi / lib / dhcpcd / dhcpcd-hooks / 70-ipv4-nat
iptables-restore </etc/iptables.ipv4.nat Restart Services
sudo service hostapd start sudo service dnsmasq start
reporniți sudo
Atribuirea adreselor IP statice [Opțional]
Dacă doriți ca gazdele din rețeaua dvs. să aibă IP-uri statice, folosiți următoarele
Achiziționați gazdele conectate în prezent prin DHCP vi /var/lib/misc/dnsmasq.leases
Adăugați adresa MAC (din ieșirea de mai sus) și adresa IP pe care doriți să le atribuiți sudo vi /etc/dnsmasq.conf
# desktop principal dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Notă: Aceasta va atribui interfața de rețea cu adresa MAC: 12: 34: 56: 78: 9a: bc la adresa IP 10.0.20.20. Adresa IP listată NU trebuie să fie în intervalul DHCP dat, doar pe aceeași subrețea. Desktopul meu principal de mai sus este pe subrețeaua eth1: 10.0.20.0, așa că i-am dat adresa IP din 10.0.20.20.
Adăugarea firewall UFW
sudo apt-get install ufw
Permiteți portul 22 pentru uz public (pentru acces la rețea de la distanță)
sudo ufw permit 22
Permiteți toate porturile din rețeaua mea locală
sudo ufw permit din 10.0.10.0/24 sudo ufw permit din 10.0.20.0/24
Permiteți porturilor web tuturor
sudo ufw permit 80
Permiteți tuturor porturi web securizate
sudo ufw permit 443
Activați UFW și verificați starea
sudo ufw --force enable
sudo ufw status
Remediați eroarea BUG cu UFW care nu pornește la pornire
sudo su crontab -e
Adăugați următoarea linie: @reboot / bin / sleep 60; ufw --force enable
Pasul 3: consumabile necesare: Nintendo vechi rupt
Vechiul Nintendo Case dintr-un NES spart (eliminați tot conținutul vechi din interiorul carcasei, lăsând doar cadrul exterior, butoanele de pornire / resetare și conexiunile controlerului)
Pasul 4: consumabile necesare: Raspberry Pi 3 Model B
Pasul 5: consumabile necesare: 1,44 "Serial: UART / I2C / SPI TFT LCD 128x128 Module Display
Pasul 6: consumabile necesare: 5V 0.1A Mini ventilator Raspberry Pi
Pasul 7: Consumabile necesare: Ugreen USB 2.0 la 10/100 Fast Ethernet Lan Adaptor de rețea cu fir
Pasul 8: Construcție
Instalați în interiorul NES
Folosind o imprimantă 3D tipăriți cadrul de afișare Digole „NESPanel” în / construction / display-frame / folder. [dacă nu aveți o imprimantă 3D, puteți tăia delicat o gaură pătrată pentru afișajul Digole cu un instrument Dremel] Tăiați următoarele găuri deschise în partea din spate și laterală a carcasei pentru a permite fixarea micului ventilator pe laterale și cablurile de alimentare / Ethernet și USB Ethernet pentru a intra prin spate.
Pasul 9: Const. Cont
Deșurubați panoul negru din dreapta sus de la NES și tăiați curat o gaură pătrată suficient de mare pentru a vă monta afișajul digol. Hot Lipiți afișajul în poziție cu rama imprimată 3D „NESPanel” deasupra acestuia.
Pasul 10: Cont
Montați RaspberryPi în mijlocul fundului carcasei NES goale, fixați-l cu lipici sau cu un șurub mic prin fund. Folosind un rezistor de 270 ohmi, conectați „LED-ul de alimentare” al NES la pinii 5V și GND din Raspberry Pi (cablul cu LED scurt este solul). Conectați ventilatorul mic la pinii de 5V și GND pentru a-l rula la pornirea unității, lipiți ventilatorul de gaura din lateral pentru acesta.
Pasul 11: Conectarea ecranului Digole
Conectați următorii pini la pinii de pe RaspberryPi
VCC este conectat la 3v GND este la masă DATA este SDA CLOCK este SCL Acum ar trebui să vedeți dispozitivul în comanda i2cdetect
i2cdetect -y 1 ar trebui să apară în grila de text ca 27
Pasul 12: Instalați instrumentele de monitorizare a rețelei și înregistrarea bazei de date
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
Adăugați următoarea linie la sfârșitul fișierului: local all pi parola sudo -i -u postgres
psql
creați rolul pi parolă 'parolă aici';
alt rol pi login;
alter rol superutilizator;
du
(ar trebui să vă vedeți utilizatorul PI cu permisiunile acordate) creați baze de date statistici_rețea;
q
Ieșire
psql -d statistici_rețea
Rulați următoarele interogări:
CREATE TABLE traffic_per_minute (id serial, timestamp orar fără fus orar NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);
CREARE UNIQUE INDEX time_idx ON traffic_per_minute (time); Copiați folderul „jurnalizare” de cod din acest proiect în directorul principal al RPi
crontab -e
Adăugați această linie
@reboot / bin / sleep 60; nohup python /home/pi/logging/networkUsage.py> / dev / null 2> & 1
Pasul 13: Instalați raportul de rezumat al traficului (rulează la fiecare 5 minute de Cronjob)
crontab -e
adăugați următoarea linie
* / 5 * * * * python /home/pi/logging/trafficSummary.py
Pasul 14: Instalați ecranul tabloului de bord
Copiați folderul de „afișare” de cod din acest proiect în directorul principal al RPi
Rulați-l după cum urmează
$ python /home/pi/display/NESRouter.py Configurați scriptul de afișare pentru a rula la pornire
crontab -e
Adăugați această linie
@reboot nohup python /home/pi/display/NESRouter.py> / dev / null 2> & 1
Verificați dacă afișajul începe să funcționeze la repornire
reporniți sudo
Pasul 15: Instalați site-ul de utilizare locală / statistici [https://10.0.10.1]
Instalați site-ul local de utilizare / statistici [https://10.0.10.1]
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install apache2
sudo service apache2 reporniți
Eliminați paginile implicite
cd / var / www
sudo rm -rf html
Copiați folderul „webportal” din acest proiect în folderul de acasă de pe RPi și creați link-ul simbolic pentru apache
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
Activați Python CGI Scripting
Adăugați în interiorul etichetei
Opțiuni + ExecCGI AddHandler cgi-script.py sudo service apache2 restart
Acum puteți vizita site-ul HTTP local [https://10.0.10.1]
Configurați monitorizarea avansată a rețelei (prin 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ți cu următorul conținut:
# Variabile globale
# IPFM poate monitoriza un singur dispozitiv. DISPOZITIV eth0
# JURNAL DE CONFIGURARE LOGGING GLOBAL
FILENAME "/ var / log / ipfm /% Y_% d_% m /% H_% M"
# jurnal în fiecare minut DUMP FIECARE 1 minut
# statistici clare în fiecare zi ȘTERGEȚI FIECARE 24 de ore SORT IN RESOLVE sudo service ipfm start
OPȚIONAL: Crearea propriilor imagini Nintendo pentru a fi redate pe ecran
Încărcați propriul fișier 128x128 la următoarea adresă URL:
www.digole.com/tools/PicturetoC_Hex_convert…
Alegeți fișierul imagine pentru încărcare, adăugați ce dimensiune doriți să fie pe ecran (Lățime / Înălțime)
Selectați „256 Color for Color OLED / LCD (1 byte / pixel)” în meniul derulant „Used for”
Obțineți ieșirea hexagonală.
Adăugați ieșirea hexagonală la un fișier display / build / header (.h), utilizați-le pe celelalte ca ghiduri pentru sintaxă.
Includeți noul fișier în fișierul digole.c #include myimage.h
Includeți un nou cârlig de linie de comandă la fișierul dvs. imagine în. Notă: comanda de mai jos spune desenează-ți imaginea în poziția de 10 pixeli peste 10 pixeli în jos. Puteți să o schimbați la diferite coordonate X, Y, de asemenea, puteți schimba valorile 128, 128 la orice dimensiune este de fapt noua dvs. imagine.
} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere este definit în fișierul dvs. (.h)}
Acum reconstruiți (ignorați erorile) de mai jos pentru a reda noua imagine cu următoarea comandă.
$./digole myimage Reconstruire [Inclus] Driver de afișare Digole pentru modificările opționale
$ cd display / build $ gcc digole.c $ mv a.out../../digole $ chmod + x../../digole
Recomandat:
UPS pentru router WiFi V4: 6 pași (cu imagini)
UPS pentru WiFi Router V4: Bună tuturor, cu o muncă sporită de acasă, cu toții dorim să lucrăm neîntrerupt, întreruperea alimentării cu energie electrică este foarte frecventă în India .. Multe apartamente au instalat generatoare de rezervă, care pornesc în câteva secunde de la întreruperea alimentării. întreruperea alimentării este pentru f
Router Ups V2: 6 pași (cu imagini)
Router Ups V2: Bună tuturor, cu câteva luni în urmă îmi făcusem primul UPS pentru Routere folosind bateria litiu-ion 18650, făcusem două UPS-uri, unul pentru routerul meu și unul pentru convertorul meu de fibre. A fost puțin mizerie cu două adaptoare de alimentare. Era în lista mea de a face un singur UPS cu
UPS DIY pentru router WiFi: 4 pași (cu imagini)
UPS-uri DIY pentru router WiFi: există deja aproximativ 50 de miliarde de dispozitive conectate la internet în întreaga lume. Prin urmare, conectivitatea la Internet este coloana vertebrală pentru a conduce această lume în mișcare rapidă. Totul, de la piața financiară la telemedicină, depinde de internet. Gena mai tânără
Utilizați Raspberry Pi 3 ca router: 10 pași (cu imagini)
Utilizați Raspberry Pi 3 ca router: Conform Wikipedia, un router este un dispozitiv de rețea care transmite pachete de date între rețelele de calculatoare. Dacă dărâmăm un router wireless, probabil că vom găsi un procesor specific aplicației care gestionează pachetele de date și un segment RF care
Adăugați un tahometru optic bazat pe Arduino la un router CNC: 34 de pași (cu imagini)
Adăugați un tahometru optic bazat pe Arduino la un router CNC: Construiți un indicator RPM optic pentru routerul CNC cu un Arduino Nano, un senzor IR LED / IR Photodiode și un afișaj OLED pentru mai puțin de 30 USD. M-am inspirat din Măsurarea RPM a lui eletro18 - Tahometru optic instructabil și am vrut să adaug un tahometru