Π‘ΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ESP32 ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ IoT-ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ WIFI_REASON_AUTH_EXPIRE Π² Π»ΠΎΠ³Π°Ρ
, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅Π΄ΠΎΡΠΌΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ ΡΠ°Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°Π» ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ. ΠΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΡΠΈΡΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ: ΠΎΡ Π±Π°Π½Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² ΠΏΠ°ΡΠΎΠ»Π΅ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°ΡΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠ΅ΡΠ°.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΠΈΠΏ ESP32 ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠΎΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈ Wi-Fi ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΠΊ Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ±ΠΎΠ΅Π², ΠΌΠ°ΡΠΊΠΈΡΡΡΡΡ ΠΏΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Arduino IDE ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠΉΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΡ WPA3 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ WPA2-PSK.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΡΠ°ΠΏΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΊΠΎΠ΄Π°. ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ IP-Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈΠΌΠ΅Π½ SSID ΠΈ ΡΠΊΡΡΡΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠ΅ΡΠ²ΠΎΠ΅, Π½Π° ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Π°Ρ ESP32 Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Wi-Fi, β ΡΡΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ. Π ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ°Π΄ΠΈΠΎΠΊΠ°Π½Π°Π»Ρ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π·ΠΊΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡ Π΄ΠΎ 500 ΠΌΠ ΠΈ Π²ΡΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ USB-ΠΏΠΎΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ Π΄Π΅ΡΠ΅Π²ΡΠΉ ΠΊΠ°Π±Π΅Π»Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅ΡΡΠ°, Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ°ΠΆΠΈΠ²Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ 3.0 Π, Π²ΡΠ·ΡΠ²Π°Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠΈΠΏΠ° ΠΈΠ»ΠΈ ΡΠ±ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Wi-Fi. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ USB-ΠΊΠ°Π±Π΅Π»Ρ Ρ ΡΠΎΠ»ΡΡΡΠΌΠΈ ΠΆΠΈΠ»Π°ΠΌΠΈ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π±Π»ΠΎΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ ΡΠΎΠΊΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1 Π.
Π’Π°ΠΊΠΆΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ . ESP32 ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ Π½Π°Π²ΠΎΠ΄ΠΊΠ°ΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ΄ΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π°, ΠΈΠ΄ΡΡΠΈΠ΅ ΠΊ Π΄Π°ΡΡΠΈΠΊΠ°ΠΌ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (OLED Π΄ΠΈΡΠΏΠ»Π΅ΠΈ, ΡΠ΅Π»Π΅, ΠΌΠΎΡΠΎΡΡ) ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π³ΠΎΠ»ΡΡ ΠΏΠ»Π°ΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊ ΠΠ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ Π½Π° ΡΠ°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡΠ»Ρ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠ΅ clones ΠΏΠ»Π°ΡΡ ESP32 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π±Π°Π·Π΅ ΡΠΈΠΏΠΎΠ² CP2102) ΡΡΠ΅Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². ΠΡΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈΠ»ΠΈ COM-ΠΏΠΎΡΡ ΠΈΡΡΠ΅Π·Π°Π΅Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ USB-UART ΠΌΠΎΡΡΠ°, Π° Π½Π΅ Π² ΡΠ°ΠΌΠΎΠΌ Wi-Fi.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡ Π΅ΠΌΠΊΠΎΡΡΡΡ 10-22 ΠΌΠΊΠ€ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΈΠ½Π°ΠΌΠΈ 3.3V ΠΈ GND Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΠΏΠ»Π°ΡΠ΅. ΠΡΠΎ ΡΠ³Π»Π°Π΄ΠΈΡ ΠΏΡΠ»ΡΡΠ°ΡΠΈΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΠΈΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΏΠ΅ΡΠ½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡΠ΅Ρ, Π·Π½Π°ΡΠΈΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡΡΠ»Π°ΡΡ Π² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΈΠ±ΠΊΠΈ Π² ΡΠΊΠ΅ΡΡΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Arduino IDE
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ WiFi.begin(ssid, password) ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ
, Π½ΠΎ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠ»ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΈΠΊΠ»Π΅ loop Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ°ΡΡΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ, ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΅ΡΠ΅ Π΄ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»ΠΈΠ½ΠΊΠ°, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°ΠΉΠΌΠ°ΡΡΡ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠΊΠ» ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ°ΡΡΡΠ°. ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ: ΠΏΠΎΠΊΠ° WiFi.status() Π½Π΅ ΡΠ°Π²Π΅Π½ WL_CONNECTED, ΠΌΡ ΠΆΠ΄Π΅ΠΌ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΡΠΊΡ Π² ΠΏΠΎΡΡ. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ delay(500) Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² handshake.
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½ΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ β Π²ΡΠ±ΠΎΡ ΠΏΠ»Π°ΡΡ ΠΈ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄ΡΠ° Π² ΠΌΠ΅Π½Ρ Arduino IDE. ΠΠ»Ρ ESP32 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ»Π°Ρ, Π²Π²Π΅Π΄Ρ URL ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π‘ΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄ΡΠ° ΠΌΠΎΠ³ΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠΎΡΡΠ΅ΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ 802.11ax (Wi-Fi 6) ΠΈΠ»ΠΈ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΠΏΠ»Π°Ρ Π²ΡΠ±ΡΠ°Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DOIT ESP32 DEVKIT V1), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ»Π°ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ°Π·Π²ΠΎΠ΄ΠΊΡ ΠΏΠΈΠ½ΠΎΠ² ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Flash-ΠΏΠ°ΠΌΡΡΠΈ.
βοΈ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΊΠ΅ΡΡΠ°
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 5 ΠΠΡ ΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠΌ ΡΠΎΡΡΠ΅ΡΠ°
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ESP32 (ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ°ΡΡΠΎΡ 2.4 ΠΠΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠΎΡΡΠ΅Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ ΡΠ΅ΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (SSID) ΡΡΠ°Π·Ρ Π² Π΄Π²ΡΡ
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Ρ
(ΡΡΠ½ΠΊΡΠΈΡ Smart Connect), ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Π·Π°ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΈΡΡΡΡ ΠΊ ΡΠΎΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ° 5 ΠΠΡ, ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ WIFI_REASON_NO_AP_FOUND.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅ΠΉ Π½Π° ΡΠΎΡΡΠ΅ΡΠ΅: ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π³ΠΎΡΡΠ΅Π²ΡΡ ΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ SSID ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 2.4 ΠΠΡ. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, "Home_2.4G" ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ESP32 ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ Π½Π΅ΠΌΡ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°: ESP32 Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΊΠ°Π½Π°Π»Π°Ρ Ρ 1 ΠΏΠΎ 11. ΠΡΠ»ΠΈ ΡΠΎΡΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ±ΡΠ°Π» 12 ΠΈΠ»ΠΈ 13 ΠΊΠ°Π½Π°Π» (ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π² ΠΠ²ΡΠΎΠΏΠ΅, Π½ΠΎ Π½Π΅ Π² Π‘Π¨Π), ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ΅ΡΡ.
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° |
|---|---|---|
| ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ°ΡΡΠΎΡ | 2.4 ΠΠΡ (802.11 b/g/n) | ESP32 Π½Π΅ Π²ΠΈΠ΄ΠΈΡ 5 ΠΠΡ ΡΠ΅ΡΠΈ |
| ΠΠ°Π½Π°Π» Wi-Fi | 1, 6 ΠΈΠ»ΠΈ 11 | ΠΠ΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΈΠ³Π½Π°Π» Π½Π° ΠΊΡΠ°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° |
| Π¨ΠΈΡΠΈΠ½Π° ΠΊΠ°Π½Π°Π»Π° | 20 ΠΠΡ | ΠΠΎΠΌΠ΅Ρ ΠΈ ΠΏΡΠΈ ΡΠΈΡΠΈΠ½Π΅ 40 ΠΠΡ |
| Π Π΅ΠΆΠΈΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ | WPA2-PSK (AES) | ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ WEP ΠΈΠ»ΠΈ WPA3 |
ΠΠΎΡΠ΅ΠΌΡ ΡΠΈΡΠΈΠ½Π° ΠΊΠ°Π½Π°Π»Π° 40 ΠΠΡ Ρ ΡΠΆΠ΅?
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠΈΠ½Ρ ΠΊΠ°Π½Π°Π»Π° 40 ΠΠΡ Π² ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΌ ΡΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ²Π°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡΠΌ. ESP32, ΠΎΠ±Π»Π°Π΄Π°Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°Π½ΡΠ΅Π½Π½ΠΎΠΉ, Ρ ΡΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ΅ΠΉ Π½Π° ΡΠΈΡΠΎΠΊΠΈΡ ΠΊΠ°Π½Π°Π»Π°Ρ , ΡΠ΅ΠΌ Π½Π° ΡΠ·ΠΊΠΈΡ 20 ΠΠΡ, Π³Π΄Π΅ ΡΠΈΠ³Π½Π°Π» ΡΠΈΡΠ΅ ΠΈ Π΄Π°Π»ΡΠ½ΠΎΠ±ΠΎΠΉΠ½Π΅Π΅.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ IP ΠΏΡΠΎΡΠΈΠ² DHCP: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠΈ
ΠΡΠΎΡΠΎΠΊΠΎΠ» DHCP, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ IP-Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ Π² ΡΠ΅ΡΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΡΠ΅ΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Keenetic ΠΈΠ»ΠΈ Mikrotik ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ). ΠΡΠ»ΠΈ ESP32 Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π΄ΡΠ΅Ρ, ΠΎΠ½ ΠΏΡΠ΅ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠΏΡΡΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ IP-Π°Π΄ΡΠ΅ΡΠ°.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ IP Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ IPAddress ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ config() ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ begin(). ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠΈΡ Π½ΡΠΆΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ, ΠΌΠΈΠ½ΡΡ Π΄ΠΎΠ»Π³ΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ DHCP. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ IP-Π°Π΄ΡΠ΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»ΡΡ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ, ΡΡΠΎ ΠΈ ΡΠΎΡΡΠ΅Ρ, ΠΈ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²Π°Π» Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
IPAddress local_IP(192, 168, 1, 150);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(8, 8, 8, 8);
if (!WiFi.config(local_IP, gateway, subnet, primaryDNS)) {
Serial.println("STA Failed to configure");
}
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΡΠ°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠΏΠ°Π΄Π°Π΅Ρ ΡΡΠ°ΠΏ negotiation Ρ ΡΠΎΡΡΠ΅ΡΠΎΠΌ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°ΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡ ΡΠ°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠΎΡΡΠ΅ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ WiFi.h
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° WiFi.h Π΄Π»Ρ ESP32 ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Arduino WiFi. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ WIFI_MODE_STA (ΠΊΠ»ΠΈΠ΅Π½Ρ), Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° (AP), Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ. Π‘Π±ΡΠΎΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Wi-Fi ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ WiFi.disconnect(true), Π³Π΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ true ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠΈΡΡΠΊΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ NVS (Non-Volatile Storage) ΠΏΠ°ΠΌΡΡΠΈ, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΡΠ»ΡΡ
ΡΠ΅ΡΡΡ
.
Π§Π°ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ³Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΌΠ΅Π½Ρ IP, ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΈΠ³Π½Π°Π»Π°. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ (auto-reconnect), ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· WiFi.setAutoReconnect(true).
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ SSID. Π‘ΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ESP32 ΠΈΠΌΠ΅Π»ΠΈ Π±Π°Π³, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ΡΠ΅ΠΉ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 32 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠ±ΡΠ΅Π·Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ°. Π₯ΠΎΡΡ Π² Π½ΠΎΠ²ΡΡ ΡΠ΄ΡΠ°Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΈΠΌΠ΅Π½ΠΈ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ. ΠΡΠ»ΠΈ ΠΈΠΌΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠΎΡΡΠ΅ΡΠ°.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
WiFi.disconnect(true)ΡΠ΄Π°Π»ΡΡΡΡΡ Π²ΡΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠΈ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π² EEPROM.
ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π»ΠΎΠ³ΠΈ
ΠΠ»Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ Π² Serial Monitor. ESP32 Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π·ΡΡΠ²Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ 2 (WIFI_REASON_AUTH_EXPIRE) ΡΠ°ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄ 201 (WIFI_REASON_CONNECTION_FAIL) ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° Π»ΠΈΠΌΠΈΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ MAC-ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ.
ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΊΠ΅ΡΡΠ° ΡΡΡΠΎΠΊΡ esp_log_level_set("*", ESP_LOG_DEBUG);. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Wi-Fi, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ°ΠΏΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ IP. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΡΠ½ΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΊΠ°Π·Π°, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅.
ΠΡΠ»ΠΈ Π² Π»ΠΎΠ³Π°Ρ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "Brownout detector was triggered", ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅. ΠΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΊΠΎΡΡΡΠ»ΠΈ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ β Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΊΠ°Π±Π΅Π»Ρ, Π±Π»ΠΎΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° GPIO ΠΏΠΈΠ½Ρ.
ΠΠΎΡΠ΅ΠΌΡ ESP32 ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, Π½ΠΎ ΡΡΠ°Π·Ρ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ?
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° watchdog timer (WDT). ΠΡΠ»ΠΈ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ»ΠΈ ΡΡΠΆΠ΅Π»ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π±Π΅Π· ΡΠ±ΡΠΎΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² Π² ΡΠ΅ΡΠΈ.
ΠΠ°ΠΊ ΡΠ±ΡΠΎΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Wi-Fi Π½Π° ESP32?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ WiFi.disconnect(true) Π² setup. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ true Π²Π°ΠΆΠ΅Π½ β ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΎΠΉ ΡΠ΅ΡΠΈ.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ Π°Π½ΡΠΈΠ²ΠΈΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ESP32?
ΠΡΡΠΌΠΎ β Π½Π΅Ρ, Π½ΠΎ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ Windows ΠΈΠ»ΠΈ Π°Π½ΡΠΈΠ²ΠΈΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΡ ESP32, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ firewall ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ IDE.
ΠΠ»ΠΈΡΠ΅Ρ Π»ΠΈ Π²Π΅ΡΡΠΈΡ Arduino IDE Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅?
ΠΠ°, ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ (1.8.x) ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π±Π°Π³ΠΈ Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ΅ ΠΏΠ»Π°Ρ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Arduino IDE 2.x ΠΈΠ»ΠΈ PlatformIO, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π»ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΡΠ΄ΡΠ° ESP32 ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.