summaryrefslogtreecommitdiff
path: root/_PROGRAMs/C++/WiFi.md
blob: fc47f8802b64c9f7451c6a64a3f20fced07b2d11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

```C++
const char *ssid = "ssid";
const char *pass = "passwd";

bool setupWiFi(const char *wifi_ssid, const char *wifi_pass) {
	digitalWrite(LED_BUILTIN, LOW); // включаем светодиод
	Serial.print("\n\nSetup WiFi: ");
	Serial.println(ssid);
	WiFi.mode(WIFI_STA);
	uint8_t countWiFi = 20; // кол-во попыток соединения
	uint16_t countPause = 500; // пауза между попытками
	WiFi.begin(wifi_ssid, wifi_pass);
	while ((WiFi.status() != WL_CONNECTED) && countWiFi--) {
		Serial.print(countWiFi);
		Serial.print('>');
		delay(countPause);
	}
	digitalWrite(LED_BUILTIN, HIGH); // выключаем светодиод
	if (WiFi.status() == WL_CONNECTED) {
		// индикация IP
		Serial.print("\nWiFi connected - OK !\n");
		Serial.println(WiFi.localIP());
		// индикация силы сигнала
		int16_t dBm = WiFi.RSSI();
		Serial.print("RSSI dBm = ");
		Serial.println(dBm);
		quality_RSSI = 2 * (dBm + 100);
		if (quality_RSSI >= 100)
			quality_RSSI = 100;
		Serial.print("RSSI % = ");
		Serial.println(quality_RSSI);
		Serial.println();
		return true;
	} else {
		return false;
	}
}
```