//#include "Cmd.h" //#include "Global.h" //GMedian<10, int> medianFilter; // //Adafruit_BMP280 bmp; //Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor(); //Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); // //Adafruit_BME280 bme; //Adafruit_Sensor *bme_temp = bme.getTemperatureSensor(); //Adafruit_Sensor *bme_pressure = bme.getPressureSensor(); //Adafruit_Sensor *bme_humidity = bme.getHumiditySensor(); ///const String perceptionStr(byte value); ///const String comfortStr(ComfortState value); //void bmp280T_reading(); ////========================================================================================================================================= ////=========================================Модуль сенсоров DHT============================================================================= //#ifdef DHT_ENABLED ////dhtT t 2 dht11 Температура#DHT,#t°C Датчики any-data 1 //void dhtT() { // String value_name = sCmd.next(); // String pin = sCmd.next(); // String sensor_type = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //dhtT_value_name = value_name; // if (sensor_type == "dht11") { // dht.setup(pin.toInt(), DHTesp::DHT11); // } // if (sensor_type == "dht22") { // dht.setup(pin.toInt(), DHTesp::DHT22); // } // createWidgetByType(widget_name, page_name, page_number, type, value_name); // //sensors_reading_map[4] = 1; //} // //void dhtT_reading() { // float value = 0; // static int counter; // if (dht.getStatus() != 0 && counter < 5) { // // publishStatus(dhtT_value_name, String(dht.getStatusString())); // counter++; // } else { // counter = 0; // value = dht.getTemperature(); // if (String(value) != "nan") { // //eventGen(dhtT_value_name, ""); // //jsonWriteStr(configLiveJson, dhtT_value_name, String(value)); // // publishStatus(dhtT_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + dhtT_value_name + "' data: " + String(value)); // } // } //} // ////dhtH h 2 dht11 Влажность#DHT,#t°C Датчики any-data 1 //void dhtH() { // String value_name = sCmd.next(); // String pin = sCmd.next(); // String sensor_type = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //dhtH_value_name = value_name; // if (sensor_type == "dht11") { // dht.setup(pin.toInt(), DHTesp::DHT11); // } // if (sensor_type == "dht22") { // dht.setup(pin.toInt(), DHTesp::DHT22); // } // createWidgetByType(widget_name, page_name, page_number, type, value_name); // //sensors_reading_map[5] = 1; //} // //void dhtH_reading() { // float value = 0; // static int counter; // if (dht.getStatus() != 0 && counter < 5) { // // publishStatus(dhtH_value_name, String(dht.getStatusString())); // counter++; // } else { // counter = 0; // value = dht.getHumidity(); // if (String(value) != "nan") { // //eventGen(dhtH_value_name, ""); // //jsonWriteStr(configLiveJson, dhtH_value_name, String(value)); // // publishStatus(dhtH_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + dhtH_value_name + "' data: " + String(value)); // } // } //} // ////dhtPerception Восприятие: Датчики 4 //void dhtP() { // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String page_number = sCmd.next(); // createWidgetByType(widget_name, page_name, page_number, "any-data", "dhtPerception"); // //sensors_reading_map[6] = 1; //} // //void dhtP_reading() { // byte value; // if (dht.getStatus() != 0) { // publishStatus("dhtPerception", String(dht.getStatusString())); // } else { // //value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); // String final_line = perceptionStr(value); // jsonWriteStr(configLiveJson, "dhtPerception", final_line); // eventGen("dhtPerception", ""); // publishStatus("dhtPerception", final_line); // if (mqtt.connected()) { // SerialPrint("I", "Sensor", "'dhtPerception' data: " + final_line); // } // } //} // ////dhtComfort Степень#комфорта: Датчики 3 //void dhtC() { // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String page_number = sCmd.next(); // createWidgetByType(widget_name, page_name, page_number, "anydata", "dhtComfort"); // //sensors_reading_map[7] = 1; //} // //void dhtC_reading() { // ComfortState cf; // if (dht.getStatus() != 0) { // publishStatus("dhtComfort", String(dht.getStatusString())); // } else { // //dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); // String final_line = comfortStr(cf); // jsonWriteStr(configLiveJson, "dhtComfort", final_line); // eventGen("dhtComfort", ""); // publishStatus("dhtComfort", final_line); // SerialPrint("I", "Sensor", "'dhtComfort' send date " + final_line); // } //} // //const String perceptionStr(byte value) { // String res; // switch (value) { // case 0: // res = F("Сухой воздух"); // break; // case 1: // res = F("Комфортно"); // break; // case 2: // res = F("Уютно"); // break; // case 3: // res = F("Хорошо"); // break; // case 4: // res = F("Неудобно"); // break; // case 5: // res = F("Довольно неудобно"); // break; // case 6: // res = F("Очень неудобно"); // break; // case 7: // res = F("Невыносимо"); // default: // res = F("Unknown"); // break; // } // return res; //} // //const String comfortStr(ComfortState value) { // String res; // switch (value) { // case Comfort_OK: // res = F("Отлично"); // break; // case Comfort_TooHot: // res = F("Очень жарко"); // break; // case Comfort_TooCold: // res = F("Очень холодно"); // break; // case Comfort_TooDry: // res = F("Очень сухо"); // break; // case Comfort_TooHumid: // res = F("Очень влажно"); // break; // case Comfort_HotAndHumid: // res = F("Жарко и влажно"); // break; // case Comfort_HotAndDry: // res = F("Жарко и сухо"); // break; // case Comfort_ColdAndHumid: // res = F("Холодно и влажно"); // break; // case Comfort_ColdAndDry: // res = F("Холодно и сухо"); // break; // default: // res = F("Неизвестно"); // break; // }; // return res; //} // ////dhtDewpoint Точка#росы: Датчики 5 //void dhtD() { // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String page_number = sCmd.next(); // createWidgetByType(widget_name, page_name, page_number, "anydata", "dhtDewpoint"); // //sensors_reading_map[8] = 1; //} // //void dhtD_reading() { // float value; // if (dht.getStatus() != 0) { // publishStatus("dhtDewpoint", String(dht.getStatusString())); // } else { // //value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); // jsonWriteInt(configLiveJson, "dhtDewpoint", value); // eventGen("dhtDewpoint", ""); // publishStatus("dhtDewpoint", String(value)); // SerialPrint("I", "Sensor", "'dhtDewpoint' data: " + String(value)); // } //} //#endif //=========================================i2c bus esp8266 scl-4 sda-5 ==================================================================== //========================================================================================================================================= //=========================================Модуль сенсоров bmp280========================================================================== ////bmp280T temp1 0x76 Температура#bmp280 Датчики any-data 1 //void bmp280T() { // String value_name = sCmd.next(); // String address = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //bmp280T_value_name = value_name; // createWidgetByType(widget_name, page_name, page_number, type, value_name); // bmp.begin(hexStringToUint8(address)); // bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ // Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ // Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ // Adafruit_BMP280::FILTER_X16, /* Filtering. */ // Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ // //bmp_temp->printSensorDetails(); // //sensors_reading_map[9] = 1; //} // //void bmp280T_reading() { // float value = 0; // sensors_event_t temp_event; // bmp_temp->getEvent(&temp_event); // value = temp_event.temperature; // //jsonWriteStr(configLiveJson, bmp280T_value_name, String(value)); // //eventGen(bmp280T_value_name, ""); // // publishStatus(bmp280T_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + bmp280T_value_name + "' data: " + String(value)); //} // ////bmp280P press1 0x76 Давление#bmp280 Датчики any-data 2 //void bmp280P() { // String value_name = sCmd.next(); // String address = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //bmp280P_value_name = value_name; // createWidgetByType(widget_name, page_name, page_number, type, value_name); // bmp.begin(hexStringToUint8(address)); // bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ // Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ // Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ // Adafruit_BMP280::FILTER_X16, /* Filtering. */ // Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ // //bmp_temp->printSensorDetails(); // //sensors_reading_map[10] = 1; //} // //void bmp280P_reading() { // float value = 0; // sensors_event_t pressure_event; // bmp_pressure->getEvent(&pressure_event); // value = pressure_event.pressure; // value = value / 1.333224; // //jsonWriteStr(configLiveJson, bmp280P_value_name, String(value)); // //eventGen(bmp280P_value_name, ""); // // publishStatus(bmp280P_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + bmp280P_value_name + "' data: " + String(value)); //} // ////========================================================================================================================================= ////=============================================Модуль сенсоров bme280====================================================================== ////bme280T temp1 0x76 Температура#bmp280 Датчики any-data 1 //void bme280T() { // String value_name = sCmd.next(); // String address = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //bme280T_value_name = value_name; // //createWidgetByType(widget_name, page_name, page_number, type, value_name); // //bme.begin(hexStringToUint8(address)); // //sensors_reading_map[11] = 1; //} // //void bme280T_reading() { // float value = 0; // value = bme.readTemperature(); // //jsonWriteStr(configLiveJson, bme280T_value_name, String(value)); // //eventGen(bme280T_value_name, ""); // // publishStatus(bme280T_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + bme280T_value_name + "' data: " + String(value)); //} // ////bme280P pres1 0x76 Давление#bmp280 Датчики any-data 1 //void bme280P() { // String value_name = sCmd.next(); // String address = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //bme280P_value_name = value_name; // //createWidgetByType(widget_name, page_name, page_number, type, value_name); // //bme.begin(hexStringToUint8(address)); // //sensors_reading_map[12] = 1; //} // //void bme280P_reading() { // float value = 0; // value = bme.readPressure(); // value = value / 1.333224 / 100; // //jsonWriteStr(configLiveJson, bme280P_value_name, String(value)); // //eventGen(bme280P_value_name, ""); // // publishStatus(bme280P_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + bme280P_value_name + "' data: " + String(value)); //} // ////bme280H hum1 0x76 Влажность#bmp280 Датчики any-data 1 //void bme280H() { // String value_name = sCmd.next(); // String address = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //bme280H_value_name = value_name; // createWidgetByType(widget_name, page_name, page_number, type, value_name); // bme.begin(hexStringToUint8(address)); // //sensors_reading_map[13] = 1; //} // //void bme280H_reading() { // float value = 0; // value = bme.readHumidity(); // //jsonWriteStr(configLiveJson, bme280H_value_name, String(value)); // //eventGen(bme280H_value_name, ""); // // publishStatus(bme280H_value_name, String(value)); // //SerialPrint("I", "Sensor", "'" + bme280H_value_name + "' data: " + String(value)); //} // ////bme280A altit1 0x76 Высота#bmp280 Датчики any-data 1 //void bme280A() { // String value_name = sCmd.next(); // String address = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); // String page_number = sCmd.next(); // //bme280A_value_name = value_name; // createWidgetByType(widget_name, page_name, page_number, type, value_name); // bme.begin(hexStringToUint8(address)); // //sensors_reading_map[14] = 1; //} // //void bme280A_reading() { // float value = bme.readAltitude(1013.25); // //jsonWriteStr(configLiveJson, bme280A_value_name, String(value, 2)); // // //eventGen(bme280A_value_name, ""); // // // publishStatus(bme280A_value_name, String(value)); // // //SerialPrint("I", "Sensor", "'" + bme280A_value_name + "' data: " + String(value)); //}