Z-uno أو كيفية إضافة أي جهاز إلى شبكة الموجة z

بطريقة ما قمت بتثبيت منزل ذكي للعميل: كانت المهمة هي دمج جميع أجهزة التحكم عن بعد في جهاز واحد وهذا كان الهاتف. كانت هناك ثلاثة أجهزة تحكم عن بعد ، اثنان منها بإشارة الأشعة تحت الحمراء ، لكن الثالثة - من الستائر - ظهرت على إشارة الراديو. يمكنني تسجيل الإشارة وإرسالها باستخدام جهاز ztx-120 ، ولكن لا يمكنك تسجيل إشارة الراديو. ماذا أفعل في هذه الحالة ، أريد أن أقول في هذه المقالة. فقط في المثال لن يكون هناك جهاز تحكم عن بعد لاسلكي ، ولكن الهاتف الخلوي ، لن يتغير معنى هذا.

للقيام بذلك ، أخذت لوحة z-uno ، وحمّلت الكود البرمجي إليها باستخدام كابل USB من خلال برنامج arduino IDE 1.6.5 (كيفية تثبيت arduino لـ z-uno على النوافذ ، قرأت على z-uno.z-wave.me/ تثبيت - التعليمات باللغة الإنجليزية ، ولكن كل شيء واضح من الصور). نظرًا لأنني لا أعرف لغة C ، فقد أخذت الرمز من منفذ قياسي ، وهو في برنامج اردوينو في شكل قالب (يسمى "SimpleSwitch") وضربه في الدبابيس 13،14،15. فيما يلي الرمز الذي قمت بتحميله إلى لوحة z-uno.

عرض الرمز
/*
 * That is a Simple Sensor Multilevel example
 * It measures the value on the potentiometer
 * And sends report to the controller if changed
 */
 
// LED pin number
#define LED_PIN 13
#define LED_PINN 14
#define LED_PINNN 15

// Last saved LED value
byte currentLEDValue;
byte currentLEDValuee;
byte currentLEDValueee;

// next macro sets up the Z-Uno channels
// in this example we set up 1 switch binary channel
// you can read more on http://z-uno.z-wave.me/Reference/ZUNO_SWITCH_BINARY/
ZUNO_SETUP_CHANNELS(ZUNO_SWITCH_BINARY(getter, setter),
                    ZUNO_SWITCH_BINARY(getterr, setterr),
                    ZUNO_SWITCH_BINARY(getterrr, setterrr));

// next macro sets up the Z-Uno frequency
ZUNO_SETUP_FREQUENCY(ZUNO_FREQ_RU);

void setup() {
  pinMode(LED_PIN, OUTPUT); // setup pin as output
  pinMode(LED_PINN, OUTPUT); // setup pin as output
  pinMode(LED_PINNN, OUTPUT); // setup pin as output
}

void loop() { 
  // loop is empty, because all the control comes over the Z-Wave
}

// function, which sets new relay state
// this function runs only once the controller sends new value
 void setter (byte value) {
  // value is a variable, holding a "new value"
  // which came from the controller or other Z-Wave device
  if (value > 0) {    // if greater then zero
    digitalWrite (LED_PIN, HIGH); //turn LED on
  } else {            // if equals zero
    digitalWrite(LED_PIN, LOW);   //turn LED off
  } 
  // let's save our value for the situation, when the controller will ask us about it
  currentLEDValue = value;
}

void setterr (byte valuee) {
  // value is a variable, holding a "new value"
  // which came from the controller or other Z-Wave device
  if (valuee > 0) {    // if greater then zero
    digitalWrite (LED_PINN, HIGH); //turn LED on
  } else {            // if equals zero
    digitalWrite(LED_PINN, LOW);   //turn LED off
  } 
  // let's save our value for the situation, when the controller will ask us about it
  currentLEDValuee = valuee;
}

void setterrr (byte valueee) {
  // value is a variable, holding a "new value"
  // which came from the controller or other Z-Wave device
  if (valueee > 0) {    // if greater then zero
    digitalWrite (LED_PINNN, HIGH); //turn LED on
  } else {            // if equals zero
    digitalWrite(LED_PINNN, LOW);   //turn LED off
  } 
  // let's save our value for the situation, when the controller will ask us about it
  currentLEDValueee = valueee;
}

// function, which returns the previously saved relay value
// this function runs only once the controller asks
byte getter (){
  return currentLEDValue;
}
byte getterr (){
  return currentLEDValuee;
}
byte getterrr (){
  return currentLEDValueee;
}


في وقت كتابة المقال ، لم يكن لدي يد في متناول اليد ، ولكن على سبيل المثال ، أخذت هاتفي المحمول القديم بأزرار ، تم تفكيكها وملصقها على الأزرار "واحد" و "اثنين" و "إعادة تعيين". ثم قررت أخذ كل "الأرض" من أزرار الهاتف ولفها في واحد ، وتناثر الإيجابيات في دبابيس 13،14،15.

في الوقت نفسه ، لم ينفعني شيء ، نظرًا لأن جميع الأزرار كانت في نفس الدائرة الكهربائية ، ويجب أن يكون لكل زر زر خاص به.



في مثل هذه الحالات ، يتم استخدام optocoupler الترانزستور.

من أجل جعلها أكثر ملاءمة للجمع بين كل هذا ، أخذت لوحة توصيل وربطها مع أجهزة optocouplers. تجدر الإشارة إلى أن هناك دائرة على optocoupler أو الشق - هذا هو قدم optocoupler حيث يوجد زائد من الصمام الثنائي ، على التوالي ، سنقوم بإرفاق الإيجابيات من z-uno إلى هذه الأرجل ، ولدينا دبابيس 13،14،15. نقوم بدمج "الأرض" على optocouplers من جانب الصمام الثنائي على لوحة اللوح في واحدة ونقوم بإرفاقها بمنفذ gnd على z-uno.



بعد ذلك ، نعلق على مخططنا أزرار الهاتف المحمول ، حيث سيكون هناك زائد ، وحيث لا يهم "الأرض" ، حيث تعمل الأزرار على الإغلاق. في الصورة أدناه يمكنك أن ترى تجميع عينة العمل.



بعد ذلك ، أضف z-uno إلى شبكة الموجة z واختبرها للتشغيل. كما نرى ، كل شيء يعمل.



حظا سعيدا مع اختراعاتك في الفيديو أدناه يمكنك مشاهدة العملية برمتها.

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


All Articles