Inhoudsopgave:
- Stap 1: Installeer de vereiste RaspberryPi-software
- Stap 2: Het wifi-toegangspunt maken
- Stap 3: Benodigde benodigdheden: oude kapotte Nintendo
- Stap 4: Benodigde benodigdheden: Raspberry Pi 3 Model B
- Stap 5: Benodigde benodigdheden: 1,44" serieel: UART/I2C/SPI TFT LCD 128x128 displaymodule
- Stap 6: Benodigde benodigdheden: 5V 0.1A Mini Fan Raspberry Pi
- Stap 7: Benodigde benodigdheden: Ugreen USB 2.0 naar 10/100 Fast Ethernet Lan bekabelde netwerkadapter
- Stap 8: constructie
- Stap 9: Constructie Vervolg
- Stap 10: Bouw vervolg
- Stap 11: Het Digole-display aansluiten
- Stap 12: Network Monitoring Tools & DB Logging installeren
- Stap 13: Installeer het Verkeersoverzichtsrapport (wordt elke 5 minuten uitgevoerd door Cronjob)
- Stap 14: Installeer het dashboardscherm
- Stap 15: Installeer de website voor lokaal gebruik/statistieken [http://10.0.10.1]
Video: Nintendo Wifi Router: 17 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Maak met behulp van een oude Nintendo Entertainment-systeembehuizing een zeer functionele thuisrouter met behulp van een RaspberryPI 3!
Stap 1: Installeer de vereiste RaspberryPi-software
RaspberriPi-harde schijf knipperen / vereiste software installeren (met Ubuntu Linux)
Download "RASPBIAN JESSIE LITE"
Maak uw nieuwe harde schijf voor DashboardPI
Plaats de microSD in uw computer via een USB-adapter en maak de schijfkopie met de opdracht dd
Lokaliseer uw geplaatste microSD-kaart via de opdracht df -h, ontkoppel deze en maak de schijfkopie met de opdracht disk copy dd
$ df -h /dev/sdb1 7.4G 32K 7.4G 1% /media/XXX/1234-5678
$ umount /dev/sdb1
Let op: zorg ervoor dat het commando volledig nauwkeurig is, je kunt andere schijven beschadigen met dit commando
if=locatie van RASPBIAN JESSIE LITE afbeeldingsbestand van=locatie van uw microSD-kaart
$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (let op: in dit geval is het /dev/sdb, /dev/sdb1 was een bestaande fabriekspartitie op de microSD) Uw RaspberriPi. instellen
Plaats uw nieuwe microSD-kaart in de raspberrypi en zet hem aan met een monitor aangesloten op de HDMI-poort
Log in
gebruiker: pi pass: raspberry Wijzig uw accountwachtwoord voor beveiliging
sudo passwd pi Geavanceerde opties voor RaspberriPi inschakelen
sudo raspi-config Kies: 1 Vouw Bestandssysteem uit
9 geavanceerde opties
A2 Hostnaam verander het in "NESRouter"
A4 SSH SSH-server inschakelen
A7 I2C i2c-interface inschakelen Schakel het Engelse/Amerikaanse toetsenbord in
sudo nano /etc/default/keyboard Wijzig de volgende regel: XKBLAYOUT="us" Stel de eenvoudige directory l-opdracht in [optioneel]
vi ~/.bashrc
voeg de volgende regel toe:
alias l='ls -lh'
source ~/.bashrc Fix VIM standaard syntax highlighting [optioneel]
sudo vi /etc/vim/vimrc
verwijder het commentaar van de volgende regel:
syntaxis op Start uw PI opnieuw op om de laatste wijzigingen te krijgen
rebootLokale tijdzone-instellingen bijwerken
sudo dpkg-reconfigure tzdata selecteer uw tijdzone met behulp van de interface
Stap 2: Het wifi-toegangspunt maken
Let op, voordat dit een router wordt, sluiten we de RaspberryPi aan op een bestaand netwerk via de ethernetpoort om de volgende pakketten te installeren
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-essentiële python-dev rpi.gpio python3 python3-pip libi2c-dev
sudo vi /etc/dhcpcd.conf
Voeg de volgende regel toe:
denyinterfaces wlan0 sudo vi /etc/network/interfaces
Bewerk de wlan0-sectie zodat deze er als volgt uitziet:
auto lo iface lo inet loopback
iface eth0 inet handleiding
auto wlan0 iface wlan0 inet statisch adres 10.0.10.1 netmask 255.255.255.0 netwerk 10.0.10.0 broadcast 10.0.10.255
auto eth1 iface eth1 inet statisch adres 10.0.20.1 netmask 255.255.255.0 netwerk 10.0.20.0 broadcast 10.0.20.255 Herlaad DHCP-server en bounce de configuratie voor eth0- en wlan0-verbindingen
sudo-service dhcpcd opnieuw opstarten
sudo ifdown eth0; sudo ifup wlan0
Configureer HOSTAPD (verander ssid en wpa_passphrase naar de waarden van uw eigen keuze)
sudo vi /etc/hostapd/hostapd.conf
# Dit is de naam van de wifi-interface die we hierboven hebben geconfigureerd interface=wlan0
# Gebruik de nl80211 driver met de brcmfmac driver driver=nl80211
# Dit is de naam van het netwerk ssid=NintendoWiFi
# Gebruik de 2,4 GHz-band hw_mode=g
# Gebruik kanaal 6 kanaal = 6
# 802.11n inschakelen ieee80211n=1
# WMM inschakelen wmm_enabled=1
# Schakel 40MHz-kanalen in met een bewakingsinterval van 20ns ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Accepteer alle MAC-adressen macaddr_acl=0
# Gebruik WPA-authenticatie auth_algs=1
# Vereisen dat klanten de netwerknaam weten neg_broadcast_ssid=0
# Gebruik WPA2 wpa=2
# Gebruik een vooraf gedeelde sleutel wpa_key_mgmt=WPA-PSK
# De netwerkwachtwoordzin wpa_passphrase=wachtwoord
# Gebruik AES in plaats van TKIP rsn_pairwise=CCMP We kunnen controleren of het in dit stadium werkt door het uit te voeren (maar heeft nog geen volledige internetverbinding):
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
sudo vi /etc/default/hostapd
Vind de lijn
#DAEMON_CONF="" en vervang het door
DAEMON_CONF="/etc/hostapd/hostapd.conf" DNSMASQ configureren
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf
bind-interfaces # Bind aan de interface om er zeker van te zijn dat we dingen niet ergens anders heen sturen server=8.8.8.8 # Stuur DNS-verzoeken door naar Google DNS-domein nodig # Stuur geen korte namen nep-priv door # Stuur nooit adressen door in de niet -gerouteerde adresruimten.
# IP-adressen toewijzen met oneindige leasetijd (voor gebruiksstatistieken van apparaten) dhcp-range=wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, oneindig dhcp-range=eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, oneindig INSTELLEN IPV4 DOORSTUREN
sudo vi /etc/sysctl.conf
[uncomment] net.ipv4.ip_forward=1
Activeer het onmiddellijk met 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 GERELATEERD, GEVESTIGD -j ACCEPTEREN
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTEREN
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state GERELATEERD, GEVESTIGD -j ACCEPTEREN
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPTEREN
Sla iptables-instellingen op voor de volgende herstart
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Maak ipv4-regelsbestand (met nieuwe inhoud)
sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
iptables-restore < /etc/iptables.ipv4.nat Services herstarten
sudo-service hostapd start sudo-service dnsmasq start
sudo reboot
Statische IP's toewijzen [optioneel]
Als u wilt dat hosts op uw netwerk statische ips hebben, gebruik dan het volgende:
Verkrijg de hosts die momenteel zijn verbonden via DHCP vi /var/lib/misc/dnsmasq.leases
Voeg het MAC-adres (van de uitvoer hierboven) en het IP-adres dat u ze wilt toewijzen toe aan sudo vi /etc/dnsmasq.conf
# main desktop dhcp-host=12:34:56:78:9a:bc, 10.0.20.20 Opmerking: Dit zal de netwerkinterface met het MAC-adres: 12:34:56:78:9a:bc toewijzen aan IP-adres 10.0.20.20. Het vermelde IP-adres hoeft NIET in het opgegeven DHCP-bereik te zijn, alleen op hetzelfde subnet. Mijn hoofddesktop hierboven bevindt zich op subnet eth1:10.0.20.0, dus ik heb het IP-adres 10.0.20.20 gegeven.
UFW-firewall toevoegen
sudo apt-get install ufw
Sta poort 22 toe voor openbaar gebruik (voor externe netwerktoegang)
sudo ufw toestaan 22
Alle poorten op mijn lokale netwerk toestaan
sudo ufw toestaan vanaf 10.0.10.0/24 sudo ufw toestaan vanaf 10.0.20.0/24
Sta webpoorten toe voor iedereen
sudo ufw 80. toestaan
Sta veilige webpoorten toe aan iedereen
sudo ufw toestaan 443
Schakel UFW in en controleer de status
sudo ufw --force enable
sudo ufw-status
BUG repareren waarbij UFW niet start bij opstarten
sudo su crontab -e
Voeg de volgende regel toe: @reboot /bin/sleep 60; ufw --geforceerd inschakelen
Stap 3: Benodigde benodigdheden: oude kapotte Nintendo
Oude Nintendo Case van een kapotte NES (verwijder alle oude inhoud in de case, laat alleen het buitenste frame, de power / reset-knoppen en de controller-aansluitingen over)
Stap 4: Benodigde benodigdheden: Raspberry Pi 3 Model B
Stap 5: Benodigde benodigdheden: 1,44" serieel: UART/I2C/SPI TFT LCD 128x128 displaymodule
Stap 6: Benodigde benodigdheden: 5V 0.1A Mini Fan Raspberry Pi
Stap 7: Benodigde benodigdheden: Ugreen USB 2.0 naar 10/100 Fast Ethernet Lan bekabelde netwerkadapter
Stap 8: constructie
Installeer in de NES
Gebruik een 3D-printer om het Digole Display-frame "NESPanel" af te drukken in de map /construction/display-frame/. [Als je geen 3D-printer hebt, kun je voorzichtig een vierkant gat maken voor het Digole-display met een Dremel-gereedschap] Snijd de volgende gaten open in de achterkant en zijkant van de behuizing zodat de kleine ventilator op de behuizing kan worden bevestigd zijkant en de stroom/ethernet- en USB-ethernetkabels om via de achterkant binnen te komen.
Stap 9: Constructie Vervolg
Schroef het zwarte paneel rechtsboven van de NES los en snijd een vierkant gat dat groot genoeg is om uw digole-display te monteren. Lijm het display op zijn plaats met het "NESPanel" 3D-geprinte frame eroverheen.
Stap 10: Bouw vervolg
Monteer de RaspberryPi in het midden van de onderkant van de lege NES-behuizing, bevestig met lijm of een kleine schroef door de onderkant. Gebruik een weerstand van 270 ohm en sluit de "power on LED" van de NES aan op de 5V- en GND-pinnen in de Raspberry Pi (korte LED-kabel is de grond). Sluit de kleine ventilator ook aan op de 5V- en GND-pinnen om deze te laten draaien wanneer het apparaat opstart, lijm de ventilator tegen het gat in de zijkant ervoor.
Stap 11: Het Digole-display aansluiten
Sluit de volgende pinnen aan op de pinnen op de RaspberryPi
VCC is verbonden met 3v GND is aarde DATA is SDA CLOCK is SCL Nu zou je het apparaat in je i2cdetect-opdracht moeten zien
i2cdetect -y 1 het zou in het tekstraster moeten verschijnen als 27
Stap 12: Network Monitoring Tools & DB Logging installeren
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
Voeg de volgende regel toe aan het einde van het bestand: local all pi wachtwoord sudo -i -u postgres
psql
maak rol pi wachtwoord 'wachtwoord hier';
wijzig rol pi login;
verander rol pi superuser;
du
(u zou uw PI-gebruiker moeten zien met de verleende machtigingen) maak database network_stats;
Q
Uitgang
psql -d netwerk_stats
Voer de volgende query's uit:
CREATE TABLE traffic_per_minute (id serieel, tijdtijdstempel zonder tijdzone NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);
MAAK UNIEKE INDEX time_idx ON traffic_per_minute (tijd); Kopieer de "logging"-map met code van dit project naar de homedirectory van uw RPi
crontab -e
Voeg deze regel toe
@reboot /bin/slaap 60; nohup python /home/pi/logging/networkUsage.py >/dev/null 2>&1
Stap 13: Installeer het Verkeersoverzichtsrapport (wordt elke 5 minuten uitgevoerd door Cronjob)
crontab -e
voeg de volgende regel toe:
*/5 * * * * python /home/pi/logging/trafficSummary.py
Stap 14: Installeer het dashboardscherm
Kopieer de "display"-map met code van dit project naar de homedirectory van uw RPi
Voer het als volgt uit:
$ python /home/pi/display/NESRouter.py Stel het weergavescript in om bij het opstarten uit te voeren
crontab -e
Voeg deze regel toe
@reboot nohup python /home/pi/display/NESRouter.py >/dev/null 2>&1
Controleer of het scherm begint te werken bij opnieuw opstarten
sudo reboot
Stap 15: Installeer de website voor lokaal gebruik/statistieken [https://10.0.10.1]
Installeer de website voor lokaal gebruik/statistieken [https://10.0.10.1]
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install apache2
sudo-service apache2 opnieuw opstarten
Standaardpagina's verwijderen
cd /var/www
sudo rm -rf html
Kopieer de 'webportal'-map van dit project naar je thuismap op je RPi en maak de symbolische link voor apache om te gebruiken
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 inschakelen
Toevoegen in de tag
Opties +ExecCGI AddHandler cgi-script.py sudo service apache2 restart
U kunt nu de lokale HTTP-site bezoeken [https://10.0.10.1]
Geavanceerde netwerkbewaking instellen (via IPFM)
sudo apt-get update
sudo apt-get install ipfm
sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak
sudo vi /etc/ipfm.conf
Maak met de volgende inhoud:
# Globale variabelen
# IPFM kan slechts één apparaat bewaken. APPARAAT eth0
# GLOBAL LOGGING CONFIGURATIELOGBOEK
BESTANDSNAAM "/var/log/ipfm/%Y_%d_%m/%H_%M"
# log elke minuut DUMP ELKE 1 minuut
# wis elke dag statistieken WIS ELKE 24 uur SORTEER IN OPLOSSEN sudo service ipfm start
OPTIONEEL: je eigen Nintendo-afbeeldingen maken om op het scherm weer te geven
Upload uw eigen 128x128-bestand naar de volgende URL:
www.digole.com/tools/PicturetoC_Hex_convert…
Kies uw afbeeldingsbestand om te uploaden, voeg toe hoe groot u het op het scherm wilt hebben (Breedte/Hoogte)
Selecteer "256 kleuren voor OLED/LCD-kleuren (1 byte/pixel)" in de vervolgkeuzelijst "Gebruikt voor"
Verkrijg de hex-uitgang.
Voeg de hex-uitvoer toe aan een display/build/header (.h)-bestand, gebruik de andere als handleidingen voor syntaxis.
Voeg het nieuwe bestand toe aan het digole.c-bestand #include myimage.h
Voeg een nieuwe opdrachtregelhaak toe aan uw afbeeldingsbestand in de. Opmerking: het onderstaande commando zegt dat je je afbeelding moet tekenen op positie 10 pixels boven 10 pixels naar beneden. Je kunt het veranderen in verschillende X-, Y-coördinaten, je kunt ook de waarden 128, 128 wijzigen in de grootte van je nieuwe afbeelding.
} else if (strcmp(digoleCommand, "myimage") == 0) { drawBitmap256(10, 10, 128, 128, &myimageVariableHere, 0); // myimageVariableHere is gedefinieerd in uw (.h) bestand }
Herbouw nu (negeer de fouten) hieronder om uw nieuwe afbeelding te laten renderen met de volgende opdracht.
$./digole myimage Re-Building [Inbegrepen] Digole Display Driver voor uw optionele wijzigingen
$ cd display/build $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole
Aanbevolen:
Bouw een Nintendo NES-pc: 10 stappen (met afbeeldingen)
Bouw een Nintendo NES-pc: Ah, het Nintendo Entertainment System. Brengt me veel goede herinneringen terug: Super Mario Bros., Double Dragon, Megaman. Het roept ook minder goede herinneringen op. De pijn van het vervangen van cartridges, blazen tot je duizelig wordt en nog steeds niets krijgen
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
Nintendo Joycon Drift Fix (niet softwaregerelateerd): 8 stappen (met afbeeldingen)
Nintendo Joycon Drift Fix (niet softwaregerelateerd): na een jaar intensief gebruik begon ik te merken dat mijn joycon afdreef als ik de analoge stick niet aanraakte. Ik probeerde opnieuw te kalibreren en lucht in de analoge stick te blazen, maar dit loste niets op het probleem. Ik zocht naar een vervangende analoge stick, maar ze