mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
bme 280 support
This commit is contained in:
1
data/items/bme280-hum.txt
Normal file
1
data/items/bme280-hum.txt
Normal file
@@ -0,0 +1 @@
|
||||
bme280-hum;id;anydata;Сенсоры;Влажность;order;c[1]
|
||||
1
data/items/bme280-press.txt
Normal file
1
data/items/bme280-press.txt
Normal file
@@ -0,0 +1 @@
|
||||
bme280-press;id;anydata;Сенсоры;Давление;order;c[1]
|
||||
1
data/items/bme280-temp.txt
Normal file
1
data/items/bme280-temp.txt
Normal file
@@ -0,0 +1 @@
|
||||
bme280-temp;id;anydata;Сенсоры;Температура;order;c[1]
|
||||
@@ -68,7 +68,10 @@
|
||||
"/set?addItem=dht11-temp": "11.Датчик температуры (DHT11)",
|
||||
"/set?addItem=dht11-hum": "12.Датчик влажности (DHT11)",
|
||||
"/set?addItem=dht22-temp": "13.Датчик температуры (DHT22, DHT33, DHT44, AM2302, RHT03)",
|
||||
"/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-hum": "16.Датчик влажности bme280",
|
||||
"/set?addItem=bme280-press": "17.Датчик давления bme280"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -76,6 +76,9 @@ class LineParsing {
|
||||
if (arg.indexOf("type[") != -1) {
|
||||
_type = extractInner(arg);
|
||||
}
|
||||
if (arg.indexOf("addr[") != -1) {
|
||||
_addr = extractInner(arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,6 +124,10 @@ class LineParsing {
|
||||
String gtype() {
|
||||
return _type;
|
||||
}
|
||||
String gaddr() {
|
||||
return _addr;
|
||||
}
|
||||
|
||||
|
||||
void clear() {
|
||||
_key = "";
|
||||
@@ -136,6 +143,7 @@ class LineParsing {
|
||||
_state = "";
|
||||
_db = "";
|
||||
_type = "";
|
||||
_addr = "";
|
||||
}
|
||||
|
||||
String extractInnerDigit(String str) {
|
||||
|
||||
@@ -30,4 +30,11 @@ extern void dallasReading();
|
||||
extern void dhtTemp();
|
||||
extern void dhtReadingTemp();
|
||||
extern void dhtHum();
|
||||
extern void dhtReadingHum();
|
||||
extern void dhtReadingHum();
|
||||
|
||||
extern void bme280Temp();
|
||||
extern void bme280ReadingTemp();
|
||||
extern void bme280Hum();
|
||||
extern void bme280ReadingHum();
|
||||
extern void bme280Press();
|
||||
extern void bme280ReadingPress();
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
#pragma once
|
||||
#include <Arduino.h>
|
||||
|
||||
#include "Class/LineParsing.h"
|
||||
#include "items/SensorConvertingClass.h"
|
||||
#include "Global.h"
|
||||
#include "items/SensorConvertingClass.h"
|
||||
|
||||
class SensorAnalogClass : public SensorConvertingClass {
|
||||
public:
|
||||
SensorAnalogClass() : SensorConvertingClass(){};
|
||||
|
||||
void SensorAnalogInit() {
|
||||
jsonWriteStr(configOptionJson, _key + "_pin", _pin);
|
||||
jsonWriteStr(configOptionJson, _key + "_map", _map);
|
||||
jsonWriteStr(configOptionJson, _key + "_с", _c);
|
||||
}
|
||||
|
||||
int SensorAnalogRead(String key, String pin) {
|
||||
|
||||
int pinInt = pin.toInt();
|
||||
int value;
|
||||
|
||||
|
||||
@@ -1,45 +1,53 @@
|
||||
//#pragma once
|
||||
//#include <Arduino.h>
|
||||
//#include "Class/LineParsing.h"
|
||||
//#include "Global.h"
|
||||
//#include "items/SensorConvertingClass.h"
|
||||
//
|
||||
//class SensorBme280Class : public SensorConvertingClass {
|
||||
// public:
|
||||
// SensorBme280Class() : SensorConvertingClass(){};
|
||||
//
|
||||
// void SensorBme280Init() {
|
||||
// oneWire = new OneWire((uint8_t)_pin.toInt());
|
||||
// sensors.setOneWire(oneWire);
|
||||
// sensors.begin();
|
||||
// sensors.setResolution(48);
|
||||
//
|
||||
// sensorReadingMap += _key + ",";
|
||||
// //Bme280EnterCounter++;
|
||||
//
|
||||
// //jsonWriteInt(configOptionJson, _key + "_num", Bme280EnterCounter);
|
||||
// jsonWriteStr(configOptionJson, _key + "_map", _map);
|
||||
// jsonWriteStr(configOptionJson, _key + "_с", _c);
|
||||
// }
|
||||
//
|
||||
// void SensorBme280Read(String key) {
|
||||
// float value;
|
||||
// byte num = sensors.getDS18Count();
|
||||
// sensors.requestTemperatures();
|
||||
//
|
||||
// int cnt = jsonReadInt(configOptionJson, key + "_num");
|
||||
//
|
||||
// for (byte i = 0; i < num; i++) {
|
||||
// if (i == cnt) {
|
||||
// value = sensors.getTempCByIndex(i);
|
||||
// //value = this->mapping(key, value);
|
||||
// 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 SensorBme280Class mySensorBme280;
|
||||
#pragma once
|
||||
#include <Arduino.h>
|
||||
|
||||
#include "Class/LineParsing.h"
|
||||
#include "Global.h"
|
||||
#include "items/SensorConvertingClass.h"
|
||||
|
||||
Adafruit_BME280 bme;
|
||||
Adafruit_Sensor *bme_temp = bme.getTemperatureSensor();
|
||||
Adafruit_Sensor *bme_pressure = bme.getPressureSensor();
|
||||
Adafruit_Sensor *bme_humidity = bme.getHumiditySensor();
|
||||
|
||||
class SensorBme280Class : public SensorConvertingClass {
|
||||
public:
|
||||
SensorBme280Class() : SensorConvertingClass(){};
|
||||
|
||||
void SensorBme280Init() {
|
||||
bme.begin(hexStringToUint8(_addr));
|
||||
jsonWriteStr(configOptionJson, _key + "_map", _map);
|
||||
jsonWriteStr(configOptionJson, _key + "_с", _c);
|
||||
}
|
||||
|
||||
void SensorBme280ReadTmp(String key) {
|
||||
float value;
|
||||
value = bme.readTemperature();
|
||||
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 SensorBme280ReadHum(String key) {
|
||||
float value;
|
||||
value = bme.readHumidity();
|
||||
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 SensorBme280ReadPress(String key) {
|
||||
float value;
|
||||
value = bme.readPressure();
|
||||
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 SensorBme280Class mySensorBme280;
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "Class/LineParsing.h"
|
||||
#include "Global.h"
|
||||
#include "items/SensorConvertingClass.h"
|
||||
|
||||
DHTesp dht;
|
||||
class SensorDhtClass : public SensorConvertingClass {
|
||||
public:
|
||||
|
||||
@@ -35,7 +35,10 @@ void cmd_init() {
|
||||
|
||||
sCmd.addCommand("dht-temp", dhtTemp);
|
||||
sCmd.addCommand("dht-hum", dhtHum);
|
||||
|
||||
|
||||
sCmd.addCommand("bme280-temp", bme280Temp);
|
||||
sCmd.addCommand("bme280-hum", bme280Hum);
|
||||
sCmd.addCommand("bme280-press", bme280Press);
|
||||
|
||||
handle_time_init();
|
||||
}
|
||||
|
||||
@@ -8,12 +8,9 @@ SensorAnalogClass mySensorAnalog;
|
||||
void analogAdc() {
|
||||
mySensorAnalog.update();
|
||||
String key = mySensorAnalog.gkey();
|
||||
String pin = mySensorAnalog.gpin();
|
||||
sCmd.addCommand(key.c_str(), analogReading);
|
||||
sensorReadingMap += key + ",";
|
||||
jsonWriteStr(configOptionJson, key + "_pin", pin);
|
||||
jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog.gmap());
|
||||
jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog.gc());
|
||||
mySensorAnalog.SensorAnalogInit();
|
||||
mySensorAnalog.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +1,47 @@
|
||||
//#include "ItemsCmd.h"
|
||||
//#include "items/SensorBme280Class.h"
|
||||
////#ifdef SensorBme280Enabled
|
||||
////=========================================Модуль ультрозвукового дальномера==================================================================
|
||||
////Bme280-temp;id;anydata;Сенсоры;Температура;order;pin;c[1]
|
||||
////=========================================================================================================================================
|
||||
//SensorBme280Class mySensorBme280;
|
||||
//void bme280Temp() {
|
||||
// mySensorBme280.update();
|
||||
// String key = mySensorBme280.gkey();
|
||||
// sCmd.addCommand(key.c_str(), bme280Reading);
|
||||
// mySensorBme280.SensorBme280Init();
|
||||
// mySensorBme280.clear();
|
||||
//}
|
||||
//
|
||||
//void bme280Reading() {
|
||||
// String key = sCmd.order();
|
||||
// mySensorBme280.SensorBme280Read(key);
|
||||
//}
|
||||
////#endif
|
||||
#include "items/SensorBme280Class.h"
|
||||
|
||||
#include "ItemsCmd.h"
|
||||
//#ifdef SensorBme280Enabled
|
||||
//=========================================Модуль ультрозвукового дальномера==================================================================
|
||||
//bme280-temp;id;anydata;Сенсоры;Температура;order;c[1]
|
||||
//bme280-hum;id;anydata;Сенсоры;Температура;order;c[1]
|
||||
//bme280-press;id;anydata;Сенсоры;Температура;order;c[1]
|
||||
//=========================================================================================================================================
|
||||
SensorBme280Class mySensorBme280;
|
||||
|
||||
void bme280Temp() {
|
||||
mySensorBme280.update();
|
||||
String key = mySensorBme280.gkey();
|
||||
sCmd.addCommand(key.c_str(), bme280ReadingTemp);
|
||||
mySensorBme280.SensorBme280Init();
|
||||
mySensorBme280.clear();
|
||||
}
|
||||
void bme280ReadingTemp() {
|
||||
String key = sCmd.order();
|
||||
mySensorBme280.SensorBme280ReadTmp(key);
|
||||
}
|
||||
|
||||
void bme280Hum() {
|
||||
mySensorBme280.update();
|
||||
String key = mySensorBme280.gkey();
|
||||
sCmd.addCommand(key.c_str(), bme280ReadingHum);
|
||||
mySensorBme280.SensorBme280Init();
|
||||
mySensorBme280.clear();
|
||||
}
|
||||
void bme280ReadingHum() {
|
||||
String key = sCmd.order();
|
||||
mySensorBme280.SensorBme280ReadHum(key);
|
||||
}
|
||||
|
||||
void bme280Press() {
|
||||
mySensorBme280.update();
|
||||
String key = mySensorBme280.gkey();
|
||||
sCmd.addCommand(key.c_str(), bme280ReadingPress);
|
||||
mySensorBme280.SensorBme280Init();
|
||||
mySensorBme280.clear();
|
||||
}
|
||||
void bme280ReadingPress() {
|
||||
String key = sCmd.order();
|
||||
mySensorBme280.SensorBme280ReadPress(key);
|
||||
}
|
||||
//#endif
|
||||
@@ -19,6 +19,8 @@ void dhtReadingTemp() {
|
||||
mySensorDht.SensorDhtReadTemp(key);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void dhtHum() {
|
||||
mySensorDht.update();
|
||||
String key = mySensorDht.gkey();
|
||||
|
||||
Reference in New Issue
Block a user