Raspberry PI Tutorial

Écran d’état Pi-Hole OLED – Raspberryme

Par Thomas, le 23 juin 2021 — 7 minutes de lecture
Écran d'état Pi-Hole OLED - Raspberry Pi Spy

Cet article montre comment j’ai ajouté un écran d’état OLED à mon système Pi-Hole basé sur Raspberry Pi.

Pi-Hole est un bloqueur de publicités à l’échelle du réseau que vous pouvez exécuter sur un Raspberry Pi. Il fonctionne bien sur tous les modèles Pi et est un projet idéal pour le matériel plus ancien. Vous pouvez en savoir plus sur le site officiel de Pi-Hole.

Après avoir configuré Pi-Hole sur un Raspberry Pi B+, je voulais un moyen d’ajouter un écran afin de pouvoir vérifier rapidement qu’il fonctionnait. J’ai donc ajouté un écran OLED 0.96″ bon marché et un interrupteur momentané. Le commutateur permet à l’écran d’afficher des détails supplémentaires si nécessaire. La LED est là pour ajouter une belle lueur colorée à la boîte mais bien sûr c’est facultatif.

Pi-Hole avec écran OLED

Configuration matérielle de l’écran d’état OLED

La configuration matérielle requise est assez basique.

  • Raspberry Pi (tout modèle mais idéalement vous voulez un port Ethernet)
  • Carte SD (8 Go ou plus recommandés mais 4 Go fonctionneront)
  • Source de courant
  • Connexion réseau
    • câble Ethernet
    • ou WiFi à bord
    • ou clé USB Wi-Fi
  • Moniteur (facultatif)
  • Clavier (facultatif)
  • Boîtier Pi (facultatif)

L’écran d’état et la mise à niveau du commutateur nécessitent :

  • Écran OLED avec interface I2C
  • Commutateur momentané
  • Câbles de démarrage pour connecter l’écran à l’en-tête GPIO
  • LED et résistance (en option)
  • Cadre ou support pour écran (facultatif)

Installation et configuration de Pi-Hole

L’installation de Pi-Hole est assez simple. Je ne veux pas vraiment reproduire la procédure ici. Au lieu de cela, je vais fournir un résumé de ce que j’ai fait avec des liens appropriés vers des guides supplémentaires. Selon vos préférences, vous pouvez utiliser SSH ou un clavier et un moniteur pour effectuer la configuration.

  • Créez une nouvelle carte SD Raspbian avec l’image “Raspbian Lite” et Etcher [guide]
  • Ajoutez un fichier texte vide nommé “ssh” à la partition de démarrage pour activer SSH [guide]
  • Mettre le Pi sous tension avec une nouvelle carte SD
  • Changez le mot de passe par défaut en quelque chose de sensé [guide]
  • Exécutez « sudo apt update » suivi de « sudo apt upgrade »
  • Obtenez l’adresse IP de Pi soit :
    • exécuter ifconfig sur le Pi
    • regarder dans les paramètres de votre routeur
    • à l’aide d’un scanner réseau
  • (facultatif) configurez votre routeur pour qu’il attribue toujours la même adresse IP à votre Raspberry Pi
  • Suivez l’une des procédures d’installation décrites sur la page Pi-Hole GitHub. J’ai utilisé « l’installation automatisée en une étape »

Câblage de l’écran et du commutateur

Le commutateur a été câblé directement à l’en-tête GPIO à l’aide de fils de liaison, puis collé sur le couvercle avec de la colle époxy en deux parties.

Câblage interne de l'écran d'état Pi-Hole

L’écran, l’interrupteur et la LED ont été câblés comme indiqué ci-dessous :

L’écran était alimenté par une broche 3.3V et la LED était alimentée par une broche GPIO.

Configuration de l’écran OLED

Les écrans OLED utilisant le protocole I2C sont assez faciles à connecter car vous pouvez utiliser des câbles de démarrage pour vous connecter directement à l’en-tête GPIO. La procédure pour en ajouter un à votre Pi et installer les bibliothèques se trouve dans mon tutoriel Comment utiliser un module d’affichage OLED.

Assurez-vous que vous pouvez exécuter les exemples de scripts Python et que votre écran fonctionne.

Matériel de commutation

Le commutateur peut être connecté directement à l’en-tête GPIO. Je l’ai connecté à GPIO21 (broche 40) et à la terre (broche 39). Le script définit GPIO21 comme « High » et il sera tiré « Low » lorsque le commutateur est enfoncé.

Installation de gpiozero

Le script Python utilisera gpiozero pour contrôler la LED et le bouton. Assurez-vous qu’il est installé en exécutant :

sudo apt install python3-gpiozero

Installation de scripts Python

Le script Python utilise l’API Pi-Hole. Cela permet au script de demander les données actuelles à Pi-Hole, puis Python peut les formater pour les afficher à l’écran.

Téléchargez le script Python en utilisant :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/pihole/stats.py

et obtenez le fichier de police requis :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/pihole/VCR_OSD_MONO_1.001.ttf

Ensuite, faites en sorte que le Pi l’exécute au démarrage en éditant cron en utilisant :

crontab -e

et en ajoutant la ligne suivante à la fin :

@reboot python3 /home/pi/stats.py &

Votre fichier cron ressemblera à ceci :

# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
@reboot python3 /home/pi/stats.py &

Enregistrer et quitter en utilisant CTRL-X, Oui ensuite ENTRER.

Redémarrez le Pi et le script devrait afficher les données Pi-Hole à l’écran après 30 secondes. Ce délai donne au Pi le temps de se connecter au réseau avant d’essayer de demander des données à Pi-Hole. Appuyez sur le bouton pour faire défiler un ensemble supplémentaire de données à l’écran.

Cadre d’écran OLED

La lunette noire de l’écran a été imprimée en 3D pour enfermer l’écran OLED et son PCB. En raison des variations du module OLED, la lunette permet un peu de réglage. L’écran devait être positionné à la main puis collé en position. La lunette a été fixée au boîtier à l’aide de ruban adhésif double face.

Le fichier STL est disponible sur ma chaîne Thingiverse.

Voici une animation de base de la lunette imprimée en 3D :

Écran d’état Pi-Hole en action

Les trois écrans d’état disponibles sont visibles ci-dessous :

Exemples d'écran d'état Pi-Hole

Toutes les 30 secondes, l’écran principal défile et actualise les données. Cela donne une bonne indication que le script est toujours en cours d’exécution sans avoir besoin de vérifier quoi que ce soit d’autre.

  • Écran 1 (principal)
    • Pourcentage total bloqué
    • Nombre total de blocages
  • Écran 2
    • adresse IP
    • Pourcentage bloqué
    • Nombre total de blocages
    • Nombre total de requêtes
  • Écran 3
    • adresse IP
    • Utilisation du processeur
    • Mémoire utilisée/Mémoire totale
    • Espace disque utilisé/Espace disque total

L’étui que j’utilise est un étui « DesignSpark black » de Composants RS.

Réflexions sur le blocage des publicités

J’ai décidé d’essayer Pi-Hole parce qu’en tant que parent, je devais être en mesure de démontrer que j’avais le contrôle total de mon réseau et que les règles de mon foyer Internet étaient la loi. Cela visait généralement à assurer la sécurité des enfants utilisant mon WiFi plutôt que d’espionner les adultes.

Cela était particulièrement vrai lorsque les amis de mon fils apportaient des appareils compatibles Internet dans ma maison. Je ne voulais pas leur refuser la possibilité d’utiliser ces appareils, mais je n’avais aucun contrôle sur la façon dont ils étaient configurés. Les contrôles parentaux ou les applications sophistiquées peuvent aider vos propres enfants, mais vous ne pouvez pas les imposer aux visiteurs.

Le blocage des publicités est un sujet controversé, en particulier parmi ceux qui s’appuient sur les publicités pour générer un flux de revenus. C’est vrai pour ce site où la publicité permet de compenser les frais d’hébergement. J’ai toujours été dans deux têtes quant à savoir si je devais encourager les autres à utiliser un système qui supprimerait les publicités de ce site et des sites d’autres générateurs de contenu. Je comprends pourquoi les gens veulent le faire, mais je pense aussi que sur ce site, les publicités sont un petit prix à payer pour un contenu qui est généralement utile aux gens.

Mais le choix est finalement le vôtre.

  • AZDelivery I2C Display 128 x 64 Pixel 0.96 pouce, SSD1306 caractères de couleur blanche, écran compatible avec Arduino et Raspberry Pi incluant un E-Book!
    ✅ L'écran OLED I2C AZDelivery de 0,96 pouce est un écran à contraste élevé avec une haute résolution de 128 par 64 pixels et une technologie OLED innovante. ✅ Cet écran OLED I2C offre une connexion facile de l'écran avec Raspberry Pi and Co. et d'autres microcontrôleurs via l'interface I2C via seulement quatre broches. Grâce à l'adaptateur d'affichage intégré, le module peut être connecté directement au bus I2C. ✅ En changeant l'adresse I2C et en soudant un troisième contact, deux écrans peuvent fonctionner simultanément. ✅ Le module OLED peut être connecté à 3,3 V. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery Écran OLED I2C 128 x 64 Pixels, Caractères de Couleur Blanche, SSH1106 1,3 pouces compatible avec Arduino et Raspberry Pi incluant un E-Book!
    ✅ Le module OLED à contraste élevé avec un grand écran de 1,3 pouces et la technologie OLED innovante offre un affichage clair des éléments avec une haute résolution de 128 par 64 pixels. ✅ Cet écran I2C permet une connexion facile de l'écran avec Raspberry Pi et Co. via l'interface IIC via seulement quatre broches! ✅ Il est compatible avec des tensions de fonctionnement de 3,3 V pour Raspberry Pi et 5 V pour Microcontrôleurs compatibles ATMega328P. ✅ Grâce au contrôleur standard (SSH 1106), les bibliothèques pour Raspberry Pi et Co. sont déjà disponibles, ce qui rend la programmation un jeu d'enfant! Avec l'e-book gratuit d'AZ-Delivery, vous pouvez démarrer votre projet sans avoir à passer beaucoup de temps à configurer le produit. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • CleanTech Nettoyeur d'écran avec chiffon de nettoyage en microfibre
    ✔ PRODUIT DE QUALITÉ DÉVELOPPÉ EN ALLEMAGNE : nettoyant pour écran de haute qualité pour un nettoyage doux et compatible avec les matériaux des écrans, moniteurs, displays et écrans tactiles modernes. Le nettoyant pour écran convient aux smartphones, aux écrans TFT, aux écrans OLED, aux écrans mats, aux ordinateurs, aux lecteurs de livres électroniques, aux ordinateurs portables, aux tablettes et à de nombreux autres écrans. ✔ MATÉRIAU COMPATIBLE AUX REVÊTEMENTS D'ÉCRANS : le nettoyant pour écrans a été développé en tenant compte de la compatibilité et du nettoyage le plus doux possible des écrans modernes et des revêtements d'écran, ce qui permet de ramasser la saleté le plus délicatement possible sur les surfaces sensibles. ✔TISSU MICROFIBRE OPTIMISÉ : le spray nettoyant pour écran comprend le chiffon microfibre MagicShine qui, grâce à son poids optimisé en microfibres et en surface (GSM), permet de nettoyer et de ramasser la saleté le plus délicatement possible sur les écrans, les écrans tactiles, les moniteurs et les surfaces sensibles brillantes. ✔ BIOLOGIQUEMENT DÉGRADABLE ✔ SANS ALCOOL ✔ SANS ODEUR : l'exigence de valeur et de compatibilité de nos produits spéciaux a la priorité absolue pour CleanTech en tant qu'entreprise allemande. Nous évitons donc autant que possible les parfums artificiels et l'alcool dans le nettoyant pour écran CleanTech et nous nous concentrons sur une compatibilité maximale. ✔À PROPOS DE CLEANTECH : le siège social et le développement de la société se trouvent en Allemagne et plusieurs partenaires de production sont actifs dans l'UE. En tant qu'entreprise spécialisée dans le développement de revêtements de surface, de solutions de nettoyage spéciales et de produits chimiques axés sur la durabilité et la compatibilité.

Thomas

Fan de Raspberry Pi de la première heure, je suis l'évolution de ces micro-pc depuis maintenant 5 ans. En plus de l'actualité je propose de nombreux tutoriels pour vous aider à exploiter pleinement votre nano-ordinateur côté domotique ou retro-gaming.