ESP8266 ΠΈ Wi-Fi: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΈ настройкС

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ESP8266 стал настоящСй Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ Π² ΠΌΠΈΡ€Π΅ IoT-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² благодаря своСй доступности, Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ ΡΠ½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ ΠΈ встроСнному ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Wi-Fi. Однако ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с трудностями ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ устройства ΠΊ бСспроводной сСти. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх Π½ΡŽΠ°Π½ΡΠ°Ρ… β€” ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π΄ΠΎ диагностики Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ классичСских Arduino, Π³Π΄Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ трСбовался Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ethernet-шилд, ESP8266 ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Wi-Fi-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° Ρ‡ΠΈΠΏΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ управлСния. Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ устройство Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСти, особСнности AT-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ "ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ" Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий модуля.

ΠœΡ‹ рассмотрим Ρ‚Ρ€ΠΈ основных способа ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: Ρ‡Π΅Ρ€Π΅Π· AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с заводской ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ), с использованиСм Arduino IDE (для кастомных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²) ΠΈ Ρ‡Π΅Ρ€Π΅Π· популярныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ MicroPython. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ диагностикС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” ΠΎΡ‚ ошибок Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² IP-адрСсов Π² локальной сСти.

1. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ESP8266: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ настройкС Wi-Fi, Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ESP8266 Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. БущСствуСт Π±ΠΎΠ»Π΅Π΅ дСсятка ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ этого Ρ‡ΠΈΠΏΠ° β€” ΠΎΡ‚ ESP-01 с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Π΄ΠΎ NodeMCU с USB-ΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΈ встроСнным стабилизатором напряТСния. КаТдая вСрсия ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ питания.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ:

  • πŸ”Œ ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅: ESP8266 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ 3.3Π’ с Ρ‚ΠΎΠΊΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 300 мА (ΠΏΡ€ΠΈ ΠΏΠΈΠΊΠΎΠ²Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ… Π΄ΠΎ 500 мА). ИспользованиС Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ источника β€” основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° сбросов модуля.
  • πŸ”§ ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°: ЗаводскиС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (особСнно ESP-01) часто ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с AT-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ вСрсии 0.21 ΠΈΠ»ΠΈ 0.40. Для соврСмСнных Π·Π°Π΄Π°Ρ‡ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π΄ΠΎ 1.7.4+.
  • πŸ“‘ АнтСнна: Π’ модулях Ρ‚ΠΈΠΏΠ° ESP-12E/F встроСнная Π°Π½Ρ‚Π΅Π½Π½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с мСталличСскими корпусами. Для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ сигнала ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся внСшняя Π°Π½Ρ‚Π΅Π½Π½Π° с Ρ€Π°Π·ΡŠΡ‘ΠΌΠΎΠΌ IPEX.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ: Ссли Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ESP8266 ΠΊ Arduino ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ устройству с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ 5Π’, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ напряТСния ΠΈΠ»ΠΈ логичСский ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€. ΠŸΠΎΠ΄Π°Ρ‡Π° 5Π’ Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹ RX/TX ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠœΠΎΠ΄ΡƒΠ»ΠΈ ESP-01 с синими свСтодиодами часто ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° Π²Ρ‹Π²ΠΎΠ΄Π΅ GPIO0. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ сбросам ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚Π°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.
πŸ“Š Какой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ESP8266 Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅?
ESP-01
NodeMCU
Wemos D1 Mini
ESP-12E/F
Π”Ρ€ΡƒΠ³ΠΎΠΉ

2. Бпособ 1: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для заводской ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ)

Если ваш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ поставляСтся с заводской AT-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ (Ρ‡Π°Ρ‰Π΅ всСго это ESP-01), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Wi-Fi-соСдинСниСм Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚, отправляя ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для быстрой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности ΠΈΠ»ΠΈ простых Π·Π°Π΄Π°Ρ‡ Π²Ρ€ΠΎΠ΄Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСр.

Минимальная схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

  • πŸ”Œ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ VCC ΠΊ 3.3Π’, GND ΠΊ GND.
  • πŸ“± ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ TX модуля ΠΊ RX Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° (ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚) с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ напряТСния.
  • πŸ”„ Π—Π°ΠΌΠΊΠ½ΠΈΡ‚Π΅ GPIO0 Π½Π° GND Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ΅. Π’ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ свободСн.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Wi-Fi:

ΠšΠΎΠΌΠ°Π½Π΄Π°ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‚Π°
ATΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° связи с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌOK
AT+CWMODE=1Установка Ρ€Π΅ΠΆΠΈΠΌΠ° Station (ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Wi-Fi)OK ΠΈΠ»ΠΈ ERROR
AT+CWJAP="SSID","password"ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ доступаWIFI CONNECTED
WIFI GOT IP
AT+CIFSRΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ IP-адрСса192.168.1.100
AT+GMRΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° вСрсии ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈAT version:1.7.4(SDK 3.0.4)

Випичная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

AT+RST          // Бброс модуля

AT+CWMODE=1 // Π Π΅ΠΆΠΈΠΌ Station

AT+CWJAP="my_wifi","mypassword" // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСти

AT+CIFSR // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° IP

AT+PING="8.8.8.8" // ВСст соСдинСния

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ AT+CWJAP ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ FAIL, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ рСгистр символов Π² ΠΏΠ°Ρ€ΠΎΠ»Π΅ (AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру!) ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов Ρ‚ΠΈΠΏΠ° # ΠΈΠ»ΠΈ !, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ экранирования.

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π° (baud rate) совпадаСт с настройками модуля (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 115200)

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ (CR+LF β†’ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CR)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ GPIO0 Π½Π΅ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ Π½Π° GND (ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ источник питания с Ρ‚ΠΎΠΊΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 300 мА-->

3. Бпособ 2: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Arduino IDE (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²)

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° практичСских Π·Π°Π΄Π°Ρ‡ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Arduino IDE с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ESP8266WiFi. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ позволяСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Wi-Fi.

Π¨Π°Π³ΠΈ настройки Arduino IDE:

  1. УстановитС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ESP8266 Ρ‡Π΅Ρ€Π΅Π· Π€Π°ΠΉΠ» β†’ Настройки β†’ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ссылки для ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ»Π°Ρ‚, Π΄ΠΎΠ±Π°Π²ΠΈΠ² строку:
    https://arduino.esp8266.com/stable/package_esp8266com_index.json
  2. Π’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ ΠŸΠ»Π°Ρ‚Ρ‹ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ модСль (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Generic ESP8266 Module).
  3. УстановитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ESP8266WiFi Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

#include <ESP8266WiFi.h>

const char* ssid = "ваш_ssid";

const char* password = "ваш_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ";

void setup() {

Serial.begin(115200);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi connected");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());

}

void loop() {

// Π’Π°Ρˆ ΠΊΠΎΠ΄ здСсь

}

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΊΠΎΠ΄Π΅:

  • πŸ”„ Π¦ΠΈΠΊΠ» while ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π‘Π΅Π· Π½Π΅Π³ΠΎ скСтч ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Ссли Wi-Fi Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ.
  • πŸ“‘ Ѐункция WiFi.status() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ смотритС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
  • ⚑ Для экономии энСргии Π² Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ WiFi.setSleepMode(WIFI_LIGHT_SLEEP) послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

4. Бпособ 3: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· MicroPython (для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ)

MicroPython β€” это облСгчённая вСрсия Python 3, оптимизированная для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Она позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ESP8266 Π½Π° Python, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для прототипирования ΠΈ обучСния. Однако для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Wi-Fi потрСбуСтся сначала ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий:

  1. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ MicroPython для ESP8266 с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта.
  2. ΠŸΡ€ΠΎΡˆΠ΅ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡Π΅Ρ€Π΅Π· esptool (инструкция Π½ΠΈΠΆΠ΅).
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Ρ‡Π΅Ρ€Π΅Π· REPL (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Thonny IDE ΠΈΠ»ΠΈ Screen).

Команда для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· esptool:

esptool.py --port /dev/ttyUSB0 erase_flash

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 firmware.bin

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π½Π° MicroPython для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Wi-Fi:

import network

import time

sta_if = network.WLAN(network.STA_IF)

sta_if.active(True)

sta_if.connect("ваш_ssid", "ваш_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ")

while not sta_if.isconnected():

time.sleep(0.5)

print(".", end="")

print("\nConnected! IP:", sta_if.ifconfig())

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Wi-Fi Π² MicroPython:

  • πŸ”„ ΠœΠ΅Ρ‚ΠΎΠ΄ isconnected() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС получСния IP, Π° Π½Π΅ послС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
  • πŸ“‘ Для сканирования доступных сСтСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ sta_if.scan().
  • ⚑ Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ доступа (AP_IF) ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎ 4-Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².
Как ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ настройки Wi-Fi Π² MicroPython?

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ "Π·Π°Π±Ρ‹Π»" настройки сСти, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² REPL:

sta_if.disconnect() sta_if.active(False) sta_if.active(True)

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ сбросу сСтСвых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

5. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ESP8266 ΠΊ Wi-Fi ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ ошибками. НиТС собраны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ способы ΠΈΡ… устранСния.

ΠžΡˆΠΈΠ±ΠΊΠ°Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Π Π΅ΡˆΠ΅Π½ΠΈΠ΅
WL_CONNECT_FAILED (Arduino)
Network connection failed (MicroPython)
ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ SSID
Π‘Π΅Ρ‚ΡŒ скрыта (hidden SSID)
Π Π΅ΠΆΠΈΠΌ бСзопасности Π½Π΅ поддСрТиваСтся
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ рСгистр Π² ΠΏΠ°Ρ€ΠΎΠ»Π΅
Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ WiFi.setOutputPower(20.5)
ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ модуля
WL_DISCONNECTED послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π‘Π»Π°Π±Ρ‹ΠΉ сигнал Wi-Fi
ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ IP-адрСсов Π² сСти
DHCP-сСрвСр Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π° Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚
Π£ΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ расстояниС Π΄ΠΎ Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°
Π—Π°Π΄Π°ΠΉΡ‚Π΅ статичСский IP Π² ΠΊΠΎΠ΄Π΅
ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Ρ€ΠΎΡƒΡ‚Π΅Ρ€
ΠœΠΎΠ΄ΡƒΠ»ΡŒ постоянно пСрСзагруТаСтся НСдостаточный Ρ‚ΠΎΠΊ питания
ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ Π½Π° Π²Ρ‹Π²ΠΎΠ΄Π°Ρ…
ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Π°Ρ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ источник питания Π½Π° 500+ мА
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ паяныС соСдинСния
ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠ΅ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
AT command error ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π°
GPIO0 Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ Π½Π° GND
ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½ UART-мост (для USB-вСрсий)
ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ скорости 9600, 57600, 115200
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ GPIO0
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ внСшний USB-UART Π°Π΄Π°ΠΏΡ‚Π΅Ρ€

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСти, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ IP-адрСс:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки DHCP Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅ (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½).
  2. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² сСти Π½Π΅Ρ‚ ограничСния ΠΏΠΎ MAC-адрСсам.
  3. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ статичСский IP Π² ΠΊΠΎΠ΄Π΅:
    WiFi.config(IPAddress(192,168,1,100), IPAddress(192,168,1,1), IPAddress(255,255,255,0));
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ сСтях с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Wi-Fi с Π²Π΅Π±-ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠΌ) ESP8266 Π½Π΅ смоТСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ стандартными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях трСбуСтся эмуляция Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° для прохоТдСния captcha ΠΈΠ»ΠΈ использованиС прокси.

6. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ соСдинСния: совСты для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Wi-Fi-соСдинСниС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ESP8266. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Ρ‹Π²ΠΎΠ² связи ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

  • πŸ”„ Пинг-ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³: ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ отправляйтС ping-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Ρ‹Π²Ρ‹ связи:
    if (!Ping.ping("192.168.1.1")) {
    

    WiFi.reconnect();

    }

  • πŸ“‘ ΠΠ²Ρ‚ΠΎΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop() Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ статуса:
    if (WiFi.status() != WL_CONNECTED) {
    

    WiFi.begin(ssid, password);

    }

  • ⚑ ЭнСргосбСрСТСниС: Для Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ WIFI_PS_MIN_MODEM (минимальноС энСргопотрСблСниС Π·Π° счёт сниТСния скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ).

АппаратныС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:

  • πŸ“Ά АнтСнна: Для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ESP-12 Π·Π°ΠΌΠ΅Π½Π° встроСнной Π°Π½Ρ‚Π΅Π½Π½Ρ‹ Π½Π° внСшнюю с усилСниСм 2 dBi ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 30-50%.
  • πŸ”Œ ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ кондСнсаторы 1000 ΠΌΠΊΠ€ Π½Π° Π»ΠΈΠ½ΠΈΠΈ питания для сглаТивания скачков Ρ‚ΠΎΠΊΠ°.
  • πŸ›‘οΈ Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ находится рядом с источниками ΠΏΠΎΠΌΠ΅Ρ… (двигатСлями, Ρ€Π΅Π»Π΅), помСститС Π΅Π³ΠΎ Π² мСталличСский экран.

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌΠΈ), рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° UDP вмСсто TCP. Он ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π΄Ρ‘ΠΆΠ΅Π½, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСньшиС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ:

WiFiUDP udp;

udp.begin(1234); // ΠŸΠΎΡ€Ρ‚ для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ

7. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ вашС устройство Π² сСти

ESP8266, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΉ ΠΊ Wi-Fi, становится ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° для Π°Ρ‚Π°ΠΊ. ОсобСнно это Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, Ссли устройство управляСт ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ инфраструктурой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΌΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ систСмами отоплСния). НиТС β€” Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹ бСзопасности.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования:

  • πŸ”’ ОбновлСниС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ: Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ вСрсии AT-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (Π½ΠΈΠΆΠ΅ 1.7.0) содСрТат уязвимости, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄.
  • 🌐 Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ сСти: НастройтС Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ для IoT-устройств с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ доступом ΠΊ локальной сСти.
  • πŸ”‘ Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅: ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ WPA2-AES (Π½Π΅ TKIP!). Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сСтСй ΠΈΠ»ΠΈ WEP.

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌ доступом:

  • πŸ”„ OTA-обновлСния: Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ бСзопасных ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ (Over-The-Air) с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм.
  • πŸ“‘ MQTT с TLS: ΠŸΡ€ΠΈ использовании MQTT настройтС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ соСдинСниС:
    client.setServer(mqtt_server, 8883);  // ΠŸΠΎΡ€Ρ‚ 8883 для TLS
    

    client.setBufferSize(2048); // Π£Π²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ для сСртификатов

  • πŸ›‘οΈ Π€Π°ΠΉΡ€Π²ΠΎΠ» Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅: Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС входящиС ΠΏΠΎΡ€Ρ‚Ρ‹ для IP-адрСса ESP8266, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ….

Если вашС устройство Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ доступно ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Cloudflare Tunnel ΠΈΠ»ΠΈ Tailscale вмСсто проброса ΠΏΠΎΡ€Ρ‚ΠΎΠ².
  2. НастройтС Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ для Π²Π΅Π±-интСрфСйса.
  3. РСгулярно мСняйтС ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ SSH-ΠΊΠ»ΡŽΡ‡ΠΈ (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ESP8266 SSH Server).
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠœΠΎΠ΄ΡƒΠ»ΠΈ ESP8266 с ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°ΠΌΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅ 2019 Π³ΠΎΠ΄Π° уязвимы ΠΊ Π°Ρ‚Π°ΠΊΠ΅ Kr00k (CVE-2019-15126), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Wi-Fi-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ устройство ΠΎΡ‚ Π²Π°ΠΆΠ½Ρ‹Ρ… сСтСй.

8. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ способы ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Если стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ подходят для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, рассмотритС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ESP8266 ΠΊ сСти.

Π Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ доступа (AP):

  • πŸ“‘ ΠœΠΎΠ΄ΡƒΠ»ΡŒ сам становится Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ доступа, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ устройства.
  • πŸ”Œ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для настройки "ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ" (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· смартфон).
  • ⚑ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: максимально 4 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… устройства.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Ρ€Π΅ΠΆΠΈΠΌΠ° AP:

WiFi.softAP("ESP8266_AP", "password");

IPAddress myIP = WiFi.softAPIP();

Serial.print("AP IP: ");

Serial.println(myIP);

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ethernet (ESP8266 + EN28J60):

  • 🌐 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡ΠΈΠΏ EN28J60 для ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • πŸ”Œ ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ Wi-Fi нСдоступСн ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½.
  • ⚑ Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°ΡΠ»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚ ΠΈ настройки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ UIPEthernet.

ΠœΠΎΡΡ‚ Wi-Fi β†’ Bluetooth (ESP32S + ESP8266):

  • πŸ“± ESP8266 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Wi-Fi, Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π° смартфон ΠΏΠΎ Bluetooth Ρ‡Π΅Ρ€Π΅Π· ESP32.
  • πŸ”„ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с Π½ΠΈΠ·ΠΊΠΈΠΌ энСргопотрСблСниСм (Bluetooth LE).

Для ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ рассмотритС использованиС ESP8266 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ mesh-сСти (Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ESP-NOW). Π­Ρ‚ΠΎ позволяСт устройствам ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°:

#include <esp_now.h>

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

WiFi.mode(WIFI_STA);

WiFi.disconnect();

esp_now_init();

// Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΡ€Π° (Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ESP8266)

esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_COMBO, 1, NULL, 0);

FAQ: ЧастыС вопросы ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ESP8266 ΠΊ Wi-Fi

МоТно Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ESP8266 ΠΊ сСти 5 Π“Π“Ρ†?

НСт, ESP8266 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСти 2.4 Π“Π“Ρ†. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с 5 Π“Π“Ρ† потрСбуСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° Π±Π°Π·Π΅ ESP32, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²ΡƒΡ…Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹ΠΉ Wi-Fi.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ MAC-адрСс ESP8266?

Π’ Arduino IDE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ WiFi.macAddress(mac):

byte mac[6];

WiFi.macAddress(mac);

Serial.printf("MAC: %02X:%02X:%02X:%02X:%02X:%02X\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);

Π’ AT-Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ AT+CIFSR.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ESP8266 Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСти с WPA3?

ESP8266 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ WPA2 (Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ старыС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ WPA/WEP). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с WPA3 трСбуСтся:

  1. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π΄ΠΎ вСрсии 3.0.0+ (для NonOS SDK).
  2. Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшний Wi-Fi-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ WPA3 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ESP32).
Как ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ энСргии Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ сон (deep sleep):

ESP.deepSleep(10e6);  // Π‘ΠΎΠ½ Π½Π° 10 сСкунд (Π² микросСкундах)

ΠŸΠ΅Ρ€Π΅Π΄ сном ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Wi-Fi:

WiFi.disconnect(true);

WiFi.mode(WIFI_OFF);

Π’ΠΎΠΊ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ deep sleep сниТаСтся Π΄ΠΎ ~20 мкА (ΠΏΡ€ΠΎΡ‚ΠΈΠ² ~70 мА Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅).

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ESP8266 Π±Π΅Π· Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π° (ad-hoc)?

ВСхничСски Π΄Π°, Π½ΠΎ с ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ:

  • ESP8266 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ ad-hoc (ΠΊΠ°ΠΊ старыС Wi-Fi ΠΊΠ°Ρ€Ρ‚Ρ‹).
  • ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°: настройтС ΠΎΠ΄ΠΈΠ½ ESP8266 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ AP, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Station, ΠΈ соСдинитС ΠΈΡ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.
  • Для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами Π±Π΅Π· Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ESP-NOW.