Je participe a un projet qui consiste a contrôler une série de LED via une page HTML en passant par une connexion wifi. Les étapes sont les suivantes :
Lors de la mise sous tension le module Redfly émet un réseau wifi adhoc
On établit une connexion au réseau Adhoc puis on entre les paramètres de son réseau wifi personnel (box internet) via l'adresse IP de la carte Redfly
On passe ainsi en mode infrastructure et lors des prochaines mise sous tension la connexion a la box est établie automatiquement.
Le problème est que selon les endroits, le réseau Adhoc n'est pas détecté; il est détecté uniquement dans des zones où il n'y a pas ou peu de réseaux wifi (école, champs,...) mais en zone "densement peuplée" aucun réseau correspondant a celui défini dans les paramétrage du code n'apparait et seul les réseaux wifi des box a proximité sont détectés.
A priori il ne s'agit pas du code puisque dans certains cas j'arrive a me connecter au réseau Adhoc, la seule réponse que je vois est qu'il y a trop de réseaux wifi a proximité. Quelqu'un aurait-il une solution a m'apporter ?
PS: Je ne sais pas si c'est le bon endroit où poster mon problème et si c'est le cas je m'en excuse.
Typiquement un problème de canal wifi. Quand ça ne marche pas, prenez un pc et utiliser un logiciel de scan wifi pour déterminer le canal le moins encombré. Reprogrammer votre wifi avec ce canal et testez, ça devrait marcher
Merci pour votre réponse. J'ai changé le canal de mon réseau wifi (domicile)mais je ne vois toujours pas le wifi du Redfly, serait-ce celui du Redfly qu'il faut changer et si oui comment procéder ?
J'ai modifié le canal WIFI du module redfly mais je ne vois toujours le réseau wifi adhoc
Voila mon code qui permet de créer le réseau adhoc sur le canal 13 :
///////////////////////////// Initialisation ////////////////////////////////
void initialization (void) {
uint8_t ret;
loadConfig();
//init the WiFi module on the shield
ret = RedFly.init(); //LOW_POWER MED_POWER HIGH_POWER
//if (!ret) {
RedFly.scan();
adhoc = ret = RedFly.join(WiFiConfig.ssid, WiFiConfig.pwd, INFRASTRUCTURE);
if (ret) {
char network[16];
//char FREE_MARTINE[16]; //Initialisation wifi domestique
sprintf(network, "TestNetwork%d", WiFiConfig.id);
ret = RedFly.join(network, IBSS_CREATOR, 13); //channel changed from 10 to 13
}
if (!ret) {
currentIP = adhoc ? serverIP : WiFiConfig.addr;
ret = RedFly.begin(currentIP, gateway, netmask);
}
if (adhoc) { // only open DHCP/DNS ports in adhoc config
// listen for DHCP messages on DHCP_SERVER_PORT (UDP)
hDHCP = RedFly.socketListen(PROTO_UDP, DHCP_SERVER_PORT);
// listen for DNS messages on DNS_SERVER_PORT (both UDP and TCP on the same port)
hDNSTCP = RedFly.socketListen(PROTO_TCP, DNS_SERVER_PORT);
hDNSUDP = RedFly.socketListen(PROTO_UDP, DNS_SERVER_PORT);
}
// listen for UDP messages on port 80 (to test echo)
hHTTPUDP = RedFly.socketListen(PROTO_UDP, HTTP_SERVER_PORT);
// 10 blinks on error, 5 blinks on AP connection and 3 blinks on adhoc connection
blink(LEDPIN, ret ? 10 : (adhoc ? 3 : 5));
}