Arduino + Z-Wave рдкрд░ рд╢реМрдЪрд╛рд▓рдп рдлреНрд▓рд╢рд┐рдВрдЧ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди

рдЗрди рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?











рд╡рд┐рдЪрд╛рд░



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



рдкрд░рд┐рджреГрд╢реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

рдХреЛрдЯреЗ (рдкрд╣рд▓реА рддрд╕реНрд╡реАрд░ рдореЗрдВ рдПрдХ) рдорд┐рдиреА-рдбреЛрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдерд░реВрдо рдХреЗ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рдЕрдВрджрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджреНрдШрд╛рдЯрди рд╕рдВрд╡реЗрджрдХ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рд╕реЗрдВрд╕рд░ рдХреЗ рджреВрд╕рд░реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж, рд╣реБрдб рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реМрдЪрд╛рд▓рдп рдореЗрдВ рдкрд╛рдиреА рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдлреНрд░реЗрд╢рдирд░ рдХрд╛ рдЫрд┐рдбрд╝рдХрд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЙрдкрдХрд░рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг



рдЯреЙрд╡рд░рдкреНрд░реЛ рд╕рд░реНрд╡реЛ рдорд╢реАрди MG996R , Z-Wave Fibaro FGS221 рд░рд┐рд▓реЗ рдФрд░ рдПрдХ рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЯрди рдмреЛрд░реНрдб рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд░рд┐рд▓реЗ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рд╛ рдФрд░ рдЗрд╕реЗ рджреАрд╡рд╛рд░ рдкрд░ рд▓рд╛рдпрд╛ред











рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд░реНрд╡реЛ 5 рд╡реА 2 рдП рдкреАрдПрд╕рдпреВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИред рдЗрд╕рд╕реЗ рдмреЛрд░реНрдб USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред



рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдФрд░ рдХреЛрдб:









Arduino рдХреЗ рд▓рд┐рдП рдХреЛрдб
#include <Servo.h> //   Servo Servo flush; //      const int buttonPin = 2; //    const int led = 4; //    int buttonState = 0; //      int flag = 0; //     unsigned long holdTime = 0; //    unsigned long blinkTime = 0; //    unsigned long loadTime = 0; //    void setup() { pinMode(led, OUTPUT); //      pinMode(buttonPin, INPUT); //      flush.attach(3, 8, 140); //     3   /  flush.write(8); //       } void loop(){ buttonState = digitalRead(buttonPin); //    if (buttonState == LOW && flag == 0) { //         flush.write(8); //       digitalWrite(led, LOW); //   } if (buttonState == HIGH && flag == 0) { //        delay(100); //      flush.write(140); //      flag = 1; //   holdTime = millis(); //     } if (buttonState == HIGH && flag == 1 && millis()-holdTime > 200) { //      X  flag = 0; //   blinkTime = millis(); //     do { digitalWrite(led, LOW); //   delay(200); digitalWrite(led, HIGH); //   delay(200); } while (millis()-blinkTime < 5000); //   X  flush.write(8); //       loadTime = millis(); //      do { digitalWrite(led, LOW); //   delay(200); digitalWrite(led, HIGH); //   delay(200); } while (millis()-loadTime < 54000); //   X  (   ) } if (buttonState == LOW && flag == 1 && millis()-holdTime <= 200) { //      X  flag = 0; //   blinkTime = millis(); //     do { digitalWrite(led, LOW); //   delay(200); digitalWrite(led, HIGH); //   delay(200); } while (millis()-blinkTime < 2000); //   X  flush.write(8); //       loadTime = millis(); //      do { digitalWrite(led, LOW); //   delay(200); digitalWrite(led, HIGH); //   delay(200); } while (millis()-loadTime < 30000); //   X  } }
      
      









рдЬреЗрдб-рд╡реЗрд╡ рдХреЗ рд╕рд╛рде рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡реАрдбрд┐рдпреЛ




рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдХреЗрд╡рд▓ рдмрдЯрди рдХреЛ рдлрд┐рд░ рд╕реЗ рджрдмрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ


рджреЗрд░реА рдкрд╛рдиреА рдХреЗ рд╕рд╛рде рдЯреИрдВрдХ рдХреЗ рдкреВрд░реНрдг рд░рд┐рдЪрд╛рд░реНрдЬ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред






рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



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











рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрдВрдХреНрд╢рди рдмрдХреНрд╕реЗ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред











рдореИрдиреНрдпреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг рдпрд╛ рддреЛ рдПрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рдпрд╛ рдлрд╝рд╛рдЗрдмрд░реЛ рд╣реЛрдордХреЗрдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред











рджреЛ рд╢рдЯрд░ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  1. рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд░реЗрд╕ (<200 ms) рдЖрдзрд╛ рдкрд╛рдиреА рдЫреЛрдбрд╝рддрд╛ рд╣реИред
  2. 200 рд╕реЗ рдЕрдзрд┐рдХ рдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдкрдХрдбрд╝рддреЗ рд╕рдордп, рдЯреИрдВрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдЬреЗрдб-рд╡реЗрд╡ рд░рд┐рд▓реЗ рдХреЛ рджреВрд╕рд░реА рдореЛрдб рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди


рджреЗрд░реА рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдлрд╛рдЗрдмреНрд░реЛ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдореЛрдЯ рдПрдХреНрд╕реЗрд╕ рдореЛрдб рдореЗрдВ рдерд╛ред






рдирд┐рд╖реНрдХрд░реНрд╖



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



рдЦреИрд░, рдПрдХ рдмреЛрдирд╕ :)





All Articles