Создание аквариумного контроллера (попытка номер 3) Часть 2: Начало
Что такое акваконтроллер, а точнее как я себе его представляю?
Как и любой контроллер - это устройство которое управляет чем-либо по заданным заранее параметрам или на основании данных с датчиков. Не исключение и акваконтроллер - его основная задача - поддерживать оптимальные условия в аквариуме для упрощения его обслуживания.
Свой вариант акваконтроллера я хочу сделать универсальным, что б он подходил под большинство нужд аквариумистов, так же я хочу иметь возможность его использовать и как контроллер для теплицы, гроубокса (нет, не для выращивания конопли).
Я так же хочу, что б он был прост в обслуживании, в ремонте и не требовал пайки. В идеале сделать устройство которое сможет реализовать любой.
И так, что он должен уметь:
- Считывать показания с распространенных датчиков. Для себя я выделил следующие: датчик температуры, датчик влажности (DHT22), датчик влажности (резистивный), датчик давления, датчик освещенности, датчик уровня воды, датчик напора воды, кнопочные датчики (те которые выдают либо положительный ответ, либо отрицательный), датчик PH, датчик ORP. Считывание нужно реализовать так, что б можно было с легкостью добавить возможность считывания показаний с любых датчиков.
- Управление нагрузкой. Контроллер должен уметь управлять нагрузкой как с помощью ШИМ (PWM), так и с помощью простого переключения состояния.
- Создание условий для управления нагрузкой. Самый сложный пункт. Контроллер должен иметь возможность не только включать и выключать нагрузку, но и управлять ей в зависимости от показаний датчиков, времени, Множества различных параметров. Будет создана гибкая система добавления условий.
- Архивирование показаний датчиков. Все показания датчиков и сенсоров будут записываться и можно будет просмотреть значение каждого из сенсоров в любое время.
- Оповещения. Контроллер должен иметь возможность оповещать владельца о различных ситуациях: штатных и нештатных. При чем оповещения могут быть активированы и деактивированы для различных событий и должно быть легко в настройке. Оповещения будут дувх видов: по email и по Telegram.
- Управление по Telegram. Возможность управлять контроллером посредством Telegram: принудительное включение или отключение каналов, считывание показания датчиков.
- Сценарии. Возможность создавать сценарии работы каналов и присваивать эти сценарии на нажатия кнопки, возможность их запуска по времени и с помощью telegram.
- Кнопки. Возможность добавления выносных кнопок и присваивание им определенных сценариев работы каналов.
- Внесение удобрений. Реализовать возможность управления внесения удобрений по времени и в зависимости от показаний датчиков.
- Автодолив. Возможность автоматического долива по показаниям датчиков.
- Блог. внутрений блог, куда можновносить различную информацию о состоянии аквариума и делать там заметки.
- Голосовое управление. В идеале, иметь возможность по команде выполнять определенные сценарии.
В качестве главного "мозга" контроллера будет использована плата raspberry pi 3, а так же будет создана "материнская плата", куда будут подключаться датчики, кнопки и прочие различные компоненты, которые доступны в свободном доступе.
Почему именно Raspberry?
- Система будет написана на python.
- Плата распостранена, очень стабильна.
- Огромное сообщество и множество готовых модулей, множество информации по решению различных проблем.
- Множество коммуникаций: Ethernet, WIFI, Bluetooth.