DrZagzz
при варианте Б также получается много байтов отправляем.. а при А много конектов
DrZagzz
есп32 стабильно слетает если слишком много писать файлы. даже при формате lfs2, он всё равно через несколько часов выдавал OS Error: system fucked после чего нужно заного перезаливать фирмварь я думаю попробую вариант А, посмотрю какую нагрузку дают конекты на сам есп
Andy
есп32 стабильно слетает если слишком много писать файлы. даже при формате lfs2, он всё равно через несколько часов выдавал OS Error: system fucked после чего нужно заного перезаливать фирмварь я думаю попробую вариант А, посмотрю какую нагрузку дают конекты на сам есп
скорее всего проблема с реализацией поверх библиотеки. например на одном из изделий при потере соединения с брокером данные кэшируются и выкладываются при восстановлении. бывает до суток теряется соединение.
DrZagzz
кэшируются в памяти или на диске?
DrZagzz
а, и вы делаете один конект в начале, не обрывая его после каждой отправки?
DrZagzz
тоесть соединение как бы все время активно
Andy
кэшируются в памяти или на диске?
использую vfs. есть для относительно больших объемов на отдельной флаш, там fatfs использется. для небольших объемов до 1кб spiffs.
Andy
а, и вы делаете один конект в начале, не обрывая его после каждой отправки?
в смысле держу ли сессию tcp для каждой отправки? В некоторых случаях закрываю сессию если следующий пакет будет через 5 минут допустим. а в некоторых случаях пока не будет получено подтверждение от брокера - бывает до 5 секунд висит.
SAEID
Raspberry Pi Pico Microcontroller Is Just $4
Andy
Raspberry Pi Pico Microcontroller Is Just $4
явно слабее по функциональным возможностям esp32. отсутвуют радиоинтерфейсы. нет ulp. а в свете выхода esp32-s3 с otg выглядит совсем слабо.
romanetz
Вопрос ещё и в том, какая цена будет и скорость OTG
Белый
uint8_t loadConfig(config_t *cfg){ putLogLn("loadConfig sizeof=" + String(sizeof(config_t), DEC)); EEPROM.begin(sizeof(config_t)); EEPROM.get(EEPROM_startaddr, cfg); EEPROM.end(); if (!cfg->save_config){ putLogLn("loadConfig get defaul value!"); } else{ putLogLn("loadConfig load value from eeprom"); } return 1; }
void mqtt_callback(const MQTT::Publish& pub){ //-------MQTT приём String payload = pub.payload_string(); if (String(pub.topic()) == "BelPower/realkw") //realkw - в топик присланы реальные показания счётчика { for (byte i=0; i <= 5; i++){ digitalWrite(12, !digitalRead(12)); delay(20);} realkw = payload.toInt(); //присланное значение if (realkw!=0) { korrkw=realkw-e; //расчёт коррекции EEPROM.get(0,test); //считываем прошлую запись из EEPROM } else {korrkw=0;} if (test!=korrkw) { //если данные изменись, EEPROM.put(0,korrkw); // то пишем новое в EEPROM EEPROM.commit(); //подтвердили запись for (byte i=0; i <= 5; i++){ digitalWrite(12, !digitalRead(12)); delay(20);} } } }
Белый
Извиняюсь за портянку, думал можно спойлер сделать. След раз ссылкой отвечу. Код работает, при перезагрузке значение запоминает
Daniil
Доброе утро, хочу разобраться в программировании плк. Мб кто-то шарит? С чего начать вообще? В интернете инфы катастрофически мало
Dmitriy
Цена что-то не 4$....
Dmitriy
Daniil
romanetz
http://asutp.org/S7-1200/s71200_easy_book_en-US_en-US.pdf fast start with s7 and tia portal
romanetz
Ну например
romanetz
Всё то же самое, только синтаксис чуть другой, и блокирующих вызовов нету, весь код должен быть асинхронным
Daniil
Мало?????
Ну да, не много, особенно если учесть, что мне нужно разобраться в amsamotion
romanetz
В чём?
romanetz
==s7-200
romanetz
Соответственно, тиа портал или step7 и доки от сименса
verlal
А кто нибудь nextion подключал к esp8266?
Yurets
Доброе утро. Подскажите есть датчик холла а3144 как его подключить к ESP. Для работы датчика необходимо питание 5v соответственно на выходе будет 5v который мне нужно подключить к пину esp, а он 3,3в
Leonid
Доброе утро. Подскажите есть датчик холла а3144 как его подключить к ESP. Для работы датчика необходимо питание 5v соответственно на выходе будет 5v который мне нужно подключить к пину esp, а он 3,3в
Ну можно использовать преобразователь уровня, если у тебя там только детектируется наличие/отсутсвие сигнала, то можно просто воткнуть резисторный делитель
Yurets
Можете подсказать схему?
Yurets
Детектор только 1,0
Leonid
Leonid
где vddusb твой датчик, а chg_start к esp
Yurets
Сопротивления соответствуют номиналам для 5 и 3,3в?
Yurets
Спасибо
Leonid
Как-то сложно.
Да плюс минус то что я выложил
Andy
Как-то сложно.
хозяин барин - это если хотите разобраться как оно работает
Leonid
Как-то сложно.
Тут калькулятор https://cxem.net/calc/divider_calc.php
А кто нибудь nextion подключал к esp8266?
Здесь обсуждали через поиск поищите.
Leonid
Вопрос, кто работал с внешними ацп, даже немного не так, хочу получать данные об акб, напряжение, ток который он отдаёт и тд, пока смотрю в сторону MAX17048, но вдруг есть что то поинтереснее
romanetz
fuel gauge посмотри чипы от ti
mo
Ребят помогите пожалуйста проверить дисплей ssd1306 128x64 как бы не подключал какиеб скетчи не заливал не работает
mo
Есть какой-то простой рабочий вариант проверить дисплей?
mo
https://randomnerdtutorials.com/esp32-ssd1306-oled-display-arduino-ide/
Вот такая esp https://esp8266.ru/forum/attachments/2021-01-13_13-38-png.10435/ название контактов другое если подключу по номеру они совместимы?
mo
это esp8266 - совсем другой чип.
Я по ютубовскому ролику делал экран работал все ок было и перестал работать поменял модуль но экран так и не завелся
Mike
Всем привет. попробовал использовать SPIFFS для хранения настроек, но ребутится esp8266. делал по примерам, не через json, а сразу в структурой (бинарником), но возможно напутал с указателями, ребутится вот тут: uint16_t bytesRead = spconfig.read((uint8_t *)&confg, sizeof(config_t)); сама функция до этого кода: #include <FS.h> typedef struct { uint8_t current_pos = 0; // текущая позиция ограничителя uint8_t max_pos = 0; // максимальное кол-во оборотов с датчик при максимальном открытии ограничителя (если не ноль, то прошла калибровка) char topic_MQTT_CMD_IN[50] = "window1/inTopic"; // топик по входящим командам char topic_MQTT_STATUS[50] = "window1/status"; // топик со статусом char mqtt_server[20] = "192.168.1.2"; // адрес mqtt сервера char mqtt_user[20] = "esp"; // Логи от mqtt сервер uint16_t mqtt_port = 1883; // порт от mqtt сервера bool save_config = false; // статус записи в eeprom (true - сохранено, false - Брать дефолтовые) } config_t; uint8_t loadConfig(config_t *confg){ putLogLn("loadConfig begin"); 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(" SPIFFS config_t size=" +String(sizeof(config_t), DEC)); putLogLn(" SPIFFS confg size=" +String(sizeof(confg), DEC)); putLogLn(" SPIFFS file size=" +String(spconfig.size(), DEC)); putLogLn(" SPIFFS file position=" +String(spconfig.position(), DEC)); uint16_t bytesRead = spconfig.read((uint8_t *)&confg, sizeof(config_t)); ..... } вроде функция read у File по спеке как и использую: size_t File::read(uint8_t* buf, size_t size) { if (!_p) return -1; return _p->read(buf, size); } куда копать?
Anonymous
Всем привет. попробовал использовать SPIFFS для хранения настроек, но ребутится esp8266. делал по примерам, не через json, а сразу в структурой (бинарником), но возможно напутал с указателями, ребутится вот тут: uint16_t bytesRead = spconfig.read((uint8_t *)&confg, sizeof(config_t)); сама функция до этого кода: #include <FS.h> typedef struct { uint8_t current_pos = 0; // текущая позиция ограничителя uint8_t max_pos = 0; // максимальное кол-во оборотов с датчик при максимальном открытии ограничителя (если не ноль, то прошла калибровка) char topic_MQTT_CMD_IN[50] = "window1/inTopic"; // топик по входящим командам char topic_MQTT_STATUS[50] = "window1/status"; // топик со статусом char mqtt_server[20] = "192.168.1.2"; // адрес mqtt сервера char mqtt_user[20] = "esp"; // Логи от mqtt сервер uint16_t mqtt_port = 1883; // порт от mqtt сервера bool save_config = false; // статус записи в eeprom (true - сохранено, false - Брать дефолтовые) } config_t; uint8_t loadConfig(config_t *confg){ putLogLn("loadConfig begin"); 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(" SPIFFS config_t size=" +String(sizeof(config_t), DEC)); putLogLn(" SPIFFS confg size=" +String(sizeof(confg), DEC)); putLogLn(" SPIFFS file size=" +String(spconfig.size(), DEC)); putLogLn(" SPIFFS file position=" +String(spconfig.position(), DEC)); uint16_t bytesRead = spconfig.read((uint8_t *)&confg, sizeof(config_t)); ..... } вроде функция read у File по спеке как и использую: size_t File::read(uint8_t* buf, size_t size) { if (!_p) return -1; return _p->read(buf, size); } куда копать?
Отсюда и до того дерева. А я пока узнаю где надо ))))
Viter
Приходиться дома скрывать ssid сети, как в таком случае подключать esp, может по мас можно как-то?
Resident
Скрытая сеть кхммм как бы и не скрытая ниращу
Resident
Ниразу
Viter
Разу ни разу, а скрыаваешь на роутере и esp перестает к ней подключаться
Алексей
а другие устройства подключаются?
Алексей
не есп
Алексей
может случайно отключаете точку вместо отключения видимости вайфай сети
Andy
Приходиться дома скрывать ssid сети, как в таком случае подключать esp, может по мас можно как-то?
явно указывать ssid и все https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html#_CPPv417wifi_sta_config_t
Viter
Другие ноут,телефоны можно вручную подключить через поиск других сетей и вручную вводить сил и пароль
Leonid
Игрался как то с ina219, просто и удобно
Больше спасибо, прямо почти идеально и стоит копейки
Viter
https://github.com/espressif/esp-idf/issues/2989
Не, не нахожу там конкретно го решения
Viter
По переводу текста вроде есть там решение, но копаться мне не удается
Slava
Коллеги, кто нибудь уже разбирался с mesh на esp32? Главный вопрос: сколько свободной памяти остаётся после подключения библиотеки mesh ? Стоит вообще разбираться или мешь сожрёт всю память как блютуз-бле и больше ничего не сможет работать?
Slava
Картинка для привлечения внимания
Leonid
Мегабайт до 8
Leonid
Или psram для этого плохо подходит?
Slava
Мегабайт до 8
Кстати, на чипах большой памятью сколько свободной оперативки остается для работы после компиляции кода? У меня на обычных есп32 остается примерно 200 килобайт.