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