Go Down

Topic: Wemos D1 Mini inserir 2 modulos na mesma rede (Read 293 times) previous topic - next topic

joaquim_lopes

May 11, 2017, 07:51 pm Last Edit: May 11, 2017, 08:37 pm by CrossRoads
Boa tarde malta.

Tenho um pequeno problema. Tenho 2 dispositivos Wemos d1 mini que utilizam o esp8266. No programa de cada um coloquei um ip diferente para cada. No entanto sempre que o 1o se liga a rede wifi o outro nao se consegue ligar.
Alguém me consegue ajudar neste caso?
Vai em baixo o código de cada um. Não tem nada de especial, apenas para ligar mesmo. Partes do código foram tiradas de outros códigos na internet e exemplos.

Obrigado desde já.

Codigo 1º
Code: [Select]


const char *ssid = "ssid"; //  your network SSID (name)
const char *passwd = "pass";    // your network password (use for WPA, or use as key for WEP)

IPAddress ip(192, 168, 1, 90); // this 3 lines for a fix IP-address
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);


void setup() {
 //Initialize serial and wait for port to open:
 Serial.begin(9600);


 // attempt to connect to Wifi network:
 while (WiFi.status() != WL_CONNECTED) {
   Serial.print("Attempting to connect to SSID: ");
   Serial.println(ssid);
   // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
   WiFi.config(ip, gateway, subnet);
   WiFi.begin(ssid , passwd);
   

   // wait 10 seconds for connection:
   delay(10000);
 }
 
 Serial.println("Connected to wifi");
 printWifiStatus();

 Serial.println("\nStarting connection to server...");
 
}



void loop() {

   Serial.println("Enviado");
   delay(3000);
 
}


void printWifiStatus() {
 // print the SSID of the network you're attached to:
 Serial.print("SSID: ");
 Serial.println(WiFi.SSID());

 // print your WiFi shield's IP address:
 IPAddress ip = WiFi.localIP();
 Serial.print("IP Address: ");
 Serial.println(ip);

 // print the received signal strength:
 long rssi = WiFi.RSSI();
 Serial.print("signal strength (RSSI):");
 Serial.print(rssi);
 Serial.println(" dBm");
}



Codigo 2º
Code: [Select]


const char *ssid = "ssid"; //  your network SSID (name)
const char *passwd = "pass";    // your network password (use for WPA, or use as key for WEP)

IPAddress ip(192, 168, 1, 90); // this 3 lines for a fix IP-address
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);


void setup() {
 //Initialize serial and wait for port to open:
 Serial.begin(9600);


 // attempt to connect to Wifi network:
 while (WiFi.status() != WL_CONNECTED) {
   Serial.print("Attempting to connect to SSID: ");
   Serial.println(ssid);
   // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
   WiFi.config(ip, gateway, subnet);
   WiFi.begin(ssid , passwd);
   

   // wait 10 seconds for connection:
   delay(10000);
 }
 
 Serial.println("Connected to wifi");
 printWifiStatus();

 
}



void loop() {

   Serial.println("Enviado 2");
   delay(3000);
 
}


void printWifiStatus() {
 // print the SSID of the network you're attached to:
 Serial.print("SSID: ");
 Serial.println(WiFi.SSID());

 // print your WiFi shield's IP address:
 IPAddress ip = WiFi.localIP();
 Serial.print("IP Address: ");
 Serial.println(ip);

 // print the received signal strength:
 long rssi = WiFi.RSSI();
 Serial.print("signal strength (RSSI):");
 Serial.print(rssi);
 Serial.println(" dBm");
}

bubulindo

Ambos tem a mesma morada IP... altera o IP dum para 192.168.1.91 (por exemplo) e deve funcionar.
This... is a hobby.

joaquim_lopes

Boas. Enganei-me a colocar.
Eles tem IPS diferentes.

joaquim_lopes

Resolvido.
Para quem estiver interessado e aparecer o mesmo problema, teve a ver com um codigo carregado anteriormente que estava a colocar os esp8266 a funcionar como STA e AP ao mesmo tempo.
Foram acrescentadas as seguintes linhas de código no setup:
    WiFi.softAPdisconnect();
    WiFi.disconnect();
    WiFi.mode(WIFI_STA);
    delay(100);
O que resolveu.

Obrigado a todos.

Go Up