Съдържание:
- Стъпка 1: Инсталирайте необходимия софтуер RaspberryPi
- Стъпка 2: Създаване на WiFi точка за достъп
- Стъпка 3: Необходими консумативи: Old Broken Nintendo
- Стъпка 4: Необходими консумативи: Raspberry Pi 3 Модел B
- Стъпка 5: Необходими консумативи: 1.44 "Сериен: UART/I2C/SPI TFT LCD 128x128 Модул на дисплея
- Стъпка 6: Необходими консумативи: 5V 0.1A Мини вентилатор Raspberry Pi
- Стъпка 7: Необходими консумативи: Ugreen USB 2.0 до 10/100 Fast Ethernet Lan Кабелен мрежов адаптер Lan
- Стъпка 8: Строителство
- Стъпка 9: Строителство Продължи
- Стъпка 10: Строителство Продължи
- Стъпка 11: Свързване на дисплея Digole
- Стъпка 12: Инсталирайте инструменти за мониторинг на мрежата и регистриране на БД
- Стъпка 13: Инсталирайте обобщен отчет за трафика (изпълнява се на всеки 5 минути от Cronjob)
- Стъпка 14: Инсталирайте екрана на таблото
- Стъпка 15: Инсталирайте уебсайта за локална употреба/статистика [http://10.0.10.1]
Видео: Nintendo Wifi рутер: 17 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
Използвайки калъф от стара система Nintendo Entertainment, създайте високо функционален домашен рутер, използвайки RaspberryPI 3!
Стъпка 1: Инсталирайте необходимия софтуер RaspberryPi
Мигащ твърд диск RaspberriPi / Инсталиране на необходимия софтуер (Използване на Ubuntu Linux)
Изтеглете „RASPBIAN JESSIE LITE“https://www.raspberrypi.org/downloads/raspbian/
Създайте своя нов твърд диск за DashboardPI
Поставете microSD в компютъра си чрез USB адаптер и създайте образа на диска, като използвате командата dd
Намерете поставената си microSD карта чрез командата df -h, демонтирайте я и създайте образа на диска с командата dd copy copy
$ df -h/dev/sdb1 7.4G 32K 7.4G 1%/медия/XXX/1234-5678
$ umount /dev /sdb1
Внимание: уверете се, че командата е напълно точна, можете да повредите други дискове с тази команда
if = местоположението на файла с изображение на RASPBIAN JESSIE LITE на = местоположението на вашата microSD карта
$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img на =/dev/sdb (забележка: в този случай това е/dev/sdb,/dev/sdb1 е съществуващ фабричен дял на microSD) Настройване на вашия RaspberriPi
Поставете новата си microSD карта в raspberrypi и я включете с монитор, свързан към HDMI порта
Влизам
user: pi pass: raspberry Променете паролата на акаунта си за сигурност
sudo passwd pi Активирайте разширените опции на RaspberriPi
sudo raspi-config Изберете: 1 Разгънете файлова система
9 Разширени опции
A2 Hostname го променете на "NESRouter"
A4 SSH Активиране на SSH сървър
A7 I2C Активиране на i2c интерфейс Активиране на английската/американската клавиатура
sudo nano/etc/default/keyboard Променете следния ред: XKBLAYOUT = "us" Настройка на простата директория 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 update && sudo apt-get -y ъпгрейд
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
Добавете следния ред:
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 интерфейса, който конфигурирахме по -горе interface = wlan0
# Използвайте драйвера nl80211 с драйвера на brcmfmac драйвер = nl80211
# Това е името на мрежата ssid = NintendoWiFi
# Използвайте 2.4GHz обхват hw_mode = g
# Използвайте канал 6 канал = 6
# Активиране на 802.11n ieee80211n = 1
# Активиране на WMM wmm_enabled = 1
# Активиране на 40MHz канали с 20ns защитен интервал ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]
# Приемете всички MAC адреси macaddr_acl = 0
# Използвайте удостоверяване на WPA auth_algs = 1
# Изисквайте клиентите да знаят името на мрежата ignore_broadcast_ssid = 0
# Използвайте WPA2 wpa = 2
# Използвайте предварително споделен ключ wpa_key_mgmt = WPA-PSK
# Мрежовата парола 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 # Свържете се с интерфейса, за да сте сигурни, че не изпращаме неща на друго място server = 8.8.8.8 # Препращайте DNS заявки към Google DNS домейн, необходим # Не препращайте кратки имена фалшиви-priv # Никога не препращайте адреси в не -пренасочени адресни пространства.
# Присвояване на IP адреси с безкрайно време на лизинг (за статистика на използване на устройството) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, безкраен dhcp-диапазон = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, безкрайно НАСТРОЙВАНЕ IPV4 ФОРВИДИНГ
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 -A НАПРЕД -i eth0 -o eth1 -m състояние -състояние СВЪРЗАНО, УСТАНОВЕНО -j ПРИЕМАМ
sudo iptables -A НАПРЕД НА -i eth1 -o eth0 -j ПРИЕМАМ
sudo iptables -A НАПРЕД -i eth0 -o wlan0 -m състояние -състояние СВЪРЗАНО, УСТАНОВЕНО -j ПРИЕМАМ
sudo iptables -A НАПРЕД -i wi0 -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 старт 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: bc, 10.0.20.20 Забележка: Това ще присвои мрежовия интерфейс с MAC адреса: 12: 34: 56: 78: 9a: bc към IP адрес 10.0.20.20. Изброеният IP адрес НЕ трябва да е в дадения DHCP диапазон, само в същата подмрежа. Моят основен работен плот по -горе е в подмрежа eth1: 10.0.20.0, затова му дадох IP адрес 10.0.20.20.
Добавяне на UFW защитна стена
sudo apt-get install 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 -force enable
sudo ufw статус
Поправете BUG с UFW, който не стартира при стартиране
sudo su crontab -e
Добавете следния ред: @reboot /bin /sleep 60; ufw -принудително активиране
Стъпка 3: Необходими консумативи: Old Broken Nintendo
Стар калъф Nintendo от счупен NES (премахнете цялото старо съдържание в кутията, оставяйки само външната рамка, бутоните за захранване / нулиране и връзките на контролера)
Стъпка 4: Необходими консумативи: Raspberry Pi 3 Модел B
Стъпка 5: Необходими консумативи: 1.44 "Сериен: UART/I2C/SPI TFT LCD 128x128 Модул на дисплея
Стъпка 6: Необходими консумативи: 5V 0.1A Мини вентилатор Raspberry Pi
Стъпка 7: Необходими консумативи: Ugreen USB 2.0 до 10/100 Fast Ethernet Lan Кабелен мрежов адаптер Lan
Стъпка 8: Строителство
Инсталирайте вътре в NES
С помощта на 3D принтер отпечатайте рамката на Digole Display "NESPanel" в/construction/display-frame/папката. [ако нямате 3D принтер, можете деликатно да изрежете квадратна дупка за дисплея Digole с инструмент Dremel] Изрежете следните отвори, отворени в задната и страничната част на кутията, за да можете да закрепите малкия вентилатор върху отстрани и кабелите за захранване/ethernet и USB ethernet, за да влезете през гърба.
Стъпка 9: Строителство Продължи
Развийте горния десен черен панел от NES и чисто изрежете достатъчно голям квадратен отвор, за да монтирате дисплея на дигола. Горещо залепете дисплея на място с "NESPanel" 3D отпечатана рамка върху върха му.
Стъпка 10: Строителство Продължи
Монтирайте RaspberryPi в средата на дъното на празната кутия NES, закрепете с лепило или малък винт през дъното. Използвайки резистор от 270 ома, свържете "включения светодиод" на NES към 5V и GND щифтовете в Raspberry Pi (къс светодиоден проводник е земята). Свържете малкия вентилатор към щифтовете 5V и GND, за да работи, когато устройството се стартира, залепете вентилатора към отвора отстрани за него.
Стъпка 11: Свързване на дисплея Digole
Свържете следните щифтове към щифтовете на RaspberryPi
VCC е свързан към 3v GND е заземен DATA е SDA CLOCK е SCL Сега трябва да видите устройството във вашата i2cdetect команда
i2cdetect -y 1 трябва да се показва в мрежата с текст като 27
Стъпка 12: Инсталирайте инструменти за мониторинг на мрежата и регистриране на БД
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
Добавете следния ред в края на файла: local all pi password sudo -i -u postgres
psql
създайте парола за роля pi „парола тук“;
промяна на ролята на вход pi;
промяна на ролята на суперпотребител;
du
(трябва да видите вашия PI потребител с предоставените разрешения) създаване на база данни network_stats;
q
изход
psql -d network_stats
Изпълнете следните заявки:
СЪЗДАЙТЕ ТАБЛИЦА traffic_per_minute (id сериал, времева отметка без часова зона NOT NULL, eth0_down реален, eth0_up реален, eth1_down реален, eth1_up реален, wan0_down реален, wan0_up реален);
CREATE UNIQUE INDEX time_idx ON traffic_per_minute (време); Копирайте папката "logging" с код от този проект в домашната директория на вашия RPi
crontab -e
Добавете този ред
@reboot /bin /sleep 60; nohup python /home/pi/logging/networkUsage.py>/dev/null 2> & 1
Стъпка 13: Инсталирайте обобщен отчет за трафика (изпълнява се на всеки 5 минути от Cronjob)
crontab -e
добавете следния ред
*/5 * * * * python /home/pi/logging/trafficSummary.py
Стъпка 14: Инсталирайте екрана на таблото
Копирайте папката „display“с код от този проект в домашната директория на вашия 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
Копирайте папката „webportal“от този проект в домашната папка на вашия 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 update
sudo apt-get инсталирайте ipfm
sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak
sudo vi /etc/ipfm.conf
Създайте със следното съдържание:
# Глобални променливи
# IPFM може да наблюдава само едно устройство. УСТРОЙСТВО eth0
# ГЛОБАЛНО ЛОГИРАНЕ НА КОНФИГУРАЦИЯ
FILENAME "/var/log/ipfm/%Y_%d_%m/%H_%M"
# дневник всяка минута ДУМП ВСЕКА 1 минута
# ясна статистика всеки ден ПРИЧИСТВАЙТЕ ВСЕКИ 24 -часово СОРТИРАНЕ В РЕШЕНИЕ sudo услуга ipfm старт
ОПЦИЯ: Създаване на ваши собствени Nintendo изображения за изобразяване на дисплея
Качете свой собствен 128x128 файл на следния URL адрес:
www.digole.com/tools/PicturetoC_Hex_convert…
Изберете вашия файл с изображение за качване, добавете какъв размер искате да бъде на екрана (Ширина/Височина)
Изберете „256 цвята за цветен OLED/LCD (1 байт/пиксел)“в падащото меню „Използва се за“
Вземете шестнадесетичния изход.
Добавете шестнадесетичния изход към файл display/ build/ header (.h), използвайте другите като ръководства за синтаксис.
Включете новия файл във файла digole.c #include myimage.h
Включете нова кука за командния ред към вашия файл с изображение в. Забележка: командата по -долу казва да нарисувате изображението си на позиция 10 пиксела над 10 пиксела надолу. Можете да го промените на различни координати X, Y, можете също да промените стойностите 128, 128 на какъвто и да е размерът на новото ви изображение всъщност.
} иначе ако (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
Препоръчано:
Steam Punk UPS, за да получите часове на работа за вашия Wi-Fi рутер: 4 стъпки (със снимки)
Steam Punk Вашият UPS, за да получите часове на работа за вашия Wi-Fi рутер: Има нещо фундаментално неприятно да накарате вашия UPS да преобразува захранването на 12V DC батерията в 220V AC захранване, така че трансформаторите, работещи с вашия рутер и оптичен ONT, да могат да го преобразуват обратно в 12V DC! Вие също сте против [обикновено
UPS за WiFi рутер V4: 6 стъпки (със снимки)
UPS за WiFi рутер V4: Здравейте, с повишена работа от вкъщи, всички искаме да работим непрекъснато, прекъсването на захранването е много често срещано явление в Индия. прекъсването на захранването е за
Направи си сам UPS за WiFi рутер: 4 стъпки (със снимки)
DIY UPS за WiFi рутер: Вече има около 50 милиарда свързани с интернет устройства по целия свят. Следователно интернет връзката е гръбнакът за управление на този бързо развиващ се свят. Всичко от финансовия пазар до телемедицината зависи от интернет. По -младият ген
Обратна обработка на DMS CNC рутер: 5 стъпки (със снимки)
Обработка на флип на DMS CNC рутер: След като се замислих за потенциала на 3-осната флип машина, реших да конструирам триизмерна релефна картина от ламиниран шперплат. Това парче би било видимо от двете страни и въпреки че двете страни биха били свързани помежду си
Използвайте Raspberry Pi 3 като рутер: 10 стъпки (със снимки)
Използвайте Raspberry Pi 3 като рутер: Според Уикипедия, рутер е мрежово устройство, което препраща пакети данни между компютърни мрежи. Ако разрушим безжичен рутер, вероятно ще намерим специфичен за приложение процесор, който обработва пакети данни и RF сегмент, който