Bonjour tout le monde !
Pour le fun je me suis lancé dans un projet de panneaux d’affichages se contrôlant par telnet et connectés en wifi.
Le but étant de laisser un message depuis mon smartphone, mon ordi, ou n’importe quel autre matériel connecté au wifi et possédant un client telnet.
—
Le matériel que j’ai utilisé :
Une carte arduino UNO,
Une shield Tellymate,
Une shield Wifly
—
Le montage :
On peut pas faire plus simple ^^
Ps: Je sais pas vous, mais moi je trouve que les couleurs des 2 shields et de l’arduino vont bien ensemble 🙂
—
Le code :
#include <WiFly.h> // La librairie Wifly de sparkfun char passphrase[] = "LaClefWpaDuVoisin"; char ssid[] = "LeNomDuWifiDuVoisin"; // Humour 😉 // Crée un objet Server sur le port 80 Server server(80); // Port 23 ce serait mieux pour du telnet mais pas grave // setup() void setup() { WiFly.begin(); // Initialise la librairie Wifly Serial.begin(57600); // Initialise le port série Serial.print("Connection to "); // Affiche le ESSID du wifi Serial.println(ssid); if (!WiFly.join(ssid, passphrase)) { // Se connecte au wifi Serial.println("Connection Failed !"); for(;;); // En cas d'erreur on stop tout } Serial.print("IP address : "); // Si tout va bien on affiche l'ip de l'arduino Serial.println(WiFly.ip()); server.begin(); // Et on lance le serveur TCP } // loop() void loop() { Client client = server.available(); if (!client) return; // Si un client est connecté à l'arduino client.println("Msg: "); // On lui dit bonjour //Serial.print("\x1B""e"); // On efface l'écran while (client.connected()) { // Et tant qu'il est connecté if (client.available()) { // Et qu'il nous envoie du texte char c = client.read(); // On écoute ce qu'il a à dire client.print(c); // On lui renvoie Serial.print(c); // et on affiche sur le port série } } delay(100); // On attend que toutes les données arrivent à destination client.stop(); // Et on coupe la communication }
Remarque : J’ai commenté la ligne qui efface l’écran, afin de garder l’ip en haut de l’écran pendant mes tests.
—
Et le résultat :
Remarque : Ne pas oublier de placer les jumper pour avoir 57600 bauds, et les caractéristiques TV qui vont bien 😉
Voir : http://www.batsocks.co.uk/products/Other/TellyMate_UserGuide_Jumpers.htm
Enjoy ! 🙂
Help !
J’essaye grosso-modo de faire la même chose, mais impossible de me connecter via la lib WiFly !
Le programme s’arrête à WiFly.begin();
PS : j’arrive a m’y connecter via la console (Serial Moditor) d’Arduino et a le configurer correctement.
Librairie WiFly version 1 ou version 2 ?
J’utilise la version 2 disponible sur le github de sparkfun.
https://github.com/sparkfun/WiFly-Shield/tree/master/src/WiFly
Suivant le type de cryptage il faut modifier le WiFly.join() :
Pas de cryptage : WiFly.join(« ssid »)
Mode WPA : WiFly.join(« ssid », « passphrase »)
Mode WEP : WiFly.join(« ssid », « passphrase », WEP_MODE)
Yep, merci de ta réponse !
J’ai déjà testé cette lib, elle ne compile même pas (elle utilise une ancienne lib WProgram.h au lieu de Arduino.h)
J’ai déjà posté sur un forum pour expliquer un peu ce que j’ai déjà testé et ce qui ne marche pas :
http://forum.snootlab.com/viewtopic.php?f=18&t=548
Tu dois utiliser arduino 0023, WProgram est inclut dans les anciennes versions d’arduino.
Avec arduino 1.0 ça ne marchera pas.
testé avec Arduino 0023 et la lib alpha2 de sparkfun : pareil ! Le programme se fige sur WiFly.begin();
😥
Peut être que cela peut aider, remplacer le WiFly.begin(); par :
WiFly.setUart(&Serial);
WiFly.begin();
Cependant, j’ai un autre problème, l’exemple fonctionne, je peut ouvrir une connection sur le port 80 (en l’occurence un telnet) et envoyer un message, par contre le résultat est bizarre, il me triple toutes les lettres !
Par exemple si j’envoie hello, j’obtiens un joli « hheelllloo » dans le moniteur série… je suis a 9600 bauds, peut être que ça vient de ça ?