Умные шторы. Управление шаговым двигателем на Arduino через bluetooth.
В своей повседневной жизни мы все чаще и чаше используем беспроводные устройства, которые облегчают нам работу и быт. Сегодня поговорим о том, как можно сделать управление шаговым двигателем на Arduino через bluetooth. На основе чего можно реализовать достаточно интересные проекты, такие как умные шторы.Давайте разберемся, как это можно сделать своими руками.
Приложение для телефона позволяющее управлять шаговым двигателем.
Планировал сделать приложение в mit app inventor, но, к сожалению что-то случилось с данным сервисом и приложение для тестирования перестало работать. Возможно, на данный момент все работает, но на момент, когда я делал проект «управление шаговым двигателем по bluetooth» наблюдалась данная проблема. Поэтому сделал приложение в APP Thunkable, по функционалу они очень похожи и исходные материалы приложений будут работать в обоих сервисах.
Интерфейс приложения достаточно простой. Несколько текстовых полей, кнопок, бегунок и список.
Блоки программы для mit app inventor.
Эта часть программы, отвечающая за подключение по bluetooth.
Управление шаговыми двигателями происходит с помощью данных элементов.
Я сделал процедуру, которая позволяет реже отправлять значения при перемещении бегунка.
Вот такое приложение для телефона, позволяющее управлять шаговым двигателем с помощью блютуз.
Для проекта понадобиться следующая электроника:
Схема подключения шагового двигателя 28BYJ-48, Bluetooth модель HC-05 к Arduino.
Как видно из схемы к Arduino NANO, подключаем шаговый двигатель 28BYJ-48, Bluetooth модель HC-05. Драйвер шагового двигателя ULN2003 запитать лучше от отдельного блока питания 5-12 В.
Если делать умные рулонные шторы, то желательно добавить в схему конечный выключатель. А лучше геркон или KY-003 модуль датчика Холла. На штору поместить магнит. Что позволит определять границы перемещения полотна.
Код (скетч) управления шаговым двигателем на Arduino через bluetooth.
В коде всего 2 переменные, которые нужно поменять в том случае если вы будете использовать другой шаговый двигатель. Первая переменная устанавливает скорость по умолчанию – это 5 оборотов в минуту. Вторая определяет сколько нужно шаговому двигателю сделать шагов, чтобы совершить 1 оборот вала.
В следующем блоке кода подключаем библиотеку AccelStepper, которую можно скачать внизу статьи в разделе «Файлы для скачивания ».
Затем определяем тип двигателя (точнее тип драйвера шагового двигателя), данное подключение можно использовать с другими драйверами, такими как L293, L298 и пр.
Дальше идут переменные, которые нужны для работы алгоритма.
В блоке setup() определяем параметры скорости и ускорения шагового двигателя.
И инициализируем соединение с Bluetooth модулем и скорость работы. У вашего Bluetooth модуля скорость работы может быть другая.
В основном цикле loop() проверяем, пришли данные или нет. Если данные получили, сохраняем их в переменную val и поднимаем флаг.
После поднятия флага проверяем, какую команду получили. Если ни одна не совпадает, то проверяем, возможно, это число скорости вращения шагового двигателя.
Затем переходим к алгоритму управления шаговым двигателем, в котором определяем статус запуска вращения шагового двигателя «flagStart».
После чего, проверяем направление вращения двигателя и устанавливаем скорость вращения с учетом направления.
Следующие 2 строчки заставляют шаговый двигатель сделать один оборот.
И затем мы проверяем, достиг ли шаговый двигатель заданного положения. При достижении нужного положения,обнуляем позицию двигателя это необходимо, чтобы в следующий раз двигатель вращался в нужном направлении и нужное количество оборотов. Или вращался бесконечно, за это отвечает вот это условие.
Такой небольшой код, который можно дополнить и сделать управление рулонными шторами с помощью телефона. А также другие интересные проекты с использованием Arduino и шагового двигателя.
Умные рулонные шторы своими руками на Arduino.
На основе приложения и кода можно сделать своими руками умные рулонные шторы на Arduino. Даже без добавления дополнительных элементов. Для этого достаточно замерить, сколько оборотов делает штора, чтобы достигнуть конечного положения. И добавить в программу данное значение, вместо значения перемещения на 1 оборот. И после чего, при нажатии у вас будет сворачиваться, и разворачиваться штора. Но для безопасной работы лучше установить конечный выключатель или, как рассказывал ранее датчик холла. Чтобы определять конечное положение.
Механическая часть умной рулонной шторы.
Чтобы реализовать механизм умной рулонной шторы можно воспользоваться готовыми 3D моделями для печати и модернизировать обычную штору.
Используя электронику из проекта, получится вот такая умная рулонная штора.
Заключение.
Управление шаговым двигателем через Bluetooth имеет ряд ограничений. Самое главное ограничение – это возможность подключиться только к одному устройству. Соответственно управлять сможем одновременно только одним устройством. А в случае со шторой, как правило, их в квартире 3-4 и больше и управлять ими желательно одновременно, что можно реализовать с помощью Wi-Fi управления. Если вам интересно продолжение данной темы, пишите в комментарии.
Понравился проект Умные шторы. Управление шаговым двигателем на Arduino через bluetooth? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Автоматические рулонные DIY шторы v2.0
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Этот проект был задуман два года назад, в мае 2018 года, ровно в тот момент, когда я купил свой 3D принтер. Немного ранее я стал интересоваться «Умным» домом. От идеи до первого «запуска» прошёл ровно год, за это время я перечитал тонну статей в интернете. Первый «запуск» произошёл в июне 2019 года.
Первая версия привода была на базе шагового двигателя 28BYJ-48 и драйвера ULN2003 ESP8266 (прошивка от wifi-iot), для рулонной шоры Blackout, купеной в «Леруа Мерлен». Длина 2.0 м, вес 2,5 кг. Штора была куплена в 2014 году и ежедневно поднималась и опускалась «врукопашную». Выбор пал на готовый вариант с Thingiverse, в том числе, из-за наличия прошивки, а также опубликованных автором исходников модели.
Мощности привода оказалось недостаточно. Поскольку штора расположена на застеклённой, но не отапливаемой лоджии, то во время дождей она впитывала в себя влагу и её и так не малый вес значительно возрастал. Как вариант увеличения мощности, было протестировано:
- для 28BYJ-48-5V, поднятие напряжения до 7,5 вольт;
- для 28BYJ-48-12V, поднятие напряжения до 19 вольт.
В обоих случаях был значительный нагрев двигателя, но и был прирост мощности на 20%-30%. По итогу, всё через пару недель было демонтировано и штора вернулась к заводским параметрам.
- если штора была размотана, то приводу не хватало мощности на её поднятие;
- если штора была поднята, то под собственным весом она сама постепенно опускалась, т.е. просто «падала».
Поняв, что необходимо увеличить мощность, из имеющихся комплектующих была собрана следующая версия, но уже на Nema-17. Также была попытка «изобразить» редуктор, который, по задумке, должен был удерживать штору в поднятом состоянии.
Переход на Nema-17 потребовал новый контроллер управления шаговым двигателем на драйвере A4988. Также в момент проектирования контроллера были протестированы драйверы DRV8825 и TMC2208. Два последних тише, но и дороже, поэтому остановился на A4988.
За время проектирования было множество экспериментов и, как следствие, многие компоненты выпустили волшебный сизый дым на котором они работают, тут только некоторая их часть.
Версий контроллеров управления шаговым двигателем также было множество, были как на «готовых» платах для A4988 с Aliexpress, так и на полностью самодельных макетных платах.
Поскольку пришло понимание, что без редуктора штора будет постоянно «падать», решил использовать Nema-17 с редуктором 27:1, хотя, возможно, хватило бы и редуктора 5:1.
Поскольку я уже получил полностью работоспособную штору на балконе, мне захотелось повторить опыт, но уже со шторой Blackout на Кухне. Длина 1.2 м, вес 1,4 кг. Поскольку Nema-17 я уже освоил, решил добавить в копилку 28BYJ-48 и ESP-01S.
После переделки 28BYJ-48 в биполярный, он заиграл новыми красками, а именно, значительно прибавился крутящий момент, примерно на 40%-50%, естественно, помогло поднятие напряжения:
- для 28BYJ-48-5V, до 12 вольт;
- для 28BYJ-48-12V, до 24 вольт.
Вариаций на тему было очень много, но, по итогу, остановился на одном, который в дальнейшем просто масштабировал, от управления с одной платы одним двигателем и до четырёх. Поскольку на схемах все компоненты подписаны, думаю нет необходимости их отдельно перечислять.
Отдельно хотелось бы обратить внимание на вопрос питания Nema-17, не вдаваясь в технические дебри. Напряжение 12 вольт — это минимум, намного правильнее использовать напряжение 24 вольта, т.к. мы получаем дополнительный прирост мощности и оборотов двигателя.
Программное обеспечение (прошивка)
Постоянные поиски достойной прошивки привели меня на статью уважаемого Андрея Попова (andreypopov), за что ему огромное спасибо. Благодаря его статье мне конечно удалось избежать некоторых ошибок, но и своих я наделал предостаточно.
В скетче управление двигателем 28BYJ-48, а мне требовалось управление двигателем NEMA-17. Поэтому скетч пришлось немного доработать. После чего я счастливо жил 4 месяца.
Далее поиски прошивки привели меня на гитхаб Tasmota, где в тот момент сделали первую версию поддержки драйверов A4988. В чате Discord поддержки я выложил схему моего контроллера для A4988 и несколько фотографий, схему далее добавили в первую статью.
И всё закрутилось, мне предложили принять участие, в качестве «тестировщика», в новом варианте поддержки для A4988. По прошествии двух месяцев мной была написана часть новой статьи и нарисованы несколько схем для применения драйвера A4988 (с кратким описанием для каждого).
В итоговом варианте я использую прошивку от Tasmota, и переходить с неё не планирую. Всё, что мне нужно от прошивки — это стабильность и управление по MQTT.
Поскольку мне уже наскучило делать всё на макетных платах, то не долго думая принял решение сделать полноценную плату контроллера. На Easyeda были созданы и заказаны три разновидности платы привода.
Получив заказанные платы, я принялся за уже привычную по ночам работу — паять в тишине.
Первый рабочий контроллер на полноценной плате, на котором ставились множественные эксперименты.
Вдоволь наигравшись, плотно засел за Fusion 360, дабы окончательно решить вопрос со шторой на балконе.
Ну и войдя во вкус, решил доделать привод на кухне. Дабы не изобретать велосипед, взял за основу готовый проект.
И уже используя полученный опыт, начал делать автоматизацию для двух «карнизных» штор в комнате. Что, собственно, в настоящее время и продолжаю. Осталось спроектировать корпус для платы, и натянуть второй ремень.
Производители готовых комплектов приводов, как например DOOYA или XIAOMI, делают конечно хорошие вещи, но как мне кажется, это немного дороговато. Да и сделать самому намного приятнее, и ещё при этом сэкономив немного.
Ну поскольку, за время экспериментов, шторы мне несколько раз сильно «пожевало» — захотелось минимальной защиты.
Вариант 3.0 (в мечтах)
Изначально мне очень хотелось получать обратную связь от шагового двигателя, т.е. сделать свой серво-шаговый двигатель. Ну и естественно, я начал его делать. Использовал магнитный датчик положения AS5600, и мне даже удалось получить от него данные с помощью прошивки от wifi-iot, а также взяв из описания стороннего проекта готовый скетч.
Но, как обычно, споткнулся о программное обеспечение (ну не программист я, а клавиатуру в лесу нашёл), и не найдя готовой прошивки, отложил проект до лучших времён.
Фактически за один год я получил огромный опыт в 3D проектировании и создании своих плат, а также подтянул навыки пайки.
Поскольку проект изначально планировался как не коммерческий, друзьям я иногда делаю автоматизацию штор, что называется по себестоимости комплектующих, т.е. абсолютно без прибыли для себя.
Все 3D модели, если кто-то захочет их повторить, вместе с исходниками в формате Fusion 360, мной выложены на Thingiverse, найти их там можно просто набрав в поиске мой ник.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.