Начало
Звонит мне как водится один знакомый чел и бодро просит сделать ему управление на теплицу. Чтоб форточки открывались, температура и влажность мониторились, полив по расписанию но не циклический.
Cамым простым путем для меня, еще лет десять назад, был бы — все спаял бы на голой логике с примесью часового кварца с делителем на 32, но сейчас уже есть малина, вот ее то и взял за основу устройства, кстати узнал много нового.
1. Полив по часам.
Тогда я еще не знал что такое крон а жаль. В результате привинтив часы реально времени по квадратной шине (I2C) дня два ушло на поиски инфы как вынуть из регистров время и как туда записать текущее время.
Потом сделал текстовый файлик с названием watering.cfg в который тупо записал через запятую: день недели, время начала полива, время окончания полива и поливную линию в которую воду подать надо. таких управляющих строк может быть не одна тысяча и можно запрограммировать полив хоть каждую минуту в течении нескольких лет.
2. Температура земли и воды в баке и в теплице
Привинтил два датчика в водоупорных корпусах. DS18b20 для контроля температуры земли и воды в баке для полива, внутри и снаружи теплицы применил DHT22; и как то надо было отображать данные и тут появился Apache с пером но без шпаги.
2. Апач (не Гурон заметьте)
Поднял на малине апач и тут выяснил что все данные будут записываться физически на SD карту, посчитав несколько раз на калькуляторе понял что карточка не выдержит такого большого наплыва перезаписи и покрывшись бэдами уйдет в помойку.
Попытав форум raspberry.org, понял, что нужно использовать виртуальный диск и алиасы! О-о-о новое слово и новые возможности. Уах!
В общем в результате на SD карте лежит index.html, а странички хтмл автоматом генерятся программкой на питоне и сваливаются на рам диск, с которого индекс их забирает раз в минуту. Таким образом был сооружена полноценная микространичка с фреймами (для меня самый простой путь); в каждом фрейме стало отображаться:
- температура воды в баке, в земле или sensor N/A
- подтянулись фреймы с температурой и влажностью внутри и снаружи теплицы
- состоянии форточек
- текущее состояние полива и глобальное расписание полива
Получилась вот такая страничка до которой можно достучатся по локальной сети
3. Железо
Кроме малины потребовался еще wi-fi свисток, прицепился без приключений.
Самое большое приключение было с релюшками которые срабатывали от лог. 0! А весь софт, который я сделал, был уже написан под лог. 1 как управляющий сигнал. Тоска…
Подумав немного о тупике мироздания, я вспомнил про классику жанра — логику! Порывшись, нашел 155ЛН1, но она не подошла по нагрузке, пришлось кандылять в чип&дип и купить 1533 с открытым коллектором и на выходы уже привинтить китайские релюшки. При испытаниях логика вообще не грелась, что меня сильно удивило.
Все дрова от adafruit для датчиков температуры.
И тут наступил апокалипсис, который наступил. После очередного обновления ядра малины, внезапно все перестало работать Оказалось, что разработчики дебиана ввели дерево устройств: опять пляски с бубном и гармошкой, пытки топиками на форумах, за неделю все удалось привести в рабочее состояние с уже новым дебианом.
4. как все это работает
В малины одна задача. поддержать температуру внутри теплицы в определенном диапазоне от 20 до 25 градусов и не более того, И для этого она открывает когда жарко и закрывает когда холодно, а когда внутри влажность приближается к точке росы вне зависимости от температур внутри и снаружи — устраивает небольшой цикл проветривания, по определенному алгоритму.
5. Железо с клиентской стороны
К форточкам теплицы приделаны обычные реечные стеклоподъемники, которые и толкают створки. Хотя проще, наверное, было бы поставить рулевые машинки с ШИМ управлением и пропорционально температуре открывать окна.
Может быть так и будет в Теплица V1.5.
Что плохо: все сведения которые я получил на форуме, я получил от англоговорящих фанатов малины; в рунете мне все пытались продать, либо отправляли курить форум. Поэтому я не хочу выкладывать код программ и какие-то решения — вы же и так все знаете! Если продаете или отправляете курить форум в котором и так все есть как все думают.
В ходе разработки я не сжег ни одной малины и ни одного электронного компонента, конечно были холодные пайки и заливы контактов но куда без них. Весь софт был написан на питоне, всего около 1000 строк суммарно, многое сделано в лоб так как я ж нетыжпрограммист.
Автор: лорд Брабазон Вир-де-Вир