Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Arduino: ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для Arduino ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ возмоТности: ΠΎΡ‚ создания ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π΄ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ управлСния Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌΠΈ. Но для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°ΠΊΠΈΠΌΠΈ модулями часто становится испытаниСм β€” нСпонятныС схСмы, ошибки компиляции, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ сСти. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ популярныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ESP8266 ΠΈ ESP32, ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

ΠœΡ‹ рассмотрим Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ ΠΈ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: ΠΎΡ‚ простого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ€ΠΎΡƒΡ‚Π΅Ρ€Ρƒ Π΄ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-сСрвСра Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ диагностикС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСти, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ качСство сигнала ΠΈ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли скСтч Π½Π΅ загруТаСтся. Если Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Wi-Fi Π½Π° Arduino, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°. ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ практичСским ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ.

КакиС Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»ΠΈ совмСстимы с Arduino?

На Ρ€Ρ‹Π½ΠΊΠ΅ сущСствуСт нСсколько дСсятков ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½ΠΎ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

  • πŸ”Ή ESP8266 (NodeMCU, Wemos D1 Mini) β€” Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Wi-Fi 802.11 b/g/n. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для простых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ Π½Π΅ трСбуСтся высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
  • πŸ”Ή ESP32 β€” Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ с Bluetooth, двумя ядрами ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Wi-Fi 802.11 b/g/n. ИдСалСн для слоТных Π·Π°Π΄Π°Ρ‡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²).
  • πŸ”Ή Arduino WiFi Shield β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚ Arduino, совмСстимый с ΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ Uno/Mega. Π£Π΄ΠΎΠ±Π΅Π½ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с экосистСмой Arduino, Π½ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠ΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½, Ρ‡Π΅ΠΌ ESP.

Для 90% Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² достаточно ESP8266 ΠΈΠ»ΠΈ ESP32. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ β€” количСство GPIO-ΠΏΠΈΠ½ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ESP32 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с BLE 4.2). Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Wi-Fi, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ NodeMCU β€” это самая популярная ΠΏΠ»Π°Ρ‚Π° Π½Π° Π±Π°Π·Π΅ ESP8266 с встроСнным USB-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠœΠΎΠ΄ΡƒΠ»ΠΈ ESP8266 ΠΈ ESP32 Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ 3.3V, Π° Π½Π΅ ΠΎΡ‚ 5V, ΠΊΠ°ΠΊ классичСскиС Arduino. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ 5-Π²ΠΎΠ»ΡŒΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΏΠΈΠ½Π°ΠΌ Π±Π΅Π· дСлитСля напряТСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ модуля ΠΈΠ· строя!

πŸ“Š Какой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?
ESP8266 (NodeMCU)
ESP32
Arduino WiFi Shield
Π•Ρ‰Ρ‘ Π½Π΅ Ρ€Π΅ΡˆΠΈΠ»

НСобходимыС инструмСнты ΠΈ ПО

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅:

  • πŸ› οΈ Аппаратная Ρ‡Π°ΡΡ‚ΡŒ:
    • Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (ESP8266/ESP32 ΠΈΠ»ΠΈ Arduino + WiFi Shield)
    • USB-кабСль для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Micro-USB ΠΈΠ»ΠΈ Type-C)
    • ΠŸΠ»Π°Ρ‚Ρƒ Arduino (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ WiFi Shield)
    • ΠŸΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ (Dupont-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°) для соСдинСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
  • πŸ’» ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС:
    • Arduino IDE (вСрсия 2.0+)
    • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для CH340 ΠΈΠ»ΠΈ CP2102 (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½Ρ‹ NodeMCU)
    • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: WiFi.h (для ESP32), ESP8266WiFi.h (для ESP8266)

Для установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² Arduino IDE ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π‘ΠΊΠ΅Ρ‚Ρ‡ β†’ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ β†’ Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² поискС. НапримСр, для ESP8266 потрСбуСтся ΠΏΠ°ΠΊΠ΅Ρ‚ esp8266 by ESP8266 Community.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ESP32, Π² Arduino IDE Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ этой ΠΏΠ»Π°Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π€Π°ΠΉΠ» β†’ Настройки β†’ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ссылки для ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ»Π°Ρ‚ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылку:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

ПослС этого ΠΏΠ»Π°Ρ‚Π° появится Π² мСню Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ ΠŸΠ»Π°Ρ‚Π°.

Π‘Ρ…Π΅ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Wi-Fi модуля

Бпособ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° модуля. Рассмотрим Ρ‚Ρ€ΠΈ распространённых Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ESP8266 (NodeMCU) ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹

NodeMCU β€” это готовая ΠΏΠ»Π°Ρ‚Π° с ESP8266, USB-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ стабилизатором питания. Π•Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· Micro-USB ΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Arduino. Π‘Ρ…Π΅ΠΌΠ° Π½Π΅ трСбуСтся β€” просто соСдинитС ΠΏΠ»Π°Ρ‚Ρƒ с ПК ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² Arduino IDE:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ ΠŸΠ»Π°Ρ‚Π° β†’ NodeMCU 1.0 (ESP-12E Module)

2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ESP-01 (ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ) ΠΊ Arduino Uno

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ESP-01 ΠΈΠΌΠ΅Π΅Ρ‚ всСго 8 Π½ΠΎΠΆΠ΅ΠΊ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внСшнСго питания 3.3V. Для связи с Arduino ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΈΠ½Ρ‹ TX/RX (ΡƒΡ€ΠΎΠ²Π½ΠΈ сигналов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ 3.3V!):

ESP-01 Arduino Uno ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
VCC 3.3V НС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΊ 5V!
GND GND ΠžΠ±Ρ‰ΠΈΠΉ минус
TX RX (D0) Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ напряТСния ΠΈΠ»ΠΈ логичСский ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€
RX TX (D1) ΠŸΡ€ΡΠΌΠΎΠ΅ соСдинСниС (Arduino Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 5V, Π½ΠΎ ESP-01 ΠΈΡ… Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚)
CH_PD 3.3V Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ модуля

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ ESP-01 Ρ‡Π΅Ρ€Π΅Π· Arduino ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ соСдинСниС TX/RX, ΠΈΠ½Π°Ρ‡Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° скСтча Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΡƒ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ESP32 ΠΊ внСшним Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ

ESP32 ΠΈΠΌΠ΅Π΅Ρ‚ встроСнныС Wi-Fi ΠΈ Bluetooth, поэтому Π΅Π³ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ. НапримСр, для считывания Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11 (Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°/Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ) ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΡ… Π½Π° сСрвСр:

DHT11 (Data) β†’ GPIO 4 (ESP32)

DHT11 (VCC) β†’ 3.3V

DHT11 (GND) β†’ GND

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° с ΠΊΠ»Π΅ΠΌΠΌΠ°ΠΌΠΈ "ΠΌΠ°ΠΌΠ°-ΠΌΠ°ΠΌΠ°"|НапряТСниС Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 3.3V|ΠŸΠΈΠ½Ρ‹ TX/RX Π½Π΅ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹|Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ USB-устройства установлСны-->

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Wi-Fi: ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ скСтч для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ESP8266 ΠΊ домашнСй сСти Wi-Fi. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π² Serial Monitor IP-адрСс модуля послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Arduino IDE ΠΈ создайтС Π½ΠΎΠ²Ρ‹ΠΉ скСтч.
  2. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄:
    #include <ESP8266WiFi.h>
    
    

    const char* ssid = "Π’Π°ΡˆΠ΅_Π½Π°Π·Π²Π°Π½ΠΈΠ΅_сСти";

    const char* password = "Π’Π°Ρˆ_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ";

    void setup() {

    Serial.begin(115200);

    delay(10);

    Serial.println("\nΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Wi-Fi...");

    WiFi.begin(ssid, password);

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

    delay(500);

    Serial.print(".");

    }

    Serial.println("\nΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ!");

    Serial.print("IP-адрСс: ");

    Serial.println(WiFi.localIP());

    }

    void loop() {

    // Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹

    }

  3. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π’Π°ΡˆΠ΅_Π½Π°Π·Π²Π°Π½ΠΈΠ΅_сСти ΠΈ Π’Π°Ρˆ_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ вашСго Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°.
  4. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скСтч Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ (Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ COM-ΠΏΠΎΡ€Ρ‚ ΠΈ модСль ΠΏΠ»Π°Ρ‚Ρ‹ Π² Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹).
  5. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Serial Monitor (Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π°) со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 115200 Π±ΠΎΠ΄.

Если всё настроСно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‡Π΅Ρ€Π΅Π· нСсколько сСкунд Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС:

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ!

IP-адрСс: 192.168.1.100

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если вмСсто IP-адрСса ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΈ Π±Π΅Π· ΠΊΠΎΠ½Ρ†Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅: ESP8266 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сСти с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ WPA3 β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ WPA2 ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ для тСстов.

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

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ схСмС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Рассмотрим самыС распространённыС:

Ошибка ВозмоТная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° РСшСниС
Failed to connect to Wi-Fi НСвСрный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ SSID ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ рСгистр символов Π² ssid/password
WiFi.status() = 6 ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ сСти ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π°Π½Ρ‚Π΅Π½Π½Ρƒ (для ESP-01) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΡŒΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊ Ρ€ΠΎΡƒΡ‚Π΅Ρ€Ρƒ
avrdude: ser_open(): can't open device НС Π²Ρ‹Π±Ρ€Π°Π½ COM-ΠΏΠΎΡ€Ρ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² УстановитС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ CH340 ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ USB
ΠœΠΎΠ΄ΡƒΠ»ΡŒ пСрСгрСваСтся ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ схСму ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСти, Π½ΠΎ постоянно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠΈ. ESP8266 чувствитСлСн ΠΊ просадкам напряТСния β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ внСшний источник питания 3.3V с Ρ‚ΠΎΠΊΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 500 мА.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° частая ошибка β€” conflicted with another declaration ΠΏΡ€ΠΈ компиляции. Она Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΎΠ±Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ WiFi.h ΠΈ ESP8266WiFi.h ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π£Π΄Π°Π»ΠΈΡ‚Π΅ лишнюю строку #include.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹?

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ESP-01 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ AT-ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для связи с Arduino Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚), Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

1. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ TX/RX (ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹ β€” частая ошибка).

2. НаличиС питания 3.3V Π½Π° ΠΏΠΈΠ½Π°Ρ… VCC ΠΈ CH_PD.

3. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Serial Monitor (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для AT-ΠΊΠΎΠΌΠ°Π½Π΄ β€” 115200 Π±ΠΎΠ΄, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 9600).

4. ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ модуля: стандартная ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΎΡ‚ производитСля ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ этом случаС трСбуСтся ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡Π΅Ρ€Π΅Π· esptool.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ

Когда Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ настроСно, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ. Π’ΠΎΡ‚ Ρ‚Ρ€ΠΈ ΠΈΠ΄Π΅ΠΈ Ρ€Π°Π·Π½ΠΎΠΉ слоТности:

1. Π£Π΄Π°Π»Ρ‘Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π»Π΅ Ρ‡Π΅Ρ€Π΅Π· Wi-Fi

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля ESP8266 ΠΈ Ρ€Π΅Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ±ΠΎΡ€Ρ‹ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ со смартфона. ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ:

  • πŸ”Œ ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π΅Π»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 5V Relay Module)
  • πŸ“± ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Blynk ΠΈΠ»ΠΈ Π²Π΅Π±-интСрфСйс Π½Π° ESP
  • πŸ”Œ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ питания 5V для Ρ€Π΅Π»Π΅ (сам ΠΌΠΎΠ΄ΡƒΠ»ΡŒ питаСтся ΠΎΡ‚ 3.3V)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для управлСния Ρ‡Π΅Ρ€Π΅Π· Blynk:

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

char auth[] = "Π’Π°Ρˆ_Blynk_Ρ‚ΠΎΠΊΠ΅Π½";

char ssid[] = "Π’Π°Ρˆ_WiFi";

char pass[] = "Π’Π°Ρˆ_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ";

void setup() {

Serial.begin(9600);

Blynk.begin(auth, ssid, pass);

pinMode(D1, OUTPUT); // Пин для управлСния Ρ€Π΅Π»Π΅

}

void loop() {

Blynk.run();

}

2. Погодная станция с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСр

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ BME280 (Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅) ΠΈ ESP32, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π½Π° Thingspeak ΠΈΠ»ΠΈ свой сСрвСр. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Thingspeak:

#include <WiFi.h>

#include <HTTPClient.h>

#include <Adafruit_BME280.h>

const char* ssid = "Π’Π°Ρˆ_WiFi";

const char* password = "Π’Π°Ρˆ_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ";

const char* serverName = "http://api.thingspeak.com/update?api_key=ВАШ_API_KEY&field1=";

Adafruit_BME280 bme;

void setup() {

Serial.begin(115200);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) delay(500);

bme.begin(0x76); // I2C-адрСс Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°

}

void loop() {

if (WiFi.status() == WL_CONNECTED) {

HTTPClient http;

float temp = bme.readTemperature();

String url = String(serverName) + String(temp);

http.begin(url);

int httpCode = http.GET();

http.end();

}

delay(60000); // ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ

}

3. Π’Π΅Π±-сСрвСр Π½Π° ESP32 для управлСния GPIO

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ простой Π²Π΅Π±-интСрфСйс для управлСния свСтодиодами ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами. Код:

#include <WiFi.h>

#include <WebServer.h>

const char* ssid = "Π’Π°Ρˆ_WiFi";

const char* password = "Π’Π°Ρˆ_ΠΏΠ°Ρ€ΠΎΠ»ΡŒ";

WebServer server(80);

void handleRoot() {

String html = "<html><body><h1>ESP32 Web Server</h1>";

html += "<a href='/on'><button>Π’ΠšΠ›</button></a>";

html += "<a href='/off'><button>Π’Π«ΠšΠ›</button></a>";

html += "</body></html>";

server.send(200, "text/html", html);

}

void handleOn() {

digitalWrite(2, HIGH); // Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиод Π½Π° GPIO2

server.send(200, "text/plain", "LED ON");

}

void handleOff() {

digitalWrite(2, LOW); // Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСтодиод

server.send(200, "text/plain", "LED OFF");

}

void setup() {

pinMode(2, OUTPUT);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) delay(500);

server.on("/", handleRoot);

server.on("/on", handleOn);

server.on("/off", handleOff);

server.begin();

}

void loop() {

server.handleClient();

}

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ потрСблСния энСргии

Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»ΠΈ извСстны высоким энСргопотрСблСниСм, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠ°Ρ…. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ расход:

  • πŸ”‹ Π Π΅ΠΆΠΈΠΌ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ сна (Deep Sleep): ESP8266 ΠΈ ESP32 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌ сна с ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ ~20 мкА. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для ESP8266:
    ESP.deepSleep(30e6); // Бпячка Π½Π° 30 сСкунд

    Для пробуТдСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΈΠ½ D0 (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ RST).

  • πŸ“‘ ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Wi-Fi: Если ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ постоянноС соСдинСниС, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Wi-Fi Π² Ρ†ΠΈΠΊΠ»Π΅ loop():
    WiFi.mode(WIFI_OFF);
    

    delay(10000); // ΠŸΠ°ΡƒΠ·Π° 10 сСкунд

    WiFi.mode(WIFI_STA); // Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

  • πŸ”Œ ПониТСниС напряТСния: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стабилизаторы с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ напряТСния (LDO), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, AMS1117-3.3V.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Deep Sleep всС Π΄Π°Π½Π½Ρ‹Π΅ Π² памяти ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ. БохраняйтС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² RTC Memory (для ESP32) ΠΈΠ»ΠΈ Π²ΠΎ внСшнюю EEPROM.

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ солнСчной ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ESP32 β€” ΠΎΠ½ энСргоэффСктивнСС ESP8266 Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ заряда.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Wi-Fi ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

Устройства Π½Π° Π±Π°Π·Π΅ ESP8266/ESP32 часто становятся мишСнью для Ρ…Π°ΠΊΠ΅Ρ€ΠΎΠ², особСнно Ссли ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹:

  • πŸ”“ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹: Π’Π΅Π±-сСрвСр Π½Π° ESP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ доступСн ΠΈΠ·Π²Π½Π΅, Ссли Ρ€ΠΎΡƒΡ‚Π΅Ρ€ пробросил ΠΏΠΎΡ€Ρ‚Ρ‹.
  • πŸ“‘ ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°: Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  • πŸ”„ Атаки Π½Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ: Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡Π΅Ρ€Π΅Π· OTA (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ).

Как Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ:

  1. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ сСрвисы: Если ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ доступа, Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС ΠΏΠΎΡ€Ρ‚Ρ‹ Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅: Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ HTTPS (Π½Π° ESP32) ΠΈΠ»ΠΈ MQTT с TLS.
  3. ΠžΠ±Π½ΠΎΠ²Π»ΡΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ: РСгулярно провСряйтС обновлСния для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ESP8266WiFi ΠΈ WiFi.h.
  4. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ OTA: Если Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄Π΅:
    // ArduinoOTA.begin(); // Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ эту строку

Для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΌΠ½Ρ‹ΠΉ Π·Π°ΠΌΠΎΠΊ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ: ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ пароля Wi-Fi ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ гСнСрируСтся Π½Π° сСрвСрС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисы Π²Ρ€ΠΎΠ΄Π΅ YouGetSignal ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

nmap -sS -p 80,8080 192.168.1.100

(Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ IP Π½Π° адрСс вашСго модуля). Если ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹, Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΈΡ… Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅.

FAQ: ЧастыС вопросы ΠΏΠΎ Wi-Fi модулям Arduino

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

НСт, ESP8266 ΠΈ ESP32 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСти 2.4 Π“Π“Ρ†. Если ваш Ρ€ΠΎΡƒΡ‚Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 5 Π“Π“Ρ†, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½Π° Π½Ρ‘ΠΌ совмСстимый Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа.

Как ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ связи Wi-Fi модуля?

Π•ΡΡ‚ΡŒ нСсколько способов:

  • πŸ“Ά Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ внСшнюю Π°Π½Ρ‚Π΅Π½Π½Ρƒ (для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с Ρ€Π°Π·ΡŠΡ‘ΠΌΠΎΠΌ IPEX).
  • πŸ”„ ΠŸΠΎΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΠΊΠ°Π½Π°Π» Wi-Fi Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° 1 ΠΈΠ»ΠΈ 11 β€” ΠΎΠ½ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹).
  • πŸ”‹ Π£Π²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² ΠΊΠΎΠ΄Π΅: WiFi.setOutputPower(20.5); (максимум для ESP8266 β€” 20.5 dBm).

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ESP32 Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Wi-Fi послС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ?

Π§Π°Ρ‰Π΅ всСго это связано с:

  • πŸ”Œ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π² Arduino IDE (Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ESP32 Dev Module).
  • πŸ“‘ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ libraries Π² скСтчбукС ΠΈ установитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π°Π½ΠΎΠ²ΠΎ).
  • πŸ”‹ ΠΠ΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ (Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ кондСнсатор 1000 ΠΌΠΊΠ€ ΠΌΠ΅ΠΆΠ΄Ρƒ VCC ΠΈ GND).

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Serial Monitor Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок компиляции.

Как ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ESP Ρ‡Π΅Ρ€Π΅Π· Wi-Fi (OTA)?

Для обновлСния ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ:

  1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ OTA:
    #include <ArduinoOTA.h>
    
    

    void setup() {

    ArduinoOTA.begin();

    }

    void loop() {

    ArduinoOTA.handle();

    }

  2. Π’ Arduino IDE Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β†’ ΠŸΠΎΡ€Ρ‚ β†’ [IP-адрСс вашСго ESP].
  3. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ скСтч ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ β€” ΠΎΠ½ обновляСтся ΠΏΠΎ Wi-Fi.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π²ΠΎ врСмя OTA-обновлСния, ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² "ΠΊΠΈΡ€ΠΏΠΈΡ‡".

ΠšΠ°ΠΊΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°: ESP8266 ΠΈΠ»ΠΈ ESP32?

ESP32 ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ для слоТных систСм ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  • πŸ”„ Π”Π²Π° ядра ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Wi-Fi ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ.
  • πŸ“‘ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Bluetooth 4.2 для связи с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Mi Flora).
  • πŸ”‹ Π‘ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ΅ энСргопотрСблСниС Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.
ESP8266 дСшСвлС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π»Π΅ ΠΏΠΎ Wi-Fi).