Про теплицы и таймеры
Про теплицы и таймеры
Доброго всем времени суток!
Пытаюсь создать управление теплицой, которое заключается в управлении 5-ю каналами: три канала освещения, один для вентиляции, один для включения насоса полива. Теперь по порядку:
из железа: Arduino Nano, часики DS3231, LCD 1602 I2C, DHT22, аналоговый датчик влажности, 5 кнопок, ну и по мелочи LED'ы всякие.
Суть программы - двухуровневое меню:
М1 индикация времени\даты
М2 показания датчиков
М3 показания состояния каналов освещения
М3.1 выбор режима работы красного света: вкл\выкл\по таймеру
М3.2 выбор режима работы синего света...
М3.3 выбор режима работы белого света...
М4 показания каналов вентилятора и насоса
М4.1 выбор режима работы вентилятора вкл\выкл\по температуре
М4.2 выбор режима работы насоса вкл\выкл\по влажности почвы
С реализацией меню вопросов не возникло: перемещаемся клавишами UP/DOWN (по пунктам меню) LEFT/RIGHT (вход/выход в меню). у каждого подпункта есть три значения: выкл/вкл/по заданию(по таймеру). что бы изменить значение подпункта необходимо нажать кнопку SET: с помощью ТТ-триггера блокируется возможность листать пункты меню кнопками UP и DOWN, но зато мы можем выбирать значение значение пункта. при повторном нажатии кнопки SET триггер меняет выход на 0, и мы опять можем перелистывать меню. с этим вопросов не возникло.
А вот дальше сложнее: 3-е значение каждого подпункта выводит на экран значение уставок включения выходов (либо таймеры вкл/выкл). эти значения хранятся в переменых. например для включения таймера красного канала есть 2 переменных: значения часов включения и значение минут включения, и для таймера отключения еще 2 переменные: значение часов отключения и минут отключения. Итого 4 переменные на один канал. для насоса и вентилятора, по одной переменной, на включение.
Логика работы следующая: листаем основное меню до пункта 3, далее выбираем пункт 3.1. после нажатия на кнопку SET значение. выбираем 3-е значение с таймерами, и... вот дальше ступор! надо бы изменить значение переменых, но при повторном нажатии SET подпункт фиксируется и мы опять листаем меню. Вопрос: как можно зафиксировать значение подпункта и получить доступ к изменению переменных?
помогите люди добрые, уже неделю бьюсь, все бестолку
Написал сложно, но если посмотреть проект, то все становиться понятнее
Пытаюсь создать управление теплицой, которое заключается в управлении 5-ю каналами: три канала освещения, один для вентиляции, один для включения насоса полива. Теперь по порядку:
из железа: Arduino Nano, часики DS3231, LCD 1602 I2C, DHT22, аналоговый датчик влажности, 5 кнопок, ну и по мелочи LED'ы всякие.
Суть программы - двухуровневое меню:
М1 индикация времени\даты
М2 показания датчиков
М3 показания состояния каналов освещения
М3.1 выбор режима работы красного света: вкл\выкл\по таймеру
М3.2 выбор режима работы синего света...
М3.3 выбор режима работы белого света...
М4 показания каналов вентилятора и насоса
М4.1 выбор режима работы вентилятора вкл\выкл\по температуре
М4.2 выбор режима работы насоса вкл\выкл\по влажности почвы
С реализацией меню вопросов не возникло: перемещаемся клавишами UP/DOWN (по пунктам меню) LEFT/RIGHT (вход/выход в меню). у каждого подпункта есть три значения: выкл/вкл/по заданию(по таймеру). что бы изменить значение подпункта необходимо нажать кнопку SET: с помощью ТТ-триггера блокируется возможность листать пункты меню кнопками UP и DOWN, но зато мы можем выбирать значение значение пункта. при повторном нажатии кнопки SET триггер меняет выход на 0, и мы опять можем перелистывать меню. с этим вопросов не возникло.
А вот дальше сложнее: 3-е значение каждого подпункта выводит на экран значение уставок включения выходов (либо таймеры вкл/выкл). эти значения хранятся в переменых. например для включения таймера красного канала есть 2 переменных: значения часов включения и значение минут включения, и для таймера отключения еще 2 переменные: значение часов отключения и минут отключения. Итого 4 переменные на один канал. для насоса и вентилятора, по одной переменной, на включение.
Логика работы следующая: листаем основное меню до пункта 3, далее выбираем пункт 3.1. после нажатия на кнопку SET значение. выбираем 3-е значение с таймерами, и... вот дальше ступор! надо бы изменить значение переменых, но при повторном нажатии SET подпункт фиксируется и мы опять листаем меню. Вопрос: как можно зафиксировать значение подпункта и получить доступ к изменению переменных?
помогите люди добрые, уже неделю бьюсь, все бестолку
Написал сложно, но если посмотреть проект, то все становиться понятнее
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Про теплицы и таймеры
когда-то давным -давно , когда еще не было блоков мен (V1.15) писал 3х уровневое меню с взаимовлиянием пунктов друг на друга. уставки значений писались в еепром. по железу как у Вас Arduino Nano, DS3231, LCD 1602 I2C, гляньте, может что подчерпнете. меню на русском(блок пользователя) на дисплее без кириллицы. меню было двуязычным, но памети не хватило, а оптимизировать не умел , пришлось оставить только русский.- первый проект, все работает около двух лет уже.это управление роллставнями.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Про теплицы и таймеры
[ref]magpit[/ref], [ref]Noname[/ref], спасибо за совет!
хотел избежать EEPROM, так как тема плоха изучена, но теперь вижу: есть повод подучиться!
хотел избежать EEPROM, так как тема плоха изучена, но теперь вижу: есть повод подучиться!

Про теплицы и таймеры
А зачем избегать? Надо просто писать в нее только тогда, когда необходимо. у меня в проекте - только после подтверждения ввода, т.е. если просто выбрать пункт меню, поменять значение и не подтвердить, ничего не измениться и не запишится. И при входе в пункты меню выводимое значение удобнее брать из еепром..Pavlov писал(а): 24 янв 2018, 23:43[ref]magpit[/ref], [ref]Noname[/ref], спасибо за совет!
хотел избежать EEPROM, так как тема плоха изучена, но теперь вижу: есть повод подучиться!
Отправлено спустя 1 минуту 1 секунду:
возможно на днях сниму видео , как реализовано. если интересно конечно..
-
- Рядовой
- Сообщения: 25
- Зарегистрирован: 01 янв 2018, 20:24
Про теплицы и таймеры
Для хорошей теплицы UNO мало, надо MEGA , иначе мажет пинов не хватить, или ардуинка будет тормозить
- Phazz
- Полковник
- Сообщения: 3121
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
Про теплицы и таймеры
очень интересно, буду благодарен!Noname писал(а): 24 янв 2018, 23:58возможно на днях сниму видео , как реализовано. если интересно конечно..
на данном этапе пока хватает nano. конечно при добавлении функционала буду переходить на мегу, но для этого надо разобраться с тем что есть
-
- Рядовой
- Сообщения: 25
- Зарегистрирован: 01 янв 2018, 20:24
Про теплицы и таймеры
Дома три цветка в горшках поливаются автополивом на UNO, так ардуинки почти впритык хватило. На подходе теплицу на ДУО мудрю , так это уже не теплица , а целая лаборатория получается.
Про теплицы и таймеры
Дописал я свою теплицу! Изначально, я по всей видимости неправильно задал вопрос, и соответственно услышал не тот ответ. Но это уже не важно. На данный момент EEPROM пока не используется, но позже допишу его обязательно, для сохранения установленных значений.
Nano вполне справляется со своей задачей: занято 67% памяти и 51% динамической памяти под глобальные переменные. осталось 2 свободных цифровых входов 0 и 1, но их не хочу использовать, и 3 аналоговых входа. Так же в планах прикрутить зумер, без него как то грустно, и при необходимости уровень воды в емкости для полива, и изменить счетчики, поставить с ускоренной прокруткой
Единственный не решенный вопрос на данный момент: как организовать опрос датчика влажности почвы (простая вилка с аналоговым выходом) один раз в минуту, для того что бы он сильно не окислялся.
кому интересно, прикрепляю "проект"
Nano вполне справляется со своей задачей: занято 67% памяти и 51% динамической памяти под глобальные переменные. осталось 2 свободных цифровых входов 0 и 1, но их не хочу использовать, и 3 аналоговых входа. Так же в планах прикрутить зумер, без него как то грустно, и при необходимости уровень воды в емкости для полива, и изменить счетчики, поставить с ускоренной прокруткой
Единственный не решенный вопрос на данный момент: как организовать опрос датчика влажности почвы (простая вилка с аналоговым выходом) один раз в минуту, для того что бы он сильно не окислялся.
кому интересно, прикрепляю "проект"

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Про теплицы и таймеры
аналоговый вход на отдельную плату, в свойствах платы выполнение по условию. дальше придумаете
Про теплицы и таймеры
[ref=#ff8000]pan[/ref], точно! спасибо!
[ref]cmept-27[/ref], датчик то уже есть, даже 2! просто надо ему опрос сделать пореже, например раз в 10 минут...
Хотя если делать капитально, то с графитовыми электродами однозначно лучше!
Отправлено спустя 2 часа 15 минут 30 секунд:
Знатоки, подскажите пожалуйста: стал я заносить переменные в еепром. Получилось у меня 19 переменных. Память расчитана примерно на 100'000 циклов перезаписи. На долго ли хватит моей памяти и можно ли использовать внешнюю карту памяти для хранения переменных?
[ref]cmept-27[/ref], датчик то уже есть, даже 2! просто надо ему опрос сделать пореже, например раз в 10 минут...
Хотя если делать капитально, то с графитовыми электродами однозначно лучше!
Отправлено спустя 2 часа 15 минут 30 секунд:
Знатоки, подскажите пожалуйста: стал я заносить переменные в еепром. Получилось у меня 19 переменных. Память расчитана примерно на 100'000 циклов перезаписи. На долго ли хватит моей памяти и можно ли использовать внешнюю карту памяти для хранения переменных?
Про теплицы и таймеры
ну так разделите 100.000 на периодичность записи в вашем проекте. вот и узнаете на сколько хватит.
а вообще если правильно организовать запись (например записывать только при изменении значения) то хватит на долго.
кстати в стандартном блоке запись в эпром "обновляет" данные. так что если они не меняются, то ресурс не будет тратиться
а вообще если правильно организовать запись (например записывать только при изменении значения) то хватит на долго.
кстати в стандартном блоке запись в эпром "обновляет" данные. так что если они не меняются, то ресурс не будет тратиться
Про теплицы и таймеры
[ref]Pavlov[/ref], можешь сам переделать датчики. Взять угольные электроды в любом магазине сварочного оборудования. Стоят не дорого и продаются по штучно.
[spoiler] [/spoiler]
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
OK
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей