2. Анализ программно-аппаратной системы управления
2.1. Система управления Arduino
2.2. Преимущество Arduino
2.3. Аппаратная часть платформы Arduino
3. Разработка устройства
3.1. Разработка программно-аппаратной части устройства
3.2. Разработка структуры программно-аппаратного устройства
4. Экспериментальная часть
4.1. Отладка стенда
5.Вывод
6.Приложение
7.Список литературы
Введение
Автоматический полив зародился в Соединённых Штатах Америки как средство для аграрной ирригации и замечательно зарекомендовал себя, как альтернатива ручному поливу в этой отрасли. Позже полив автоматический стал применяться для орошения частных приусадебных участков, коммерческих объектов, промышленных территорий и объектов муниципального характера – парков, футбольных полей, стадионов и т.д.
Автоматикой полива управляет так называемый контроллер – пульт управления, с помощью которого пользователь задаёт программы для полива и который потом этими программами управляет в автоматическом режиме. При активировании программы полива контроллер передаёт сигнал на электромагнитный клапан, который открывает доступ воды в зону полива и происходит распыление воды через дождеватели и форсунки.
С начала нового тысячелетия человечество шагает в эпоху новых технологических открытий, одним из которых является бытовая автоматизация. Время современного человека имеет огромную ценность, и различные системы автоматизации существенно экономят этот жизненно-важный ресурс. Но такие устройства имеют один минус - большую рыночную стоимость. Поэтому разработка относительно дешевой системы, с аналогичными возможностями получает все большую актуальность. Система автоматического полива растений - незаменимый помощник, как для ухода за комнатными растениями, так и в теплице и на огороде.
Цельюработы является разработка модуля системы «автоматический полив», а так же разработка и исследование алгоритмов системы, позволяющих увеличить количество свободного времени.
Задачи проекта
Анализ программно-аппаратных систем управления «автоматическим поливом».
Создание архитектуры аппаратных средств «автоматического полива».
Анализ программно-аппаратной системы управления
Система управления Arduino
Arduino - это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.
Arduino позволяет компьютеру выйти за рамки виртуального мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными исполнительными устройствами.
Микроконтроллер на плате программируется при помощи языка С++ и среды разработки Arduino. Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.
В 2006г. Arduino получила признание в категории Digital Communities на фестивале Ars Electronica Prix .
Преимущество Arduino
Пользователь современного компьютера не задумывается о функционировании отдельных частей ПК. Он просто запускает нужные программы и работает с ними. Точно так же и Arduino позволяет пользователю сосредоточиться на разработке проектов, а не на изучении устройства и принципов функционирования отдельных элементов. Нет надобности и в создании законченных плат и модулей. Разработчик может использовать готовые платы расширения или просто напрямую подключить к Arduino необходимые элементы. Все остальные усилия будут направлены на разработку и отладку управляющей программы на языке высокого уровня. В итоге доступ к разработке микропроцессорных устройств получили не только профессионалы, но и просто любители что-то сделать своими руками. Наличие готовых модулей и библиотек программ позволяет непрофессионалам в электронике создавать готовые работающие устройства для решения своих задач. А варианты использования Arduino ограничены только возможностями микроконтроллера и имеющегося варианта платы, ну и, конечно, фантазией разработчика.
Аппаратная часть платформы Arduino
Существует несколько версий платформы Arduinо. Основные виды плат представлены следующими моделями:
Due — плата на базе 32-битного ARM микропроцессора Cortex-M3 ARM SAM3U4E;
Leonardo — плата на микроконтроллере ATmega32U4;
Uno — самая популярная версия базовой платформы Arduino;
Duemilanove — плата на микроконтроллере ATmega168 или ATmega328;
Diecimila — версия базовой платформы Arduino USB;
Nano — компактная платформа, используемая как макет. Nano подключается к компьютеру при помощи кабеля USB Mini-B;
Mega ADK — версия платы Mega 2560 с поддержкой интерфейса USB-host для связи с телефонами на Android и другими устройствами с интерфейсом USB;
Mega2560 — плата на базе микроконтроллера ATmega2560 с использованиемчипа ATMega8U2 для последовательного соединения по USB-порту;
Mega — версия серии Mega на базе микроконтроллера ATmega1280;
Arduino BT — платформа с модулем Bluetooth для беспроводной связи и программирования;
LilyPad — платформа, разработанная для переноски, может зашиваться в ткань;
Fio — платформа разработана для беспроводных применений. Fio содержит разъем для радио XBee, разъем для батареи LiPo и встроенную схему подзарядки;
Mini — самая маленькая платформа Arduino;
Pro — платформа, разработанная для опытных пользователей, может являться частью большего проекта;
Pro Mini — как и платформа. Pro, разработана для опытных пользователей, которым требуется низкая цена, меньшие размеры и дополнительная функциональность.
Язык Arduino можно разделить на три раздела:
Операторы
setup()
loop()
Управляющиеоператоры
if
if...else
for
switch case
while
do... while
break
continue
return
goto
Синтаксис
; (semicolon)
{} (curly braces)
// (single line comment)
/* */ (multi-line comment)
Арифметическиеоператоры
= (assignment)
+ (addition)
(subtraction)
(multiplication)
/ (division)
% (modulo)
Операторысравнения
== (equal to)
!= (not equal to)
(less than)
(greater than)
(less than or equal to)
= (greater than or equal to)
Логические операторы
&& (И)
|| (ИЛИ)
! (Отрицание)
Унарныеоператоры
++ (increment)
-- (decrement)
+= (compound addition)
-= (compound subtraction)
*= (compound multiplication)
/= (compound division)
Данные
Константы
HIGH | LOW
INPUT | OUTPUT
true | false
Целочисленные константы
Константы с плавающей запятой
Типыданных
boolean
char
byte
int
unsigned int
word
long
unsigned long
float
double
string - массив символов
String - объект класса
массив (array)
void
Преобразование типов данных
char()
byte()
int()
long()
float()
Область видимости переменных и квалификаторы
Область видимости
static
volatile
const
Функции
Цифровой ввод/вывод
pinMode()
digitalWrite()
digitalRead()
Аналоговый ввод/вывод
analogRead()
analogReference()
analogWrite()
Дополнительные фунции ввода/вывода
tone()
noTone()
shiftOut()
pulseIn()
Работа со временем
millis()
micros()
delay()
delayMicroseconds()
Математические функции
min()
max()
abs()
constrain()
map()
pow()
sq()
sqrt()
Тригонометрические функции
sin()
cos()
tan()
Генераторы случайных значений
randomSeed()
random()
Внешние прерывания
attachInterrupt()
detachInterrupt()
Функции передачи данных
Serial
Разработка устройства
3.1. Разработка программно-аппаратной части устройства
Для своего проекта я выбрал версию платформы Arduino UNO, т.к это самая популярная версия базовой платформы Arduino с USB-интерфейсом и возможностью подключения большого разнообразия плат расширения. Эта платформа предназначена для физических расчетов (physical computing) с открытым программным кодом, построенная на простой печатной плате с современной средой для разработки программного обеспечения.
Arduino использует микроконтроллер Atmega328, который имеет 32 Кб флеш памяти. Этого будет вполне достаточно для выполнения возложенной на платформу задачи.
Микроконтроллеры Arduino отличаются наличием предварительно прошитого в них загрузчика. С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов и соединяется с компьютером через USB-интерфейс.
Программная часть системы представлена в программном коде микроконтроллера (Arduino скетч) (см. Приложение).
3.2 Разработка структуры программно-аппаратного устройства
1.Датчик влажности почвы
2.RelayModule
3.Плата Arduino UNO
4. LM-393 Driver
5.Водяная помпа
Экспериментальная часть
Отладка стенда
1. Подключаем датчик влажности почвы к драйверу.
2. Драйвер подключаем к плате Arduino UNO.
3. Подключаем RelayModule к плате Arduino UNO.
4. Один провод от помпы отводим к RelayModule, а второй к вилке и соеденяем.
5.Оставшийся провод вилки подключаем к RelayModule.
5. Вывод
Используя систему автоматического полива, можно уезжать на долгое время и не беспокоиться о цветах. Также если масштабировать систему, то можно ее установить и в теплицы, и на огородные грядки. Изучив рынок я узнал существуют дешевые поливы не автоматизированные, а есть более дорогие автоматизированные. И я решил сделать автоматизированный полив по цене обычного полива. Помимо преимущества в виде цены у моего проекта будет датчик влажности почвы, что несомненно является большим плюсом.
Приложение
int AC WATER POMP = 13;
int sensor = 8;
int val;
void setup() {
pinMode(13, OUTPUT);
pinMode(8, INPUT);
}
void loop() {
val = digitalRead(8);
if (val==LOW)
{
digitaWrite(13, LOW);
}
else
{
digitaWrite(13, HIGH);
}
delay(400);
}
Список литературы
Изучаем Arduino. Джереми Блум
Проекты с использованием контроллера Arduino. Петин В.А.
Программируем Arduino. Саймон Монк
Arduino и Raspberry Pi в проектах Internet of Things. Виктор Петин