Talaan ng mga Nilalaman:

Nintendo Wifi Router: 17 Hakbang (na may Mga Larawan)
Nintendo Wifi Router: 17 Hakbang (na may Mga Larawan)

Video: Nintendo Wifi Router: 17 Hakbang (na may Mga Larawan)

Video: Nintendo Wifi Router: 17 Hakbang (na may Mga Larawan)
Video: TWO-EYED CAMERA SURPRISED AFTER UPDATE!!! 2024, Nobyembre
Anonim
Nintendo Wifi Router
Nintendo Wifi Router

Gamit ang isang Old Nintendo Entertainment system case, gumawa ng isang highly functional home router gamit ang isang RaspberryPI 3!

Hakbang 1: I-install ang Kinakailangan na RaspberryPi Software

Flashing RaspberriPi Hard Disk / I-install ang Kinakailangan na Software (Paggamit ng Ubuntu Linux)

I-download ang "RASPBIAN JESSIE LITE"

Lumikha ng iyong bagong hard disk para sa DashboardPI

Ipasok ang microSD sa iyong computer sa pamamagitan ng USB adapter at likhain ang imahe ng disk gamit ang dd command

Hanapin ang iyong ipinasok na microSD card sa pamamagitan ng df -h command, i-unmount ito at likhain ang imahe ng disk gamit ang disk copy dd command

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

$ umount / dev / sdb1

Pag-iingat: siguraduhin na ang utos ay ganap na tumpak, maaari mong mapinsala ang iba pang mga disk sa utos na ito

kung = lokasyon ng RASPBIAN JESSIE LITE file ng imahe ng = lokasyon ng iyong microSD card

$ sudo dd bs = 4M kung = / path / to / raspbian-jessie-lite.img ng = / dev / sdb (tala: sa kasong ito, ito ay / dev / sdb, / dev / sdb1 ay isang mayroon nang partisyon ng pabrika sa microSD) Pagse-set up ng iyong RaspberriPi

Ipasok ang iyong bagong microSD card sa raspberrypi at paganahin ito gamit ang isang monitor na konektado sa HDMI port

Mag log in

gumagamit: pi pass: raspberry Palitan ang password ng iyong account para sa seguridad

sudo passwd pi Paganahin ang RaspberriPi Advanced na Mga Pagpipilian

sudo raspi-config Piliin ang: 1 Palawakin ang System ng File

9 Mga advanced na pagpipilian

Palitan ito ng A2 Hostname sa "NESRouter"

A4 SSH Paganahin ang SSH Server

A7 I2C Paganahin ang i2c interface Paganahin ang English / US Keyboard

sudo nano / etc / default / keyboard Baguhin ang sumusunod na linya: XKBLAYOUT = "us" I-setup ang simpleng direktoryo l utos [opsyonal]

vi ~ /.bashrc

idagdag ang sumusunod na linya:

alyas l = 'ls -lh'

pinagmulan ~ /.bashrc Fix VIM default syntax highlight ng [opsyonal]

sudo vi / etc / vim / vimrc

i-komento ang sumusunod na linya:

syntax sa I-reboot ang iyong PI upang makuha ang pinakabagong mga pagbabago

i-reboot ang I-update ang mga lokal na setting ng timezone

sudo dpkg-reconfigure tzdata piliin ang iyong timezone gamit ang interface

Hakbang 2: Paglikha ng WiFi Access Point

Mangyaring tandaan, bago ito maging isang router nagsasaksak kami sa RaspberryPi sa isang mayroon nang network sa pamamagitan ng ethernet port upang mai-install ang mga sumusunod na package

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

sudo apt-get install dnsmasq hostapd vim

sudo apt-get install vim git python-smbus i2c-tool python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

Idagdag ang sumusunod na linya:

denyinterfaces wlan0 sudo vi / etc / network / interface

I-edit ang seksyon ng wlan0 upang ganito ang hitsura:

auto lo iface lo inet loopback

manu-manong iface eth0 inet

auto wlan0 iface wlan0 inet static address 10.0.10.1 netmask 255.255.255.0 network 10.0.10.0 broadcast 10.0.10.255

auto eth1 iface eth1 inet static address 10.0.20.1 netmask 255.255.255.0 network 10.0.20.0 broadcast 10.0.20.255 Reload DHCP Server at bounce ang pagsasaayos para sa mga koneksyon sa eth0 at wlan0

sudo service dhcpcd restart

sudo ifdown eth0; sudo ifup wlan0

I-configure ang HOSTAPD (Baguhin ang ssid at wpa_passphrase sa mga halagang pinili mo mismo)

sudo vi /etc/hostapd/hostapd.conf

# Ito ang pangalan ng interface ng WiFi na na-configure namin sa itaas ng interface = wlan0

# Gamitin ang driver ng nl80211 gamit ang driver ng driver ng brcmfmac = nl80211

# Ito ang pangalan ng network ssid = NintendoWiFi

# Gamitin ang 2.4GHz band hw_mode = g

# Gumamit ng channel 6 channel = 6

# Paganahin ang 802.11n ieee80211n = 1

# Paganahin ang WMM wmm_enified = 1

# Paganahin ang 40MHz na mga channel na may 20ns na agwat ng bantay ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Tanggapin ang lahat ng mga MAC address macaddr_acl = 0

# Gumamit ng pagpapatotoo ng WPA auth_algs = 1

# Atasan ang mga kliyente na malaman ang pangalan ng network huwag pansinin_broadcast_ssid = 0

# Gumamit ng WPA2 wpa = 2

# Gumamit ng paunang pagbabahagi key na wpa_key_mgmt = WPA-PSK

# Ang passphrase ng network wpa_passphrase = password

# Gumamit ng AES, sa halip na TKIP rsn_pairwise = CCMP Maaari naming suriin kung gumagana ito sa yugtong ito sa pamamagitan ng pagpapatakbo (ngunit wala pang buong pagkakakonekta sa internet):

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

sudo vi / etc / default / hostapd

Hanapin ang linya

# DAEMON_CONF = "" at palitan ito ng

DAEMON_CONF = "/ etc / hostapd / hostapd.conf" I-configure ang DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interface # Bind sa interface upang matiyak na hindi kami nagpapadala ng mga bagay sa ibang lugar server = 8.8.8.8 # Ipasa ang mga kahilingan sa DNS sa kailangan ng domain ng Google DNS # Huwag ipasa ang mga maikling pangalan na bogus-priv # Huwag kailanman ipasa ang mga address sa hindi -rout na mga puwang ng address.

# Magtalaga ng mga IP address na w / walang katapusang oras ng pag-upa (para sa mga istatistika ng paggamit ng aparato) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, walang katapusang dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, walang katapusang I-SET UP IPV4 FORWARDING

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

I-activate agad ito sa 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

I-save ang mga setting ng iptable para sa susunod na pag-reboot

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

Lumikha ng file ng mga panuntunan ng ipv4 (na may mga bagong nilalaman)

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

iptables-restore </etc/iptables.ipv4.nat I-restart ang Mga Serbisyo

sudo service hostapd magsimula sudo service dnsmasq start

sudo reboot

Pagtatalaga ng Static IPs [Opsyonal]

Kung nais mong magkaroon ng mga static ip ang mga host sa iyong network mangyaring gamitin ang sumusunod

Ipaalam ang mga host na kasalukuyang konektado sa pamamagitan ng DHCP vi /var/lib/misc/dnsmasq.leases

Idagdag ang MAC Address (mula sa output sa itaas) at ang IP address na nais mong italaga sa kanila sa sudo vi /etc/dnsmasq.conf

# pangunahing desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Tandaan: Itatalaga nito ang interface ng network sa MAC Address: 12: 34: 56: 78: 9a: bc sa IP address 10.0.20.20. Ang nakalistang IP address ay HINDI dapat na nasa saklaw ng DHCP na ibinigay, sa parehong subnet lamang. Ang aking pangunahing desktop sa itaas ay nasa subnet eth1: 10.0.20.0, kaya binigyan ko ito ng IP Address na 10.0.20.20.

Pagdaragdag ng UFW Firewall

sudo apt-get install ufw

Payagan ang port 22 para sa pampublikong paggamit (para sa remote access sa network)

sudo ufw payagan ang 22

Payagan ang lahat ng mga port sa aking lokal na network

sudo ufw payagan mula 10.0.10.0/24 sudo ufw payagan mula 10.0.20.0/24

Payagan ang mga web port sa lahat

sudo ufw payagan ang 80

Payagan ang mga secure na web port sa lahat

sudo ufw payagan ang 443

Paganahin ang UFW at suriin ang katayuan

sudo ufw --pilitang paganahin

sudo ufw katayuan

Ayusin ang BUG sa UFW na hindi nagsisimula sa pagsisimula

sudo su crontab -e

Idagdag ang sumusunod na linya: @reboot / bin / sleep 60; ufw --force paganahin

Hakbang 3: Kailangan ng Mga Pantustos: Lumang Broken Nintendo

Kailangan ng Mga Pantustos: Lumang Broken Nintendo
Kailangan ng Mga Pantustos: Lumang Broken Nintendo

Lumang Nintendo Case mula sa isang sirang NES (alisin ang lahat ng mga lumang nilalaman sa loob ng kaso, naiwan lamang ang labas na frame, ang mga pindutan ng kapangyarihan / pag-reset at mga koneksyon ng controller)

Hakbang 4: Kailangan ng Mga Pantustos: Raspberry Pi 3 Model B

Kailangan ng Mga Pantustos: Raspberry Pi 3 Model B
Kailangan ng Mga Pantustos: Raspberry Pi 3 Model B

Hakbang 5: Kailangan ng Mga Pantustos: 1.44 "Serial: UART / I2C / SPI TFT LCD 128x128 Display Module

Kailangan ng Mga Pantustos: 1.44
Kailangan ng Mga Pantustos: 1.44
Kailangan ng Mga Pantustos: 1.44
Kailangan ng Mga Pantustos: 1.44

Hakbang 6: Kailangan ng Mga Kailangan: 5V 0.1A Mini Fan Raspberry Pi

Kailangan ng Mga Pantustos: 5V 0.1A Mini Fan Raspberry Pi
Kailangan ng Mga Pantustos: 5V 0.1A Mini Fan Raspberry Pi

Hakbang 7: Kailangan ng Mga Kailangan: Ugreen USB 2.0 hanggang 10/100 Mabilis na Ethernet Lan Wired Network Adapter

Kailangan ng Mga Pantustos: Ugreen USB 2.0 hanggang 10/100 Mabilis na Ethernet Lan Wired Network Adapter
Kailangan ng Mga Pantustos: Ugreen USB 2.0 hanggang 10/100 Mabilis na Ethernet Lan Wired Network Adapter

Hakbang 8: Konstruksiyon

Konstruksyon
Konstruksyon

I-install sa loob ng NES

Gamit ang isang 3D printer i-print ang Digole Display frame na "NESPanel" sa / konstruksyon / display-frame / folder. [kung wala kang isang 3D printer maaari mong delikadong i-cut ang isang parisukat na butas para sa Digole Display gamit ang isang tool na Dremel] Gupitin ang mga sumusunod na butas na bukas sa likod at gilid ng kaso upang payagan ang maliit na bentilador na ikabit sa sa gilid at ang mga power / ethernet at USB ethernet cable upang makapasok sa likuran.

Hakbang 9: Konstruksiyon Cont

Cont Cont
Cont Cont

Alisan ng takip ang kanang tuktok na itim na panel mula sa NES at malinis na gupitin ang isang malaking sapat na butas na parisukat upang mai-mount ang iyong digole display. Mainit na Pandikit ang display sa lugar na may naka-print na frame na "NESPanel" 3D sa tuktok nito.

Hakbang 10: Konstruksiyon Cont

Cont Cont
Cont Cont

I-mount ang RaspberryPi sa gitna ng ilalim ng walang laman na kaso ng NES, i-fasten ng pandikit o isang maliit na tornilyo sa ilalim. Gamit ang isang 270 ohm resister, ikonekta ang "power on LED" ng NES sa 5V at GND pin sa Raspberry Pi (maikling LED lead ay ang lupa). Ikonekta ang maliit na fan sa 5V at GND na mga pin pati na rin upang patakbuhin ito kapag nagsimula ang yunit, idikit ang fan sa butas sa gilid para dito.

Hakbang 11: Pagkonekta sa Digole Display

Ikonekta ang mga sumusunod na pin sa mga pin sa RaspberryPi

Ang VCC ay konektado sa 3v GND ay ground DATA ay SDA CLOCK ay SCL Ngayon dapat mong makita ang aparato sa iyong i2cdetect command

i2cdetect -y 1 dapat itong ipakita sa grid ng teksto bilang 27

Hakbang 12: Mag-install ng Mga Tool sa Pagsubaybay sa Network at Pag-log ng DB

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

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

Idagdag ang sumusunod na linya sa dulo ng file: lokal lahat ng pi password sudo -i -u postgres

psql

lumikha ng tungkulin pi password 'password dito';

baguhin ang papel na ginagampanan sa pag-login;

baguhin ang papel na ginagampanan pi superuser;

du

(dapat mong makita ang iyong gumagamit ng PI na may mga pahintulot na ipinagkaloob) lumikha ng database ng mga network_stats;

q

labasan

psql -d network_stats

Patakbuhin ang mga sumusunod na query:

GUMAWA NG TABLE traffic_per_minute (id serial, timestamp ng oras nang walang time zone HINDI NUL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

LUMIKHA NG NATATANGING INDEX oras_idx SA traffic_per_minute (oras); Kopyahin ang folder na "pag-log" ng code mula sa proyektong ito sa direktoryo sa bahay ng iyong RPi

crontab -e

Idagdag ang linyang ito

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

Hakbang 13: I-install ang Ulat sa Buod ng Trapiko (pinapatakbo ang bawat 5 Minuto ni Cronjob)

crontab -e

idagdag ang sumusunod na linya

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

Hakbang 14: I-install ang Dashboard Screen

Kopyahin ang "display" folder ng code mula sa proyektong ito sa direktoryo sa bahay ng iyong RPi

Patakbuhin ito tulad ng sumusunod

$ python /home/pi/display/NESRouter.py I-setup ang display script upang tumakbo sa pagsisimula

crontab -e

Idagdag ang linyang ito

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

I-verify na ang display ay nagsisimulang gumana sa pag-reboot

sudo reboot

Hakbang 15: I-install ang Website ng Lokal na Paggamit / mga istatistika [https://10.0.10.1]

I-install ang lokal na website ng paggamit / istatistika [https://10.0.10.1]

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

sudo apt-get install apache2

sudo service apache2 restart

Alisin ang mga default na pahina

cd / var / www

sudo rm -rf html

Kopyahin ang folder na 'webportal' mula sa proyektong ito sa iyong home folder sa iyong RPi at lumikha ng symlink para magamit ng 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/site-enified/000-default.conf

Paganahin ang Python CGI Scripting

Idagdag sa loob ng tag

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

Maaari mo nang bisitahin ang lokal na site na HTTP [https://10.0.10.1]

I-setup ang advanced na pagsubaybay sa network (sa pamamagitan ng IPFM)

sudo apt-get update

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Lumikha gamit ang mga sumusunod na nilalaman:

# Mga variable sa mundo

Maaari lamang subaybayan ng # IPFM ang isang aparato. DEVICE eth0

# GLOBAL LOGGING CONFIGURATION LOG

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

# mag-log bawat minuto DUMP LAHAT ng 1 minuto

# malinaw na mga istatistika bawat araw MALINAW ANG BAWAT 24 na oras Sort SA RESOLVE sudo serbisyo ipfm magsimula

OPSYONAL: Lumilikha ng iyong sariling mga imaheng Nintendo upang mai-render sa display

Mag-upload ng iyong sariling 128x128 file sa sumusunod na URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Piliin ang iyong file ng imahe upang mai-upload, idagdag kung anong laki ang nais mong maging sa screen (Lapad / Taas)

Piliin ang "256 Kulay para sa Kulay OLED / LCD (1 byte / pixel)" sa dropdown na "Ginamit para sa"

Kunin ang hex output.

Idagdag ang hex output sa isang display / build / header (.h) file, gamitin ang iba pa bilang mga gabay para sa syntax.

Isama ang bagong file sa digole.c file # isama ang myimage.h

Magsama ng isang bagong utos ng linya ng utos sa iyong file ng imahe sa. Tandaan: sinasabi ng utos sa ibaba na iguhit ang iyong imahe sa posisyon na 10 pixel na higit sa 10 mga pixel pababa. Maaari mo itong palitan sa iba't ibang mga X, Y coordinate, maaari mo ring baguhin ang mga halagang 128, 128 sa kung anumang laki talaga ng iyong bagong imahe.

} iba pa kung (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere ay tinukoy sa iyong (.h) file}

Muling itayo (huwag pansinin ang mga error) sa ibaba upang maibigay ang iyong bagong imahe sa sumusunod na utos.

$./digole myimage Re-Building [Kasamang] Digole Display Driver para sa iyong mga opsyonal na pagbabago

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

Hakbang 16: Tapos na

Inirerekumendang: