ESP8266 рдкрд░ рдПрдХ рдЧрд░реНрдо рдлрд░реНрд╢ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдорд╛рд░реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕

рдореИрдВ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рдореИрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ) рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ (рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ) рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрд╛рдпрд▓рд░ рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдХреЗ рдФрд░ рдкрд╛рдиреА рдХреЗ рддрд╛рдк рд╣реАрдЯрд┐рдВрдЧ рд▓реВрдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рдкрд░ рдерд░реНрдорд▓ рд╕рд┐рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реЗрдВрд╕рд░ (рд╡рд╛рдпрд░реНрдб рдФрд░ рд╡рд╛рдпрд░рд▓реЗрд╕) рдХреА рд░реАрдбрд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рддрд╛рдкрдорд╛рди (рд╕рдкреНрддрд╛рд╣ рдХреЗ рджрд┐рдиреЛрдВ рд╕рд╣рд┐рдд) рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░


рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ, ESP8266 (WeMos D1 mini) рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ рдмреЛрд░реНрдб рдкрд░ рд╡рд╛рдИрдлрд╛рдИ рд╣реИред ESP8266 рдХреЗ рдмрдЬрд╛рдп, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдпрд╛ рдорд╛рдЗрдХреНрд░реЛ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ WEB рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рдорд░реНрдерди рд╡рд╛рд▓рд╛ рдПрдХ WEB рд╕рд░реНрд╡рд░ рдЪрдпрдирд┐рдд рд╕рд┐рд╕реНрдЯрдо рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

  • RTC: DS3231 - рд╕рдкреНрддрд╛рд╣ рдХреЗ рджрд┐рди рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЧрдИ рдереА рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП NTP рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
  • рд╡рд╛рдпрд░рд▓реЗрд╕ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░: NoName, 433MHz, рдЪреАрдиреА рдореМрд╕рдо рд╕реНрдЯреЗрд╢рди рд╕реЗ - рдПрдХ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди, рд╡реЗ рдмреИрдЯрд░реА рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП? рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреА рдЕрд╡рдзрд┐ рддрдп рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рд╕рд╛рд░рдг рдХреА рдЕрд╡рдзрд┐ 35 рд╕реЗрдХрдВрдб рд╣реИ рдФрд░ рдЬреНрдпрд╛рджрд╛ рддреИрд░рдирд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрдм рджреЛ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд┐рдЧреНрдирд▓ рдУрд╡рд░рд▓реИрдк рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рдпрд╛ рджреЛ рд╕реЗрдВрд╕рд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЪреИрдирд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рднреА рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред
  • 433MHz рд░рд┐рд╕реАрд╡рд░: Rxb6 - рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдПрдХ рдмреБрд░рд╛ рд░рд┐рд╕реАрд╡рд░ рдирд╣реАрдВ рд╣реИрдВред
  • рд╡рд╛рдпрд░реНрдб рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░: DS18B20 - рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╕реЗрдВрд╕рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • 1рд╡рд╛рдпрд░ рдмрд╕ рдорд╛рд╕реНрдЯрд░: DS2482-100 - 1рд╡рд╛рдпрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЯрд╛рдЗрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╕ рдорд╛рд╕реНрдЯрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рджреЗрд░реА рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк 1рд╡рд╛рдпрд░ рдмрд╕ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ 1рд╡рд╛рдпрд░ <-> i2c рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдХреЗ рдЗрд╕рдХреА рдХрдорд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред I2c рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдПрдХ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд▓рд╛рдЗрди рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдордп рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░: рдЯреАрдкреАрдПрд▓ 5000 рдбреАрдЬреАрдПрд╕рдЯреА - рдирд┐рд░рдВрддрд░ рдЕрдкрдЯрд╛рдЗрдо рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред ESP8266 рдореЗрдВ рдПрдХ рдирд┐рд░реНрдорд┐рдд рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдХрднреА-рдХрднреА рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдпрд╣ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЬрдо рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд╣рд░реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░ рдХреЛ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред 64 рд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдЧ TX рд╕реЗ рдЬреБрдбрд╝рд╛ - рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рд╕рд┐рд╕реНрдЯрдо рд▓рдЧрд╛рддрд╛рд░ рд╕реАрд░рд┐рдпрд▓ рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдХрдореА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╣реИрдВрдЧ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИред
  • рдкреЛрд░реНрдЯ рд╡рд┐рд╕реНрддрд╛рд░рдХ: 74HC595 - рдЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ 4 рдкреИрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рддреАрди рд░рд╛рдЬреНрдп рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рддрд╛рдХрд┐ рд░рд┐рд▓реЗ рддрдм рдХреНрд▓рд┐рдХ рди рдХрд░реЗрдВ рдЬрдм рдмрд┐рдЬрд▓реА рд▓рд╛рдЧреВ рд╣реЛред рдЕрдЧрд▓реА рдмрд╛рд░ рдореИрдВ PCF8574 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ - i2c рдмрд╕ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд MCU рдкреИрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдкрд╛рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ 1 рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓: NoName, 8-channel, 5V - рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдЗрдирдкреБрдЯ рдкрд░ рд░рд┐рд▓реЗ рдХреЛ рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдареЛрд╕ рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдмреЙрдпрд▓рд░ рдХреЗ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЛ рдПрдХ рд╕реВрдЦрд╛ рд╕рдВрдкрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд╡реЛрд▓реНрдЯреЗрдЬ рдФрд░ рд╕рдВрдкрд░реНрдХреЛрдВ рдкрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддреА рдзрд╛рд░рд╛ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВред

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо


рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕рдВрдЪрд╛рд▓рди рдХреНрд╖рдорддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рднреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдмреАрдЪ рдПрдХ рдкрд░рдд рд╣реИ, рдЬреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдИрдПрд╕рдкреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдШрдЯрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо


рдкрд░рд┐рдпреЛрдЬрдирд╛ SPIFFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдмрд╛рд╣рд░ рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдЖрд╕рд╛рди рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдиреЗрд▓рдмрд╕реНрдЯрд░ / esp8266FTPServer рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рд╕реАрдкреАрдпреВ рд╕рдордп рдЖрд╡рдВрдЯрди рдкреНрд░рдгрд╛рд▓реА


рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдИрдПрд╕рдкреА рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП, рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ (рд╕рд┐рдВрдЧрд▓рдЯрди) рдЯрд╛рдЗрдорд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд░реНрдЧ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЖрд╡рдзрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрдиред рдЙрджрд╛рд╣рд░рдг рдЯрд╛рдЗрдорд░ рдЖрд░рдВрднреАрдХрд░рдг:

    Timers.add(doLoop, 6000, F("OneWireSensorsClass::doLoop")); //   тАУ   
  • рдХрд┐рд╕реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХрд▓ рдирд┐рд╖реНрдкрд╛рджрдиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╛рдИрдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╡рд┐рд▓рдВрдмрд┐рдд рд╕реНрдХреИрди рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

     Timers.once([]() { WiFi.scanNetworks(true);}, 1); 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд▓реВрдк рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 void loop(void) { ESP.wdtFeed(); Timers.doLoop(); CPULoadInfo.doLoop(); } 

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд▓реВрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рдФрд░ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЯрд╛рдЗрдорд░ рдХреНрд▓рд╛рд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрд▓рдЧреНрди рд╣реИред

рд╕реАрдкреАрдпреВ рд╕рдордп рд▓реЗрдЦрд╛


рд╕реЗрд╡рд╛ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреА, рд╡рд╣ рд╣реИред рд╕рд┐рдВрдЧрд▓рдЯрди CPULoADInfo рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЦрд╛рд▓реА рд▓реВрдк рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 void CPULoadInfoClass::init() { uint32_t currTime = millis(); //      1 while ((millis() - currTime) < 10) { delay(0); MaxLoopsInSecond++; } MaxLoopsInSecond *= 100; } 

рдлрд┐рд░, рд╣рдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓реВрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд░ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ:

 void CPULoadInfoClass::doLoop() { static uint32_t prevTime = 0; uint32_t currTime = millis(); LoopsInSecond++; if ((currTime - prevTime) > 1000) { memmove(CPULoadPercentHistory, &CPULoadPercentHistory[1], sizeof(CPULoadPercentHistory) - 1); int8_t load = ((MaxLoopsInSecond - LoopsInSecond) * 100) / MaxLoopsInSecond; CPULoadPercentHistory[sizeof(CPULoadPercentHistory) - 1] = load; prevTime = currTime; LoopsInSecond = 0; } } 

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╣реА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ (рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЯрд╛рдЗрдорд░ рдХреНрд▓рд╛рд╕ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ - рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рд╕реНрдЯрдо


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, UART-USB рдФрд░ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ UART рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЧреИрд░-рдИрдПрд╕рдкреА рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬрд╝ рд╣реИ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ () рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 void loop(void) { // тАж if (Serial.available()) serialEvent(); // тАж } 

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

рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕


рд╕реНрдорд╛рд░реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рд╕реНрдХреНрд░реАрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдПрдХ рдкреБрд░рд╛рдирд╛ рдЕрднреНрдпрд╛рд╕ рдорд╛рдирддрд╛ рд╣реВрдВ - рдЫреЛрдЯреЗ рд╕реНрдХреНрд░реАрди рдФрд░ рдмрдЯрди рдХреЗ рд╕реАрдорд┐рдд рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рд░рд▓, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕реБрдВрджрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЗрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЯрд░реНрдорд┐рдирд▓ рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЛ рдЗрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ Google, Apple, рд╡рд┐рдВрдбреЛрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЛрд░ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рднреА рд▓рд┐рдирдХреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдбрд┐рдмреЗрдЯ рдФрд░ рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЕрдиреНрдпрдерд╛, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо - рд▓рд┐рдирдХреНрд╕, рд╡рд┐рдВрдбреЛрдЬ, рдПрдВрдбреНрд░реЙрдЗрдб, рдореИрдХрдУрдПрд╕, рдбреЗрд╕реНрдХрдЯреЙрдк, рд▓реИрдкрдЯреЙрдк, рдЯреИрдмрд▓реЗрдЯ, рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдмрд╕ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдПред рдмреЗрд╢рдХ, WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдФрд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдШрд░ / рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ / рдХреЙрдЯреЗрдЬ рдореЗрдВ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ - рдЕрдм рдРрд╕реЗ рдШрд░ / рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдХреЛрдИ рд░рд╛рдЙрдЯрд░ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдпрд╣ рдПрдХреНрд╕реЗрд╕ рдХреБрдЫ рдХреНрд▓рд┐рдХреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╖рдп рд╕реЗ, рдХреАрд╡рд░реНрдб рдорджрдж рдХрд░реЗрдВрдЧреЗ - "рдкреЛрд░реНрдЯ рдлрд╝реЙрд░рд╡рд░реНрдбрд┐рдВрдЧ" рдФрд░ "рдбрд╛рдпрдиреЗрдорд┐рдХ DNS")ред рдЧреНрд░реАрд╖реНрдордХрд╛рд▓реАрди рдирд┐рд╡рд╛рд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 3 рдЬреА рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ me-no-dev / ESPAsyncWebServer рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:

  • рд╕рд╣рд┐рдд рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреА рд╡рд╛рдкрд╕реА gzip рд╕рдВрдкреАрдбрд╝рди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рдеред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ index.htm рд╣реИ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рдХрд╛рд░ (GET, POST, ...) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ URL рдХреЛ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛
  • рдЙрд╕реА рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ WEB рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдпрд╣ рдкреЛрд░реНрдЯ рдЕрдЧреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ)ред
  • рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╛рдзрд┐рдХрд░рдгред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рддреНрдпреЗрдХ URL рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Google Chrome, рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдкреГрд╖реНрда рд╢реЙрд░реНрдЯрдХрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдПрдХ рдЖрдЗрдХрди рдФрд░ рдкреНрд░рдХрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред

HTTP рд╕реЗрд╡рд╛рдПрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо


рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ HTTP рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИрдВред HTTP рд╕реЗрд╡рд╛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдПрдХ рдЫреЛрдЯреА рд╕реНрд╡рддрдВрддреНрд░ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ / рд╕рдВрд╢реЛрдзрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдорджрдж


рдЖрджреЗрд╢реЛрдВ рдХреА рдХрд┐рд╕реА рднреА рд╕реВрдЪреА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ HELP рдЯреАрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рд╣реА рд╣реИред рдиреАрдЪреЗ WEB рд╕рд░реНрд╡рд░ рдЖрд░рдВрднреАрдХрд░рдг рдмреНрд▓реЙрдХ рд╣реИ:

 void HTTPserverClass::init() { //SERVER INIT help_info.concat(F("/'doc_hame.ext': load file from server. Allow methods: HTTP_GET\n")); AsyncStaticWebHandler& handler = server.serveStatic("na/", SPIFFS, "na/"); serveStaticHandlerNA = &handler; //       server.serveStatic("/", SPIFFS, "/"); //    //info //       help_info.concat(F("/info: get system info. Allow methods: HTTP_GET\n")); server.on("/info", HTTP_GET, handleInfo); тАж server.on("/help", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(200, ContentTypesStrings[ContentTypes::text_plain], help_info.c_str()); }); //    setAuthentication(ConfigStore.getAdminName(), ConfigStore.getAdminPassword()); DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*"); //  -  //   server.begin(); //       DEBUG_PRINT(F("HTTP server started")); } 

рдореБрдЭреЗ рдПрдХ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрддрд╛рдиреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрд╛рдж рдореЗрдВ рдорджрдж рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ "рдмрд╛рдж рдореЗрдВ" рдЖрдорддреМрд░ рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рдкреВрд░рдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, 404 рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИ - рдкреГрд╖реНрда рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрд╡рд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИрдВ:

http://tc-demo.vehs.ru/help

 /'doc_hame.ext': load file from server. Allow methods: HTTP_GET /info: get system info. Allow methods: HTTP_GET /time: get time as string (eg: 20140527T123456). Allow methods: HTTP_GET /uptime: get uptime as string (eg: 123D123456). Allow methods: HTTP_GET /rtc: set RTC time. Allow methods: HTTP_GET, HTTP_POST /list ? [dir=...] & [format=json]: get file list as text or json. Allow methods: HTTP_GET /edit: edit files. Allow methods: HTTP_GET, HTTP_PUT, HTTP_DELETE, HTTP_POST /wifi: edit wifi settings. Allow methods: HTTP_GET, HTTP_POST /wifi-scan ? [format=json]: get wifi list as text or json. Allow methods: HTTP_GET /wifi-info ? [format=json]: get wifi info as text or json. Allow methods: HTTP_GET /ap: edit soft ap settings. Allow methods: HTTP_GET, HTTP_POST /user: edit user settings. Allow methods: HTTP_GET, HTTP_POST /user-info ? [format=json]: get user info as text or json. Allow methods: HTTP_GET /update: update flash. Allow methods: HTTP_GET, HTTP_POST /restart: restart system. Allow methods: HTTP_GET, HTTP_POST /ws: web socket url. Allow methods: HTTP_GET /help: list allow URLs. Allow methods: HTTP_GET 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗрд╡рд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВред рд╕рднреА HTTP рд╕реЗрд╡рд╛рдПрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╕реЗрд╡рд╛ рдХреЛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЗ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдкрд░, GET рдПрдХ рдиреНрдпреВрдирддрдо рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

 #ifdef USE_RTC_CLOCK help_info.concat(F("/rtc: set RTC time. Allow methods: HTTP_GET, HTTP_POST\n")); const char* urlNTP = "/rtc"; server.on(urlNTP, HTTP_GET, [](AsyncWebServerRequest *request) { DEBUG_PRINT(F("/rtc")); request->send(200, ContentTypesStrings[ContentTypes::text_html], String(F("<head><title>RTC time</title></head><body><form method=\"post\" action=\"rtc\"><input name=\"newtime\" length=\"15\" placeholder=\"yyyyMMddThhmmss\"><button type=\"submit\">set</button></form></body></html>"))); }); server.on(urlNTP, HTTP_POST, handleSetRTC_time); #endif // USE_RTC_CLOCK 



рдмрд╛рдж рдореЗрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реАрдЯрд┐рдпрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:



рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░


рдЕрдВрдд рдореЗрдВ рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрдП рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрд░реНрдерд╛рддреН - рд▓рд╛рдЧреВ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдПред

рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗред

рдЕрдВрдбрд░рдлрд╝реНрд▓реЛрд░ рд╣реАрдЯрд┐рдВрдЧ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рд╣реИрдВ:

  • рд╕реЗрдВрд╕рд░ рдбреЗрдЯрд╛ - рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдВрд╕рд░ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рд░реЗрдбрд┐рдпреЛ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ 16 рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╢реВрдиреНрдп рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ; 1рд╡рд╛рдпрд░ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП, CRC16 рдХреА рдЧрдгрдирд╛ рдЙрдирдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕реЗрдВрд╕рд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рд╕реЗрдВрд╕рд░ рдХреА рдкрд╣рдЪрд╛рди 2 рдмрд╛рдЗрдЯреНрд╕ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред
  • рд╣реАрдЯрд┐рдВрдЧ рдЬрд╝реЛрди рдкрд░ рдбреЗрдЯрд╛ - рдЬрд╝реЛрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  • рд▓рдХреНрд╖реНрдп рддрд╛рдкрдорд╛рди рдФрд░ рдЕрдиреБрд╕реВрдЪреА - рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рд▓рдЪреАрд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЖрдк рдХрдИ рд╣реАрдЯрд┐рдВрдЧ рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпреЛрдЬрдирд╛ рднреА рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдХрдорд╛рдВрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд┐рддрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдХрдорд╛рдВрдб рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ UART рдпрд╛ WEB рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЕрдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯреЗрд▓рдиреЗрдЯ)ред
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди '#' рд╡рд░реНрдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ рдПрдХ рдЕрд╢рдХреНрдд рдЪрд░рд┐рддреНрд░ рдпрд╛ рдПрдХ рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рдирд╛рдо рдФрд░ рдПрдХ рдСрдкрд░реЗрдВрдб рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдСрдкрд░реЗрдВрдб рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ; рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрд▓рди рдФрд░ рдСрдкрд░реЗрдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 #ZonesInfo:1,SensorsInfo 

рдФрд░ рд╣рд╛рдВ, рдХрдорд╛рдВрдб рдХреА рд╕реВрдЪреА рд╣реЗрд▓реНрдк рдХрдорд╛рдВрдб рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕рднреА рд╡реИрдз рдХрдорд╛рдВрдб рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ (рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЗрд╖рд┐рдд рдХрдорд╛рдВрдб '#' рдХреЗ рдмрдЬрд╛рдп '>' рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ):

 >help Help SetZonesCount Zone SetName SetSensor ... LoadCfg SaveCfg #Cmd:Help,CmdRes:Ok 

рдХрдорд╛рдВрдб рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рднреА рдХрдорд╛рдВрдб рдпрд╛ рдХрдорд╛рдВрдб рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИ:

 >help тАж #Cmd:Help,CmdRes:Ok >zone:123 #Cmd:Zone,Value:123,CmdRes:Error,Error:Zone 123 not in range 1-5 >SchemasInfo #SchemasCount:2 #Schema:1,Name:,DOWs:0b0000000 #Schema:2,Name:,DOWs:0b0000000 #Cmd:SchemasInfo,CmdRes:Ok 

WEB рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл, рдПрдХ рд╢реЗрд▓ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрди рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡реНрдпреВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 >zonesInfo:3 #Zone:3,Name:,Sensor:0x5680,Schema:1,DeltaT:-20 #Cmd:ZonesInfo,CmdRes:Ok 

WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдиреЗ рдЬрд╝реЛрди рдирдВрдмрд░ 3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛, рдФрд░ рдЬрд╡рд╛рдм рдореЗрдВ рдЬрд╝реЛрди рдХрд╛ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рдЬрд╝реЛрди рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реЗрдВрд╕рд░ рдХреА рдкрд╣рдЪрд╛рди, рдЬрд╝реЛрди рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рд╕рд░реНрдХрд┐рдЯ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рдЬрд╝реЛрди рдХреЗ рд▓рд┐рдП рддрд╛рдкрдорд╛рди рд╕реБрдзрд╛рд░ред рд╢реЗрд▓ рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрд╛рдкрдорд╛рди рдПрдХ рдбрд┐рдЧреНрд░реА рдХреЗ рджрд╕рд╡реЗрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдлреИрд▓рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред 12.3 рдбрд┐рдЧреНрд░реА 123 рджрд╕рд╡реАрдВ рд╣реИред

рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рд╣реА рдХреНрдпреЛрдВ рди рд╣реЛред рдпрд╣ рдЖрдкрдХреЛ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рднреА рд╕рддреНрд░реЛрдВ рдореЗрдВ рддреБрд░рдВрдд рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рд╡рд┐рдирд┐рдордп рдкрд░рд┐рд╡рд╣рди WEB рд╕реЙрдХреЗрдЯ рд╣реИ, рдлрд┐рд░ рдирд┐рдпрдВрддреНрд░рдХ рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдирдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрд╕рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ:

 #sensor:0x5A20,type:w433th,battery:1,button_tx:0,channel:0,temperature:228,humidity:34,uptime_label:130308243,time_label:20180521T235126 

рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 #Zone:2,TargetTemp:220,CurrentTemp:228,Error:Ok 

рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд╛рда рдХрдорд╛рдВрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдПрдХ рдЯреИрдм рдкрд░ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЯреЗрдХреНрд╕реНрдЯ рдлреЙрд░реНрдо рдореЗрдВ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЯреИрдм рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ WEB рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдХрдорд╛рдВрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рдореМрдЬреВрджрд╛ рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓рдХрд░ рдФрд░ рдирдП рдЬреЛрдбрд╝рдХрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рдмрдврд╝рд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдбреАрдмрдЧрд┐рдВрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдорд╛рдирд╡-рдкрдардиреАрдп рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред

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


рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЕрд░реНрдерд╛рддреН:

  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдкреГрдердХреНрдХрд░рдг
  • рдиреНрдпреВрдирддрдо HTTP рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
  • рдбреЗрдЯрд╛ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛
  • рдорд╛рдирд╡ рдкрдардиреАрдп рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЖрдкрдХреЛ рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдРрд╕реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдРрд╕реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдирдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЖрдк рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рддреАрди рдкреГрд╖реНрда рд╕реАрдзреЗ рдЖрд╡реЗрджрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд▓рдЧрднрдЧ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рдореИрдВ рд╕реНрдорд╛рд░реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреА рд░рд╛рдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЕрдВрддрд┐рдо рд╕рддреНрдп рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред

рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ - рд▓рд┐рдЦрд┐рдП, рд╢рд╛рдпрдж рдореИрдВ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╣реВрдБ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрдПред

рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ: рдлрд╝рд╛рд╕реНрдХреЛред рдПрдХ рдШрд░ рдХрд╛ рдмрдирд╛ IoT рдХреА рдХрд╣рд╛рдиреА

Source: https://habr.com/ru/post/hi412889/


All Articles