Merge pull request #179 from biveraxe/ver4dev

теперь можно менять пины UART через веб
This commit is contained in:
2022-08-31 21:35:14 +03:00
committed by GitHub
2 changed files with 22 additions and 20 deletions

View File

@@ -11,19 +11,16 @@
extern IoTGpio IoTgpio;
int rxPinCO2 = 14; // D5 // зеленый провод сенсора к D2 / 4
int txPinCO2 = 16; // D0 // синий провод сенсора к D1/5
SoftwareSerial swSerialCO2(rxPinCO2, txPinCO2); // RX, TX// ESP8266 D7 / D6 Blue/Green
int rxPinCO2 ; // зеленый провод сенсора к прописаному по умолчанию D7 (GPIO13)
int txPinCO2 ; // синий провод сенсора к прописаному по умолчанию D6 (GPIO12)
SoftwareSerial* swSerialCO2 = nullptr;
int MHZ19_request(int request);
void MHZ19uart_init();
bool MHZ19uart_flag = true;
// int MHZ19C_PREHEATING_TIME = 2 * 60 * 1000;// покажет реальные данные после прогрева, через 2 мин.
int MHZ19C_PREHEATING_TIME = 2 * 30 * 1000; // покажет реальные данные после прогрева, через 2 мин.
// int prevTemperature = 0;
int temperature = 0;
bool temperatureUpdated = false;
int prevRange = 5000;
@@ -48,7 +45,9 @@ class Mhz19uart : public IoTItem {
txPinCO2 = jsonReadInt(parameters, "txPin");
range = jsonReadInt(parameters, "range");
ABC = jsonReadInt(parameters, "ABC");
if (!swSerialCO2) swSerialCO2 = new SoftwareSerial(rxPinCO2, txPinCO2);
}
//=======================================================================================================
// doByInterval()
@@ -69,11 +68,12 @@ class Mhz19uart : public IoTItem {
//если сенсор предполагает использование общего объекта библиотеки для нескольких экземпляров сенсора, то в данной функции необходимо предусмотреть
//создание и контроль соответствующих глобальных переменных
//замер по ШИМ создает задержку. вызываем его нечасто, по умолчанию раз в 5 минут
class Mhz19pwm : public IoTItem {
private:
//=======================================================================================================
// Секция переменных.
int pwmPin; ///// желтый провод сенсора к D8 (14-D5 ok)
int pwmPin; // желтый провод сенсора к прописаному по умолчанию D8 (GPIO15)
public:
//=======================================================================================================
@@ -146,6 +146,7 @@ class Mhz19temp : public IoTItem {
txPinCO2 = jsonReadInt(parameters, "txPin");
range = jsonReadInt(parameters, "range");
ABC = jsonReadInt(parameters, "ABC");
if (!swSerialCO2) swSerialCO2 = new SoftwareSerial(rxPinCO2, txPinCO2);
}
//=======================================================================================================
@@ -179,6 +180,7 @@ class Mhz19range : public IoTItem {
txPinCO2 = jsonReadInt(parameters, "txPin");
range = jsonReadInt(parameters, "range");
ABC = jsonReadInt(parameters, "ABC");
if (!swSerialCO2) swSerialCO2 = new SoftwareSerial(rxPinCO2, txPinCO2);
}
void doByInterval() {
@@ -216,6 +218,7 @@ class Mhz19ABC : public IoTItem {
txPinCO2 = jsonReadInt(parameters, "txPin");
range = jsonReadInt(parameters, "range");
ABC = jsonReadInt(parameters, "ABC");
if (!swSerialCO2) swSerialCO2 = new SoftwareSerial(rxPinCO2, txPinCO2);
}
void doByInterval() {
@@ -261,7 +264,7 @@ void *getAPI_Mhz19(String subtype, String param) {
void MHZ19uart_init() {
if (MHZ19uart_flag) {
int reply;
swSerialCO2.begin(9600);
swSerialCO2->begin(9600);
delay(50);
@@ -427,7 +430,7 @@ int MHZ19_request(int request) {
break;
}
swSerialCO2.write(request_cmd, 9);
swSerialCO2->write(request_cmd, 9);
Serial.print("Request : ");
for (int i = 0; i < 9; i++) {
@@ -441,7 +444,7 @@ int MHZ19_request(int request) {
unsigned char response[9];
Serial.print("Response :");
swSerialCO2.readBytes(response, 9);
swSerialCO2->readBytes(response, 9);
for (int i = 0; i < 9; i++) {
Serial.print(" ");
@@ -536,7 +539,6 @@ int MHZ19_request(int request) {
// byte c = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
// if nothing else matches, do the default
// default is optional
break;
}
}

View File

@@ -13,8 +13,8 @@
"multiply": 1,
"round": 1,
"pin": 0,
"rxPin": 14,
"txPin": 16,
"rxPin": 13,
"txPin": 12,
"int": 15,
"range": 5000,
"ABC": 1
@@ -30,7 +30,7 @@
"plus": 0,
"multiply": 1,
"round": 1,
"pin": 16,
"pin": 15,
"int": 300
},
{
@@ -44,8 +44,8 @@
"plus": 0,
"multiply": 1,
"round": 1,
"rxPin": 14,
"txPin": 16,
"rxPin": 13,
"txPin": 12,
"ABC": 1,
"int": 30
},
@@ -60,8 +60,8 @@
"plus": 0,
"multiply": 1,
"round": 1,
"rxPin": 14,
"txPin": 16,
"rxPin": 13,
"txPin": 12,
"range": 5000,
"ABC": 1,
"int": 30
@@ -74,8 +74,8 @@
"widget": "anydataDef",
"page": "Сенсоры",
"descr": "ABC",
"rxPin": 14,
"txPin": 16,
"rxPin": 13,
"txPin": 12,
"range": 5000,
"ABC": 1,
"int": 30