рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ, рдЕрдЬрдЧрд░ рдФрд░ рдкрд╛рдиреА рдЗрдирдбреЛрд░ рдкреМрдзреЛрдВ

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



рдЕрд╡рдпрд╡ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕рдВрд╕рд╛рдзрди


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

рдпрд╣рд╛рдБ рдЙрди рдШрдЯрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред


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

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


рдпрд╣рд╛рдБ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ GPIO рдкреЛрд░реНрдЯреНрд╕ рдХрд╛ рдЖрд░реЗрдЦ рд╣реИред


рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ GPIO рдкреЛрд░реНрдЯ рдЖрд░реЗрдЦ

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдПрдХ рд░рд┐рд▓реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ


рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдПрдХ рд░рд┐рд▓реЗ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред


рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ

рд╕реЗ рд░рд┐рд▓реЗ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд▓рд╛рд▓ рддрд╛рд░ (рдорд╣рд┐рд▓рд╛-рдорд╣рд┐рд▓рд╛) рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ 5V рдкрд┐рди (рдкрд┐рди рдирдВрдмрд░ 2) рдХреЗ рд▓рд┐рдП JD_VCC рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ рдкрд┐рди рд╕реЗ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдирд╛рд░рдВрдЧреА рддрд╛рд░ (рдлреАрдореЗрд▓-рдлреАрдореЗрд▓) VCC рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ рдкрд┐рди рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ 3.3V рдкрд┐рди (рдкрд┐рди рдирдВрдмрд░ 1) рддрдХ рдЬрд╛рддрд╛ рд╣реИред


рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ рдкрд┐рди JD_VCC рдФрд░ VCC

рдЗрди рддрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рд▓реЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЛ рджреЛ рдФрд░ рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ GND рдФрд░ IN1 рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВред


рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ GND рдкрд┐рди рдФрд░ IN1

рдлреАрдореЗрд▓ (рдорд╣рд┐рд▓рд╛) рдорд╣рд┐рд▓рд╛ рд╡рд╛рдпрд░ рдЧреНрд░рд╛рдЙрдВрдб рдХреЗрдмрд▓ рд╣реИ рдЬреЛ рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ GND рдкрд┐рди рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЧреНрд░рд╛рдЙрдВрдб рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд┐рди рдирдВрдмрд░ 34 рд╕реЗ рдЬреЛрдбрд╝рд╛)ред рдПрдХ рд╕рдлреЗрдж рддрд╛рд░ (рдорд╣рд┐рд▓рд╛-рдорд╣рд┐рд▓рд╛) рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЗ рдкрд┐рди IN1 рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рдкрд┐рди рдирдВрдмрд░ 12 рддрдХ рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╕рдлреЗрдж рддрд╛рд░ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдмреЛрд░реНрдб рдкрд░ рд╕реНрдерд┐рдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рд▓реЗ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рддрд╛рд░

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

рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЛ рд░рд┐рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝рдирд╛


рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рд░рд┐рд▓реЗ рдмреЛрд░реНрдб рдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд░рд┐рд▓реЗ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рд╕реЗ рдЬреЛрдбрд╝рд╛ред

рдЬрдм рддрдХ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХ рд╕рдВрдЧреНрд░рд╣ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рднреА рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд▓реЗрддреЗ, рддрдм рддрдХ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЛ рдкрд╛рд╡рд░ рдЖрдЙрдЯрд▓реЗрдЯ рдореЗрдВ рдкреНрд▓рдЧ рди рдХрд░реЗрдВред рдмрд┐рдЬрд▓реА рдХреЗ рдЭрдЯрдХреЗ рдХреЗ рдЦрддрд░реЗ рд╕реЗ рдЕрд╡рдЧрдд рд░рд╣реЗрдВред


рдХрд┐рд╕реА рдПрдХ рд░рд┐рд▓реЗ рдХреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА 12V рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдПрдХ рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рддрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдбреЙрдкреНрдЯрд░ "+" рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рд▓ рддрд╛рд░ (рдкреБрд░реБрд╖-рдкреБрд░реБрд╖), рдФрд░ рдПрдбрд╛рдкреНрдЯрд░ "-" рдХрдиреЗрдХреНрдЯрд░ рд╕реЗ рднреВрд░реЗ рд░рдВрдЧ рдХреЗ рдХреЗрдмрд▓ (рдкреБрд░реБрд╖-рдкреБрд░реБрд╖) рдХреЛ рдЬреЛрдбрд╝рд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдХреЗрдмрд▓ рдХреЛ "рдХреНрд░реЛрдХреЛрдбрд╛рдЗрд▓" (рдорд╣рд┐рд▓рд╛-рдкреБрд░реБрд╖) рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рднреВрд░реЗ рд░рдВрдЧ рдХреЗ рддрд╛рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ред


рдПрдбреЙрдкреНрдЯрд░ рдЬреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ

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


рдПрдХ рдЕрд▓рдЧ рд░рд┐рд▓реЗ рд╕реЗ рдЬреБрдбрд╝рдХрд░

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


рд▓рд╛рд▓ рдФрд░ рдирд╛рд░рдВрдЧреА рдХреЗрдмрд▓


рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдФрд░ рдПрдбрд╛рдкреНрдЯрд░


рд░рд┐рд▓реЗ рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ

рдПрдХ рдкрд╛рдиреА рдХреЗ рдкрдВрдк рдХреЛ рдПрдХ рд░рд┐рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝рдирд╛


рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рдХрдиреЗрдХреНрдЯрд░реНрд╕ "рдордЧрд░рдордЪреНрдЫ" рдХреЛ рдкрд╛рдиреА рдХреЗ рдкрдВрдк рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрдирдХреЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдХреНрд░рдо рдЬрд▓ рдкреНрд░рд╡рд╛рд╣ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

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


рдПрдХ рдкрд╛рдиреА рдХреЗ рдкрдВрдк рдХреЛ рдПрдХ рд░рд┐рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝рдирд╛


рдкреВрд░реНрдг рд╕рд┐рдВрдЪрд╛рдИ рдкреНрд░рдгрд╛рд▓реА: рдкрд╛рдиреА рдмрд╛рдПрдВ рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдВрдк рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рджрд╛рдПрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдкреМрдзреЗ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ

рдХреЛрдб


рддреЛ рд╣рдо рдХреНрдпрд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реВрдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рд╣реИред рд╣рдореЗрдВ рдХреЛрдб рдорд┐рд▓рд╛ред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ GPIO рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ gpiozero рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╕реНрддрд░ рдХреЗ рддрдВрддреНрд░ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ GPIO рдкрд┐рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред

рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдПрдХ рдореЙрдирд┐рдЯрд░, рдорд╛рдЙрд╕ рдФрд░ рдХреАрдмреЛрд░реНрдб рдХреЛ рдЕрдкрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдЖрдкрдХреЛ SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ DesktopрдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ runред рдЗрд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдлреЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ classesред рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, classesрдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ Hardware.pyред рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

from gpiozero import OutputDevice

class Relay(OutputDevice):
    def __init__(self, pin, active_high):
        super(Relay, self).__init__(pin, active_high)

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ Relay, рдЬреЛ рдХрд┐ OutputDevice рд╡рд░реНрдЧ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИ ред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, classesрдореИрдВрдиреЗ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ TimeKeeper.py:

import datetime

class TimeKeeper:
    def __init__(self, current_time):
        self.current_time = current_time
        self.time_last_watered = None
    
    def set_current_time(self, updated_time):
        self.current_time = updated_time

    def set_time_last_watered(self, updated_time):
        self.time_last_watered = updated_time

    @staticmethod
    def get_current_time():
        now = datetime.datetime.now()
        return now.strftime("%I:%M:%S %p")

рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд░реНрддрдорд╛рди рд╕рдордп рдФрд░ рдЙрд╕ рдХреНрд╖рдг рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╣реИ рдЬрдм рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдкрд╛рдиреА рдкрд┐рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддреЛ, рдлрд╝рд╛рдЗрд▓реЗрдВ Hardware.pyрдФрд░ TimeKeeper.pyрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ classesред рдЕрдм, рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрд╛рд╣рд░, рдореИрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реВрдВ water_plant.py:

from classes import Hardware
from classes import TimeKeeper as TK
import schedule
import smtplib
import time
import ssl

# WATERING_TIME must be in "00:00:00 PM" format
WATERING_TIME = '11:59:50 AM'
SECONDS_TO_WATER = 10
RELAY = Hardware.Relay(12, False)
EMAIL_MESSAGES = {
    'last_watered': {
        'subject': 'Raspberry Pi: Plant Watering Time',
        'message': 'Your plant was last watered at'
    },
    'check_water_level': {
        'subject': 'Raspberry Pi: Check Water Level',
        'message': 'Check your water level!',
    }
}

def send_email(time_last_watered, subject, message):
    port = 465
    smtp_server = "smtp.gmail.com"
    FROM = TO = "YOUR_EMAIL@gmail.com"
    password = "YOUR_PASSWORD"

    complete_message = ''
    if time_last_watered == False:
        complete_message = "Subject: {}\n\n{}".format(subject, message)
    else:
        complete_message = "Subject: {}\n\n{} {}".format(subject, message, time_last_watered)
    
    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
        server.login(FROM, password)
        server.sendmail(FROM, TO, complete_message)

def send_last_watered_email(time_last_watered):
    message = EMAIL_MESSAGES['last_watered']['message']
    subject = EMAIL_MESSAGES['last_watered']['subject']
    send_email(time_last_watered, subject, message)

def send_check_water_level_email():
    message = EMAIL_MESSAGES['check_water_level']['message']
    subject = EMAIL_MESSAGES['check_water_level']['subject']
    send_email(False, subject, message)

def water_plant(relay, seconds):
    relay.on()
    print("Plant is being watered!")
    time.sleep(seconds)
    print("Watering is finished!")
    relay.off()

def main():
    time_keeper = TK.TimeKeeper(TK.TimeKeeper.get_current_time())
    if(time_keeper.current_time == WATERING_TIME):
        water_plant(RELAY, SECONDS_TO_WATER)
        time_keeper.set_time_last_watered(TK.TimeKeeper.get_current_time())
        print("\nPlant was last watered at {}".format(time_keeper.time_last_watered))
        # send_last_watered_email(time_keeper.time_last_watered)

# schedule.every().friday.at("12:00").do(send_check_water_level_email)

while True:
    # schedule.run_pending()
    time.sleep(1)
    main()

рдпрд╣рд╛рдВ рдЖрдк рдЪрд░ рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ WATERING_TIMEрдФрд░ SECONDS_TO_WATERрдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдкрд╣рд▓рд╛ рдЪрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреМрдзреЛрдВ рдХреЛ рдХрд┐рд╕ рд╕рдордп рдкрд╛рдиреА рджреЗрдирд╛ рд╣реИред рджреВрд╕рд░рд╛ рдкрд╛рдиреА рднрд░рдиреЗ рдХреА рдЕрд╡рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

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

  1. рдЖрдкрдХреЛ рд▓рд╛рдЗрди рдореЗрдВ FROM = TO = ┬лYOUR_EMAIL@gmail.com┬╗рдФрд░ password = ┬лYOUR_PASSWORD┬╗рдЕрдкрдиреЗ рдЬреАрдореЗрд▓ рдИрдореЗрд▓ рдкрддреЗ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред
  2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВ:

    •  # send_last_watered_email (time_keeper.time_last_watered)
    • # рд╕рдордп-рд╕рд╛рд░рд┐рдгреА ()ред friday.at ("12:00")ред do (send_check_water_level_nail)
    • # рд╕рдордп рд╕рд╛рд░рдгреА (рд▓рдВрдмрд┐рдд)
  3. рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ , рдЕрдкрдиреЗ рдЬреАрдореЗрд▓ рдЦрд╛рддреЗ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рд╕реНрд╡рд┐рдЪ рдЪрд╛рд▓реВ рдХрд░реЗрдВред рдЕрдиреНрдпрдерд╛, рдЬрдм рдЖрдк рдЬреАрдореЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗрд╡рд▓ Gmail рдЦрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдЬрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреА рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:

run
тФЬтФАтФА classes
тФВ тФЬтФАтФА Hardware.py
тФВ тФФтФАтФА TimeKeeper.py
тФФтФАтФА water_plant.py

рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ runрд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣реАрдВ рднреА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ Desktopред

рд╣рд░ рдмрд╛рд░ рдореБрдЭреЗ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ water_plant.pyред рдореИрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬрдм рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЪрд╛рд▓реВ рд╣реЛред рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрдВрдж рдХрд░рдирд╛, рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдирд╛, рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдирд╛, рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдЖрдХрд░реНрд╖рдХ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЯреАрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ crontabред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:

sudo crontab -e

рдЗрд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреБрдЫ рдРрд╕реА рдЪреАрдЬрд╝реЛрдВ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдирд┐рдореНрди рдЖрдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВред


рдХреНрд░реЛрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░

рдХрд░рдирд╛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:

@reboot python3 /home/pi/Desktop/run/water_plant.py

рдлрд┐рд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ Ctrl+Xрджрд░реНрдЬ рдХрд░рдХреЗ YрдФрд░ рджрдмрд╛рдХрд░ рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП Enterред

рдЙрдкрд░реЛрдХреНрдд рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде, рд╣рдо рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢ рджреЗрддреЗ рд╣реИрдВ: "рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рд░рд┐рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ water_plant.pyрдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдПрдВ runрдЬреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ Desktopред" рдпрджрд┐ рдЖрдкрдХрд╛ рдлрд╝реЛрд▓реНрдбрд░ runрдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

рд╕рд╛рд░рд╛рдВрд╢


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ ред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рддреБрд░рдВрдд рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рднрдВрдбрд╛рд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

git clone https://github.com/AlanConstantino/rpi-plant-project.git

рдмрд╕ рдЗрддрдирд╛ рд╣реА! рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЗрдирдбреЛрд░ рдкреМрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд┐рдВрдЪрд╛рдИ рдкреНрд░рдгрд╛рд▓реА рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рдПред рд╡рд╣ рдЬрд╛рдирддреА рд╣реИ рдХрд┐ рд╣рд░ 24 рдШрдВрдЯреЗ рдореЗрдВ рдкреМрдзреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрд╛рдиреА рджреЗрдирд╛ рд╣реИ рдФрд░ рд╡рд╣ рдЕрдкрдиреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рдИрдореЗрд▓ рд╕реВрдЪрдирд╛рдПрдВ рдФрд░ рд░рд┐рдорд╛рдЗрдВрдбрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рд╣реЛрдо рдСрдЯреЛрдореЗрдЯреЗрдб рдкреНрд▓рд╛рдВрдЯ рд╡реЙрдЯрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣реЗрдВрдЧреЗ?


All Articles