diff --git a/data/items/bme280-hum.txt b/data/items/bme280-hum.txt index fdd43613..339c5ad6 100644 --- a/data/items/bme280-hum.txt +++ b/data/items/bme280-hum.txt @@ -1 +1 @@ -bme280-hum;id;anydata;Сенсоры;Влажность;order;c[1] \ No newline at end of file +bme280-hum;id;anydataHum;Сенсоры;Влажность;order;addr[0x76];c[1] \ No newline at end of file diff --git a/data/items/bme280-press.txt b/data/items/bme280-press.txt index a2adf9a3..26bfcd02 100644 --- a/data/items/bme280-press.txt +++ b/data/items/bme280-press.txt @@ -1 +1 @@ -bme280-press;id;anydata;Сенсоры;Давление;order;c[1] \ No newline at end of file +bme280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1] \ No newline at end of file diff --git a/data/items/bme280-temp.txt b/data/items/bme280-temp.txt index 81599fb5..65cafaf9 100644 --- a/data/items/bme280-temp.txt +++ b/data/items/bme280-temp.txt @@ -1 +1 @@ -bme280-temp;id;anydata;Сенсоры;Температура;order;c[1] \ No newline at end of file +bme280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1] \ No newline at end of file diff --git a/data/items/bmp280-press.txt b/data/items/bmp280-press.txt new file mode 100644 index 00000000..8a7fa4a9 --- /dev/null +++ b/data/items/bmp280-press.txt @@ -0,0 +1 @@ +bmp280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1] \ No newline at end of file diff --git a/data/items/bmp280-temp.txt b/data/items/bmp280-temp.txt new file mode 100644 index 00000000..2b6a275d --- /dev/null +++ b/data/items/bmp280-temp.txt @@ -0,0 +1 @@ +bmp280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1] \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index 01687169..9bc61778 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -71,7 +71,9 @@ "/set?addItem=dht22-hum": "14.Датчик влажности (DHT22, DHT33, DHT44, AM2302, RHT03)", "/set?addItem=bme280-temp": "15.Датчик температуры bme280", "/set?addItem=bme280-hum": "16.Датчик влажности bme280", - "/set?addItem=bme280-press": "17.Датчик давления bme280" + "/set?addItem=bme280-press": "17.Датчик давления bme280", + "/set?addItem=bmp280-temp": "18.Датчик температуры bmp280", + "/set?addItem=bmp280-press": "19.Датчик давления bmp280" } }, { diff --git a/data/widgets/anydataPress.json b/data/widgets/anydataPress.json new file mode 100644 index 00000000..e67af2c8 --- /dev/null +++ b/data/widgets/anydataPress.json @@ -0,0 +1,5 @@ +{ + "widget": "anydata", + "after": "mm", + "icon": "speedometer" +} \ No newline at end of file diff --git a/include/ItemsCmd.h b/include/ItemsCmd.h index c799fbba..9e014b3c 100644 --- a/include/ItemsCmd.h +++ b/include/ItemsCmd.h @@ -38,3 +38,8 @@ extern void bme280Hum(); extern void bme280ReadingHum(); extern void bme280Press(); extern void bme280ReadingPress(); + +extern void bmp280Temp(); +extern void bmp280ReadingTemp(); +extern void bmp280Press(); +extern void bmp280ReadingPress(); diff --git a/include/items/SensorBme280Class.h b/include/items/SensorBme280Class.h index a2074a11..a713d297 100644 --- a/include/items/SensorBme280Class.h +++ b/include/items/SensorBme280Class.h @@ -18,6 +18,7 @@ class SensorBme280Class : public SensorConvertingClass { bme.begin(hexStringToUint8(_addr)); jsonWriteStr(configOptionJson, _key + "_map", _map); jsonWriteStr(configOptionJson, _key + "_с", _c); + sensorReadingMap += _key + ","; } void SensorBme280ReadTmp(String key) { @@ -43,6 +44,7 @@ class SensorBme280Class : public SensorConvertingClass { void SensorBme280ReadPress(String key) { float value; value = bme.readPressure(); + value = value / 1.333224; float valueFl = this->correction(key, value); eventGen(key, ""); jsonWriteStr(configLiveJson, key, String(valueFl)); diff --git a/include/items/SensorBmp280Class.h b/include/items/SensorBmp280Class.h new file mode 100644 index 00000000..e4b78cf4 --- /dev/null +++ b/include/items/SensorBmp280Class.h @@ -0,0 +1,48 @@ +#pragma once +#include + +#include "Class/LineParsing.h" +#include "Global.h" +#include "items/SensorConvertingClass.h" + +Adafruit_BMP280 bmp; +Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor(); +Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); + +class SensorBmp280Class : public SensorConvertingClass { + public: + SensorBmp280Class() : SensorConvertingClass(){}; + + void SensorBmp280Init() { + bmp.begin(hexStringToUint8(_addr)); + jsonWriteStr(configOptionJson, _key + "_map", _map); + jsonWriteStr(configOptionJson, _key + "_с", _c); + sensorReadingMap += _key + ","; + } + + void SensorBmp280ReadTmp(String key) { + float value; + sensors_event_t temp_event; + bmp_temp->getEvent(&temp_event); + value = temp_event.temperature; + float valueFl = this->correction(key, value); + eventGen(key, ""); + jsonWriteStr(configLiveJson, key, String(valueFl)); + MqttClient::publishStatus(key, String(valueFl)); + Serial.println("I sensor '" + key + "' data: " + String(valueFl)); + } + + void SensorBmp280ReadPress(String key) { + float value; + sensors_event_t pressure_event; + bmp_pressure->getEvent(&pressure_event); + value = pressure_event.pressure; + value = value / 1.333224; + float valueFl = this->correction(key, value); + eventGen(key, ""); + jsonWriteStr(configLiveJson, key, String(valueFl)); + MqttClient::publishStatus(key, String(valueFl)); + Serial.println("I sensor '" + key + "' data: " + String(valueFl)); + } +}; +extern SensorBmp280Class mySensorBmp280; \ No newline at end of file diff --git a/src/ItemsCmd.cpp b/src/ItemsCmd.cpp index 18104c6c..46dfd442 100644 --- a/src/ItemsCmd.cpp +++ b/src/ItemsCmd.cpp @@ -40,6 +40,9 @@ void cmd_init() { sCmd.addCommand("bme280-hum", bme280Hum); sCmd.addCommand("bme280-press", bme280Press); + sCmd.addCommand("bmp280-temp", bmp280Temp); + sCmd.addCommand("bmp280-press", bmp280Press); + handle_time_init(); } diff --git a/src/items/SensorBmp280Class.cpp b/src/items/SensorBmp280Class.cpp new file mode 100644 index 00000000..1dbfbd5d --- /dev/null +++ b/src/items/SensorBmp280Class.cpp @@ -0,0 +1,35 @@ +#include "items/SensorBmp280Class.h" + +#include "ItemsCmd.h" +//#ifdef SensorBmp280Enabled +//=========================================Модуль ультрозвукового дальномера================================================================== +//bmp280-temp;id;anydata;Сенсоры;Температура;order;c[1] +//bmp280-hum;id;anydata;Сенсоры;Температура;order;c[1] +//bmp280-press;id;anydata;Сенсоры;Температура;order;c[1] +//========================================================================================================================================= +SensorBmp280Class mySensorBmp280; + +void bmp280Temp() { + mySensorBmp280.update(); + String key = mySensorBmp280.gkey(); + sCmd.addCommand(key.c_str(), bmp280ReadingTemp); + mySensorBmp280.SensorBmp280Init(); + mySensorBmp280.clear(); +} +void bmp280ReadingTemp() { + String key = sCmd.order(); + mySensorBmp280.SensorBmp280ReadTmp(key); +} + +void bmp280Press() { + mySensorBmp280.update(); + String key = mySensorBmp280.gkey(); + sCmd.addCommand(key.c_str(), bmp280ReadingPress); + mySensorBmp280.SensorBmp280Init(); + mySensorBmp280.clear(); +} +void bmp280ReadingPress() { + String key = sCmd.order(); + mySensorBmp280.SensorBmp280ReadPress(key); +} +//#endif \ No newline at end of file