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 :
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));
}
zelda007:
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é
Flute, y'a de la connectique Hardware à faire, je pense que je ne vais rien faire (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....