mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
Merge branch 'ver4dev' into v4dev
This commit is contained in:
@@ -1,23 +1,22 @@
|
||||
{
|
||||
"menuSection": "Экраны",
|
||||
|
||||
"configItem": [{
|
||||
"global": 0,
|
||||
"name": "LCD Dwin экран",
|
||||
"type": "Reading",
|
||||
"subtype": "DwinI",
|
||||
"id": "dwin",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "",
|
||||
|
||||
"int": 15,
|
||||
"TX": 17,
|
||||
"RX": 16,
|
||||
"line": 2,
|
||||
"speed": 115200
|
||||
}],
|
||||
|
||||
{
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"global": 0,
|
||||
"name": "LCD Dwin экран",
|
||||
"type": "Reading",
|
||||
"subtype": "DwinI",
|
||||
"id": "dwin",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "",
|
||||
"int": 15,
|
||||
"TX": 17,
|
||||
"RX": 16,
|
||||
"line": 2,
|
||||
"speed": 115200
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
"authorName": "Ilya Belyakov",
|
||||
"authorContact": "https://t.me/Biveraxe",
|
||||
@@ -33,6 +32,7 @@
|
||||
"propInfo": {
|
||||
"int": ""
|
||||
},
|
||||
"title": "Экраны от компании Dwin",
|
||||
"funcInfo": [
|
||||
{
|
||||
"name": "rrrr",
|
||||
@@ -41,21 +41,13 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"defActive": false,
|
||||
|
||||
"usedLibs": {
|
||||
"esp32_4mb": [
|
||||
],
|
||||
"esp8266_4mb": [
|
||||
],
|
||||
"esp8266_1mb": [
|
||||
],
|
||||
"esp8266_1mb_ota": [
|
||||
],
|
||||
"esp8285_1mb": [
|
||||
],
|
||||
"esp8285_1mb_ota": [
|
||||
]
|
||||
"esp32_4mb": [],
|
||||
"esp8266_4mb": [],
|
||||
"esp8266_1mb": [],
|
||||
"esp8266_1mb_ota": [],
|
||||
"esp8285_1mb": [],
|
||||
"esp8285_1mb_ota": []
|
||||
}
|
||||
}
|
||||
@@ -1,40 +1,38 @@
|
||||
{
|
||||
"menuSection": "Экраны",
|
||||
|
||||
"configItem": [{
|
||||
"global": 0,
|
||||
"name": "LCD экран 2004",
|
||||
"type": "Reading",
|
||||
"subtype": "Lcd2004",
|
||||
"id": "Lcd",
|
||||
"widget": "inputTxt",
|
||||
"page": "Экраны",
|
||||
"descr": "LCD Экран",
|
||||
|
||||
"addr": "0x27",
|
||||
"size": "20,4",
|
||||
"coord": "0,0",
|
||||
"id2show": "",
|
||||
"prefix": "",
|
||||
"postfix": ""
|
||||
},
|
||||
{
|
||||
"name": "LCD экран 1602",
|
||||
"type": "Reading",
|
||||
"subtype": "Lcd2004",
|
||||
"id": "Lcd",
|
||||
"widget": "inputTxt",
|
||||
"page": "Экраны",
|
||||
"descr": "LCD Экран",
|
||||
|
||||
"addr": "0x27",
|
||||
"size": "16,2",
|
||||
"coord": "0,0",
|
||||
"id2show": "",
|
||||
"prefix": "",
|
||||
"postfix": ""
|
||||
}],
|
||||
|
||||
{
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"global": 0,
|
||||
"name": "LCD экран 2004",
|
||||
"type": "Reading",
|
||||
"subtype": "Lcd2004",
|
||||
"id": "Lcd",
|
||||
"widget": "inputTxt",
|
||||
"page": "screens",
|
||||
"descr": "LCD Экран",
|
||||
"addr": "0x27",
|
||||
"size": "20,4",
|
||||
"coord": "0,0",
|
||||
"id2show": "",
|
||||
"prefix": "",
|
||||
"postfix": ""
|
||||
},
|
||||
{
|
||||
"name": "LCD экран 1602",
|
||||
"type": "Reading",
|
||||
"subtype": "Lcd2004",
|
||||
"id": "Lcd",
|
||||
"widget": "inputTxt",
|
||||
"page": "screens",
|
||||
"descr": "LCD Экран",
|
||||
"addr": "0x27",
|
||||
"size": "16,2",
|
||||
"coord": "0,0",
|
||||
"id2show": "",
|
||||
"prefix": "",
|
||||
"postfix": ""
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
"authorName": "Ilya Belyakov",
|
||||
"authorContact": "https://t.me/Biveraxe",
|
||||
@@ -55,6 +53,7 @@
|
||||
"prefix": "Символы до значения.",
|
||||
"postfix": "Символы после значения."
|
||||
},
|
||||
"title": "Символьный дисплей Lcd2004",
|
||||
"funcInfo": [
|
||||
{
|
||||
"name": "noBacklight",
|
||||
@@ -84,33 +83,41 @@
|
||||
{
|
||||
"name": "x",
|
||||
"descr": "Устанавливает первую координату",
|
||||
"params": ["Номер строки первого символа"]
|
||||
"params": [
|
||||
"Номер строки первого символа"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "y",
|
||||
"descr": "Устанавливает вторую координату",
|
||||
"params": ["Номер столбца первого символа"]
|
||||
"params": [
|
||||
"Номер столбца первого символа"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"descr": "Задает приставку слева от значения",
|
||||
"params": ["Строка"]
|
||||
"params": [
|
||||
"Строка"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "postfix",
|
||||
"descr": "Задает приставку справа от значения",
|
||||
"params": ["Строка"]
|
||||
"params": [
|
||||
"Строка"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "id2show",
|
||||
"descr": "Задает ИД элемента, значение которого хотим отображать на экране",
|
||||
"params": ["Имя элемента конфигурации"]
|
||||
"params": [
|
||||
"Имя элемента конфигурации"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"defActive": true,
|
||||
|
||||
"usedLibs": {
|
||||
"esp32_4mb": [
|
||||
"https://github.com/robotclass/RobotClass_LiquidCrystal_I2C",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"menuSection": "Экраны",
|
||||
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"global": 0,
|
||||
@@ -17,7 +16,6 @@
|
||||
"NEXT_RX": 17
|
||||
}
|
||||
],
|
||||
|
||||
"about": {
|
||||
"authorName": "AVAKS",
|
||||
"authorContact": "https://t.me/@avaks_dev",
|
||||
@@ -36,15 +34,25 @@
|
||||
"url": "файл прошивки"
|
||||
}
|
||||
},
|
||||
|
||||
"defActive": false,
|
||||
|
||||
"usedLibs": {
|
||||
"esp32_4mb": ["https://github.com/avaksru/ESPNexUpload.git"],
|
||||
"esp8266_4mb": ["https://github.com/avaksru/ESPNexUpload.git"],
|
||||
"esp8266_1mb": ["https://github.com/avaksru/ESPNexUpload.git"],
|
||||
"esp8266_1mb_ota": ["https://github.com/avaksru/ESPNexUpload.git"],
|
||||
"esp8285_1mb": ["https://github.com/avaksru/ESPNexUpload.git"],
|
||||
"esp8285_1mb_ota": ["https://github.com/avaksru/ESPNexUpload.git"]
|
||||
"esp32_4mb": [
|
||||
"https://github.com/avaksru/ESPNexUpload.git"
|
||||
],
|
||||
"esp8266_4mb": [
|
||||
"https://github.com/avaksru/ESPNexUpload.git"
|
||||
],
|
||||
"esp8266_1mb": [
|
||||
"https://github.com/avaksru/ESPNexUpload.git"
|
||||
],
|
||||
"esp8266_1mb_ota": [
|
||||
"https://github.com/avaksru/ESPNexUpload.git"
|
||||
],
|
||||
"esp8285_1mb": [
|
||||
"https://github.com/avaksru/ESPNexUpload.git"
|
||||
],
|
||||
"esp8285_1mb_ota": [
|
||||
"https://github.com/avaksru/ESPNexUpload.git"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
174
src/modules/display/Oled128/Oled128.cpp
Normal file
174
src/modules/display/Oled128/Oled128.cpp
Normal file
@@ -0,0 +1,174 @@
|
||||
#include "Global.h"
|
||||
#include "classes/IoTItem.h"
|
||||
|
||||
#include <GyverOLED.h>
|
||||
|
||||
GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;
|
||||
|
||||
// GyverOLED<SSD1306_128x32, OLED_BUFFER> oled;
|
||||
// GyverOLED<SSD1306_128x32, OLED_NO_BUFFER> oled;
|
||||
// GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
|
||||
// GyverOLED<SSD1306_128x64, OLED_BUFFER, OLED_SPI, 8, 7, 6> oled;
|
||||
// GyverOLED<SSH1106_128x64> oled;
|
||||
|
||||
class Oled128 : public IoTItem {
|
||||
private:
|
||||
unsigned int _x;
|
||||
unsigned int _y;
|
||||
|
||||
unsigned int _k;
|
||||
|
||||
int _shrift;
|
||||
|
||||
String _id2show;
|
||||
String _descr;
|
||||
String _descr1;
|
||||
|
||||
int _prevStrSize;
|
||||
|
||||
bool _isShow = true; // экран показывает
|
||||
|
||||
public:
|
||||
Oled128(String parameters) : IoTItem(parameters) {
|
||||
String addr, size, xy, k;
|
||||
_prevStrSize = 0;
|
||||
|
||||
jsonRead(parameters, "addr", addr);
|
||||
if (addr == "") {
|
||||
// scanI2C();
|
||||
return;
|
||||
}
|
||||
|
||||
jsonRead(parameters, "coord", xy);
|
||||
_x = selectFromMarkerToMarker(xy, ",", 0).toInt();
|
||||
_y = selectFromMarkerToMarker(xy, ",", 1).toInt();
|
||||
|
||||
jsonRead(parameters, "descr", _descr);
|
||||
jsonRead(parameters, "id2show", _id2show);
|
||||
jsonRead(parameters, "descr1", _descr1);
|
||||
// jsonRead(parameters, "scale", _k);
|
||||
jsonRead(parameters, "shrift", _shrift);
|
||||
|
||||
// Wire.begin(2,0); // Инициализация шины I2C для модуля E01
|
||||
|
||||
oled.init(); // инициализация экрана
|
||||
}
|
||||
|
||||
void doByInterval() {
|
||||
printBlankStr(_prevStrSize);
|
||||
|
||||
String tmpStr = "";
|
||||
|
||||
// if (_descr != "none") tmpStr = _descr + " " + getItemValue(_id2show);
|
||||
if (_descr != "none")
|
||||
tmpStr = _descr + " " + getItemValue(_id2show) + " " + _descr1;
|
||||
else
|
||||
tmpStr = getItemValue(_id2show);
|
||||
|
||||
// oled.setScale(2);
|
||||
|
||||
oled.setScale(_shrift);
|
||||
|
||||
oled.setCursorXY(_x, _y);
|
||||
|
||||
oled.print(tmpStr);
|
||||
|
||||
oled.update();
|
||||
|
||||
_prevStrSize = tmpStr.length();
|
||||
}
|
||||
|
||||
IoTValue execute(String command, std::vector<IoTValue> ¶m) { // будет возможным использовать, когда сценарии запустятся
|
||||
|
||||
if (command == "scroll") {
|
||||
String tmpStr = "";
|
||||
oled.clear();
|
||||
uint32_t tmr = millis();
|
||||
oled.autoPrintln(false);
|
||||
int val = 128;
|
||||
for (;;) {
|
||||
// oled.clear(); // ЗАКОММЕНТИРУЙ, ЕСЛИ ВКЛЮЧЕН БУФЕР
|
||||
// oled.setScale(2);
|
||||
|
||||
oled.setScale(_shrift);
|
||||
|
||||
oled.setCursor(val, _y);
|
||||
|
||||
oled.print(tmpStr);
|
||||
oled.update();
|
||||
val--;
|
||||
if (millis() - tmr > 5000)
|
||||
; // return;
|
||||
|
||||
_isShow = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (command == "stopscroll") {
|
||||
_isShow = true;
|
||||
// display->backlight();
|
||||
// else if (command == "noDisplay") {
|
||||
// display->noDisplay();
|
||||
// _isShow = false;
|
||||
} else if (command == "display") {
|
||||
// display.display();
|
||||
_isShow = true;
|
||||
} else if (command == "toggle") {
|
||||
if (_isShow) {
|
||||
// display->noDisplay();
|
||||
_isShow = false;
|
||||
} else {
|
||||
// display.display();
|
||||
_isShow = true;
|
||||
}
|
||||
} else if (command == "x") {
|
||||
if (param.size()) {
|
||||
_x = param[0].valD;
|
||||
}
|
||||
} else if (command == "y") {
|
||||
if (param.size()) {
|
||||
_y = param[0].valD;
|
||||
}
|
||||
} else if (command == "descr") {
|
||||
if (param.size()) {
|
||||
_descr = param[0].valS;
|
||||
}
|
||||
} else if (command == "descr1") {
|
||||
if (param.size()) {
|
||||
_descr1 = param[0].valS;
|
||||
}
|
||||
} else if (command == "id2show") {
|
||||
if (param.size()) {
|
||||
_id2show = param[0].valS;
|
||||
}
|
||||
}
|
||||
|
||||
doByInterval();
|
||||
return {};
|
||||
}
|
||||
|
||||
// печать пустой строки нужной длинны для затирания предыдущего значения на экране
|
||||
void printBlankStr(int strSize) {
|
||||
String tmpStr = "";
|
||||
for (int i = 0; i < strSize; i++) tmpStr += " ";
|
||||
|
||||
// oled.setScale(2);
|
||||
|
||||
oled.setScale(_shrift);
|
||||
|
||||
oled.setCursorXY(_x, _y);
|
||||
|
||||
oled.print(tmpStr);
|
||||
}
|
||||
|
||||
~Oled128(){};
|
||||
};
|
||||
|
||||
void *getAPI_Oled128(String subtype, String param) {
|
||||
if (subtype == F("Oled128")) {
|
||||
return new Oled128(param);
|
||||
} else {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
86
src/modules/display/Oled128/modinfo.json
Normal file
86
src/modules/display/Oled128/modinfo.json
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"name": "OLED экран 128*64",
|
||||
"type": "Reading",
|
||||
"subtype": "Oled128",
|
||||
"id": "oled",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "T",
|
||||
"descr1": "C",
|
||||
"int": 1,
|
||||
"addr": "0x3C",
|
||||
"coord": "0,10",
|
||||
"id2show": "id датчика",
|
||||
"shrift": "2"
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
"authorName": "Serghei Crasnicov",
|
||||
"authorContact": "https://t.me/Serghei63",
|
||||
"authorGit": "https://github.com/Serghei63",
|
||||
"specialThanks": "Ilya Belyakov @Biveraxe",
|
||||
"moduleName": "Oled128",
|
||||
"moduleVersion": "1.0",
|
||||
"moduleDesc": "Позволяет выводить на матричные Oled экраны по указанным позициям значения других элементов конфигурации.",
|
||||
"usedRam": 15,
|
||||
"propInfo": {
|
||||
"int": "Период времени в секундах обновления информации на экране по конкретному элементу.",
|
||||
"addr": "Адрес устройства на шине, обычно 0x3c.",
|
||||
"coord": "Координата позиции для вывода данных элемента конфигурации.",
|
||||
"id2show": "id элемента конфигурации.",
|
||||
"shrift": "Шрифт текста от 1 до 4 "
|
||||
},
|
||||
"funcInfo": [
|
||||
{
|
||||
"name": "x",
|
||||
"descr": "Устанавливает первую координату",
|
||||
"params": [
|
||||
"Номер строки первого символа"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "y",
|
||||
"descr": "Устанавливает вторую координату",
|
||||
"params": [
|
||||
"Номер столбца первого символа"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "descr",
|
||||
"descr": "Задает приставку слева от значения, если none значит пусто",
|
||||
"params": [
|
||||
"Строка"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "descr1",
|
||||
"descr": "Задает приставку справа от значения. Если descr none , то не выводится",
|
||||
"params": [
|
||||
"Строка"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "id2show",
|
||||
"descr": "Задает ИД элемента, значение которого хотим отображать на экране",
|
||||
"params": [
|
||||
"Имя элемента конфигурации"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"defActive": false,
|
||||
"usedLibs": {
|
||||
"esp32_4mb": [
|
||||
"gyverlibs/GyverOLED @ 1.4"
|
||||
],
|
||||
"esp32_16mb": [
|
||||
"gyverlibs/GyverOLED @ 1.4"
|
||||
],
|
||||
"esp8266_4mb": [
|
||||
"gyverlibs/GyverOLED @ 1.4"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"menuSection": "Экраны",
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"global": 0,
|
||||
@@ -32,6 +32,7 @@
|
||||
"id2show": "id элемента конфигурации.",
|
||||
"baud": "скорость обмена, бит/с"
|
||||
},
|
||||
"title": "СМИ2-М трёхцветный Modbus-индикатор",
|
||||
"funcInfo": [
|
||||
{
|
||||
"name": "descr",
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
{
|
||||
"menuSection": "Экраны",
|
||||
|
||||
"configItem": [{
|
||||
"global": 0,
|
||||
"name": "7 сегментный дисплей TM16XX",
|
||||
"type": "Writing",
|
||||
"subtype": "TM16XX",
|
||||
"id": "tm",
|
||||
"widget": "inputTxt",
|
||||
"page": "Экраны",
|
||||
"descr": "Экран",
|
||||
"round": 0,
|
||||
|
||||
"chip": 1637,
|
||||
"numDigits": 4,
|
||||
"DIO": "13",
|
||||
"CLK": "14",
|
||||
"STB": "12",
|
||||
"intensity": "5",
|
||||
"on": "1",
|
||||
"id2show": ""
|
||||
}],
|
||||
|
||||
{
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"global": 0,
|
||||
"name": "7 сегментный дисплей TM16XX",
|
||||
"type": "Writing",
|
||||
"subtype": "TM16XX",
|
||||
"id": "tm",
|
||||
"widget": "inputTxt",
|
||||
"page": "screens",
|
||||
"descr": "Экран",
|
||||
"round": 0,
|
||||
"chip": 1637,
|
||||
"numDigits": 4,
|
||||
"DIO": "13",
|
||||
"CLK": "14",
|
||||
"STB": "12",
|
||||
"intensity": "5",
|
||||
"on": "1",
|
||||
"id2show": ""
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
"authorName": "Ilya Belyakov",
|
||||
"authorContact": "https://t.me/Biveraxe",
|
||||
@@ -74,60 +73,74 @@
|
||||
{
|
||||
"name": "x",
|
||||
"descr": "Устанавливает первую координату",
|
||||
"params": ["Номер строки первого символа"]
|
||||
"params": [
|
||||
"Номер строки первого символа"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "y",
|
||||
"descr": "Устанавливает вторую координату",
|
||||
"params": ["Номер столбца первого символа"]
|
||||
"params": [
|
||||
"Номер столбца первого символа"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "descr",
|
||||
"descr": "Задает приставку слева от значения",
|
||||
"params": ["Строка"]
|
||||
"params": [
|
||||
"Строка"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "id2show",
|
||||
"descr": "Задает ИД элемента, значение которого хотим отображать на экране",
|
||||
"params": ["Имя элемента конфигурации"]
|
||||
"params": [
|
||||
"Имя элемента конфигурации"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"defActive": true,
|
||||
|
||||
"usedLibs": {
|
||||
"esp32_4mb": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8266_4mb": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8266_1mb": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8266_1mb_ota": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8285_1mb": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8285_1mb_ota": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8266_2mb": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
],
|
||||
"esp8266_2mb_ota": [
|
||||
"https://github.com/maxint-rd/TM16xx",
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5"
|
||||
"adafruit/Adafruit GFX Library @ ^1.11.5",
|
||||
"adafruit/Adafruit BusIO @ ^1.13.2"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"menuSection": "Экраны",
|
||||
"menuSection": "screens",
|
||||
"configItem": [
|
||||
{
|
||||
"global": 0,
|
||||
@@ -40,6 +40,7 @@
|
||||
"max": "Максимальный порог индикатора на который реагировать.",
|
||||
"idshow": "id элемента конфигурации который нужно повесить индикацию."
|
||||
},
|
||||
"title": "Адресная светодиодная матрица",
|
||||
"funcInfo": [
|
||||
{
|
||||
"name": "noShow",
|
||||
|
||||
Reference in New Issue
Block a user