Умная теплица

VI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Умная теплица

Дмитриев И.А. 1
1МАОУ СОШ №63
Дмитриев А.Н. 1
1ООО "Айком"
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

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

Исходя из выше сказанного, я поставил цель – создать макет «умной теплицы».

В моей работе объектом исследования будет система мониторинга и автоматизации теплицы, а предмет исследования посаженные семена овса.

Задачи:

- изучить датчики для мониторинга параметров;

- изучить исполнительные механизмы;

- изучить платформу для автоматизации;

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

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

- написать программное обеспечение для дистанционного мониторинга основных параметров теплицы на мобильном приложении;

- провести сравнительный опыт выращивания семян овса в умной теплице и обычном парнике;

- сделать выводы;

Глава 1. Теоретическая часть. Платформа для создания проекта.

Изучая информацию в интернете, я понял, что в данный момент самая доступная и популярная платформа для разработки умных устройств и систем мониторинга является Arduino (рис 1).Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Данная платформа была создана изначально для студентов для быстрого создания небольших проектов во время обучения в университете. Arduino-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Arduino посредством установленных на них штыревых разъёмов.

Язык программирования Arduino является стандартным C++ с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.Программы, написанные программистом Arduino, называются скетчи.

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

Часто эту платформу используют в кружках робототехники как в России, так и повсеместно.

Датчики

Для платформы Arduinoразработано очень много различных датчиков. Я использовал в своем проекте датчики (рис. 2):

DHT22 -2 шт.

DS18B20 - 2 шт.

Фоторезистор 1шт.

FS-28 – 1 шт.

Датчик DHT22 является универсальным датчиком температуры и влажности с диапазоном измерения по температуре -40°С … +80°С, погрешность ±0.5°С, диапазон измерения влажности: 0 … 100%, погрешность ±2%, выходной сигнал: цифровой.

Датчик DS18B20 является влагозащищенным датчиком температуры с диапазоном измерений от –55°C до +125°C и точностью 0.5°C. Каждый DS18B20 имеет уникальный 64-битный последовательный код, который позволяет, общаться смножеством датчиков DS18B20 установленных на одной шине.

Фоторезистор измеряет уровень освещенности. Диапазон чувствительности: чувствительные элементы фиксируют длины волн в диапазоне от 400 нм (фиолетовый) до 600 нм (оранжевый).

Датчик влажности почвы FS-28 позволяет получить конкретный уровень влажности по шкале от 0 (очень влажно) до 1023 (сухо). Погружается полностью в почву.

Исполнительные устройства

Для платформы Arduinoразработано очень много различных исполнительных устройств. Я использовал в своем проекте следующие исполнительные устройства (рис. 3):

- реле 10A – 1 шт.;

- электромагнитный клапан для воды - 1 шт.;

Реле предназначено для замыкания или размыкания электрической цепи. Данным реле можно управлять нагрузкой до силы тока в 10 Ампер.

Электромагнитный клапан позволяет подавать и перекрывать подачу воды для полива в теплицу из емкости. Работает от напряжения 12 В.

Беспроводные интерфейсы

На платформе Arduinoесть несколько беспроводных интерфейсов в виде отдельных подключаемых плат. Основным и часто используемым является модуль Wi-Fi связи (рис. 4). Он представлен в виде небольшой платы и позволяет подключить Arduinoк домашней сети Wi-Fi или подключиться с телефона к Arduinoплате.

В своем проекте я использовал модель модуля ESP8266.

Программное обеспечение

Платформа Arduinoпрограммируется с помощью своей фирменной бесплатной среды разработки ArduinoIDE. Язык программирования не сложный, что позволяет быстро написать любой проект. Программы созданные в этой среде называют скейтчи. Я использовал последнюю версию программы 1.8.2 с официального сайта. Программа подключается и загружает скейтчи в Arduinoс помощью USB кабеля.

Глава 2. Экспериментальная часть.

Для достижения поставленной цели я изготовил макет теплицы (рис. 5) и разработал систему мониторинга основных показателей окружающей среды и автоматизировал полив.

2.1. Изготовление макета теплицы

Каркас теплицы мною был изготовлен (рис. 6) из алюминиевого уголка, скрепленного заклепками. Стены и крыша были сделаны из акрилового прозрачного пластика. В работе использовались:

- ножовка по металлу;

- напильник;

- заклёпочник;

Размер теплицы:

- длина 30 см;

- высота 27 см (с крышей);

- ширина 20 см.

2.2. Схема мониторинга и автоматизации.

Я разработал схему мониторинга и автоматизации на основе датчиков температуры и влажности (рис. 7). Мною был установлен датчик температуры и влажности за пределами теплицы для определения температуры окружающей среды, также я установил датчики внутри теплицы для определения значений температуры в почве и воздуха. В почве также был установлен датчик влажности. Я установил в теплице датчик освещенности, чтобы моя система могла определить пасмурно на улице или солнечно. Датчик температуры воды установлен в емкости для полива.

Все показания с датчиков через беспроводную сеть Wi-Fi передаются на мобильный телефон (рис. 8). Таким образом я могу оперативно контролировать какая среда у меня в теплице, чтобы принять решение о проветривании теплицы.

Программное обеспечение позволяетс телефона включить как вручную полив растений, так и автоматически при достижении низкого значения уровня влажности.

2.3. Программная часть

Программа (рис. 9) была написана в среде разработке ArduinoIDE. В программе подключены следующие библиотеки:

- DHT.h

- OneWire.h

- DallasTemperature.h

- RemoteXY.h

2.4. Эксперимент. Посадка овса.

Для проведения эксперимента я купил в магазине для садоводов семена овса.

Методика эксперимента:

Замочить семена

Высадить в грунт

Оценить всхожесть семян в разных условиях

Ход эксперимента.

3 апреля я замочил семена для последующей лучшей всхожести на сутки (рис. 10).

5 апреля, отобрав 14 семян, я высадил их в грунт: в теплицу 7 семян и 7 семян высадил в простой мини парник (рис. 11). В теплице был включен автополив на разработанной мною программе. Также при высоких температурах внутри теплицы я производил проветривание теплицы. В парнике полив осуществлялся вручную.

Результат эксперимента.

10 апреля я оценил всхожесть семян в двух средах. В теплице взошли 5 семян из 7. В парнике взошли всего 4 семени (рис 12). То есть всхожесть семян в теплице составила 71%, а в парнике 57%.

Выводы:

- всхожесть семян в «умной теплице» выше, чем в обычном парнике;

- трудозатраты в «умной теплице» ниже, чем ухаживать за семенами самостоятельно.

Заключение

В заключении хочу отметить, тема моей работы очень интересна, при ее исследовании я смог научиться:

- подключать датчики и исполнительные механизмы;

- программировать платформу Arduino;

- анализировать результаты работы программы;

- работать строительным инструментом и паяльником;

В работе я добился следующих результатов:

- система мониторинга и автоматизации теплицы позволит добиться лучших урожаев меньшими трудозатратами;

- «Умную теплицу» можно модернизировать и повышать функционал в дальнейшем.

Литература

http://arduino.cc

https://ru.wikipedia.org/wiki/Arduino

https://ru.wikipedia.org/wiki/ESP8266

http://amperka.ru

http://orehi-zerna.ru/oves-posadka-i-uhod/

Приложения

Рис. 1. Arduino mega 2560

D HT22 ДатчиквлажностипочвыDS18B20

Фоторезистор

Р ис. 2. Датчики

Реле

Электромагнитный кран

Рис.3. Исполнительные механизмы

Рис. 4. Интерфейс Wi-Fi

Рис. 5. Макет теплицы

Рис.6. Изготовление теплицы

Рис. 7. Схема «умной теплицы»

Рис. 8. Программанамобильномтелефоне

#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h>

#include <DHT.h>

#include <OneWire.h>

#include <DallasTemperature.h>

// настройкисоединения

#define REMOTEXY_SERIAL Serial1

#define REMOTEXY_SERIAL_SPEED 115200

#define REMOTEXY_WIFI_SSID "RemoteXY"

#define REMOTEXY_WIFI_PASSWORD "12345678"

#define REMOTEXY_SERVER_PORT 6377

#define StreetDHT 22

#define GHauseDHT 24

#define ONE_WIRE_BUS 26

floatGHauseDirt= 0;

floatDirtT= 0;

floatFotoGHause= 0;

int SENSE= 13; // аналоговыйсигналдатчикавлажностипочвы A13

int FOTO= 14; // аналоговый сигнал датчика освещенности A14

int SERV=9; //сервоприводна PWM13

intServoGHause=0;

floatWaterT=0;

// конфигурацияинтерфейса

#pragma pack(push, 1)

uint8_tRemoteXY_CONF[] =

{ 255,1,0,58,0,162,1,8,166,0,

130,1,6,39,52,23,47,130,1,6,

7,52,28,138,129,0,32,0,38,5,

36,208,163,208,156,208,157,208,144,208,

175,32,208,162,208,149,208,159,208,155,

208,152,208,166,208,144,0,67,4,7,

13,20,5,2,205,6,129,0,8,8,

17,4,134,208,162,32,209,131,208,187,

208,184,209,134,209,139,0,67,4,34,

13,20,5,2,205,6,129,0,34,8,

20,4,134,208,146,208,155,32,209,131,

208,187,208,184,209,134,209,139,0,67,

4,7,26,20,5,2,205,6,129,0,

6,20,21,4,134,208,162,32,209,130,

208,181,208,191,208,187,208,184,209,134,

209,139,0,67,4,34,26,20,5,2,

204,6,129,0,32,20,24,4,134,208,

146,208,155,32,209,130,208,181,208,191,

208,187,208,184,209,134,209,139,0,67,

4,7,50,20,7,135,26,6,129,0,

7,41,20,5,94,208,162,32,208,183,

208,181,208,188,208,187,208,184,0,129,

0,34,41,24,5,94,208,146,208,155,

32,208,183,208,181,208,188,208,187,208,

184,0,130,1,63,7,34,13,94,130,

1,63,22,34,13,205,129,0,68,22,

21,6,165,208,162,32,208,178,208,190,

208,180,209,139,0,67,0,72,28,20,

5,165,205,6,2,0,63,43,34,17,

194,183,31,31,208,178,208,186,208,187,

209,142,209,135,208,184,209,130,209,140,

0,208,178,209,139,208,186,208,187,209,

142,209,135,208,184,209,130,209,140,0,

129,0,70,36,18,6,36,208,159,208,

190,208,187,208,184,208,178,0,66,0,

48,48,7,13,2,26,67,1,63,11,

34,6,1,16,21,129,0,40,48,7,

3,134,208,161,209,131,209,133,208,190,

0,129,0,36,58,12,3,134,208,146,

208,187,208,176,208,182,208,189,208,190,

0,129,0,71,7,19,4,1,208,189,

208,176,32,209,131,208,187,208,184,209,

134,208,181,58,0 };

// структура определяет все переменные вашего интерфейса управления

struct {

// inputvariable

uint8_t AutoRain; // =1 если переключатель включен и =0 если отключен

// outputvariable

charStreetT[6]; // =строка UTF8 оканчивающаяся нулем

charStreetH[6]; // =строка UTF8 оканчивающаяся нулем

charGHauseT[6]; // =строка UTF8 оканчивающаяся нулем

charGHauseH[6]; // =строка UTF8 оканчивающаяся нулем

charDirtT[6]; // =строка UTF8 оканчивающаяся нулем

charWaterT[6]; // =строка UTF8 оканчивающаяся нулем

int8_t level_1; // =0..100 положение уровня

charFotoGHause[21]; // =строка UTF8 оканчивающаяся нулем

// other variable

uint8_t connect_flag; // =1 if wire connected, else =0

} RemoteXY;

#pragma pack(pop)

#define PIN_AUTORAIN 3

DHT dht22(StreetDHT, DHT22);

DHT dht11(GHauseDHT, DHT22);

OneWireoneWire(ONE_WIRE_BUS);

DallasTemperaturesensors(&oneWire);

DeviceAddress insideThermometer0;

DeviceAddress insideThermometer1;

void setup()

{

RemoteXY_Init ();

Serial.begin(9600);

dht22.begin();

dht11.begin();

pinMode (PIN_AUTORAIN, OUTPUT);

if (!sensors.getAddress(insideThermometer0, 0)) Serial.println("Ненайденадресдатчика 0");

Serial.print("Адресдатчика 0: ");

Serial.println();

sensors.setResolution(insideThermometer0, 9);

if (!sensors.getAddress(insideThermometer1, 1)) Serial.println("Ненайденадресдатчика 1");

Serial.print("Адресдатчика 1: ");

Serial.println();

sensors.setResolution(insideThermometer1, 9);

}

floatprintTemperature(DeviceAddressdeviceAddress)

{

floattempC = sensors.getTempC(deviceAddress);

returntempC;

}

void loop()

{

RemoteXY_Handler ();

digitalWrite(PIN_AUTORAIN, (RemoteXY.AutoRain==0)?LOW:HIGH);

floatStreetH = dht22.readHumidity();

floatStreetT = dht22.readTemperature(); //Измеряемтемпературунаулице

sensors.requestTemperatures();

DirtT= printTemperature(insideThermometer0);

WaterT= printTemperature(insideThermometer1);

GHauseDirt= analogRead(SENSE);

RemoteXY.level_1 = (int)(GHauseDirt / 10.24);

////фоторезистор

FotoGHause= analogRead(FOTO);

if ((FotoGHause>0) and (FotoGHause<100)) {

strcpy (RemoteXY.FotoGHause,"НОЧЬ");

}

else if ((FotoGHause>101) and (FotoGHause<500))

{strcpy (RemoteXY.FotoGHause,"ПАСМУРНО"); }

else

{strcpy (RemoteXY.FotoGHause,"СОЛНЕЧНО");

}

dtostrf(StreetH, 0, 2, RemoteXY.StreetH);

dtostrf(StreetT, 0, 2, RemoteXY.StreetT);

floatGHauseH = dht11.readHumidity();

floatGHauseT = dht11.readTemperature(); //Измеряемтемпературувтеплице

dtostrf(GHauseT, 0, 2, RemoteXY.GHauseT);

dtostrf(GHauseH, 0, 2, RemoteXY.GHauseH);

dtostrf(DirtT, 0, 1, RemoteXY.DirtT);

dtostrf(WaterT, 0, 1, RemoteXY.WaterT);

}

Рис. 9. Листинг программы

Рис. 10. Замачивание семян

Рис. 11. Высадка семян

Рис. 12. Всходы семян

Просмотров работы: 327