рд╣рдо рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдиреВрд▓рд╛рдЗрдЯ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдФрд░ рд╡реЗрдмрд┐рдпреЛрдкреА)

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


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛:



  • ( ): RPI + WebIOPi (UART+REST) + NooLite
  • : NooLite тАФ
  • ( , ): Android, WEB-, bash shell (python script)

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

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛


  • рдПрдХ рдирдП рднрд╡рди рдореЗрдВ рдорд░рдореНрдордд рдХреЗ рдмрд┐рдирд╛ 2-рдХрдорд░рд╛ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ P44T
  • рдЖрд░рдкреАрдЖрдИ (рдмреНрдпрд╛рдЬ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)
  • рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░рдХрд╛рд╢ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛

рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪреБрдирд╛рд╡ NooLite рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛:
  • рд╕рдорд╛рди рд╕рд┐рд╕реНрдЯрдо (Z-Wave, EnOcean, ZigBee) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдХреАрдордд
  • рдореБрдЭреЗ рдмреЗрд▓рд╛рд░реВрд╕ рдореЗрдВ рдмрдиреЗ рд╕рд╛рдорд╛рди рдкрд░ рднрд░реЛрд╕рд╛ рд╣реИ
  • рдЦреБрд▓рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓
  • рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг
  • 433 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ SCRF рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдкрдХ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ

рдореИрдВрдиреЗ рд╕рднреА рдЕрдиреБрдорд╛рдиреЛрдВ рдФрд░ рдЕрдХрд▓реНрдкрдиреАрдп рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдореГрджреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╣реЛрдо рдСрдЯреЛрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдЖрд░рдПрдо 9-рдЖрдзрд╛рд░рд┐рдд рд╡реАрд░реЗрди рдмреЛрд░реНрдб рдордВрдЪ рдкрд░ рднреА рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ ред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рддреНрдпрд╛рд░реЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛ - рдПрдХ 433 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓, рдЬреЛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ NooLite рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЖрд░рдкреАрдЖрдИ рд╣реИ, рд╣рдо рдЗрд╕ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред
рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ "рд╕реНрдорд╛рд░реНрдЯ" рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1. рджреЛ-рдХрдорд░реЗ рд╡рд╛рд▓реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рдкреНрд░рдХрд╛рд╢ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВ
  2. RPI рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд░рдиреЗ рдФрд░ рдХрдо-рдзрд╛рд░рд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
  3. рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдЪреБрдиреЗрдВ
  4. рдЦрд░реАрджрд╛рд░реА рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛
  5. рдЕрдкрдиреА рдкрддреНрдиреА рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рд╕рдордиреНрд╡рдп рдХрд░реЗрдВ
  6. рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рдЦрд░реАрджреЗрдВ
  7. рдмрд╛рдБрдз рд░рд┐рдореВрд╡ рдФрд░ рдЖрд░рдкреАрдЖрдИ рдПрдХреАрдХрд░рдг рдбрд┐рдмрдЧ> рдиреВрд▓рд╛рдЗрдЯ
  8. рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реНрд╡рд┐рдЪ рдвреВрдВрдвреЗрдВ рдФрд░ рдЦрд░реАрджреЗрдВ
  9. рдкрд╛рд╡рд░ рдмреНрд▓реЙрдХ рдФрд░ рд╕реНрд╡рд┐рдЪ рд▓рдЧрд╛рдПрдВ
  10. Android рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ

рдЖрдЗрдЯрдо 1 рдФрд░ 4-6 рдХреЛ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреАрдордд рдЬрд╛рд░реА рдХрд░реЗрдВ:
  • рдЖрд░рдкреАрдЖрдИ [1 рдкреАрд╕реА]
  • NooLite MT1132 рдореЙрдбреНрдпреВрд▓ [1 140 pc X 1 рдкреАрд╕реА] 1 140 11
  • рдкрд╛рд╡рд░ рдмреНрд▓реЙрдХ NL [1 240 11 X 11 рдкреАрд╕реА] 13 640 240
  • рд╕реНрдЯреЗрд╢рдирд░реА рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдПрдирдПрд▓ [1 340 7 рдПрдХреНрд╕ 7 рдкреАрд╕реА] 9 380 [
  • рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХрд┐рдЪреЗрди рдПрдирдПрд▓ [1 550 key рдПрдХреНрд╕ 1 рдкреАрд╕реА] 1 550 NL
  • рдореЛрд╢рди рд╕реЗрдВрд╕рд░ NL [1 550 тВ╜ X 1 PC] 1 550 550
  • рдмрдврд╝рддреЗ рдмрдХреНрд╕реЗ, рд╕рдорд░реНрдерди, рдХреАрдмреЛрд░реНрдб / рдмрдЯрди рдореЙрдбреНрдпреВрд▓ (рд╕реНрд╡рд┐рдЪ), рдлреНрд░реЗрдо (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЦрд░реАрджреЗ рдЧрдП)
  • рдПрдХ 3 рдбреА рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд - рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдХреБрд▓: 3 000 ~ рд╕реЗ ~ 27 000 controller + рдирд┐рдпрдВрддреНрд░рдХред

рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдкреНрд░рдХрд╛рд╢ рдкрд░рд┐рджреГрд╢реНрдп


рдПрдХ рдмреЗ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдХреЛрдиреЗ рджреЛ-рдХрдХреНрд╖ рдмрдирд┐рдпрд╛рди P44T рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рд▓реЙрдЬрд┐рдпрд╛, рдмрд╛рдерд░реВрдо рдФрд░ рд╢реМрдЪрд╛рд▓рдп рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдХрдорд░реЛрдВ рдореЗрдВ NooLite рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред
рдЧрд▓рд┐рдпрд╛рд░рд╛

рд░рд┐рд▓реЗ рдореЛрдб (рдСрди / рдСрдл) рдХреЗ рд╕рд╛рде 2 рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБред
рдПрдХ рдирд╣реАрдВ рддреЛ-рдЙрдЬреНрдЬреНрд╡рд▓ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ рдХреЛ PM111 рдЧрддрд┐ рд╕рдВрд╡реЗрджрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред рдпрд╣ рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рд░рд╛рдд рдХреА рднреВрдЦ рдХреА рд░реЛрд╢рдиреА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд░рд╛рдд рдХреЗ рдкрдерд┐рдХ рдХреЗ рдорд╛рд░реНрдЧ рдХреЛ рд░реЛрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рд╛рдордиреЗ рдХреЗ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрд╡рд┐рдЪ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдкрд░рд┐рджреГрд╢реНрдп рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП "рдкреВрд░реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ рд░реЛрд╢рдиреА рдмрдВрдж рдХрд░реЗрдВред"
рдЬрдм рдЖрдк рдХрдорд░реЗ рдФрд░ рд░реЛрд╢рдиреА рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдерд░реНрдорд▓ рдореЛрд╢рди рд╕реЗрдВрд╕рд░ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб (рдерд░реНрдорд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЧрддрд┐ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рджрд┐рди рдХреЗ рд╕рдордп рдореЗрдВ рдЧрд▓рд┐рдпрд╛рд░реЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЭрдкрдХреА рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рд╕реЗрдВрд╕рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ:
рдпрджрд┐ PM111 рд╕реЗрдВрд╕рд░ рдХреЗ рдкрд╛рд╕ рд░реЛрд╢рдиреА Illuminance рдирд┐рдпрд╛рдордХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╕реЗрдВрд╕рд░ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рд╣реИред рдЗрд╕реА рд╕рдордп, рдЗрд╕рдХреА рд╡рд░реНрддрдорд╛рди рдЦрдкрдд рдиреНрдпреВрдирддрдо (1 ╬╝A рд╕реЗ рдХрдо) рд╣реИ, рдФрд░ рдерд░реНрдорд▓ рдореЛрд╢рди рд╕реЗрдВрд╕рд░ рдЕрдХреНрд╖рдо рд╣реИред рдЬрдм рд░реЛрд╢рдиреА рдПрдХ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрддрд░ рд╕реЗ рдиреАрдЪреЗ рдЖрддреА рд╣реИ, рддреЛ рд╕реЗрдВрд╕рд░ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред

рд╢реМрдЪрд╛рд▓рдп рдФрд░ рдмрд╛рдерд░реВрдо рдореЗрдВ рд░реЛрд╢рдиреА рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реНрдерд┐рд░ рд╕реНрд╡рд┐рдЪ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рд╢реМрдЪрд╛рд▓рдп рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдФрд░ рдкрдВрдЦреЗ рдПрдХ DIN рд░реЗрд▓ рдкрд░ F & F PO-415 рд╕рдордп рд░рд┐рд▓реЗ (рдмреЗрд▓рд╛рд░реВрд╕рд┐рдпрд╛ рднреА) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ ред

рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрдкрд░реНрдХ 6 рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд░рд┐рд▓реЗ рд╕рдВрдкрд░реНрдХ 11, 12 рдмрдВрдж рд╣реИрдВред рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрдкрд░реНрдХ 6 рдХреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдордп рдХреА рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреАрдУ -415 рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдерд┐рд░ рдЧрд▓рд┐рдпрд╛рд░рд╛ рд╕реНрд╡рд┐рдЪ рдПрдХ рдкреБрд╢-рдмрдЯрди рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЛрдИ рдЪрд╛рд▓реВ / рдмрдВрдж рд░рд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрдЯрди рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЕрдЧрд░ рд╣рдореЗрдВ рдореЛрд╢рди рд╕реЗрдВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд╛рд▓реВ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рд╕реЗрдВрд╕рд░ рдЯрд╛рдЗрдорд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрдИ рдорд┐рдирдЯреЛрдВ рддрдХ рдкреНрд░рдХрд╛рд╢ рдмрдВрдж рди рдХрд░реЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдВрдЬреА рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИред
рд╣реЙрд▓ рдиреАрдЪреЗ рдХреБрд▓:
  • рд░рд┐рд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреА рджреЛ рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдЗрдпрд╛рдБ 200 W ( SU111-200 рд░рд┐рд▓реЗ рдореЛрдб рдореЗрдВ)
  • рдПрдХ рд╕реНрдерд┐рд░ 3-рдмрдЯрди рд╕реНрд╡рд┐рдЪ ( PK313 рд░рд┐рдореЛрдЯ ):
    • рдмрдЯрди 1 - рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ рдкрд░ / рдмрдВрдж рдкреНрд░рдХрд╛рд╢ 1
    • рдмрдЯрди 2 - рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ рдкрд░ / рдмрдВрдж рдкреНрд░рдХрд╛рд╢ 2
    • рдмрдЯрди 3 - рдкреВрд░реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдмрдВрдж (рд╕реНрдХреНрд░рд┐рдкреНрдЯ)



рд░рд╕реЛрдИ

рддреАрди рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ:
  • рдЯреЗрдмрд▓ рдХреЗ рдКрдкрд░ рджреАрдкрдХ ( SU111-200 рд░рд┐рд▓реЗ рдореЛрдб)
  • рдЦрд┐рдВрдЪрд╛рд╡ рдЫрдд рдореЗрдВ рд░реЛрд╢рдиреА ( SU111-200 рд░рд┐рд▓реЗ рдореЛрдб)
  • рд░рд╕реЛрдИ рдХреА рдХрд╛рдордХрд╛рдЬреА рд╕рддрд╣ рдХреЛ рд░реЛрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА ( SU111-200 рд░рд┐рд▓реЗ рдореЛрдб)

рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд░рд╕реЛрдИ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рд╕реНрдерд┐рдд 3-рдмрдЯрди рд╕реНрд╡рд┐рдЪ ( PK311 рд░рд┐рдореЛрдЯ ) рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдФрд░ рдмрд╛рд▓рдХрдиреА

рд░рд┐рд▓реЗ рдореЛрдб рдореЗрдВ рджреЛ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ ( SU111-200 ):
  • рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдореЗрдВ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛
  • рдмрд╛рд▓рдХрдиреА рдкрд░ рд░реЛрд╢рдиреА

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ рдХреЛ 2 рд╕реНрд╡рд┐рдЪ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  • рдмрд╛рд▓рдХрдиреА рдкрд░ 2-рдмрдЯрди рд╕реНрдерд┐рд░ рд╕реНрд╡рд┐рдЪ ( PK313 рд░рд┐рдореЛрдЯ ):
    • рдмрдЯрди 1 - рдмрд╛рд▓рдХрдиреА рдкрд░ / рдмрдВрдж рдкреНрд░рдХрд╛рд╢
    • рдмрдЯрди 2 - рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ / рдмрдВрдж

  • рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд░реЗ ( PK314 рд░рд┐рдореЛрдЯ ) рдореЗрдВ 2-рдХреБрдВрдЬреА рд╕реНрдерд┐рд░ рд╕реНрд╡рд┐рдЪ :
    • рдХреБрдВрдЬреА 1 - рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ / рдмрдВрдж
    • рдХреБрдВрдЬреА 2 - рдмрд╛рд▓рдХрдиреА рдкрд░ / рдмрдВрдж рдкреНрд░рдХрд╛рд╢



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

рдзрд╛рд░рд╛ 1 (рдмрд┐рд╕реНрддрд░)
рдЖрдорддреМрд░ рдкрд░ рдмрд┐рдЬрд▓реА рдХреЗ рдмреНрд▓реЙрдХ рдкреНрд░рдХрд╛рд╢ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ - рдПрдХ рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИред рдореЗрд░реЗ рдкреНрд░рдХрд╛рд╢ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реНрдХ рд╕реЗ рдПрдХ рдкреНрд░рд╕реНрдерд╛рди рд╣реИред рдмреЗрдбрд░реВрдо "рдЦрдВрдб 1" рдореЗрдВ рджреЛ рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рджреАрдкрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдордВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдзрд╛рд░рд╛ 2 (рдмреЗ рд╡рд┐рдВрдбреЛ)
рд╕реНрдерд┐рд░ рд╕реНрд╡рд┐рдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдПрдХ рдмреИрдХрдЕрдк рдХрдВрд╕реЛрд▓ рдФрд░ рдЖрд░рдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЙрдХреЗрдЯ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рдЪреЗрди рдХреЗ рд▓рд┐рдП:
  • рдмрдЯрди рдП (рджрд╛рд▓рд╛рди рдореЗрдВ рдФрд░ рд░рд╕реЛрдИ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░реЗрдВ)
  • рдмрдЯрди рдмреА (рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдореЗрдВ рдФрд░ рдмрд╛рд▓рдХрдиреА рдкрд░ рдкреНрд░рдХрд╛рд╢ рдмрдВрдж / рдЪрд╛рд▓реВ рдХрд░реЗрдВ)
  • рдмрдЯрди рд╕реА (рдмреЗрдбрд░реВрдо рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░реЗрдВ)


рдЖрд░рдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХрдо-рд╡рд░реНрддрдорд╛рди рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдФрд░ рдиреВрд▓рд╛рдЗрдЯ рд╕реА рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛


рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛, рдПрдХреАрдХрд░рдг рд╕рд░рд▓ рд╣реИред NooLite рдореЗрдВ MT1132 рдореЙрдбреНрдпреВрд▓ рд╣реИ ред рдореЙрдбреНрдпреВрд▓ рдХреБрдЫ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ RPI рд╣реИ, рд╣рд╡рд╛ рдХреЛ рдХрд╛рд░реНрдпрдХрд╛рд░реА рдЙрдкрдХрд░рдгреЛрдВ (рдкрд╛рд╡рд░ рдмреНрд▓реЙрдХреЛрдВ) рдкрд░ рдПрдХ рдХрдорд╛рдВрдб рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ рдФрд░ OK / r \ n рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ ред
рдореЙрдбреНрдпреВрд▓ рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ (VCC Upit)2.7-5.5 рд╡реА
рдЖрд░рдПрдХреНрд╕ рдкрд░ рдЗрдирдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ рд░реЗрдВрдЬ0 - рдКрдкрд░
рдЯреАрдЯреАрдПрд▓ рд╣рд╛рдИ рдПрд▓рд╡реАрдПрд▓ (рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ) рдЙрдкрд┐рдЯ = 5 рд╡реА рдкрд░2 - рдЕрдкрд┐рдЯ (5 рд╡реА)
TTL рдХрдо LVL (рддрд╛рд░реНрдХрд┐рдХ рд╢реВрдиреНрдп) Upit = 5 V рдкрд░0-0.8 рд╡реА
TTL рдЙрдЪреНрдЪ LVL (рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ) рдЙрдкрд┐рдд = 3.3 V рдкрд░2-3.3 рд╡реА
TTL рдХрдо LVL (рддрд╛рд░реНрдХрд┐рдХ рд╢реВрдиреНрдп) Upit = 3.3 V рдкрд░0-0.8 рд╡реА
UART рдХреА рдЧрддрд┐9600 рдмреЙрдб


рдЪреВрдВрдХрд┐ RPART UART рд▓рд╛рдЗрдиреЗрдВ 3.3 V рдХреЗ TTL рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо 3.3 V рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ рдХреА U рд╢рдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

рдЖрдк MT1132 рдкрд░ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: VCC, GND рдФрд░ RX, рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЯ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдРрд╕рд╛ рдХрд┐рдпрд╛ рдерд╛ - рдореИрдВрдиреЗ MT1132 рд╕реЗ рдЙрддреНрддрд░ "рдУрдХреЗ \ r \ n" рдирд╣реАрдВ рдкрдврд╝рд╛, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдВрд▓рдЧреНрди рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИ рдХреЗ рд╕рдВрдХреЗрддрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред "рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдХрдорд╛рдВрдб рдХреА рд╕рдлрд▓ рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░, рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИ рдкрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрд▓рдИрдбреА рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдирд┐рдорд┐рд╖ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЕрдиреНрдп рдмрд┐рдВрджреБ, рдпреВ рд╡реА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд░реЗрдбрд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХреА рд╢рдХреНрддрд┐ 3.3 V рд╕реЗ 3.3 mW, U рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде 5 V рд╕реЗ 5 mWред рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИ рдХреА рдЕрдзрд┐рдХрддрдо рджреВрд░реА 70 рдореАрдЯрд░ рд╣реИред

рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЯ рдореЗрдВ 12 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ:
ST, B0, B1, B2, B3, B4, B5, B6, B7, B8, CS, SP
ST - рдмрд╛рдЗрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрд╢рд╛ 85
B0..B8 - рдкреЗрд▓реЛрдб (рдирд┐рдпрдВрддреНрд░рдг рдЖрджреЗрд╢)
CS - рд░рд╛рд╢рд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдкрд╣рд▓реЗ 10 рдмрд╛рдЗрдЯреНрд╕ (рдПрд╕рдЯреА рд╕реЗ рдмреА 8)
рдПрд╕рдкреА рдХреЗ рдпреЛрдЧ рдХреА рдХрдо рдмрд╛рдЗрдЯ - рдмрд╛рдЗрдЯ рдХреЛ рд░реЛрдХреЗрдВред
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдмреА 1 - рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдг рдХрдорд╛рдВрдб:
  • 0 - рд▓реЛрдб рдХреЛ рдмрдВрдж рдХрд░реЗрдВ
  • 2 - рд▓реЛрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ
  • 4 - рд▓реЛрдб рдХреЛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдХрд░реЗрдВ
  • 9 - decoupling (рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИ рдХреА рд╕реНрдореГрддрд┐ рд╕реЗ рдкрддреЗ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ)
  • 15 - рдмрдВрдзрди (рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдкрддрд╛ рд░рд┐рдХреЙрд░реНрдб)

рдмреА 4 - рдЪреИрдирд▓ рдХрд╛ рдкрддрд╛ (0 рд╕реЗ 31 рддрдХ)ред рдХреЗрд╡рд▓ 32 рдЪреИрдирд▓ред
рдЪреЗрдХрд╕рдо рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдиреНрдп рдмрд╛рдЗрдЯреНрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗред
B0 - рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдореЛрдб рдХреА рд╕реНрдерд╛рдкрдирд╛ред
рдпрджрд┐ рдорд╛рди 80 (0x50) B0 рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ:
  • рджреЛрд╣рд░рд╛рд╡ рдХреА рд╕рдВрдЦреНрдпрд╛ - 2
  • 2-1000 рдмреАрдкреАрдПрд╕ рдмрд┐рдЯрд░реЗрдЯ рдХрд░реЗрдВ
  • рдореЛрдб 0 - рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬреЗрдВ


рдирддреАрдЬрддрди, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА ред
рд╡рд┐рджреНрдпреБрдд рдкреИрдирд▓ рдореЗрдВ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ

рдЖрдВрддрд░рд┐рдХ рд╕реНрд╡рд┐рдЪрдмреЛрд░реНрдб рдореЗрдВ рдПрдХ рдХрдордЬреЛрд░ рдзрд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
  • RPI рдбреАрдЖрдИрдПрди рд░реЗрд▓ рдкрд░ рдПрдХ 3 рдбреА рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ рдореБрджреНрд░рд┐рдд рджреЛрд╕реНрддреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдХреЗ рдШреБрдбрд╝рд╕рд╡рд╛рд░ рд╣реИ
  • рд╣рд╡рд╛ рдореЗрдВ рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MT1132 рдореЙрдбреНрдпреВрд▓
  • рдПрдХ рд░реВрдЯрд░ рдФрд░ рдЖрд░рдкреАрдЖрдИ рдХреА рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдбреАрдЖрдИрдПрди рдкрд░ рджреЛ ~ 220 рдХреБрд░реНрд╕рд┐рдпрд╛рдВ


рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХреАрдХрд░рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд░реИрдкрд░ рдХрд╛ рдЪрдпрди


рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ:
  • рдЖрд░рдкреАрдЖрдИ
  • MT1132 рдореЙрдбреНрдпреВрд▓
  • рдкрд┐рди рд╕реЗ MT1132 рдФрд░ RPI GPIO рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорджрд░-рдЯреВ-рдорджрд░ рд╡рд╛рдпрд░
  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХрд┐рд╕реА рднреА рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рдЖрд░рдкреАрдЖрдИ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде
  • SHELL (bash, csh, korn, рдЖрджрд┐) RPI рдХрдВрд╕реЛрд▓ (SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзрд╛ рдХреАрдмреЛрд░реНрдб рдпрд╛ рд░рд┐рдореЛрдЯ) рддрдХ рдкрд╣реБрдВрдЪ
  • рддреИрдпрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЬ
  • рдЖрд░рдкреАрдЖрдИ рдореЗрдВ GPIO рд╣реЗрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ UART рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдЫрд╡рд┐ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рд░реВрдЯрдмреБрдХ рдХреЗ рдиреАрдЪреЗ рд░реВрдЯрдмреБрдХ-рдореЗрдЬреА рдЗрдореЗрдЬ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реБрдП рдореИрдХрдмреБрдХ рдПрдпрд░ рдкрд░ рдПрдХ рд╣рд╛рд░реНрдб рд╣рд╛рд░реНрдбрд╡реНрдпреВ рдмрдЧ рдХреЛ рдкрдХрдбрд╝рд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд╛рдЗрдЯ рдкреНрд░реЛрдЯреЗрдХреНрд╢рди, рдбреЗрдЯрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рд░ рд╕реЗ рд╕реЛрдЪреЗрдВ):
dd bs=1m if=2015-02-16-raspbian-wheezy.img of=/dev/disk2

рдХрдВрд╕реЛрд▓ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛:
dd: /dev/disk2: Permission denied 

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

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореБрдЭреЗ WEB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ REST рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдПрдХ рдмреЙрдХреНрд╕ рд╕реЗ UART рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рдкрд╕рдВрдж WebIOPi рдкрд░ рдЧрд┐рд░ рдЧрдИ ред

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



рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WebIOPi рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдХрд░рдирд╛:
  1. рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ WebIOPi рдврд╛рдВрдЪреЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
    • рд╕реНрдерд╛рдкрдирд╛
    • рдЪрд▓ рд╡реЗрдмрд┐рдпреЛрдкреА (рдбреЗрдорди)
    • рдмреВрдЯ рдкрд░ рдСрдЯреЛ рд╢реБрд░реВ

  2. UART рдХреЛ 3 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ: / etc / inittab, /boot/cmdline.txt, / etc / webiopi / configред рдХрджрдо:
    • рдСрди-рдмреЛрд░реНрдб uart
    • WebIOPi рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

  3. рд╣рдо рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ
    • рд╕реАрд░рд┐рдпрд▓ рд▓реВрдкрдмреИрдХ рдЯреНрд░рд┐рдХ (UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрдж рдХреЛ "рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреЗрдЬреЗрдВ" рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рд╕реЗрдХреНрд╢рди рдореЗрдВ WEBIOPi рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝реЗрдВ)
    • рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ



UART рд▓реВрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдореНрдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕рдВрдХрд▓рд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо RPI рд╢реЗрд▓ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗред
MT1132 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП RPI рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
#!/usr/bin/python
import sys, getopt
def main(argv):
   ch = ''
   cmd = ''
   try:
      opts, args = getopt.getopt(argv,"h:",["ch=","cmd="])
   except getopt.GetoptError:
      print 'mt1132.py --ch <channel_number> --cmd <ON/OFF/BIND/UNBIND>'
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print 'mt1132.py --ch <channel_number> --cmd <ON/OFF/BIND/UNBIND>'
         sys.exit()
      elif opt in ("--ch"):
         ch = arg
      elif opt in ("--cmd"):
         cmd = arg
   print 'Channel: ', ch
   print 'Command: ', cmd
   if cmd=='ON' and ch!='':
        if ch=='0':
                print 'Switch ON channel 0'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a7, 0x00aa])
        elif ch=='1':
                print 'Switch ON channel 1'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00a8, 0x00aa])
        elif ch=='2':
                print 'Switch ON channel 2'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00a9, 0x00aa])
        elif ch=='3':
                print 'Switch ON channel 3'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00aa, 0x00aa])
        elif ch=='4':
                print 'Switch ON channel 4'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00ab, 0x00aa])
        elif ch=='5':
                print 'Switch ON channel 5'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00ac, 0x00aa])
        elif ch=='6':
                print 'Switch ON channel 6'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00ad, 0x00aa])
        elif ch=='7':
                print 'Switch ON channel 7'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])
        elif ch=='8':
                print 'Switch ON channel 8'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00af, 0x00aa])
        elif ch=='9':
                print 'Switch ON channel 9'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00b0, 0x00aa])
        elif ch=='10':
                print 'Switch ON channel 10'
                serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00b1, 0x00aa])
   if cmd=='OFF' and ch!='':
        if ch=='0':
                print 'Switch OFF channel 0'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a5, 0x00aa])
        elif ch=='1':
                print 'Switch OFF channel 1'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00a6, 0x00aa])
        elif ch=='2':
                print 'Switch OFF channel 2'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00a7, 0x00aa])
        elif ch=='3':
                print 'Switch OFF channel 3'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00a8, 0x00aa])
        elif ch=='4':
                print 'Switch OFF channel 4'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00a9, 0x00aa])
        elif ch=='5':
                print 'Switch OFF channel 5'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00aa, 0x00aa])
        elif ch=='6':
                print 'Switch OFF channel 6'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00ab, 0x00aa])
        elif ch=='7':
                print 'Switch OFF channel 7'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00ac, 0x00aa])
        elif ch=='8':
                print 'Switch OFF channel 8'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00ad, 0x00aa])
        elif ch=='9':
                print 'Switch OFF channel 9'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])
        elif ch=='10':
                print 'Switch OFF channel 10'
                serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])
   if cmd=='BIND' and ch!='':
        if ch=='0':
                print 'BIND channel 0'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00b4, 0x00aa])
        elif ch=='1':
                print 'BIND channel 1'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00b5, 0x00aa])
        elif ch=='2':
                print 'BIND channel 2'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00b6, 0x00aa])
        elif ch=='3':
                print 'BIND channel 3'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00b7, 0x00aa])
        elif ch=='4':
                print 'BIND channel 4'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00b8, 0x00aa])
        elif ch=='5':
                print 'BIND channel 5'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00b9, 0x00aa])
        elif ch=='6':
                print 'BIND channel 6'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00ba, 0x00aa])
        elif ch=='7':
                print 'BIND channel 7'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00bb, 0x00aa])
        elif ch=='8':
                print 'BIND channel 8'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00bc, 0x00aa])
        elif ch=='9':
                print 'BIND channel 9'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00bd, 0x00aa])
        elif ch=='10':
                print 'BIND channel 10'
                serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00be, 0x00aa])
   if cmd=='UNBIND' and ch!='':
        if ch=='0':
                print 'UNBIND channel 0'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])
        elif ch=='1':
                print 'UNBIND channel 1'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00af, 0x00aa])
        elif ch=='2':
                print 'UNBIND channel 2'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00b0, 0x00aa])
        elif ch=='3':
                print 'UNBIND channel 3'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00b1, 0x00aa])
        elif ch=='4':
                print 'UNBIND channel 4'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00b2, 0x00aa])
        elif ch=='5':
                print 'UNBIND channel 5'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00b3, 0x00aa])
        elif ch=='6':
                print 'UNBIND channel 6'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00b4, 0x00aa])
        elif ch=='7':
                print 'UNBIND channel 7'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00b5, 0x00aa])
        elif ch=='8':
                print 'UNBIND channel 8'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00b6, 0x00aa])
        elif ch=='9':
                print 'UNBIND channel 9'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00b7, 0x00aa])
        elif ch=='10':
                print 'UNBIND channel 10'
                serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00b8, 0x00aa])
if __name__ == "__main__":
   main(sys.argv[1:])


рд╢реЗрд▓ рдХрдВрд╕реЛрд▓ рд╕реЗ MT1132 рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

mt1132.py --ch <channel_number> --cmd <ON/OFF/BIND/UNBIND>

рд╣рдо REST API
рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ WebIOPi рдлреНрд░реЗрдорд╡рд░реНрдХ REST рд╢реИрд▓реА рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдмрдВрдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ , рдЬреЛ рдореЛрдмрд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмрдиреНрдзрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ REST API рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:
  • GPIO рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  • GPIO рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ
  • GPIO рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  • GPIO рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ
  • рдПрдХрд▓ рдкрд▓реНрд╕ рдЖрдЙрдЯрдкреБрдЯ
  • рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо
  • рдПрдХ рдХрд░реНрддрд╡реНрдп рдЪрдХреНрд░ рдЕрдиреБрдкрд╛рдд рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ PWM
  • рд╕рд░реНрд╡реЛ рдХреЗ рд▓рд┐рдП рдХреЛрдг рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ PWM
  • рд╕рд░реНрд╡рд░ рдкрд░ рдореИрдХреНрд░реЛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ
  • рдкреВрд░реНрдг GPIO рд╕реНрдерд┐рддрд┐ / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рд╣рдорд╛рд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ "рд╕рд░реНрд╡рд░ рдкрд░ рдореИрдХреНрд░реЛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ"ред рд╡рд┐рд╡рд░рдг рдЧреИрд░-рдЪрд┐рдХрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
HTTP POST / macros / (рдореИрдХреНрд░реЛ) / (args)
  • рдореИрдХреНрд░реЛ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ

рдЪреВрдВрдХрд┐ (рдореИрдХреНрд░реЛ) рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо REST "рдкреВрд░реНрдг GPIO рд╕реНрдерд┐рддрд┐ / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ" рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ HTTP GET / * рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдХрд┐рд╕реА рднреА REST API рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ Chrome рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП DHC рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рд╣рдо рд╡рд░реНрддрдорд╛рди рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

WebIOPi рд╡рд┐рдиреНрдпрд╛рд╕ (/ etc / webiopi / config)

[рдЙрдкрдХрд░рдгреЛрдВ] рдЦрдВрдб рдореЗрдВ :
рдПрдХ рдЬреЛрдбрд╝реЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ (UART GPIO) - рдпрд╣ рд╣рдорд╛рд░рд╛ MT1132 рдореЙрдбреНрдпреВрд▓, рдЬрд╣рд╛рдВ рд╣реИ
ttyAMA0 рдбрд┐рд╡рд╛рдЗрд╕ (рдмрдВрджрд░рдЧрд╛рд╣) рдХрд┐ Raspbian рдЧрд┐рд░реА рджреЗрдЦрддрд╛ рд╣реИ,
baudrate рдореЗрдВ рдЧрддрд┐ рд╣реИ рдЗрд╕ UART рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреЙрдб рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рдиред
9600 рдмреЙрдб / (8 + 1 рд╕реНрдЯрд╛рд░реНрдЯ рдмрд┐рдЯ + 1 рд╕реНрдЯреЙрдк рдмрд┐рдЯ) = 960 рдмрд╛рдЗрдЯреНрд╕ / рдПрд╕ред
[SCRIPTS] (рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдЕрдиреБрднрд╛рдЧ рдореЗрдВ :
рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдврд╛рдБрдЪреЗ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ myscrypt = /home/pi/smarthome/python/mt1132.py рдЬреЛрдбрд╝реЗрдВ ред
[REST] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ (REST API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPIO рдирд┐рдпрдВрддреНрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рд╡реИрдХрд▓реНрдкрд┐рдХ):
gpio-post-value = false - REST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPIO рдкрд┐рди рдкрд░ рддрд╛рд░реНрдХрд┐рдХ LOW / рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рд░реЛрдХ;
gpio-post-function = false - REST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPIO рдкрд┐рди рдкрд░ IN / OUT рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдПрдВред
рд╢реЗрд╖ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИрдВред
[COAP] :
рдореИрдВрдиреЗ рдЯрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ред рдЬрдмрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреНрдпрд╛ рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛: oAP - рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡реЗрдм рдЕрдВрддрд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╡рд╢ рдиреЛрдбреНрд╕ рдФрд░ рд╡рд┐рд╡рд╢ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЗрдВрдЯрд░рдиреЗрдЯ рдСрдл рдерд┐рдВрдЧреНрд╕ , рдорд╢реАрди-рдЯреВ-рдорд╢реАрди (рдПрдо 2 рдПрдо) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдКрд░реНрдЬрд╛ рдФрд░ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдСрдЯреЛрдореЗрд╢рдиред тАЭ
рд╣реЛрд░рд╛рдм рдкрд░ рд╢рд╛рдпрдж рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрдкрдпреЛрдЧреА рдорд╛рдорд▓реЗ рдЦреЛрд▓рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛрдЬрд╝ рдЬреЛрдбрд╝реЗрдВред
# Channel 0	
@webiopi.macro	
def ch0(cmd):
	if cmd=='on':
		serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a7, 0x00aa])
		webiopi.sleep(1)
		resp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString()
	if cmd=='off':
		serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a5, 0x00aa])
		webiopi.sleep(1)
		resp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString()
	if cmd=='unbind':
		serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])
		webiopi.sleep(1)
		resp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString()
	if cmd=='bind':
		serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00b4, 0x00aa])
		webiopi.sleep(1)
		resp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString()
	return resp 


рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЛрдз

рд╣рдо рдбреАрдПрдЪрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рдмреНрд▓реЙрдХ рдХреЛ 3 рдЪреИрдирд▓ рдиреВрд▓рд╛рдЗрдЯ рдПрдордЯреА 1132 рдХреЗ рдкрддреЗ рдХреЛ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрд╡рд░ рдмреНрд▓реЙрдХ, рдЬрд┐рд╕ рдкрд░ рдмрдВрдзрди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВред
рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдг рдкреИрдХреЗрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ MT1132 рдореЙрдбреНрдпреВрд▓ UART TX рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPIO UART RX "рдУрдХреЗ" рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рдмрд┐рдЬрд▓реА рдЗрдХрд╛рдИ рдЪреИрдирд▓ рдкрддреЗ рдХреЛ рдпрд╛рдж рдХрд░реЗрдЧреА рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдЧреНрд░реАрди рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рддреАрд╡реНрд░рддрд╛ рд╕реЗ рдмреНрд▓рд┐рдВрдХ рдХрд░реЗрдЧреАред

Android рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдЧреНрд░рд╛рд╣рдХ


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

main.xml AS IS рд╣реИ
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/hl7"
    android:padding="2dp"
    android:clickable="false">

    <!-- -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/r1c1"
            android:textSize="18sp"
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:padding="4dp"
            android:layout_margin="1dp"
            android:text=""
            android:background="@color/hl4"
            android:layout_weight="1"
            android:gravity="center"
            android:textColor="@color/white" />
        <TextView
            android:textColor="@color/white"
            android:textSize="18sp"
            android:id="@+id/r1c2"
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:padding="4dp"
            android:text=" "
            android:layout_margin="1dp"
            android:background="@color/hl4"
            android:layout_weight="2"
            android:gravity="center"/>
        <TextView
            android:textColor="@color/white"
            android:textSize="18sp"
            android:id="@+id/r1c3"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:padding="4dp"
            android:text=""
            android:layout_margin="1dp"
            android:background="@color/hl4"
            android:layout_weight="3"
            android:gravity="center"/>
    </LinearLayout>

    <!--  -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:textColor="@color/black"
            android:textSize="16sp"
            android:text="@string/room1txt"
            android:id="@+id/room1"
            android:layout_weight="1"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:gravity="center"
            android:background="@color/holotheme_color"
            android:textStyle="bold" />
        <LinearLayout
            android:orientation="vertical"
            android:background="@color/hl8"
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:layout_margin="1dp"
            android:gravity="center|top">
            <TextView
                android:layout_width="match_parent"
                android:textColor="@color/hl9"
                android:layout_height="36dp"
                android:text="@string/place1txt"
                android:id="@+id/r1switch1"
                android:textSize="13sp"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
            <TextView
                android:textSize="13sp"
                android:layout_width="match_parent"
                android:layout_height="36dp"
                android:textColor="@color/hl9"
                android:text="@string/place5txt"
                android:id="@+id/r1switch2"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
            <TextView
                android:textSize="13sp"
                android:layout_width="match_parent"
                android:layout_height="36dp"
                android:textColor="@color/hl9"
                android:text="@string/place2txt"
                android:id="@+id/r1switch3"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
        </LinearLayout>
        <LinearLayout
            android:background="@color/hl8"
            android:orientation="vertical"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:layout_margin="1dp">
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="36dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r1b1on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_weight="1"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r1b1off" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="36dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r1b2on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_weight="1"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r1b2off" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="36dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r1b3on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r1b3off" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <!--  -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:textSize="16sp"
            android:text="@string/room2txt"
            android:id="@+id/room2"
            android:layout_weight="1"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:gravity="center"
            android:background="@color/holotheme_color"
            android:textColor="@color/black"
            android:textStyle="bold"/>
        <TextView
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:textSize="13sp"
            android:text="@string/place1txt"
            android:textColor="@color/hl9"
            android:id="@+id/r2switch1"
            android:layout_weight="2"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:gravity="center|left"
            android:background="@color/hl8"/>
        <LinearLayout
            android:background="@color/hl8"
            android:orientation="horizontal"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:layout_margin="1dp">
            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="36dp"
                android:layout_weight="1"
                android:text=""
                android:id="@+id/r2b1on" />
            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="36dp"
                android:text=""
                android:id="@+id/r2b1off" />
        </LinearLayout>
    </LinearLayout>

    <!--  -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:textSize="16sp"
            android:text="@string/room3txt"
            android:id="@+id/room3"
            android:layout_weight="1"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:textColor="@color/black"
            android:gravity="center"
            android:background="@color/holotheme_color"
            android:textStyle="bold"/>
        <TextView
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:textSize="13sp"
            android:textColor="@color/hl9"
            android:text="@string/place1txt"
            android:id="@+id/r3switch1"
            android:layout_weight="2"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:gravity="center|left"
            android:background="@color/hl8"
            android:clickable="true"/>
        <LinearLayout
            android:background="@color/hl8"
            android:orientation="horizontal"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:layout_margin="1dp">
            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="36dp"
                android:layout_weight="1"
                android:text=""
                android:id="@+id/r3b1on" />
            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="36dp"
                android:layout_weight="1"
                android:text=""
                android:id="@+id/r3b1off" />
        </LinearLayout>
    </LinearLayout>

    <!--    -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:textSize="16sp"
            android:text="@string/room4txt"
            android:id="@+id/room4"
            android:layout_weight="1"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:gravity="center"
            android:background="@color/holotheme_color"
            android:textColor="@color/black"
            android:textStyle="bold" />
        <LinearLayout
            android:orientation="vertical"
            android:background="@color/hl8"
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:layout_margin="1dp"
            android:gravity="center">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="37dp"
                android:text="@string/place6txt"
                android:textColor="@color/hl9"
                android:id="@+id/r4switch1"
                android:textSize="13sp"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="37dp"
                android:text="@string/place8txt"
                android:textColor="@color/hl9"
                android:id="@+id/r4switch3"
                android:textSize="13sp"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
            <TextView
                android:textSize="13sp"
                android:layout_width="match_parent"
                android:textColor="@color/hl9"
                android:layout_height="37dp"
                android:text="@string/place7txt"
                android:id="@+id/r4switch2"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
        </LinearLayout>
        <LinearLayout
            android:background="@color/hl8"
            android:orientation="vertical"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:layout_margin="1dp">
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="37dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r4b1on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r4b1off" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="36dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r4b3on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r4b3off" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="36dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r4b2on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r4b2off" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>


    <!--  -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:textSize="16sp"
            android:text="@string/room5txt"
            android:id="@+id/room5"
            android:layout_weight="1"
            android:layout_margin="1dp"
            android:padding="4dp"
            android:gravity="center"
            android:textColor="@color/black"
            android:background="@color/holotheme_color"
            android:textStyle="bold" />
        <LinearLayout
            android:orientation="vertical"
            android:background="@color/hl8"
            android:layout_width="120dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:layout_margin="1dp"
            android:gravity="center">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="36dp"
                android:text="@string/place3txt"
                android:textColor="@color/hl9"
                android:id="@+id/r5switch1"
                android:textSize="13sp"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
            <TextView
                android:textSize="13sp"
                android:layout_width="match_parent"
                android:layout_height="37dp"
                android:textColor="@color/hl9"
                android:text="@string/place4txt"
                android:id="@+id/r5switch2"
                android:padding="4dp"
                android:gravity="center_vertical|left"
                android:background="@drawable/hover1"
                android:clickable="true"/>
        </LinearLayout>
        <LinearLayout
            android:background="@color/hl8"
            android:orientation="vertical"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:layout_margin="1dp">
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="36dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r5b1on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r5b1off" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="37dp">
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text=""
                    android:id="@+id/r5b2on" />
                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:text=""
                    android:id="@+id/r5b2off" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>


OnClick рд╡рд┐рдзрд┐рдпрд╛рдВ рдмрдЯрди рд╕реЗ рдмрдВрдзреА рд╣реИрдВред
@Override
    public void onClick(View v) {
        // define the button switch that invoked the listener by id
        switch (v.getId()) {
            // Buttons room1 
            case R.id.r1b1on: // 
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room1txt)+" > "+r1sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch4url) + "on";
                new ParseTask().execute();
                break;

рд╕реНрд╡рд┐рдЪ рдмрдЯрди рддрддреНрд╡ рдХреЗ рдЖрдИрдбреА рджреГрд╢реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдЯреЛрд╕реНрдЯ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ AsyncTask (рдХреЙрд▓ ParseTask ()ред Execute ();) рдХреЗ рдЕрдВрджрд░ HttpURLConnection рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ RPI рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред HttpURLConnection
рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛
- HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧред
AsyncTask рдХреНрд▓рд╛рд╕ doInBackground рдореЗрдердб - рдПрдХ рдЕрд▓рдЧ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рднрд╛рд░реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ UI рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
HttpURLConnection doInBackground рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рддрдХрдиреАрдХ рдЕрдХреНрд╕рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдИ рдЬрд╛рддреА рд╣реИред
webiopiurl = getString(R.string.ch4url) + "on";

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ strings.xml рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рдХрд░реЗрдВ
<string name="ch4url">http://192.168.1.154:8000/macros/ch4/</string>

рддреЛ рдЪреИрдирд▓ 4 рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг URL рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ
http://192.168.1.154:8000/macros/ch4/on

// HTTP Query to backend in REST style
    private class ParseTask extends AsyncTask<Void, Void, String> {
        HttpURLConnection urlConnection = null;
        BufferedReader reader = null;
        String result = "";
        String BASIC_AUTH = "Basic "
                + Base64.encodeToString((getString(R.string.login) + ":" + getString(R.string.pwd)).getBytes(), Base64.NO_WRAP);

        @Override
        protected String doInBackground(Void... params) {
            //    REST 
            try {
                URL url = new URL(webiopiurl);
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("POST");
                urlConnection.setRequestProperty("Authorization", BASIC_AUTH);
                urlConnection.connect();
                //    backend webiopi
                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();
                reader = new BufferedReader(new InputStreamReader(inputStream));
                String line;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }
                result = buffer.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }

рдХреЛрдб MainActivity.java рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ
package ru.bbq.smarthome_App;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends ActionBarActivity implements View.OnClickListener {
    // Add logger
    public static String LOG_TAG = "my_log";
    public static String webiopiurl = "";
    // switch buttons
    TextView r1sw1;
    TextView r1sw2;
    TextView r1sw3;
    TextView r2sw1;
    TextView r3sw1;
    TextView r4sw1;
    TextView r4sw2;
    TextView r4sw3;
    TextView r5sw1;
    TextView r5sw2;
    // ON OFF buttons
    Button r1b1on;
    Button r1b1off;
    Button r1b2on;
    Button r1b2off;
    Button r1b3on;
    Button r1b3off;
    Button r2b1on;
    Button r2b1off;
    Button r3b1on;
    Button r3b1off;
    Button r4b1on;
    Button r4b1off;
    Button r4b2on;
    Button r4b2off;
    Button r4b3on;
    Button r4b3off;
    Button r5b1on;
    Button r5b1off;
    Button r5b2on;
    Button r5b2off;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // find View-elements and buttons
        r1sw1 = (TextView) findViewById(R.id.r1switch1); // room1switch1
        r1sw2 = (TextView) findViewById(R.id.r1switch2); // room1switch2
        r1sw3 = (TextView) findViewById(R.id.r1switch3); // room1switch3
        r2sw1 = (TextView) findViewById(R.id.r2switch1); // room2switch1
        r3sw1 = (TextView) findViewById(R.id.r3switch1); // room3switch1
        r4sw1 = (TextView) findViewById(R.id.r4switch1); // room4switch1
        r4sw2 = (TextView) findViewById(R.id.r4switch2); // room4switch2
        r4sw3 = (TextView) findViewById(R.id.r4switch3); // room4switch3
        r5sw1 = (TextView) findViewById(R.id.r5switch1); // room5switch1
        r5sw2 = (TextView) findViewById(R.id.r5switch2); // room5switch2
        r1b1on = (Button) findViewById(R.id.r1b1on);    // room1 button1 ON
        r1b1off = (Button) findViewById(R.id.r1b1off);  // room1 button1 OFF
        r1b2on = (Button) findViewById(R.id.r1b2on);    // room1 button2 ON
        r1b2off = (Button) findViewById(R.id.r1b2off);  // room1 button2 OFF
        r1b3on = (Button) findViewById(R.id.r1b3on);    // room1 button3 ON
        r1b3off = (Button) findViewById(R.id.r1b3off);  // room1 button3 OFF
        r2b1on = (Button) findViewById(R.id.r2b1on);    // room2 button1 ON
        r2b1off = (Button) findViewById(R.id.r2b1off);  // room2 button1 OFF
        r3b1on = (Button) findViewById(R.id.r3b1on);    // room3 button1 ON
        r3b1off = (Button) findViewById(R.id.r3b1off);  // room3 button1 OFF
        r4b1on = (Button) findViewById(R.id.r4b1on);    // room4 button1 ON
        r4b1off = (Button) findViewById(R.id.r4b1off);  // room4 button1 OFF
        r4b2on = (Button) findViewById(R.id.r4b2on);    // room4 button2 ON
        r4b2off = (Button) findViewById(R.id.r4b2off);  // room4 button2 OFF
        r4b3on = (Button) findViewById(R.id.r4b3on);    // room4 button3 ON
        r4b3off = (Button) findViewById(R.id.r4b3off);  // room4 button3 OFF
        r5b1on = (Button) findViewById(R.id.r5b1on);    // room5 button1 ON
        r5b1off = (Button) findViewById(R.id.r5b1off);  // room5 button1 OFF
        r5b2on = (Button) findViewById(R.id.r5b2on);    // room5 button2 ON
        r5b2off = (Button) findViewById(R.id.r5b2off);  // room5 button2 OFF

        //assign listeners to buttons
        r1b1on.setOnClickListener(this);
        r1b1off.setOnClickListener(this);
        r1b2on.setOnClickListener(this);
        r1b2off.setOnClickListener(this);
        r1b3on.setOnClickListener(this);
        r1b3off.setOnClickListener(this);
        r2b1on.setOnClickListener(this);
        r2b1off.setOnClickListener(this);
        r3b1on.setOnClickListener(this);
        r3b1off.setOnClickListener(this);
        r4b1on.setOnClickListener(this);
        r4b1off.setOnClickListener(this);
        r4b2on.setOnClickListener(this);
        r4b2off.setOnClickListener(this);
        r4b3on.setOnClickListener(this);
        r4b3off.setOnClickListener(this);
        r5b1on.setOnClickListener(this);
        r5b1off.setOnClickListener(this);
        r5b2on.setOnClickListener(this);
        r5b2off.setOnClickListener(this);
    }

    // Define On ClickView method
    @Override
    public void onClick(View v) {
        // define the button switch that invoked the listener by id
        switch (v.getId()) {
            // Buttons room1 
            case R.id.r1b1on: // 
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room1txt)+" > "+r1sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch4url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r1b1off: // 
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room1txt)+" > "+r1sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch4url) + "off";
                new ParseTask().execute();
                break;
            case R.id.r1b2on: //  
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room1txt)+" > "+r1sw2.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch3url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r1b2off: //  
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room1txt)+" > "+r1sw2.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch3url) + "off";
                new ParseTask().execute();
                break;
            case R.id.r1b3on: // LED 
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room1txt)+" > "+r1sw3.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch2url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r1b3off: // LED 
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room1txt)+" > "+r1sw3.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch2url) + "off";
                new ParseTask().execute();
                break;
            // Buttons room2 
            case R.id.r2b1on:
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room2txt)+" > "+r2sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch6url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r2b1off:
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room2txt)+" > "+r2sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch6url) + "off";
                new ParseTask().execute();
                break;
            // Buttons room3 
            case R.id.r3b1on:
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room3txt)+" > "+r3sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch5url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r3b1off:
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room3txt)+" > "+r3sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch5url) + "off";
                new ParseTask().execute();
                break;
            // Buttons room4 bedroom
            case R.id.r4b1on: //    
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room4txt)+" > "+r4sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch8url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r4b1off: //    
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room4txt)+" > "+r4sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch8url) + "off";
                new ParseTask().execute();
                break;
            case R.id.r4b2on: //    
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room4txt)+" > "+r4sw2.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch7url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r4b2off: //    
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room4txt)+" > "+r4sw2.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch7url) + "off";
                new ParseTask().execute();
                break;
            case R.id.r4b3on: //   dimmer
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room4txt)+" > "+r4sw3.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch9url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r4b3off: //   dimmer
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room4txt)+" > "+r4sw3.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch9url) + "off";
                new ParseTask().execute();
                break;
            // Buttons room5 corridor
            case R.id.r5b1on:
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room5txt)+" > "+r5sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch1url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r5b1off:
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room5txt)+" > "+r5sw1.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch1url) + "off";
                new ParseTask().execute();
                break;
            case R.id.r5b2on:
                Toast.makeText(this, getString(R.string.bon)+" '"+getString(R.string.room5txt)+" > "+r5sw2.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch0url) + "on";
                new ParseTask().execute();
                break;
            case R.id.r5b2off:
                Toast.makeText(this, getString(R.string.boff)+" '"+getString(R.string.room5txt)+" > "+r5sw2.getText()+"'", Toast.LENGTH_SHORT).show();
                webiopiurl = getString(R.string.ch0url) + "off";
                new ParseTask().execute();
                break;
        }
    }

    // HTTP Query to backend in REST style
    private class ParseTask extends AsyncTask<Void, Void, String> {
        HttpURLConnection urlConnection = null;
        BufferedReader reader = null;
        String result = "";
        String BASIC_AUTH = "Basic "
                + Base64.encodeToString((getString(R.string.login) + ":" + getString(R.string.pwd)).getBytes(), Base64.NO_WRAP);
        @Override
        protected String doInBackground(Void... params) {
            //    REST 
            try {
                URL url = new URL(webiopiurl);
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("POST");
                urlConnection.setRequestProperty("Authorization", BASIC_AUTH);
                urlConnection.connect();
                //    backend webiopi
                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();
                reader = new BufferedReader(new InputStreamReader(inputStream));
                String line;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }
                result = buffer.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }

        @Override
        protected void onPostExecute(String str) {
            super.onPostExecute(str);
            //  ,    plain text ( JSON)
            //    log
            Log.d(LOG_TAG, str);
            //  TOAST -   webiopi     MT1132
            Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
        }
    }

}



рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реНрд╡рд┐рдЪ рдвреВрдВрдвреЗрдВ рдФрд░ рдЦрд░реАрджреЗрдВ


рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд┐рд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдиреВрд▓рд╛рдЗрдЯ рдХреАрдмреЛрд░реНрдб рдФрд░ рдкреБрд╢рдмреЙрдЯрди / рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╕реНрд╡рд┐рдЪ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рддреАрди рдореЙрдбреНрдпреВрд▓ (рдмрдЯрди / рдХреБрдВрдЬреА) рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╕реНрд╡рд┐рдЪ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ (рд╕рднреА рд╕реНрд╡рд┐рдЪ рд╕рдорд╛рди рджрд┐рдЦреЗрдВрдЧреЗ)ред
рд╕реНрд╡рд┐рдЪ рдЪреБрдирддреЗ рд╕рдордп, рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
  • рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рджреЛ рд╕реЗ рддреАрди рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛
  • рдмрдЯрди рдФрд░ рдХреАрдмреЛрд░реНрдб рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛

рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП bticino рд▓рд┐рд╡рд┐рдВрдЧрд▓рд╛рдЗрдЯ рд╕реНрд╡рд┐рдЪ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ, NooLite рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдареЗ рдореЙрдбреНрдпреВрд▓ред


рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЫрдд рдкрд░ рд╡рд┐рджреНрдпреБрдд рдЗрдХрд╛рдИред

рдСрди-рд╕рд╛рдЗрдЯ рдбрд┐рдмрдЧрд┐рдВрдЧред

рдЕрдВрджрд░ рд╕реНрдерд┐рдд рдХрдордЬреЛрд░ рд╡рд┐рджреНрдпреБрдд рдзрд╛рд░рд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рджреНрдпреБрдд рдкреИрдирд▓ред

рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

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


All Articles