Gtir
да в строку писал уже. Пытаюсь найти более простой способ
Gtir
Но не могу придумать ни чего
Gtir
Только если побайтово читать
Slava
пиши в строку, потом проще файл конфигураци править, как текстровый документ, а файл будет такой стркутуры...
{
"RF_keys":"Важно! коды через , нач и заканч тоже , ",
"RF_keys_1": ",3268355,14632195,",
"RF_keys_2": ",3268364,14632204,",
"RF_keys_3": ",3268400,14632240,",
"RF_keys_4": ",3268544,14632384,",
"RF_keys_narushenie": ",14632272,14632277,14632447,",
}
я так себе делал
Gtir
Спасибо.
Сделал так.
Файл сделал так:
1,2,
5,6,
7,8,.
Считываю как строки до разделителя ",". Ну и строку уже в число перевожу. Работать будет для тестов хватит.
Slava
в конце концов ты прийдешь к ArduinoJson / config file
File file = SD.open(filename);
// Allocate the memory pool on the stack.
// Don't forget to change the capacity to match your JSON document.
// Use arduinojson.org/assistant to compute the capacity.
StaticJsonBuffer<512> jsonBuffer;
JsonObject &root = jsonBuffer.parseObject(file);
if (!root.success())
Serial.println(F("Failed to read file, using default configuration"));
// Copy values from the JsonObject to the Config
config.port = root["port"] | 2731;
strlcpy(config.hostname, // <- destination
root["hostname"] | "example.com", // <- source
sizeof(config.hostname)); // <- destination's capacity
сразу разбирайся с этим, потом пригодится для любых проектов, где нужно сохранить и восстановить переменные
Gtir
Спасибо, изучить точно изучу. Просто сроки ждут нужно тесты выкатить, а оптимизация как всегда потом =)))
Slava
сроки? не для себя чтоли делаешь? что делаешь если не секрет?
Slava
вот тебе два примера, разбирайся
//---------------------------------------------------------
int saveAset() {
Serialprintln("запись a_status cfg");
File myFile = SPIFFS.open("a_status.cfg", "w");
if (myFile) {
String txt = "{OHRANA:" + String(OHRANA) + ",\
GPIO4:" + String(digitalRead(4)) + ",\
GPIO5:" + String(digitalRead(5)) + ",\
GPIO15:" + String(digitalRead(15)) + ",\
GPIO16:" + String(digitalRead(16)) + "}";
myFile.print(txt);
Serialprintln(txt);
myFile.close();
}
}
//*************** A-SETTING ******************
File dataFile2 = SPIFFS.open("a_status.cfg", "r");
JsonObject &root2 = jsonBuffer.parseObject(dataFile2);
if (!root.success()){Serialprintln("No read a_status.cfg");}
OHRANA = root2["OHRANA"] | 0;
if (root2["GPIO4"] == 1) {digitalWrite(4, HIGH);}
if (root2["GPIO4"] == 0) {digitalWrite(4, LOW);}
if (root2["GPIO5"] == 1) {digitalWrite(5, HIGH);}
if (root2["GPIO5"] == 0) {digitalWrite(5, LOW);}
if (root2["GPIO15"] == 1) {digitalWrite(15, HIGH);}
if (root2["GPIO15"] == 0) {digitalWrite(15, LOW);}
if (root2["GPIO16"] == 1) {digitalWrite(16, HIGH);}
if (root2["GPIO16"] == 0) {digitalWrite(16, LOW);}
dataFile2.close();
Serialprintln("Load cfg end");
print_lcd(7,0,"Load cfg end");
Gtir
Да, в стартапе работаю, автоматизация вендинга направление. Закинули на железо, а я с ним не работал ни когда. Вот и частями приходится разбираться
Gtir
Спасибо)
Ruslan
Камрады, кто VSCode c PlatformIO использует для ESP?
Как там добавить библиотеку для работы с LED типа WS2812?
Denisio
platform.ini
lib_deps = ws2812 или как там библа назщывается
Denisio
ты чо совсем читать не умеешь на сайте platformio ?
Ruslan
Бывает просто некогда, камрад. А так я не только читаю, но и пишу овердохрена.
Ruslan
Поставил либу через встроенный менеджер
Ruslan
но её хедер по прежнему не находится
Ruslan
Так как поставить либу, чтобы потом её include отрабатывал?
Ruslan
platformio lib install 28
Library Storage: /Users/rad/Documents/PlatformIO/Projects/xkee-fw/.piolibdeps
LibraryManager: Installing id=28
Adafruit NeoPixel @ 1.2.2 is already installed
Ruslan
Может проблема в том, что в либе C++ код, а у меня C?
Ruslan
Похоже придётся всё руками делать, не надеясь на непонятную магию.
А
просто через гуй ставлю либу и через инклуд все работает
А
А
Denis
Slava
Slava
Вот сигналку на коленке в прямом смысле собрал
Slava
Кому интересно как работает?
UR5TLZ Eugene
Алексей
Slava
Телефон с кнопкой sos, сам шлет смс и звонит на 5 заданных номеров при замыкании контактов выносной кнопки (или замыкании геркона). Радио реле для переключения режимов вкл/выкл охрана.
Роман
Ребят а кто нибудь делал связь между esp по uart например по схеме:
Esp32
uart1-ко второй esp
uart2-к третьей esp
Вопрос насколько всё стабильно будет на метрах на 3-5? И есть ли подводные камни?
В данном случае связь по wifi/bluetooth не рассматриваю, нужна максимальная стабильность пересылки данных между esp32
Anonymous
Todd Knight будет жить. Поприветствуем!
Denisio
ГришаGTGS
ГришаGTGS
Роман
Rs485 :)
Вот чууууточку бы по подробнее, и было бы совсем здорово)
Что такое rs485 понятно, но как это отвечает на мои вопросы не особо)
Evgheni
Ruslan
Бери CAN и не благодари
Denisio
по одному лишнему корпусу с каждой стороны
Denisio
https://i.tk-chel.ru/denisio/sharex/201905_161333_02.png
Ruslan
а потом добавишь ещё одно устройство и переписывай прошивки...
Ruslan
бери CAN
Denisio
ну либо CAN но их трансиверы чуть дорожэ
Ruslan
ну, зато ебли меньше в разы в будущем
Evgheni
ебля -> время -> деньги
меньше ебли -> меньше затрат
Роман
Ага, ну я так и понял что голенький уарт не годится, оборачивать в 485, или, вот CAN
Denisio
да, если расстояние больше метра - голый 232 не айс
Роман
Может ещё и есть на примете CAN конвертор, который проще всего подружить с еспешкой ?)
Ruslan
Ruslan
ISO1050DUB для опторазвязки CAN или TJA1050, если доверяешь среде передачи
Ruslan
щас может чего новее есть
Ruslan
требует 5 вольт, но отлично работает с STM32, а там 3.3в на ногах
Роман
🤷♂просто никогда дел не имел с заворачиванием 232. Получается на жёлтые концы берём с контроллера, концы с синих клемм уходят у другую CAN обёртку (ну в моём случае вместе с питанием и землёй) в её синие клеммы...
Ruslan
не, тво
Ruslan
й
Ruslan
не, твой МК должен уметь CAN из коробки, к соответствующим ногам МК ты прикручиваешь  TJA1050 с его обвязкой и дальше подключаешь всё это к CAN шине
Роман
Ну, вроде я это и написал, спасибо) Насколько я понимаю CAN не адресная история, а идёт широковещание, и участники по сообщениям понимают для них эта инфа или нет, верно?
Ruslan
Да
Anonymous
Viacheslav будет жить. Поприветствуем!
kibastus
http://skproj.ru/esp32-raspinovka-i-harakteristiki/ распиновка esp32 с опичанием какие пины можно для чего юзать
kibastus
парни посоветуйте совет, я хочу воткнуть 4 датчика температуры ds18b20 на esp32, там получится гирлянда где нужно резистор воткнуть между питанием и датой.
Сама ESP32 работает от 5в, на пинах рабочее 3.3, датчик работает от 3 до 5 в.
Вопрос: можно ли запитать гирлянду от блокп питания, минуя пин питания на esp? Не погорит ли чего? ведь я там через резюк соединяю дата пин на 3.3 и плюс от питания на 5в
kibastus
или не парится и питать все через есп от 3.3 пина?
kibastus
ㅤ
kibastus
у меня в влагоустойчивом корпусе там вроде не встроен
kibastus
а как проверить?
ㅤ
в esp
kibastus
с резюком все работает сейчас
ㅤ
а встроенную подтяжку надо включить программно
kibastus
ого
ㅤ
не утверждаю на 100% но помоему так
ㅤ
лучше проверь этот момент погугли могу ошибиться
kibastus
ладно, тогда упростися, это сейчас под рукой есп32 но я планируюна 8266 запускать
kibastus
поэтому можно ставить историю с подтяжкой программной, к тому же, все резюки куплены и готовы к пайке)
Anonymous
Pavel будет жить. Поприветствуем!
Роман