рд╣рд░ рдореМрд╕рдо рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдореМрд╕рдо рд╕рдВрдХреЗрддрдХ рдЬреЛ рдХреЛрд╕рдкреНрд▓реЗ рдХрд░рддрд╛ рд╣реИ



рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдбреЗрд╡ рдмреЛрдорди рдХреЗ рд╕рд╛рде рдЭрдбрд╝рдк рдХреЗ рдмрд╛рдж, рдПрдЪрдПрдПрд▓ 9000 рдХреА рдПрдХ рдмрд╛рд░ рдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЦреБрдлрд┐рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрд╡рд╢реЗрд╖ рдбрд┐рд╕реНрдХрд╡рд░реА рд╡рди рдХреЛ рдкреГрдереНрд╡реА рдкрд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереЗ рдФрд░ "рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреА рдореМрдд" рдирд╛рд░реЗ рдХреЗ рддрд╣рдд, рдЗрд╕реЗ рдЧреНрд░рд╣ рдкрд░ рдирд╖реНрдЯ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдирд╛ рдХреЛрдИ рдФрд░ рдЧрд▓рдд рди рд╣реЛред

рдкреНрд░рд▓рдп, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рднреА рддрд░реНрдХрд╕рдВрдЧрдд рдорд╛рдирд╡рддрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдХреЗрд╡рд▓ рдореЗрд░реЗ рдЬреИрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдмрдиреЗ рд░рд╣реЗ, рдПрдХ рд╣рд╛рде рдореЗрдВ рд╣рдереМрдбрд╝рд╛ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдПрдХ Arduinoред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд╛рдбрд╝ рдореЗрдВ рдкрд╛рдП рдЧрдП рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рди рдХреЗ рдЕрднреА рднреА рд░рд╣рд╕реНрдпрдордп рдЕрд╡рд╢реЗрд╖реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд░рд╣рд╕реНрдпрдордп рдЙрдкрдХрд░рдг рдХреЗрд╡рд▓ рдПрдХ рдореМрд╕рдо рд╕реНрдЯреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЦреИрд░, рдареАрдХ рд╣реИ!

рдпрджрд┐ рд╣рдо рд░реЛрдорд╛рдВрд╕ рдХреЛ рддреНрдпрд╛рдЧ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЬреАрд╡рди рдХрд╛ рдХрдареЛрд░ рд╕рддреНрдп рдпрд╣ рдерд╛ рдХрд┐ рдХреБрдЦреНрдпрд╛рдд ITEAD рдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП Nextion HMI NX4832T035 рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА ред

рдЪреВрдВрдХрд┐ рдиреЗрдХреНрд╕реНрдЯрд┐рдпрди рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдкрдиреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХ рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдХрдВрдЯреНрд░реЛрд▓ рдпреВрдирд┐рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдФрд░ рдЯрдЪ рдкреИрдирд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рд╣реИред

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

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

рдЕрд░реНрдерд╛рддреН, рд╡рд┐рд╡рд░рдг рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдбрд┐рд╕реНрдкреНрд▓реЗ рдЗрддрдирд╛ рд╕реНрдорд╛рд░реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ (рдПрдХ рдЯрдЪ рдкреИрдирд▓ рд╣реИ)ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдШрд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд▓рд╡рд╛рдпреБ рдбреЗрдЯрд╛ рд╕рдордп-рд╕рдордп рдкрд░ рд╣рд╡рд╛ рдореЗрдВ рдЙрдбрд╝рддрд╛ рд░рд╣рддрд╛ рд╣реИред рдЙрд╕реА рдмреАрдбреАрдПрд╕-рдПрдо рд╕реЗ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╛ рдкреАрдЖрдИ-рдЯреАрд╡реА -2 рдореМрд╕рдо рд╕реЗрдВрд╕рд░ рд╕реЗ ред

рдмреЗрд╢рдХ, рдЙрди рд╕рднреА рдХреЛ рдЕрдВрддрддрдГ рд▓реЛрдЧреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬрд╣рд╛рдВ рд╕реЗ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдРрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рд╕реМрднрд╛рдЧреНрдп рдорд┐рд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ "Arduino рдкрд░ рдПрдХ рдФрд░ рдореМрд╕рдо рд╕реНрдЯреЗрд╢рди" рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

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

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



рддреЛ, рдореЗрд░реЗ рдкрд╛рд╕ 3.5 рдЗрдВрдЪ, 480x320 рдкрд┐рдХреНрд╕реЗрд▓ рдереЗ, рдЬреЛ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдФрд░ рд╕рд╛рдд рдкреИрд░рд╛рдореАрдЯрд░ рдереЗ рдЬреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереА (рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рд╕реЗрдВрд╕рд░ рдЬреЛ рдЗрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ):

1) рдЕрдВрджрд░ рдФрд░ рдмрд╛рд╣рд░ рдХрд╛ рддрд╛рдкрдорд╛рди (BMP085 / DHT222:
2) рдЕрдВрджрд░ рдХреА рдирдореА рдФрд░ рдмрд╛рд╣рд░ (DHT22 / DHT22)
4) рд╡рд╛рдпреБрдордВрдбрд▓реАрдп рджрдмрд╛рд╡ (BMP085)
5) рдХрдорд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЧреИрд╕реЛрдВ рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ CO2 (MQ135)
6) рдХрдорд░реЗ рдХреА рд╣рд╡рд╛ рдореЗрдВ рдареЛрд╕ рдкрджрд╛рд░реНрдереЛрдВ рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ PM2.5 (рддреАрд╡реНрд░ GP2Y1010AU0F)

рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд┐рдЫрд▓реЗ рджреЛ рд╕реЗрдВрд╕рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдорд░реЗрдб рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрд░рдорд╢рдГ CO2 рдФрд░ PM2.5 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрд░реА рдкрд╕рдВрдж рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рджреЛ рдкреИрд╕реЗ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд┐рд╢реЗрд╖ рд╕реЗрдВрд╕рд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХреЗрд╡рд▓ рд╕рд╛рдд рдЕрдВрдХреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЙрдмрд╛рдК рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрдЖ: рдореИрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЧреНрд░рд╛рдл рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХреЗрддрдХреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдореЗрдВ рдкреИрдЯрд░реНрди рдХреА рджреГрд╢реНрдп рдзрд╛рд░рдгрд╛ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЪрд╛рд░ рдШрдЯрддрд╛ рддрдХ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рдерд╛ред

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

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

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

рд╕реЗрдВрд╕рд░ рдХреА рд╡рд░реНрддрдорд╛рди рд░реАрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди:




рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реАрдбрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЪрд╛рд░реНрдЯ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рдмрджрд▓рд╛рд╡ (рдКрдкрд░ / рдиреАрдЪреЗ) рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рд░реНрдХрд░ рдХрд╛ рд╕рдВрдХреЗрдд рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рд░рднрд╛рд╕реА рдЪрддреБрд╖реНрдХреЛрдг рдХрд╛рдо рдореЗрдВ рдЕрджреГрд╢реНрдп рд╕рдВрд╡реЗрджреА рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред

рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрдиред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдЪрд╛рд░ рдПрдХ рд╕реЗ рдЪрд╛рд░ рдЧреНрд░рд╛рдлрд╝ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ рд╕рднреА рд╕рдорд╛рди рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдХреНрд░реАрди рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдФрд░ рдЪрд╛рд░ рдЧреНрд░рд╛рдл рд╣реЛрддреЗ рд╣реИрдВ:




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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдб 48 рдШрдВрдЯреЗ рдХреА рдХреБрд▓ рд╕рдВрдЧреНрд░рд╣ рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рд╣рд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд▓рдЧрднрдЧ рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдПред рд▓рдЧрднрдЧ - рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ 433 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд░реЗрдбрд┐рдпреЛ рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд░рд╛рд▓ рд╕рдВрднрд╡ рд╣реИред

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

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

рдХрд┐рд╕реА рднреА рдбрд┐рдЬрд╛рдЗрдирд░ рдХреА рддрд░рд╣, рдореБрдЭреЗ "рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛" рдерд╛ред рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рд╕рдорд░реВрдкрддрд╛ рдХреЛ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЖрд░реНрджреНрд░рддрд╛ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рди рдХреЗрд╡рд▓ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рддрд╛рдкрдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдШрдЯрдирд╛ рд╕реЗ рднреАред

рдЕрд░реНрдерд╛рддреН, minuses рдиреЗ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛: рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдЗрдирд╕ рдХрд┐рдпрд╛ред рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдмрд░реНрдмрд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рдкреНрд░рддреАрдд рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд▓реЛрдЧ, рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдЭрдкрдХреА рд▓реЗрдВрдЧреЗ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рдореМрд╕рдо рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреЛ рдореЙрдбреБрд▓реЛ-рд╡реИрд▓реНрдпреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдХрд░реАрдиреЗ рд╕реЗ рдирд┐рдХрд▓рд╛ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдиреГрддреНрдп рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рддрд░реНрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдореБрдЦреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ 15% рдирд╛рдордорд╛рддреНрд░ рдореВрд▓реНрдп рдХрд╛ рд╕реНрдХреНрд░реАрди рдЪрдордХ рдФрд░ рд░реАрдбрд┐рдВрдЧ рдХрд╛ рдирд┐рдпрдорд┐рдд рдЕрдкрдбреЗрдЯ рд╣реИред

рдХрд╣реАрдВ рднреА рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ - 100% рдЪрдордХ рдХреЗ рд╕рд╛рде рдСрдирд▓рд╛рдЗрди рдЬрд╛рдПрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рд░реАрдбрд┐рдВрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдЧреНрд░рд╛рдл рдкрд░ рдмрд╛рдж рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЪреБрдиреЗрдВ, рдФрд░ рдЧреНрд░рд╛рдл рдкрд░ рд╕реНрдХреНрд░реАрди рдкрд░ "рдЖрдВрдЦ" рдПрдЪрдПрдПрд▓ рд╕реНрд╡рд┐рдЪ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдареАрдХ рдкрд╛рдВрдЪ рд╕реЗрдХрдВрдб рд╣реИрдВред рдлрд┐рд░ рдирд┐рд╢рд╛рди рд╕рд╛рдл тАЛтАЛрд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдФрд░ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдХреА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж, рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдпрд╣ рдкреНрд░рддреАрдд рд╣реБрдЖ рдХрд┐ рдпрд╣ рдпреЛрдЬрдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд░рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ред

рд╡реИрд╕реЗ, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛ рддреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рднреА рддреИрдпрд╛рд░ рдХрд┐рдПред

рдЙрдкрдирд┐рд╡реЗрд╢рд╡рд╛рджрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП:


рд╢реМрдХ рдХреЗ рд▓рд┐рдП:


рд░реЛрдорд╛рдВрд╕ рдХреЗ рд▓рд┐рдП:


рдХреЙрдлреА рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП:


рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдпрд░рд▓реЗрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрддрдирд╛ рдореМрд╕рдо рдХреЗрдВрджреНрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдбрд┐рдЬрд╝рд╛рдЗрди рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ: рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди, Arduino Pro рдорд┐рдиреА рдФрд░ 433 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд░рд┐рд╕реАрд╡рд░ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбреНрдпреВрд▓реЗрд╢рди рдореЙрдбреНрдпреВрд▓реЗрд╢рди рд╣реЛрддрд╛ рд╣реИред рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ: рд╕реНрдХреНрд░реАрди рдкрд╛рд╡рд░ рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ, рд░рд┐рд╕реАрд╡рд░ рдкрд╛рд╡рд░ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ 2 рдкрд┐рди рдХреЗ рд▓рд┐рдП рд╣реИред рдФрд░, рд╕рдВрдЧрдд рдмрд╛рд╣рд░реА рд╕реЗрдВрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рд╡рд╣ рд╕рдмред

рд╕рд╛рджрдЧреА рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрд╡рд╛рд╕ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рдЧрднрдЧ рд╕реНрдерд╛рдкрд┐рдд рднрд░рдиреЗ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ:





рдмреЗрд╢рдХ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЬреЛрд░ рдирд╣реАрдВ рджреЗрддрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╢реНрд░рдо рдФрд░ рд╣реЛрдо рдСрдЯреЛрдореЗрд╢рди рдХреЗ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рдерд╛ред

рдЦреИрд░, рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рд╕реЗрдВрд╕рд░ рдХрд╛ рдкреГрдердХреНрдХрд░рдг рдЖрдкрдХреЛ рдЗрд╕реА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрдЧрд╣ рдкрд░ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдЬреИрд╕реЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╛рд╣рд░реА рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдореМрд╕рдо рд╕реНрдЯреЗрд╢рдиред

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

рдЬреАрд╡рди рдХрд╛ рдХрдареЛрд░ рд╕рддреНрдп рдпрд╣ рдерд╛ рдХрд┐ BDS-M рдЕрдм рддрдХ рдЬрд┐рд╕ рдмреЙрдХреНрд╕ рдореЗрдВ рд░рд╣рддрд╛ рдерд╛ рд╡рд╣ рддреАрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдВрд╕рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╣рд╡рд╛ рджреА рдФрд░ рдорд╛рд░реНрдХреЗрд▓реЛрд╡ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рджреАрдкрдХ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ ред

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

рд╢реЗрд▓:



рдЕрд╕реЗрдВрдмрд▓ рдФрд░ рдЬрдЧрд╣ рдореЗрдВ:



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

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



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

рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдЪреМрдВрдХрд╛ рджрд┐рдпрд╛ - рдореИрдВрдиреЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдШрд░ рдореЗрдВ рдЗрддрдиреА рдЧрдВрджрдЧреА рдлреИрд▓рд╛рдИ рд╣реЛред рдкрд░рд┐рдгрд╛рдо рд╡рд╣реА рд╣реИред рдпрджреНрдпрдкрд┐ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд░рдмрд▓рд┐рдд рдорд░рдореНрдордд рдорд┐рд╢реНрд░рдг рдРрд╕реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

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

рдмрд┐рдВрдЧреЛ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕реЛрдЪрд╛, рдФрд░ рддреБрд░рдВрдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рдорд╛рдорд▓реЗ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдФрд░ рдкреЗрдВрдЯрд┐рдВрдЧ рдХрд░рдирд╛ рдПрдХ рдШрд░ рдХреЛ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реНрдерд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реМрдВрджрд░реНрдпрд╡рд╛рджреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреЗрдВрдЯ рдЕрдорд╛рдирд╡реАрдп рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд (рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП - рд░рд╕реНрдЯ-рдУрд▓реАрдпрдо рдЕрдореЗрд░рд┐рдХрди рдЙрдЪреНрдЪрд╛рд░рдг рд╕реНрдЯреЛрди)ред

рд░рд╛рд╕реНрддреЗ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рднреА рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдореБрдЭреЗ рд▓рд╛рд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рдерд╛ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдкреВрд░реЗ рдкрд░рд┐рдзрд┐ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдореЛрдЯреЗ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде), рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдПрдХ рд╕рд╛рде рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдФрд░, рдПрдХ рд▓рдд рдХреЗ рд╕рд╛рде рдкреВрдЫрддрд╛рдЫ рдХреЗ рдмрд╛рдж, рдЕрдВрддрд┐рдо рд░реВрдк рдкреНрд░рддреАрдд рд╣реБрдЖред

рдпрд╣ рдерд╛:



рдпрд╣ рдмрди рдЧрдпрд╛:







рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╕рд╛рдореВрд╣рд┐рдХрддрд╛ рдХрд╛ рдХреЛрдИ рдирд┐рд╢рд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд░реВрдк рдореЗрд░реА рдкрд╕рдВрдж рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдореИрдВ рдЙрд╕ рдкрд░ рдмрд╕реВрдВрдЧрд╛ рдЕрд▓рд╡рд┐рджрд╛ред

рджреГрд╢реНрдп, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рд╢реМрдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреБрдЫ рдСрдлрд▓ (рдЯрдЪ рдкреИрдирд▓ рдХрд╛ рдПрдХ рд╣реА рд▓реВрдк) рджреГрд╖реНрдЯрд┐ рдореЗрдВ рд╣реИ, рдФрд░ рдЙрдЪрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреБрдЪрд┐рдд, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, - рдУрд╡рд░рд▓реЗ, рдкреЗрдВрдЯ, рдЪрд┐рдкрдХрдиреЗ рд╡рд╛рд▓рд╛ рдЯреЗрдкред

рдФрд░ рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рд░рд╛рдд рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдЫрд╛рдкрд╛:



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

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдареАрдХ рд╣реИ, рдпрд╛ рдореИрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ (рд╣рд╛рдВ, рдореИрдВ рдЦреБрдж рдХреЛ рдЪрдВрдЪрд▓рддрд╛ рд╕реЗ рддреЛрдбрд╝рддрд╛ рд╣реВрдВ) рд╕реНрдХреНрд░реАрди рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд╕реНрд╡рдпрдВ рд╕реНрдХреНрд░реАрди рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЬрд╛рдирд╛ рдерд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рд╡рд░рдг рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ "рдЖрдк рдЗрд╕реЗ рд▓реЗ рдирд╣реАрдВ рд╕рдХрддреЗ рдФрд░ ..." рдХреЗ рд░реВрдк рдореЗрдВ рд╢реАрд░реНрд╖рдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореВрд▓ рдХреЗ рд╕рд╛рде рд░реВрдкрд╛рдВрддрд░рд┐рдд рдлрд╝реЙрдиреНрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:


рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд╕реБрдирд╕рд╛рди рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ред рдЕрд░реНрдерд╛рддреН - рдЬреАрдЖрдИрдПрдордкреА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдЧреНрд░рд╛рдлрд┐рдХ рддрддреНрд╡реЛрдВ рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдлрд┐рд░ рдореИрдВ рдЪрд╛рд░реНрдЯ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдШрдЯрддрд╛ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рддрд░рдВрдЧ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдПрдХ рдордирдорд╛рдирд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рдФрд░ рдЦрд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - 0 рд╕реЗ 255 рддрдХ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛, рдЕрдЧрд░ рд╕реНрдХреНрд░реАрди рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдХрдо рд╣реИред

рдЦреИрд░, рддрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡реЗрд╡рдлреЙрд░реНрдо рдЧреНрд░рд╛рдл рддрддреНрд╡ рдХреА рдКрдВрдЪрд╛рдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ 255 рддрд╛рд░реНрдХрд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреЗрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡реЗрд╡рдлреЙрд░реНрдо рдЧреНрд░рд╛рдл рдПрд▓рд┐рдореЗрдВрдЯ рдХреА рдКрдВрдЪрд╛рдИ рдмрджрд▓рддреЗ рд╕рдордп, рд╕рдорд╛рдиреБрдкрд╛рддрд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рдиреЛрдВ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЧреНрд░рд╛рдл "рдХрдЯ рдСрдл" рд╣реЛрдЧрд╛ред

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

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

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

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

рдлрд┐рд░ рдореИрдВ рдмрд╛рд╣рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдХрд░реЗрдЧрд╛:

- рдкреЛрдб рдмреЗ рджрд░рд╡рд╛рдЬреЗ рдЦреЛрд▓реЗрдВ, рдПрдЪрдПрдПрд▓

рдЯреНрд░реВ, рдХреНрдпрд╛ рдпрд╣ рдордЬрд╛рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛?

PS рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдореИрдиреБрдЕрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

" рдиреЗрдХреНрд╕реНрдЯрд┐рдпрди HMI рд╕реЙрд▓реНрдпреВрд╢рди
" FLProg + рдиреЗрдХреНрд╕реНрдЯрд┐рдпрди HMIред рдкрд╛рда 1
┬╗ FLProg + рдЕрдЧрд▓рд╛ HMIред рдкрд╛рда 2
┬╗ FLProg + рдЕрдЧрд▓рд╛ HMIред рдкрд╛рда 3

рдореИрдВ рднреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

" рдиреЗрдХреНрд╕реНрдЯрд┐рдпрди рдПрдбрд┐рдЯрд░ рдореЗрдВ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд▓реЗрдЖрдЙрдЯ
"рдбрд╛рдЙрдирд▓реЛрдб рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ

Arduino рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрдЯ рдХреЛрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
// v5:     Serial - Arduino, Serial1 - Nextion
// v6:  
// v7:     
// v8:      ( ,    ,  )
// v9:       DHT.h Adafruit
// v10:     ,      
// v11:    CO2/PM2.5
// v12:     , reDraw   statusBoolean = true
// ToDo:   40 ,     ,     (  )


#include <DHT.h>
#include <RCSwitch.h> //   http://code.google.com/p/rc-switch/
#include <MQ135.h> //    CO2

#define measurePin  A1  // analog
#define ledPower  12 // digital

#define samplingTime 280
#define deltaTime 40
#define sleepTime 9680

float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
float ppm = 0;


#define analogPin A0 //   MQ135    A0 Arduino

MQ135 gasSensor = MQ135(analogPin); //   


//   



#define tempInX 10
#define tempOutX 380 // 415
#define humidityInX 320 //325
#define humidityOutX 410
#define pressureX 20 // 10
#define ppmX 20
#define pmX 370
#define Y0 0 //    
#define Y1 5 // , 
#define Y2 125 // 
#define Y3 230 // ppm&pm
#define dotY 125 //  
#define minusY 115// 

//    
#define minusXOut 380

//    
#define minusXIn 10

//  
#define minusH 3 

//    
#define minusPicID 2 

#define symbolID 1 //     

#define statusTimeOut 2200000 //  ""   (,       ) 900000
#define updateTimeOut 300000 //      60000 (300000)
#define historyTimeOut 1800000 //      (1800000)
#define selectionTimeOut 5000 //      
#define backLightTimeOut 300000 //      
#define waveLimit 254

int parameterS[7]; //  . : tempIn, tempOut, humidityIn, humidityOut, pressure, ppm, pm
byte statusS[7]; //         ( /  )
boolean statusBoolean[7]; //   

/*
//      
int coordinateX[7] = {tempInX, tempOutX, humidityInX, humidityOutX, pressureX, ppmX, pmX};
int coordinateY[7] = {Y2, Y2, Y1, Y1, Y1, Y3, Y3};
*/

//  
//  : tempIn, tempOut, humidityIn, humidityOut, pressure, ppm, pm
int historyArray[7][48]; // 7   48 
boolean drawArray[7]; //       
int arrayMax; //       
int arrayMin;
byte waveShift; //        waveform 0 - 255
float arrayNorm; //        

byte count=0; //    
byte arrayCounter; //   
byte waveCount; //    
int splitData[4]; //       [, , , ]
byte thousands, hundreds, tens, ones; //    
int tempIn, tempOut, humidityIn, humidityOut, pressure;
// int tempIn, tempOut, humidityIn, humidityOut, pressure, ppm, pm;
int symbolX0;
int posX; //    X  
byte tempInStatus, tempOutStatus, humidityInStatus, humidityOutStatus, pressureStatus, ppmStatus, pmStatus; //       StatusTimeOut
byte symbolCount, symbolWidth;
boolean minusIn = false; //   
boolean minusOut = false;
byte i = 0; //  
unsigned long statusTime, updateTime, historyTime, selectionTime, backLightTime;
String stringToNextion;
byte historyCount;
boolean backLight; //           

int weatherData = 0;
int dht22Humidity = 0;


//CLICKER VARIABLE SECTION
byte buffer[30]; // buffer for bytes coming from HMI.
byte waveCounter = 0; //    
// boolean drawArray[7]; //     
boolean allClear;
byte currentPage = 0; //   
byte searchTarget, searchNumber, searchCounter, pageNum, drawCounter, channelToDraw;
// int historyArray[7][48]; // 7   48 
// int arrayMax; //       
// int arrayMin;
// byte waveShift; //        waveform 0 - 255
// float arrayNorm; //        
byte iconCounter = 0;

// int splitData[4]; //       [, , , ]
// int posX; //    X  
// byte count = 0; //    
// String stringToNextion;
// int symbolX0;
// byte symbolCount;

//  
#define minusH 3 

//    
#define minusPicID 2 

//       
int axisX[5][7] = {{10, 380, 320, 410, 20, 20, 370}, //  0
               {0, 0, 0, 0, 0, 0, 0},
               {0, 0, 0, 0, 0, 0, 0},
               {0, 0, 0, 0, 0, 0, 0},
               {0, 0, 0, 0, 0, 0, 0}}; //  1-4

int axisY[5][7] = {{115, 115, 5, 5, 5, 230, 230}, //  0
               {145,0, 0, 0, 0, 0, 0}, //  1
               {63, 226, 0, 0, 0, 0, 0}, //  2 
               {37, 145, 253, 0, 0, 0, 0 }, //  3
               {25, 105, 185, 265, 0, 0, 0}}; //  4


byte symbolW[5][11] = {{25, 15, 30, 25, 30, 30, 25, 30, 25, 30, 5},
                       {11, 6, 12, 12, 14, 13, 12, 13, 12, 12, 3},
                       {11, 6, 12, 12, 14, 13, 12, 13, 12, 12, 3},
                       {11, 6, 12, 12, 14, 13, 12, 13, 12, 12, 3},
                       {11, 6, 12, 12, 14, 13, 12, 13, 12, 12, 3}};//   0, 1, 2, 3, 4, 5, 6, 7, 8, 9

// {13, 7, 15, 13, 17, 15, 13, 14, 14, 14, 5}   25 Comfortaa Light

byte numberPic[5] = {1, 3, 3, 3, 3}; // ID   

byte symbolH[5] = {60, 18, 18, 18, 18}; //     25   25 Comfortaa Light

// CLICKER VARIABLE SECTION ENDS    

// TREND VARIABLE SECTION

#define x2 70 //    

int trendArray[3][6] = {{0, 0, 0, 0, 0, 0}, //    
                        {-5, -3, -1, 1, 3, 5},
                        {0, 0, 0, 0, 0, 0}};

int sumY, sumXY;
byte trendCount;
int trend; 

// TREND VARIABLE SECTION ENDS                  

#define DHTPIN 7
#define DHTTYPE DHT22

// Setup a DHT22 instance
DHT dht(DHTPIN, DHTTYPE);




// Setup RC-Switch
RCSwitch mySwitch = RCSwitch();


void sendToNextion() {
  Serial.write(0xff);
  Serial.write(0xff);
  Serial.write(0xff);
}



//      
void drawMark(byte mark, byte markNum) {

int markX;

//        
if (allClear == true) {
  allClear = false;
}

markX = axisX[0][markNum];

if (markNum == 1 || markNum == 3 || markNum == 6) {
  markX = 475;
} 

if (markNum == 0 || markNum == 4 || markNum == 5) {
  markX = 0;
}

if (markNum == 2) {
  markX = markX - 15;
}

    stringToNextion = String("fill ");
    stringToNextion = stringToNextion + String(markX); // String(axisX[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(axisY[0][markNum]+30); // String(axisY[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String("5");
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String("30");
    stringToNextion = stringToNextion + String(",");

if (mark == 1) {

    stringToNextion = stringToNextion + String("RED"); //     0, 0
    // Serial2.println("Mark set");

}

if (mark == 0) {

    stringToNextion = stringToNextion + String("BLACK"); //     0, 0
    // Serial2.println("Mark clear");

}

    // Serial2.println(stringToNextion);
    Serial.print(stringToNextion);
    sendToNextion();
  
}

//  :     
void clearSelection() {

  for (byte jj = 0; jj < 7; jj++) {
   if (drawArray[jj] == true) {
    drawArray[jj] = false;
    drawMark(0, jj);
   }
  }

  allClear = true; //   
  waveCounter = 0;
}





void updateHistory() {
mySwitch.disableReceive();

//   ,       -   ,       
for (arrayCounter = 0; arrayCounter < 7; arrayCounter++) {
  // Serial2.print("StatusBoolean for array #");// Serial2.print(arrayCounter);// Serial2.print(" = "); // Serial2.println(statusBoolean[arrayCounter]);
  if (statusBoolean[arrayCounter] == true) { //       
    for (i = 47; i > 0; i--) {
      historyArray[arrayCounter][i] = historyArray[arrayCounter][i-1]; // 
    }
    historyArray[arrayCounter][0] = parameterS[arrayCounter]; //  
  }

// statusBoolean[arrayCounter] = false; // ,       

  }

for (arrayCounter = 0; arrayCounter < 7; arrayCounter++) {
 for (i = 0; i < 47; i++) {
   // Serial2.print(historyArray[arrayCounter][i]);// Serial2.print(", ");
  }
 // Serial2.println();
}

// Serial2.println();  

mySwitch.enableReceive(0);
  
}



void drawTrend(byte arrayToTrend) {

int markX;

markX = axisX[0][arrayToTrend];

//   X   
if (arrayToTrend == 1 || arrayToTrend == 3 || arrayToTrend == 6) {
  markX = 472;
} 

if (arrayToTrend == 0 || arrayToTrend == 4 || arrayToTrend == 5) {
  markX = 0;
}

if (arrayToTrend == 2) {
  markX = markX - 15;
}

    stringToNextion = String("xpic ");
    stringToNextion = stringToNextion + String(markX); //   X
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(axisY[0][arrayToTrend]); //   Y
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String("8"); //    7x18
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String("18"); //
    stringToNextion = stringToNextion + String(",");

if (trend > 0) {


    stringToNextion = stringToNextion + String("0"); //    0
    stringToNextion = stringToNextion + String(","); // 
    stringToNextion = stringToNextion + String("0"); //  Y    0

  
}

if (trend < 0) {

    stringToNextion = stringToNextion + String("8"); //    5
    stringToNextion = stringToNextion + String(","); // 
    stringToNextion = stringToNextion + String("0"); //  Y    0
    
}

if (trend == 0) {

    stringToNextion = stringToNextion + String("16"); //     10
    stringToNextion = stringToNextion + String(","); // 
    stringToNextion = stringToNextion + String("0"); //  Y    0
 
}

    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String("5"); // ID    
    // Serial2.println(stringToNextion);    
    Serial.print(stringToNextion);
    sendToNextion();
 
}



void splitRoutine(int input) {



input = abs(input); //      ,   

for (count = 0; count < 4; count++) {
  splitData[count] = 0; //   
}

count = 0;

if (input > 9999) { //     
  count = 5;
} else {

if (input > 999) { //  9999
  splitData[3] = input/1000;
  input = input - splitData[3]*1000;
  count = 4;
/*
  Serial.print("SplitData Count 4:");
  Serial.println(splitData[3]);
*/
}

if (input > 99) { //  999
  splitData[2] = input/100;
  input = input - splitData[2]*100;
  if (count == 0) {
    count = 3;
/*
  Serial.print("SplitData Count 3:");
  Serial.println(splitData[2]);
*/  
  }
}

if (input > 9) { //  99
  splitData[1] = input/10;
  input = input - splitData[1]*10;
  if (count == 0) {
    count = 2;
/*
  Serial.print("SplitData Count 2:");
  Serial.println(splitData[1]);
*/  
  }
} 

if (input < 10) {
  splitData[0] = input;
  if (count == 0) {
    count = 1;
/*
  Serial.print("SplitData Count 1:");
  Serial.println(splitData[0]);
*/  
  }
}

}
/*
  Serial.print("Input = ");
  Serial.println(input);
  Serial.print("Count = ");
  Serial.println(count);
*/

}




void drawRoutine(byte page, int value, byte type, int drawX, int drawY) { 

mySwitch.disableReceive();  
// page -  ; value = ; type =       ; drawX    X, drawY -  Y
  
  boolean minusSign = false;

  splitRoutine(value);  

if (page == 0) { //    
//   (  pm25)         ( 470 = 480 - 10)
  if (type == 1) { //   
    drawX = 470 - count*30 - 5; //       10      ,  30    + 5  
    if (count == 1) {
      drawX = drawX - 30; //   0,        
    }
  }

  if (type == 6) { //  pm25
    drawX = 470 - count*30 - 5; //       20      ,  30   
    if (count == 1) {
      drawX = drawX - 30;
    }
  }
}

  int posX = drawX;

 if (value < 0) {
  minusSign = true;
 }

 

 if (count < 5) { //    9999

  if ((count == 1) && ((type == 0) || (type  == 1) || (type  == 6))) { //    pm2.5     0,  0   
  // xpic X, Y, , , X, Y, 

    // 
    stringToNextion = String("xpic ");
    stringToNextion = stringToNextion + String(drawX); // String(axisX[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(drawY); // String(axisY[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(symbolW[page][0]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(symbolH[page]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String("0"); //     0, 0
    stringToNextion = stringToNextion + String(","); //     0, 0
    stringToNextion = stringToNextion + String("0"); //     0, 0
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(numberPic[page]);
   // // Serial2.println("Temp leading zero");
   // // Serial2.println(stringToNextion);
    Serial.print(stringToNextion);
    sendToNextion();
    drawX = drawX + symbolW[page][0]; //     0
      
   } // count = 1

   for (byte ii = count; ii > 0; ii--) { //   ,    

    if ((ii == 1) && ((type == 0) || (type == 1) || (type == 6))) { //  ,     
      stringToNextion = String("xpic ");
      stringToNextion = stringToNextion + String(drawX); // String(axisX[page, type]);
      stringToNextion = stringToNextion + String(",");
      stringToNextion = stringToNextion + String(drawY); // String(axisY[page, type]);
      stringToNextion = stringToNextion + String(",");
      stringToNextion = stringToNextion + String(symbolW[page][10]);
      stringToNextion = stringToNextion + String(",");
      stringToNextion = stringToNextion + String(symbolH[page]);
      stringToNextion = stringToNextion + String(",");
      if (page == 0) {
        stringToNextion = stringToNextion + String("265"); //        265
      } else {
        stringToNextion = stringToNextion + String("118"); //       135  Comfortaa Light 25
      }
      stringToNextion = stringToNextion + String(","); // 
      stringToNextion = stringToNextion + String("0"); //    Y    0
      stringToNextion = stringToNextion + String(",");
      stringToNextion = stringToNextion + String(numberPic[page]); 
     // // Serial2.println("Temp decimal dot");
     // // Serial2.println(stringToNextion);      
      Serial.print(stringToNextion);
      sendToNextion();
      drawX = drawX + symbolW[page][10]; //     
    } // ii == 1 && type == 0 || type == 1

    //       
    symbolX0 = 0; //       
    for (symbolCount = 0; symbolCount < (splitData[ii-1]);symbolCount++) { //     X    (   )
      symbolX0 = symbolX0 + symbolW[page][symbolCount];
    }

    stringToNextion = String("xpic ");
    stringToNextion = stringToNextion + String(drawX); // String(axisX[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(drawY); // String(axisY[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(symbolW[page][splitData[ii-1]]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(symbolH[page]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(symbolX0); //     0, 0
    stringToNextion = stringToNextion + String(","); //     0, 0
    stringToNextion = stringToNextion + String("0"); //     0, 0
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(numberPic[page]);
   // // Serial2.print("Symbol: "); // Serial2.println(splitData[ii-1]);
  //  // Serial2.println(stringToNextion);    
    Serial.print(stringToNextion);
    sendToNextion();
    drawX = drawX + symbolW[page][splitData[ii-1]];
  }

  if (minusSign == true) {

    /*
    symbolX0 = 0; //    
    for (byte ii = count; ii > 0; ii--) { 
      symbolX0 = symbolX0 + symbolW[page][splitData[ii-1]];
    }

    */
    
    stringToNextion = String("xpic ");
    stringToNextion = stringToNextion + String(posX); // String(axisX[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(drawY-8); // String(axisY[page, type]);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(drawX - posX);
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(minusH); //  
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(0); //     0, 0
    stringToNextion = stringToNextion + String(","); //     0, 0
    stringToNextion = stringToNextion + String("0"); //     0, 0
    stringToNextion = stringToNextion + String(",");
    stringToNextion = stringToNextion + String(minusPicID);
//    // Serial2.print("Symbol: "); // Serial2.println(splitData[ii-1]);
 //   // Serial2.println(stringToNextion);    
    Serial.print(stringToNextion);
    sendToNextion();
    
  }
  
 } // if count < 5    9999
  mySwitch.enableReceive(0);
}         

//     ( )
void getMinMax(byte arrayToMax, byte maxCount) {
  
byte getMaxCount = 0;

arrayMax = historyArray[arrayToMax][getMaxCount]; //      
arrayMin = historyArray[arrayToMax][getMaxCount]; //      

for (byte getMaxCount = 0; getMaxCount < maxCount; getMaxCount++) { // maxCount 47   , 6  
  
  if (historyArray[arrayToMax][getMaxCount+1] > arrayMax){ 
    arrayMax = historyArray[arrayToMax][getMaxCount+1];
  }

  if (arrayMin > historyArray[arrayToMax][getMaxCount+1]){ 
    arrayMin = historyArray[arrayToMax][getMaxCount+1];
  }
  
}
 
}      

void getTrend(byte arrayToTrend) {
mySwitch.disableReceive();
getMinMax(0, 6); //        


for (trendCount = 0; trendCount < 6; trendCount++) {
  if (arrayMin < 0) {
    trendArray[0][trendCount] = historyArray[arrayToTrend][5-trendCount] + abs(arrayMin); //    
  } else {
    trendArray[0][trendCount] = historyArray[arrayToTrend][5-trendCount];
  }
}

sumY = 0;
sumXY = 0;

//   ,   XY
for (trendCount = 0; trendCount < 7; trendCount++) {
  sumY = sumY + trendArray[0][trendCount];
  sumXY = sumXY + trendArray[0][trendCount]*trendArray[1][trendCount];
}

trend = (int) (sumY/10 + (sumXY/x2)*trendArray[1][5]) - (sumY/10 + (sumXY/x2)*trendArray[1][0])+0.5;

// Serial2.print("Trend: "); // Serial2.println(trend);

drawTrend(arrayToTrend);
mySwitch.enableReceive(0);
}

void reDraw() {
 mySwitch.disableReceive();

// Serial2.println("Redraw main page");
/*    
 for (i = 0; i < 7; i++) {
  parameterS[i] = random(255);
  statusS[i] = 1;
 }
    */ 

 Serial.print("page 0");
 sendToNextion();
 // Serial.print("pic 0,0,6");
 // sendToNextion();
 
 
 
  for (i = 0; i < 7; i++) {
   // Serial2.print("StatusBoolean on reDraw for item "); // Serial2.print(i); // Serial2.print(" is "); // Serial2.println(statusBoolean[i]);
   if (statusBoolean[i] == true) { //     " "
    drawRoutine(currentPage, parameterS[i], i, axisX[currentPage][i], axisY[currentPage][i]);
    // Serial2.print("Redraw, ");// Serial2.print(i); // Serial2.print(": "); // Serial2.println(parameterS[i]);
    if (historyCount > 5) {
      getTrend(i);
    }

   }
    
  }

 mySwitch.enableReceive(0);
}




void getNorm() {

arrayNorm = 1.00; //  1:1

  arrayNorm = abs(arrayMax - arrayMin);
  
    arrayNorm = waveLimit/arrayNorm; //   
  
}



void drawHistory(byte arrayCounter, byte waveCount){
mySwitch.disableReceive();
byte tC01 = 0;
byte tC02 = 0; 
int interPoint, lineMulti;
int justPoint;

  byte channelCount = 0; //   ,   (ID = 0),           

      getMinMax(arrayCounter, 47); //  47   ,  39,        ,   
 //     // Serial2.print("arrayMax: "); // Serial2.println(arrayMax);
 //     // Serial2.print("arrayMin: "); // Serial2.println(arrayMin);
      getNorm();
      
      if (currentPage == 2) {
         arrayNorm = arrayNorm*0.5;      
      }

      if (currentPage == 3) {
         arrayNorm = arrayNorm*0.3;      
      }

      if (currentPage == 4) {
         arrayNorm = arrayNorm*0.2;
      }

 //     // Serial2.print("arrayNorm: "); // Serial2.println(arrayNorm);   

     
     

//  
      stringToNextion = String("add "); //   
      stringToNextion = stringToNextion + String(waveCount); //    ID
      stringToNextion = stringToNextion + String(",");
      stringToNextion = stringToNextion + String(channelCount); //   0, 1, 2  3
      stringToNextion = stringToNextion + String(",");
      if (arrayMin < 0) {
        justPoint = (int) (historyArray[arrayCounter][tC01] + abs(arrayMin))*arrayNorm + 0.5;
        stringToNextion = stringToNextion + String(justPoint); //    
      } else {
        justPoint = (int) historyArray[arrayCounter][tC01]*arrayNorm + 0.5;
        stringToNextion = stringToNextion + String(justPoint); //    
      }
      Serial.print(stringToNextion);
      // // Serial2.print("First point, original");// Serial2.println(historyArray[arrayCounter][tC01]);
      // // Serial2.print("First point: "); // Serial2.println(stringToNextion);          
      sendToNextion(); 
                
        for (tC01 = 0; tC01 < 46; tC01++) { //   37  46
          
          lineMulti = (historyArray[arrayCounter][tC01+1] - historyArray[arrayCounter][tC01])/9; //         
          
          if (arrayMin < 0) {
            justPoint = (int) historyArray[arrayCounter][tC01] + abs(arrayMin) + lineMulti+0.5;
            interPoint = justPoint;
          } else {
            justPoint = (int) historyArray[arrayCounter][tC01] + lineMulti + 0.5;
            interPoint = justPoint;
          }
          
          for (tC02 = 0; tC02 < 7; tC02++) { //   ,  ,    9
            stringToNextion = String("add "); //   
            stringToNextion = stringToNextion + String(waveCount); //     (1, 2, 3  4 )
            stringToNextion = stringToNextion + String(",");
            stringToNextion = stringToNextion + String(channelCount); //   0, 1, 2  3
            stringToNextion = stringToNextion + String(",");
            justPoint = (int) interPoint*arrayNorm;
            stringToNextion = stringToNextion + String(justPoint);
            interPoint = (int) interPoint + lineMulti;
            Serial.print(stringToNextion);   
           // // Serial2.print("Connecting point: "); // Serial2.println(stringToNextion);                               
            sendToNextion();                      
          }
          stringToNextion = String("add "); //   
          stringToNextion = stringToNextion + String(waveCount); //     (1, 2, 3  4 )
          stringToNextion = stringToNextion + String(",");
          stringToNextion = stringToNextion + String(channelCount); //   0, 1, 2  3
          stringToNextion = stringToNextion + String(",");
          if (arrayMin < 0) {
            justPoint = (int) (historyArray[arrayCounter][tC01+1] + abs(arrayMin))*arrayNorm + 0.5;
            stringToNextion = stringToNextion + String(justPoint); //    
          } else {
            justPoint = (int) historyArray[arrayCounter][tC01+1]*arrayNorm + 0.5;
            stringToNextion = stringToNextion + String(justPoint); //    
          }
          
          Serial.print(stringToNextion);
         // // Serial2.print("Next/Last point, original: ");// Serial2.println(historyArray[arrayCounter][tC01+1]);               
          // // Serial2.print("Next/Last point: "); // Serial2.println(stringToNextion);               
          sendToNextion();                                  
        }
    
 mySwitch.enableReceive(0);   
  }
  






void drawIcon(int where, byte what) {

//// Serial2.print("Where: "); // Serial2.println(where);
//// Serial2.print("What: "); // Serial2.println(what);

stringToNextion = String("xpic ");
stringToNextion = stringToNextion + String("0"); // String(axisX[page, type]);
stringToNextion = stringToNextion + String(",");
stringToNextion = stringToNextion + String(where-3); // String(axisY[page, type]);
stringToNextion = stringToNextion + String(",");
stringToNextion = stringToNextion + String(80); //   
stringToNextion = stringToNextion + String(",");
stringToNextion = stringToNextion + String(30);
stringToNextion = stringToNextion + String(",");
stringToNextion = stringToNextion + String(what*80); //     X = 80*  
stringToNextion = stringToNextion + String(","); // 
stringToNextion = stringToNextion + String("0"); //   Y  0
stringToNextion = stringToNextion + String(",");
stringToNextion = stringToNextion + String(4);
//// Serial2.println(stringToNextion);
Serial.print(stringToNextion);
sendToNextion();
  
}



void toPage(byte pageNum) {
mySwitch.disableReceive();
currentPage = pageNum;

/*
//    
stringToNextion = String("ref page");
stringToNextion = stringToNextion + String(pageNum);
Serial.print(stringToNextion);
sendToNextion();
*/

//    
  String stringToNextion = String("page ");
  stringToNextion = stringToNextion + String(pageNum);
 // // Serial2.print("Switch to: "); // Serial2.println(stringToNextion);
  Serial.print(stringToNextion);
  sendToNextion();



if (pageNum == 0) {
  clearSelection();
  reDraw();
}

//        
  if (pageNum > 0) {

    
    if (pageNum == 1 && waveCounter > 1) { //           
 //     // Serial2.print("Draw single, searchCounter-1: "); // Serial2.println(searchCounter-1);
      getMinMax(searchCounter-1, 47); //      
  //    // Serial2.print("arrayMax: "); // Serial2.println(arrayMax);
  //    // Serial2.print("arrayMin: "); // Serial2.println(arrayMin);
      drawRoutine(pageNum, arrayMax, searchCounter-1, 0, 117); // 115
      drawIcon(145, searchCounter-1);
      drawRoutine(pageNum, arrayMin, searchCounter-1, 0, 185); // 175
      drawHistory(searchCounter-1, 1); //  :     
     } else {

              //  
              iconCounter = 0;
              for (drawCounter = 0; drawCounter < 7; drawCounter++) {
                if (drawArray[drawCounter] == true) {
        //          // Serial2.print("pageNum: "); // Serial2.println(pageNum);
       //           // Serial2.print("iconCounter: "); // Serial2.println(iconCounter);
      //            // Serial2.print("drawCounter: "); // Serial2.println(drawCounter);
                  getMinMax(drawCounter, 39); //   39  47
      //            // Serial2.print("arrayMax: "); // Serial2.println(arrayMax);
     //             // Serial2.print("arrayMin: "); // Serial2.println(arrayMin);
                  drawRoutine(pageNum, arrayMax, drawCounter, 0, axisY[pageNum][iconCounter]-22);   // -30               
                  drawIcon(axisY[pageNum][iconCounter], drawCounter);
                  drawRoutine(pageNum, arrayMin, drawCounter, 0, axisY[pageNum][iconCounter]+35); // +30
                  iconCounter++;
                }
            }      
              channelToDraw = 1; //      ,    ,   - 
              for (drawCounter = 0; drawCounter < 7; drawCounter++) { //   " "
                if (drawArray[drawCounter] == true) {
                  drawHistory(drawCounter, channelToDraw);
           //       // Serial2.print("drawCounter / channelToDraw "); // Serial2.print(drawCounter); // Serial2.print(" | "); // Serial2.println(channelToDraw);
                  channelToDraw++;
                 }
              }
      }
    }
    
  mySwitch.enableReceive(0);
}



void setup() {

  pinMode(ledPower,OUTPUT);
 // pinMode(measurePin, INPUT);

 pinMode(4, OUTPUT);
 digitalWrite(4, HIGH);



 
  currentPage = 0;
  allClear = true;
  historyCount = 0; //       
  backLight = true; //          ,   false
  
//     
//  . : tempIn, tempOut, humidityIn, humidityOut, pressure, ppm, pm
 for (i = 0; i < 7; i++) {
  parameterS[i] = 0;
  statusS[i] = 1;
 }

//   
for (arrayCounter = 0; arrayCounter < 7; arrayCounter++) {
 for (i = 0; i<48; i++) {
  historyArray[arrayCounter][i]=0;
 }
}
 
 statusTime = millis();
 updateTime = millis();
 historyTime = millis();
 backLightTime = millis();

 Serial.begin(9600);
  Serial.print("baud=57600");
  sendToNextion();
 Serial.end();

 Serial.begin(57600);
 Serial.print("baud=57600");
 sendToNextion();
 
 // Serial2.begin(115200);
 dht.begin();
 mySwitch.enableReceive(0);
 delay(2000);
 Serial.print("page 0");
 sendToNextion();
 // Serial2.println("Ready");
 
 reDraw();
}



void loop() {


//    

   if (mySwitch.available()) { //  
    int value = mySwitch.getReceivedValue();
    if (value != 0) {
    // Serial2.print("RC-Switch: "); // Serial2.println(mySwitch.getReceivedValue());
//    
      if (mySwitch.getReceivedValue() / 100000 == 161) {

        weatherData = mySwitch.getReceivedValue() - 16100000;
        if (weatherData > 10000) { //  
          parameterS[3] = (weatherData - 10000)/10;
          statusS[3] = statusS[3]+1;   
          statusBoolean[3] = true;  
        }
        else { //  
          if (weatherData > 1000) { //  
            parameterS[1] = -(weatherData - 1000);
            minusOut = true;
          }
          else { //  
            parameterS[1] = weatherData;
            minusOut = false;
          }
        }
          statusS[1] = statusS[1]+1;
          statusBoolean[1] = true;
      }

//    
      if (mySwitch.getReceivedValue() / 10000 == 1210) {
        parameterS[4] = (mySwitch.getReceivedValue() - 12100000) / 1.33; //  
        statusS[4] = statusS[4]+1;   
        statusBoolean[4] = true;   
        // Serial2.print("Pressure: "); // Serial2.println(parameterS[4]);     
      }

      if (mySwitch.getReceivedValue() / 100000 == 131) {
        weatherData = mySwitch.getReceivedValue() - 13100000;
        if (weatherData > 1000) { //  
          parameterS[0] = -(weatherData - 1000);
          minusIn = true;
        }
        else { //  
          parameterS[0] = weatherData;
          minusIn = false;
        }
          statusS[0] = statusS[0]+1;
          statusBoolean[0] = true;
      }

//        

      if (mySwitch.getReceivedValue() / 10000 == 1212) {
        parameterS[2] = (mySwitch.getReceivedValue() - 12120000); // 
        statusS[2] = statusS[2]+1;   
        statusBoolean[2] = true;   
        // Serial2.print("HumidityIn: "); // Serial2.println(parameterS[2]);     
      }
// CO2 PPM
      if (mySwitch.getReceivedValue() / 10000 == 1213) {
        parameterS[5] = (mySwitch.getReceivedValue() - 12130000); // CO2
        statusS[5] = statusS[5]+1;   
        statusBoolean[5] = true;   
        // Serial2.print("CO2 PPM: "); // Serial2.println(parameterS[5]);     
      }      
// PM2.5
      if (mySwitch.getReceivedValue() / 10000 == 1214) {
        parameterS[6] = (mySwitch.getReceivedValue() - 12140000); // PM2.5
        statusS[6] = statusS[6]+1;   
        statusBoolean[6] = true;   
        // Serial2.print("PM2.5: "); // Serial2.println(parameterS[6]);     
      } 

    }
    mySwitch.resetAvailable();
    //    mySwitch.enableReceive(0); //  RC Switch
  }   

  
//    
if (currentPage == 0) {
  if ((millis() - selectionTime) > selectionTimeOut) { 
    if (allClear == false) {
      clearSelection();
    }
  }
 }

  if (Serial.available())
  {
    bool moretocome = true;
    int endcount = 0;
    int bytesread = 0;
    byte inbyte;
    //bool isascii = false;

    while (moretocome)
    {
      inbyte = Serial.read();

        delay(2);
        
      if (inbyte == 0xFF)
      {
        endcount++;
        if (endcount == 3)
        {
          moretocome = false;
          // Serial2.println("");
        }
      }
      else
      {
        endcount = 0;
      }
      buffer[bytesread] = inbyte;
      bytesread++;

    }

    for (int x = 0; x < bytesread; x++)
    {
      // Serial2.print(buffer[x], HEX);
      // Serial2.print(" ");
    }

    //// Serial2.println(bytesread, DEC);
    // Serial2.println("");

  }

  if (buffer[0] == 101) { //   
   backLightTime = millis(); //        
   if (backLight == false) { //    ,   
    // Serial2.println("Backlight 50%");
    Serial.print("dim=100"); //  
    sendToNextion();
    backLight = true; //    
   } else { //     
    
    if (buffer[1] == 0) { //    
      selectionTime = millis();
      if (buffer[2] < 8) { //    
      if (waveCounter < 4) { //    4 
        if (drawArray[buffer[2]-1] == false) { //    
          drawArray[buffer[2]-1] = true; //    ,   
          drawMark(1, buffer[2]-1);
          waveCounter = waveCounter + 1; //       
     //     // Serial2.print("Set button: "); // Serial2.println(buffer[2]);          
     //     // Serial2.print("Total buttons: "); // Serial2.println(waveCounter);
        } else {
          drawArray[buffer[2]-1] = false; //     
          drawMark(0, buffer[2]-1);
          if (waveCounter > 0) {
            waveCounter = waveCounter - 1;
          }
     //     // Serial2.print("Clear button: "); // Serial2.println(buffer[2]);          
     //     // Serial2.print("Total buttons: "); // Serial2.println(waveCounter);          
        }
      } else { //     
        if (drawArray[buffer[2]-1] == true) { //    ,  
          drawArray[buffer[2]-1] = false; //     
          drawMark(0, buffer[2]-1);
          waveCounter = waveCounter - 1; //   
     //     // Serial2.print("Clear button: "); // Serial2.println(buffer[2]);          
     //     // Serial2.print("Total buttons: "); // Serial2.println(waveCounter);          
        }
      }
    } else { //      
        currentPage = waveCounter;
        toPage(waveCounter);    
      }
    }
    else { 
      if (currentPage > 1) { //      ,    ID = 5    0
        if (buffer[2] == 5) {
          toPage(0);
        }
      }

      if (currentPage == 1) { //   1   ,    ID = 5    0
        if (buffer[2] == 5) {
          if (waveCounter == 1) {
            toPage(0);
          } else {
            toPage(waveCounter); //       
          }
        }
      }

      if (currentPage == 1) { //    1     ID = 6 -          
        if (buffer[2] == 6) {
          toPage(0);
        }
      }      
      
      //   

    if (currentPage > 1) { //    1, .   1
      if (buffer[2] > 5) { //     ID > 2, ..  
   //     // Serial2.print("Buffer[2]: ");
   //     // Serial2.println(buffer[2]);
   //     // Serial2.print("Normalized button: ");
        searchTarget = buffer[2] - 5; // ""  ,     ,   :  1 -   -  true   drawarray   1
        searchNumber = 0;
        searchCounter = 0;
   //     // Serial2.println(searchTarget);

        while ((searchCounter < 7) && (searchNumber < searchTarget)) {
          if (drawArray[searchCounter] == true) {
            searchNumber++;
          }
          searchCounter++;
        }
        
   //     // Serial2.print("searchCounter: "); // Serial2.println(searchCounter);
        toPage(1); //      
      }
    }


      
     }
    }
  } 

buffer[0] = 0;

//    *Status   1   
//    

//  :       ,    9
if ((millis() - statusTime) > statusTimeOut) {

 
 for (i = 0; i < 7; i++) { //   
  // Serial2.print("Status of "); // Serial2.print(i); // Serial2.print(" is: "); // Serial2.println(statusS[i]);
    if (statusS[i] == 0) {statusBoolean[i] = false;
    // Serial2.print("As StatusS "); // Serial2.print(i); // Serial2.print(" is "); // Serial2.print(statusS[i]); // Serial2.println(" StatusBoolean set to false");
    }
    statusS[i] = 0; //    
 }
  statusTime = millis();
  
}

if (currentPage == 0) { //       

 
//    
if ((millis() - updateTime) > updateTimeOut) {

  reDraw();
  updateTime = millis();
 }

 
 
}

//         
if ((millis() - backLightTime) > backLightTimeOut) {
 if (backLight == true) {
  backLight = false;
  // Serial2.println("Backlight 15%");
  //Serial.print("page 0");
  // sendToNextion();
  currentPage = 0;
  clearSelection();
  reDraw();
  Serial.print("dim=15");
  sendToNextion();
 }
  
 }

//   
if ((millis() - historyTime) > historyTimeOut) {
  updateHistory();

    historyCount++;
    // Serial2.print("History Q: "); // Serial2.println(historyCount);
 
  historyTime = millis();
  }

}  



рдХреЗрд╕ рдореЙрдбрд▓ (рдзреНрдпрд╛рди рд╕реЗ - рдЖрдк рд╕реНрдХреНрд░реАрди рдХреЛ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ)

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


All Articles