рдиреВрд▓рд╛рдЗрдЯ MTRF-32 + Arduino + Domoticz

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдкрдиреЗ рдбреЛрдореЛрдЯрд┐рдХрдЬрд╝-рдЖрдзрд╛рд░рд┐рдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдирд▓рд╛рдЗрдЯ рдПрдордЯреАрдЖрд░рдПрдл -32 рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдШрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


рдореЗрд░рд╛ рдШрд░ рдирд┐рдЬреА рд╣реИред рдЗрд╕рдиреЗ MySensors рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдбреЛрдореЛрдЯрд┐рдХрдЬрд╝-рдЖрдзрд╛рд░рд┐рдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдФрд░ рд╡рд╛рдпрд░рд▓реЗрд╕ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░реНрд╕ рдХреА рдХреБрдЫ рдЕрд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓, рджрд░рд╡рд╛рдЬреЗ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗрдВрд╕рд░, рдШрд░ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛, рдШрд░ рдФрд░ рд╕рдбрд╝рдХ рдкрд░ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢, рдШрдЯрдирд╛рдУрдВ рдФрд░ рдореМрд╕рдо рдХреЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЖрд╡рд╛рдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

рдХрд╛рдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ 7 рдмрд╛рд░ рдХреНрдпрд╛ рдорд╛рдкрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


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

рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
32 рдХрд╛ рдорддрд▓рдм 32 рдЪреИрдирд▓реЛрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рддрд┐рдерд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 64 рдЪреИрдирд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреНрдпреВрд▓ noolite рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдореЗрдВ USB рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред MTRF-32 рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрди рдХрд┐рд╕реА рддрд░рд╣ MTRF-64 рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдХрдкреНрд░рд┐рдп рдерд╛ред

рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕


рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, Niteite рдХреЛ MTRF-64-USB рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NooliteOne рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдорд┐рд▓рд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреЙрдо-рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдПрдордЯреАрдЖрд░рдПрдл -64 рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдпреВрдПрд╕рдмреА-рдХреЙрдо рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдордЯреАрдЖрд░рдПрдл -64-рдпреВрдПрд╕рдмреА рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ FTDI рдЪрд┐рдк рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рд╢рд╛рдорд┐рд▓ рдереЗ, рдФрд░ рдореЗрд░реЗ рдмреЛрд░реНрдб рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдВрдкрд░реНрдХ рдкреИрдб рдерд╛ред

рдореИрдВрдиреЗ рдЪрд┐рдк рдХреЛ рдорд┐рд▓рд╛рдк рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдПрдлрдЯреАрдбреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЪреАрдиреА Arduino рдиреИрдиреЛ рд╕реЗ USB-COM рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдмреЛрд░реНрдб рд╕реЗ рдЬреЛрдбрд╝рд╛ред

рдпрд╣ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, NooliteOne рдХреЛ рдореЗрд░рд╛ рдПрдбреЙрдкреНрдЯрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЬрдм рдореИрдВрдиреЗ MT1132 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЦреЛрдЬ рдХреА, рддреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдбреА рд╕рдВрдХрд▓рди рдХреА рдУрд░ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕


рдореИрдВрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рддреБрд▓рдирд╛ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЗ рд╢рд╛рдпрдж рд╣реА рдЕрд▓рдЧ рд╣реИрдВред MT1132 рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЧрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереА (рдлреАрдбрдмреИрдХ рдХреА рдЕрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЙрдкрдпреБрдХреНрдд рд╡рд┐рджреНрдпреБрдд рдЗрдХрд╛рдЗрдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ)ред

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

Ardunoo.H
  

#ifndef ARDUNOO_H
#define ARDUNOO_H

#if рдкрд░рд┐рднрд╛рд╖рд┐рдд (ARDUINO) && ARDUINO> = 100
# "Arduino.h" рдЫреЛрдбрд╝реЗрдВ
#else
# рдЬреАрдд "WProgram.h"
#endif

#include <SoftwareSerial.h>

рд╡рд░реНрдЧ рдЕрд░рджреБрдиреНрдиреВ {

рдмрд╛рдЗрдЯ chnl;
SoftwareSerial ns;

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ:
рдЕрд░реБрдбреВ (рдмрд╛рдЗрдЯ рдЖрд░рдПрдХреНрд╕, рдмрд╛рдЗрдЯ рдЯреАрдПрдХреНрд╕, рдмрд╛рдЗрдЯ рдЪ = 0);
рд╢реВрдиреНрдп рдкрд░ (рдмрд╛рдЗрдЯ ch = -1);
рд╢реВрдиреНрдп рдмрдВрдж (рдмрд╛рдЗрдЯ ch = -1);
рд╢реВрдиреНрдп рдУрдирдСрдлрд╝ (рдмрд╛рдЗрдЯ ch = -1);
рд╢реВрдиреНрдп рдмрд╛рдБрдз (рдмрд╛рдЗрдЯ ch = -1);
рд╢реВрдиреНрдп unbind (рдмрд╛рдЗрдЯ ch = -1);

рдмреВрд▓ рдХрдорд╛рдВрдб (рдмрд╛рдЗрдЯ рдЪреИрдирд▓, рдмрд╛рдЗрдЯ рдХрдорд╛рдВрдб);
};

#endif

Ardunoo.cpp
# рдХрд┐рдВрдХрд░реНрддрд╡реНрдпрд╡рд┐рдореВрдврд╝ <ardunoo.h>

ArduNoo :: ArduNoo (рдмрд╛рдЗрдЯ рдЖрд░рдПрдХреНрд╕, рдмрд╛рдЗрдЯ рдЯреАрдПрдХреНрд╕, рдмрд╛рдЗрдЯ рдЪ): рдПрдирдПрд╕ (рдЖрд░рдПрдХреНрд╕, рдЯреАрдПрдХреНрд╕) {
chnl = ch;
ns.begin (9600);
}

рд╢реВрдиреНрдп ArduNoo :: рдмрдВрдж (рдмрд╛рдЗрдЯ ch) {
рдХрдорд╛рдВрдб (ch, 0);
}

рд╢реВрдиреНрдп ArduNoo :: (рдмрд╛рдЗрдЯ ch) {
рдХрдорд╛рдВрдб (ch, 2);
}

рд╢реВрдиреНрдп ArduNoo :: onoff (рдмрд╛рдЗрдЯ ch) {
рдХрдорд╛рдВрдб (ch, 4);
}

рд╢реВрдиреНрдп ArduNoo :: unbind (рдмрд╛рдЗрдЯ ch) {
рдХрдорд╛рдВрдб (ch, 9);
}

рд╢реВрдиреНрдп ArduNoo :: рдмрд╛рдЗрдВрдб (рдмрд╛рдЗрдЯ ch) {
рдХрдорд╛рдВрдб (ch, 15);
}

bool ArduNoo :: рдХрдорд╛рдВрдб (рдмрд╛рдЗрдЯ chnl, рдмрд╛рдЗрдЯ рдХрдорд╛рдВрдб) {
рд╕реНрдЯреИрдЯрд┐рдХ рдмрд╛рдЗрдЯ i, r, buf [17] = {171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172};
int sum = 0;

рдореЗрдорд╕реЗрдЯ (buf + 2,0,14); / * рд╕реНрдкрд╖реНрдЯ рд╕рдВрджреЗрд╢ рдирд┐рдХрд╛рдп * /
buf [4] = chnl;
buf [5] = рдХрдорд╛рдВрдб;

рдХреЗ рд▓рд┐рдП (i = 0; рдореИрдВ <15; ++ i) {// 10
sum + = buf [i];
}
buf [15] = рд▓реЛ рдмрд╛рдЗрдЯ (рдпреЛрдЧ); // 10
buf [16] = 172; // 11

рдХреЗ рд▓рд┐рдП (i = 0; рдореИрдВ <17; ++ i) {
ns.write (buf [i]);
}
// рдбрд┐рдмрдЧ рдХреЛрдб
рдХреЗ рд▓рд┐рдП (i = 0; рдореИрдВ <17; ++ i) {
рдЬрдмрдХрд┐ (ns.available ()) рджреЗрд░реА (10);
r = nesread ();
Serial.print┬о;
}
рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ.рдкреНрд░рджрд░реНрд╢рди ();

рд╕рдЪ рд▓реМрдЯрдирд╛;
}

Ardunoo.ino
#include <SoftwareSerial.h>
# рдЕрд▓рдЧ рдХрд░рдирд╛ <ardunoo.h>

# рдбреЗрдлрд┐рди рдЖрд░рдПрдХреНрд╕рдкрд┐рди 10
# рдбреЗрдлрд┐рди TXpin 11

рдЕрд░реБрдбреВ рдиреВ (рдЖрд░рдПрдХреНрд╕рдкреАрди, TXpin);
рд╕реНрдЯреНрд░рд┐рдВрдЧ readString, chString;

рд╢реВрдиреНрдп рд╕реЗрдЯрдЕрдк () {
рд╕реАрд░рд┐рдпрд▓.рдмреЗрдЧрд┐рди (9600);
}

рд╢реВрдиреНрдп рд▓реВрдк () {
readString = "";
chString = "";
рдЬрдмрдХрд┐ (рд╕реАрд░рд┐рдпрд▓ред рдЙрдкрд▓рдмреНрдз) () {
рджреЗрд░реА (3); // рдмрдлрд░ рдХреЛ рднрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдореЗрдВ рджреЗрд░реА
рдЕрдЧрд░ (рд╕реАрд░рд┐рдпрд▓ред рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ) (0) {
char c = Serial.read (); // рд╕реАрд░рд┐рдпрд▓ рдмрдлрд░ рд╕реЗ рдПрдХ рдмрд╛рдЗрдЯ рдорд┐рд▓рддреА рд╣реИ
readString + = c; // рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд░реАрдб рдХрд░рддрд╛ рд╣реИ
}
}
if (readString.length ()> 1 && readString.length () <4) {// рд╣рдо 1 рдЕрдХреНрд╖рд░ рдФрд░ 1 рдпрд╛ 2 рдЕрдВрдХреЛрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ (ch = 0-31)
for (int i = 1; рдореИрдВ <readString.length (); i ++) {
рдЕрдЧрд░ (isDigit (readString [i])) {
chString.concat (readString [i]);
}
}
//Serial.println(readString[0]);
int ch = chString.toInt ();
рд╕реНрд╡рд┐рдЪ (readString [0]) {
рдорд╛рдорд▓рд╛ 'рдПрди': // рдкрд░
noo.on (ch);
рддреЛрдбрд╝;
рдорд╛рдорд▓рд╛ 'рдПрдл': // рдмрдВрдж
noo.off (ch);
рддреЛрдбрд╝;
рдорд╛рдорд▓рд╛ 'x': // рдЯреЙрдЧрд▓ рдХрд░реЗрдВ
noo.onoff (ch);
рддреЛрдбрд╝;
рдорд╛рдорд▓рд╛ 'рдмреА': // рдмрд╛рдБрдз
noo.bind (ch);
рддреЛрдбрд╝;
рдорд╛рдорд▓рд╛ 'рдпреВ': // unbind
noo.unbind (ch);
рддреЛрдбрд╝;
рдорд╛рдорд▓рд╛ 'y': // рд╕рднреА рдЪреИрдирд▓реЛрдВ рдкрд░
for (int i = 0; рдореИрдВ <32; i ++) {
noo.on (i);
рджреЗрд░реА (100);
}
рддреЛрдбрд╝;
рдорд╛рдорд▓рд╛ 'z': // рд╕рднреА рдЪреИрдирд▓реЛрдВ рд╕реЗ
for (int i = 0; рдореИрдВ <32; i ++) {
noo.off (i);
рджреЗрд░реА (100);
}
рддреЛрдбрд╝;
}
}
}

рдЬрд╝реБрдореИрддреА рд╕рд░реНрдЧреЗрдИ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд╛рдЗрд╕реЗрдВрд╕
MIT рд▓рд╛рдЗрд╕реЗрдВрд╕ (MIT)

рдХреЙрдкреАрд░рд╛рдЗрдЯ ┬й 2014 рдЬрд╝реБрдордЯреНрдЯреА рд╕рд░реНрдЧреЗрдИ

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

рдЙрдкрд░реЛрдХреНрдд рдХреЙрдкреАрд░рд╛рдЗрдЯ рдиреЛрдЯрд┐рд╕ рдФрд░ рдЗрд╕ рдЕрдиреБрдорддрд┐ рдиреЛрдЯрд┐рд╕ рдХреЛ рд╕рднреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рднрд╛рдЧред

рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреА рд╡рд╛рд░рдВрдЯреА, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдпрд╛ рдХреЗ рдмрд┐рдирд╛ "рдХреЗ рд░реВрдк рдореЗрдВ" рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреНрд░рднрд╛рд╡рд┐рдд, рдорд░реНрдЪреЗрдВрдЯреИрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд╡реНрд░рдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ,
рдПрдХ рдЖрдВрд╢рд┐рдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдФрд░ рдирд┐рдпрдиреНрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрддрддрд╛ред рдХреЛрдИ рдШрдЯрдирд╛ рдирд╣реАрдВ рдореЗрдВ
AUTHORS рдпрд╛ рдХреЙрдкреАрд░рд╛рдЗрдЯрд░ рдХрд┐рд╕реА рднреА CLAIM, DAMAGES рдпрд╛ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рджреЗрдпрддрд╛, рдЕрдиреБрдмрдВрдз рдХреА рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐, рдЯрд┐рдХрдЯ рдпрд╛ рдЕрдиреНрдп рдореЗрдВ рдЫреВрдЯ, рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдпрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╛ рдмрд╛рд╣рд░
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрдорд╛рдВрдб рдмрдВрдж рд╣реИрдВ, рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рд╕рднреА рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рд╕рднреА рдмрдВрдж рдХрд░реЗрдВред

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

noo.cs
рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ;
System.Collections.Generic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
System.Linq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
System.Text рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
System.IO.Ports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

рдиреЗрдорд╕реНрдкреЗрд╕ рдиреЛ
{
рдХрдХреНрд╖рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо
{
рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп рдореБрдЦреНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ [] args)
{
рдЕрдЧрд░ (args.Length == 2)
{
SerialPort COM = рдирдпрд╛ SerialPort (args [0]);
COM.Open ();
COM.WriteLine (args [1]);
COM.Close ();
}
}
}
}

рдХрдорд╛рдВрдб рдЙрджрд╛рд╣рд░рдг:


noo.exe com5 n4 - рдЪреИрдирд▓ 4 рдкрд░ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ рдХрд░реЗрдВ, COM5 рдкреЛрд░реНрдЯ рдкрд░ Arduino рдмреЛрд░реНрдб рдХреЛ рдкреНрд░реЗрд╖рд┐рддред рджреВрд╕рд░реЗ рдЯреНрд░рд┐рдЧрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди:

  • nX - рдЪреИрдирд▓ X рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
  • fX - рдЪреИрдирд▓ X рдмрдВрдж рдХрд░реЗрдВ
  • xX - рд╕реНрд╡рд┐рдЪ рдЪреИрдирд▓ X
  • bX - рдкреЙрд╡рд░ рдмреНрд▓реЙрдХ рдХреЛ рдЪреИрдирд▓ X рдкрд░ рдмрд╛рдБрдз рджреЗрдВ
  • uX - рдЪреИрдирд▓ X рд╕реЗ рдкреЙрд╡рд░ рдмреНрд▓реЙрдХ рдХреЛ рдЦреЛрд▓рдирд╛
  • yX - рд╕рднреА рдЪреИрдирд▓, X рдХреЛ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдкрд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
  • zX - рд╕рднреА рдЪреИрдирд▓, X рдХреЛ рдХрд┐рд╕реА рднреА рдорд╛рди рд╕реЗ рдмрдВрдж рдХрд░реЗрдВ

рд▓реБрдЖ рд▓рд┐рдкрд┐
рд╕реНрдерд╛рдиреАрдп рд╕реЗрдВрд╕рд░ 1 = 'SWHallWay'
рд╕реНрдерд╛рдиреАрдп рд╕реЗрдВрд╕рд░ 2 = 'SWHall'
рд╕реНрдерд╛рдиреАрдп рд╕реЗрдВрд╕рд░ 3 = 'SWKitchen'
рд╕реНрдерд╛рдиреАрдп рд╕реЗрдВрд╕рд░ 4 = 'рд╕реНрд╡реЗрдбрд░реВрдо'
рд╕реНрдерд╛рдиреАрдп рд╕реЗрдВрд╕рд░ 5 = 'BTNLiteOff'
CommandArray = {}
рдЕрдЧрд░ (рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ [рд╕реЗрдВрд╕рд░ 1] == 'рдСрди') рддреЛ
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 n3")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡рд┐рдЪрд▓рди [рд╕реЗрдВрд╕рд░ 1] == 'рдмрдВрдж') рддрдм
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 f3")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ [рд╕реЗрдВрд╕рд░ 2] == 'рдСрди') рддреЛ
os.execute ("c: \\ PROGRA ~ 1 \\ рдбреЛрдореЛрдЯрд┐рдХреЛрдЬрд╝ \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ \\ noo.exe com4 n0")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ [рд╕реЗрдВрд╕рд░ 2] == 'рдмрдВрдж') рддрдм
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 f0")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ [рд╕реЗрдВрд╕рд░ 3] == 'рдСрди') рддреЛ
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 n1")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡рд┐рдЪрд▓рди [рд╕реЗрдВрд╕рд░ 3] == 'рдмрдВрдж') рддрдм
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 f1")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ [рд╕реЗрдВрд╕рд░ 4] == 'рдСрди') рддреЛ
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 n2")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡рд┐рдЪрд▓рди [рд╕реЗрдВрд╕рд░ 4] == 'рдмрдВрдж') рддрдм
os.execute ("c: \\ PROGRA ~ 1 \\ рдбреЛрдореЛрдЯрд┐рдХреЛрдЬрд╝ \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ \\ noo.exe com4 f2")
рдЕрдВрдд
рдЕрдЧрд░ (рд╡рд┐рдЪрд▓рди [рд╕реЗрдВрд╕рд░ 5] == 'рдмрдВрдж') рддрдм
os.execute ("c: \\ PROGRA ~ 1 \\ Domoticz \\ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \\ noo.exe com4 z9")
рдЕрдВрдд
рд╡рд╛рдкрд╕реА рдХреЗ рдЖрджреЗрд╢рдЕрд░реЗ

рдбреЙрдореЛрдЯрд┐рдХрдЬ рдореЗрдВ рдЧреНрд░рд╛рдЙрдВрдб рдлреНрд▓реЛрд░ рдкреНрд▓рд╛рди


рд▓рдШреБ рд╡реАрдбрд┐рдпреЛ

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


All Articles