ESP32 рдорд╛ Wifi рд╕рдВрдЧ рдЦреЗрд▓рд╣рд░реВ

ESP32 рдорд╛ Wifi рд╕рдВрдЧ рдЦреЗрд▓рд╣рд░реВ

рд╡рд╛рдЗрдлрд╛рдЗ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рдкрдХреЗрдЯ рдЙрдкрдХрд░рдг рдмрдирд╛рдЙрдиреЗ рд╡рд┐рдЪрд╛рд░ рдорд▓рд╛рдИ рдХреЗ рджрд┐рдпреЛ рдпреЛ рд▓реЗрдЦ.

рд╡рд┐рдЪрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдЙрд╣рд╛рдБрд╣рд░реВрд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рджред рдорд▓рд╛рдИ рдХреЗрд╣реА рдЧрд░реНрдиреБ рдкрд░реЗрди ред

рд░рдорд╛рдЗрд▓реЛ рдЧрд░реНрдиреЗ рд░ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреАрдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рдореЗрд░реЛ рдЬреНрдЮрд╛рди рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ рд╕рдмреИ рдХрд╛рдорд╣рд░реВ рдПрдХ рд╢реМрдХрдХреЛ рд░реВрдкрдорд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдмрд┐рд╕реНрддрд╛рд░реИ, рд╣рдкреНрддрд╛рдХреЛ 1..4 рдШрдгреНрдЯрд╛, рдпреЛ рд╡рд░реНрд╖рдХреЛ рд╕реБрд░реБрджреЗрдЦрд┐ред
рдореИрд▓реЗ рдХреБрдиреИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рдпреЛрдЧрдХреЛ рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдХреЛ рдЫреИрдиред рддреАред рдпреЛ рд╣реНрдпрд╛рдХрд░рдХреЛ рдЙрдкрдХрд░рдг рд╣реЛрдЗрдиред

рдпрд╕ рд╕рдордпрдорд╛, рд╕рдмреИ рдирд┐рдпреЛрдЬрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫред рд╕рдмреИ рд╕реНрд░реЛрддрд╣рд░реВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рддрдпрд╛рд░, рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдЧрд░рд┐рдпреЛред рддреНрдпрд╣рд╛рдБ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ, рдЖрджрд┐ рдкрдирд┐ рдЫрдиреНред рдпрд╕ рдиреЛрдЯрдорд╛, рдо github рдорд╛ рдкреЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдирдХреНрдХрд▓ рдЧрд░реНрдиреЗрдЫреИрдиред рдЫреБрдЯреНрдЯреИ рд╡рд░реНрдгрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдард╛рдиреЗрдХреЛ рдХреБрд░рд╛ рдорд╛рддреНрд░ рдо рддрдкрд╛рдИрд▓рд╛рдИ рдмрддрд╛рдЙрдиреЗрдЫреБред

"рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЙрдкрдХрд░рдг" рдорд╛ рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░ рд░ ESP32 рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ рдХрд╛рд░рдг

рдо рд╕рддреНрдп рднрдПрдХреЛ рджрд╛рдмреА рдЧрд░реНрджрд┐рдиред рд╕рдмреИрдХреЛ рдЖрдлреНрдиреИ рд╣реБрдиреНрдЫред рдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдореЗрд░реЛ рдЫрдиреЛрдЯ рдФрдЪрд┐рддреНрдп рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреБред

рд▓реЗрдЦрдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ рд▓рд┐рдирдХреНрд╕ (рд╕реБрд░реБрдорд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ) + "рдкреЗрд░рд┐рдлреЗрд░рд▓рд╣рд░реВ" рдХрдиреНрдЯреНрд░реЛрд▓рд░рдХреЛ рд░реВрдкрдорд╛ (STM32) + CC1110 (8051 рдХреЛрд░) рдХреЛ рд╕рдВрдпреЛрдЬрдирдХреЛ рдкреНрд░рдпреЛрдЧ рдХреЗрд╕ рд░ рддреНрдпрд╣рд╛рдБ (125kHz, NFC, 433mHz, USB, iButton, рдмреНрд▓реБрдЯреБрде, ?) рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рджреЗрдЦрд┐рдПрдиред рддрд░, рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдпреЛ рдирд┐рдЬреА рд░ рдмрдиреНрдж рд░рд╣рдиреЗрдЫ (рдлреНрд▓рд┐рдкрд░-рд╢реВрдиреНрдп github "рдпрд╕ рд╕рдВрдЧрдарди рдХреБрдиреИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдгреНрдбрд╛рд░ рдЫреИрдиред") рд░ рдзреЗрд░реИ рд╕рд╛рдзрд╛рд░рдг рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддрд┐рд░ рдЧрдпреЛред

рд╕рд╛рдпрдж рдо рдЧрд▓рдд рдЫреБ, рд░ рднрд╡рд┐рд╖реНрдпрдорд╛ рд▓реЗрдЦрдХрд╣рд░реВрд▓реЗ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдкрдорд╛ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗрдЫрдиреНред рддрд░ рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ, рдо рд╕реНрд░реЛрдд рдХреЛрдб рдмрд┐рдирд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рдпрд╕реНрддреЛ рдЯреБрдХреНрд░рд╛ рдХрд┐рдиреНрди рд╕рдХреНрджрд┐рдиред

"рдЙрдкрдХрд░рдг" рдХреЛ рд▓рд╛рдЧреА рдореЗрд░реЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реБ

рдмрдХреНрд╕ рд╕рд╛рдиреЛ рд╣реБрдиреБрдкрд░реНрдЫ (рд╕рд╛рдиреЛ рд░рд╛рдореНрд░реЛ)ред

рдпрд╕реИрд▓реЗ:

  • рдХреБрдиреИ рдмрд┐рд▓реНрдЯ-рдЗрди рдмреНрдпрд╛рдЯреНрд░реА рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред Wifi рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рд╣рд╛рд▓рдХреЛ > 100 mA рд╕рдВрдЧ, рдмрд┐рд▓реНрдЯ-рдЗрди рдмреНрдпрд╛рдЯреНрд░реА рдпрд╛ рдд рдареВрд▓реЛ рд╣реБрдиреЗрдЫ рд╡рд╛ рд▓рд╛рдореЛ рд╕рдордп рд╕рдореНрдо рдЪрд▓реНрджреИрдиред рддреНрдпрд╕рдХрд╛рд░рдг, "рдмрдХреНрд╕" рд▓рд╛рдИ рдорд╛рдирдХ рдкрд╛рд╡рд░ рдмреИрдВрдХрджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЧрд░реМрдВред рдЬреЗ рд╣реЛрд╕реН, рдореЗрд░реЛ рдЦрд▓реНрддреА/рдХрд╛рд░рдорд╛ рд╕рдзреИрдВ рдкрд╛рд╡рд░ рдмреИрдВрдХ рд╣реБрдиреНрдЫред
  • рд▓рд┐рдирдХреНрд╕ "рдмрдХреНрд╕" рднрд┐рддреНрд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН, рдзреЗрд░реИ рд╡рд░реНрд╖рджреЗрдЦрд┐ рд╕рдмреИ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд╕рд╛рдиреЛ рд╕реНрдХреНрд░рд┐рди рд░ рдирд┐рдпрдиреНрддреНрд░рдг рдмрдЯрдирд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ рд╕реЗрдЯрдХреЛ рд╕рд╛рде, рдпрд╕рд▓реЗ рдХреБрдиреИ рдЕрд░реНрде рд░рд╛рдЦреНрджреИрдиред рдирддрд┐рдЬрд╛рд╣рд░реВ рдкреВрд░реНрдг рдХрд┐рдмреЛрд░реНрдб рд░ рд╕реНрдХреНрд░рд┐рдирдХреЛ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рд╣реЗрд░реНрди/рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
  • рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдЬрд┐рд▓реИ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдЬреНрдЮрд╛рдд рд╣реБрдиреБрдкрд░реНрдЫ (рдЙрдкрд▓рдмреНрдз SDK, рдзреЗрд░реИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд░ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ)ред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдореЗрд░реЛ рд▓рд╛рдЧрд┐, рдЫрдиреМрдЯ рд╕реНрдкрд╖реНрдЯ рдерд┐рдпреЛ - ESP32ред

рд▓реЗрдЦрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╕рд▓реЗ рдорд▓рд╛рдИ рдХрд╛рд░рдмрд╛рд╣реА рдЧрд░реНрди рдкреНрд░реЗрд░рд┐рдд рдЧрд░реНрдпреЛ, ESP32 рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкрд░реНрдпрд╛рдкреНрдд рдЫрдиреНред рдпрджреНрдпрдкрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рдо рдЕрдЭреИ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ:

  • рдмреНрд▓реБрдЯреБрде рд╕рдВрдЧ рдЦреЗрд▓реНрдиреБрд╣реЛрд╕реНред
  • рд╕рд░рд▓ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рд╕рд╛рде 433mHz рджрд╛рдпрд░рд╛рд╕рдБрдЧ рдЦреЗрд▓реНрдиреБрд╣реЛрд╕реН (рдХреЗрд╡рд▓ рдПрдореНрдкреНрд▓рд┐рдЯреНрдпреВрдб рдореЛрдбреБрд▓реЗрд╢рди, рдЬреБрди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЫ)ред

ESP32 рдорд╛ рдорд▓рдо рдорд╛ рдЙрдбреНрдиреБрд╣реЛрд╕реН

  • ESP32 SDK (IDF) рдХреЗрд╣реА рдЕрдирд╛рдбрд╝реА рдЫред
  • рдХреЗрд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд╛рдЗрдлрд╛рдЗ рд╕реНрдЯреНрдпрд╛рдХ) рд╕реНрд░реЛрдд рдХреЛрдб рдмрд┐рдирд╛ рдЬрдореНрдорд╛ рдЧрд░рд┐рдПрдХреЛ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдЖрдЙрдБрдЫред
  • 5gHz рдмреНрдпрд╛рдиреНрдб рд╕рдорд░реНрдерд┐рдд рдЫреИрди рд░ WiFi рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рдХреЗрд╣реА рд╕реАрдорд┐рддрддрд╛ рд░ рдЕрдирд╛рдбрд╝реА рдЫрдиреНред

рддрд░ рдореВрд▓реНрдп/рдЖрдХрд╛рд░рд▓реЗ рдпреА рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рджрд┐рдиреНрдЫред

рдореБрдЦреНрдп рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛

рдо рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд░ рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБ ...

рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджреИ рд░ SD рдмрд╛рдЯ рдлрд╛рдЗрд▓рд╣рд░реВ рдЕрдкрд▓реЛрдб рдЧрд░реНрджреИ

рд╕рдмреИ рдмрд╛рд╣реНрдп рдирд┐рдпрдиреНрддреНрд░рдг рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реЗрдм рдкреГрд╖реНрда рдорд╛рд░реНрдлрдд рдЧрд░рд┐рдиреНрдЫ, рдПрдХ рдЕрд▓рдЧ рдореЗрдиреБ рд╡рд╕реНрддреБрдорд╛ рд╕реБрд░реБред ESP32 WiFi AP рдореЛрдбрдорд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ рд░ рдирд┐рд╢реНрдЪрд┐рдд IP рдареЗрдЧрд╛рдирд╛рдорд╛ рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред

рдпрджреНрдпрдкрд┐ ESP32 рдХреЛрд░рд╣рд░реВ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдЫрдиреН, рдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓реЗ рджреЗрдЦрд╛рдПрдХреЛ рд░реВрдкрдорд╛, рдирд┐рд░реНрдорд┐рдд рд╡реЗрдм рд╕реЗрд╡рд╛рдХреЛ рдПрдХрд╕рд╛рде рд╕рдЮреНрдЪрд╛рд▓рди рд░, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░рд╛рдЙрдЯрд░ рдореЛрдб рдзреЗрд░реИ рдЙрдкрдпреБрдХреНрдд рдЫреИрдиред рддреНрдпрд╕рдХрд╛рд░рдг, рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЧрддрд┐рд╢реАрд▓ рдирд┐рдпрдиреНрддреНрд░рдг рдЫреИрди рд░ рдкреГрд╖реНрда рдЕрдиреНрдп рд╕рдмреИ рдореЛрдбрд╣рд░реВрдорд╛ рдЙрдкрд▓рдмреНрдз рдЫреИрдиред
рдпрд╕рдмрд╛рд╣реЗрдХ, рдЕрдиреБрд╕рдиреНрдзрд╛рди рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдЧрддрд┐рд╢реАрд▓ рдирд┐рдпрдиреНрддреНрд░рдг рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

рдмреАрдХрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдореЛрдб

рдореЛрдбрд╣рд░реВ рд╕рд╛рдзрд╛рд░рдг рдЫрдиреН рд░ рдзреЗрд░реИ рд░реЛрдЪрдХ рдЫреИрдиред рдмрдирд╛рдЗрдпреЛ "рдХрд┐рдирдХрд┐ рдпреЛ рд╕рдореНрднрд╡ рдЫред" рдЪреЗрдХ рдХреЛ рд▓рд╛рдЧреАред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Espressif рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЫрдиреНред

рдПрдкреА рд╕реВрдЪреА рд╕реНрдХреНрдпрд╛рдирд┐рдЩ рдореЛрдбред
рд╡рд╛рд╕реНрддрд╡рдорд╛, рдХреБрдиреИ рдкрдирд┐ рд╕реНрдорд╛рд░реНрдЯрдлреЛрдирд▓реЗ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдЫред
рдЦреИрд░, рдпрд╕ рдореЛрдбрдорд╛ AP рд╕реВрдЪреА рдмрдЪрдд рд╣реБрдиреЗрдЫред
рдмреАрдХрди рд╕реНрдкреНрдпрд╛рдорд░ред
ESP32 рд▓реБрдХреЗрдХреЛ SSID рд░ рдЕрдирд┐рдпрдорд┐рдд MAC рд╕рдБрдЧ AP рдХреЛ рд░реВрдкрдорд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ рд░ SSID рдХреЛ рдкреВрд░реНрд╡-рд╕рд┐рд░реНрдЬрд┐рдд рд╕реВрдЪреА рдЕрдиреБрд╕рд╛рд░ [рдмреАрдХрди рдлреНрд░реЗрдо] рдкрдард╛рдЙрди рдерд╛рд▓реНрдЫ (рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╡рд╛ AP рд╕реВрдЪреА рд╕реНрдХреНрдпрд╛рди рдЧрд░реЗрд░ рдкрд╣рд┐рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдПрдХреЛ)ред

рд╡рд╛рдЗрдлрд╛рдЗ рдкреНрдпрд╛рдХреЗрдЯ рд╕реНрдирд┐рдлрд┐рдЩ рдореЛрдб

Espressif рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдХрд▓рдмреНрдпрд╛рдХ рдкреНрд░рдХрд╛рд░реНрдп рдорд╛рд░реНрдлрдд рд╕рдмреИ рд╡рд╛рдЗрдлрд╛рдЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ "рд╣рд╛рд╡рд╛рдорд╛ рдЙрдбреНрджреИ" рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд╖рдорддрд╛ рдердкреЗрдХрд╛ рдЫрдиреНред рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╕рдмреИ рд╣реЛрдЗрди, рдХрд┐рдирдХрд┐ рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪреНрдпрд╛рдирд▓рдХреЛ рд▓рд╛рдЧрд┐ рдореЛрдб рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдХрд▓рдмреНрдпрд╛рдХ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рд╢реЛрдзрдирдорд╛ рдзреЗрд░реИ рдХрдбрд╛ рд╕рдордп рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рд▓рдЧрд╛рдЗрдиреНрдЫред рдпрджрд┐ рдпрд╕рд▓реЗ рд╕рд╛рдзрд╛рд░рдг рддрдереНрдпрд╛рдЩреНрдХ рд╕рдЩреНрдХрд▓рди рдореЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджреИрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ SD рдХрд╛рд░реНрдбрдорд╛ PCAP рдлрд╛рдЗрд▓ рд░реЗрдХрд░реНрдбрд┐рдЩ рдореЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдореИрд▓реЗ рдореЗрдореЛрд░реА рд░ рд╕реЗрдорд╛рдлреЛрд░рд╣рд░реВрдорд╛ рд▓рд╛рдо рдорд╛рд░реНрдлрдд рд░реЗрдХрд░реНрдбрд┐рдЩ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрджреИ рдЯрд┐рдВрдХрд░ рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛред рдХрд▓рдмреНрдпрд╛рдХ рдХрд▓ рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдЙрдЯрд╛ рдХреЛрд░рдорд╛ рдЪрд▓реНрдЫ, рд░ рдЕрд░реНрдХреЛрдорд╛ SD рдорд╛ рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИред

"рдХреЛрд▓рд╛рд╣рд▓рдпреБрдХреНрдд рд╣рд╛рд╡рд╛" рдХреЛ рд╕рдордпрдорд╛, рдХреЗрд╣реА рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╣рд░рд╛рдЙрдБрдЫрдиреН (рд▓рд╛рдордорд╛ рдХреБрдиреИ рдард╛рдЙрдБ рдЫреИрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЦрд╛рд░реЗрдЬ рдЧрд░рд┐рдиреНрдЫ), рддрд░ рд╕рд╛рдБрдЭрдорд╛ рдЕрдкрд╛рд░реНрдЯрдореЗрдиреНрдЯрдХреЛ рд╕рд╛рдорд╛рдиреНрдп "рд╣рд╛рд╡рд╛" (5..7 APs рджреГрд╢реНрдпрддрд╛ рднрд┐рддреНрд░), PCAP рдорд╛ рд░реЗрдХрд░реНрдбрд┐рдЩред рдкреНрдпрд╛рдХреЗрдЯ рд╣рд╛рдирд┐ рдмрд┐рдирд╛ рдкреВрд░рд╛ рд╣реБрдиреНрдЫред

рдердк рд░реВрдкрдорд╛, PCAP рдирд┐рдЧрд░рд╛рдиреА рд░ рд░реЗрдХрд░реНрдбрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐, рдкреНрдпрд╛рдХреЗрдЯ рд╣реЗрдбрд░рд╣рд░реВрдорд╛ MAC рд╕реВрдЪреАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдореЛрдб рдЫред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдХреНрд▓рдм/рдХреНрдпрд╛рдлреЗрдорд╛ рдХреБрдиреИ рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдиреБ рдЕрдШрд┐ рд╡рд╛ рджреГрд╢реНрдпрдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдиреБ рдЕрдШрд┐ рдЙрд╕рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдереЛрд░реИ рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдЬреНрдЮрд╛рдд APрд╣рд░реВрдорд╛ WiFi рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрдбрд╛рдирд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрдЫрдиреНред (рдЕрд╣рд┐рд▓реЗ рдо рдпрд╕рд▓рд╛рдИ рдмрдиреНрдж рдЧрд░реНрджреИрдЫреБ ..)

Wireshark рдорд╛ рд░реЗрдХрд░реНрдб рдЧрд░рд┐рдПрдХреЛ рдЯреНрд░рд╛рдлрд┐рдХ рд╣реЗрд░реНрдиреБ рд╢реИрдХреНрд╖рд┐рдХ рд░ рдирдХреНрд╕рд╛ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд░реЛрдЪрдХ рдЫ - рдпреЛ рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрджрдЫред

Deauth рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдореЛрдб

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдпреА рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкрдард╛рдЙрди libnet80211.a рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдирд┐рд╖реЗрдз рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рд╕реНрд░реЛрддрд╣рд░реВ рдмрд┐рдирд╛ рдЖрдЙрдБрдЫред рддрд░ рдХреЗрд╣рд┐ рдмрд┐рдЯ рдЯреНрд╡реАрдХ рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдареАрдХ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред рд╕реБрд░реБрдорд╛ рдорд▓рд╛рдИ рд╢рдВрдХрд╛ рд▓рд╛рдЧреНрдпреЛ рдХрд┐ рдпреЛ рдкреНрдпрд╛рдЪ рдкреЛрд╕реНрдЯ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдЫреИрдиред рддрд░ рдЕрдереЗрдиреНрдЯрд┐рдХреЗрд╢рди рдлреНрд░реЗрдо рд╕реНрдХреНрдпрд╛рдирд┐рдЩ рдореЛрдб рдЕрди рдЧрд░реА рд╡рд┐рднрд┐рдиреНрди рдард╛рдЙрдБрд╣рд░реВрдорд╛ рдШреБрдореЗрдкрдЫрд┐, рдореИрд▓реЗ рд╕реЛрдЪреЗ: "рдХреЗ рд╣реЛред" рдпрд╕рдмрд╛рд╣реЗрдХ, esp8266 рдорд╛ рдпреА рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рдбреЗрд▓рд┐рднрд░реА рдмрдиреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рд░ esp8266 рдХреЛ рд▓рд╛рдЧрд┐ github рдорд╛ рдПрд╕реЗрдореНрдмрд▓реАрд╣рд░реВ рдЫрдиреНред

рдзреЗрд░реИ рдард╛рдЙрдБрд╣рд░реВрдорд╛ (рдХрд╣рд╛рдБ рдо рднрдиреНрджрд┐рди) рдпреЛ рд╡рд┐рдзрд┐ рдорд╛рд░реНрдлрдд рдЕрдирд╛рд╡рд╢реНрдпрдХ APs рдХреЛ рджрдорди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рд░ рдпреА "рдмреБрд▓рд┐рдЬ" рд╣реЛрдЗрдирдиреН...

рд░ рдо рдкрдирд┐ рдЫрдХреНрдХ рдкрд░реЗрдВ рдХрд┐ рдореЗрд░реЛ рдлреЛрдирдмрд╛рдЯ рдореЗрд░реЛ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╡рд┐рддрд░рдгрд▓реЗ рдХреЗрд╣рд┐ рдард╛рдЙрдБрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реЗрди ...

рддреНрдпрд╕реНрддрд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдирдореНрдмрд░ рд░ RSSI рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрдиреЗ рдореЛрдб "рдХрд╣рд╛рдБ рдмрд╛рдпрд╛рдБ APs рд▓рд╛рдИ рдпреЛ рдордирдкрд░реНрджреИрди" рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рдЫред

рд░рд╛рдЙрдЯрд░ рдореЛрдб

рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рд╕рдореНрднрд╡рддрдГ рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрди рд╕рдмреИ рднрдиреНрджрд╛ рд░реЛрдЪрдХ рдЫред

ESP32 рд▓реЗ STA + SoftAP рдореЛрдбрдорд╛ рдПрдХрд╕рд╛рде рд╕рдЮреНрдЪрд╛рд▓рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рддрдкрд╛рдЗрдБ рдпрд╕рдорд╛ рдХреНрд▓рд╛рд╕рд┐рдХ NAT рд░рд╛рдЙрдЯрд░ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреНрдпрд╛рдХ рд╕рдорд░реНрдерди рдЧрд░реНрди, Espressif рд▓реЗ lwip рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдлреЛрд░реНрдХ (рд╡рд╕реНрддреБрддрдГ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред

рддрд░, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдгрдорд╛, esp-lwip рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ netif рдЗрдиреНрдЯрд░рдлреЗрд╕ 'ap' (SoftAP) рд░ 'st' (STA) рдмреАрдЪ рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрдиред

рдЕрд╡рд╢реНрдп рдкрдирд┐, рддрдкрд╛рдЗрдБ NAT рдмрд┐рдирд╛ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рддреНрдпрд╣рд╛рдБ рджреБрдИ рд╡рд╛ рдмрдвреА STA рд▓рд╛рдИ 'ap' рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдПрдХреИ рд╕рд╛рде рдЬрдбрд╛рди рдЧрд░реНрди рд░ 'st' рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕рдмрд╛рдЯ 'ap' рдорд╛ IP рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛ рдЫред рддреНрдпрд╕реИрд▓реЗ рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдпрд╕рдХреЛ рд▓рд╛рдпрдХ рдЫреИрдирдиреН рд░ рдпреЛ NAT рдорд╛рд░реНрдлрдд рд╕рдЬрд┐рд▓реЛ рдЫред

рдпрд╕рдмрд╛рд╣реЗрдХ, рддреНрдпрд╣рд╛рдБ martin-ger рдмрд╛рдЯ рдлреЛрд░реНрдХ esp-lwip рдЫ, рдЬрд╕рд▓реЗ IP4 рдХреЛ рд▓рд╛рдЧрд┐ NAT рдХреЛ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкреНрдЫред

рдпрджреНрдпрдкрд┐ рдореЗрд░рд╛ рд╣рд╛рддрд╣рд░реВ рдпрд╕рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХрд╕реНрдореЗрдЯрд┐рдХ рд░реВрдкрдорд╛ рд░рд┐рдореЗрдХ рдЧрд░реНрди рдЦреБрдЬрд▓реА рдерд┐рдП (рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдХрд╛рдБрдЯрд╛ рдмрд┐рдирд╛ рд╕рдЬрд┐рд▓реЛ рдерд┐рдпреЛ, рддрд░ LWIP рдорд╛рд░реНрдлрддредHOOK рдХрд╛рд░реНрдпрд╣рд░реВ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдХреЛ рд╕рдордпрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд), рддрд░ рдЖрд▓рд╕реНрдп рдкреНрд░рдмрд▓ рднрдпреЛ рд░ рдорд╛рд░реНрдЯрд┐рди-рдЧреЗрд░рдмрд╛рдЯ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рд░рд╛рдЙрдЯрд░ рдореЛрдбрдорд╛, рдЖрдЧрдорди рд░ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреЗ IP4 рдЯреНрд░рд╛рдлрд┐рдХ рд╣реЗрд░рд┐рдиреНрдЫред

рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рд╕реНрдХреНрд░рд┐рдирдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд░ рдлрд╛рдИрд▓рдорд╛ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдирд┐рдореНрдирдмрд╛рдЯ рдирд┐рдХрд╛рд▓рд┐рдПрдХреЛ рдЫ:

  • SoftAP ESP32 (DHCP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ) рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рдпрдиреНрддреНрд░рдХреЛ рдирд╛рдо
  • SoftAP ESP53 рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рдпрдиреНрддреНрд░рдмрд╛рдЯ DNS рдЕрдиреБрд░реЛрдзрд╣рд░реВ (UDP рдкреЛрд░реНрдЯ 32) рдмрд╛рдЯ URLред

рдердк рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ PCAP рдлрд╛рдЗрд▓рдорд╛ рдЯреНрд░рд╛рдлрд┐рдХ рд░реЗрдХрд░реНрдбрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдпреЛ рдореЛрдб рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рдЫ, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдмреБрдЭреНрди рдХреЛ рд▓рд╛рдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдИрдХреЛ рдлреЛрдирд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдХреЗ рдкрдард╛рдЙрдБрдЫ рд░ рдпреЛ рдХрд╣рд╛рдБ рдЬрд╛рдиреНрдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╕реНрддрд░рдорд╛ softAP ESP32 рдЖрдЧрдорди рд░ рдмрд╣рд┐рд░реНрдЧрдорди рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ рдпреЛ рдореЛрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдиреНрдп рддрд░рд┐рдХрд╛рд╣рд░реВ рдмрд╛рд░реЗ рд╕реЛрдЪреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: Ehernet рд╣реЗрдбрд░ (destMAC[6]+srcMAC[6]+type[2]) + рдкреЗрд▓реЛрдб (IP4, IP6, DCHP, рдЖрджрд┐ рдкреНрд░рдХрд╛рд░)ред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, ESP32 рд▓реЗ WiFi->WiFi рд░рд╛рдЙрдЯрд░ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рде рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╕рд╛рдордирд╛ рдЧрд░реНрджрдЫ, рдХреБрдиреИ рд╡рд┐рд╢реЗрд╖ рдврд┐рд▓рд╛рдЗ рдмрд┐рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдЯреНрд░рд╛рдлрд┐рдХрдмрд╛рдЯ рдЧреБрдЬрд░рд┐рд░рд╣реЗрдХреЛ рдЫред рд╡рд┐рд╖рдпрдЧрдд рд░реВрдкрдорд╛, ESP32 рдорд╛ рд░рд╛рдЙрдЯрд░ рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рдЧрд░рд┐рдПрдХреЛ рдлреЛрдирдорд╛ рдврд┐рд▓рд╛рдЗрд╣рд░реВ рдзреНрдпрд╛рди рджрд┐рди рдпреЛрдЧреНрдп рдЫреИрдирдиреНред

рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, Espressif API рд╕рдБрдЧ SoftAP EPS32 рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ MAC рдХреЛ рд▓рд╛рдЧрд┐ рдлрд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЫреИрдиред рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛, рдкрд╣рд┐рд▓реЗ рдиреИ рдЬрдбрд╛рди рдЧрд░рд┐рдПрдХрд╛ STAрд╣рд░реВрд▓рд╛рдИ "рдЕрд▓рд╡рд┐рджрд╛" (esp_wifi_deauth_sta) рднрдиреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬреБрди "рдЪрд╛рд╣рд┐рдПрдХреЛ рдЫреИрди"ред

рдЬрдбрд╛рди рдЧрд░рд┐рдПрдХрд╛ STA рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ MAC рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ esp_wifi_deauth_sta() рдХрд▓ рдорд╛рд░реНрдлрдд рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпрджреНрдпрдкрд┐ рдо ESP32 рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдврд╛рдБрдЪрд╛ рднрд┐рддреНрд░ рдирдпрд╛рдБ рдХреЗрд╣рд┐ рд▓рд┐рдПрд░ рдЖрдПрдХреЛ рдЫреИрди, рд╕рд╛рдпрдж рдкрд░рд┐рдгрд╛рдо (рд╕реНрд░реЛрдд рдХреЛрдб) рдХрд╕реИрдХреЛ рд▓рд╛рдЧрд┐ рд░реЛрдЪрдХ рд╣реБрдиреЗрдЫред

рдо рдиреЛрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдХреЛрдб рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛред "рд╣реНрдпрд╛рдХрд┐рдВрдЧ" рдЗрддреНрдпрд╛рджрд┐рдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рдЬрд╛рдирд╛рдЬрд╛рдиреА рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд┐рдПрдиред

рдореИрд▓реЗ рдкреНрд░рд┐рдиреНрдЯреЗрдб рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдмрдирд╛рдПрдХреЛ рдЫреИрди рдХрд┐рдирдХреА рдпреЛ рддрд╛рд░ рд╕рдВрдЧ рд╕рдорд╛рдкреНрдд рд╕реНрдХрд╛рд░реНрдл рд╕реЛрд▓реНрдбрд░ рдЧрд░реНрди 1.5-2 рдШрдгреНрдЯрд╛ рд▓рд╛рдЧреНрдпреЛред

рд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рддрдпрд╛рд░-рдмрдирд╛рдПрдХрд╛ рдмреЛрд░реНрдбрд╣рд░реВрдмрд╛рдЯ рд╣реЛрдЗрди рддрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХрд╣рд░реВрдмрд╛рдЯ рднреЗрд▓рд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддреНрдпрд╕рдкрдЫрд┐ рдЖрдпрд╛рдорд╣рд░реВ рдкрдирд┐ рд╕рд╛рдиреЛ рд╣реБрдиреЗрдЫред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди