mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +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=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"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
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 bme280Press();
|
||||
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));
|
||||
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));
|
||||
|
||||
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-press", bme280Press);
|
||||
|
||||
sCmd.addCommand("bmp280-temp", bmp280Temp);
|
||||
sCmd.addCommand("bmp280-press", bmp280Press);
|
||||
|
||||
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