Страница 1 из 1

Про теплицы и таймеры

Добавлено: 24 янв 2018, 22:06
Pavlov
Доброго всем времени суток!
Пытаюсь создать управление теплицой, которое заключается в управлении 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 подпункт фиксируется и мы опять листаем меню. Вопрос: как можно зафиксировать значение подпункта и получить доступ к изменению переменных?
помогите люди добрые, уже неделю бьюсь, все бестолку
Написал сложно, но если посмотреть проект, то все становиться понятнее

Про теплицы и таймеры

Добавлено: 24 янв 2018, 22:28
magpit
Может сохранить EEPROM (установить галочку)

Про теплицы и таймеры

Добавлено: 24 янв 2018, 23:08
Noname
когда-то давным -давно , когда еще не было блоков мен (V1.15) писал 3х уровневое меню с взаимовлиянием пунктов друг на друга. уставки значений писались в еепром. по железу как у Вас Arduino Nano, DS3231, LCD 1602 I2C, гляньте, может что подчерпнете. меню на русском(блок пользователя) на дисплее без кириллицы. меню было двуязычным, но памети не хватило, а оптимизировать не умел , пришлось оставить только русский.- первый проект, все работает около двух лет уже.это управление роллставнями.

Про теплицы и таймеры

Добавлено: 24 янв 2018, 23:43
Pavlov
[ref]magpit[/ref], [ref]Noname[/ref], спасибо за совет!
хотел избежать EEPROM, так как тема плоха изучена, но теперь вижу: есть повод подучиться! :)

Про теплицы и таймеры

Добавлено: 24 янв 2018, 23:58
Noname
Pavlov писал(а): 24 янв 2018, 23:43[ref]magpit[/ref], [ref]Noname[/ref], спасибо за совет!
хотел избежать EEPROM, так как тема плоха изучена, но теперь вижу: есть повод подучиться! :)
А зачем избегать? Надо просто писать в нее только тогда, когда необходимо. у меня в проекте - только после подтверждения ввода, т.е. если просто выбрать пункт меню, поменять значение и не подтвердить, ничего не измениться и не запишится. И при входе в пункты меню выводимое значение удобнее брать из еепром..

Отправлено спустя 1 минуту 1 секунду:
возможно на днях сниму видео , как реализовано. если интересно конечно..

Про теплицы и таймеры

Добавлено: 25 янв 2018, 00:00
GENIUS4444
Для хорошей теплицы UNO мало, надо MEGA , иначе мажет пинов не хватить, или ардуинка будет тормозить

Про теплицы и таймеры

Добавлено: 25 янв 2018, 05:08
Phazz
GENIUS4444 писал(а): 25 янв 2018, 00:00или ардуинка будет тормозить
Конечно, ведь в теплице процессы очень быстрые )))

Про теплицы и таймеры

Добавлено: 25 янв 2018, 09:31
Pavlov
Noname писал(а): 24 янв 2018, 23:58возможно на днях сниму видео , как реализовано. если интересно конечно..
очень интересно, буду благодарен!
GENIUS4444 писал(а): 25 янв 2018, 00:00Для хорошей теплицы UNO мало, надо MEGA
на данном этапе пока хватает nano. конечно при добавлении функционала буду переходить на мегу, но для этого надо разобраться с тем что есть

Про теплицы и таймеры

Добавлено: 25 янв 2018, 21:08
GENIUS4444
Дома три цветка в горшках поливаются автополивом на UNO, так ардуинки почти впритык хватило. На подходе теплицу на ДУО мудрю , так это уже не теплица , а целая лаборатория получается.

Про теплицы и таймеры

Добавлено: 31 янв 2018, 12:00
Pavlov
Дописал я свою теплицу! Изначально, я по всей видимости неправильно задал вопрос, и соответственно услышал не тот ответ. Но это уже не важно. На данный момент EEPROM пока не используется, но позже допишу его обязательно, для сохранения установленных значений.
Nano вполне справляется со своей задачей: занято 67% памяти и 51% динамической памяти под глобальные переменные. осталось 2 свободных цифровых входов 0 и 1, но их не хочу использовать, и 3 аналоговых входа. Так же в планах прикрутить зумер, без него как то грустно, и при необходимости уровень воды в емкости для полива, и изменить счетчики, поставить с ускоренной прокруткой
Единственный не решенный вопрос на данный момент: как организовать опрос датчика влажности почвы (простая вилка с аналоговым выходом) один раз в минуту, для того что бы он сильно не окислялся.
кому интересно, прикрепляю "проект" :)

Про теплицы и таймеры

Добавлено: 31 янв 2018, 12:12
pan
Pavlov писал(а): 31 янв 2018, 12:00 как организовать опрос датчика
аналоговый вход на отдельную плату, в свойствах платы выполнение по условию. дальше придумаете

Про теплицы и таймеры

Добавлено: 31 янв 2018, 12:13
cmept-27

Про теплицы и таймеры

Добавлено: 31 янв 2018, 14:47
Pavlov
[ref=#ff8000]pan[/ref], точно! спасибо!
[ref]cmept-27[/ref], датчик то уже есть, даже 2! просто надо ему опрос сделать пореже, например раз в 10 минут...
Хотя если делать капитально, то с графитовыми электродами однозначно лучше!

Отправлено спустя 2 часа 15 минут 30 секунд:
Знатоки, подскажите пожалуйста: стал я заносить переменные в еепром. Получилось у меня 19 переменных. Память расчитана примерно на 100'000 циклов перезаписи. На долго ли хватит моей памяти и можно ли использовать внешнюю карту памяти для хранения переменных?

Про теплицы и таймеры

Добавлено: 31 янв 2018, 14:52
pan
ну так разделите 100.000 на периодичность записи в вашем проекте. вот и узнаете на сколько хватит.
а вообще если правильно организовать запись (например записывать только при изменении значения) то хватит на долго.
кстати в стандартном блоке запись в эпром "обновляет" данные. так что если они не меняются, то ресурс не будет тратиться

Про теплицы и таймеры

Добавлено: 31 янв 2018, 18:54
cmept-27
[ref]Pavlov[/ref], можешь сам переделать датчики. Взять угольные электроды в любом магазине сварочного оборудования. Стоят не дорого и продаются по штучно.
[spoiler]
ugolnye-elektrody.jpg
[/spoiler]