Bonjour à tous,
Je m'arrache les cheveux sur la programmation d'un z-uno pour créer un module d'arrosage.
Je déclare : - 1 multilevel sensor temperature - 1 multilevel sensor humidity - 1 binary sensor - 5 binary switches
A chaque inclusion, je n'arrive à inclure que le capteur de température + les 5 relais. Impossible d'avoir toutes les channels !
Par contre si je crée des sketches individuels, j'arrive bien à avoir la température, séparément le binary sensor, les relais.
Dans tous les cas : impossible d'avoir l'humidité (qui pourtant remonte bien dans la console IDE, c'est donc un problème de config z-wave).
Est-ce que certains d'entre vous on déjà eu des soucis pour configurer des channels ? La carte z-uno est-elle vraiment bien intégrée à l'eedomus ?
Merci pour votre aide.
Voici mon code (en cours) au cas où :
- Code : Tout sélectionner
#include <ZUNO_DHT.h>
// pin number, where relay is connected #define RELAY1_PIN 12 #define RELAY2_PIN 13 #define RELAY3_PIN 14 #define RELAY4_PIN 15 #define RELAY5_PIN 16 #define DHTPIN 10 #define WATER_PIN 8 // digital pin for pullup
DHT dht(DHTPIN, DHT22); //DHT22
// variable to store current relay state byte temperature = 0; //decimal byte humidity = 0; byte water_level = 0; byte lastSetValue_RELAY1; byte lastSetValue_RELAY2; byte lastSetValue_RELAY3; byte lastSetValue_RELAY4; byte lastSetValue_RELAY5;
ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_ALWAYS_AWAKE);
// set zwave channels ZUNO_SETUP_CHANNELS( ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_TEMPERATURE, SENSOR_MULTILEVEL_SCALE_CELSIUS, SENSOR_MULTILEVEL_SIZE_ONE_BYTE, SENSOR_MULTILEVEL_PRECISION_ZERO_DECIMALS, getter_Temperature), ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_RELATIVE_HUMIDITY, SENSOR_MULTILEVEL_SCALE_PERCENTAGE_VALUE, SENSOR_MULTILEVEL_SIZE_ONE_BYTE, SENSOR_MULTILEVEL_PRECISION_ZERO_DECIMALS, getter_Humidity), ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_DOOR_WINDOW, getter_waterlevel), ZUNO_SWITCH_BINARY(getter_RELAY1, setter_RELAY1), ZUNO_SWITCH_BINARY(getter_RELAY2, setter_RELAY2), ZUNO_SWITCH_BINARY(getter_RELAY3, setter_RELAY3), ZUNO_SWITCH_BINARY(getter_RELAY4, setter_RELAY4), ZUNO_SWITCH_BINARY(getter_RELAY5, setter_RELAY5) );
void setup() { pinMode(RELAY1_PIN, OUTPUT); // set up relay pin as output pinMode(RELAY2_PIN, OUTPUT); // set up relay pin as output pinMode(RELAY3_PIN, OUTPUT); // set up relay pin as output pinMode(RELAY4_PIN, OUTPUT); // set up relay pin as output pinMode(RELAY5_PIN, OUTPUT); // set up relay pin as output pinMode(WATER_PIN, INPUT_PULLUP); dht.begin(); // on lance la librairie qui lit les valeurs du capteur DHT22 Serial.begin(); Serial.println("Start"); digitalWrite(RELAY1_PIN, HIGH); digitalWrite(RELAY2_PIN, HIGH); digitalWrite(RELAY3_PIN, HIGH); digitalWrite(RELAY4_PIN, HIGH); digitalWrite(RELAY5_PIN, HIGH); }
void loop() { // obtaining readings from the sensor DHT temperature = dht.readTemperature(); humidity = dht.readHumidity(); water_level = digitalRead(WATER_PIN); Serial.print("Humidity = "); Serial.print(humidity); Serial.print(" % "); Serial.print("Temperature = "); Serial.print(temperature); Serial.println(" *C"); Serial.print("Niveau cuve = "); Serial.println(water_level); // send data to channels zunoSendReport(1); // temperature zunoSendReport(2); // humidity zunoSendReport(3); // waterlevel // send every 30 seconds delay(30000); }
byte getter_Temperature() { return temperature; }
byte getter_Humidity() { return humidity; }
byte getter_waterlevel() { return water_level; }
byte getter_RELAY1() { return lastSetValue_RELAY1; }
byte getter_RELAY2() { return lastSetValue_RELAY2; }
byte getter_RELAY3() { return lastSetValue_RELAY3; }
byte getter_RELAY4() { return lastSetValue_RELAY4; }
byte getter_RELAY5() { return lastSetValue_RELAY5; }
void setter_RELAY1(byte newValue) { // newValue is a variable, holding a "value" // which came from the controller or other Z-Wave device if (newValue > 0) { // if greater then zero digitalWrite(RELAY1_PIN, HIGH); //turn relay on } else { // if equals zero digitalWrite(RELAY1_PIN, LOW); //turn relay off }
// save the new value in a variable lastSetValue_RELAY1 = newValue; }
void setter_RELAY2(byte newValue) { // newValue is a variable, holding a "value" // which came from the controller or other Z-Wave device if (newValue > 0) { // if greater then zero digitalWrite(RELAY2_PIN, HIGH); //turn relay on } else { // if equals zero digitalWrite(RELAY2_PIN, LOW); //turn relay off }
// save the new value in a variable lastSetValue_RELAY2 = newValue; }
void setter_RELAY3(byte newValue) { // newValue is a variable, holding a "value" // which came from the controller or other Z-Wave device if (newValue > 0) { // if greater then zero digitalWrite(RELAY3_PIN, HIGH); //turn relay on } else { // if equals zero digitalWrite(RELAY3_PIN, LOW); //turn relay off }
// save the new value in a variable lastSetValue_RELAY3 = newValue; }
void setter_RELAY4(byte newValue) { // newValue is a variable, holding a "value" // which came from the controller or other Z-Wave device if (newValue > 0) { // if greater then zero digitalWrite(RELAY4_PIN, HIGH); //turn relay on } else { // if equals zero digitalWrite(RELAY4_PIN, LOW); //turn relay off }
// save the new value in a variable lastSetValue_RELAY4 = newValue; }
void setter_RELAY5(byte newValue) { // newValue is a variable, holding a "value" // which came from the controller or other Z-Wave device if (newValue > 0) { // if greater then zero digitalWrite(RELAY5_PIN, HIGH); //turn relay on } else { // if equals zero digitalWrite(RELAY5_PIN, LOW); //turn relay off }
// save the new value in a variable lastSetValue_RELAY5 = newValue; }
|