Merge pull request #13 from Mit4el/ver4dev

esp32-cam, A02Distance
This commit is contained in:
2023-11-19 18:56:21 +03:00
committed by GitHub
7 changed files with 31 additions and 18 deletions

View File

@@ -59,7 +59,7 @@
"bootloader_qio_80m": "0x1000", "bootloader_qio_80m": "0x1000",
"firmware": "0x10000", "firmware": "0x10000",
"partitions": "0x8000", "partitions": "0x8000",
"littlefs": "0x290000" "littlefs": "0x310000"
}, },
{ {
"name": "esp32_16mb", "name": "esp32_16mb",

View File

@@ -36,7 +36,7 @@
"tx": "TX пин", "tx": "TX пин",
"rx": "RX пин", "rx": "RX пин",
"speed": "Скорость UART", "speed": "Скорость UART",
"line": "Актуально только для ESP32: номер линии hardUART. =2 rx=16 tx=17", "line": "Актуально только для ESP32: номер линии hardUART. =2 rx=16 tx=17, для SoftwarwSerial в ESP32 line = -1",
"btn-uploadUI": "Формирует автоматически графический интерфейс на базе конфигурации и выгружает в экран. Занимает продолжительное время! (в разработке)" "btn-uploadUI": "Формирует автоматически графический интерфейс на базе конфигурации и выгружает в экран. Занимает продолжительное время! (в разработке)"
} }
}, },

View File

@@ -2,17 +2,18 @@
#include "Global.h" #include "Global.h"
#include "classes/IoTItem.h" #include "classes/IoTItem.h"
#include "modules/sensors/UART/Uart.h" ///#include "modules/sensors/UART/Uart.h"
#include "classes/IoTUart.h"
#define READ_TIMEOUT 100 #define READ_TIMEOUT 100
class A02Distance : public IoTItem class A02Distance : public IoTUart
{ {
private: private:
public: public:
A02Distance(String parameters) : IoTItem(parameters) A02Distance(String parameters) : IoTUart(parameters)
{ {
if (myUART) if (_myUART)
{ {
} }
} }
@@ -20,7 +21,7 @@ public:
//Периодическое выполнение программы, в int секунд, которые зададим в конфигурации //Периодическое выполнение программы, в int секунд, которые зададим в конфигурации
void doByInterval() void doByInterval()
{ {
if (myUART) if (_myUART)
{ {
static uint8_t data[4]; static uint8_t data[4];
@@ -67,14 +68,14 @@ public:
//Приём данных из COM порта //Приём данных из COM порта
uint16_t recieve(uint8_t *resp, uint16_t len) uint16_t recieve(uint8_t *resp, uint16_t len)
{ {
((SoftwareSerial *)myUART)->listen(); // Start software serial listen ((SoftwareSerial *)_myUART)->listen(); // Start software serial listen
unsigned long startTime = millis(); // Start time for Timeout unsigned long startTime = millis(); // Start time for Timeout
uint8_t index = 0; // Bytes we have read uint8_t index = 0; // Bytes we have read
while ((index < len) && (millis() - startTime < READ_TIMEOUT)) while ((index < len) && (millis() - startTime < READ_TIMEOUT))
{ {
if (myUART->available() > 0) if (_myUART->available() > 0)
{ {
uint8_t c = (uint8_t)myUART->read(); uint8_t c = (uint8_t)_myUART->read();
resp[index++] = c; resp[index++] = c;
} }
} }

View File

@@ -10,7 +10,11 @@
"page": "Сенсоры", "page": "Сенсоры",
"descr": "Дальность", "descr": "Дальность",
"int": 5, "int": 5,
"round": 1 "round": 1,
"tx": 17,
"rx": 16,
"line": 2,
"speed": 9600
} }
], ],
"about": { "about": {
@@ -23,12 +27,18 @@
"moduleVersion": "0.1", "moduleVersion": "0.1",
"moduleDesc": "Позволяет получить дальность с ультрозвуковых датчиков A0221AU, A02YYUW", "moduleDesc": "Позволяет получить дальность с ультрозвуковых датчиков A0221AU, A02YYUW",
"propInfo": { "propInfo": {
"int": "Количество секунд между опросами датчика." "int": "Количество секунд между опросами датчика.",
"tx": "TX пин",
"rx": "RX пин",
"speed": "Скорость UART",
"line": "Актуально только для ESP32: номер линии hardUART. =2 rx=16 tx=17, для SoftwarwSerial в ESP32 line = -1"
}, },
"title": "A0221AU, A02YYUW Ультразвуковой датчик дальности" "title": "A0221AU, A02YYUW Ультразвуковой датчик дальности"
}, },
"defActive": true, "defActive": true,
"usedLibs": { "usedLibs": {
"esp32_4mb": [],
"esp32_4mb3f": [],
"esp8266_4mb": [], "esp8266_4mb": [],
"esp8266_1mb": [], "esp8266_1mb": [],
"esp8266_1mb_ota": [], "esp8266_1mb_ota": [],

View File

@@ -6,8 +6,7 @@
#include "Global.h" #include "Global.h"
#include "classes/IoTItem.h" #include "classes/IoTItem.h"
//встроена в ядро для 8266, для 32 по этому же имени обращаемся к другой библиотеке plerup/EspSoftwareSerial
#include <SoftwareSerial.h>
extern IoTGpio IoTgpio; extern IoTGpio IoTgpio;
@@ -15,7 +14,8 @@ extern IoTGpio IoTgpio;
int rxPinCO2; // зеленый провод сенсора к прописаному по умолчанию D7 (GPIO13) int rxPinCO2; // зеленый провод сенсора к прописаному по умолчанию D7 (GPIO13)
int txPinCO2; // синий провод сенсора к прописаному по умолчанию D6 (GPIO12) int txPinCO2; // синий провод сенсора к прописаному по умолчанию D6 (GPIO12)
#ifdef ESP8266 #ifdef ESP8266
//встроена в ядро для 8266, для 32 по этому же имени обращаемся к другой библиотеке plerup/EspSoftwareSerial
#include <SoftwareSerial.h>
SoftwareSerial *swSerialCO2 = nullptr; SoftwareSerial *swSerialCO2 = nullptr;
#endif #endif
#ifdef ESP32 #ifdef ESP32

View File

@@ -80,9 +80,7 @@
"usedLibs": { "usedLibs": {
"esp32_4mb": [], "esp32_4mb": [],
"esp32_4mb3f": [], "esp32_4mb3f": [],
"esp32s2_4mb": [ "esp32s2_4mb": [],
"plerup/EspSoftwareSerial"
],
"esp32cam_4mb": [], "esp32cam_4mb": [],
"esp8266_4mb": [] "esp8266_4mb": []
} }

View File

@@ -132,6 +132,10 @@
"title": "Счетчик электроэнергии PZEM 004 t версии 3.0 (с модбасом)", "title": "Счетчик электроэнергии PZEM 004 t версии 3.0 (с модбасом)",
"moduleDesc": "Считает потраченную электроэнергию, измеряет напряжение, частоту, силу тока и прочие параметры. Возможно подключение трех счетчиков к одной esp для трехфазных сетей. Для этого нужно настроить разные адреса modbus в платах pzem. Для работы обязателен модуль Pzem004uart", "moduleDesc": "Считает потраченную электроэнергию, измеряет напряжение, частоту, силу тока и прочие параметры. Возможно подключение трех счетчиков к одной esp для трехфазных сетей. Для этого нужно настроить разные адреса modbus в платах pzem. Для работы обязателен модуль Pzem004uart",
"propInfo": { "propInfo": {
"tx": "TX пин",
"rx": "RX пин",
"speed": "Скорость UART",
"line": "Актуально только для ESP32: номер линии hardUART. =2 rx=16 tx=17, для SoftwarwSerial в ESP32 line = -1",
"addr": "Адрес modbus", "addr": "Адрес modbus",
"int": "Количество секунд между опросами датчика. Желателно устанавливать одинаковые интервалы для параметров (для одного адреса Pzem) что опрос происходил один раз, остальные из 500мс буфера.", "int": "Количество секунд между опросами датчика. Желателно устанавливать одинаковые интервалы для параметров (для одного адреса Pzem) что опрос происходил один раз, остальные из 500мс буфера.",
"btn-changeaddr": " Будет установлен адрес указанный в setaddr. Смотрите в логе результат: [i] Pzem address set: 0x01 Новый адрес который нужно назначить", "btn-changeaddr": " Будет установлен адрес указанный в setaddr. Смотрите в логе результат: [i] Pzem address set: 0x01 Новый адрес который нужно назначить",