В этой публикации я хочу рассказать о нескольких «ардуинных поделках», которые вы, возможно, найдете достаточно забавными или полезными. Как правило, все они просты, и доступны для повторения даже начинающему «ардуинщику». Хочу сразу успокоить читателей - о самодельных станциях погоды, контроллерах бойлеров, и устройств для полива растений речи тут идти не будет; при желании, вы найдете на «Хабре» (не говоря уж про интернет) «стопятсот» статей про подобные гаджеты. Впрочем, мои проекты тоже не отличаются особой оригинальностью (за исключением, как я думаю, одного).
Нужно сказать, что вместо оригинальных «ардуин» я предпочитаю использовать ESP32 dev board: при гораздо более низкой цене, они предоставляют намного большую функциональность. Как-то, я купил на «Алибабе» мелкооптовую партию в сто штук по неплохой цене, затем 80 продал на eBay, а 20 оставил себе для поделок и подарков увлеченных «ардуиненьем» друзьям и приятелям. ESP32 при этом обошлись мне бесплатно (даже что-то, вроде, заработал – но тут же потратил для закупки контроллеров, дисплеев etc. – на PayPal-е деньги на залеживаются).
Впрочем, все проекты, упомянутые в этой статье, очень легко портировать на оригинальные «ардуины».
Я не буду приводить в этой статье код, схематику, и использованные детали (BOM, bill of materials), поскольку все это есть в описании проектов на гитхабе, и нет смысла перегружать статью излишней информацией. Правда, все описания там на английском, но, поскольку это мой английский (говорю я on English, наверное, все-же намного понятнее, нежели пишу), то у вас проблем возникнуть не должно. Кроме того, там полно красочных картинок! Ну, а если будет что неясно, то спрашивайте по-русски тут или даже на гитхабе.
Итак, поделка №1: «Цифровой магический шар»
Как-то, борясь с "ковидной скукой", "наардуинил" вот такую электронную игрушку, цифровой "Magic 8 Ball". Если вы не видели подобный шар "вживую", то, должно быть, вспомните по великолепному фильму "Interstate 60" с Гэри Олдменом, Кристофером Ллойдом, Майклом Джей Фоксом и Джеймсом Марсденом.
Из предыстории проекта: моим детям кто-то подарил оригинальный "Magic 8 Ball", но моя малышка (младшая дочь, ей тогда было 5 лет с "хвостиком") еще не умела читать по-английски, и потому она расстроилась, что не может "использовать магию" и спросить "волшебный шарик" о будущем ее чрезвычайно важных детских надежд и мечтаний. Она спросила папу (т.е. меня), не смогу ли я "заставить шарик заговорить по-русски". Ну, а папа сдуру пообещал - вот и пришлось делать ("пацан сказал – пацан сделал!").
Проект получился не очень сложный, но достаточно занимательный и «насыщенный» разными контроллерами. Исходные коды и схематика доступны на гитхабе.
Главные отличия от подобных проектов «magic 8 ball» (а их хватает) заключаются в многоязычности, реалистичной (если, конечно, это можно так назвать) анимации, голосовой поддержке и имплементацией нового (как я надеюсь) типа UI.
Прошу прощения за качество презентации, но я не только не видеоблогер, но даже и не учусь
Поделка №2: «умный» стартер мотора автомобиля
Уже весьма продолжительное время (более 18 лет), на всех моих автомобилях была установлена опция удаленного запуска двигателя. Получив и опробовав, в первый раз, эту опцию с Toyota Matrix, я, в дальнейшем, буквально требовал от дилеров установки подобной опции на всех машинах, что я покупал или брал в лиз (а подавляющее большинство из них были Nissan Altima разных лет, см. эту статью).
И, действительно, эта опция чрезвычайна удобна как зимой, в мороз, так и летом, в жару: можно из дому прогреть или охладить салон перед поездкой. Меня долго занимал вопрос: а возможно-ли этот процесс как-то автоматизировать (для меня было особенно важно из-за регулярных поездок в офис: утром, порой, просто «заматываешься» в спешке и забываешь нажать на кнопку)?
Коммерческие решения, существующие на рынке, я рассматривать не стал: мало того, что они достаточно дорогостоящие, но еще и требуют подписки на платный сервис (ежемесячная оплата порядка $10 или даже $20), а также полностью проприетарные. Поди знай, кто и когда будет включать мой автомобиль через 3G?!
«Высокотехнологичный» способ - эмулировать сигнал от кнопки на «брелке» (car remote key fob) – использовать, оказывается, далеко не так просто: современные RF протоколы car remotes надежно (ну, сравнительно надежно) шифруются «плавающим ключом», и для подобного взлома требуются весьма нетривиальные знания. Может быть, кто-то напишет на эту тему статью на «Хабре»? Можно было, конечно, просто вскрыть второй «брелок», припаять «ардуину» проводами прямо к PCB «брелка», и «нажимать» кнопку через DIO. Но, поскольку «Альтимы» я «лизовал», не хотелось «мутить» с брелком, ведь при лизе сдавать автомобиль нужно в полной комплектации, и, по возможности, наилучшем виде (иначе выставят счет).
В результате, я решил остановиться на самом простом варианте – «тупом» и прямолинейном роботе-«кнопконажималке». Поскольку 3D принтером я до сих пор так и не обзавелся, поэтому конструкцию «робота» пришлось собирать из кусочков полудюймовой деревянной доски. Эти кусочки были надёжно скреплены шурупами, потом вся конструкция, в "истинных традициях" русских инженеров, была доведена до кондиции напильником (я не шучу!), покрашена и "финиширована" для приятных тактильных ощущений нашим "лучшим старым другом", черной изолентой. Кстати, в RL эта штука выглядит намного круче, чем на фотках.
В качестве главного "привода" был выбран сервомотор MG995 – крутящего момента у него хватит не только, чтобы нажать на кнопку, но и намного больше. Второе достоинство данного "серва", что для управления им практически ничего не нужно – только подключить control wire к нужному пину dev board, а для питания и земли подойдет обычный 5-вольтовый блок (т.е. не нужны платы ни бриджей, ни драйверов).
Самой сложной частью проекта было создание кривошипно-шатунного механизма (для преобразования кругового движения в линейное – ну, чтобы нажать кнопку). Попытки найти что-то готовое в интернете не привели к успеху (просто нет такого, либо есть что-то похожее, но по фантастической цене!), поэтому пришлось прибегнуть к "наколенному" решению - была взята и распилена пластиковая опора копеечной ветровой вертушки ("на его месте мог бы быть я!" (с) – т.е. могла бы быть любая пластиковая трубка и стержень), с помощью обычной сигаретной зажигалки были расплавлены концы пластикового прутка, а потом просто зажаты пассатижами. Немного шлифовки надфилем, тонкое сверло, пластиковые болтики для сопряжения, Epoxy клей (это важно, сопряжение должно быть надежным) – и великолепный "кривошатун" в нашем распоряжении!
К слову сказать, конструкция в общем получилась, как любят говорить американцы, "solid as a rock" («твердая, как скала»). И работает, как хорошие часы: очень крепкая, надежная и софт не глючит.
Изначально я подумывал о простой "тупой нажималке", которую потом можно было-бы интегрировать в openHAB (ну, или другой проект “Smart Home”). Но потом еще подумал: "У меня в распоряжении есть мощный SoC, с достаточным количеством памяти и Wi-Fi, так в чем же дело?!" и засел ваять "умную программку".
Эту программку вы можете найти вот тут.
Как она работает (вкратце): стартует web server, через который доступна страница конфигурации. Поскольку я решил обойтись "минималистическим решением", и не добавлять ни контроллер real time clock, ни temperature sensor, требуется подключение к интернету через Wi-Fi. Программа синхронизирует время с NTP сервером (я использую time.google.com), а "забортную" температуру получает от openweathermap.org (это абсолютно бесплатно, нужно просто зарегистрировать эккаунт). В назначенное время программка "командует" мотору "нажать" сначала кнопку "close doors", а потом "engine start" (такую последовательность предусмотрел Nissan). Для других производителей автомобилей, вы можете легко изменить эту последовательность (но, AFAIK, у всех она примерно одинаковая).
Самое обидное, что из-за проклятого COVID-19, и, соответственно, работы из дому, мне так и не довелось воспользоваться в «штатном режиме» этой нетривиальной разработкой, ну, а сейчас уже поздно. Впрочем, выбрасывать я ее не собираюсь: кто знает, может, через полтора года и пригодится
Поделка №3: «умный» Wi-Fi ремоут для «глупых» устройств с инфракрасными пультами
Это совсем уж простая и незамысловатая поделка, но она позволит вам достаточно легко превратить ваше «глупое» устройство с пультом инфракрасного управления, в «новый, молодежный и хипстерский» smart home device, притом, практически, без затрат. Хотя, конечно, если вас больше заинтересует готовый гаджет, то со спокойной совестью (ну, или почти, ибо «китайская проприетарщина»!) порекомендовать вот такое устройство, Broadlink RM mini 3/4, который на eBay/Ali можно купить примерно за $15. Что любопытно, компания Broadlink даром, что китайская, но имеет до удивления приличную и грамотную тех. поддержку, отвечающую профессионально и «по делу» в течение 12 часов.
Вот ссылка на проект
Там же лежит крохотный snippet, для чтения IR кодов с реальных пультов.
Код до неприличия простой и прямолинейный; даже у людей с минимальным опытом "ардуиненья" не должен вызывать вопросов.
Подобных решений полным-полно в интернете, всевозможной степени простоты или сложности, а также "баговости". Моих "инноваций" тут немного; единственно, замечу, поскольку я не художник и не веб-дизайнер, для меня всегда было большой проблемой нарисовать "не позорную" landing HTML страничку с кнопками. В данном случае я хитро обошел эту проблему, путем создания "фотореалистичной" копии оригинального пульта (в фотках - как это выглядит на телефоне), HTML area и простецкого java script.
Интеграция с Google Home (или Alexa, или Siri) самая простецкая, через io.adafruit и ifttt.com (т.е. мы добавляем не, собственно, smart device, а лишь actions), но работает, на удивление, весьма неплохо. Думаю, что поддержку smart home можно "запилить" и через более "правильную" интеграцию, но лично мне это пока не интересно, да, и если честно сказать, не особо нужно – «работает – не трогай! (с) «Первая Заповедь Программиста»
Инструкции по интеграции смотрите вот тут, там все очень просто.
Да, "обсмартить" (что-то меня на неологизмы потянуло! ) таким путем можно практически все. В своих экспериментах я проверил порядка шести или семи самых разнообразных IR-ремоутов – от кондиционеров, телевизоров, детских игрушек, электрического камина, светодиодной ленты - все считывается и воспроизводится безошибочно. Есть лишь одно ограничение: у дешевых IR-трансмиттеров (диодов) очень маленькие дальность и угол работы (в отличие от того же Broadlink RM mini 3, IR диод которого "окучивает" достаточно большую комнату), так, что придется "лепить" подобное "умное" решение непосредственно на сам дивайс. Бюджетных вариантов "дальнобойного" IR трансмиттера мне найти не удалось.
Вот, собственно, пока и все на сегодня. Впрочем, среди моих других проектов на гитхабе вы, возможно, сможете найти еще что-нибудь интересное. Ну, и у меня вообще есть много забавных проектов, но не все пока выложено на гитхаб. Если вам не лень, то «простарьте» понравившиеся вам проекты – всего лишь клик мышкой, а мне приятно!
Дата-центр ITSOFT — размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.
Комментарии (18)
Bonio
18.08.2021 14:36+1Кнопконажиматель это тема! Я как раз как-то думал, как бы интегрировать автозапуск в систему умного дома.
mavir
19.08.2021 01:34Если не смотреть на бюджет, то вопрос решают некоторые авто сигнализации. Например, поставил себе Starline. Есть бесплатный API, включающий удаленный запуск. Можно снимать показания с CAN-шины: пробег, температуру салона/улицы, координаты (если сигналка с GPS)
usa_habro_user Автор
19.08.2021 02:30Ну, во-первых, сигнализация мне просто не нужна: в нашем районе просто нет воров, не говоря уж об "авто-ворах". И, хотя и слыхал я "страшилки" про угоняемые автомобили популярных марок, которые в подпольных гаражах Нью-Джерси за 15 минут разбирают на запчасти, не очень-то им верю (хотя, по идее, в Штатах должны угонять автомобили).
Во-вторых, бюджет тоже играл определенную роль.
И, в третьих, можно-ли там самому программировать время и условия автозапуска? Мою программку на гитхабе легко доработать, например, чтобы учитывать не только выходные дни, но и праздники. А как дела обстоят у Starline? У вас получается использовать ее по планированному мной шаблону?
mavir
19.08.2021 09:241) Считайте сигнализацию как доп. опцию к удаленному запуску автомобиля. Мне, например, тоже сигнализация не нужна, ставил именно для удаленного запуска.
3) Есть API, а как его использовать решаете Вы сами. Сама сигналка не программируется, Вы сами отправляете команды на неё
DonAgosto
19.08.2021 09:51+1Есть API, а как его использовать решаете Вы сами. Сама сигналка не программируется, Вы сами отправляете команды на неё
Все так, только в этом случае команды конечно не напрямую на сигналку по 3G уходят, а через сервер starline, который это API и предоставляет. Так что по сути это просто еще один из тех платных проприетарных сервисов, от которых уже отказался автор.
Но у starline кстати есть еще возможность управлять по SMS — тут мне кажется все проще и надежнее реализовать, без лишних промежуточных звеньев.
DeeZ
18.08.2021 20:00Про пульт и китайскую проприетарщину - полно открытых вараинтов реализации на том же ESP.
usa_habro_user Автор
18.08.2021 20:06А почему для автозапуска не припаяться прямо к кнопкам через оптопары?
Я, вроде, пояснил в тексте: не хотел "курочить" пульт. Плюс, иногда он требуется (требовался) as is, в виде пульта, на всякий случай.
Про пульт и китайскую проприетарщину - полно открытых вараинтов реализации на том же ESP.
Ну, я и написал, что не претендую на особую оригинальность (ну, разве, что в реализации html странички - по прежнему считаю, что идея удачная и простая), да и сложно "наардуинить" нечто абсолютно уникальное, у многих людей такое хобби. Касательно же "китайской проприетарщины" - она по своему хороша, так как у них стоит мощный IR трансмиттер. Пытался найти что-то подобное, что бы могло работать на расстоянии нескольких метров, но так и не нашел. Если подскажите вариант - скажу "спасибо".
dShaded
19.08.2021 07:10Касательно ИК-передатчиков, там обычно нет ничего особого. Чаще всего ставят дешёвый китайский ИК-диод, транзистор и ограничительный резистор на пару ом. А могут и напрямую к батарейкам подключить, если время передачи позволяет, или батарейка слабая, типа CR2032. При такой схеме диод легко перегорает, если его включить дольше, чем на несколько сот миллисекунд, но пакеты команд никогда столько не длятся.
Если не ошибаюсь, у вас используется примерно такая плата - https://www.aliexpress.com/item/33001722129.html На ней стоит токоограничительный резистор на 220 ом - светодиод работает без перегрузки и может светить сколько угодно, но дальность получается смешная.
Если немного заморочиться со схемотехникой и взять диоды помощнее (даже китайские с али на "3 ватта"), то можно спокойно в соседнюю комнату от стен добивать. Делал несколько лет назад гранаты для лазертага - получалось от 6 таких диодов добиться гарантированной сферы поражения метров 10 радиусом на ярком солнце, и больше 30 метров в темноте, дальше просто не испытывали.usa_habro_user Автор
19.08.2021 17:36Да, я находил подобные схемы на нескольких диодах, но мне они показались немного "неизящными", что-ли. Была также мысль использовать диод из старого IR пульта (если покопаться в ящиках в подвале, думаю, с десяток можно найти). Но, поскольку в моем случае нужно было "окучить" только один кондиционер, решил просто установить прямо перед приемным диодом.
P.S. В том-же Broadlink RM mini стоит всего один диод, который через узкую щелочку ухитряется "окучивать" довольно большую комнату (метров на 6 точно работает).
Mike-M
19.08.2021 12:08можно из дому прогреть или охладить салон перед поездкой.
По российским законам разрешается стоянка во дворах с работающим двигателем не более 5 минут. Иначе штраф.
А как с этим делом у вас в США?usa_habro_user Автор
19.08.2021 17:30+1Ничего про такой закон не слышал: стой, сколько хочешь, или бензина хватит.
redlynx
22.08.2021 09:18Что это закон такой в России, оттуда вы это взяли?!
до сих пор не могут победить парковку на газонах, детских площадках и т.д а вы про 5 минут, нет такого закона, это ваши фантазии
Mike-M
22.08.2021 11:55Согласно п. 17.2 ПДД, в жилой зоне запрещены:
- сквозное движение механических транспортных средств;
- учебная езда;
- стоянка с работающим двигателем;
- стоянка грузовых автомобилей с разрешенной максимальной массой более 3,5 т вне специально выделенных и обозначенных знаками и (или) разметкой мест.
Стоянка с работающим двигателем заслуживает отдельного уточнения. Согласно ПДД стоянка – это преднамеренное прекращение движения транспортного средства на время более 5 минут по причинам, не связанным с посадкой или высадкой пассажиров либо загрузкой или разгрузкой транспортного средства. То есть, если машина стоит в жилой зоне более 5 минут с работающим двигателем, ее водитель нарушает правила. А такое вполне вероятно – например, зимой, когда автомобиль прогревают перед поездкой. Поэтому, прогревая автомобиль, стоит помнить, что возможные жалобы жильцов дома на долгий прогрев вполне обоснованы (источник).
SmirnoffA
28.09.2021 07:25А велик ли радиус действия дистанционного запуска двигателя с ключа? 40 метров? Если машина припаркована на паркинге многоквартирного дома, то такое устройство малополезно.
gagarinas
А купить 3-ий пульт и подпаятся к контактам не вариант?
usa_habro_user Автор
Дорого было, дилер запросил $180. Ну, и, по большому счёту, не так интересно. А "робот" работает на 5 баллов - просто, наглядно и практически никаких затрат (кроме небольшого труда).
DeeZ
$180 это с чипом полноценная копия. Вам же, как я понимаю нужны только "кнопки", тк один "ключ" с иммобилайзером уже вставлен под капот (это кстати облегчает угон).
usa_habro_user Автор
У меня не было особого выбора: позвонил на дилерку, сказал, что нужен еще один key fob для Altima, мне сказали "OK. Key fob (part number такая-то) - $100, "программирование" $80, все цены по прейскуранту". Речь идет про США, а официальные дилершипы у нас - отнюдь не источник дешевых запчастей, к сожалению. То-ли дело на Мазде: купил на eBay ключ-ремоут за $15, скопировал "бороздки" на ключе в Home Depot за $2, а потом сам запрограммировал, используя автомобиль и "хитрую последовательность" - и всех дел...