Gang Xie
Это устройство может быть полезно всем цветоводам-любителям и просто тем, кому нравятся растения в доме. Особенно тем, кто забывает их поливать. Оно позволяет автоматизировать процесс полива с помощью простой системы управления водяным насосом. Это устройство было разработано студентом Стэнфордского университета Gang Xie.
Описание
Вы часто забываете поливать растения? Вам требуется просить соседей присмотреть за ними, когда вся ваша семья собирается в отпуск? В этом больше нет необходимости! Эта система автоматического полива растений может делать все это для вас.
Возможности:
- Регулярно подавать определенное количество воды вашим растениям;
- Использоваться как будильник.
Итак приступим. На рис .1 изображена блок-схема системы полива.
Рис.1 Схема
Схемотехника
В этой схеме был применен AVR процессор ATmega 323. Он содержит два 8-битных Таймера/Счетчика и один 16-битный Таймер/Счетчик. Он также поддержвает счетчик реального времени. Этого будет достаточно для построения системы. На рис.2 показано назначение микроконтроллера ATmega 323.
Рис.2. Назначение выводов контроллера в корпусе PDIP 40
Схема программатора показана на схеме AVR basic system schematic. Имея программатор и программу PonyProg можно легко прошивать контроллер.
Блок стабилизатора построен на микросхеме LM7805. Эта часть системы также показана на схеме « AVR basic system schematic ».
Многие функции системы зависят от частоты реального времени. Поэтому был использован кварц на 32768 Гц. Установив масштаб счетчика равным 128 и условие прерывания Timer 2, кварц обеспечит частоту 32768/128/(2^8) = 1 Гц. Часть системы для кварца реального времени и 8 МГц показана на схеме AVR basic system schematic.
В качестве дисплея используется ЖКИ 2*24 HD44780. Для звука был использован динамик на 0.2 Вт. Реле R40-11D2-5 играет важную роль в системе, т.к. оно управляет включением и выключением водяного насоса. Расположение контактов показано на рис . 4.
Рис. 3 Схема
Рис . 4 Реле
In the system schematic as shown previously, there is an additional circuit for the relay to protect the AVR’s pins from being damaged. As we know, U=LdI/dt. There could be as large as 100 volts introduced from coils in the relay when the current flow in the coils are suddenly stopped or allowed. This high voltage can easily break through the AVR ports. In order to protect the AVR, the following circuit is used to limit the voltage applied on the AVR pins.
Рис. 5 Схема управления реле.
На этой схеме в точке B будет около 5 В, когда будет подан управляющий сигнал, что достаточно для переключения реле.
Для безопасности в цепь насоса (CAL P60) последовательно включен предохранитель.
Интерфейс пользователя
Система обеспечивает достаточно много пользовательских функций. В ней есть насос, ЖКИ, динамик и пять кнопок.
Насос поливает растения, как нам того и надо. Поток воды можно настроить вручную, поворачивая пластиковый поршень насоса. Так что убедитесь, что насос выливает требуемое количество воды, прежде чем оставить систему работать автономно.
Динамик воспроизводит звук при напоминании или поливе.
ЖКИ показывает статус системы. Он умеет показывать символы, мерцающий курсор, бегущую строку и прогресс-бар.
Для работы с системой можно использовать 5 кнопок. Одна из кнопок используется для сброса системы. Четыре остальных как показано ниже:
- Кнопка Next: вызывает следующую страницу на дисплее, если не в режиме редактирования. Или переключает мерцающий курсор на следующее поле в режиме редактирования.
- Кнопка Edit: переход в режим редактирования и обратно.
- Кнопка +: увеличивает значение мерцающего поля в режиме редактирования.
- Кнопка -: уменьшает значение мерцающего поля в режиме редактирования.
Софт
Проект написан на C, и откомпилирован на AVRGCC. Около 45 % кода обрабатывает частоту реального времени и все что касается времени. Учитываются такие моменты как 29 дней в Феврале каждые 4 года . Еще 45 % кода написаны для работы с ЖКИ.
По ссылкам ниже находятся исходники проекта:
- ee281proj.c, global.h, avrlibdefs.h, and avrlibtypes.h: main() function and functions for push-button clicks and sound.
- lcd.c and lcd.h: general LCD functions, and display functions particular for this project.
- timer.c and timer.h: the TRC and all timing issues in alarming and pumping.