Pineleman
New member
Добрый день) Написал код, который должен подключать esp-шку к 3-ем точкам доступа (AP1, AP2, AP3) и выводить их RSSI (уровень мощности сигнала). Принцип действия таков, что при успешном подключении к 1-ой точке, она выводит ее название и RSSI на "монитор порта". Если же она не смогла подключиться к ней, то она пробует сделать это со 2-ой точкой и вывести на экран тоже самое, и т.д. Ну, а если ни к одной не смогла подключиться, то выводит сообщение "no AP". Сам код:
Но почему-то, она пишет, что подключилась к AP2 и что RSSI = 31, хотя на телефоне создана AP1. Если моих работающих точек нет совсем, то он все равно продолжает писать тоже самое. Пример:
В чем может быть проблема?
Код:
#include "ESP8266WiFi.h"
const char* ssid1 = "AP1";
const char* ssid2 = "AP2";
const char* ssid3 = "AP3";
const char* pass1 = "qwerty1234567890";
const char* pass2 = "qwerty1234567890";
const char* pass3 = "qwerty1234567890";
long rssi = WiFi.RSSI();
void setup()
{
Serial.begin(9600);
WiFi.mode(WIFI_STA);
}
void loop()
{
WiFi.begin(ssid1,pass1);
if (WiFi.status() == WL_CONNECTED)
{
Serial.print(" AP1 ");
Serial.print("RSSI:");
Serial.println(rssi);
//WiFi.disconnect();
delay(1000);
}
else if (WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid2, pass2);
Serial.print(" AP2 ");
Serial.print("RSSI:");
Serial.println(rssi);
//WiFi.disconnect();
delay(1000);
}
else if (WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid3, pass3);
Serial.print(" AP3 ");
Serial.print("RSSI:");
Serial.println(rssi);
//WiFi.disconnect();
delay(1000);
}
else
{
Serial.println(" no AP");
delay(1000);
}
}
Код:
AP2 RSSI:31
AP2 RSSI:31
AP2 RSSI:31
AP2 RSSI:31
AP2 RSSI:31
AP2 RSSI:31
AP2 RSSI:31