Вентиль с управлением через wifi
22.11.2019 от aleksandr.ivanov
Лень двигатель прогресса и так как я человек по натуре очень ленивый, решил облегчить себе жизнь и собрать следующую конструкцию.
Для управления я выбрал NodeMCU к ней подключил сервопривод MG996R. В flprog набросал скетч. Проверил что он работает. Cтал проектировать механику в Tinkercad. С этим конечно пришлось повозится. Распечатать несколько вариантов стыков мотора с вентилем. Подогнать под вентиль крепление. И много чего ещё.
Блок питания на 5 в 1.5 а вытащил из адаптера и поставил в большей корпус из под другого, вместе с NodeMcu. Управляется с телефона через WIFI. А так как креативное мышление у меня не очень, и дизайнер никакой остановился на простой кнопке в браузере.
Если разгуляться фантазией то можно добавить разные варианты управления. Так как пинов свободных много, можно и датчики протечки добавить и кнопки подключить для открытия закрытия без телефона.
Детали проекта можно посмотреть здесь: https://www.tinkercad.com/things/aY1jbRPDFTh
Скетч: valve.zip
Дальше будет много фоток для подробного ознакомления
4 комментария к “Вентиль с управлением через wifi”
- Уведомление: Управление и контроль постройками во дворе. — FLProg
- craberСупер
- aleksandr.ivanovЯ сначала подумал как раз про esp01, но свободных у меня нет. Да и если подумать разница на данный момент не большая. 01-74 руб, а mcu 129 руб. Зато пинов много.
- Cancertanly с таким же успехом можно было и esp01 использовать. так то подешевле будет
Управление и контроль постройками во дворе.
24.02.2021 от SERQUICK
Всем привет.
Представляю мой проект для контроля и управлением постройками во дворе, может кому пригодится.
Проект собран на микроконтроллере ESP32.
Управление через Virtuino Modbus.
В проекте есть microSD на которую сохраняются данные с датчика HTU21 «Улица» и DS18B20 «Бассейн» с возможностью вывода графика. В программе экран «Бассейн». В Веб http://193.168.1.100. Нужно подключение ESP к интернет. В проекте настроить (Клиент).
Пробежимся по комплектующим и схеме подключения.
МК ESP-32 DevKit V1
Real Time Clock Модуль на DS3231SN
Модуль microSD карты
1-канальный реле модуль
Температурный датчик водонепроницаемый DS18B20
Датчик температуры и влажности DHT11 модуль
Датчик влажности и температуры GY-21 HTU21
Емкостный датчик влажности почвы
Датчик дождя, влаги, снега
Сервопривод MG996R 15 кг
По схеме. Соединяем как на рисунке, на серво и реле подаём 5В, а на все датчики и модули 3.3В от стабилизатора на плате. Не забываем резистор 4.7К между «+» и входом «OneWire» DS18B20.
Так выглядит «ОСНОВНОЙ» экран без подключения к ESP.
Верхнюю «Панель подключения» можно отключить.
Экран «ТЕПЛИЦА».
Время таймера и кнопка запуска/остановки капельного полива.
Время таймера и кнопка открытия/закрытия двери теплицы.
1 строка — полив по датчику влажности земли;
2-3 строка — полив по таймеру;
4 строка — точная регулировка крана из серво привода
Открытие/закрытие двери/фрамуги теплицы.
Нажатием на значок включаем/выключаем постоянную роботу насоса солнечного коллектора.
Включаем/выключаем постоянную работу фильтра бассейна.
1 строка — таймер вкл./выкл. фильтра бассейна.
2 строка — насос коллектора будет работать пока температура в коллекторе будет выше чем в бассейне на 1℃.
«ГРАФИК». Работает только при подключении ESP к Интернет.
График в Virtuino
График в Chrome
Красная линия – Улица.
Белая линия с синей заливкой — Бассейн.
Экран «ПОГРЕБ».
Включаем/выключаем постоянную роботу канального вентилятора.
1 строка — приделы включения/выключения вентилятора по температуре, нужен для того если на улице будет горячий/ледяной воздух, а при работе вентиляции от него будет поднимется/опускаться температура в погребе.
2 строка — работа вентиляции по влажности в погребе.
3 строка — таймер.
Экран «БУДКА»
Нажатием на значок включаем/выключаем постоянную роботу обогревателя.
1 строка — работа обогревателя по температуре;
2 строка — работа по таймеру;
3 строка — включение по срабатыванию датчика дождя, время работы указано в часах.
Экран «КАЛИБРОВКА»
Экран «КАЛИБРОВКА» включается нажатием и удержанием 2-3 сек на «ОСНОВНОМ» экране.Время и дата настраивается аналогично. День недели тоже устанавливать в ручную.
Устанавливает максимальный (100%) уровень влажности. Берем стакан с водой на половину пустым/наполненным ложем датчик DHT11 в стакан так что бы он не касался воды. Накрываем плотно рукой или крышкой, ждём 20-30 сек. Нажимаем кнопку на против датчика. Так калибруем каждый из 4 датчиков.
Сканирование DS18B20. Нажимаем и держим кнопку пока не засветится индикатор зеленым (означает что чтение датчика прошло успешно), отпускаем и снова нажимаем и держим. Каждый датчик при сканировании подключать отдельно. После сканировании всех датчиков, перезагрузить ESP.
«ЗАСТАВКА» Включается в меню «Калибровка». Время включения в секундах..
Выход на «Основной» экран — коснутся в любом месте экрана заставки.
Индикаторы с лева на право:
1 Работает вентиляция в погребе;
2 Работает обогрев в будке;
3 Дверь в теплице Зеленная – Открыта. Красная – Закрыта;
4 Капельный полив;
5 Работа двигателя солнечного коллектора;
6 Работа фильтра бассейна.
Индикатор подключения к Интернет (Клиент). Опрос раз в минуту.
Внизу каждого экрана кроме «Основной» по центру кнопка, это кнопка «СБРОС» настроек по умолчанию. Нужно удерживать 5 сек.
Из особенностей:
— После «Прошивки» нужно пройти по всем экранам и сбросить их настройки по умолчанию и перезагрузить ESP по питанию;
— MicroSD должна быть чистая. Отформатирована в FAT32, и вставляться при выключенном ESP;
— График будет доступен к просмотру только на следующие сутки после включения. Данные сохраняются на карточку каждые 20 мин;
— Любые настройки на экранах «ТЕПЛИЦА, БАССЕЙН, ПОГРЕБ, БУДКА, КАЛИБРОВКА» проводить только после того как загорятся зеленые индикаторы возле названия вверху. Если не загораются в течении 5 сек., нужно выйти на «Основной» экран и зайти обратно;
— Есть прошивка по воздуху Arduino IDE (OTA).
Порт: ESP32 at 193.168.1.100 (ESP32 Dev Module)
Пароль: 0000
— Если использовать Virtuino на нескольких устройствах, то обязательно выходить из экрана «КАЛИБРОВКА», так как при включении этого экрана, большинство плат в FLProg настроены на отключение!
— Часы на экранах показывают время с DS3231, поэтому в секундах задержка 2-5сек.
— Проект Virtuino настроен на автоматическое подключение при открытии проекта к ESP (при условии что в настройках WiFi устройства уже подключено к сети DVOR). Так же программа сама открывается после загрузки Android.
ПОКА ВСЕ.
Последнюю версию можно скачать тут https://forum.flprog.ru/viewtopic.php?f=158&t=7162&p=100538#top
Управление сервоприводом с фиксацией положения
03.02.2018 от Сергей Глушенко
Данный блок служит для управления сервоприводом посредством джойстика или кнопок. Положение привода не зависит от угла наклона джойстика. При нажатии на кнопку или наклоне джойстика происходит вращение, при отпускании — фиксация текущего положения. Блок имеет настройки скорости, предустановленного угла управляемого отдельным входом, настройкой минимального и максимального угла.
Замените счетчик в пользовательском блока на счетчик из встроенных.
Блок пользователя L293D
03.02.2018 от Сергей Глушенко
Блок для управления вращением четырех двигателей постоянного тока. Позволяет изменять скорость и направление вращения каждого двигателя независимо.
Блок можно использовать в проекте только один раз, так как плата шилда занимает все цифровые пины, кроме 0, 1, 2, 13, также свободны аналоговые входы. Причем аналоговые входы выведены отдельно на шилде, а 0,1,2,13 нет. Шилды в основном выпускаются под UNO (к MEGE вроде подходят, не проверял), но бывают и для НАНО.
В блоке сделано 8 входов — 4 для задания скорости, 4 — для задания направления вращения. По паре на каждый двигатель.
Скорость задается числом от 0 до 255 (стоп-полный ход).
Направление задается числами:
1 — FORWARD условно «вперед»
2 — BACKWARD движение обратное «вперед»
3 — BRAKE тормоз
4 — RELEASE остановка с выбегом.
Режим тормоза для остановки двигателя лучше не использовать во избежание больших индукционных токов от двигателя. Останавливать надо командой 4.
Также при изменении направления вращения, лучше подавать команду 4 на короткое время, перед командой на вращение в другую сторону.
Параметр пользователя выставлен на 64 кГц, поменять можно только редактированием в блоке, т.к. он некорректно применяется при компиляции, если заменить его переменной. Если это будет исправлено в программе, то поменяю и здесь.
Ссылка на библиотеку для платы
Дешифратор 4bit\16int
03.02.2018 от Сергей Глушенко
Пользовательский блок создан на основе библиотеки написанной специально для этого мотора, основным преимуществом блока является полушаговый режим и лояльность к таймерам.
Шаговый двигатель 28BYJ-48
03.02.2018 от Сергей Глушенко
Пользовательский блок создан на основе библиотеки написанной специально для этого мотора, основным преимуществом блока является полушаговый режим и лояльность к таймерам.
Блок управления драйвером мотора L298n
02.02.2018 от Сергей Глушенко
1. Блок имеет вход EN на который подается сигнал разрешения (0/1) работы с устройством.
Хотя бы однократное состояние сигнала EN=1, приводит к инициализации модуля и настройка пинов,
к которым подключен модуль управления моторами типа L298D.
2. Блок имеет входы, на которые подаются НОМЕРА пинов Arduno,
через который модуль управления моторами типа L298D подключается к Arduino.
Обозначения входа блока совпадают с наименованием разъема на модуль управления моторами типа L298D.
3. ENA — номер ПИНА управления скоростью мотора А.
Этот ПИН должен иметь возможность работать как ШИМ.
На Arduino UNO, Nano, Pro Mini — это пины 3,5,6,9,10 и 11 ;
IN1 — номер пина направления мотора А ;
IN2 — номер пина направления мотора А ;
IN3 — номер пина направления мотора В ;
IN4 — номер пина направления мотора В ;
ENB — номер ПИНА управления скоростью мотора B.
Этот ПИН также должен иметь возможность работать как ШИМ.
На Arduino UNO, Nano, Pro Mini — это пины 3,5,6,9,10 и 11.
4. Моторы подключаются:
Мотор А — к выходу OUT2 модуль управления моторами типа L298D.
Мотор В — к выходу OUT1 модуль управления моторами типа L298D.Блок имеет входы
5. Входы управляющих команд:
CmndA — команда движения (тип Char), значение S(стоп), F(вперед), B(назад) для мотора А;
PowerA — значение скорости от 0 до 255 для мотора А;
CmndB — команда движения (тип Char), значение S(стоп), F(вперед), B(назад) для мотора В;
PowerB — значение скорости от 0 до 255 для мотора В:
Например, чтобы платформа с двигателями поехала вперед надо подать на CmndA,CmndB значение «F»,
а на PowerA и PowerB значеие отличное от 0 (до 255);
Для поворота налево —
CmndA — «F»
PowerA — 100
CmndB — «B»;
PowerB — 100
ДЛЯ ОСТАНОВКИ МОТОРОВ НА ВХОДЫ CmndA, CmndB подаём команду «S».
stepper
02.02.2018 от Сергей Глушенко
Шаговый двигатель. для мотора stepmotor_28BYJ-48-5V( и аналогичных) на драйвере ULN2003
mode:1- работает по количеству оборотов, 2- по заданному углу, 3- Будет вращать пока не получит команду о смене направления или пока не получит директиву STOP
direction Может принимать 3 значения: 1 — по часовой, 2 — против часовой, 0-STOP
rotateN Устанавливает вращение на заданное кол-во оборотов
Degrees Поворачивает вал на заданное кол-во градусов