Простой аквариумный контроллер на Raspberry Pi
Все началось с того, что я решил купить себе аквариум на 40 литров. Взял аквариум "Природа", к нему крышку той же марки с люминисцентными лампами. Сначала все было хорошо, но потом наступила жара и вода в аквариуме начала сильно греться. Я начал смотреть, что можно купить уже готовое, что б как-то контролировать температуру воды: с нагревом все понятно - просто покупается нагреватель, а вот с охлаждением дела обстояли похуже. Охлаждать воду можно двумя методами: с помощью вентиляторов или холодильной установки.
Холодильная установка для 40 литров - слишком дорогое и избыточное решение, а вот вентилятор - то, что нужно, он способен понизить температуру градусов на 5 от температуры окружающей среды.
Я начал смотреть вентиляторы для аквариума и столкнулся с проблемой, что они либо не помещались мне под крышку, либо не имели автоматического контроля температуры и их нужно было включать и выключать вручную. Я решил, что пришло время сделать простой контроллер аквариума на arduino который бы управлял вентиляторами в зависимости от температуры, которые я планировал встроить в крышку аквариума и управлял светом по расписанию.
Я решил сначала поискать или сделал кто-то что-то подобное и оказалось, что существует куча проектов по управлению аквариумом и я нашел один проект основанный на esp8266 с wifi-управлением. Я достал, когда-то купленную, esp, закачал прошивку и получил следующее:
Это всё то, что я и хотел сделать да еще и с админкой по вэбу - просто мечта. Но...
ESP глючит, она переодически зависала и мне приходилось ее перегружать. Небыло функции принудительного включения света или принудительного включения охлаждения которые переодически были нужны. На телефоне админка была неудобна. Зависала она часто когда меня не было дома и однажды сгорел блок питания. Я понял, что дальше мучиться с ESP я не хочу, но хочу оставить вэб-админку, так как мне показалось это очень удобным. Выбор пал на, давно валявшуюся без дела, raspberry pi B+.
Многим может показаться, что это как стрелять из пушки по воробъям, но покупать что-то еще я не хотел и использовал то, что было.
Какие функции мне были нужны:
- управление светом по расписанию
- принудительное включение света на заданный промежуток времени
- управление охлаждением по заданой температуре
- принудительное включение охлаждения на заданный промежуток времени
- веб-интерфейс для управления
- нормальное отображение интерфейса на мобильном устройстве
Вот так вот просто, ничего больше мне на данный момент не надо. Вот, что из этого вышло:
Главный экран: показывает текущее время, текущую температуру, статусы охлаждения и освещения, возможно включить освещение или охлаждение на заданный ползунком промежуток времени.
Экран освещения: задается время включения и время выключения освещения.
Экран охлаждения: задается минимальная и максимальная температура для аквариума.
Экран настроек: на данный момент задается только время сбора и обработки всех действий в секундах.
Я решил сделать програмную часть на питоне: есть фронтенд и бэкенд. Между собой они синхронизируются с помощью redis.
Задержка на действия через интерфейс зависит от времени обновления и при обновлении в 1 сек - происходит практически мгновенно. Большей точности и не надо. Все смонтировано и работает стабильно уже более двух недель.
Что нужно для работы системы:
- Raspberry Pi (можно и другой одноплатный arm компьютер, например этот)
- Блок питания на 5v 2A, например этот
- модуль реле, например такое
- датчик температуры водонепроницаемый, вот этот
- повышающий конвертор (нужен если вентиляторы работают от напряжения выше 5В), я использовал этот
- 2 вентилятора охлаждения, я использовал эти, но я бы их не рекоммендовал, они создают слабый поток воздуха, сейчас бы взял что-то помощнее
И вот внешний вид аквариума с вентиляторами:
Если эта тема хоть кому-то интересна - я выложу код и описание работы контроллера