Un module Arduino (équipé d'un écran LCD et d'un controlleur Ethernet) qui se connecte à un routeur DD-WRT avec le protocole TELNET. Le module Arduino lit la consommation Internet et l'affiche sur l'écran LCD.
Tout dabord, votre routeur principal (celui connecté directement sur le modem de votre ISP) doit être flashé avec le firmware de DD-WRT.com. Ensuite, le calcul du bandwitch et Telnet doivent être activés dans la configuration de votre routeur.
Si vous avez tous les prérequis précédent, effectuer tout simplement les raccordements indiqués dans la section Schéma et uploadé le code tel qu'indiqué dans la section Code.
- Un routeur avec un firmware DD-WRT
- Arduino UNO ou une variante
- ENC28J60 ou EthernetShield
- LCD screen : (compatible avec le driver Hitachi HD44780)
- pin headers : pour l'écran LCD et/ou le module ENC
- 220Ω Resistor
- Potentiomètre : résistance maximale 10kΩ
Vous devez ajouté dans votre routeur ce script de démarrage : bandwitch.txt. Celui-ci créera un script dans le dossier temporaire du Root à chaque redémarrage. Il aurait été possible de mettre le script dans l'espace de stockage permanent JFFS mais malheuresement cette solution ne marche pas pour tous les routeurs. Et puisque que les fichiers temporaires sont supprimés après chaque démarrage, il s'agit de la seule solution que j'ai trouvé. C'est moche mais ça fonctionne.
Le code à uploader dans votre Arduino est celui du fichier Code.ino.
Si vous utilisé le module Ethernet ENC28J60, vous devez ajouté la librairie <UIPEthernet.h> disponible ici. Vous devrez downloadé le zip du projet complet avec le button "clone or download" sur la page Git puis ajouté dans votre l'IDE le zip [IDE->Croquis->Inclure une bibliothèque->Ajouter bibliothèque ZIP ...]. Sinon, si vous avez le Shield Ethernet, vous devez utilisé la librairie <Ethernet.h> qui est déjà inclut dans l'IDE d'Arduino.
- Vous devez commentez la ligne du #include approprié du fichier Code.ino selon le module Ethernet que vous utiliserez (ligne 1 et 2).
- Vous devez aussi changé l'adresse IP de la ligne 18 pour celle de votre routeur.
- Ensuite, vous devez remplacé les valeurs des #Define de la ligne 4 et 5 avec le login et le mot de passe de votre routeur.
- Finalement, vous pouvez changé l'adresse MAC de votre Arduino à la ligne 13-15.
- ENC SCK ➜ Arduino pin 13
- ENC SO ➜ Arduino pin 12
- ENC SI ➜ Arduino pin 11
- ENC CS ➜ Arduino pin 10
- ENC VCC ➜ Arduino 3V3 pin
- ENC GND ➜ Arduino GND pin
- LCD RS ➜ Arduino pin 7
- LCD Enable ➜ Arduino pin 6
- LCD D4 ➜ Arduino pin 5
- LCD D5 ➜ Arduino pin 4
- LCD D6 ➜ Arduino pin 3
- LCD D7 ➜ Arduino pin 2
- LCD VDD ➜ Arduino 5V pin
- LCD VSS ➜ Arduino GND pin
- LCD R/W ➜ Arduino GND pin
- Potentiomètre + ➜ Arduino 5V pin
- Potentiomètre - ➜ Arduino GND pin
- LCD V0 ➜ Potentiomètre output
- LCD LED+ ➜ 220 ohm resistor ➜ Arduino 5V pin
- LCD LED- ➜ Arduino GND pin
- LCD RS ➜ Arduino pin 7
- LCD Enable ➜ Arduino pin 6
- LCD D4 ➜ Arduino pin 5
- LCD D5 ➜ Arduino pin 4
- LCD D6 ➜ Arduino pin 3
- LCD D7 ➜ Arduino pin 2
- LCD VDD ➜ Arduino 5V pin
- LCD VSS ➜ Arduino GND pin
- LCD R/W ➜ Arduino GND pin
- Potentiomètre + ➜ Arduino 5V pin
- Potentiomètre - ➜ Arduino GND pin
- LCD V0 ➜ Potentiomètre output
- LCD LED+ ➜ 220 ohm resistor ➜ Arduino 5V pin
- LCD LED- ➜ Arduino GND pin
...