рдмрдЬрдЯ рддрд╛рдкрдорд╛рди рдХреА рдирд┐рдЧрд░рд╛рдиреА: Arduino + Zabbix

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

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

рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ:


рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдХреА рдХреБрд▓ рд▓рд╛рдЧрдд $ 10 рд╣реИред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ "рд╕реИрдВрдбрд╡рд┐рдЪ" рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдмреЛрд░реНрдб рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдХреЛ рдЙрд╕рдХреЗ рдкрд┐рдиреЛрдВ рдореЗрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реЗрдВрд╕рд░ рдХрдиреЗрдХреНрд╢рди: рд▓рд╛рд▓ +5 рд╡реА, рдХрд╛рд▓рд╛ - рдЬрдореАрди, рдкреАрд▓рд╛ - рдбреЗрдЯрд╛; + 5 рд╡реА рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ, рдПрдХ 4.7 k-рдкреБрд▓-рдЕрдк рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдорд┐рд▓рд╛рдкред

рдбреЗрдЯрд╛ рдкрд┐рди рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ (D10 - SS; D11 - MOSI; D12 - MISO; D13 - SCK; D2 - IRQ) рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд┐рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рд░реЗрдХ: рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдореИрдВ рдПрдХ рд╕рдВрдШрд░реНрд╖ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ - рддрд╛рдкрдорд╛рди рдбреЗрдЯрд╛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, "рджреЛ рд╕реЗ рддреАрди"ред рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рддрд╛рдкрдорд╛рди рд╕рдВрд╡реЗрджрдХ рдХреЛ 2 рдкрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЭреБрдХрд╛ рджрд┐рдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдмрд╛рдж рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╛рдпрд╛ , рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреИрдХреЗрдЯ рдЖрдиреЗ рдкрд░ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 4 рдкрд░ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд - рдпрд╣ рдПрдХ рдШрдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░ рдЬрд╛рдПрдВред

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

рдЬрд╝реИрдмрд┐рдХреНрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рд╣рдорд╛рд░рд╛ рдЙрдкрдХрд░рдг рджреЛ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ - Agent.ping рдФрд░ env.temp (рдЖрдЧреЗ рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ, рдЖрдк arduino рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд┐рд╕реА рднреА рд╡рд┐рд╕реНрддрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ - рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЖрд░реНрджреНрд░рддрд╛ рд╕рдВрд╡реЗрджрдХ, рдХрдо рд╕реЗ рдХрдо рдПрдХ рд░реЛрд╢рдиреА - рдЬреЛ рднреА рдЖрдкрдХреЗ рджрд┐рд▓ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИ)ред рдпрд╣ рдПрдХ рдорд╛рдирдХ рдЙрддреНрддрд░ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╢рдкрде рдЧреНрд░рд╣рдг рдХрд░реЗрдЧрд╛, zabbix рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдЬреИрд╕реЗ) - Arduino рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ Arduino IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдердорд┐рдХ рд╣реИред рдШрдЯрдХреЛрдВ рдХреЛ UIPE рдИрдерд░рдиреЗрдЯ рдФрд░ рд╡рдирд╡рд╛рдпрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕реНрдХреЗрдЪ рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ ...
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рдШрдЯрдХ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ enc28j60 рдкрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рдЪрд┐рдк рдкрд░) - рдЖрдкрдХреЛ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА!

рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рддрд╛рдкрдорд╛рди рд╕рдВрд╡реЗрджрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ, рдХреБрдЫ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдФрд░ рд╕рд░рд▓реАрдХрд░рдг рдХреЗ рд╕рд╛рдеред

рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХреЛрдб рднрд░рдиреЗ рдФрд░ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдХрдВрд╕реЛрд▓ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ:

$ zabbix_get -s 192.168.4.5 -k agent.ping 1 $ zabbix_get -s 192.168.4.5 -k env.temp 23.12 $ zabbix_get -s 192.168.4.5 -k bla-blah ZBX_NOTSUPPORTED 

рд░реЗрдХ: zabbix.com рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП zabbix_get рдХрд╛ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╣реЗрдбрд░ ZBXD \ x01 рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдЕрджреНрдпрддрд┐рдд рд╣реИ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рд╕рдм рдХреБрдЫ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрд╝реИрдмрд┐рдХреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ, рдЪрдпрдирд┐рдд рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╣реЛрд╕реНрдЯ рдмрдирд╛рдПрдВ, рдЗрд╕рдореЗрдВ рджреЛ рдХреБрдВрдЬреА, рдиреНрдпреВрдореЗрд░рд┐рдХ (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд) Agent.ping рдФрд░ рдиреНрдпреВрдореЗрд░рд┐рдХ (рдлреНрд▓реЛрдЯ) env.temp, рдХрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред рдЪрд╛рд░реНрдЯ, рдЯреНрд░рд┐рдЧрд░ - рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реИред

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

рд╕реЗрдВрд╕рд░ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд▓рдЧрднрдЧ 0.06 (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, 1/16) ┬░ C, рд╕рдЯреАрдХрддрд╛ рд╣реИ - рдЬрдм рдкрд┐рдШрд▓рдиреЗ рд╡рд╛рд▓реА рдмрд░реНрдл рдореЗрдВ рдбреВрдм рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ 0.19 ┬░ C рджрд┐рдЦрд╛ (рд╢рд╛рдпрдж рдпрд╣ рдФрд░ рднреА рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рдмрд░реНрдл рдереА рдФрд░ рдпрд╣ рдЬрд▓реНрджреА рдкрд┐рдШрд▓ рдЧрдпрд╛)ред рдореИрдВ $ 10 рдореВрд▓реНрдп рдХреЗ рдЙрдкрдХрд░рдг рдФрд░ рд╡рд░реНрдгрд┐рдд рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрддрд╛ рд╣реВрдВ - рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХред

рд╕реНрдХреЗрдЪ
 #include <OneWire.h> #include <UIPEthernet.h> byte mac[] = { 0xDE, 0x05, 0xB6, 0x27, 0x39, 0x19 }; // random MAC byte ip[] = { 192, 168, 4, 5 }; // IP address in local network String readString = String(20); byte addr[8]; OneWire ds(4); // DS18B20 at pin 4 EthernetServer server(10050); // Zabbix port void setup() { Ethernet.begin(mac, ip); server.begin(); ds.search(addr); } void loop() { byte data[2]; float celsius; readString = ""; if (EthernetClient client = server.available()) { while (client.connected()) { if (client.available()) { char c = client.read(); if (c == '\n') // end of query from zabbix server { client.print("ZBXD\x01"); // response header if (readString == "agent.ping") { byte responseBytes [] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, '1'}; client.write(responseBytes, 9); } else if (readString == "env.temp") { ds.reset(); ds.select(addr); ds.write(0x44); // start conversion with regular (non-parasite!) power delay(1000); ds.reset(); ds.select(addr); ds.write(0xBE); // read Scratchpad data[0] = ds.read(); data[1] = ds.read(); int16_t raw = (data[1] << 8) | data[0]; celsius = (float)raw / 16.0; byte responseBytes [] = {(byte) String(celsius).length(), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; client.write(responseBytes, 8); client.print(celsius); } else { byte responseBytes [] = {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; client.write(responseBytes, 8); client.print("ZBX_NOTSUPPORTED"); } break; } else if (readString.length() < 20) { readString = readString + c; } } } delay(10); client.stop(); } } 

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


All Articles