Skyduino:~#
Articles
arduino, programmation

[Arduino] Panneaux d’affichage (rudimentaire) par wifi

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 ! 🙂

Discussion

6 réflexions sur “[Arduino] Panneaux d’affichage (rudimentaire) par wifi

  1. 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.

    Publié par Seuf | 28 Mai 2012, 20 h 55 min
  2. 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

    Publié par Seuf | 28 Mai 2012, 22 h 38 min
    • Tu dois utiliser arduino 0023, WProgram est inclut dans les anciennes versions d’arduino.
      Avec arduino 1.0 ça ne marchera pas.

      Publié par skywodd | 29 Mai 2012, 8 h 54 min
  3. testé avec Arduino 0023 et la lib alpha2 de sparkfun : pareil ! Le programme se fige sur WiFly.begin();
    😥

    Publié par Seuf | 29 Mai 2012, 12 h 05 min
    • 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 ?

      Publié par Thomas | 5 juillet 2012, 16 h 42 min

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.