
Dans cet article,je vais vous présentez mon moniteur réseau fait maison qui allume une LED quand l’appareil est connecté sur le réseau.
Chaque LED allumée correspond à un périphérique connecté de mon réseau via un petit script qui lance un ping toutes les minutes, si le ping répond la LED s’allume, si il répond pas la LED s’éteint.
Liste du matériels :
- 1 Raspberry pi.
- 8 LED.
- 1 Potentiomètre (si on veux pouvoir diminuer nos LED).
- 1 Breadboard.
- Des fils mal et femelle.
- 1 panneau de bois pour fixer le tous.
- 1 feuille a4 autocollante.
- 1 clef wifi
Branchement
On peut brancher 8 led max sur 1 Raspberry type B, une sur chaque gpio
Donc on branche le positif de nos LED sur les GPIO et on relies toutes les masses sur le 0v (Ground) du Raspberry.
Vous pouvez brancher un potentiomètre sur la masse mais ce n’est pas obligatoire.
Programmation
Niveaux code on va avoir 2 scriptes, un qui va se lancer au démarrage du Raspberry et passer tous les GPIO en sortie, le deuxième va se lancer toutes les minutes va faire un ping et allumer ou éteindre la LED suivant la réponse.
C’est parti on se connecte au pi en SSH et on va commencer par installer la librairie wiringpi (dispo ici).
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git://git.drogon.net/wiringPi cd wiringPi ./build
Pour tester.
gpio readall
Doit vous afficher un tableau avec tous les GPIO et leur état.
Maintenant on va créer le premier script quo mais les GPIO en sortie
sudo nano gpio.sh
on copie le scripte:
#!/bin/bash
sudo gpio mode 0 out sudo gpio mode 1 out sudo gpio mode 2 out sudo gpio mode 3 out sudo gpio mode 4 out sudo gpio mode 5 out sudo gpio mode 6 out sudo gpio mode 7 out sudo gpio write 0 0 sudo gpio write 1 0 sudo gpio write 2 0 sudo gpio write 3 0 sudo gpio write 4 0 sudo gpio write 5 0 sudo gpio write 6 0 sudo gpio write 7 0
On sauvegarde CTRL-X.
On le rend exécutable.
sudo chmod +x gpio.sh
On crée le deuxième scripte.
sudo nano ping.sh
on colle le code et on modifie les ip :
#!/bin/bash if ping -n -c 1 192.168.1.16 >/dev/null 2>&1; then sudo gpio write 1 1 ; else sudo gpio write 1 0 ; fi if ping -n -c 1 192.168.1.17 >/dev/null 2>&1; then sudo gpio write 5 1 ; else sudo gpio write 5 0 ; fi if ping -n -c 1 192.168.1.13 >/dev/null 2>&1; then sudo gpio write 4 1 ; else sudo gpio write 4 0 ; fi if ping -n -c 1 192.168.1.15 >/dev/null 2>&1; then sudo gpio write 3 1 ; else sudo gpio write 3 0 ; fi if ping -n -c 1 192.168.1.56 >/dev/null 2>&1; then sudo gpio write 2 1 ; else sudo gpio write 2 0 ; fi if ping -n -c 1 192.168.1.39 >/dev/null 2>&1; then sudo gpio write 7 1 ; else sudo gpio write 7 0 ; fi if ping -n -c 1 192.168.1.20 >/dev/null 2>&1; then sudo gpio write 6 1 ; else sudo gpio write 6 0 ; fi if ping -n -c 1 192.168.1.11 >/dev/null 2>&1; then sudo gpio write 0 1 ; else sudo gpio write 0 0 ; fi
On sauvegarde CTRL-X
On le rend executabke
sudo chmod +x ping.sh
On peut tester, lancez d’abord gpio.sh
./gpio.sh
Ensuite
./ping.sh
Les LEDs devraient s’allumer suivant les appareils connecter sur votre box, mais pour actualiser les LEDs faudra relancer manuellement le script ping.sh pas très pratique donc on va ajouter ça dans le fichier Crontab.
sudo crontab -e
on ajoute le script gpio au démarrage
@reboot sh /home/pi/gpio.sh > /home/pi/gpio.lo 2>&1
Et le script ping.sh pour qu’il se lance toute le minutte
* * * * * sh /home/pi/ping.sh > /home/pi/ping.sh 2>&1
CTRL-X pour sauvegarder
On redémarre le Raspberry.
sudo reboot
Voila j’espère que cet article vous aura plus n’hésitez pas à poser vos questions dans les commentaires.