Z-uno oder wie man ein Gerät zum Z-Wave-Netzwerk hinzufügt

Irgendwie habe ich ein Smart Home für den Kunden installiert: Die Aufgabe bestand darin, alle Fernbedienungen in einer zu kombinieren, und dies war das Telefon. Es gab drei Fernbedienungen, zwei davon mit Infrarotsignal, aber die dritte - von den Vorhängen - tauchte im Funksignal auf. Ich kann das Signal mit dem ztx-120-Gerät aufzeichnen und übertragen, aber Sie können das Funksignal nicht aufzeichnen. Was in diesem Fall zu tun ist, möchte ich in diesem Artikel erläutern. Nur im Beispiel gibt es keine Funkfernbedienung, sondern ein Handy, dessen Bedeutung sich nicht ändert.

Zu diesem Zweck nahm ich das z-uno-Board und lud meinen Code mit einem USB-Kabel über das Programm arduino IDE 1.6.5 darauf hoch (wie man arduino für z-uno unter Windows installiert, lese ich auf z-uno.z-wave.me/). installieren - die Anleitung ist in Englisch, aber alles ist aus den Bildern ersichtlich). Da ich die C-Sprache nicht kenne, habe ich den Code aus einer Standardsteckdose genommen, er befindet sich im Arduino-Programm in Form einer Vorlage ("SimpleSwitch" genannt) und multipliziert mit den Pins 13, 14, 15. Unten ist der Code, den ich auf das Z-Uno-Board hochgeladen habe.

Code anzeigen
/*
 * 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;
}


Zum Zeitpunkt des Schreibens des Artikels hatte ich keine Hand zur Hand, aber zum Beispiel nahm ich mein altes Handy mit Knöpfen, zerlegte es und löte es an die Knöpfe "eins", "zwei" und "zurücksetzen". Dann beschloss ich, die gesamte „Erde“ von den Telefontasten zu nehmen und sie zu einer zu verdrehen, und verteilte die Profis in die Stifte 13, 14, 15.

Gleichzeitig hat bei mir nichts funktioniert, da sich alle Tasten im selben Stromkreis befanden und jede Taste ihre eigene haben sollte.



In solchen Fällen wird ein Transistoroptokoppler verwendet.

Um all dies bequemer zu kombinieren, nahm ich ein Steckbrett und verband es mit Optokopplern. Es muss berücksichtigt werden, dass sich auf dem Optokoppler ein Kreis oder eine Kerbe befindet - dies ist der Fuß des Optokopplers, auf dem sich das Plus der Diode befindet. Wir werden Pluspunkte von z-uno an diesen Beinen anbringen und wir haben die Stifte 13, 14, 15. Wir kombinieren die "Masse" der Optokoppler auf der Diodenseite des Steckbretts in einem und befestigen sie am gnd-Port von z-uno.



Als nächstes befestigen wir die Tasten des Mobiltelefons an unserem Schema, wo es ein Plus gibt und wo "Masse" - es spielt keine Rolle, da die Tasten zum Schließen funktionieren. In der Abbildung unten sehen Sie die Arbeitsprobenbaugruppe.



Fügen Sie als Nächstes z-uno zum Z-Wave-Netzwerk hinzu und testen Sie es auf Funktionsfähigkeit. Wie wir sehen, funktioniert alles.



Viel Glück bei Ihren Erfindungen. Im Video unten können Sie den gesamten Prozess sehen.

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


All Articles