ืžืฉื—ืงื™ื ืขื Wifi ื‘-ESP32

ืžืฉื—ืงื™ื ืขื Wifi ื‘-ESP32

ืžื” ืฉื ืชืŸ ืœื™ ืืช ื”ืจืขื™ื•ืŸ ืœื™ืฆื•ืจ ื›ืœื™ ื›ื™ืก ืœื ื™ืชื•ื— ืจืฉืชื•ืช WiFi ื”ื™ื” ื”ืžืืžืจ ื”ื–ื”.

ืชื•ื“ื” ืœื”ื ืขืœ ื”ืจืขื™ื•ืŸ. ืคืฉื•ื˜ ืœื ื”ื™ื” ืœื™ ืžื” ืœืขืฉื•ืช.

ื›ืœ ื”ืขื‘ื•ื“ื” ื ืขืฉืชื” ื‘ืžืกื’ืจืช ืชื—ื‘ื™ื‘ ื‘ืžื˜ืจื” ืœื”ื ื•ืช ื•ืœื”ืจื—ื™ื‘ ืืช ื”ื™ื“ืข ืฉืœื™ ื‘ืชื—ื•ื ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”ืจืฉืช. ืœืื˜ ืœืื˜, 1..4 ืฉืขื•ืช ืฉื‘ื•ืขื™ื•ืช, ืžืชื—ื™ืœืช ืฉื ื” ื–ื•.
ืœื ืชื›ื ื ืชื™ ืฉื•ื ืฉื™ืžื•ืฉ ืžืขืฉื™. ื”ึธื”ึตืŸ. ื–ื” ืœื ื›ืœื™ ืฉืœ ื”ืืงืจื™ื.

ื›ืจื’ืข, ื›ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืžืชื•ื›ื ื ืช ืขื•ื‘ื“ืช. ื›ืœ ื”ืžืงื•ืจื•ืช, ืžื•ื›ื ื™ื ืœื—ืœื•ื˜ื™ืŸ ืœื”ืจื›ื‘ื”, ืคื•ืจืกื ื›ืืŸ. ื™ืฉ ื’ื ื”ื•ืจืื•ืช ื”ืจื›ื‘ื” ื•ื›ื•' ื‘ื”ืขืจื” ื–ื•, ืœื ืืฉื›ืคืœ ืืช ื”ืžื™ื“ืข ืฉืคื•ืจืกื ื‘-github. ืื ื™ ืื’ื™ื“ ืœืš ืจืง ืืช ืžื” ืฉื ื—ื•ืฅ ืœื™ ืœืชืืจ ื‘ื ืคืจื“.

ื“ืขืชื™ ืขืœ "ื”ื›ืœื™ ื”ืื•ื ื™ื‘ืจืกืœื™" ื•ื”ืกื™ื‘ื” ืœื‘ื—ื™ืจื” ื‘-ESP32

ืื ื™ ืœื ืžืชื™ื™ืžืจ ืœื”ื™ื•ืช ื”ืืžืช. ืœื›ืœ ืื—ื“ ื™ืฉ ืืช ืฉืœื•. ืื ืกื” ืœื”ืฆื“ื™ืง ืืช ื‘ื—ื™ืจืช ื”ื—ื•ืžืจื” ืฉืœื™.

ืžื•ืฆืข ื‘ืžืืžืจ ืžืงืจื” ื”ืฉื™ืžื•ืฉ ืฉืœ ืฉื™ืœื•ื‘ ืฉืœ ืœื™ื ื•ืงืก (ื‘ื”ืชื—ืœื” Raspberry Pi) + "ืฆื™ื•ื“ ื”ื™ืงืคื™" ื‘ืฆื•ืจื” ืฉืœ ื‘ืงืจ (STM32) + CC1110 (8051 ืœื™ื‘ื”) ื•ื”ืชื•ื›ื ื™ืช ืœื“ื—ื•ืก ืฉื ื›ืœ ืžื” ืฉืืคืฉืจ (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) ืœื ื ืจืื” ืžืชืื™ื ืœื™. ืœืžืจื•ืช ื–ืืช, ื”ืคืจื•ื™ืงื˜ ื”ื–ื” ื ืจืื” ืฉื”ื•ื ื™ื™ืฉืืจ ืคืจื˜ื™ ื•ืกื’ื•ืจ (github flipper-XNUMX "ืœืืจื’ื•ืŸ ื”ื–ื” ืื™ืŸ ืžืื’ืจื™ื ืฆื™ื‘ื•ืจื™ื™ื") ื•ื”ืœืš ืœื›ื™ื•ื•ืŸ ื—ื•ืžืจื” ืœื ื ืคื•ืฆื” ื‘ืžื™ื•ื—ื“.

ืื•ืœื™ ืื ื™ ื˜ื•ืขื”, ื•ื‘ืขืชื™ื“ ื”ืžื—ื‘ืจื™ื ื™ื”ืคื›ื• ืืช ืžืงื•ืจื•ืช ื”ืชื•ื›ื ื” ืœื–ืžื™ื ื™ื ืœืฆื™ื‘ื•ืจ. ืื‘ืœ ืื ืœื, ืื– ืœื ื”ื™ื™ืชื™ ืงื•ื ื” ื—ื•ืžืจื” ื›ื–ื• ื‘ืœื™ ืงื•ื“ ื”ืžืงื•ืจ.

ื”ื“ืจื™ืฉื•ืช ืฉืœื™ ืœ"ื›ืœื™"

ื”ืงื•ืคืกื” ืฆืจื™ื›ื” ืœื”ื™ื•ืช ืงื˜ื ื” (ื›ืžื” ืฉื™ื•ืชืจ ืงื˜ืŸ ื™ื•ืชืจ ื˜ื•ื‘).

ืœื›ืŸ:

  • ืื™ืŸ ืฆื•ืจืš ื‘ืกื•ืœืœื” ืžื•ื‘ื ื™ืช. ืขื ื–ืจื > 100 mA ื‘ืขื‘ื•ื“ื” ืขื Wifi, ื”ืกื•ืœืœื” ื”ืžื•ื‘ื ื™ืช ืชื”ื™ื” ื’ื“ื•ืœื” ืื• ืœื ืชื—ื–ื™ืง ืžืขืžื“ ืœืื•ืจืš ื–ืžืŸ. ืœื›ืŸ, ืชืŸ ืœ"ืงื•ืคืกื”" ืœื”ื™ื•ืช ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ื‘ื ืง ื›ื•ื— ืกื˜ื ื“ืจื˜ื™. ื‘ื›ืœ ืžืงืจื”, ืชืžื™ื“ ื™ืฉ ืœื™ ื‘ื ืง ื—ืฉืžืœ ื‘ื›ื™ืก/ื‘ืžื›ื•ื ื™ืช.
  • ืฉืžื•ืจ ืขืœ "ืงื•ืคืกืช" ืœื™ื ื•ืงืก ืขื ื›ืœื™ื ื‘ืคื ื™ื, ื ื›ืชื‘ ื‘ืžืฉืš ืฉื ื™ื ืจื‘ื•ืช ื‘ื›ืœ ื”ืฉืคื•ืช ืขื ืžืกืš ืงื˜ืŸ ื•ืกื˜ ื“ืœ ืฉืœ ื›ืคืชื•ืจื™ ืฉืœื™ื˜ื”, ื–ื” ืœื ื”ื’ื™ื•ื ื™. ืืช ื”ืชื•ืฆืื•ืช ื ื™ืชืŸ ืœืจืื•ืช/ืœืขื‘ื“ ื‘ืžื—ืฉื‘ ื ื™ื™ื“ ืจื’ื™ืœ ืขื ืžืงืœื“ืช ื•ืžืกืš ืžืœืื™ื.
  • ืจื›ื™ื‘ื™ื ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ื ื’ื™ืฉื™ื ื‘ืงืœื•ืช ื•ื™ื“ื•ืขื™ื (SDK ื–ืžื™ืŸ, ื“ื•ื’ืžืื•ืช ื•ืชื™ืขื•ื“ ืจื‘ื™ื).

ื›ืชื•ืฆืื” ืžื›ืš, ืขื‘ื•ืจื™, ื”ื‘ื—ื™ืจื” ื”ื™ื™ืชื” ื‘ืจื•ืจื” - ESP32.

ืขื‘ื•ืจ ื›ืœ ื”ืžืฉื™ืžื•ืช ื”ืžืฆื•ื™ื ื•ืช ื‘ืžืืžืจ ืฉื”ื ื™ืขื• ืื•ืชื™ ืœืคืขื•ืœ, ื”ื™ื›ื•ืœื•ืช ืฉืœ ื”-ESP32 ืžืกืคื™ืงื•ืช ื‘ื”ื—ืœื˜. ืœืžืจื•ืช ืฉื”ื›ื™ ืื ื™ ืขื“ื™ื™ืŸ ืจื•ืฆื” ืœืขืฉื•ืช ื–ื”:

  • ืฉื—ืง ืขื ื‘ืœื•ื˜ื•ืช'.
  • ืฉื—ืงื• ืขื ื˜ื•ื•ื— ื”-433mHz ืขื ื”ื—ื•ืžืจื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ (ืจืง ืืคื ื•ืŸ ืžืฉืจืขืช, ืฉืžืกืคื™ืง ืœืฆืจื›ื™ื ืคืจืงื˜ื™ื™ื).

ืขืฃ ืขืœ ื”ืžืฉื—ื” ื‘-ESP32

  • ื”-ESP32 SDK (IDF) ืžื’ื•ืฉื ืžืฉื”ื•.
  • ื—ืœืง ืžื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช (ืžื—ืกื ื™ืช WiFi, ืœืžืฉืœ) ืžื’ื™ืขื” ืœืœื ืงื•ื“ ืžืงื•ืจ ื‘ืฆื•ืจื” ืฉืœ ืกืคืจื™ื•ืช ืกื˜ื˜ื™ื•ืช ืžื•ืจื›ื‘ื•ืช.
  • ืจืฆื•ืขืช ื”-5gHz ืื™ื ื” ื ืชืžื›ืช ื•ื™ืฉ ื›ืžื” ืžื’ื‘ืœื•ืช ื•ื’ืžืœื•ื ื™ื•ืช ื‘ืขื‘ื•ื“ื” ืขื WiFi.

ืื‘ืœ ื”ืžื—ื™ืจ/ื’ื•ื“ืœ ืžืคืฆื” ืœื—ืœื•ื˜ื™ืŸ ืขืœ ื”ื—ืกืจื•ื ื•ืช ื”ืœืœื•.

ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืชื•ื›ื ื” ืขื™ืงืจื™ืช

ืื ื™ ืืชืืจ ื‘ืงืฆืจื” ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื•ืืช ื“ืขืชื™ ืœื’ื‘ื™...

ื ื™ื”ื•ืœ ื”ื’ื“ืจื•ืช ื•ื”ืขืœืืช ืงื‘ืฆื™ื ืž-SD

ื›ืœ ื”ืฉืœื™ื˜ื” ื”ื—ื™ืฆื•ื ื™ืช ื ืขืฉื™ืช ื‘ืืžืฆืขื•ืช ื“ืฃ ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜, ื”ืžื•ืคืขืœ ื‘ืคืจื™ื˜ ืชืคืจื™ื˜ ื ืคืจื“. ื”-ESP32 ืžืชื—ื™ืœ ื‘ืžืฆื‘ WiFi AP ื•ืžืฆื™ื’ ื“ืฃ ื‘ื›ืชื•ื‘ืช IP ืงื‘ื•ืขื”.

ืœืžืจื•ืช ืฉืœื™ื‘ื•ืช ื”-ESP32 ื”ืŸ ืžื”ื™ืจื•ืช ืœืžื“ื™, ื›ืคื™ ืฉื”ืจืื• ื ื™ืกื•ื™ื™ื, ื”ืคืขื•ืœื” ื‘ื•-ื–ืžื ื™ืช ืฉืœ ืฉื™ืจื•ืช ื”ืื™ื ื˜ืจื ื˜ ื”ืžื•ื‘ื ื”, ื•ืœืžืฉืœ, ืžืฆื‘ ื”ื ืชื‘ ืื™ื ื ืชื•ืืžื™ื ื‘ืžื™ื•ื—ื“. ืœื›ืŸ, ืื™ืŸ ื‘ืงืจื” ื“ื™ื ืžื™ืช ื•ื”ื“ืฃ ืื™ื ื• ื–ืžื™ืŸ ื‘ื›ืœ ืฉืืจ ื”ืžืฆื‘ื™ื.
ื™ืชืจ ืขืœ ื›ืŸ, ืื™ืŸ ืฆื•ืจืš ื‘ืฉืœื™ื˜ื” ื“ื™ื ืžื™ืช ืœืžื˜ืจื•ืช ืžื—ืงืจ.

ืื•ืคืŸ ืขื‘ื•ื“ื” ืขื ื—ื‘ื™ืœื•ืช Beacon

ื”ืžืฆื‘ื™ื ื‘ื ืืœื™ื™ื ื•ืœื ืžืขื ื™ื™ื ื™ื ื‘ืžื™ื•ื—ื“. ื ื•ืฆืจ "ื›ื™ ื–ื” ืืคืฉืจื™". ืœื‘ื“ื™ืงื”.
ื™ืฉ ื“ื•ื’ืžืื•ืช ื‘ื“ื•ื’ืžืื•ืช ื”ืจืฉืžื™ื•ืช ืฉืœ ืืกืคืจืกื™ืฃ.

ืžืฆื‘ ืกืจื™ืงืช ืจืฉื™ืžืช AP.
ืœืžืขืฉื”, ื›ืœ ืกืžืืจื˜ืคื•ืŸ ื™ื›ื•ืœ ืœืขืฉื•ืช ื–ืืช.
ื•ื‘ื›ืŸ, ื‘ืžืฆื‘ ื–ื” ืจืฉื™ืžืช ื”-AP ืชื™ืฉืžืจ.
ืฉื•ืœื— ื“ื•ืืจ ื–ื‘ืœ ืžืฉื•ืื”.
ื”-ESP32 ืžืชื—ื™ืœ ื›-AP ืขื SSID ื ืกืชืจ ื•-MAC ืืงืจืื™ ื•ืžืชื—ื™ืœ ืœืฉืœื•ื— [beacon frame] ืœืคื™ ืจืฉื™ืžื” ืฉื ื•ืฆืจื” ืžืจืืฉ ืฉืœ SSIDs (ื ื•ืฆืจื” ื™ื“ื ื™ืช ืื• ื”ื•ืฉื’ื” ืžื•ืงื“ื ื™ื•ืชืจ ืขืœ ื™ื“ื™ ืกืจื™ืงืช ืจืฉื™ืžืช ื”-AP)

ืžืฆื‘ ืจื—ืจื•ื— ืžื ื•ืช WiFi

ืžืคืชื—ื™ Espressif ื”ื•ืกื™ืคื• ืืช ื”ื™ื›ื•ืœืช ืฉืœ ืชื•ื›ื ื•ืช ื™ื™ืฉื•ืžื™ื ืœืงื‘ืœ ืืช ื›ืœ ื—ื‘ื™ืœื•ืช ื”-WiFi "ืขืคื•ืช ื‘ืื•ื•ื™ืจ" ื‘ืืžืฆืขื•ืช ืคื•ื ืงืฆื™ื™ืช ื”ื”ืชืงืฉืจื•ืช ื—ื–ืจื”. ืœืžืขืฉื” ืœื ื”ื›ืœ, ืžื›ื™ื•ื•ืŸ ืฉืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืืช ื”ืžืฆื‘ ืจืง ืœืขืจื•ืฅ ืงื‘ื•ืข ืื—ื“.

ืžื’ื‘ืœื•ืช ื–ืžืŸ ืงืคื“ื ื™ื•ืช ืžืื•ื“ ืžื•ื˜ืœื•ืช ืขืœ ืขื™ื‘ื•ื“ ืคื•ื ืงืฆื™ื™ืช ื”ืชืงืฉืจื•ืช ื—ื•ื–ืจืช. ืื ื–ื” ืœื ื’ื•ืจื ืœื‘ืขื™ื•ืช ืขื‘ื•ืจ ืžืฆื‘ ืื™ืกื•ืฃ ืกื˜ื˜ื™ืกื˜ื™ืงื” ืคืฉื•ื˜, ืื– ืขื‘ื•ืจ ืžืฆื‘ ื”ืงืœื˜ืช ืงื‘ืฆื™ PCAP ื‘ื›ืจื˜ื™ืก SD ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ืชืขืกืง, ืœืืจื’ืŸ ืืช ื”ื”ืงืœื˜ื” ื“ืจืš ืชื•ืจ ื‘ื–ื™ื›ืจื•ืŸ ื•ืกืžืคื•ืจื•ืช. ืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ืžื•ื–ืจื•ืช ืฉื”ืชื”ืœื™ืš ื”ืงื•ืจื ืœื”ืชืงืฉืจื•ืช ื—ื•ื–ืจืช ืคื•ืขืœ ืขืœ ืœื™ื‘ื” ืื—ืช, ื•ื”ืชื”ืœื™ืš ื”ื›ื•ืชื‘ ืœ-SD ื‘ืื—ืจืช.

ื‘ื–ืžืŸ "ืื•ื•ื™ืจ ืจื•ืขืฉ", ื—ืœืง ืžื”ื—ื‘ื™ืœื•ืช ื”ื•ืœื›ื•ืช ืœืื™ื‘ื•ื“ (ืื™ืŸ ืžืงื•ื ื‘ืชื•ืจ ื•ื”ืŸ ื ื–ืจืงื•ืช), ืื‘ืœ ืขื "ืื•ื•ื™ืจ" ื˜ื™ืคื•ืกื™ ืฉืœ ื“ื™ืจื” ื‘ืขืจื‘ (5..7 APs ื‘ืจืื•ืช), ื”ืงืœื˜ื” ื‘-PCAP ื”ื•ืฉืœื ืœืœื ืื•ื‘ื“ืŸ ืžื ื•ืช.

ื‘ื ื•ืกืฃ, ืขื‘ื•ืจ ื ื™ื˜ื•ืจ ื•ื”ืงืœื˜ื” ืฉืœ โ€‹โ€‹PCAP, ืงื™ื™ื ืžืฆื‘ ืกื™ื ื•ืŸ ื”ืžื‘ื•ืกืก ืขืœ ืจืฉื™ืžืช ื”-MAC ื‘ื›ื•ืชืจื•ืช ื”ื—ื‘ื™ืœื•ืช.

ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœืขืงื•ื‘ ืื—ืจ ื”ื•ืคืขืชื• ืฉืœ ืื“ื ื‘ืžื•ืขื“ื•ืŸ/ื‘ื™ืช ืงืคื” ืขื•ื“ ืœืคื ื™ ืฉื”ื•ื ื ื›ื ืก ืื• ืžื•ืคื™ืข ื‘ืขื™ืŸ. ืžืขื˜ ืื ืฉื™ื ืžืฉื‘ื™ืชื™ื ืืช ื”-WiFi ื•ื”ื—ื™ื‘ื•ืจื™ื ื”ืื•ื˜ื•ืžื˜ื™ื™ื ืœ-APs ื™ื“ื•ืขื™ื. (ืื ื™ ืžื›ื‘ื” ืืช ื–ื” ืขื›ืฉื™ื•..)

ืฆืคื™ื™ื” ื‘ืชื ื•ืขื” ืžื•ืงืœื˜ืช ื‘-Wireshark ื”ื™ื ื—ื™ื ื•ื›ื™ืช ื•ืžืขื ื™ื™ื ืช ืœื”ื‘ื ืช ืžืคื•ืช - ื”ื›ืœ ืขื•ื‘ื“.

ืžืฆื‘ ืœืขื‘ื•ื“ื” ืขื ื—ื‘ื™ืœื•ืช ืžื•ื•ืช

ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืฉืœื™ื—ืช ื—ื‘ื™ืœื•ืช ืืœื• ืืกื•ืจื” ื‘ืกืคืจื™ื™ืช libnet80211.a, ืฉืžื’ื™ืขื” ืœืœื ืžืงื•ืจื•ืช. ืื‘ืœ ืงืœ ืœืชืงืŸ ืืช ื–ื” ืขืœ ื™ื“ื™ ื”ืชืืžื” ืฉืœ ื›ืžื” ื‘ื™ื˜ื™ื. ื‘ื”ืชื—ืœื” ืคืงืคืงืชื™ ืื ื›ื“ืื™ ืœืคืจืกื ืชื™ืงื•ืŸ. ืื‘ืœ ืื—ืจื™ ืฉื”ืกืชื•ื‘ื‘ืชื™ ื‘ืžืงื•ืžื•ืช ืฉื•ื ื™ื ื›ืฉืžืฆื‘ ืกืจื™ืงืช ืžืกื’ืจืช ื‘ื™ื˜ื•ืœ ื”ืื™ืžื•ืช ืžื•ืคืขืœ, ื—ืฉื‘ืชื™: "ืžื” ืœืขื–ืื–ืœ." ื™ืชืจื” ืžื›ืš, ื‘-esp8266 ื”ืžืฉืœื•ื— ืฉืœ ื”ื—ื‘ื™ืœื•ืช ื”ืœืœื• ืื™ื ื• ืกื’ื•ืจ ื•ื™ืฉ ืžื›ืœื•ืœื™ื ื‘-github ืขื‘ื•ืจ esp8266.

ื‘ืžืงื•ืžื•ืช ืจื‘ื™ื (ืœื ืื’ื™ื“ ื”ื™ื›ืŸ) ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื“ื™ื›ื•ื™ APs ืœื ืจืฆื•ื™ื™ื ื‘ืืžืฆืขื•ืช ืฉื™ื˜ื” ื–ื•. ื•ืืœื” ืœื "ื‘ืจื™ื•ื ื™ื"...

ื•ืื ื™ ื’ื ื”ื•ืคืชืขืชื™ ืฉื”ืคืฆืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœื™ ืžื”ื˜ืœืคื•ืŸ ืฉืœื™ ืœื ืขื‘ื“ื” ื‘ืžืงื•ืžื•ืช ืžืกื•ื™ืžื™ื...

ื”ืžืฆื‘ ืœืžืขืงื‘ ืื—ืจ ื”ืžืกืคืจ ื•ื”-RSSI ืฉืœ ืžื ื•ืช ื›ืืœื” ืฉื™ืžื•ืฉื™ ืžืื•ื“ ื›ื“ื™ ืœื”ื‘ื™ืŸ "ื”ื™ื›ืŸ ื”-APs ื”ืฉืžืืœื™ ืœื ืื•ื”ื‘ื™ื ืืช ื–ื”."

ืžืฆื‘ ื ืชื‘

ืชื›ื•ื ื” ื–ื• ื”ื™ื ื›ื ืจืื” ื”ืžืขื ื™ื™ื ืช ืžื›ื•ืœื ืœื—ืงื•ืจ.

ESP32 ืชื•ืžืš ื‘ื”ืคืขืœื” ื‘ื•-ื–ืžื ื™ืช ื‘ืžืฆื‘ STA + SoftAP. ืœื›ืŸ, ืืชื” ื™ื›ื•ืœ ืœื™ื™ืฉื ื ืชื‘ NAT ืงืœืืกื™ ืขืœื™ื•.

ื›ื“ื™ ืœืชืžื•ืš ื‘ืขืจื™ืžืช ื”ืจืฉืช, Espressif ืžืฉืชืžืฉ ื‘ืžื–ืœื’ (ื›ืžืขื˜ ืœืœื ืฉื™ื ื•ื™) ืฉืœ ืกืคืจื™ื™ืช lwip.

ืื‘ืœ, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื‘-build ื”ืกื˜ื ื“ืจื˜ื™, ืกืคืจื™ื™ืช esp-lwip ืื™ื ื” ืžืกืคืงืช ื”ืขื‘ืจื” ื‘ื™ืŸ ืžืžืฉืงื™ netif 'ap' (SoftAP) ื•-'st' (STA).

ื›ืžื•ื‘ืŸ ืฉืืคืฉืจ ืœืขืฉื•ืช ืืช ื–ื” ื‘ืœื™ NAT, ืื‘ืœ ื™ืฉ ื‘ืขื™ื” ื‘ื—ื™ื‘ื•ืจ ื‘ื•-ื–ืžื ื™ืช ืฉืœ ืฉื ื™ื™ื ืื• ื™ื•ืชืจ STA ืœืžืžืฉืง 'ap' ื•ืกื ื›ืจื•ืŸ ื›ืชื•ื‘ื•ืช IP ืžืžืžืฉืง ื”ืจืฉืช 'st' ืœ-'ap'. ืื– ื”ืงืฉื™ื™ื ืœื ืฉื•ื•ื™ื ืืช ื–ื” ื•ื–ื” ืงืœ ื™ื•ืชืจ ื“ืจืš NAT.

ื™ืชืจ ืขืœ ื›ืŸ, ื™ืฉ ืžื–ืœื’ esp-lwip ืž-martin-ger, ืฉืžื•ืกื™ืฃ ื™ื™ืฉื•ื ืคืฉื•ื˜ ืฉืœ NAT ืขื‘ื•ืจ IP4.

ืœืžืจื•ืช ืฉื”ื™ื“ื™ื™ื ืฉืœื™ ื’ืจื“ื• ืœืขืฉื•ืช ืืช ื–ื” ืžื—ื“ืฉ ื‘ืื•ืคืŸ ืงื•ืกืžื˜ื™ ื‘ืœื‘ื“ (ืœื“ืขืชื™, ื–ื” ื”ื™ื” ืงืœ ื™ื•ืชืจ ื‘ืœื™ ืžื–ืœื’ ืฉืœ ื”ืคืจื•ื™ืงื˜, ืื‘ืœ ื“ืจืš LWIPื•ื• ั„ัƒะฝะบั†ะธะธ, ะพะฟั€ะตะดะตะปัะตะผั‹ั… ะฟั€ะธ ัะฑะพั€ะบะต), ะฝะพ ะปะตะฝัŒ ะฟะพะฑะตะดะธะปะฐ ะธ ะฒะฐั€ะธะฐะฝั‚ ะพั‚ martin-ger ะธัะฟะพะปัŒะทัƒะตั‚ัั ะบะฐะบ ะตัั‚ัŒ.

ื‘ืžืฆื‘ ื ืชื‘, ืชืขื‘ื•ืจืช IP4 ื ื›ื ืกืช ื•ื™ื•ืฆืืช ื ืจืื™ืช.

ื‘ืคืจื˜, ืžื•ืคืงื™ื ืžืžื ื• ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื ืœืฆื•ืจืš ื”ืฆื’ื” ืขืœ ื”ืžืกืš ื•ืื™ืกื•ืฃ ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืœืงื•ื‘ืฅ:

  • ืฉื ื”ื”ืชืงืŸ ืฉื”ืชื—ื‘ืจ ืœ-SoftAP ESP32 (ืžื ื•ืช DHCP)
  • ื›ืชื•ื‘ืช URL ืžื‘ืงืฉื•ืช DNS (ื™ืฆื™ืืช UDP 53) ืžื”ืชืงืŸ ื”ืžื—ื•ื‘ืจ ืœ-SoftAP ESP32.

ื‘ื ื•ืกืฃ, ืืชื” ื™ื›ื•ืœ ืœืืคืฉืจ ื”ืงืœื˜ืช ืชื ื•ืขื” ืœืงื•ื‘ืฅ PCAP.

ืžืฆื‘ ื–ื” ืฉื™ืžื•ืฉื™ ืžืื•ื“, ืœืžืฉืœ, ื›ื“ื™ ืœื”ื‘ื™ืŸ, ืœืžืฉืœ, ืžื” ื”ื˜ืœืคื•ืŸ ืฉืœืš ืฉื•ืœื— ืœืจืฉืช ื•ืœืืŸ ื”ื•ื ื”ื•ืœืš.

ืืชื” ื™ื›ื•ืœ ืœื—ืฉื•ื‘ ืขืœ ื“ืจื›ื™ื ืื—ืจื•ืช ืœื”ืฉืชืžืฉ ื‘ืžืฆื‘ ื–ื”, ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ื™ื›ื•ืœืช ืœืฉืœื•ื˜ ืœื—ืœื•ื˜ื™ืŸ ื‘ืชืขื‘ื•ืจื” ื ื›ื ืกืช ื•ื™ื•ืฆืืช ืฉืœ softAP ESP32 ื‘ืจืžืช ืžืžืฉืง ื”ืจืฉืช: ื›ื•ืชืจืช Ehernet (destMAC[6]+srcMAC[6]+type[2]) + ืžื˜ืขืŸ (ืกื•ื’ IP4, IP6, DCHP ื•ื›ื•').

ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ื”-ESP32 ืžืชืžื•ื“ื“ ื“ื™ ื˜ื•ื‘ ืขื ืคื•ื ืงืฆื™ื™ืช ื”ื ืชื‘ WiFi->WiFi, ืขื•ื‘ืจ ื“ืจืš ืชื ื•ืขื” ืจื’ื™ืœื” ืœืœื ืขื™ื›ื•ื‘ื™ื ืžื™ื•ื—ื“ื™ื. ื‘ืื•ืคืŸ ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™, ืขื™ื›ื•ื‘ื™ื ื‘ื˜ืœืคื•ืŸ ื”ืžื—ื•ื‘ืจ ื“ืจืš ื ืชื‘ ื‘-ESP32 ืื™ื ื ืžื•ืจื’ืฉื™ื.

ืœืจื•ืข ื”ืžื–ืœ, ืœ-Espressif API ืื™ืŸ ืืช ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืžืกื ืŸ ืขื‘ื•ืจ MAC ื”ืžื—ื•ื‘ืจ ืœ-SoftAP EPS32. ื‘ืžืงื•ื ื–ืืช, ืžื•ืฆืข ืœื•ืžืจ "ืœื”ืชืจืื•ืช" (esp_wifi_deauth_sta) ืœ-STAs ืฉื›ื‘ืจ ืžื—ื•ื‘ืจื™ื ื•"ืœื ืจืฆื•ื™ื™ื".

ืกื™ื ื•ืŸ ืขืœ ื™ื“ื™ MAC ืขื‘ื•ืจ STAs ืžื—ื•ื‘ืจื™ื ื”ื™ื” ืฆืจื™ืš ืœื”ื™ืขืฉื•ืช ื‘ืืžืฆืขื•ืช ื”ืงืจื™ืื” esp_wifi_deauth_sta()

ืœืกื™ื›ื•ื

ืœืžืจื•ืช ืฉืœื ื”ืžืฆืืชื™ ืฉื•ื ื“ื‘ืจ ื—ื“ืฉ ื‘ืžืกื’ืจืช ื”ืขื‘ื•ื“ื” ืขื ESP32, ืื•ืœื™ ื”ืชื•ืฆืื” (ืงื•ื“ ื”ืžืงื•ืจ) ืชืขื ื™ื™ืŸ ืžื™ืฉื”ื•.

ื‘ืจืฆื•ื ื™ ืœืฆื™ื™ืŸ ืฉื”ืงื•ื“ ื ื›ืชื‘ ืืš ื•ืจืง ืœืžื˜ืจื•ืช ื—ื™ื ื•ื›ื™ื•ืช. ืขื‘ื•ืจ "ืคืจื™ืฆื”" ื•ื›ื•', ื–ื” ื ืขืฉื” ื‘ื›ื•ื•ื ื” ืœื ื ื•ื— ื‘ืžื™ื•ื—ื“.

ืœื ื”ื›ื ืชื™ ืžืขื’ืœ ืžื•ื“ืคืก ื›ื™ ืœืงื— 1.5-2 ืฉืขื•ืช ืœื”ืœื—ื™ื ืืช ื”ืฆืขื™ืคื™ื ื”ืžื•ื’ืžืจื™ื ืขื ื—ื•ื˜.

ื•ืื ื›ืŸ, ืืชื” ืฆืจื™ืš ืœื”ืจื›ื™ื‘ ืื•ืชื• ืœื ืžืœื•ื—ื•ืช ืžื•ื›ื ื™ื, ืืœื ืžืžืจื›ื™ื‘ื™ื ื‘ื•ื“ื“ื™ื. ืื– ื”ืžืžื“ื™ื ื™ื”ื™ื• ืืคื™ืœื• ืงื˜ื ื™ื ื™ื•ืชืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”