Z-uno или как добавить любое устройство в сеть z-wave

в 9:51, , рубрики: Песочница, метки: ,

Z-uno или как добавить любое устройство в сеть z-wave - 1Как то устанавливал клиенту умный дом, задача состояла в том, что бы объединить все пульты в один и этим пультом стал телефон, пультов было три, два из них были с инфракрасным сигналом, а вот третий от штор оказался на радиосигнале. Ик сигнал я могу записать и передать с помощью устройства ztx-120, а вот радио сигнал не запишешь, что делать в этом случае я и хочу рассказать в этой статье, только в примере будет не радио пульт, а сотовый телефон, смысл от этого не поменяется.

Для этого я взял плату z-uno, залил на нее свой код при помощи usb кабеля через программу arduino IDE 1.6.5, как установить arduino для z-uno на windows я прочитал на z-uno.z-wave.me/install, инструкция на английском, но по картинкам все понятно. Так как язык C# я не знаю, взял код от стандартной розетки, он есть в программе arduino в виде шаблона, он называется «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;
}

Z-uno или как добавить любое устройство в сеть z-wave - 2На момент написания статьи, пульта под рукой у меня не оказалось, но для примера я взял свой старенький мобильный с кнопками, разобрал и припаялся к кнопкам, один, два и сброс. Далее решил взять с кнопок телефона все минусы и скрутить в один, а плюсы раскидал на пины 13,14,15, но при этом у меня ничего не заработало, так как все кнопки оказались в одном электрическом контуре, а он должен быть у каждой кнопки свой.

Z-uno или как добавить любое устройство в сеть z-wave - 3Для таких случаев используется транзисторная оптопара. Внутри у нее стоит диод и фотоэлемент, при этом вместе они не взаимосвязаны то есть находятся в разных электрических цепях, но могут влиять на друг друга. Как только мы подаем на две лапки напряжение со стороны диода, он загорается и фотоэлемент замыкается, а соответственно вместе с фотоэлементом замыкается и кнопка на телефоне.

Для того чтобы было более удобней все это объединять, я взял макетную плату, и соединил её с оптопарами. Нужно учесть, что там на оптопаре стоит кружочек или выемка, это та ножка оптопары, где расположен плюс диода, соответственно к этим ножкам мы будем присоединять плюсы от z-uno, а это у нас пины 13,14,15, минусы на оптопарах со стороны диода мы объединяем на макетной плате все в один и присоединяем их к порту gnd на z-uno.

Z-uno или как добавить любое устройство в сеть z-wave - 4

Далее присоединяем к нашей схеме кнопки мобильного телефона, где там будет плюс а где минус не имеет значения, так как кнопки работают на замыкание, на картинке ниже можно рассмотреть рабочий образец в сборе.

Z-uno или как добавить любое устройство в сеть z-wave - 5

Далее добавляем z-uno в сеть z-wave, и проверяем его на работоспособность, как мы видим все работает.

Z-uno или как добавить любое устройство в сеть z-wave - 6

Удачных вам изобретений. В видео ниже Вы можете посмотреть весь процесс.

Автор: Испанский лётчик

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js