Arduino рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдорд╛рдЗрдХреНрд░реЛ-рдирд┐рдпрдВрддреНрд░рдХ рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдЧреНрд░реА рдХреЗ рд╢реМрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдордВрдЪ рд╣реИред рдореИрдВ рдпрд╣ рддрд░реНрдХ рдирд╣реАрдВ рджреВрдВрдЧрд╛ рдХрд┐ рдкреЗрд╢реЗрд╡рд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрд░реБрдбрд┐рдиреЛ рдордВрдЪ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ (рдореИрдВ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рд╣рдордд рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛), рд▓реЗрдХрд┐рди рд╣реЛрдо рдСрдЯреЛрдореЗрд╢рди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЗрд░реЗ рд╢реМрдХрд┐рдпрд╛ "рд╢рд┐рд▓реНрдк" рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрд╛рдиреА рдирд┐рдпрдВрддреНрд░рдХ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ "рдЕрдкрдиреЗ рджрдо рдкрд░" рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреА рддрд░рд╣ рд╕реЗ "рд╕рдВрдЪрд╛рд░" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрддрд┐рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХрдИ рдмрд╛рд░ рдмрдврд╝ рд╕рдХрддреА рд╣реИред рддреЛ, рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдШрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ SkyNet ...
рдмрдЬрдЯ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓
рд╣рдорд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ 433.90MHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдмрдЬрдЯ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рд▓рд╛рдЧрдд рд▓рдЧрднрдЧ $ 2.5 рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдХрдо рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдИрдерд░рдиреЗрдЯ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рд╡рд╛рдпрд░рд▓реЗрд╕ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд╣рдЬреАрд╡рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдРрд╕реЗ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдФрд░ рд╕рд╕реНрддрд╛ рд╣реИред
рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░:

рд░рд┐рд╕реАрд╡рд░:

рдХрд╛рдо рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдВрдЪрд╛рд░ рд░реЗрдВрдЬ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИ, рдФрд░ рдореИрдВ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ "> 500 рдореА" рдХреА рд╕реАрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢рд╛рд╡рд╛рджреА рдмрдпрд╛рдиреЛрдВ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЦреБрд▓реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ 100 рдореАрдЯрд░, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдХрдВрдХреНрд░реАрдЯ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдоред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдпрд╛ рдПрдХ рдЫреЛрдЯреЗ рдЙрдкрдирдЧрд░реАрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╡реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рдЖрдк рдмреЗрд╣рддрд░ (рдХреНрд░рдорд╢рдГ, рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ) рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд▓реЗрдЦ рдХреЛ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдЪрд╛рд░рд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдореИрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдИрдерд░рдиреЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЛ рдЙрдЪрд┐рдд рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЯреАрд╕реАрдкреА рдкреИрдХреЗрдЯ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рдпреВрдбреАрдкреАред
рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ - Vcc / Gnd рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдорд╛рдЗрдХреНрд░реЛ-рдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдПрдХ рдореБрдлреНрдд рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рд░рд┐рд╕реЗрдкреНрд╢рди / рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 10-15 рд╕реЗрдореА рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдВрдЯреАрдирд╛ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рд╡реИрд╕реЗ, рд╕рдВрдЪрд╛рд░ рд╕реАрдорд╛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╢рдХреНрддрд┐ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ - рдпрджрд┐ рд╡реЗ 12 рд╡реА рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рддреЛ рд╕рдВрдЪрд╛рд░ рд░реЗрдВрдЬ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред
рд░рд┐рд╕реАрд╡рд░ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ Arduino UNO R3 рдорд╛рдЗрдХреНрд░реЛ-рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдЬреБрдбрд╝реЗ:

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рджреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдП: рдкрд╣рд▓рд╛ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рд╣реИ рдЬреЛ рд╣рд╡рд╛ рдкрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА "рдкреНрд░рд╕рд╛рд░рд┐рдд" рдХрд░реЗрдЧрд╛; рджреВрд╕рд░рд╛, рд░рд┐рд╕реАрд╡рд░ рд╣реИ, рдЬреЛ, рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП "рд╕реБрдиреЛ" рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рд╕реНрд╡рд╛рдЧрдд рджреЛрдиреЛрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рд╛рд░реНрдердХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рд╡рд░реНрдЪреБрдЕрд▓рд╡рд╛рдпрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
Arduino рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЪреЗрдХрд╕рдо рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рдЕрджреНрднреБрдд
рд╡рд░реНрдЪреБрдЕрд▓рд╡рд╛рдпрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдбреЗрдЯрд╛ (рдФрд░ рдЬреИрд╕реЗ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реВрдЪрдирд╛ рдХреЗ рдЫреЛрдЯреЗ рдкреИрдХреЗрдЯ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рд╕реНрд╡рд╛рдЧрдд рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд: рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдкрд░ рд╣рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ (рд╡рд░реНрдг рдпрд╛ рдмрд╛рдЗрдЯ рдХреЛрдб рдХреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ), рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдкрд░, "рд╕рд╣реА" рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИред
рд╡рд░реНрдЪреБрдЕрд▓рд╡рд╛рдпрд░ (рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХреЛрдб:
рдХреЛрдб рджреЗрдЦреЗрдВ// transmitter.pde // // Simple example of how to use VirtualWire to transmit messages // Implements a simplex (one-way) transmitter with an TX-C1 module #include <VirtualWire.h> void setup() { Serial.begin(9600); // Debugging only Serial.println("setup"); // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(2000); // Bits per sec } void loop() { const char *msg = "hello"; digitalWrite(13, true); // Flash a light to show transmitting vw_send((uint8_t *)msg, strlen(msg)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13, false); delay(200); }
рд░рд┐рд╕реАрд╡рд░ рдХреЛрдб:
рдХреЛрдб рджреЗрдЦреЗрдВ // receiver.pde // // Simple example of how to use VirtualWire to receive messages // Implements a simplex (one-way) receiver with an Rx-B1 module #include <VirtualWire.h> void setup() { Serial.begin(9600); // Debugging only Serial.println("setup"); // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(2000); // Bits per sec vw_rx_start(); // Start the receiver PLL running } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // Non-blocking { int i; digitalWrite(13, true); // Flash a light to show received good message // Message with a good checksum received, dump it. Serial.print("Got: "); for (i = 0; i < buflen; i++) { Serial.print(buf[i], HEX); Serial.print(" "); } Serial.println(""); digitalWrite(13, false); } }
рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рдЕрдЧрд▓рд╛ рдХрджрдо рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдПрдХ рдирдП рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рднреА рдЙрдкрдХрд░рдг рд╡рд┐рдирд┐рдордп рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдирдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЙрд╕ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдг рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╖реНрдЯрддрдо рд▓рдЧрддреА рдереАред рддреЛ, рдкрд╛рда рдореЗрдВ рдиреАрдЪреЗ рдореБрдЦреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ:
device_id - рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░: рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int (рд▓рдВрдмрд╛рдИ 2 рдмрд╛рдЗрдЯреНрд╕, 0 рд╕реЗ 65535 рддрдХ рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА) - рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╣реЛрдо рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдбреЗрд╕реНрдЯрд┐рдиреЗ_рдб - рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд┐рд╕реЗ рдкреИрдХреЗрдЯ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕_рдб рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯ рдЕрднреА рднреА рд╕рднреА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рд╕реАрд╡рд░ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЖрдк рдЙрди рдкреИрдХреЗрдЯреЛрдВ рдХреЛ "рдХрд╛рдЯ" рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИрдВред рдЖрдк рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ "0" рдХрд╛ рдЕрд░реНрде рдПрдХ рдкреНрд░рд╕рд╛рд░рдг рдкреИрдХреЗрдЯ рд╣реИред
packet_id - рдкреИрдХреЗрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рдкреНрд░рдХрд╛рд░ рдПрдХ рд╣реА рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int рд╣реИред рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреИрдХреЗрдЯ рднреЗрдЬрддреЗ рд╕рдордп, рдЗрд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде "рдЪрд┐рд╣реНрдирд┐рдд" рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╣реА рдкреИрдХреЗрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдХреБрдЫ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрдХрд░рдг рдмрд╛рд░-рдмрд╛рд░ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рди рдХрд░реЗрдВред рдФрд░ рдПрдХ рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рд░реНрд░рд╡рд╛рдИред
рдХрдорд╛рдВрдб -
рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ред рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ (рд▓рдВрдмрд╛рдИ 1 рдмрд╛рдЗрдЯ, рдорд╛рди 0 рд╕реЗ 255 рддрдХ рд╣реЛрддрд╛ рд╣реИ)ред рдпрд╣ рддрдерд╛рдХрдерд┐рдд "рдЯреАрдо рдХреНрд▓рд╛рд╕" рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдбреЗрдЯрд╛ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдУрдкрдирд┐рдВрдЧ / рдХреНрд▓реЛрдЬрд┐рдВрдЧ рдХрдВрдЯреНрд░реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдирдВрдмрд░ 10 рдФрд░ рддрд╛рдкрдорд╛рди рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдирдВрдмрд░ 15 рдЕрд╕рд╛рдЗрди рдХрд░рдХреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЯреЗрдмрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдЯреЗрдмрд▓ рдирд┐рд░рдВрддрд░ рд╣реИред рдФрд░ рдЖрдк рдЗрд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЪрд╛рд▓рд╛рдХреА рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдХ рд╣реА ZWave рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд╕рдВрднрд╡ рдХрдорд╛рдВрдб рдкрд░ рдЭрд╛рдВрдХрдиреЗ рдФрд░ рдЕрдкрдиреЗ рдШрд░ рдореЗрдВ
рдЙрдирдХреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ "рд╡рдпрд╕реНрдХреЛрдВ рдХреА рддрд░рд╣" рд╣реЛ, рдФрд░ рдЗрд╕ рдореВрд▓реНрдпрд╡рд╛рди рдЬрд╛рдирдХрд╛рд░реА рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдбреЗрдЯрд╛ - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ред рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЗрдВрдЯ (рд▓рдВрдмрд╛рдИ 2 рдмрд╛рдЗрдЯреНрд╕) рд╣реИ, рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ -32.768 рд╕реЗ 32.767 рддрдХ рд╣реИред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣рдо рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ; рдареАрдХ рд╣реИ, рдпрд╣ рдореБрдЭреЗ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЧрддрд╛ рд╣реИред рддрд╛рдкрдорд╛рди рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдпрд╣ 100 рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╕реНрдерд┐рддрд┐ред рдореЛрд╢рди рд╕реЗрдВрд╕рд░ рдЖрд╕рд╛рди рд╣реИ, рд░рд┐рд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдкрд╛рда рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдмрд╛рд╣рд░реА рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░реА рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдХреБрдЫ рджрд░реНрдЬрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рдВрднрд╡ рдЯреАрдореЗрдВред
рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 9 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдкреИрдХреЗрдЯ рд▓рдВрдмрд╛рдИ рд╣реИред рдПрдХ рдЫреЛрдЯрд╛ рдкреИрдХреЗрдЬ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ - рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рд░рд╛рд╕реНрддреЗ рдореЗрдВ "рдмреНрд░реЗрдХ" рдХрд░реЗрдЧрд╛; рджреВрд╕рд░реЗ, рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдХрдо рд╕рдордп, рдЬреЛ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╣рд╡рд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдмрд╛рдж рдХреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдХреЛ "рд╡рд┐рд░рд▓" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рддреН рдЕрдХреНрд╕рд░ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рднреЗрдЬрддреЗред рдЗрд╕реА рд╕рдордп, рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рдЬрдм рдЧрд╡рд╛рд╣реА рд╕рдордп-рд╕рдордп рдкрд░ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕рддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░рд╛рд▓ рдХреБрдЫ рд╣рдж рддрдХ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдкреИрдХреЗрдЯ рдХреЗ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЭреБрдХрд╛рд╡ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреВрдВрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдкреИрдХреЗрдЬ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЕрдм рд╣рдореЗрдВ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ
EasyTransfer рдирд╛рдордХ рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдп
рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓рд╡рд╛рдпрд░ рдХреЗ "рд╢реАрд░реНрд╖ рдкрд░" рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд░рд┐рд╕реАрд╡рд░ / рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдИрдЯрдХреЛрдб рдХреЗ рд╕реЗрдЯ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкреВрд░реЗ рдврд╛рдВрдЪреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд╣реЛрдВрдЧреЗ:
struct SEND_DATA_STRUCTURE{ unsigned int device_id; unsigned int destination_id; unsigned int packet_id; byte command; int data; };
рдпрд╣ рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рд░рд┐рд╕реАрд╡рд░ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдкрд░ рд╕рдВрд░рдЪрдирд╛ рдПрдХ-рдПрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЧрд▓рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рджрд░рдЕрд╕рд▓, рдЗрд╕рд▓рд┐рдП, рдкреИрдХреЗрдЬ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
Device_id рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ - рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВ рдЗрд╕ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ EEPROM рдХреЗ рдКрд░реНрдЬрд╛-рд╕реНрд╡рддрдВрддреНрд░ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВред рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╣реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int рдХреНрд╖реЗрддреНрд░ рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛрдЦрд┐рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИред
рд╣рдо рдЕрдкрдиреЗ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдЧреНрд░рд╣реАрдд рдЬреНрдЮрд╛рди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдЖрдВрддрд░рд┐рдХ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдореВрд▓реНрдп рднреЗрдЬреЗрдЧрд╛, рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХреЛрдб:
рдХреЛрдб рджреЗрдЦреЗрдВ #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> #include <EEPROM.h> // - const int led_pin = 13; const int transmit_pin = 2; unsigned int unique_device_id = 0; unsigned int count = 1; //create object EasyTransferVirtualWire ET; struct SEND_DATA_STRUCTURE{ // . // , 26 ( VirtualWire) unsigned int device_id; unsigned int destination_id; unsigned int packet_id; byte command; int data; }; // SEND_DATA_STRUCTURE mydata; // unsigned int EEPROM void EEPROMWriteInt(int p_address, unsigned int p_value) { byte lowByte = ((p_value >> 0) & 0xFF); byte highByte = ((p_value >> 8) & 0xFF); EEPROM.write(p_address, lowByte); EEPROM.write(p_address + 1, highByte); } unsigned int EEPROMReadInt(int p_address) { byte lowByte = EEPROM.read(p_address); byte highByte = EEPROM.read(p_address + 1); return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00); } void setup() { // pinMode(led_pin, OUTPUT); ET.begin(details(mydata)); vw_set_tx_pin(transmit_pin); // , data- vw_setup(2000); // Serial.begin(9600); randomSeed(analogRead(0)); // / Device ID Serial.print("Getting Device ID... "); unique_device_id=EEPROMReadInt(0); if (unique_device_id<10000 || unique_device_id>60000) { Serial.print("N/A, updating... "); unique_device_id=random(10000, 60000); EEPROMWriteInt(0, unique_device_id); } Serial.println(unique_device_id); } void loop() { mydata.device_id = unique_device_id; mydata.destination_id = 0; mydata.packet_id = random(65535); mydata.command = 0; mydata.data = count; digitalWrite(led_pin, HIGH); // Serial.print("Transmitting packet "); Serial.print(mydata.packet_id); Serial.print(" device id "); Serial.print(mydata.device_id); Serial.print(" data: "); Serial.print(mydata.data); Serial.print(" ... "); ET.sendData(); // digitalWrite(led_pin, LOW); Serial.println("DONE"); delay(1000); count = count + 1; }
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд░рд┐рд╕реАрд╡рд░ рдХреЗрд╡рд▓ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рд╕реБрдиреЗрдЧрд╛ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛ред рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдЧрдВрддрд╡реНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВред
рд░рд┐рд╕реАрд╡рд░ рдХреЛрдб:
рдХреЛрдб рджреЗрдЦреЗрдВ #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> #include <EEPROM.h> const int led_pin = 13; const int receive_pin = 2; unsigned int unique_device_id = 0; //create object EasyTransferVirtualWire ET; char buf[120]; struct SEND_DATA_STRUCTURE{ // . // , 26 ( VirtualWire) unsigned int device_id; unsigned int destination_id; unsigned int packet_id; byte command; int data; }; // SEND_DATA_STRUCTURE mydata; // unsigned int EEPROM void EEPROMWriteInt(int p_address, unsigned int p_value) { byte lowByte = ((p_value >> 0) & 0xFF); byte highByte = ((p_value >> 8) & 0xFF); EEPROM.write(p_address, lowByte); EEPROM.write(p_address + 1, highByte); } unsigned int EEPROMReadInt(int p_address) { byte lowByte = EEPROM.read(p_address); byte highByte = EEPROM.read(p_address + 1); return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00); } void setup() { pinMode(led_pin, OUTPUT); Serial.begin(9600); // Debugging only ET.begin(details(mydata)); // Initialise the IO and ISR vw_set_rx_pin(receive_pin); vw_setup(2000); // vw_rx_start(); // // Device ID Serial.print("Getting Device ID... "); unique_device_id=EEPROMReadInt(0); if (unique_device_id<10000 || unique_device_id>60000) { Serial.print("N/A, updating... "); unique_device_id=random(10000, 60000); EEPROMWriteInt(0, unique_device_id); } Serial.println(unique_device_id); } void loop() { if(ET.receiveData()) // , { digitalWrite(led_pin, HIGH); Serial.print("Got: "); Serial.print("Device ID: "); Serial.print(mydata.device_id); Serial.print(" Destination ID: "); Serial.print(mydata.destination_id); Serial.print(" Packet ID: "); Serial.print(mydata.packet_id); Serial.print(" Command: "); Serial.print(mydata.command); Serial.print(" Data: "); Serial.print(mydata.data); Serial.println(); digitalWrite(led_pin, LOW); } }
рд╣реБрд░реНрд░реЗ! рд╣рдорд╛рд░рд╛ рд╕реНрдХрд╛рдИрдиреЗрдЯ рд╣рд╡рд╛ рдкрд░ рд╣реИ! рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдгрддрд╛ рдХреА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ ... рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдореЗрдЬрд░рдбреЛрдореЛ рдореЗрдВ рдПрдХреАрдХрд░рдг
рдЕрдЧрд▓рд╛ рдЪрд░рдг рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдмрдВрдзрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣рдорд╛рд░реА рд╕рдВрдкреВрд░реНрдг "рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛" рдХрд╛ рдПрдХреАрдХрд░рдг рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
рдореЗрдЬрд░рдбреЛрдореЛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджрд░рдЕрд╕рд▓, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд╣рдорд╛рд░реЗ рд░реЗрдбрд┐рдпреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмреАрдЪ "рдкреБрд▓" рдХреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдПрдХреАрдХрд░рдг рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрддред рдиреАрдЪреЗ рдореИрдВ рдПрдХ "рд╕реБрдирдиреЗ рдХрд╛ рдкреБрд▓" рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рдо рдореЗрдЬрд░рдбреЛрдореЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ "рд╕реБрдирдирд╛" рд╣реИред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рдмрджрд▓реЗ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдирдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓рдЧреЗ рд░рд╣реЗрдВрдЧреЗ - рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдореЗрдВ, рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЖрд╕рд╛рди рд╣реЛ ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб:
$device_id=$params['did']; $destination_id=$params['dest']; $packet_id=$params['pid']; $command_id=$params['c']; $data=$params['d']; say(" $device_id $packet_id $command_id $data");
рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рддреБрд░рдВрдд рдЗрд╕реЗ http рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
192.168.0.17/objects/?script=easyRF
(192.168.0.17 рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдкрддрд╛)
рдЕрдЧрд▓рд╛ рдХрджрдо Arduino рд╕реЗ MajorDoMo рдХреЛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдирд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ - рдЖрдк Arduino рд░рд┐рд╕реАрд╡рд░ рдореЗрдВ рдПрдХ рдИрдерд░рдиреЗрдЯ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ http рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдЗрдХреНрд░реЛ-рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
ArduinoGW рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ COM рдкреЛрд░реНрдЯ рдкрд░ "рд╕реБрдирддрд╛ рд╣реИ" рдФрд░ рдЕрдЧрд░ http рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреНрд░рдо рд╣реИред - рдПрдХ рдЕрдиреБрд░реЛрдз, рдпрд╣ рдЦреБрдж рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╣рдо рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд░рд┐рд╕реАрд╡рд░ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
рдХреЛрдб рджреЗрдЦреЗрдВ #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> #include <EEPROM.h> const int led_pin = 13; const int receive_pin = 2; unsigned int unique_device_id = 0; //create object EasyTransferVirtualWire ET; char buf[120]; struct SEND_DATA_STRUCTURE{ // . // , 26 ( VirtualWire) unsigned int device_id; unsigned int destination_id; unsigned int packet_id; byte command; int data; }; // SEND_DATA_STRUCTURE mydata; // unsigned int EEPROM void EEPROMWriteInt(int p_address, unsigned int p_value) { byte lowByte = ((p_value >> 0) & 0xFF); byte highByte = ((p_value >> 8) & 0xFF); EEPROM.write(p_address, lowByte); EEPROM.write(p_address + 1, highByte); } unsigned int EEPROMReadInt(int p_address) { byte lowByte = EEPROM.read(p_address); byte highByte = EEPROM.read(p_address + 1); return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00); } void setup() { pinMode(led_pin, OUTPUT); Serial.begin(9600); // Debugging only ET.begin(details(mydata)); // Initialise the IO and ISR vw_set_rx_pin(receive_pin); vw_setup(2000); // Bits per sec vw_rx_start(); // Start the receiver PLL running // Device ID Serial.print("Getting Device ID... "); unique_device_id=EEPROMReadInt(0); if (unique_device_id<10000 || unique_device_id>60000) { Serial.print("N/A, updating... "); unique_device_id=random(10000, 60000); EEPROMWriteInt(0, unique_device_id); } Serial.println(unique_device_id); } void loop() { if(ET.receiveData()) // , { digitalWrite(led_pin, HIGH); Serial.print("Got: "); Serial.print("Device ID: "); Serial.print(mydata.device_id); Serial.print(" Destination ID: "); Serial.print(mydata.destination_id); Serial.print(" Packet ID: "); Serial.print(mydata.packet_id); Serial.print(" Command: "); Serial.print(mydata.command); Serial.print(" Data: "); Serial.print(mydata.data); Serial.println(); digitalWrite(led_pin, LOW); sprintf(buf, "GET /objects/?script=easyRF&did=%u&dest=%u&pid=%u&c=%u&d=%i HTTP/1.0", (int)mydata.device_id, (int)mydata.destination_id, (int)mydata.packet_id, (int)mydata.command, (int)mydata.data); Serial.println(buf); // HTTP- ( ethernet-shield- Serial.println(); } }
рд╡рд╣ рд╕рдм рд╣реИ! рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдЪреАрдЬ рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдЧреЗ рдХрд╛ рд╡рд┐рдХрд╛рд╕
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХрдИ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреИрдХреЗрдЬ рдХреА рдореВрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рднреАред
рдорди рдореЗрдВ рдЖрдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдореБрдЭреЗ рджреЗрдВ:
* "рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп" рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рдиреЛрдбреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг (рд╣рдо рдПрдХ рд╣реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд░рд┐рд╕реАрд╡рд░ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рддрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЯреЛрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рд╡рд┐рддрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ)
* рд╣рдо рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
* рд╣рдо рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ "рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рджреВрд╕рд░реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рджреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ "рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдореЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдФрд░ рдПрдХ рдпреБрдЧреНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ EEPROM рдХреЛ рд▓реЗрдЦрди)
рд╡рд╣ рд╕рдм рд╣реИред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!