Загрузка...
Загрузка...

Простой аквариумный контроллер на Raspberry Pi

•   DIY   •

Простой аквариумный контроллер на Raspberry Pi
22 сен 2016

Простой аквариумный контроллер на Raspberry Pi

Все началось с того, что я решил купить себе аквариум на 40 литров. Взял аквариум "Природа", к нему крышку той же марки с люминисцентными лампами. Сначала все было хорошо, но потом наступила жара и вода в аквариуме начала сильно греться. Я начал смотреть, что можно купить уже готовое, что б как-то контролировать температуру воды: с нагревом все понятно - просто покупается нагреватель, а вот с охлаждением дела обстояли похуже. Охлаждать воду можно двумя методами: с помощью вентиляторов или холодильной установки.

Холодильная установка для 40 литров - слишком дорогое и избыточное решение, а вот вентилятор - то, что нужно, он способен понизить температуру градусов на 5 от температуры окружающей среды.

 

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

Я решил сначала поискать или сделал кто-то что-то подобное и оказалось, что существует куча проектов по управлению аквариумом и я нашел один проект основанный на esp8266 с wifi-управлением. Я достал, когда-то купленную, esp, закачал прошивку и получил следующее:

Это всё то, что я и хотел сделать да еще и с админкой по вэбу - просто мечта. Но...
ESP глючит, она переодически зависала и мне приходилось ее перегружать. Небыло функции принудительного включения света или принудительного включения охлаждения которые переодически были нужны. На телефоне админка была неудобна. Зависала она часто когда меня не было дома и однажды сгорел блок питания. Я понял, что дальше мучиться с ESP я не хочу, но хочу оставить вэб-админку, так как мне показалось это очень удобным. Выбор пал на, давно валявшуюся без дела, raspberry pi B+.

Многим может показаться, что это как стрелять из пушки по воробъям, но покупать что-то еще я не хотел и использовал то, что было.

Какие функции мне были нужны:

  • управление светом по расписанию
  • принудительное включение света на заданный промежуток времени
  • управление охлаждением по заданой температуре
  • принудительное включение охлаждения на заданный промежуток времени
  • веб-интерфейс для управления
  • нормальное отображение интерфейса на мобильном устройстве

Вот так вот просто, ничего больше мне на данный момент не надо. Вот, что из этого вышло:

Главный экран: показывает текущее время, текущую температуру, статусы охлаждения и освещения, возможно включить освещение или охлаждение на заданный ползунком промежуток времени.

Экран освещения: задается время включения и время выключения освещения.

Экран охлаждения: задается минимальная и максимальная температура для аквариума.

Экран настроек: на данный момент задается только время сбора и обработки всех действий в секундах.

Я решил сделать програмную часть на питоне: есть фронтенд и бэкенд. Между собой они синхронизируются с помощью redis.

Задержка на действия через интерфейс зависит от времени обновления и при обновлении в 1 сек - происходит практически мгновенно. Большей точности и не надо. Все смонтировано и работает стабильно уже более двух недель.

Что нужно для работы системы:

  • Raspberry Pi (можно и другой одноплатный arm компьютер, например этот)
  • Блок питания на 5v 2A, например этот
  • модуль реле, например такое
  • датчик температуры водонепроницаемый, вот этот
  • повышающий конвертор (нужен если вентиляторы работают от напряжения выше 5В), я использовал этот
  • 2 вентилятора охлаждения, я использовал эти, но я бы их не рекоммендовал, они создают слабый поток воздуха, сейчас бы взял что-то помощнее

И вот внешний вид аквариума с вентиляторами:

Если эта тема хоть кому-то интересна - я выложу код и описание работы контроллера