
Привет, Хабр!
Это четвертая статья из цикла по ESP-IDF. Как и обещал, сегодня мы рассмотрим мьютексы и семафоры на простых (и не очень) примерах.
Пользователь
Привет, Хабр!
Это четвертая статья из цикла по ESP-IDF. Как и обещал, сегодня мы рассмотрим мьютексы и семафоры на простых (и не очень) примерах.
В течение месяца вы проходите собеседования, получаете офферы — и хотите выбрать лучший. Но каждый оффер живёт недолго: если не согласитесь вовремя, к нему уже не вернуться. Как действовать, чтобы выбрать самый лучший?
Это версия классической задачи о разборчивой невесте. У неё есть красивая оптимальная стратегия — правило . Возможно, вы о нём слышали. Но знаете ли вы, почему оно работает? И как вообще до него додуматься?
Часто алгоритмы — это эвристики, без гарантии оптимальности. Но в этой задаче всё иначе. Мы шаг за шагом переоткроем правило и докажем, что он действительно лучший
Недавно я узнал о Теореме о Шансах — более общем подходе, который, неожиданно, работает гораздо проще, чем классическое доказательство. По-русски о ней еще никто не писал
В статье мы разберём эту теорему, выведем правило и увидим, как в задаче естественно появляется число
— и какой у него смысл на самом деле
Эта задача стоит того, чтобы пройти её до конца. Будет понятно, красиво и интересно
Салют, Хабр!
Я Артур, CPO умных колонок Sber. Я отвечаю за создание наших умных колонок, в том числе за предмет этой статьи — их звучание.
Как компания, которая разрабатывает умные аудиоустройства, мы оцениваем любую попавшую нам в руки акустику, чтобы понимать, как звучат разные варианты аудиосистем, и усиливать нашу экспертизу при создании собственных устройств. Ведь даже умные, колонки служат и для проигрывания музыки. А значит, мы должны обеспечивать пользователям максимально лучший из возможного опыт.
Чтобы оценить аудиосистему, нужны музыкальные треки, которые раскроют весь её потенциал и способность передавать разные аспекты музыки. Собрали 10 треков, которые используем в работе, оценивая любые колонки. Рассказываем, как проверяют звучание устройств и как мы тестируем его при разработке умных колонок; делимся плейлистом для проверки, насколько совершенно ваше аудиоустройство.
О сколько нам открытий чудных
...
Судя по результатам голосования и комментариям к предыдущей статье, к вопросу контроля АКБ у самых простых ИБП есть некоторый интерес. Данная статья - продолжение данной темы.
Сейчас прототип собран на макетной плате (токовый шунт к которому подключено два АПЦ). Измеритель напряжения и тока INA3221, как рекомендовали в комментариях, я решил не использовать, так как дискретность его измерения 8мВ сравнима с дискретностью 12-ти битного АПЦ в обычном микроконтроллере (для ESP32 получается точность измерения около 6мВ).
Недавно у меня возникла необходимость определять на микроконтроллере моменты включения/выключения погружного насоса с поплавковым выключателем, запитанного от сети 220В, т.е. по сути определять наличие потребляемого тока в цепи подключения насоса. Когда речь идет об измерениях в сети 220В, в первую очередь стоит подумать о том, как обеспечить качественную гальваническую развязку, т.е. отсутствие электрического контакта между высоковольтными и низковольтными цепями.
Пожалуй самым простым и быстрым решением было бы взять готовый модуль на эффекте Холла (например на базе микросхемы ACS712). Однако мне такой вариант не подошёл по двум причинам. Во-первых, он требует питания 5В, а у меня было всё запитано от 3.3В. Во-вторых, он включается в разрыв измеряемой цепи, а мне было очень важно не нарушить работу насоса даже в случае ошибки проектирования или выхода из строя датчика.
Как ни странно, нагуглить готовое решение без специальных модулей для такой казалось бы простой задачи не удалось, поэтому здесь хочу поделиться опытом расчета и изготовления простейших измерительных токовых трансформаторов.
Практически все заводские Zigbee
датчики протечки не умеют посылать команды напрямую исполнительному устройству, например мотору крана. И если сеть рухнула, например отключили электричество, то система антипротечки не сработает, даже если она построена на батарейных устройствах. Прямой биндинг решает эту проблему.
Привет, Хабр!
Это третья статья из цикла по ESP-IDF. Ранее мы разобрали стек задач, работу с GPIO и прерывания. Теперь перейдём к очередям FreeRTOS — мощному инструменту для безопасного обмена данными между ISR и задачами. Поехали!
Немного железа, немного софта, много времени, и у вас появится легендарная панель управления с интерактивным планом дома.
Привет хабр!
Совсем недавно мне в руки попала плата ESP32 (NodeMCU‑32S). Ранее я уже работал с ESP8266 и даже создавал на ней простейшее веб‑приложение в режиме Station. Делал я все это в ArduinoIDE и был рад обнаружить расширение, которое позволяло организовать мой проект (да и просто в VSCode удобнее работать) - PlatformIO. Именно в PlatformIO я в первый раз увидел фреймворк ESP-IDF и начал потихоньку углубляться в эту тему.
В отличии от датчика из статьи https://habr.com/ru/articles/914658/ , далее рассматривается возможность измерение не толщины нити, а ее объема. Такой датчик может быть очень компактным.
Далее кратко описана экспериментальная проверка технической возможности создания такого датчика, но готовое решение пока не делал.
Идея датчика простая, но ее техническая реализация не является очевидной. Суть идеи в том, чтобы измерять объем нити с помощью конденсатора.
Известно, что для 3D принтеров нить(филамент) изготавливается в основном диаметром 2,85 мм и 1,75 мм. Поэтому, для экспериментов сделал емкостной датчик, из двух параллельных медных пластин толщиной 0.1 мм и размером 5x15 мм2, соединенных по бокам перегородками из пластика толщиной примерно по 1 мм. Получился конденсатор с внутренним отверстием примерно 3x3 мм2.
Для экспериментальной проверки данной идеи использовал технологию емкостного зондирования с заземленными конденсаторными датчиками. Это очень маломощная, недорогая, высокоразрешающая бесконтактная технология , которая может применяться в различных приложениях, начиная от зондирования приближения и распознавания жестов до анализа материалов и дистанционного измерения уровня жидкости. Датчиком в емкостной сенсорной системе является любой металл или проводник, что позволяет создать недорогую и очень гибкую систему.
Технология реализуется на основе чипа FDC1004, который представляет собой 4-канальный емкостно-цифровой преобразователь высокого разрешения.
Добрый день, суть стать в создании устройства для автополива комнатных растений на базе SoC CH32v003 и распространенной платы на AliExpress для реализации изделия. Ниже привожу конечный результат изделия, все исходники и чертежи тут https://github.com/Levon24/ch32-auto-watering
Привет, Хабр!
Сегодня разбираем &&* неувядающую классику C++ — ссылки & и указатели *. Казалось бы, два оператора, делов-то, но стгоит нырнуть под крышку — и выясняется: тут и разное время жизни, и несменяемость адреса, и прочие вещички. Разберемся в статье подробнее.
Мой фотоархив к 2025 году превратился в настоящую головоломку. 40 тысяч снимков были разбросаны по трём внешним дискам, трём облачным хранилищам и давно забытым папкам на старом ноутбуке. Проблема усугублялась тем, что устройств стало больше, и каждый – смартфон, фотоаппарат, дрон, добавляют горы файлов в разных форматах и с противоречивыми метаданными. Например, геотеги из отпуска в Турции показывали координаты с ошибкой в 200 метров, а даты в EXIF не совпадали с реальными из-за смены часовых поясов.
С масштабом проблемы я впервые столкнулся, когда попытался найти фотографии с первого дня школы сына. Вместо нужных кадров с линейки обнаружил огромное количество странных снимков – с размытыми лицами, случайные скриншоты с сайтов и мессенджеров, даже фото чужой собаки. Весь этот хлам незаметно копился годами, растворяясь между нормальными фотографиями. Знакомая ситуация?
В тот момент я понял — нужна система, которая работает в реалиях 2025 года, где объёмы данных уже достигают гигантских размеров, а ручная сортировка вряд ли поможет расчистить эти «Авгиевы конюшни». Ведь это тысячи фото, сваленных в множество самых разных папок на разных устройствах, многие из которых даже толком не подписаны. Здесь, наверное, вы заглянули в свой фотоархив и тоже ужаснулись.
Идеяустройства возникла у меня давно. Захотелось аппаратного менеджера паролей. Надоело перепечатывать 20-символьные пароли из телефонного KeyPass, а на каждый компьютер, где нужно что‑то вводить, устанешь устанавливать. Посмотрел, что предлагают, посмотрел, что делают. В основном, не понравились размеры. Иногда цена. С другой стороны, телефон с паролями всегда с собой. А тут ещё бесплатный DeepSeek.
TL;DR: Просто история мучений. В конце прошивка для контроллера + Android‑приложение, работает. Хотя и на стадии «концепт».
Наверное каждый любитель электроники имеет в запасе модули приобретенные на всякий случай. Так несколько лет назад я не смог пройти мимо 1.5 дюймового E-Ink дисплея, лежащего на витрине радиомагазина. Через некоторое время нашлось для него применение. В статье ESP32 E-Paper Thermometer описывается, как отображать окружающую температуру, измеренную с помощью датчика DS18B20. Проект выполнен в Arduino IDE. Но я решил пройти "Путь самурая" и портировать код на ESP-IDF. Пришлось немного повозится с библиотеками для работы с дисплеем. На этом мой путь не окончился, как говорят: "У самурая нет цели, есть только путь". И я решил, что было бы неплохо добавить еще несколько сенсоров, измеряющих влажность, давление, CO2, а потом отправлять эти данные по MQTT. В том же радиомагазине был приобретен фанерный домик-конструктор со светодиодным ночником. А в другом магазине - модуль с датчиками. Таким образом родилась идея сконструировать Micro-smart-home. На передней части домика расположен дисплей на пластиковых стойках. А с другой стороны расположен модуль с сенсорами.
Никак не доходили руки до написания этой статьи, точнее я её планировал написать после полноценного перевода устройства на esp32 c3, который никак не состоится.
Вкратце напомню о чем этот проект, и чем он закончился в прошлой статье. Мы разрабатываем компактное устройство для чтения, хранения, записи и эмуляции электронных ключей (которые чаще всего встречаются у нас в подъездах и на проходных). Изначально это был проект одного из моих учеников. Но в этом году, для участия во ВСОШ по робототехнике ему пришлось поменять тему работы, которая тоже довольно интересная, как-нибудь по неё тоже напишу). А я по наличию времени и энтузиазма продолжил добивать программную часть.
В прошлой статье мы перевели устройство на esp8266, что сделало его более производительным и решило проблему с памятью. У нас получилось прочитать и эмулировать контактные ключи dallas и русские Сyfral и Metacom. После этого мы решили перейти к бесконтактным ключам стандарта EmMarine.
Бесонтактные ключи уже так просто, при помощи одного резистора, не прочитаешь, нужен детектор-генератор на 125 кГц. На этом этапе опять очень помог проект от Alex Malov EasyKeyDublicator. У него я взял схему детектора без изменений. И первые тесты производил на Arduino Nano.