Z-Uno +BME280

Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
Post Reply
Clie
Posts: 11
Joined: 06 Jun 2017 12:58

Z-Uno +BME280

Post by Clie » 23 Nov 2019 22:06

Всем привет.
Хочу попользовать девайс + HC2 для мониторинга домашней теплицы.
Сегодня пытался подружить Z-Uno с BME280, но что-то пошло не так :(
Вот скетч:

Code: Select all

#include "Wire.h"
#include "ZUNO_BMP280.h"

#define Switch1 11
#define Switch2 12

byte CurrentSwitchValue1;
byte CurrentSwitchValue2;
int humidity;      // here we will store the humidity
int temperature;   // here we will store the temperature
int pressure;   // here we will store the pressure
ZUNO_BMP280 bmp;

ZUNO_SETUP_CHANNELS(
  ZUNO_SWITCH_BINARY(getter1, setter1),
  ZUNO_SWITCH_BINARY(getter2, setter2),
  ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature),
  ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumidity),
  ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterPressure)
  );


void setup() {
  pinMode(Switch1, OUTPUT); 
  pinMode(Switch2, OUTPUT);
  bmp.begin();
  Serial.begin(9600);
  if (!bmp.begin(0x76)) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
}
  
void loop() {
  delay(1000);

  humidity = bmp.readHumidityH10()/10;
  temperature = bmp.readTemperature();
  pressure = bmp.readPressureHgMM10()/10;
  
  Serial.print("Temperature ");
  Serial.print(temperature);
  Serial.println(" *C");
    
  Serial.print("Pressure ");
  Serial.print(pressure);
  Serial.println(" mm");

  Serial.print("Humidity ");
  Serial.print(humidity);
  Serial.println(" %");

  delay(10000);
}

byte getterTemperature() {
  return temperature;
}

byte getterHumidity() {
  return humidity;
}

byte getterPressure() {
  return pressure;
}


void setter1(byte value) {
  digitalWrite(Switch1, (value > 0) ? LOW : HIGH);
  CurrentSwitchValue1 = value; }
byte getter1(){return CurrentSwitchValue1;}


void setter2(byte value) {
  digitalWrite(Switch2, (value > 0) ? LOW : HIGH);
  CurrentSwitchValue2 = value;}

byte getter2(){return CurrentSwitchValue2;}

HC2 не видит BME совсем :(
BME280.JPG
BME280.JPG (42.89 KiB) Viewed 279 times
На сериал вроде ок
BMe280-2.JPG
BMe280-2.JPG (19.99 KiB) Viewed 279 times

Что я делаю не так?
Спасибо за помощь.

Clie
Posts: 11
Joined: 06 Jun 2017 12:58

Re: Z-Uno +BME280

Post by Clie » 23 Nov 2019 23:30

Нашел косяк в Definitions
определил давление - влажностью
попробовал поменять на
ZUNO_SENSOR_MULTILEVEL_ATMOSPHERIC_PRESSURE
не компилится :(
Поменял на :
ZUNO_SENSOR_MULTILEVEL_BAROMETRIC_PRESSURE

несколько раз пробовал исключить- добавить
В HC2 не работает :(
отображает температуру при добавлении в HC2 - больше не обновляется
давление и влажность не отображает
беда :(

p0lyg0n1
Posts: 177
Joined: 04 Aug 2016 07:14

Re: Z-Uno +BME280

Post by p0lyg0n1 » 02 Dec 2019 11:35

Здравствуйте!
Ну во 1-ых при обновлении данных необходимо отправить Report на контроллер, чтобы тот узнал новое значение.
zunoSendReport(номер_канала);
См. справку https://z-uno.z-wave.me/Reference/zunoSendReport/
в Вашем случае это 3,4,5 каналы:
добавьте перед delay(10000) в loop код:

Code: Select all

       // ...
	zunoSendReport(3); 
	zunoSendReport(4); 
	zunoSendReport(5); 
	
	// ... 
	delay(10000);
Напишите, получилось ли у Вас. Мы можем попробовать на нашем HC2, но в целом скетч выглядит правильным, кроме того, что он не отправляет значения на контроллер.

С уважением,
Александр.

Post Reply