Ищу исполнителя по написанию скетча по автоматизации перепелятника

sergsap
Offline
Зарегистрирован: 01.12.2012

Доброго времени суток!

Нужно написать скетч для управления температурой и светом перепелятника. Задание ниже, схема тоже.

 

Задание на программирование Arduino UNO.

  1. Программирование в среде Arduino 1.0.1.
  2. Библиотеки для LCD (2х16 + 6 кнопок), 1-Wire, DS1307 под Arduino 1.0.1 прилагаются и протестированы. Если есть возможность - русифицировать дисплей. Прилагается аналогичный пример библиотеки.
  3. Крайне желательно комментировать все строки кода, чтобы отладку можно было выполнить самостоятельно.
  4. Схема диммера взята отсюда http://www.compcar.ru/forum/showthread.php?t=8396 там же есть скетч.
  5. Силовая часть для управления подсветкой будет нарисована позже, когда появится ясность с мощностью нагрузки (LED – лента), поэтому достаточно обычного ШИМа на пине 3, изменяемого по датчику освещенности.
  6. Подключение будет выполняться согласно прилагаемой схемы.
  7. В перспективе к пинам 0,1 планируется подключение реле управления двигателем, контроль положения планируется отслеживать аналоговым входом (по концевикам).
  8. Вариант отображения информации на дисплее ниже

\"\\"\\"\"

 

sergsap
Offline
Зарегистрирован: 01.12.2012

http://s019.radikal.ru/i609/1212/50/426b0b8f3a1c.jpg

Здесь первые 5 символов – текущее время

Символы 7,8,9 – день недели

Символы 15,16 (первой строки ) показывают день программы для брудера (1-29) – см. алгоритм ниже.

Во второй строке выводится температура с двух датчиков температуры 18B20

1.       С кнопок требуется реализовать:

·         Установку времени, дня недели.

·         Установку дня программы брудера (1-29).

·         Отключение сигнала тревоги.

·         Смену режима подсветки (авто) – по датчику освещенности или (ручн.).

Алгоритм

Брудер (для птенцов).

Включить лампу на треть мощности (50 Вт).

1.       День 1-7:

1.1. Проверить температуру.

1.2. Если t выходит за рамки значений (35-37С), отрегулировать диммированием (±5% мощности).

1.3.  Пауза 5 мин.

1.4. Перейти к п. 1.1.

1.5. Если t<33 или > 37.5, подать звуковой сигнал.

2.       День 8-14:

2.1. Проверить температуру.

2.2. Если t выходит за рамки значений (30-32С), отрегулировать диммированием (±5% мощности).

2.3. Пауза 10 мин.

2.4. Перейти к п. 2.1.

2.5. Если t<28 или > 34, подать звуковой сигнал.

3.       День 15-21:

3.1. Проверить температуру.

3.2. Если t выходит за рамки значений (25-27С), отрегулировать диммированием (±5% мощности).

3.3. Пауза 15 мин.

3.4. Перейти к п. 3.1.

3.5. Если t<21 или > 27.5, подать звуковой сигнал.

4.       День 22-28:

4.1. Проверить температуру.

4.2. Если t < 20 С, включить лампу на 10%, если t>22 C, выключить лампу.

4.3. Пауза 30 мин.

4.4. Перейти к п. 4.1.

4.5. Если t<19, подать звуковой сигнал.

5.       День 29.

5.1. Выключить лампу.

Перепелятник.

1.       Освещение.

1.1. Время 08.00-01.00

1.1.1.        Проверить освещенность с помощью фоторезистора.

1.1.2.        Включить светодиодную линейку на определенную мощность, в зависимости от показаний фоторезистора.

1.1.3.        Пауза 10 мин

1.1.4.        Перейти к п. 1.1.1.

1.2. Время 01.00-08.00

1.2.1.        Выключить свет.

2.       Кормушка.

1.1.  Время 12.00. Провернуть сервопривод на определенное количество градусов.

1.2.  Время 00.00. Провернуть сервопривод на определенное количество градусов.

схема http://narod.ru/disk/64204547001.b50fe044b6efcac2b11ab5ca41d2d954/%D1%81%D1%85%D0%B5%D0%BC%D0%B0.pdf.html

maksim
Offline
Зарегистрирован: 12.02.2012
maksim
Offline
Зарегистрирован: 12.02.2012

забыл написать где искать, подредактировал.

sergsap
Offline
Зарегистрирован: 01.12.2012

Хочу поблагодарить Максима за великолепно решенную задачу. После месячного сотрудничесва схема была значительно переработана, а в алгоритм внесено множество изменений и улучшений. Возможно, позже, опишу проект, если кому-то это интересно, а пока схема и фото готового девайса (точнее не совсем еще готового). К оптимизации особо не стремился, поэтому в схеме появились две ардуины, но все работает как часы (и часы тоже работают )).

 

klinsky
Offline
Зарегистрирован: 16.11.2012

Красота!

Осталось тока скетч выложить и поверю, что "в Новый год чудеса случаются! " :))

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Где фото живых птиц, прошедших через это устройство? :)

sergsap
Offline
Зарегистрирован: 01.12.2012

Ну коль Новый год еще не прошел, выкладываю код, возможно кому-то пригодится

Птицы через это устройство еще не прошли, но уже готовятся ). Вот тоже живая, но выращенная "вручную" без устройства ).

klinsky
Offline
Зарегистрирован: 16.11.2012

Большой респект !!!

Бум разбираться! Дуину взял месяц назад, и одна из причин была как раз - для возможной автоматизации подсобного своего хозяйства. 

Успехов Вам sergsap в инновационном птицеводстве =) ! И с праздниками!

sergsap
Offline
Зарегистрирован: 01.12.2012

Спасибо, Вас тоже с праздниками. Сам недавно узнал о дуине, купил гору железа на ебее, вот первый пилотный проектик, весьма полезный ). Программить самостоятельно тяжеловато, ибо не умею ), а вот паяльник раньше часто в руках держал, тут сложностей не вижу. Что касается автоматизации птицеводства, то это интересная тема, т.к. перепела очень забавные птички и любят порядок во всем - свет, климат. Если что не так, сразу убивать друг друга начинают ну или самоликвидироваться. Поэтому интересно усовершенствовать их быт ). Хотя, признаюсь, хобби птицеводства не мое лично, но вот приходится погружаться в тонкости ).

PS забыл сказать, что скетч не полный и в схеме есть косяк, когла ее причесывал, шину I2C через резисторы случайно на землю повесил. В общем, документация не полная пока )

Borland
Offline
Зарегистрирован: 17.05.2012

sergsap , можно поподробнее по схеме ?

зачем вторая дуина прежде всего, она управляет яркостью ламп ?

То есть вопрос - почему одной дуиной обойтись было нельзя

sergsap
Offline
Зарегистрирован: 01.12.2012

Вторая дуина появилась в результате того, что в ходе отладки устройства вылез небольшой баг - при подключении библиотеки 1-Wire иногда (хаотически) лампа вспыхивала. Небольшой анализ показал подозрения на конфликт библиотеки с внутренним прерыванием, с которым работает диммер. Первым решением было взять готовый диммер с управлением 1-10В и рулить им из ардуины, но поиск таких устройств навел на мысль, что они дороже дуины Nano. Также maksim предложил взять маленький атмелчик и сделать на нем диммер, но для меня это был очередной круг итераций и изысканий, а тут вроде как все готово, вот и остановились на дуине. К тому же, если не ошибаюсь, то библиотеке Servo нужен тот же таймер, что и диммеру, поэтому это тоже оправдывает вторую дуину. Ну и резерв IO не будет лишним для возможного развития проекта. С одной уной резерва просто нет

maksim
Offline
Зарегистрирован: 12.02.2012

Такой способ диммирования "кушает" очень много ресурсов МК - одно внешнее прерывание и один таймер. Но основная проблема в том что возник конфликт с библиотекой OneWire.h потому как она при опросе датчиков отключает прерывания и лампа начинает помигивать, если же убрать из OneWire.h отключение прерываний, то температура с датчиков читалась через раз. Было предложено отказаться именно от токого способа диммирования, но так как готового подходящего варианта не нашли, а времени на разработку чего-то другого не было, то было решено просто вынести диммер в отдельную дуину и оставить все как есть.

Теоретически можно было бы попробывать синхронизировать опрос датчиков с работой диммера, но неизвестно был бы положительный результат.

klinsky
Offline
Зарегистрирован: 16.11.2012

Эх, не успел чуток добавить вопрос к #10

Sergsap, а девайс под названием "кормушка" - воплощение Ваших рук или заводского изготовления? Что-то я пока не встречал таких ни в жизни ни в инете, если не брать кадры  ютюба про американские кормушки для домашних питомцев =/

sergsap
Offline
Зарегистрирован: 01.12.2012

Кормушка пока вынашивается в голове ). Будет определенно рукотворного производтства. Коль управление реализовали, осталось дело за малым. Малый пока думает ). 

klinsky
Offline
Зарегистрирован: 16.11.2012

sergsap пишет:

... Малый пока думает ). 

Понятно, спасибо )))

Borland
Offline
Зарегистрирован: 17.05.2012

а о датчиках DHT не думали? там и влажность есть, возможно перепелам это тоже важно, Я вот ковыряюсь тоже с  DS18B20, ну тормозят они по черному, про запрет прерывания тоже видел, они на максимальном разрешении делают delay(750) при запрете прерываний, насколко я помню.

Плюс ко всему электростатикой от шарканья ногами сажаю эти датчики на показание -0  , и никакого решения кроме как перезагружать контроллер по питанию пока не нашел. Понятно что их нужно изолилировать, но с DHT проблем помойму меньше, если их не очень много.

 

sergsap
Offline
Зарегистрирован: 01.12.2012

DHT11 на всякий пожарный тоже были закуплены, но так и остались лежать в запасе. Мне не понравилась их точность 2С по температуре и 5% по влажности. Про проблемы DS18B20 даже и не слышал, а вот раньше с ними сталкивался и плохого ничего сказать не могу. Сейчас у меня на дисплее температура отображается с точностью до десятых градуса и весьма удобно наблюдать за ее изменениями, а также процессом термостатирования.

Была мысль до кучи повесить DHT11 и смотреть за влажностью, но рулить влажностью нечем, поэтому и нужды вроде как нет. Как и нет информации о потребности птичек к определенной влажности ).

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

sergsap пишет:

Была мысль до кучи повесить DHT11 и смотреть за влажностью, но рулить влажностью нечем,

Как это "нечем"? Микрокомпрессор с пульверизатором - и будет Вам руль для добавления влажности. Уменьшение - только вентиляцией, хотя, в теории, можно было бы и пельтье приспособить на конденсацию влаги.

Zapek@n
Offline
Зарегистрирован: 16.02.2012

Сейчас модно применять ультразвуковые увлажнители. Вот интересно насколько сложно такой ультразвуковой излучатель найти и прикрутить к Arduino. Еще есть так называемая "мойка воздуха" когда на барабан закреплен пористый материал, а нижняя часть погружена в жидкость. Барабан мееедлено крутится, губка намокает, затем несколько испаряется, заодно улавливая пыль, а затем по завершению круга погружается в жидкость и смывает пыль. Еще верхнюючасть желательно обдувать вентилятором, чтобы усиливать испарение. Хотя наверно для перепелятника актуально обратное - осушитель

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Zapek@n пишет:

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

Нету там пористого материала. :) Ребристые пластиковые диски, по 6 штук с каждой стороны. Раз в месяц приходится разбирать и мыть не только поддон, но и поверхность дисков со щеткой, т.к. собирать-то оно собирает, а вот со смывом всей грязи в поддон - не ахти.

sergsap
Offline
Зарегистрирован: 01.12.2012

Andrey_Y_Ostanovsky пишет:

Как это не чем"? Микрокомпрессор с пульверизатором - и будет Вам руль для добавления влажности. Уменьшение - только вентиляцией, хотя, в теории, можно было бы и пельтье приспособить на конденсацию влаги.

Вот этого больше всего и боялся, что придется еще и общеобменную вентиляцию городить, а надо то было покормить, да посветить )).

А просто увлажнитель ИМХО не вариант, будет локально влажность высаживаться, потом мох пойдет расти, за ним тоже уход понадобится )

vworld
vworld аватар
Offline
Зарегистрирован: 26.09.2011

а такая схема вам не подойдет?

maksim
Offline
Зарегистрирован: 12.02.2012

Нет, не подойдет, это всего лишь позиционный регулятор на реле.