Z-uno ou como adicionar qualquer dispositivo à rede z-wave

De alguma forma, instalei uma casa inteligente para o cliente: a tarefa era combinar todos os controles remotos em um e esse era o telefone. Havia três controles remotos, dois deles com sinal infravermelho, mas o terceiro - das cortinas - apareceu no sinal de rádio. Posso gravar e transmitir o sinal usando o dispositivo ztx-120, mas você não pode gravar o sinal de rádio. O que fazer neste caso, quero dizer neste artigo. Somente no exemplo não haverá controle remoto via rádio, mas um telefone celular, o significado disso não será alterado.

Para fazer isso, peguei a placa z-uno, carreguei meu código nele usando um cabo USB através do programa arduino IDE 1.6.5 (como instalar o arduino para z-uno no windows, li em z-uno.z-wave.me/ instalar - as instruções estão em inglês, mas tudo fica claro nas fotos). Como não conheço a linguagem C, peguei o código em uma tomada padrão, ele está no programa arduino na forma de um modelo (chamado “SimpleSwitch”) e o multipliquei pelos pinos 13,14,15. Abaixo está o código que carreguei na placa z-uno.

ver código
/*
 * 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;
}


No momento em que escrevi o artigo, eu não tinha uma mão em mãos, mas, por exemplo, peguei meu celular antigo com botões, desmontei e soldei os botões "um", "dois" e "redefinir". Então decidi pegar toda a “terra” dos botões do telefone e torcer em um, e espalhei os profissionais nos pinos 13,14,15.

Ao mesmo tempo, nada funcionou para mim, pois todos os botões estavam no mesmo circuito elétrico e cada botão deveria ter o seu.



Para esses casos, é usado um acoplador óptico de transistor.

Para tornar mais conveniente combinar tudo isso, peguei uma tábua de pão e a conectei com os acopladores ópticos. Deve-se levar em conta que há um círculo no acoplador óptico ou um entalhe - este é o pé do acoplador óptico onde está localizado o sinal de adição do diodo, respectivamente, anexaremos sinais de z-uno a essas pernas e temos pinos 13,14,15. Combinamos o "terra" nos acopladores ópticos do lado do diodo na placa de ensaio em um e os anexamos à porta gnd no z-uno.



Em seguida, anexamos ao nosso esquema os botões do telefone celular, onde haverá um sinal de mais e onde o “solo” não importa, pois os botões funcionam para fechar. Na figura abaixo, você pode ver a montagem da amostra de trabalho.



Em seguida, adicione z-uno à rede de ondas z e teste sua operacionalidade. Como vemos, tudo funciona.



Boa sorte com suas invenções. No vídeo abaixo, você pode assistir a todo o processo.

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


All Articles