mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
177 lines
5.0 KiB
JSON
177 lines
5.0 KiB
JSON
{
|
||
"mark": "iotm",
|
||
"config": [
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "MQgas",
|
||
"id": "MQ135",
|
||
"widget": "anydataPpm",
|
||
"page": "Сенсоры",
|
||
"descr": "MQ-135",
|
||
"Series": 135,
|
||
"Gas": "CO2",
|
||
"Rl on board": "10",
|
||
"Ro in clean air": 0,
|
||
"Rl/Ro in clean air": "0",
|
||
"PPM in clean air": "397.13",
|
||
"aLimit": "-0.42",
|
||
"bLimit": "1.92",
|
||
"Warm up time": "60",
|
||
"Sample interval": 20,
|
||
"Sample times": "10",
|
||
"Calibtation intensity": 5,
|
||
"autoCalibration": 1,
|
||
"autoCalib.Period": 1,
|
||
"TempHum correction": 1,
|
||
"k1": 0.00672096284322792,
|
||
"k2": -0.0159038179354688,
|
||
"b1": -0.741244323718154,
|
||
"b2": 1.77535862501753,
|
||
"temperature": "20",
|
||
"idTempSensor": "Tmp",
|
||
"humidity": "50",
|
||
"idHumSensor": "Hum",
|
||
"Debug": 1,
|
||
"plus": 0,
|
||
"multiply": 1,
|
||
"round": 1,
|
||
"pin-Esp32": 34,
|
||
"operating voltage": 3.3,
|
||
"int": 15
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Writing",
|
||
"subtype": "Loging",
|
||
"id": "log",
|
||
"widget": "chart1",
|
||
"page": "Графики",
|
||
"descr": "CO2",
|
||
"int": "1",
|
||
"logid": "MQ135",
|
||
"points": 300
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "VButton",
|
||
"id": "vbtn",
|
||
"needSave": 0,
|
||
"widget": "toggle",
|
||
"page": "Калибровка",
|
||
"descr": "Быстрая Калибровка",
|
||
"int": "0",
|
||
"val": "0"
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "Bme280t",
|
||
"id": "Tmp",
|
||
"widget": "anydataTmp",
|
||
"page": "Сенсоры",
|
||
"descr": "Температура",
|
||
"int": 15,
|
||
"addr": "0x76",
|
||
"round": 1
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "Bme280h",
|
||
"id": "Hum",
|
||
"widget": "anydataHum",
|
||
"page": "Сенсоры",
|
||
"descr": "Влажность",
|
||
"int": 15,
|
||
"addr": "0x76",
|
||
"round": 1
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Writing",
|
||
"subtype": "Timer",
|
||
"id": "timer0",
|
||
"widget": "nil",
|
||
"page": "",
|
||
"descr": "Таймер",
|
||
"int": "1",
|
||
"countDown": 15,
|
||
"ticker": "0",
|
||
"repeat": "1",
|
||
"needSave": 0
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "Variable",
|
||
"id": "vout",
|
||
"needSave": 0,
|
||
"widget": "anydataDef",
|
||
"page": "Калибровка",
|
||
"descr": "Последняя калибровка",
|
||
"int": "0",
|
||
"val": "0.0",
|
||
"map": "1024,1024,1,100",
|
||
"plus": 0,
|
||
"multiply": 1,
|
||
"round": 0
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "VButton",
|
||
"id": "vbtn13",
|
||
"needSave": 0,
|
||
"widget": "toggle",
|
||
"page": "Калибровка",
|
||
"descr": "Автокалибровка выкл/вкл",
|
||
"int": "0",
|
||
"val": "1"
|
||
},
|
||
{
|
||
"global": 0,
|
||
"type": "Reading",
|
||
"subtype": "VButton",
|
||
"id": "vbtn50",
|
||
"needSave": 0,
|
||
"widget": "toggle",
|
||
"page": "Калибровка",
|
||
"descr": "Накопительная Калибровка",
|
||
"int": "0",
|
||
"val": "0"
|
||
}
|
||
]
|
||
}
|
||
|
||
scenario=>#запускаем разово калибровку без параметрова или с ними
|
||
if vbtn then {
|
||
MQ135.calibrate();
|
||
#MQ135.calibrateR0(42);
|
||
#MQ135.calibrateRlRo(0.60);
|
||
#MQ135.calibratePPM(400);
|
||
#MQ135.TempHumCorrection(20,55);
|
||
#MQ135.TempHumCorrection(Tmp,Hum);
|
||
vbtn = 0;}
|
||
|
||
#обновляем время последней калибровки
|
||
if MQ135 then {
|
||
vout = MQ135.lastCalibration();
|
||
}
|
||
|
||
|
||
#влючаем/выключаем автокалибровку
|
||
if vbtn13 == 1 then MQ135.setAutoCalibration(1)
|
||
if vbtn13 == 0 then MQ135.setAutoCalibration(0)
|
||
|
||
|
||
#принудительно запускаем автокалибровку
|
||
if vbtn50 then {
|
||
MQ135.runAutoCalibration();
|
||
vbtn50 = 0;
|
||
}
|
||
|
||
#можно по таймеру передавать температуру и влажность в модуль. Но проще сразу вписать id этих элементов в настройки MQ
|
||
#if timer0 == 0 then MQ135.TempHumCorrection(Tmp,Hum);
|