Блок с датойБлок с временемБлок с возрастом сайта
Mr.ALB

    Анатолий Беляев (aka Mr.ALB). Персональный сайт

    Да пребудут с вами Силы СВЕТА!

     

    Автополив. PY32F002A1556

    Автополив растений
    на PY32F002A1556

    Ранее делал автополив на ATTiny13 Автополив комнатных растений, а тут мне понадобился ещё автополив. Решил уже сам написать программу, потренироваться в оживлении каменного таракана китайского производства – микроконтроллере PY32F002A1556. Стоит такой МК смешные деньги: 17 руб. 50 коп. за штучку, зато флэш у него 20кБ. Можно писать программу не выверяя каждый Байтик.

    Программу писал с учётом того, чего нет в прошлой разработке.


    Описание

    Прошлый автополив делал по уже написанной кем-то Источник: https://www.youtube.com/watch?v=dxrjaHmqwpE. Сейчас на youtube дорога нам закрыта (жаль, там много разных интересных технических проектов и не только по программированию и Ардуино). Поэтому, чтобы потренироваться на новых МК решил написать свой автополив.

    Вначале определяюсь, что должно быть и как всё должно управляться, замысел такой:

    1. Нужен полив через 1, 2, 3 дня на выбор.
    2. Время работы насоса должно легко настраиваться, но не более 5 минут, т.к. и за 5 минут можно вообще всё залить напрочь.
    3. Должна быть индикация, что программа не зависла, так как у меня был разок случай, когда программа зависла, а я думал, что поливает как надо.
    4. Нужен показ через сколько дней идёт полив.
    5. Управление одной кнопкой и пара светодиодов для обратной связи состояния программы.

    Требования не особо сложные, поэтому и сама программа получилась простенькая.


    Схема

    Схема подобна прошлому проекту, только микроконтроллер другой, но в подобном корпусе: SOP-8.

    Схема электрическая принципиальная
    Pic 1. Схема электрическая принципиальная

    Описание программы

    Программа, как обычно, хорошо закомментирована, пояснять там вроде нечего. Единственное необычное отличие в том, что вначале setup() (строчки 129-130) при нажатой кнопке Настройка программа уходит в безконечный цикл. Это нужно, чтобы можно было запрограммировать МК. Иначе МК уходит в сон и не успевает произойти программирование.

    Поясню как работает настройка полива:

    НАСТРОЙКА автополива

    1. Включить питание - засветится красный светодиод (настройка).
    2. Пока красный светодиод светится (2 секунды) - нажать кнопку Настройка.
    3. Теперь красный светодиод будет поочерёдно промаргивать количество дней между поливами.
    4. После требуемого промежутка в днях - нажать кнопку Настройка.
    5. Включится насос (зелёный светодиод) и будет работать, пока не нажать кнопку Настройка, что ограничит время работы насоса, а иначе насос проработает максимальное время и сам остановится.
    6. Далее идёт запись в EEPROM. После чего красный светодиод моргнёт столько раз, сколько выбрано дней между поливами.
    7. После этого программа переходит к работе. Насос работает столько, сколько определено при настройке и переходит в режим ожидания следующего полива.
    8. В момент ожидания кратко промаргивает красный светодиод, что указывает на работу программы, остутствие зависания.
    9. Когда время ожидания закончилось, включается насос полива. После завершения работы насоса красный светодиод моргнёт продолжительно столько раз, сколько дней ожидания до следующего полива.
    10. Если нажать на кнопку Сброс-Reset, то программа начнёт работу заново. Если при этом не нажимать кнопку Настройка, то после гашения красного светодиода настройки, программа переходит к считыванию настроек из EEPROM и далее включает работу насоса. Потом переходит к ожиданию следующего полива через заданное ранее число дней. Это удобно для ручного принудительного полива.

    Конструкция

    Разработал плату. Размеры 64,77 * 31,75 мм. Насос у меня со штекером USB-A, поэтому на плате установил розетку под USB-A.

    На плате установлена третья кнопка для контроля напряжения аккумулятора. Сейчас продаются микроплатки с уровневым светодиодным индикатором напряжения Li-Ion аккумулятора. Такие платки в последнее время устанавливаю в фонарики и другую технику питающуюся от аккумуляторов. При нажатии на кнопку SB3, можно посмотреть уровень напряжения на аккумуляторе, чтобы вовремя его зарядить.

    Фотовид платы
    Pic 2. Фотовид платы

    Собрал всё на монтажной одностороннеей плате. Микроконтроллер у меня установлен на плату переходник SOP-8 в DIP-8. На плате установлена панелька DIP-8. Повышающий преобразователь для насоса сделан самодельный на микросхеме MT3608, можно было бы использовать покупной, но такого в наличии у меня не оказалось, ждать с Али пару недель не захотелось.

    Автополив. Вид сверху
    Pic 3. Автополив. Вид сверху

    Соединения с помощью проводников, хотя разрабатывал печатную плату, а собирал без печатной платы, т.к. единичное устройство. А вот размещение деталей легче осуществить проектируя печатную плату.

    Автополив. Оборотная сторона платы
    Pic 4. Автополив. Оборотная сторона платы

    Аккумулятор использую типа 18650. Он установлен в саможельный держатель, который укреплён на основании всей конструкции. Размер основания 80*40 мм из пластика ABS.

    Автополив. Аккумулятор
    Pic 5. Автополив. Аккумулятор

    Модуль заряда аккумулятора сделан на микросхеме LTC4054 по моей доработанной схеме, как раз был в запасе, пригодился. Работает он как и модули на микросхеме TP4056. Разъём для подключения зарядки типа microUSB, как и в первом устройстве автополива.

    Автополив. Модуль заряда аккумулятора
    Pic 6. Автополив. Модуль заряда аккумулятора

    Конструкция устройства повторяет предыдущую конструкцию. На основании из ABS закреплён аккумулятор, выше промежуточная пластина из ABS, на которой установлена плата устройства, а сверху всё прикрыто пластиной из оргстекла.

    Автополив. Разные виды
    Pic 7. Автополив. Разные виды

    Части устройства соеденены стойками из требочек от пустых стержней гелевых авторучек. Верхняя пластана из оргстекла держится двумя винтами на стойках из ABS.

    Автополив. Разные виды
    Pic 8. Автополив. Разные виды

    Устройство собрано и подключено к насосу. Стоит на крышке контейнера на 3 литра воды. В контейнер положены несколько таблеток серебра, чтобы не заводились патогенные бактерии.

    Автополив. Разные виды
    Pic 9. Автополив. Разные виды

    Интересно, что микроконтроллер настолько экономичный, что если отключить питание, то он на заряде конденсаторов С2 220 мкФ и С3 1000 мкФ проработал 170 тиков – 170 * 4 секунды = 680 секунд = 11,33 минуты.



    Приложение

    Все, что необходимо для повторения конструкции, можно скачать по ссылкам:


    Спасибо за внимание!
    Анатолий Беляев

    . Mr.ALB
    Предыдущая страница Страница 46 Далее