РосГородник
ROB-53491
Рос-Городник - отечественный робот для ухода за огородом и комнатными теплицами.
Актуальность нашей задачи заключается, в том, что многие люди пренебрегают уходом за растениями, и, из-за этого многие растения погибают. Именно, из-за этого мы решили разработать нашего робота, который лишает человека, таких рутинных задач, в области ухода за растениями.
Новизна нашего проекта заключается, в том, что в нашей необъятной стране нет таких функциональных и дешёвых роботов-огородников, которые могут ухаживать за растениями.
Цель нашего проекта, создать робота-огородника, который сможет полностью ухаживать за растениями без участия человека.
Задача нашего проекта: создать систему авто полива, система обогрева и система контроля освещения.
Функции нашего робота включают: авто-полив реализованную с помощью помпы и датчика влажности, авто-обогрев реализованный с помощью датчика температуры воздуха и авто-освещение реализованное с помощью датчика реального времени и свет. ленты. Также в функции нашего робота входит запись логов о влажности почвы, о влажности и температуры воздуха и другие показатели с датчиков, которые могут помочь в приблизительной оценке состояния растения.
Структура нашего робота: микроконтроллер, который управляет всем «железом», реле(2х), от одного идёт светодиодная лента, а от другого, помпа (для полива растений) и также разветвитель (для распределения воды по всей территории почвы), а также датчик влажности почвы подключенный к плате управления и датчик влажности и температуры воздуха.
Детали корпуса – это короб с 4 отверстиями: 1-ое для перепрошивки микроконтроллера, 2-ое для вывода шланга с водой от помпы, 3-ие для вывода проводов от помпы и 4-ое для питания от 220В.
Из механизмов в нашем проекте используется водяная помпа с макс. скоростью 100л/мин и потреблением 180 мА и рабочим напряжением 12В.
Мы рассчитываем развернуть полномасштабное производство таких роботов и сформировать вокруг робота инфраструктурный комплекс, который позволит обслуживать не только небольшие огороды, но и крупные сельскохозяйственные угодья. Наш робот может научиться работать совместно с БПЛА или комбайнами для наиболее эффективного использования разных ресурсов, а главное - времени работников.
Доступная компонентная база и модульная структура робота позволит подстроить его под гибкий спектр задач, ухаживать за различными культурами и определять в будущем готовность урожая или пригодность участка для той или иной растительности.
#include "Peripheral_management.h" // импортируем класс для работы с устройсвами
#include <iarduino_RTC.h> // импортируем биб. для часов реального времени
#include <EEPROM.h> // импортируем биб. для работы с EEPROM памятью
iarduino_RTC time(RTC_DS1307); // указывааем модель часов
unsigned long timing; // создаем переменую timing для использования в таймере
int led = 4; // порт для реле к свет. ленте
int real_time; // переменая для хранения часа
int sensor = 0; // порт для подключения датчика влажности почвы
int sensor_avalue; // показатель датчика
PUMP pump(3, 0, 0, 300); // создания объекта класса pump и использованиия функции конструктора класса
void shine_on(){ // функция для включения реле для свет. ленте
digitalWrite(led, HIGH);
}
void shine_off(){ // функция для выключения реле для свет. ленте
digitalWrite(led, LOW);
}
int rtc(){ // функция для получения реального времени(часа)
real_time = time.gettime("H");
return real_time;
}
void setup(){
pinMode(led, OUTPUT); // иницилизируем порт, как выход
Serial.begin(9600); // включения и иницилизация serial port
time.begin(); // иницилизация функции часов реального времени
pump.set_Time(300); // установление времени полива
}
void set_data(int place, byte number){ // установление числа в ячейку
EEPROM.update(place, number);
}
int get_data(int place, byte number){ //чтение числа в ячейку
return EEPROM.read(place);
}
void loop(){
if (millis() - timing > 28800000){ // таймер на 8 часов
timing = millis();
sensor_avalue=analogRead(sensor); // чтение аналогового значения с датчика влажности почвы
Serial.print(sensor_avalue); // вывод показателей в консоль для отладки
if (sensor_avalue < 300){ // если значения датчика меньшя 300(сухая почва)
pump.sway(); // вызов функции sway из класса
}
if (rtc < 19 and rtc > 7){ // если время от 8 часов до 20, то
shine_on(); // вызов функции включения ленты
}else{
shine_off(); // вызов функции выключения ленты
}
}
}
#pragma once
#include <Wire.h>
#include <TimeLib.h>
//импорт всех библиотек
class PUMP { // создания класса
public:
PUMP(int nRelayDrive, int sensor, int sensor_avalue, int time_for_water){ // создания функции конструктура
nRelayDrive = nRelayDrive;
sensor = sensor;
sensor_avalue = sensor_avalue;
time_for_water = time_for_water;
pinMode(nRelayDrive, OUTPUT);
// определения переменых
}
void set_Time(int time_for_water){ // функция чтобы менять время полива во время программы
time_for_water = time_for_water;
}
void sway(){
sensor_avalue=analogRead(sensor);
Serial.print(sensor_avalue);
digitalWrite(nRelayDrive, HIGH); // включаем реле
delay(time_for_water);
digitalWrite(nRelayDrive, LOW);
//функция для включения реле для включения помпы
}
private:
int nRelayDrive = 3 ; // пин 3 у нас для управления реле
int sensor = 0;
int sensor_avalue;
int time_for_water;
};
Файлы
Добавлен 10.12.2024
Дополнительные файлы
Добавлен 10.12.2024
Добавлен 10.12.2024