Go Down

Topic: Arduino Mega avec Shield Redfly - Problème pour scanner les réseaux en Wifi (Read 609 times) previous topic - next topic

zelda007

Bonjour,

J'ai fais récemment l'acquisition d'une arduino Mega avec un shield RedFly pour le WIfi.
Le duo fonctionne relativement bien cependant, j'ai un problème pour récupérer la puissance des bornes (RSSI).
Il y a bien une fonction get_rssi mais elle ne fonctionne que lorsque qu'on est pas connecté à une borne Wifi.

Je m'explique quand je me connecte à ma Livebox chez moi à partir du Shield RedFly, la connexion fonctionne parfaitement mais quand je scanne les réseaux pour obtenir le RSSI et bien cette valeur ne change plus et reste constante peut importe la distance entre le récepteur et la borne. Par contre si je me déconnecte de mon réseau, et que je reteste alors ca marche, le RSSI se met bien à jour !

Voilà, je trouve ca bizarre, je pense que je dois faire une erreur non ?

Voici mon code pour scanner les réseaux :
Code: [Select]

uint8_t scanner()
{
  uint8_t ret, mode, rssi = 0;
  char buf[64];

  //scan for wireless networks
  buf[0] = 0;
  ret = RedFly.scan(4, buf, &mode, &rssi); // channel 4
  do
  {
    if((ret == 0) && rssi)
    {
      String tmp = String(buf);
     
      //show mode (0=Open, 1=WPA, 2=WPA2, 3=WEP) and RSSI
      socket.debugout(buf);
      sprintf_P(buf, PSTR(", rssi %d"), rssi);
      socket.debugoutln(buf);
     
      if (tmp == "Livebox-c2e4") // le nom de mon AP :)
      {
          return rssi;
      }
    }
    buf[0] = 0;
    ret = RedFly.nextscan(buf, &mode, &rssi);
  }while((ret == 0) && (rssi != 0));
}

Voilà, je vous remercie par avance :)

PS : C'est dans le cadre d'un projet étudiant ;)


Artouste


Personne n'a une idée ? Je suis vraiment coincé :(

Bonjour
ce n'est pas évident de renseigner sans disposer de la carte.
rapides réflexions après avoir regardé
ta redfly a le dernier firmware connu ? à priori 4.5.0 ?

ensuite voir peut etre du coté d'une incompatibilité entre les methodes

----------
uint8_t getrssi(void)
    Returns the signal strengh (in dBm) of the current connection.
Qui a priori renvoi la valeur courante du RSSI connecté

uint8_t scan(void)
uint8_t scan(char ssid[], uint8_t *mode, uint8_t *rssi)
    Scan for wireless networks and return SSID, Mode and RSSI. If the scanning was successful the return vaule is 0.
    ssid - SSID (if set on function call, the module scans for networks with hidden SSID)
    mode - Mode: 0=Open, 1=WPA, 2=WPA2, 3=WEP
    rssi - RSSI (signal strengh)

uint8_t nextscan(char ssid[], uint8_t *mode, uint8_t *rssi)
    Scan for next wireless networks and return SSID, Mode and RSSI. If the scanning was successful the return vaule is 0.
    ssid - SSID
    mode - Mode
    rssi - RSSI

et le scan qui renvoi le RSSI des réseau à proximité



zelda007

Bonjour,

Merci pour vitre réponse.
Le firware est le 4.4.5 comment puis je le mettre à jour ?

Sinon, j'ai bien vu dans la doc la différence entre les deux fonctions, je vais voir si je n'ai pas fait une bêtise au cas où ;)

Artouste


Bonjour,

Merci pour vitre réponse.
Le firware est le 4.4.5 comment puis je le mettre à jour ?



Là a part te donner le lien de cette page, je prend un joker  :smiley-mr-green:
http://www.watterott.net/projects/redfly-shield

zelda007

Flute, y'a de la connectique Hardware à faire, je pense que je ne vais rien faire :D (sinon je vais tout cramer)

Par contre, pour le problème initial, rien à faire les RSSI ne se mettent pas à jour quand je suis connecté à un AP.... Si je suis déconnecté ca marche bien :( Bizarre....

zelda007

J'ai fouillé un peu et j'ai trouvé que j'avais un code erreur 241 :
Quote
241  (-15) This error is sent when the JOIN cmd is sent more than once or the SCAN cmd is sent after the module has already associated with a network. 

Donc si je comprends bien, c'est impossible de scanner les réseaux (pour récupérer les RSSI) quand on est déjà connecté à un network ?

Go Up