romanetz
https://aliexpress.ru/item/1005002158756997.html китайцы говорят, что все 12-вольтовые
Anonymous
У меня два дюйма и 10 вольт напряжение, красные
Anonymous
14.5 оказалось. :)
romanetz
по току ориентируйся
romanetz
напруга от температуры плавает сильно, а вот амперы в канделы очень стабильно преобразуются
Anonymous
напруга от температуры плавает сильно, а вот амперы в канделы очень стабильно преобразуются
+1, ограничение по току обязательно, либо БП должен либо резистор
Arhiopteryx
Поделитесь плиз потом, помогло ли
Там в коде была Либа с быстрыми преобразованиями Фурье. На есп должна быть отдельная либа. Вроде в этом трабл
Arhiopteryx
Viter
ESP.deepSleep(60e6*30, WAKE_RF_DISABLED);//WAKE_RF_DISABLED — указывает на то, что проснется модуль с выключенным WiFi модулем
Viter
А как включить после этого
Viter
Альо, или меня забанили
Viter
С 19.39 никто не отзывается
Andy
А как включить после этого
очевидно включить :) Не знаю как в ардуино, а в idf есть функция включения
Mike
Всем привет. Замучался решать проблемы с рестартом по wd на esp32, понаставил гдетолько мог delay(1) и yield(). Сама программа без бесконечных циклом и while. Есть два таймера м работа с sx1278+mqtt. Рестартует почти всегда когда работает с mqtt или сразу после отправки в топик. Выглядит так: Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1) отключать wd не хочется, плохо что при рестарте теряется буфер для передачи в mqtt. Куда еще покопать можно?
MrSyabro
Я это к тому, что не в delay и yield'ах проблема
MrSyabro
Где-то ошибка
MrSyabro
Найти ее не могу
Я тоже ее пока не нашел 😁 А у меня вообще 8266, тоже mqtt
Mike
Я тоже ее пока не нашел 😁 А у меня вообще 8266, тоже mqtt
Брат по несчастью. Меня бесит, что причина не понятна, код ни где не циклится.
MrSyabro
Две прошивки управляют светом, одна очень часто так делает, вторая - если часто пытаешься клацать светом, рано или поздно начинается паника у него
MrSyabro
Точнее парочка 🤔
MrSyabro
Там датчики опрашиваются
MrSyabro
Так что не в циклах дело тоже
MrSyabro
Включи дебаг вывод в ядре
MrSyabro
Понатыкай в своем коде ESP_LOGD и смотри
MrSyabro
Или ты на ардуино?
Mike
Или ты на ардуино?
на ней самой.
MrSyabro
на ней самой.
Фу, да поможет тебе Бог 🤷‍♂
Mike
у меня еще в прерываниях по таймеру много чего делается, а не просто флаг взводиться. попробую это вынести в loop()
MrSyabro
Я на RTOS_SDK сугубо
Mike
Я на RTOS_SDK сугубо
пока для меня это ложно и долго.
MrSyabro
пока для меня это ложно и долго.
Та там нет ничего сложного
MrSyabro
В примерах много готового, скопировал, поправил - вуаля
MrSyabro
Вайфай? Гена на Одновления по сети? Гена, на
MrSyabro
А как работает ESP LOGD
Выводит дебаг сообщение в консоль
MrSyabro
Если вывод дебаг сообщений разрешен в ядре
MrSyabro
Но ядро ртос для ардуинки собрано и его не поправить, во всяком случае, стандартными методами 🤷‍♂
Mike
про логирование, мне очень интересно как до web-клиента его доставлять, через сокеты.
MrSyabro
Хм, в ртос есть стандартный вывод
MrSyabro
Если его направить в сокет, будет тебе логирование на другом конце
Viter
А можно примерчик как вписать его в скетч
Mike
видел как это работает в esphome и ему подобных, но примера не нашел. там же еще на js клиент на стороне принимающего
Viter
Выводит дебаг сообщение в консоль
А можно примерчик как вписать его в скетч
Viter
8266
MrSyabro
8266,
А ты тоже на ардуинке пишешь?
MrSyabro
Да
Фи
MrSyabro
У ардуинки может быть свое решение
MrSyabro
Там я не помогу 🤷‍♂
Viter
Там я не помогу 🤷‍♂
А может подскажешь как в есп на время deep sleep сохранить переменную типа int , надо количество циклов сохранять и читать при старте
MrSyabro
Флешку, в смысле, на внутреннюю флеш память
MrSyabro
Гемор полный, что с RTC что eeprom
Ну а шо ты хотел 🤷‍♂😁
MrSyabro
Nvs flash есть еще
Viter
Та тоже
MrSyabro
Та тоже
А у вас там че, все проекты на батарейках?
Viter
Надо 9 раз проснуться без вайфая, а на 10 вкл вайфай и передать данные
Viter
Ну да
MrSyabro
Странно
MrSyabro
Что вы там на батарейках делаете.. не понятно..
MrSyabro
Ну, занимайтесь 😂
Viter
Похоже не осилю, перерыл много, нету простых решений
Viter
Да
Mike
Да
#include <FS.h> bool cleanConfig(){ putLogLn("cleanConfig begin"); if(!SPIFFS.format()){ putLogLn(" SPIFFS format failed"); return false; } putLogLn(" SPIFFS format done"); config_t config_default; // создаем переменную с дефолтовыми значениями config=config_default; putLogLn(" config reset to default"); putLogLn("cleanConfig end"); return true; } // загружаем данные конфига из нергонезависимой памяти // https://esp8266.ru/arduino-ide-esp8266/#eeprom // http://wikihandbk.com/wiki/Arduino:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/EEPROM/get() uint8_t loadConfig(){ // putLogLn("loadConfig begin"); // putLogLn(" cfg addr=" +String((int)&config, DEC)); if(!SPIFFS.begin()){ putLogLn(" SPIFFS mount failed"); return false; } // putLogLn(" SPIFFS mount"); if (!SPIFFS.exists(settingsFilename)){ putLogLn(" Config file not exsist"); // if (!settings_save()){ // return false; // } } // putLogLn(" SPIFFS file found"); File spconfig = SPIFFS.open(settingsFilename, "r"); if (!spconfig){ putLogLn(" Could'n read file"); return false; } // putLogLn(" SPIFFS opened"); // putLogLn(" config_t size=" +String(sizeof(config_t), DEC)); // putLogLn(" SPIFFS confg size=" +String(sizeof(config), DEC)); // putLogLn(" SPIFFS file size=" +String(spconfig.size(), DEC)); // putLogLn(" SPIFFS file position=" +String(spconfig.position(), DEC)); long unsigned int bytesRead = spconfig.read((uint8_t*)&config, sizeof(config_t)); // putLogLn(" SPIFFS file position=" +String(spconfig.position(), DEC)); // putLogLn(" SPIFFS read byte=" +String(bytesRead, DEC)); spconfig.close(); // putLogLn(" SPIFFS close"); SPIFFS.end(); // putLogLn(" SPIFFS end"); if (bytesRead != sizeof(config_t)){ putLogLn(" read bytes not valid size"); // загруженный конфиг по длинне отличается от структуры конфига. может добавились/удалили параметры. сбрасываем конфиг к дефолту. cleanConfig(); return false; }else{ putLogLn("loadConfig done"); return true; } } // https://www.youtube.com/watch?v=pcfzf3NT6SI bool saveConfig(){ // putLogLn("saveConfig begin"); // putLogLn(" cfg size=" +String(sizeof(config_t), DEC)); // putLogLn(" cfg addr=" +String((int)&config, DEC)); if(!SPIFFS.begin()){ putLogLn("SPIFFS mount failed"); return false; } // putLogLn(" SPIFFS mount"); File spconfig = SPIFFS.open(settingsFilename, "w"); if (!spconfig){ putLogLn("File open failed"); return false; } // putLogLn(" SPIFFS opened"); // putLogLn(" SPIFFS confg size=" +String(sizeof(config), DEC)); // putLogLn(" SPIFFS file size=" +String(spconfig.size(), DEC)); // putLogLn(" SPIFFS file position=" +String(spconfig.position(), DEC)); config.save_config=1; // ставим флаг что записали конфиг long unsigned int bytesWrited = spconfig.write((uint8_t *)&config, sizeof(config_t)); // putLogLn(" SPIFFS writed byte=" +String(bytesWrited,DEC)); spconfig.close(); // putLogLn(" SPIFFS close"); SPIFFS.end(); // putLogLn(" SPIFFS end"); if (bytesWrited != sizeof(config_t)){ putLogLn(" writen != settings"); return false; }else{ putLogLn("saveConfig done"); // putLogLn("saveConfig end"); return true; } }
Mike
Да
поудаляй лишнее, ссылку почитай. у меня была засада со сравнением, что прочитал из SPIFFS и что есть сейас, чтоб при изменении структур её занулять в SPIFFS
Viter
Ок