Table des matières:

Routeur Wi-Fi Nintendo : 17 étapes (avec photos)
Routeur Wi-Fi Nintendo : 17 étapes (avec photos)

Vidéo: Routeur Wi-Fi Nintendo : 17 étapes (avec photos)

Vidéo: Routeur Wi-Fi Nintendo : 17 étapes (avec photos)
Vidéo: Подключение беспроводной поворотной WIFI камеры видеонаблюдения к телефону. Видеоинструкция :) 2024, Novembre
Anonim
Routeur Wi-Fi Nintendo
Routeur Wi-Fi Nintendo

À l'aide d'un boîtier de système Old Nintendo Entertainment, produisez un routeur domestique hautement fonctionnel à l'aide d'un RaspberryPI 3 !

Étape 1: Installez le logiciel RaspberryPi requis

Disque dur RaspberriPi clignotant / Installer le logiciel requis (à l'aide d'Ubuntu Linux)

Télécharger "RASPBIAN JESSIE LITE"

Créez votre nouveau disque dur pour DashboardPI

Insérez la microSD dans votre ordinateur via un adaptateur USB et créez l'image disque à l'aide de la commande dd

Localisez votre carte microSD insérée via la commande df -h, démontez-la et créez l'image disque avec la commande disk copy dd

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

$ umount /dev/sdb1

Attention: assurez-vous que la commande est parfaitement exacte, vous pouvez endommager d'autres disques avec cette commande

if=emplacement du fichier image RASPBIAN JESSIE LITE of=emplacement de votre carte microSD

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (remarque: dans ce cas, il s'agit de /dev/sdb, /dev/sdb1 était une partition d'usine existante sur le microSD) Configuration de votre RaspberriPi

Insérez votre nouvelle carte microSD dans le raspberrypi et allumez-le avec un moniteur connecté au port HDMI

Connexion

utilisateur: pi pass: framboise Changez le mot de passe de votre compte pour plus de sécurité

sudo passwd pi Activer les options avancées de RaspberriPi

sudo raspi-config Choisissez: 1 Développez le système de fichiers

9 options avancées

Nom d'hôte A2 changez-le en "NESRouter"

A4 SSH Activer le serveur SSH

A7 I2C Activer l'interface i2c Activer le clavier anglais/américain

sudo nano /etc/default/keyboard Modifiez la ligne suivante: XKBLAYOUT="us" Configurez la commande simple directory l [facultatif]

vi ~/.bashrc

ajoutez la ligne suivante:

alias l='ls -lh'

source ~/.bashrc Correction de la mise en évidence de la syntaxe par défaut de VIM [facultatif]

sudo vi /etc/vim/vimrc

décommentez la ligne suivante:

syntaxe sur Redémarrez votre PI pour obtenir les dernières modifications

rebootMettre à jour les paramètres de fuseau horaire local

sudo dpkg-reconfigure tzdata sélectionnez votre fuseau horaire à l'aide de l'interface

Étape 2: Création du point d'accès WiFi

Veuillez noter qu'avant qu'il ne devienne un routeur, nous connectons le RaspberryPi à un réseau existant via son port Ethernet pour installer les packages suivants

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

sudo apt-get installer 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

Ajoutez la ligne suivante:

denyinterfaces wlan0 sudo vi /etc/network/interfaces

Modifiez la section wlan0 pour qu'elle ressemble à ceci:

bouclage automatique lo iface lo inet

iface eth0 inet manuel

auto wlan0 iface wlan0 inet adresse statique 10.0.10.1 masque de réseau 255.255.255.0 réseau 10.0.10.0 diffusion 10.0.10.255

auto eth1 iface eth1 inet adresse statique 10.0.20.1 masque de réseau 255.255.255.0 réseau 10.0.20.0 diffusion 10.0.20.255 Recharger le serveur DHCP et rebondir la configuration pour les connexions eth0 et wlan0

redémarrage du service sudo dhcpcd

sudo ifdown eth0; sudo ifup wlan0

Configurez HOSTAPD (changez ssid et wpa_passphrase aux valeurs de votre choix)

sudo vi /etc/hostapd/hostapd.conf

# C'est le nom de l'interface WiFi que nous avons configurée ci-dessus interface=wlan0

# Utilisez le pilote nl80211 avec le pilote brcmfmac driver=nl80211

# C'est le nom du réseau ssid=NintendoWiFi

# Utilisez la bande 2,4 GHz hw_mode=g

# Utiliser le canal 6 canal=6

# Activer 802.11n ieee80211n=1

# Activer WMM wmm_enabled=1

# Activer les canaux 40MHz avec un intervalle de garde de 20ns ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accepter toutes les adresses MAC macaddr_acl=0

# Utiliser l'authentification WPA auth_algs=1

# Exiger que les clients connaissent le nom du réseau ignore_broadcast_ssid=0

# Utiliser WPA2 wpa=2

# Utilisez une clé pré-partagée wpa_key_mgmt=WPA-PSK

# La phrase de passe du réseau wpa_passphrase=password

# Utilisez AES, au lieu de TKIP rsn_pairwise=CCMP Nous pouvons vérifier si cela fonctionne à ce stade en exécutant (mais n'a pas encore de connectivité Internet complète):

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

sudo vi /etc/default/hostapd

Trouver la ligne

#DAEMON_CONF="" et remplacez-le par

DAEMON_CONF="/etc/hostapd/hostapd.conf" Configurer DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Se lier à l'interface pour s'assurer que nous n'envoyons rien ailleurs server=8.8.8.8 # Transférer les requêtes DNS à Google DNS domain-needed # Ne pas transférer les noms courts bogus-priv # Ne jamais transférer les adresses dans le non -espaces d'adressage routés.

# Attribuez des adresses IP avec une durée de bail infinie (pour les statistiques d'utilisation de l'appareil) dhcp-range=wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, infinie dhcp-range=eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, infini CONFIGURER LE TRANSFERT IPV4

sudo vi /etc/sysctl.conf

[décommenter] net.ipv4.ip_forward=1

Activez-le immédiatement avec 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 ACCEPTER

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPTER

Enregistrer les paramètres iptables pour le prochain redémarrage

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

Créer un fichier de règles IPv4 (avec un nouveau contenu)

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

iptables-restore < /etc/iptables.ipv4.nat Redémarrer les services

service sudo hostapd démarrer service sudo dnsmasq démarrer

redémarrage sudo

Attribution d'adresses IP statiques [facultatif]

Si vous souhaitez que les hôtes de votre réseau aient des adresses IP statiques, veuillez utiliser ce qui suit

Acquérir les hôtes actuellement connectés via DHCP vi /var/lib/misc/dnsmasq.leases

Ajoutez l'adresse MAC (de la sortie ci-dessus) et l'adresse IP que vous souhaitez leur attribuer à sudo vi /etc/dnsmasq.conf

# bureau principal dhcp-host=12:34:56:78:9a:bc, 10.0.20.20 Remarque: Ceci affectera l'interface réseau avec l'adresse MAC: 12:34:56:78:9a:bc à l'adresse IP 10.0.20.20. L'adresse IP répertoriée ne doit PAS être dans la plage DHCP donnée, uniquement sur le même sous-réseau. Mon bureau principal ci-dessus est sur le sous-réseau eth1:10.0.20.0, je lui ai donc donné l'adresse IP 10.0.20.20.

Ajout du pare-feu UFW

sudo apt-get install ufw

Autoriser le port 22 pour une utilisation publique (pour l'accès réseau à distance)

sudo ufw autoriser 22

Autoriser tous les ports sur mon réseau local

sudo ufw autorise à partir de 10.0.10.0/24 sudo ufw autorise à partir de 10.0.20.0/24

Autoriser les ports Web à tout le monde

sudo ufw autoriser 80

Autoriser les ports Web sécurisés à tout le monde

sudo ufw autoriser 443

Activer UFW et vérifier l'état

sudo ufw --force activer

statut sudo ufw

Correction d'un BUG avec UFW qui ne démarre pas au démarrage

sudo su crontab -e

Ajoutez la ligne suivante: @reboot /bin/sleep 60; ufw --force activer

Étape 3: Fournitures nécessaires: Old Broken Nintendo

Fournitures nécessaires: Old Broken Nintendo
Fournitures nécessaires: Old Broken Nintendo

Ancien étui Nintendo d'une NES cassée (retirez tout l'ancien contenu à l'intérieur du boîtier, ne laissant que le cadre extérieur, les boutons d'alimentation / réinitialisation et les connexions du contrôleur)

Étape 4: Fournitures nécessaires: Raspberry Pi 3 modèle B

Fournitures nécessaires: Raspberry Pi 3 modèle B
Fournitures nécessaires: Raspberry Pi 3 modèle B

Étape 5: Fournitures nécessaires: 1.44 "Série: UART/I2C/SPI TFT LCD 128x128 Module d'affichage

Fournitures nécessaires: 1,44
Fournitures nécessaires: 1,44
Fournitures nécessaires: 1,44
Fournitures nécessaires: 1,44

Étape 6: Fournitures nécessaires: Mini ventilateur 5V 0,1A Raspberry Pi

Fournitures nécessaires: Mini ventilateur 5V 0,1A Raspberry Pi
Fournitures nécessaires: Mini ventilateur 5V 0,1A Raspberry Pi

Étape 7: Fournitures nécessaires: Ugreen USB 2.0 à 10/100 Fast Ethernet Lan LAN Wired Adapter

Fournitures nécessaires: Ugreen USB 2.0 à 10/100 Fast Ethernet Lan adaptateur réseau filaire
Fournitures nécessaires: Ugreen USB 2.0 à 10/100 Fast Ethernet Lan adaptateur réseau filaire

Étape 8: Construction

Construction
Construction

Installer à l'intérieur de la NES

A l'aide d'une imprimante 3D, imprimez le Digole Display frame "NESPanel" dans le dossier /construction/display-frame/. [si vous n'avez pas d'imprimante 3D, vous pouvez découper délicatement un trou carré pour l'écran Digole avec un outil Dremel] Découpez les trous suivants à l'arrière et sur le côté du boîtier pour permettre la fixation du petit ventilateur sur le côté et les câbles d'alimentation/Ethernet et USB Ethernet pour entrer par l'arrière.

Étape 9: Suite de la construction

Suite de la construction
Suite de la construction

Dévissez le panneau noir en haut à droite de la NES et découpez proprement un trou carré assez grand pour monter votre écran digole. Collez à chaud l'écran en place avec le cadre imprimé en 3D "NESPanel" sur le dessus.

Étape 10: Suite de la construction

Suite de la construction
Suite de la construction

Montez le RaspberryPi au milieu du fond du boîtier NES vide, fixez-le avec de la colle ou une petite vis à travers le fond. À l'aide d'une résistance de 270 ohms, connectez la « LED d'alimentation » de la NES aux broches 5V et GND du Raspberry Pi (le fil de LED court est la masse). Connectez également le petit ventilateur aux broches 5V et GND pour le faire fonctionner lorsque l'unité démarre, collez le ventilateur contre le trou sur le côté.

Étape 11: connexion de l'écran Digole

Connectez les broches suivantes aux broches du RaspberryPi

VCC est connecté à 3v GND est à la masse DATA est SDA CLOCK est SCL Maintenant, vous devriez voir l'appareil dans votre commande i2cdetect

i2cdetect -y 1 il devrait apparaître dans la grille de texte comme 27

Étape 12: Installer les outils de surveillance réseau et la journalisation de la base de données

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

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

Ajoutez la ligne suivante à la fin du fichier: local all pi password sudo -i -u postgres

psql

créer le mot de passe du rôle pi « mot de passe ici »;

modifier la connexion au rôle pi;

modifier le rôle de superutilisateur pi;

du

(vous devriez voir votre PI user avec les autorisations accordées) créer la base de données network_stats;

q

sortir

psql -d statistiques_réseau

Exécutez les requêtes suivantes:

CREATE TABLE traffic_per_minute (id série, horodatage sans fuseau horaire NON NULL, eth0_down réel, eth0_up réel, eth1_down réel, eth1_up réel, wan0_down réel, wan0_up réel);

CRÉER UNIQUE INDEX time_idx ON traffic_per_minute (heure); Copiez le dossier "logging" du code de ce projet dans le répertoire home de votre RPi

crontab -e

Ajouter cette ligne

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

Étape 13: Installez le rapport récapitulatif du trafic (s'exécute toutes les 5 minutes par Cronjob)

crontab -e

ajouter la ligne suivante

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

Étape 14: Installez l'écran du tableau de bord

Copiez le dossier " display " du code de ce projet dans le répertoire home de votre RPi

Exécutez-le comme suit

$ python /home/pi/display/NESRouter.py Configurez le script d'affichage à exécuter au démarrage

crontab -e

Ajouter cette ligne

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

Vérifiez que l'écran commence à fonctionner au redémarrage

redémarrage sudo

Étape 15: Installez le site Web d'utilisation locale/de statistiques [https://10.0.10.1]

Installez le site Web d'utilisation/statistiques local [https://10.0.10.1]

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

sudo apt-get installer apache2

redémarrage du service sudo apache2

Supprimer les pages par défaut

cd /var/www

sudo rm -rf html

Copiez le dossier 'webportal' de ce projet dans votre dossier personnel sur votre RPi et créez le lien symbolique à utiliser par 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

Activer les scripts Python CGI

Ajouter à l'intérieur de la balise

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

Vous pouvez maintenant visiter le site HTTP local [https://10.0.10.1]

Configurer la surveillance avancée du réseau (via IPFM)

sudo apt-get mise à jour

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Créez avec les contenus suivants:

# Variables globales

# IPFM ne peut surveiller qu'un seul appareil. APPAREIL eth0

# JOURNAL DE CONFIGURATION GLOBAL LOGGING

NOM DE FICHIER "/var/log/ipfm/%Y_%d_%m/%H_%M"

# log toutes les minutes VIDÉO TOUTES LES 1 minute

# effacer les statistiques chaque jour EFFACER TOUTES LES 24 heures TRIER EN RÉSOLU sudo service ipfm start

FACULTATIF: créer vos propres images Nintendo à afficher sur l'écran

Téléchargez votre propre fichier 128x128 à l'URL suivante:

www.digole.com/tools/PicturetoC_Hex_convert…

Choisissez votre fichier image à télécharger, ajoutez la taille que vous voulez qu'il soit à l'écran (Largeur/Hauteur)

Sélectionnez "256 couleurs pour la couleur OLED/LCD (1 octet/pixel)" dans la liste déroulante "Utilisé pour"

Obtenez la sortie hexadécimale.

Ajoutez la sortie hexadécimale à un fichier display/build/header (.h), utilisez les autres comme guides pour la syntaxe.

Incluez le nouveau fichier dans le fichier digole.c #include monimage.h

Incluez un nouveau hook de ligne de commande dans votre fichier image dans le fichier. Remarque: la commande ci-dessous indique de dessiner votre image à une position de 10 pixels sur 10 pixels vers le bas. Vous pouvez le changer en différentes coordonnées X, Y, vous pouvez également changer les valeurs 128, 128 quelle que soit la taille de votre nouvelle image.

} else if (strcmp(digoleCommand, "myimage") == 0) { drawBitmap256(10, 10, 128, 128, &myimageVariableHere, 0); // myimageVariableHere est défini dans votre fichier (.h) }

Reconstruisez maintenant (ignorez les erreurs) ci-dessous pour que votre nouvelle image soit rendue avec la commande suivante.

$./digole myimage Re-Building [Inclus] Digole Display Driver pour vos modifications facultatives

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

Conseillé: