Բովանդակություն:

Nintendo Wifi երթուղիչ. 17 քայլ (նկարներով)
Nintendo Wifi երթուղիչ. 17 քայլ (նկարներով)

Video: Nintendo Wifi երթուղիչ. 17 քայլ (նկարներով)

Video: Nintendo Wifi երթուղիչ. 17 քայլ (նկարներով)
Video: Masterclass: Perfecting Your Home Wireless Network - Episode 2 2024, Նոյեմբեր
Anonim
Nintendo Wifi երթուղիչ
Nintendo Wifi երթուղիչ

Օգտագործելով Old Nintendo Entertainment համակարգի պատյան, արտադրեք բարձր ֆունկցիոնալ տնային երթուղիչ ՝ օգտագործելով RaspberryPI 3:

Քայլ 1: Տեղադրեք անհրաժեշտ RaspberryPi ծրագրակազմը

Flashրամեկուսացման RaspberriPi կոշտ սկավառակ / Տեղադրեք անհրաժեշտ ծրագրակազմ (օգտագործելով Ubuntu Linux)

Ներբեռնեք «RASPBIAN JESSIE LITE»

Ստեղծեք ձեր նոր կոշտ սկավառակը DashboardPI- ի համար

Տեղադրեք microSD- ը ձեր համակարգչին USB ադապտերի միջոցով և ստեղծեք սկավառակի պատկերը ՝ օգտագործելով dd հրամանը

Տեղադրեք տեղադրված microSD քարտը df -h հրամանի միջոցով, ապամոնտաժեք այն և ստեղծեք սկավառակի պատկերը սկավառակի պատճենը dd հրամանով

$ df -h/dev/sdb1 7.4G 32K 7.4G 1%/մեդիա/XXX/1234-5678

$ umount /dev /sdb1

Caգուշացում. Համոզվեք, որ հրամանը լիովին ճշգրիտ է: Այս հրամանով կարող եք վնասել այլ սկավառակներ

if = RASPBIAN JESSIE LITE պատկերի ֆայլի գտնվելու վայրը = ձեր microSD քարտի գտնվելու վայրը

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of =/dev/sdb (նկատողություն. այս դեպքում դա/dev/sdb,/dev/sdb1- ը գոյություն ունեցող գործարանային միջնապատ էր microSD) Ձեր RaspberriPi- ի կարգավորում

Տեղադրեք ձեր նոր microSD քարտը ազնվամորիին և միացրեք այն HDMI պորտին միացված մոնիտորով

Մուտք

օգտվող: pi pass: raspberry Անվտանգության համար փոխեք ձեր հաշվի գաղտնաբառը

sudo passwd pi Միացնել RaspberriPi առաջադեմ ընտրանքները

sudo raspi-config Ընտրել ՝ 1 ընդլայնել ֆայլային համակարգը

9 Ընդլայնված ընտրանքներ

A2 սերվերի անունը փոխեք այն «NESRouter» - ի

A4 SSH Միացնել SSH սերվերը

A7 I2C Միացնել i2c ինտերֆեյսը Միացնել անգլերեն/ԱՄՆ ստեղնաշարը

sudo nano/etc/default/ստեղնաշար Փոխեք հետևյալ տողը. XKBLAYOUT = "մենք" Կարգավորեք պարզ գրացուցակը l հրաման [ըստ ցանկության]

vi ~/.bashrc

ավելացնել հետևյալ տողը.

կեղծանուն l = 'ls -lh'

աղբյուր ~/.bashrc Ուղղել VIM- ի կանխադրված շարահյուսության ընդգծում [ըստ ցանկության]

sudo vi/etc/vim/vimrc

մեկնաբանել հետևյալ տողը.

շարահյուսություն Վերագործարկեք ձեր PI- ն ՝ վերջին փոփոխությունները ստանալու համար

վերագործարկեք Թարմացրեք ժամային գոտու տեղական կարգավորումները

sudo dpkg-reconfigure tzdata ընտրեք ձեր ժամային գոտին ՝ օգտագործելով ինտերֆեյսը

Քայլ 2: Ստեղծեք WiFi մուտքի կետ

Խնդրում ենք նկատի ունենալ, մինչև սա երթուղիչ դառնա, մենք RaspberryPi- ն միացնում ենք գոյություն ունեցող ցանցին իր ethernet պորտի միջոցով `հետևյալ փաթեթները տեղադրելու համար

sudo apt-get թարմացում && sudo apt-get -y բարելավում

sudo apt-get տեղադրել dnsmasq hostapd vim

sudo apt-get տեղադրել 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

Ավելացնել հետևյալ տողը.

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Խմբագրել wlan0 բաժինը, որպեսզի այն ունենա հետևյալ տեսքը.

auto lo iface lo inet loopback

iface eth0 inet ձեռնարկ

auto wlan0 iface wlan0 inet ստատիկ հասցե 10.0.10.1 ցանցային դիմակ 255.255.255.0 ցանց 10.0.10.0 հեռարձակում 10.0.10.255

auto eth1 iface eth1 inet ստատիկ հասցե 10.0.20.1 ցանցային դիմակ 255.255.255.0 ցանց 10.0.20.0 հեռարձակում 10.0.20.255 Վերբեռնել DHCP սերվերը և վերադարձնել eth0 և wlan0 կապերի կազմաձևերը

sudo ծառայության dhcpcd վերագործարկում

sudo ifdown eth0; sudo ifup wlan0

Կարգավորել HOSTAPD- ը (փոխել ssid- ը և wpa_passphrase- ը ձեր իսկ ընտրած արժեքներին)

sudo vi /etc/hostapd/hostapd.conf

# Սա WiFi- ի միջերեսի անունն է, որը մենք կազմաձևել ենք վերևում `ինտերֆեյս = wlan0

# Օգտագործեք nl80211 վարորդը brcmfmac վարորդի վարորդով = nl80211

# Սա ցանցի անունն է ssid = NintendoWiFi

# Օգտագործեք 2.4 ԳՀց հաճախականություն hw_mode = g

# Օգտագործեք 6 -րդ ալիք = 6

# Միացնել 802.11n ieee80211n = 1

# Միացնել WMM wmm_enabled = 1

# Միացնել 40 ՄՀց ալիքներ ՝ 20ns պաշտպանական միջակայքով ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Ընդունեք բոլոր MAC հասցեները macaddr_acl = 0

# Օգտագործել WPA- ի իսկությունը authentic_algs = 1

# Պահանջեք հաճախորդներից իմանալ ցանցի անունը ignore_broadcast_ssid = 0

# Օգտագործեք WPA2 wpa = 2

# Օգտագործեք նախապես կիսված բանալին wpa_key_mgmt = WPA-PSK

# Theանցի գաղտնաբառ wpa_passphrase = գաղտնաբառ

# Օգտագործեք AES, TKIP- ի փոխարեն rsn_pairwise = CCMP

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

sudo vi/etc/default/hostapd

Գտեք գիծը

#DAEMON_CONF = "" և փոխարինեք դրանով

DAEMON_CONF = "/etc/hostapd/hostapd.conf" Կարգավորել DNSMASQ- ը

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Միացեք միջերեսին ՝ համոզվելու համար, որ մենք այլուր բաներ չենք ուղարկում սերվեր = 8.8.8.8 # DNS հարցումները փոխանցեք Google DNS տիրույթի կարիքը -ուղղորդված հասցեների բացատներ:

# Հանձնարարեք IP հասցեներ անսահման վարձակալությամբ (սարքի օգտագործման վիճակագրության համար) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, անսահման dhcp-range = eth1, 10.0.20.100, 10.0: 20.200, 255.255.255.0, 10.0.20.255, անսահման SET UP IPV4 FORWARDING

sudo vi /etc/sysctl.conf

[մեկնաբանություն] net.ipv4.ip_forward = 1

Անմիջապես ակտիվացրեք այն sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward" միջոցով

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

sudo iptables -ԱՌԱՅՈԹՅՈՆ -i eth0 -o eth1 -m նահանգ -պետություն ԿԱՊ, ՀԻՄՆԱՎՈՐՎԱj -j ԸՆԴՈՆԵԼ

sudo iptables -A FORWARD -i eth1 -o eth0 -j ԸՆԴՈՆԵԼ

sudo iptables -A FORWARD -i eth0 -o wlan0 -m նահանգ -պետություն ԿԱՊ, ՀԻՄՆԱՎՈՐՎԱj -j ԸՆԴՈՆԵԼ

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ԸՆԴՈՆԵԼ

Պահպանեք iptables- ի կարգավորումները հաջորդ վերագործարկման համար

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

Ստեղծեք ipv4 կանոնների ֆայլ (նոր բովանդակությամբ)

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

iptables-restore </etc/iptables.ipv4.nat Վերագործարկեք ծառայությունները

sudo ծառայություն hostapd start sudo ծառայություն dnsmasq սկիզբ

sudo վերագործարկում

Ստատիկ IP- ների նշանակում [ըստ ցանկության]

Եթե ցանկանում եք, որ ձեր ցանցի տանտերերն ունենան ստատիկ ips, օգտագործեք հետևյալը

Ձեռք բերեք ներկայումս DHCP vi /var/lib/misc/dnsmasq.leases- ի միջոցով միացված տանտերերին

Ավելացրեք MAC հասցեն (վերևի ելքից) և IP հասցեն, որը ցանկանում եք դրանք վերագրել sudo vi /etc/dnsmasq.conf

# հիմնական աշխատասեղան dhcp-host = 12: 34: 56: 78: 9a: մ.թ., 10.0.20.20 Նշում. Սա ցանցի ինտերֆեյսը կնշանակի MAC հասցեով ՝ 12: 34: 56: 78: 9 ա: մ.թ.ա. IP հասցեով 10.0.20.20. Թվարկված IP հասցեն ՊԵՏՔ չէ, որ տրված DHCP տիրույթում լինի, պարզապես նույն ենթացանցում: Վերևում իմ հիմնական աշխատասեղանը ենթաօրենսդրական ցանցում է `eth1: 10.0.20.0, ուստի ես նրան տվեցի 10.0.20.20 IP հասցե:

UFW Firewall- ի ավելացում

sudo apt-get տեղադրել ufw

Թույլատրել 22 -րդ նավահանգիստը հանրային օգտագործման համար (հեռակա ցանցի հասանելիության համար)

sudo ufw թույլատրել 22

Թույլատրել իմ տեղական ցանցի բոլոր նավահանգիստները

sudo ufw թույլատրել 10.0.10.0/24 -ից sudo ufw թույլատրել 10.0.20.0/24 -ից

Թույլատրել վեբ պորտերը բոլորին

sudo ufw թույլատրել 80

Թույլատրել բոլորին ապահով վեբ պորտեր

sudo ufw թույլատրել 443

Միացրեք UFW- ը և ստուգեք կարգավիճակը

sudo ufw -ուժը միացնել

sudo ufw կարգավիճակ

Ուղղել BUG- ը UFW- ի հետ, որը չի սկսվում գործարկման ժամանակ

sudo su crontab -e

Ավելացրեք հետևյալ տողը ՝ @reboot /bin /sleep 60; ufw -ուժի միացում

Քայլ 3. Անհրաժեշտ պարագաներ. Old Broken Nintendo

Անհրաժեշտ պարագաներ. Old Broken Nintendo
Անհրաժեշտ պարագաներ. Old Broken Nintendo

Հին Nintendo պատյան ՝ կոտրված NES- ից (հեռացրեք պատյանի ներսում եղած բոլոր հին պարունակությունները ՝ թողնելով միայն արտաքին շրջանակը, հոսանքի / վերակայման կոճակները և վերահսկիչի միացումները)

Քայլ 4. Անհրաժեշտ պարագաներ. Ազնվամորի Pi 3 մոդել B

Անհրաժեշտ պարագաներ ՝ Ազնվամորի Պի 3 մոդել B
Անհրաժեշտ պարագաներ ՝ Ազնվամորի Պի 3 մոդել B

Քայլ 5: Անհրաժեշտ պարագաներ ՝ 1.44 "Սերիա. UART/I2C/SPI TFT LCD 128x128 Displayուցադրման մոդուլ

Անհրաժեշտ պարագաներ ՝ 1.44
Անհրաժեշտ պարագաներ ՝ 1.44
Անհրաժեշտ պարագաներ ՝ 1.44
Անհրաժեշտ պարագաներ ՝ 1.44

Քայլ 6. Պահանջվող պարագաներ. 5V 0.1A Mini Fan Raspberry Pi

Անհրաժեշտ պարագաներ. 5V 0.1A Mini Fan Raspberry Pi
Անհրաժեշտ պարագաներ. 5V 0.1A Mini Fan Raspberry Pi

Քայլ 7: Անհրաժեշտ պարագաներ. Ugreen USB 2.0 -ից 10/100 արագ Ethernet LAN լարային ցանցի ադապտեր

Անհրաժեշտ պարագաներ. Ugreen USB 2.0 -ից մինչև 10/100 արագ Ethernet LAN լարային ցանցի ադապտեր
Անհրաժեշտ պարագաներ. Ugreen USB 2.0 -ից մինչև 10/100 արագ Ethernet LAN լարային ցանցի ադապտեր

Քայլ 8: Շինարարություն

Շինարարություն
Շինարարություն

Տեղադրեք NES- ի ներսում

3D տպիչի միջոցով տպեք Digole Display «NESPanel» շրջանակը/construction/display-frame/թղթապանակում: [եթե դուք չունեք 3D տպիչ, կարող եք նրբորեն կտրել Digole Display- ի համար քառակուսի անցք Dremel գործիքով] Կտրեք հետևյալ անցքերը բացեք պատյանի հետևի և կողային մասերում, որպեսզի փոքր օդափոխիչը ամրացվի սալիկի վրա: կողային և հոսանքի/ethernet և USB ethernet մալուխները ՝ հետևի մասից մուտք գործելու համար:

Քայլ 9. Շինարարության շարունակություն:

Շինարարություն Շարունակ
Շինարարություն Շարունակ

Պտուտակեք վերին աջ վահանակը NES- ից և մաքուր կտրեք բավականաչափ մեծ քառակուսի անցք `ձեր դիջոլի էկրանը տեղադրելու համար: Թեժ կպցրեք ցուցադրումը տեղում, որի վերևում տեղադրված է «NESPanel» 3D տպված շրջանակը:

Քայլ 10. Շինարարության շարունակություն:

Շինարարություն Շարունակ
Շինարարություն Շարունակ

Տեղադրեք RaspberryPi- ն դատարկ NES պատյան ներքևի մասի մեջ, ամրացրեք սոսինձով կամ ներքևի փոքր պտուտակով: Օգտագործելով 270 օհմ դիմադրիչ, միացրեք NES- ի «սնուցող LED» - ը Raspberry Pi- ի 5V և GND կապանքներին (կարճ LED կապարը գետնին է): Միացրեք փոքր օդափոխիչը նաև 5V և GND կապումներին, որպեսզի այն աշխատի, երբ սարքը գործարկվի, սոսնձեք երկրպագուն դրա կողքի անցքի դեմ:

Քայլ 11. Digole Display- ի միացում

Հետևյալ կապումները միացրեք RaspberryPi- ի կապումներին

VCC- ն միացված է 3v

i2cdetect -y 1 այն պետք է ցուցադրվի տեքստի ցանցում որպես 27

Քայլ 12: Տեղադրեք ցանցի մոնիտորինգի գործիքներ և DB գրանցում

sudo apt-get տեղադրել ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2

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

Ֆայլի վերջում ավելացրեք հետևյալ տողը. Տեղական բոլոր pi գաղտնաբառ sudo -i -u postgres

psql

ստեղծել role pi գաղտնաբառ 'գաղտնաբառ այստեղ';

փոխել դերը pi մուտքում;

փոխել դերը pi superuser;

du

(դուք պետք է տեսնեք ձեր PI օգտվողին `տրված թույլտվություններով) տվյալների բազայի ստեղծում network_stats;

ք

ելք

psql -d network_stats

Գործարկեք հետևյալ հարցումները.

ՍՏԵԵԼ ՍԵABԱՆԻ երթեւեկություն_ րոպե_ (id սերիա, ժամային նշան առանց ժամային գոտու NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

ՍՏԵԵԼ ԵՐԿԻՐ INDEX time_idx ON traffic_per_minute (ժամանակ); Այս նախագծից պատճենեք «մուտքագրման» կոդի թղթապանակը ձեր RPi- ի տնային գրացուցակում

crontab -e

Ավելացրեք այս տողը

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

Քայլ 13. Տեղադրեք երթևեկի ամփոփ հաշվետվությունը (աշխատում է Cronjob- ի կողմից յուրաքանչյուր 5 րոպեն մեկ)

crontab -e

ավելացնել հետևյալ տողը

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

Քայլ 14: Տեղադրեք վահանակի էկրանը

Այս նախագծից պատճենեք «ցուցադրել» կոդի թղթապանակը ձեր RPi- ի տնային գրացուցակում

Գործարկեք այն հետևյալ կերպ

$ python /home/pi/display/NESRouter.py Կարգավորեք ցուցադրման սկրիպտը գործարկման ժամանակ

crontab -e

Ավելացրեք այս տողը

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

Ստուգեք, որ էկրանը սկսում է աշխատել վերագործարկման ժամանակ

sudo վերագործարկում

Քայլ 15: Տեղադրեք Տեղական օգտագործման/վիճակագրության կայքը [https://10.0.10.1]

Տեղադրեք տեղական օգտագործման/վիճակագրության կայքը [https://10.0.10.1]

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

sudo apt-get տեղադրել apache2

sudo ծառայություն apache2 վերագործարկեք

Հեռացնել կանխադրված էջերը

cd /var /www

sudo rm -rf html

Այս նախագծից պատճենեք «վեբպորտալ» թղթապանակը ձեր RPi- ի ձեր տնային թղթապանակին և ստեղծեք 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

Միացնել Python CGI Scripting- ը

Ավելացնել պիտակի ներսում

Ընտրանքներ +ExecCGI AddHandler cgi-script.py sudo ծառայություն apache2 վերագործարկում

Այժմ կարող եք այցելել տեղական HTTP կայք [https://10.0.10.1]

Կարգավորեք ցանցի առաջադեմ մոնիտորինգ (IPFM- ի միջոցով)

sudo apt-get թարմացում

sudo apt-get տեղադրել ipfm

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

sudo vi /etc/ipfm.conf

Ստեղծեք հետևյալ բովանդակությամբ.

# Գլոբալ փոփոխականներ

# IPFM- ն կարող է վերահսկել միայն մեկ սարք: ՍԱՐՔԸ eth0

# GLOBAL LOGGING CONFIGURATION LOG

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

# մուտք ամեն րոպե ԹԱՓՈ EVՄ ԱՄԵՆ 1 րոպե

# հստակ վիճակագրություն ամեն օր ՄԱՔՐԵԼ ԱՄԵՆ 24 ժամ ԲԱORTԱՌԱԿԵԼ sudo ծառայություն ipfm ծառայության մեկնարկ

ԸՆՏՐՈԹՅՈՆ. Ստեղծեք ձեր սեփական Nintendo պատկերները `դրանք ցուցադրելու համար

Վերբեռնեք ձեր սեփական 128x128 ֆայլը հետևյալ URL- ին.

www.digole.com/tools/PicturetoC_Hex_convert…

Ընտրեք ձեր պատկերի ֆայլը վերբեռնման համար, ավելացրեք այն չափը, որը ցանկանում եք, որ այն լինի էկրանին (Լայնություն/Բարձրություն)

Ընտրեք «256 Color for Color OLED/LCD (1 բայթ/պիքսել)» «Օգտագործված է» բացվող պատուհանում

Ստացեք վեցանկյուն ելք:

Ավելացրեք վեցանկյուն ելքը ցուցադրման/ կառուցման/ վերնագրի (.h) ֆայլին, իսկ մյուսները օգտագործեք որպես շարահյուսության ուղեցույցներ:

Ներառեք նոր ֆայլը digole.c ֆայլում #include myimage.h

Ներառեք հրամանի տողի նոր կեռ ձեր պատկերային ֆայլին մեջ: Նշում. Ստորև բերված հրամանն ասում է ՝ նկարեք ձեր պատկերը 10 պիքսել դիրքով 10 պիքսել ներքև: Դուք կարող եք փոխել այն տարբեր X, Y կոորդինատներ, կարող եք նաև փոխել 128, 128 արժեքները ՝ ըստ ձեր նոր պատկերի իրական չափի:

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere- ը սահմանվում է ձեր (.h) ֆայլում}

Այժմ վերակառուցեք (անտեսեք սխալները) ստորև, որպեսզի ձեր նոր պատկերը մատուցվի հետևյալ հրամանով:

$./digole myimage Վերակառուցում [ներառված է] Digole Display Driver ՝ ձեր կամընտիր փոփոխությունների համար

$ cd ցուցադրում/կառուցում $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole

Խորհուրդ ենք տալիս: