diff --git a/Cmd.ino b/Cmd.ino index 04f78cb3..c152d5d3 100644 --- a/Cmd.ino +++ b/Cmd.ino @@ -26,7 +26,9 @@ void CMD_init() { sCmd.addCommand("bmp280P", bmp280P); sCmd.addCommand("bme280T", bme280T); - //sCmd.addCommand("bme280P", bme280P); + sCmd.addCommand("bme280P", bme280P); + sCmd.addCommand("bme280H", bme280H); + sCmd.addCommand("bme280A", bme280A); sCmd.addCommand("stepper", stepper); sCmd.addCommand("stepperSet", stepperSet); @@ -34,6 +36,9 @@ void CMD_init() { sCmd.addCommand("servo", servo_); sCmd.addCommand("servoSet", servoSet); + sCmd.addCommand("serialBegin", serialBegin); + sCmd.addCommand("serialWrite", serialWrite); + sCmd.addCommand("logging", logging); sCmd.addCommand("inputDigit", inputDigit); @@ -467,6 +472,19 @@ void servoSet() { jsonWriteStr(configJson, "servo" + servo_number, servo_state); sendSTATUS("servo" + servo_number, servo_state); } + +void serialBegin() { + String s_speed = sCmd.next(); + //String rxPin = sCmd.next(); + //String txPin = sCmd.next(); + //SoftwareSerial mySerial(rxPin.toInt(), txPin.toInt()); + mySerial.begin(s_speed.toInt()); +} + +void serialWrite() { + String text = sCmd.next(); + mySerial.println(text); +} //==================================================================================================================================================== /* void inputText() { @@ -593,7 +611,7 @@ void stringExecution(String str) { String tmp = selectToMarker (str, "\n"); sCmd.readStr(tmp); - + str = deleteBeforeDelimiter(str, "\n"); } } diff --git a/Init.ino b/Init.ino index 57823e2d..7f8d6421 100644 --- a/Init.ino +++ b/Init.ino @@ -47,7 +47,7 @@ void Device_init() { enter_to_logging_counter = LOG1 - 1; analog_value_names_list = ""; - enter_to_analog_counter = 0; //ANALOG1 - 1; + enter_to_analog_counter = 0; level_value_name = ""; @@ -58,19 +58,20 @@ void Device_init() { bmp280P_value_name = ""; bme280T_value_name = ""; - - for (int i = 0; i <= sensors_count; i++) { + bme280P_value_name = ""; + bme280H_value_name = ""; + bme280A_value_name = ""; + + //int array_sz = sizeof(sensors_reading_map) / sizeof(sensors_reading_map[0]); + + for (int i = 0; i <= 14; i++) { sensors_reading_map[i] = 0; } - + for (int i = LOG1; i <= LOG5; i++) { ts.remove(i); } -// for (int i = LEVEL; i <= STEPPER2; i++) { -// ts.remove(i); -// } - #ifdef layout_in_ram all_widgets = ""; #else diff --git a/Sensors.ino b/Sensors.ino index 4519501f..058f3f94 100644 --- a/Sensors.ino +++ b/Sensors.ino @@ -23,6 +23,9 @@ void sensors_init() { if (sensors_reading_map[10] == 1) bmp280P_reading(); if (sensors_reading_map[11] == 1) bme280T_reading(); + if (sensors_reading_map[12] == 1) bme280P_reading(); + if (sensors_reading_map[13] == 1) bme280H_reading(); + if (sensors_reading_map[14] == 1) bme280A_reading(); } }, nullptr, true); } @@ -463,9 +466,71 @@ void bme280T_reading() { Serial.println("[i] sensor '" + bme280T_value_name + "' data: " + String(value)); } -//bme.readPressure() / 100.0F +//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; + choose_widget_and_create(widget_name, page_name, page_number, type, value_name); + bme.begin(hexStringToUint8(address)); + sensors_reading_map[12] = 1; +} -//#define SEALEVELPRESSURE_HPA (1013.25) -//bme.readAltitude(SEALEVELPRESSURE_HPA) +void bme280P_reading() { + float value = 0; + value = bme.readPressure(); + jsonWriteStr(configJson, bme280P_value_name, String(value)); + eventGen(bme280P_value_name, ""); + sendSTATUS(bme280P_value_name, String(value)); + Serial.println("[i] sensor '" + bme280P_value_name + "' data: " + String(value)); +} -//bme.readHumidity() +//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; + choose_widget_and_create(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(configJson, bme280H_value_name, String(value)); + eventGen(bme280H_value_name, ""); + sendSTATUS(bme280H_value_name, String(value)); + Serial.println("[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; + choose_widget_and_create(widget_name, page_name, page_number, type, value_name); + bme.begin(hexStringToUint8(address)); + sensors_reading_map[14] = 1; +} + +void bme280A_reading() { + float value = 0; + value = bme.readAltitude(1013.25); + jsonWriteStr(configJson, bme280A_value_name, String(value)); + eventGen(bme280A_value_name, ""); + sendSTATUS(bme280A_value_name, String(value)); + Serial.println("[i] sensor '" + bme280A_value_name + "' data: " + String(value)); +} diff --git a/WiFi.ino b/WiFi.ino index b1aa2de8..c21dc3d2 100644 --- a/WiFi.ino +++ b/WiFi.ino @@ -139,7 +139,7 @@ boolean RouterFind(String ssid) { Serial.println("[WIFI][i] scanning still in progress"); return false; } - if (n == 0) { //Сканирование все еще выполняется + if (n == 0) { //ни одна сеть не найдена Serial.println("[WIFI][i] no any wifi sations, starting scanning"); WiFi.scanNetworks (true, false); return false; diff --git a/data/configs/dallas.c.txt b/data/configs/dallas.c.txt index 7ac6c3d1..e6686b14 100644 --- a/data/configs/dallas.c.txt +++ b/data/configs/dallas.c.txt @@ -1,5 +1,5 @@ dallas 2 Водонагреватель,#t°C Датчики any-data 1 -logging dallas 1 100 fast Температура Датчики 2 +logging dallas 1 100 Температура Датчики 2 //2 - номер пина датчика //варианты отображения: any-data, progress-round, progress-line, fill-gauge \ No newline at end of file diff --git a/data/configs/termostat.c.txt b/data/configs/termostat.c.txt index b5e18f64..af75deeb 100644 --- a/data/configs/termostat.c.txt +++ b/data/configs/termostat.c.txt @@ -1,5 +1,5 @@ dallas 2 Водонагреватель,#t°C Термостат any-data 1 -logging dallas 5 100 fast Температура Термостат 2 +logging dallas 5 100 Температура Термостат 2 inputDigit digit1 При#скольки#выключить? Термостат 40 3 inputDigit digit2 При#скольки#включить? Термостат 20 4 button 1 5 Нагреватель Термостат 0 5 diff --git a/set.h b/set.h index 0bb0e04f..0970649b 100644 --- a/set.h +++ b/set.h @@ -1,5 +1,5 @@ //===============FIRMWARE SETTINGS===================================== -String firmware_version = "2.3.3"; +String firmware_version = "2.3.3g"; boolean mb_4_of_memory = true; //#define OTA_enable //#define MDNS_enable @@ -12,8 +12,8 @@ boolean mb_4_of_memory = true; #define statistics_update 1000 * 60 * 60 * 2 //====================================================================== -#define TIME_COMPILING String(__TIME__) -#define DATE_COMPILING String(__DATE__) +//#define TIME_COMPILING String(__TIME__) +//#define DATE_COMPILING String(__DATE__) //===============библиотеки и объекты для ESP8266======================== #ifdef ESP8266 @@ -115,6 +115,9 @@ Adafruit_BME280 bme; // use I2C interface Adafruit_Sensor *bme_temp = bme.getTemperatureSensor(); Adafruit_Sensor *bme_pressure = bme.getPressureSensor(); Adafruit_Sensor *bme_humidity = bme.getHumiditySensor(); + +#include +SoftwareSerial mySerial(14, 12); //===============FIRMWARE VARS======================== boolean just_load = true; const char* hostName = "IoT Manager"; @@ -133,13 +136,21 @@ String analog_value_names_list; int enter_to_analog_counter; String level_value_name; + String dhtT_value_name; String dhtH_value_name; + String bmp280T_value_name; String bmp280P_value_name; + String bme280T_value_name; -int sensors_count = 11; -int sensors_reading_map [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +String bme280P_value_name; +String bme280H_value_name; +String bme280A_value_name; + +int sensors_reading_map [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//============================0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14 + //LOGGING String logging_value_names_list; int enter_to_logging_counter;