Table des matières:
- Étape 1: Installez le logiciel RaspberryPi requis
- Étape 2: Création du point d'accès WiFi
- Étape 3: Fournitures nécessaires: Old Broken Nintendo
- Étape 4: 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
- Étape 6: 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
- Étape 8: Construction
- Étape 9: Suite de la construction
- Étape 10: Suite de la construction
- Étape 11: connexion de l'écran Digole
- Étape 12: Installer les outils de surveillance réseau et la journalisation de la base de données
- Étape 13: Installez le rapport récapitulatif du trafic (s'exécute toutes les 5 minutes par Cronjob)
- Étape 14: Installez l'écran du tableau de bord
- Étape 15: Installez le site Web d'utilisation locale/de statistiques [http://10.0.10.1]
Vidéo: Routeur Wi-Fi Nintendo : 17 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:10
À 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
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
Étape 5: Fournitures nécessaires: 1.44 "Série: UART/I2C/SPI TFT LCD 128x128 Module d'affichage
Étape 6: 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
Étape 8: 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
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
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é:
Steam Punk Your UPS pour obtenir des heures de disponibilité pour votre routeur Wi-Fi : 4 étapes (avec photos)
Steam Punk Your UPS pour obtenir des heures de disponibilité pour votre routeur Wi-Fi : 12V CC ! Vous êtes également confronté au [typiquement
UPS pour routeur WiFi V4 : 6 étapes (avec photos)
UPS pour routeur WiFi V4 : Salut à tous, Avec l'augmentation du travail à domicile, nous voulons tous travailler sans interruption, les pannes de courant sont très courantes en Inde. De nombreux appartements ont installé des générateurs de secours, qui démarrent en quelques secondes après une panne de courant. Même si la panne de courant est pour f
Routeur Ups V2 : 6 étapes (avec photos)
Routeur Ups V2 : Salut à tous, Il y a quelques mois, j'avais fabriqué mon premier onduleur pour routeurs utilisant une batterie lithium-ion 18650, j'avais fabriqué deux onduleurs, un pour mon routeur et un pour mon convertisseur fibre. C'était un peu le bordel avec deux adaptateurs secteur. C'était dans ma liste de choses à faire pour faire un seul UPS avec
UPS DIY pour routeur WiFi : 4 étapes (avec photos)
UPS DIY pour routeur WiFi : Il existe déjà environ 50 milliards d'appareils connectés à Internet dans le monde. Par conséquent, la connectivité Internet est l'épine dorsale pour gérer ce monde en évolution rapide. Tout, du marché financier à la télémédecine, dépend d'Internet. Gène plus jeune
Routeur domestique sans fil avec compteur d'utilisation analogique : 5 étapes (avec photos)
Routeur domestique sans fil avec compteur d'utilisation analogique : j'ai grandi dans et autour de bateaux en fabriquant des métiers à tisser et des panneaux de commande, et j'ai une collection de jauges et d'amp; cadrans qui seraient normalement trouvés connectés à de petits moteurs diesel marins. Aujourd'hui, je travaille en tant que concepteur dans la construction d'interfaces pour la mise en réseau