Tabla de contenido:
- Paso 1: Instale el software RaspberryPi requerido
- Paso 2: creación del punto de acceso WiFi
- Paso 3: Suministros necesarios: Nintendo rota vieja
- Paso 4: Suministros necesarios: Raspberry Pi 3 Modelo B
- Paso 5: Suministros necesarios: 1.44 "Serie: Módulo de pantalla UART / I2C / SPI TFT LCD 128x128
- Paso 6: Suministros necesarios: Mini ventilador Raspberry Pi de 5V 0.1A
- Paso 7: Suministros necesarios: Adaptador de red cableada Ugreen USB 2.0 a 10/100 Fast Ethernet Lan
- Paso 8: Construcción
- Paso 9: Construcción Cont
- Paso 10: Continuación de la construcción
- Paso 11: Conexión de la pantalla Digole
- Paso 12: Instale las herramientas de monitoreo de red y el registro de la base de datos
- Paso 13: Instale el informe de resumen de tráfico (se ejecuta cada 5 minutos por Cronjob)
- Paso 14: Instale la pantalla del tablero
- Paso 15: Instale el sitio web de estadísticas / uso local [http://10.0.10.1]
Video: Enrutador Wifi de Nintendo: 17 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
¡Con una carcasa de sistema de entretenimiento Old Nintendo, produzca un enrutador doméstico altamente funcional con un RaspberryPI 3!
Paso 1: Instale el software RaspberryPi requerido
Intermitente en el disco duro RaspberriPi / Instalar el software requerido (con Ubuntu Linux)
Descarga "RASPBIAN JESSIE LITE"
Cree su nuevo disco duro para DashboardPI
Inserte la microSD en su computadora a través del adaptador USB y cree la imagen del disco usando el comando dd
Localice su tarjeta microSD insertada a través del comando df -h, desmóntela y cree la imagen del disco con el comando disk copy dd
$ df -h / dev / sdb1 7.4G 32K 7.4G 1% / media / XXX / 1234-5678
$ umount / dev / sdb1
Precaución: asegúrese de que el comando sea completamente preciso, puede dañar otros discos con este comando
if = ubicación del archivo de imagen RASPBIAN JESSIE LITE de = ubicación de su tarjeta microSD
$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (nota: en este caso, es / dev / sdb, / dev / sdb1 era una partición de fábrica existente en el microSD) Configuración de su RaspberriPi
Inserte su nueva tarjeta microSD en el raspberrypi y enciéndalo con un monitor conectado al puerto HDMI
Acceso
usuario: pi pass: raspberry Cambie la contraseña de su cuenta por seguridad
sudo passwd pi Habilitar las opciones avanzadas de RaspberriPi
sudo raspi-config Elija: 1 Expandir el sistema de archivos
9 Opciones avanzadas
A2 Nombre de host cámbielo a "NESRouter"
A4 SSH Habilitar servidor SSH
A7 I2C Habilitar interfaz i2c Habilitar el teclado inglés / estadounidense
sudo nano / etc / default / keyboard Cambie la siguiente línea: XKBLAYOUT = "us" Configure el directorio simple l comando [opcional]
vi ~ /.bashrc
agregue la siguiente línea:
alias l = 'ls -lh'
fuente ~ /.bashrc Corregir el resaltado de sintaxis predeterminado de VIM [opcional]
sudo vi / etc / vim / vimrc
descomente la siguiente línea:
sintaxis en Reinicie su PI para obtener los últimos cambios
rebootUpdate la configuración de la zona horaria local
sudo dpkg-reconfigure tzdata seleccione su zona horaria usando la interfaz
Paso 2: creación del punto de acceso WiFi
Tenga en cuenta que antes de que esto se convierta en un enrutador, estamos conectando el RaspberryPi a una red existente a través de su puerto ethernet para instalar los siguientes paquetes
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 imagen de python python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev
sudo vi /etc/dhcpcd.conf
Agregue la siguiente línea:
denyinterfaces wlan0 sudo vi / etc / network / interfaces
Edite la sección wlan0 para que se vea así:
auto lo iface lo inet loopback
iface eth0 inet manual
auto wlan0 iface wlan0 inet dirección estática 10.0.10.1 máscara de red 255.255.255.0 red 10.0.10.0 difusión 10.0.10.255
auto eth1 iface eth1 inet dirección estática 10.0.20.1 máscara de red 255.255.255.0 red 10.0.20.0 difusión 10.0.20.255 Vuelva a cargar el servidor DHCP y rebote la configuración para las conexiones eth0 y wlan0
reinicio de dhcpcd del servicio sudo
sudo ifdown eth0; sudo ifup wlan0
Configure HOSTAPD (cambie ssid y wpa_passphrase a los valores que elija)
sudo vi /etc/hostapd/hostapd.conf
# Este es el nombre de la interfaz WiFi que configuramos arriba interface = wlan0
# Utilice el controlador nl80211 con el controlador brcmfmac driver = nl80211
# Este es el nombre de la red ssid = NintendoWiFi
# Utilice la banda de 2,4 GHz hw_mode = g
# Utilice el canal 6 canal = 6
# Habilitar 802.11n ieee80211n = 1
# Habilitar WMM wmm_enabled = 1
# Habilitar canales de 40 MHz con intervalo de guarda de 20 ns ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]
# Acepta todas las direcciones MAC macaddr_acl = 0
# Utilice autenticación WPA auth_algs = 1
# Exigir a los clientes que sepan el nombre de la red ignore_broadcast_ssid = 0
# Utilice WPA2 wpa = 2
# Use una clave previamente compartida wpa_key_mgmt = WPA-PSK
# La contraseña de la red wpa_passphrase = contraseña
# Use AES, en lugar de TKIP rsn_pairwise = CCMP Podemos verificar si está funcionando en esta etapa ejecutando (pero aún no tiene conectividad completa a Internet):
sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf
sudo vi / etc / default / hostapd
Encuentra la linea
# DAEMON_CONF = "" y reemplácelo con
DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Configurar DNSMASQ
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf
bind-interfaces # Conéctese a la interfaz para asegurarse de que no estamos enviando cosas a otra parte server = 8.8.8.8 # Reenvíe solicitudes de DNS a Google DNS domain-required # No reenvíe nombres cortos bogus-priv # Nunca reenvíe direcciones en el -espacios de direcciones enrutados.
# Asignar direcciones IP con tiempo de concesión infinito (para estadísticas de uso del dispositivo) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, infinite dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, infinito CONFIGURACIÓN DE REENVÍO IPV4
sudo vi /etc/sysctl.conf
[descomentar] net.ipv4.ip_forward = 1
Actívelo inmediatamente con 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 estado --state RELACIONADO, ESTABLECIDO -j ACEPTAR
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACEPTAR
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELACIONADO, ESTABLECIDO -j ACEPTAR
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACEPTAR
Guarde la configuración de iptables para el próximo reinicio
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"
Crear archivo de reglas ipv4 (con contenido nuevo)
sudo vi / lib / dhcpcd / dhcpcd-hooks / 70-ipv4-nat
iptables-restore </etc/iptables.ipv4.nat Servicios de reinicio
sudo service hostapd start sudo service dnsmasq start
sudo reiniciar
Asignación de direcciones IP estáticas [opcional]
Si desea que los hosts de su red tengan IP estáticas, utilice lo siguiente
Adquiera los hosts conectados actualmente a través de DHCP vi /var/lib/misc/dnsmasq.leases
Agregue la dirección MAC (de la salida anterior) y la dirección IP que le gustaría asignarles a sudo vi /etc/dnsmasq.conf
# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Nota: Esto asignará la interfaz de red con la dirección MAC: 12: 34: 56: 78: 9a: bc a la dirección IP 10.0.20.20. La dirección IP indicada NO tiene que estar en el rango de DHCP proporcionado, solo en la misma subred. Mi escritorio principal anterior está en la subred eth1: 10.0.20.0, así que le di la dirección IP 10.0.20.20.
Agregar un cortafuegos UFW
sudo apt-get install ufw
Permitir el puerto 22 para uso público (para acceso remoto a la red)
sudo ufw permitir 22
Permitir todos los puertos en mi red local
sudo ufw allow de 10.0.10.0/24 sudo ufw allow de 10.0.20.0/24
Permitir puertos web para todos
sudo ufw permitir 80
Permita puertos web seguros para todos
sudo ufw permitir 443
Habilite UFW y verifique el estado
sudo ufw --force enable
estado de sudo ufw
Corregir ERROR con UFW que no se inicia en el inicio
sudo su crontab -e
Agregue la siguiente línea: @reboot / bin / sleep 60; ufw --force enable
Paso 3: Suministros necesarios: Nintendo rota vieja
Viejo estuche de Nintendo de una NES rota (retire todo el contenido antiguo dentro del estuche, dejando solo el marco exterior, los botones de encendido / reinicio y las conexiones del controlador)
Paso 4: Suministros necesarios: Raspberry Pi 3 Modelo B
Paso 5: Suministros necesarios: 1.44 "Serie: Módulo de pantalla UART / I2C / SPI TFT LCD 128x128
Paso 6: Suministros necesarios: Mini ventilador Raspberry Pi de 5V 0.1A
Paso 7: Suministros necesarios: Adaptador de red cableada Ugreen USB 2.0 a 10/100 Fast Ethernet Lan
Paso 8: Construcción
Instalar dentro de la NES
Con una impresora 3D, imprima el marco de pantalla Digole "NESPanel" en la carpeta / construction / display-frame /. [si no tiene una impresora 3D, puede cortar delicadamente un orificio cuadrado para la pantalla Digole con una herramienta Dremel] Corte los siguientes orificios abiertos en la parte posterior y lateral de la carcasa para permitir que el pequeño ventilador se sujete a la lateral y los cables de alimentación / ethernet y USB ethernet para entrar por la parte posterior.
Paso 9: Construcción Cont
Desatornille el panel negro superior derecho de la NES y corte limpiamente un agujero cuadrado lo suficientemente grande para montar su pantalla digole. Pegue la pantalla en su lugar con el marco impreso en 3D "NESPanel" sobre la parte superior.
Paso 10: Continuación de la construcción
Monte el RaspberryPi en el medio de la parte inferior de la carcasa vacía de NES, fíjelo con pegamento o un tornillo pequeño en la parte inferior. Con una resistencia de 270 ohmios, conecte el "LED de encendido" de la NES a los pines 5V y GND en la Raspberry Pi (el cable LED corto es la tierra). Conecte el ventilador pequeño a los pines 5V y GND también para que funcione cuando la unidad se encienda, pegue el ventilador contra el orificio en el costado.
Paso 11: Conexión de la pantalla Digole
Conecte los siguientes pines a los pines del RaspberryPi
VCC está conectado a 3v GND es tierra DATOS es SDA CLOCK es SCL Ahora debería ver el dispositivo en su comando i2cdetect
i2cdetect -y 1 debería aparecer en la cuadrícula de texto como 27
Paso 12: Instale las herramientas de monitoreo de red y el registro de la base de datos
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
Agregue la siguiente línea al final del archivo: local all pi contraseña sudo -i -u postgres
psql
cree la contraseña del rol pi 'contraseña aquí';
alterar el inicio de sesión de pi de rol;
alterar el rol de superusuario pi;
du
(debería ver a su usuario PI con los permisos otorgados) crear base de datos network_stats;
q
Salida
psql -d estadísticas_de_red
Ejecute las siguientes consultas:
CREAR TABLA traffic_per_minute (id serial, marca de tiempo sin zona horaria NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);
CREAR ÍNDICE ÚNICO time_idx ON traffic_per_minute (tiempo); Copie la carpeta de código de "registro" de este proyecto en el directorio de inicio de su RPi
crontab -e
Agregar esta línea
@reboot / bin / sleep 60; nohup python /home/pi/logging/networkUsage.py> / dev / null 2> & 1
Paso 13: Instale el informe de resumen de tráfico (se ejecuta cada 5 minutos por Cronjob)
crontab -e
agregue la siguiente línea
* / 5 * * * * python /home/pi/logging/trafficSummary.py
Paso 14: Instale la pantalla del tablero
Copie la carpeta de código "display" de este proyecto al directorio de inicio de su RPi
Ejecútelo de la siguiente manera
$ python /home/pi/display/NESRouter.py Configure el script de visualización para que se ejecute al inicio
crontab -e
Agregar esta línea
@reboot nohup python /home/pi/display/NESRouter.py> / dev / null 2> & 1
Verifique que la pantalla comience a funcionar al reiniciar
sudo reiniciar
Paso 15: Instale el sitio web de estadísticas / uso local [https://10.0.10.1]
Instale el sitio web de estadísticas / uso local [https://10.0.10.1]
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install apache2
reinicio de apache2 del servicio sudo
Quitar páginas predeterminadas
cd / var / www
sudo rm -rf html
Copie la carpeta 'webportal' de este proyecto a su carpeta de inicio en su RPi y cree el enlace simbólico para que apache lo use
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
Habilitar Python CGI Scripting
Agregar dentro de la etiqueta
Opciones + ExecCGI AddHandler cgi-script.py sudo service apache2 restart
Ahora puede visitar el sitio HTTP local [https://10.0.10.1]
Configure el monitoreo de red avanzado (a través de 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 con los siguientes contenidos:
# Variables globales
# IPFM puede monitorear solo un dispositivo. DISPOSITIVO eth0
# REGISTRO DE CONFIGURACIÓN DE REGISTRO GLOBAL
NOMBRE DE ARCHIVO "/ var / log / ipfm /% Y_% d_% m /% H_% M"
# registro cada minuto DUMP CADA 1 minuto
# borrar estadísticas cada día BORRAR CADA 24 horas CLASIFICAR EN RESOLVER sudo service ipfm start
OPCIONAL: Crea tus propias imágenes de Nintendo para renderizar en la pantalla
Sube tu propio archivo de 128x128 a la siguiente URL:
www.digole.com/tools/PicturetoC_Hex_convert…
Elija su archivo de imagen para cargar, agregue el tamaño que desea que tenga en la pantalla (Ancho / Alto)
Seleccione "256 colores para OLED / LCD en color (1 byte / píxel)" en el menú desplegable "Usado para".
Obtenga la salida hexadecimal.
Agregue la salida hexadecimal a un archivo de visualización / compilación / encabezado (.h), use los otros como guías para la sintaxis.
Incluya el nuevo archivo en el archivo digole.c #include myimage.h
Incluya un nuevo enlace de línea de comando a su archivo de imagen en formato. Nota: el siguiente comando dice que dibuje su imagen en la posición 10 píxeles sobre 10 píxeles hacia abajo. Puede cambiarlo a diferentes coordenadas X, Y, también puede cambiar los valores 128, 128 al tamaño que tenga su nueva imagen.
} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere se define en su archivo (.h)}
Ahora reconstruya (ignore los errores) a continuación para que su nueva imagen se renderice con el siguiente comando.
$./digole myimage Re-Building [incluido] Controlador de pantalla Digole para sus cambios opcionales
$ cd display / build $ gcc digole.c $ mv a.out../../digole $ chmod + x../../digole
Recomendado:
Steam Punk su UPS para obtener horas de tiempo de actividad para su enrutador Wi-Fi: 4 pasos (con imágenes)
Steam Punk Su UPS para obtener horas de tiempo de actividad para su enrutador Wi-Fi: Hay algo fundamentalmente desagradable en que su UPS convierta la energía de la batería de 12V CC en energía de 220V CA para que los transformadores que ejecutan su enrutador y fibra ONT puedan convertirlo nuevamente en 12V DC! También te enfrentas a los [típicamente
UPS de bricolaje para enrutador WiFi: 4 pasos (con imágenes)
UPS de bricolaje para enrutador WiFi: ya hay alrededor de 50 mil millones de dispositivos conectados a Internet en todo el mundo. Por lo tanto, la conectividad a Internet es la columna vertebral para hacer funcionar este mundo en rápido movimiento. Todo, desde el mercado financiero hasta la telemedicina, depende de Internet. Gen más joven
Mecanizado de volteo en el enrutador CNC DMS: 5 pasos (con imágenes)
Mecanizado de volteo en el enrutador CNC DMS: después de pensar en el potencial del mecanizado de volteo de 3 ejes, decidí construir una pintura en relieve tridimensional con madera laminada. Esta pieza sería visible desde cualquier lado, y aunque los dos lados estarían relacionados entre sí
Use Raspberry Pi 3 como enrutador: 10 pasos (con imágenes)
Use Raspberry Pi 3 como enrutador: según Wikipedia, un enrutador es un dispositivo de red que reenvía paquetes de datos entre redes de computadoras. Si derribamos un enrutador inalámbrico, probablemente encontraremos un procesador específico de aplicación que maneja paquetes de datos y un segmento de RF que
Enrutador doméstico inalámbrico con medidor de utilización analógica: 5 pasos (con imágenes)
Enrutador doméstico inalámbrico con medidor de utilización analógica: Crecí en y alrededor de barcos haciendo telares de cableado y paneles de control, y tengo una colección de medidores & diales que normalmente se encontrarían conectados a pequeños motores diesel marinos. Hoy trabajo como diseñador construyendo interfaces para redes