Stanislav
Подскажите как правильно ресетить идфный 1-wire
имеем функцию поиска из примера с вынесенным bus:
onewire_bus_handle_t bus = NULL;
static void sensor_detect(void)
{
onewire_bus_config_t bus_config = { // install 1-wire bus
.bus_gpio_num = SSOI_DS18B20_GPIO,
};
onewire_bus_rmt_config_t rmt_config = {
.max_rx_bytes = 10, // 1byte ROM command + 8byte ROM number + 1byte device command
};
int res = ESP_OK;
if (bus != NULL){
// onewire_bus_del(bus); // не оно :(
onewire_bus_reset(bus); // тоже не оно :(
} else {
onewire_new_bus_rmt(&bus_config, &rmt_config, &bus);
}
if (res == ESP_OK){
onewire_device_iter_handle_t iter = NULL;
onewire_device_t next_onewire_device;
esp_err_t search_result = ESP_OK;
// create 1-wire device iterator, which is used for device search
res = (onewire_new_device_iter(bus, &iter));
if (res == ESP_OK){
// ESP_LOGI(TAG, "Device iterator created, start searching...");
int cycles_count =0;
do {
search_result = onewire_device_iter_get_next(iter, &next_onewire_device);
if (search_result == ESP_OK) { // found a new device, let's check if we can upgrade it to a DS18B20
ds18b20_config_t ds_cfg = {};
// check if the device is a DS18B20, if so, return the ds18b20 handle
if (ds18b20_new_device(&next_onewire_device, &ds_cfg, &s_ds18b20s[s_ds18b20_device_num]) == ESP_OK) {
// ESP_LOGI(TAG, "Found a DS18B20[%d], address: %016llX", s_ds18b20_device_num, next_onewire_device.address);
s_ds18b20_device_num++;
} else {
// ESP_LOGI(TAG, "Found an unknown device, address: %016llX", next_onewire_device.address);
}
}
cycles_count ++;
} while (search_result != ESP_ERR_NOT_FOUND || cycles_count < 1000);
onewire_del_device_iter(iter);
// ESP_LOGI(TAG, "Searching done, %d DS18B20 device(s) found", s_ds18b20_device_num);
}
}
}
имеем таск опроса:
void sensor_read(void)
{
int errors = 0;
for (int i = 0; i < s_ds18b20_device_num; i ++) {
int res = (ds18b20_trigger_temperature_conversion(s_ds18b20s[i]));
if (res == ESP_OK){
res = ds18b20_get_temperature(s_ds18b20s[i], &ssoi_ds18b20_temperature);
if (res == ESP_OK){
ssoi_ds18b20_temperature = ssoi_ds18b20_temperature;
} else {
ssoi_ds18b20_temperature = 999;
errors++;
}
} else {
ssoi_ds18b20_temperature = 999;
errors++;
}
// printf("DS18 Температура: %.2fC\n",ssoi_ds18b20_temperature);
}
if (errors > 0){
vTaskDelay(500 / portTICK_PERIOD_MS);
sensor_detect();
}
}
При подключенном датчике на старте все находится и опрашивается норм, но если отключить датчик и потом его подключить назад то шина упорно не ресетится и при происке утыкается в мусор:
E (19596) 1-wire.rmt: onewire_bus_rmt_read_bit(505): 1-wire bit receive failed
E (19606) 1-wire.device: onewire_device_iter_get_next(75): read rom_bit error
E (19606) rmt: rmt_receE rmt: user buffer too small, received symbols truncated
как правильно ресетнуть его чтоб и буферы очистились и можно было на горячую датчики подключать-отключать?
Сергей
ребзя вопрос, взяли новую esp32c6 с дисплеем 1.47, тачем и сд картой и гироскопом qmi8658
как заставить есп просыпаться не просто по движению гироскопа, любого шолоха, а именно по достижению допустим угла в 45 градусов из горизонтального положения, пока я не нашел ничего такого, и он от малейшего шолоха пробуждается
там регистры править или как
Resident
Сергей
ULP
пожалуйста попонятнее, я глупи
Resident
пожалуйста попонятнее, я глупи
ULP (Ultra-Low Power) — сопроцессор микроконтроллера ESP32 (разработан компанией Espressif Systems). Это небольшой вторичный процессор, который работает в режиме глубокого сна (Deep-Sleep Mode).
Задача ULP: выполнять простые программы, пока основные процессоры ESP32 не работают. Он может:
читать датчики, подключённые к периферии RTC;
выполнять простые вычисления;
решать, разбудить ли основную систему.
Resident
Сергей
ну кстати, теоретически
Resident
И при нужных данных в ответе либо будить есп либо нет
Сергей
я просто думал по прерыванию, и можно как-то qmi настроить, чтобы он сигналил только по реальной нужде, а не по каждому шо лоху как сейчас
Сергей
Сергей
как? что? не в курсе просто
Resident
Если в гироскопе есть настройка порога прерывания тоже вариант
Resident
как? что? не в курсе просто
https://narodstream.ru/esp32-urok-44-soprocessor-ulp-pervoe-znakomstvo/?ysclid=mdd27fafas950097984
Там не Си ни ++ будет просто
ok-home
Там вроде тоже ulp на риске. Поэтому на сях пишем. Читаем внимательно тс esp32c6
Сергей
окак, спасибо ребят буду пробовать
Ник
ребзя вопрос, взяли новую esp32c6 с дисплеем 1.47, тачем и сд картой и гироскопом qmi8658
как заставить есп просыпаться не просто по движению гироскопа, любого шолоха, а именно по достижению допустим угла в 45 градусов из горизонтального положения, пока я не нашел ничего такого, и он от малейшего шолоха пробуждается
там регистры править или как
Современные МЭМс давно имеют встроенные DSP блоки и даже FSM для снижения частоты опроса самих МЭМС. Да господи старый mpu9250 и все его подобные имели такой дсп. минус в том, в случае с mpu, нужно грузить блоб в сам мэмс , что бы он работал. Минус такого подхода что вы не знаете что делаем мэмс, он сам решает всю математику и крутит матрицы, а вам выплевывает например кватерион или прерывание в случае свободного падения). Так к чему я пишу. Вы можете конечно написать на ULP c 'его' синтаксисом в режиме опроса в регистров или изучить свой мэмс досконально на наличие подобного дсп, . решать вам, тут больше вопрос затраченого времени
Andrey
привет всем, вопрос совсем от чайника наверное, но может кто-то сможет подсказать... собираю поделку для умного дома на базе nodeMCU v3 и наткнулся на странную особенность, модуль почему-то иногда отказывается подключаться к wifi, точнее даже подключается только после того как перезагружаю роутер. роутер раздавал сети 2.4, 5 с одноименными SSID думал беда в том что с 5 не может работать, отключил но не помогло... роутер я пока не планирую менять, потому в целом вопрос, может я не один с такой проблемой и есть какие-то шаманства с esp которые могут решить эту проблему. в инете не смог найти =(
Tonchik
привет всем, вопрос совсем от чайника наверное, но может кто-то сможет подсказать... собираю поделку для умного дома на базе nodeMCU v3 и наткнулся на странную особенность, модуль почему-то иногда отказывается подключаться к wifi, точнее даже подключается только после того как перезагружаю роутер. роутер раздавал сети 2.4, 5 с одноименными SSID думал беда в том что с 5 не может работать, отключил но не помогло... роутер я пока не планирую менять, потому в целом вопрос, может я не один с такой проблемой и есть какие-то шаманства с esp которые могут решить эту проблему. в инете не смог найти =(
Если многоквартирный дом— Android, WiFi analyzer , и посмотреть сколько сеток вокруг живет. Если все забито… ну не повезло, дальше в логах роутера глянуть причины ошибок и обновить фирмварь.
Andrey
хм... т.е. в процессе подключения к работающему wifi c заданным ssid по какой-то причине мешает окружение, но если ребутнуть роутер то перестает... у роутера кстати логи чистые, ошибок нет, просто новый клиент в списке не появляется. я для есп даже запись в дхцп создал, чтобы был фиксированный ip думал что хоть это поможет как-то, прошивка на роутере последняя, я это проверил
Tonchik
Andrey
У меня валились всякие handshake тайм-ауты
ну вот странно что у меня тут перезагрузка роутера помогает. чуть позже будет возможность проверить в частном доме и на другом роутере, ну и мб другую платку взять мб беда в конкретно этом экземпляре. спасибо в любом случае
Vladimir
Andrey
как вариант да, почитаю про esp32. у меня лежали 3 платки esp8266 потому даже не было мысли глянуть что-то поновее.
Andrey
в соседнем чате посоветовали перейти на esp32, думаю что вполне есть шансы что проблема решится
Дмитрий
Я решил свой вопрос! Разобрался и как через вэбсокет, и через mqtt. Второй вариант лучше.
Anton
привет всем, вопрос совсем от чайника наверное, но может кто-то сможет подсказать... собираю поделку для умного дома на базе nodeMCU v3 и наткнулся на странную особенность, модуль почему-то иногда отказывается подключаться к wifi, точнее даже подключается только после того как перезагружаю роутер. роутер раздавал сети 2.4, 5 с одноименными SSID думал беда в том что с 5 не может работать, отключил но не помогло... роутер я пока не планирую менять, потому в целом вопрос, может я не один с такой проблемой и есть какие-то шаманства с esp которые могут решить эту проблему. в инете не смог найти =(
я ни разу не пользовался 8266, уже в 2016 вышел есп32, который был ну прямо сильно лучше. и ни разу не помню таких проблем с подключением.
Andrey
ну у меня 8266 очень давно лежали, и когда начал решать задачку почему-то даже не подумал глянуть на современные аналоги
Anton
Andrey
почитал про esp32... эх, сильно удивлен во что эволюционировал проект) там даже аппаратное шифрование на борту, многие задачи которые пытался решать костылями идут из коробки) закажу пару штук гляну)
Anton
Aleks
Max
M5Stack CoreS3 Lite low-cost IoT controller features magnetic backplate and 200mAh battery
M5Stack CoreS3 Lite is a cost-optimized ESP32-S3-based IoT Vision AI controller providing a cheaper version of the CoreS3 with a magnetic backplate and 200mAh battery instead of a DIN Rail backplate and 500mAh battery.
The CoreS3-Lite still features a 2-inch capacitive IPS touchscreen, a VGA camera, a microSD card for storage, a few sensors like…
https://www.cnx-software.com/2025/07/22/m5stack-cores3-lite-low-cost-iot-controller-features-magnetic-backplate-and-200mah-battery/
Роджер
Очередной этап испытаний: МС-21 с российским оборудованием показал отличные результаты
Объединенная авиастроительная корпорация (ОАК) продолжает программу испытаний среднемагистрального самолета МС-21 с полностью российским оборудованием.
В подмосковном Жуковском состоялся очередной тестовый полет, в ходе которого проверялась работа бортового радиоэлектронного оборудования. Самолет находился в воздухе 3,5 часа, и все системы отработали штатно, сообщает пресс-служба Ростех.
На первом опытном самолете уже установлены российский комплекс БРЭО, отечественная вспомогательная силовая установка, системы кондиционирования и регулирования давления, светотехника и пульты управления, а также обновленные гидросистема и шасси. Второй опытный борт готовится к наземным серт...
Читать далее: https://sdelanounas.ru/blogs/169507/?utm_source=tg
🏭 @sdelanounas_ru - подпишись
Кстати, а вы хотите чтобы на этом канале появились новости о вашей компании? Это бесплатно! Подробнее здесь: https://sdelanounas.ru/staticpages/?id=126
Отлично, значит акции попрут вверх
Денис
Pavel
https://youtu.be/cH77RWhq7AM?si=WoUpUbnQmu5saj_E
Pavel
Интересно, а можно такое сделать без облака? Уж больно идея понравилась.
Арслан
Господа, добрый день, помогите распознать плату esp32. Все что знаю это бридж mqtt - ble .
Anatoliy
А если ещё ближе сделаете фото или чётче то вообще мы даже выдилим марку...
Особенно понятно будет размер флэша ;)
Арслан
Арслан
Арслан
Арслан
Anatoliy
https://img01.71360.com/file/read/www2/M00/6A/08/rBwBEmSBkI6AUYJDABeEbPVIioE463.pdf?dl=1&dlf=WT32C3-S5+Datasheet+V1.0.3.pdf
Stanislav
Stanislav
Ни у кого не завалялось примера с хот-плагом 1-wire датчиков на идф? Чот я радикально туплю но процесс сброса шины поставил меня в тупик 😑
Sergey
Stanislav
Stanislav
Я ее пробовал ресетить по разному но помогает только общий рестарт 🫤
Stanislav
По крайней мере если откинуть все датчики (пока хотя бы один хочу заставить хотплажить)
Sergey
Завтра посмотрю как у меня это работало, вроде не было проблем, тоже брал из примера
55
Ты старый модуль смотришь. Новый иначе называется и он не NRND
Resident
55
Stanislav
Так 32 никуда не денется. Кажись они в новых ревизиях уже Psram и флеш так же встраивают в корпус чипа
Прост если открываешь даташит на есп32 (проц, не модуль) то там прописаны снятые ревизии
А если гуглишь даташит на врум или вровер то в обоих (просто врум и просто вровер - они будут первыми в выдаче что в гугле что на сайте еспрессифа) написано что они нрнд целиком, а то что искать надо именно Ешку как последнюю (или уже нет?) ревизию надо вспомнить в аналах памяти ибо Гугл без букв только Д еще показывает, которая тоже нрнд 😁
55
Stanislav
Мы перешли на s3 в новых приборах и ни разу не пожалели - для старта с нуля я бы сейчас ее брал хотя бы из-за жтага через юсб на любой отладке с озона «за пицот»
Stanislav
На вроверах осталось только то что хотело быструю сеть но уложившись в 15 мегабит и s3 с w5500 вытягивает 👌
Stanislav
Кстати, вспомнил что не портировал на s3 еще - у 32 можно было прочитать напругу питания проца не занимая ноги ацп, у s3 нельзя по аналогии?
Anatoliy
Арслан
Вообще задам вопрос точно так как стоит задача, возможно вы подскажете решение куда копать, а я иду в неверном. Есть два протокола в сети. Контроллер с Модбас (основной) и теперь mqtt из-за этого бриджа. Этот бридж связывается через ble с кучей свистков которые далее передают сигнал по rs485 снова в модбасе. Для связки с mqtt есть некий сервер который собирает эту информацию с/по mqtt. Задача избавиться от сервера Linux (как от точки отказа) и послывать команды с контролёра сразу в модбасе
Арслан
Моя идея была в том что бы попробовать/заставить этот шлюз/бридж принимать команды сразу в модбас путем его перепрошивки. Или смотрю в сторону шлюза модбас/mqtt но по факту получается это замена того же сервера на Линукс, но возможно с точки зрения управления более удобная чем сервер
Anatoliy
ну смотрите - левая-зеленая платка явно BLE модуль, соединен с есп32 посредством UART|SPI(вполне возможно)
на ESP взаимодействие Вайфай/сеть.. Поэтому прийдеться разбираться более подробно... Либо менять модуль на известнй
Сергей
Всем здаров. Подскажите, что за дополнительных 8 сообщений нужно отправить SCLK с низким значением DIN после каждой операции считывания данных. Коротко о проблеме: у меня два ацп ads1220, не могу организовать считывание их поочереди, по одному читается данные. SPI развязан от esp32 ISO7241 , ноги DRDY каждого АЦП подключены через оптрон TLP627, CS на первый АЦП через ISO7241, второй АЦП через еще один оптрон, framework ARDUINO
Сергей
Логика же вроде простая: cs вниз , ждём drdy или dout тоже вниз, как только внизу забираем данные, потом переключаем канал и cs вверх, ждём второго АЦП, оптроны ведь тоже не быстрые для теста можно и delay добавить , потом сделаем без delay
Root
Привет кто может посоветовать какое железо взять не дорогое что бы развернуть бота скетч что бы залить на eps или что то там другое нужно ?
Root
Хотел развернуть бота на wroom eps32 не получилось походу надо другое железо брать
Resident
Root
Не даёт развернуть