mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 11:59:12 +03:00
add bmp sensor
This commit is contained in:
@@ -1 +1 @@
|
|||||||
bme280-hum;id;anydata;Сенсоры;Влажность;order;c[1]
|
bme280-hum;id;anydataHum;Сенсоры;Влажность;order;addr[0x76];c[1]
|
||||||
@@ -1 +1 @@
|
|||||||
bme280-press;id;anydata;Сенсоры;Давление;order;c[1]
|
bme280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1]
|
||||||
@@ -1 +1 @@
|
|||||||
bme280-temp;id;anydata;Сенсоры;Температура;order;c[1]
|
bme280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1]
|
||||||
1
data/items/bmp280-press.txt
Normal file
1
data/items/bmp280-press.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
bmp280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1]
|
||||||
1
data/items/bmp280-temp.txt
Normal file
1
data/items/bmp280-temp.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
bmp280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1]
|
||||||
@@ -71,7 +71,9 @@
|
|||||||
"/set?addItem=dht22-hum": "14.Датчик влажности (DHT22, DHT33, DHT44, AM2302, RHT03)",
|
"/set?addItem=dht22-hum": "14.Датчик влажности (DHT22, DHT33, DHT44, AM2302, RHT03)",
|
||||||
"/set?addItem=bme280-temp": "15.Датчик температуры bme280",
|
"/set?addItem=bme280-temp": "15.Датчик температуры bme280",
|
||||||
"/set?addItem=bme280-hum": "16.Датчик влажности 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"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
5
data/widgets/anydataPress.json
Normal file
5
data/widgets/anydataPress.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"widget": "anydata",
|
||||||
|
"after": "mm",
|
||||||
|
"icon": "speedometer"
|
||||||
|
}
|
||||||
@@ -38,3 +38,8 @@ extern void bme280Hum();
|
|||||||
extern void bme280ReadingHum();
|
extern void bme280ReadingHum();
|
||||||
extern void bme280Press();
|
extern void bme280Press();
|
||||||
extern void bme280ReadingPress();
|
extern void bme280ReadingPress();
|
||||||
|
|
||||||
|
extern void bmp280Temp();
|
||||||
|
extern void bmp280ReadingTemp();
|
||||||
|
extern void bmp280Press();
|
||||||
|
extern void bmp280ReadingPress();
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class SensorBme280Class : public SensorConvertingClass {
|
|||||||
bme.begin(hexStringToUint8(_addr));
|
bme.begin(hexStringToUint8(_addr));
|
||||||
jsonWriteStr(configOptionJson, _key + "_map", _map);
|
jsonWriteStr(configOptionJson, _key + "_map", _map);
|
||||||
jsonWriteStr(configOptionJson, _key + "_с", _c);
|
jsonWriteStr(configOptionJson, _key + "_с", _c);
|
||||||
|
sensorReadingMap += _key + ",";
|
||||||
}
|
}
|
||||||
|
|
||||||
void SensorBme280ReadTmp(String key) {
|
void SensorBme280ReadTmp(String key) {
|
||||||
@@ -43,6 +44,7 @@ class SensorBme280Class : public SensorConvertingClass {
|
|||||||
void SensorBme280ReadPress(String key) {
|
void SensorBme280ReadPress(String key) {
|
||||||
float value;
|
float value;
|
||||||
value = bme.readPressure();
|
value = bme.readPressure();
|
||||||
|
value = value / 1.333224;
|
||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
|
|||||||
48
include/items/SensorBmp280Class.h
Normal file
48
include/items/SensorBmp280Class.h
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#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;
|
||||||
@@ -40,6 +40,9 @@ void cmd_init() {
|
|||||||
sCmd.addCommand("bme280-hum", bme280Hum);
|
sCmd.addCommand("bme280-hum", bme280Hum);
|
||||||
sCmd.addCommand("bme280-press", bme280Press);
|
sCmd.addCommand("bme280-press", bme280Press);
|
||||||
|
|
||||||
|
sCmd.addCommand("bmp280-temp", bmp280Temp);
|
||||||
|
sCmd.addCommand("bmp280-press", bmp280Press);
|
||||||
|
|
||||||
handle_time_init();
|
handle_time_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
35
src/items/SensorBmp280Class.cpp
Normal file
35
src/items/SensorBmp280Class.cpp
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user