рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕рд┐рдореБрд▓реЗрд╢рди рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб

рд▓рдВрдмреЗ рд╕рдордп рддрдХ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдорд╛рдЗрдХреНрд░реЛ рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗ рдЧреАрдХреНрд╕, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рдЬреАрд╡рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддреА рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд I / O рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЦрд░реАрджрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ, рдорд╛рдкрдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрд╛рд╣рд┐рдП рдерд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдб рдмреЗрдЪреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣рд╛рдВ, рдЖрдк рд░реИрдкрд┐рдб рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рджрдо рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдкрд╣рд▓реА рдмрд╛рд░, рдореИрдВрдиреЗ рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рджреЛ-рдкрдВрдХреНрддрд┐ рд╡рд╛рд▓реА рдХрдВрдШреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЦреБрдж рдХреЛ рдХрдИ I / O рдкреЛрд░реНрдЯ, SPI, I2C рдФрд░ UART рдмрд╕ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЛ "рдорд╛рдБ-рдорд╛рдБ" рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рддрд╛рд░реЛрдВ рд╕реЗ рдЬреЛрдбрд╝рд╛ред

рдЫрд╡рд┐

рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рддреАрди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмреЛрд░реНрдб рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рдереА, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред

рддреЛ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП:

  • GPIO рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ;
  • рднрд╛рд░ рдкреНрд░рдмрдВрдзрди;
  • 1-рддрд╛рд░ рдмрд╕ рдкрд░ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдХрд╛ рдХрдиреЗрдХреНрд╢рди;
  • рд╡реЛрд▓реНрдЯреЗрдЬ рдорд╛рдк;
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдШрдбрд╝реА;
  • RS485 рдмрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдирд┐рдпрдВрддреНрд░рдг;
  • рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐;

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

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

DS18B20 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреЛрд░реНрдб рд╕реЗ + 3.3V рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдмреЛрд░реНрдб рдореЗрдВ рдмрд╛рд╣рд░реА DS18B20 рд╕реЗрдВрд╕рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рд╡рд╣реА рд╡реЛрд▓реНрдЯреЗрдЬ ADC рдФрд░ рдорд┐рд▓рд╛рди рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдШрдбрд╝реА рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдо рддрд░реНрдХ рд╕реНрддрд░ рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рд╕реА рднреА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрдХрд┐рдЯ рдЪрд╛рд░ рдмрдЯрди S1-S4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рднрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрдорд┐рдд рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рдбрд╛рдпреЛрдб рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдЕрд╕реЗрдВрдмрд▓реА DD1 ULN2003 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░рд┐рд▓реЗ K1 рдФрд░ K2 рдкрд┐рдВрд╕ 16, 15 рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдЕрд╕реЗрдВрдмрд▓реА рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдЗрдВрдбрд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрд▓рдИрдбреА 14-12 рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдкрд┐рдВрд╕ 11, 10 рдХреЛ рдПрдХ рдЖрдо рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ + 12 рд╡реА рдХреЗ рдШреБрдорд╛рд╡рджрд╛рд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд┐рд░рдгреЗрдВ рд╣реИрдВред

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



рдПрд╕рдкреАрдЖрдИ рдмрд╕ рдореЗрдВ рдЯреАрдЯреАрдПрд▓ тЖТ рдПрд▓рд╡реАрдЯреАрдЯреАрдПрд▓ рд╕реНрддрд░ рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдШрдбрд╝реА DD4 DS1307 рдЪрд┐рдк рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдФрд░ 32.768 kHz рдкрд░ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди Q1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЛрд░реНрдб рдореЗрдВ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реА 3 рд╡реЛрд▓реНрдЯ рдХреА рд▓рд┐рдерд┐рдпрдо рдмреИрдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдШрдбрд╝реА рдХреА рд░реИрдо рдЪрд┐рдк рдХреЛ рдкрд╛рд╡рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Microcircuit MOS рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ VT2, VT3 рдкрд░ рдмрдирд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ I2C рдмрд╕ (CAD рд╕реНрдкрд╖реНрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдХрдиреЗрдХреНрд╢рди) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 5V-3.3V рд╕реНрддрд░ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

UART тЖТ RS485 рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ, DD2 ST485 рдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ VT1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд░реНрдХрд┐рдЯ рд╕рдорд╛рдзрд╛рди рдиреЗ рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдЬрдм UART рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рддрдм рдпрд╣ рдХреЗрд╡рд▓ рдореЛрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ, рдмрд╛рдХреА рд╕рдордп ST485 рдкреНрд░рд╛рдкреНрдд рдореЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рдХрдВрдЯреНрд░реЛрд▓ рдХрдорд╛рдВрдб рдХреЛ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ VT1 рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдпреЛрдЬрдирд╛ ST485 рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ TTL рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде UART рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ LVTTL рд╕реНрддрд░реЛрдВ рдХреЗ рдорд┐рд▓рд╛рди рдХрд╛ рдХрд╛рд░реНрдп рднреА рдХрд░рддреА рд╣реИред рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ VT1 рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрдХреЗрдд DI рдЗрдирдкреБрдЯ рдкрд░ рд╕реНрддрд░ 5V рддрдХ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ R16 рдФрд░ рдЬреЗрдирд░ рдбрд╛рдпреЛрдб VD8 рдЖрдЙрдЯрдкреБрдЯ R0 рд╕реЗ 3.3V рддрдХ рдХреЗ рд╕реНрддрд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ R11 рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ, рдпрд╣ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдмрдирд╛ рд░рд╣рд╛ред RS485 рдХреЛ 115200 рдмреЙрдб рдкрд░ рдореЙрдбрдмрд╕ рдЖрд░рдЯреАрдпреВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддрджрдиреБрд╕рд╛рд░, рдПрдХ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдХреЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:



рдореБрджреНрд░рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдХреЗ 3 рдбреА рдореЙрдбрд▓



рддреИрдпрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдлреЛрдЯреЛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ:







рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдпреЛрдЬрдирд╛ рдХреЗ рд╡реЗрд░рд┐рдПрдВрдЯ:


рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдХреЗ рдиреЛрдбреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдЬрдЧрд░ рдореЗрдВ рдХрдИ рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдореБрдЭреЗ рдпрд╣ рднрд╛рд╖рд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐, рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдХреЛрдб рдкрд░ peering)
рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ ADC рдЪреИрдирд▓реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдПрдХ рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ рд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рд▓рд┐рдЦрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

MCP3008 рдкрд╛рдпрдерди рд╕реНрд░реЛрдд
#!/usr/bin/python

# Example program to read data from MCP3008 10 bit ADC

import spidev
import time
import os
 
# Open SPI bus
spi = spidev.SpiDev()
spi.open(0,0)
 
# Function to read SPI data from MCP3008 chip
# Channel must be an integer 0-7
def ReadChannel(channel):
  adc = spi.xfer2([1,(8+channel)<<4,0])
  data = ((adc[1]&3) << 8) + adc[2]
  return data
 
# Function to convert data to voltage level,
# rounded to specified number of decimal places.
def ConvertVolts(data,places):
  volts = (data * 3.3) / float(1023)
  volts = round(volts,places)
  return volts
 
# Define sensor channels
first_channel = 0
second_channel  = 1
 
# Define delay between readings
delay = 5

print "------------------------------------------------------"
 
while True:
 
  # Read the first channel data
  first_level = ReadChannel(first_channel)
  first_channel_volts = ConvertVolts(first_level,2)
 
  # Read the second channel data
  second_level = ReadChannel(second_channel)
  second_channel_volts = ConvertVolts(second_level,2)
  
 
  # Print out results
  print "------------------------------------------------------"
  print("First ADC channel: {} ({}V)".format(first_level,first_channel_volts))
  print("Second ADC channel : {} ({}V)".format(second_level,second_channel_volts))
 
  # Wait before repeating loop
  time.sleep(delay)



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ DS18B20 рдерд░реНрдорд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

DS18B20 рдЕрдЬрдЧрд░ рд╕реНрд░реЛрдд

# Example program to read data from DS18B20
# This code taken from
# https://kropochev.com/?go=all/raspberry-pi-and-onewire-sensor/

import os
import glob
import time

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '10*')[0]
device_file = device_folder + '/w1_slave'

def read_temp_raw():
    f = open(device_file, 'r')
    lines = f.readlines()
    f.close()
    return lines

def read_temp():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = float(temp_string) / 1000.0
        temp_f = temp_c * 9.0 / 5.0 + 32.0
        return temp_c, temp_f

while True:
    print(read_temp())
    time.sleep(1)


рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрд┐рдпрди рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рднреА рдХрд┐рдпрд╛:

рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
тАФ 1 Wire settings:
тАФ Raspbian wheezy

Enter command in console:
pi@raspberrypi~$ sudo modprobe w1-gpio
pi@raspberrypi~$ sudo modprobe w1_therm

Then check sensor in system:
pi@raspberrypi ~ $ sudo ls /sys/bus/w1/devices/w1_bus_master1/

You can see the tabel below entered comman and
there you should find HEX like 28-000002da8328;
This is DS18B20 address;

Next read the data from DS18B20 sensor using command:
pi@raspberrypi ~ $ cat /sys/bus/w1/devices/w1_bus_master1/28-000002da8328/w1_sla

And you are going see temperature in console like:
6f 01 4b 46 7f ff 01 10 67: crc=67 YES
6f 01 4b 46 7f ff 01 10 67 t=22937

t=22937 тАФ you should divide this number on 1000 and you will have temperature in Celsius;

тАФ Raspbian Jezzy

Enter command:
pi@raspberrypi~$ sudo nano /boot/config.txt

On next step you should write in config file
dtoverlay=w1-gpio,gpiopin=4
dtoverlay=w1-gpio-pullup

Then you should reboot your raspberry Pi;

тАФ I2C Real Time Clock settings:
тАФ Update your system if it needed and install i2c-tools:
pi@raspberrypi~$ sudo apt-get update
pi@raspberrypi~$ sudo apt-get -y upgrade
pi@raspberrypi~$ sudo apt-get i2c-tools:

Enter command:
pi@raspberrypi~$ sudo nano /etc/modules
Add these lines:
i2c-bcm2708
i2c-dev
rtc_ds1307

Comment one line in file:
pi@raspberrypi~$ sudo nano /etc/modprobe.d/raspi-blacklist.conf
Add # Symbol in beginning of line

blacklist i2c-bcm2708
________________________________________________________
Reboot system;
Enter command:
pi@raspberrypi~$ sudo lsmod

You will see lines like:
rtc_ds1307 7715 0
i2c_dev 5277 0
i2c_bcm2708 4719 0
________________________________________________________

Get DS1307 address:
pi@raspberrypi~$ sudo i2cdetect -y 1

You will see table in console:

0 1 2 3 4 5 6 7 8 9 a b c d e f
00: тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ 10: тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ --
20: тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ --
30: тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ UU тАФ -- тАФ --
40: тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ --
50: тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ -- тАФ --
60: тАФ -- тАФ -- тАФ -- тАФ -- 68 тАФ -- тАФ -- тАФ -- тАФ 70: тАФ -- тАФ -- тАФ -- тАФ --

In address 0x3b some device without driver and 0x68 perhaps DS1307 clock address.

Enter command:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Read clock:
pi@raspberrypi~$ sudo hwclock -r

Set time:
pi@raspberrypi~$ sudo hwclock -w
Set system time from RTC:
pi@raspberrypi~$ sudo hwclock -s

Automatic RTC start;
Add lines in /etc/rc.local file

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
Before last line in file looks like:

exit 0
тАФ Uart settings:
тАФ Back up files:
cp /boot/cmdline.txt /boot/cmdline.bak
cp /etc/inittab /etc/inittab.bak

Delete ┬лconsole=ttyAMA0,115200┬╗ ┬лkgdboc=ttyAMA0,115200┬╗ lines from configuration file:
pi@raspberrypi~$ nano /boot/cmdline.txt

Comment last line looks like ┬лT0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100: in /etc/inittab file: using # symbol:
pi@raspberrypi~$ nano /etc/inittab


рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдХреА рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ LUT рддрдХрдиреАрдХ рдФрд░ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдЦрд╛рд▓реА рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛рдпрд╛ред рдХрд╛рдо рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдХреЛ рдПрдордЬреАрдПрд╕рд╡реАрд╡реА 0.5 рд╕реЗ рдЬрдВрдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХрддрд░рдлрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдбрд┐рдкреНрд░реЗрд╕ рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдкреАрд╕реАрдмреА рдбрд┐рдЬрд╝рд╛рдЗрди, рдЯреЗрд╕реНрдЯ рд╕реЛрд░реНрд╕ рдХреЛрдб, рдШрдЯрдХреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ ред

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

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


All Articles