Система управления температурой в теплице

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 22 22 страницы
  • 5 + 5 источников
  • Добавлена 29.12.2023
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
Введение 4
Техническое задание 7
Объяснение необходимости каждого элемента в контексте проекта 8
Принципиальная схема устройства 10
Комплектующие 13
Альтернативные варианты 14
Алгоритм работы 16
Программа для микроконтроллера 18
Заключение 20
Список литературы 22
Фрагмент для ознакомления

LCD экран инициализируется с параметрами количества столбцов и строк, сервопривод подключается к соответствующему выводу микроконтроллера и устанавливается в начальное положение, обычно центральное.Считывание данных с датчика температуры:Система считывает аналоговое значение с датчика температуры, преобразованное в напряжение, и переводит его в температуру в градусах Цельсия. Это значение температуры представляет собой текущее состояние окружающей среды в теплице.Считывание данных с потенциометра:Аналогично считывается значение с потенциометра, которое пользователь установил в качестве желаемой температуры. Это значение используется как пороговая точка для активации системы охлаждения или обогрева.Вычисление разницы температур:Система вычисляет разницу между текущей температурой и желаемой температурой, заданной потенциометром.Преобразование разницы температур в угол сервопривода:Разница температур преобразуется в угол поворота сервопривода с использованием функции map(). Это позволяет пропорционально отрегулировать открытие вентиляционных окон или регулировочных заслонок.Ограничение диапазона работы сервопривода:Для защиты сервопривода и механизма, которым он управляет, угол ограничивается заданным диапазоном с помощью функции constrain().Активация сервопривода:На основе рассчитанного угла сервопривод активируется и перемещается в заданное положение, тем самым регулируя температуру путем изменения циркуляции воздуха в теплице.Отображение информации на LCD экране:Текущая и установленная температуры отображаются на LCD экране, предоставляя пользователю визуальную обратную связь о состоянии системы.Пауза (Delay):Введена задержка в системе перед следующим циклом считывания, что позволяет избежать чрезмерной нагрузки на компоненты и даёт временной промежуток для стабилизации температуры после изменения положения сервопривода.Программа для микроконтроллераКод представляет собой простую систему управления для теплицы, реализованную с использованием Arduino, которая регулирует температуру путем изменения положения сервопривода в зависимости от разницы между измереннойтемпературами, с возможностью наблюдения текущего состояния через LCD экран.// Подключаем библиотеки для управления сервоприводом и LCD экраном.#include#include// Создаем объект lcd_1 для управления LCD экраном. Параметр (0) указывает на адрес I2C экрана.Adafruit_LiquidCrystallcd_1(0);// Создаем объект myServo для управления сервоприводом.ServomyServo;// Функция setup() вызывается один раз при запуске программы или перезагрузке платы.voidsetup() {  // Инициализируем LCD экран с размерами 16 символов в ширину и 2 строки в высоту.  lcd_1.begin(16, 2);  // Подключаем сервопривод к цифровому выводу с номером 0.  myServo.attach(0);  // Устанавливаем начальное положение сервопривода на угол 90 градусов (обычно это центральное положение).  myServo.write(90);}// Функция loop() вызывается повторно после каждого выполнения.voidloop() {  // Читаем аналоговое значение с датчика температуры, подключенного к входу A0.  intsensorVal=analogRead(A0);  // Преобразуем аналоговое значение в напряжение.  floatvoltage= (sensorVal/1024.0) *5.0;  // Преобразуем напряжение в температуру в градусах Цельсия.  floattemperature= (voltage-0.5) *100;  // Читаем аналоговое значение с потенциометра, подключенного к входу A1.  intpotVal=analogRead(A1);  // Преобразуем аналоговое значение в желаемую температуру.  floatsetTemperature= (potVal/1024.0) *50.0;  // Вычисляем разницу между текущей и желаемой температурой.  floattempDifference=temperature-setTemperature;  // Преобразуем разницу температур в угол поворота для сервопривода.  intservoPosition=map(tempDifference, 50, 0, 90, 180);  // Ограничиваем угол поворота сервопривода диапазоном от 90 до 180 градусов.  servoPosition=constrain(servoPosition, 90, 180);  // Устанавливаем новое положение сервопривода.  myServo.write(servoPosition);  // Устанавливаем курсор на начало первой строки LCD экрана.  lcd_1.setCursor(0, 0);  // Выводим на экран текущую температуру.  lcd_1.print("Temp: ");  lcd_1.print(temperature);  lcd_1.print(" C     ");  // Устанавливаем курсор на начало второй строки LCD экрана.  lcd_1.setCursor(0, 1);  // Выводим на экран желаемую температуру.  lcd_1.print("Set: ");  lcd_1.print(setTemperature);  lcd_1.print(" C    ");  // Пауза в 1 секунду перед следующим циклом.  delay(1000);}ЗаключениеВ ходе данного проекта была разработана и реализована система управления температурой для теплицы на базе Arduino. Основной целью проекта было создание автоматизированного решения для поддержания оптимальной температуры внутри теплицы, что важно для обеспечения благоприятных условий для роста растений. Результаты работы системы показали, что с использованием датчика температуры, сервопривода, LCD экрана и потенциометра можно эффективно контролировать микроклимат в теплице.Система успешно выполнила основную функцию - поддержание заданного уровня температуры. Пользовательский интерфейс на LCD экране предоставлял актуальную информацию о текущей и заданной температуре, обеспечивая прозрачность процессов управления. Использование потенциометра позволило пользователю легко вносить корректировки в установки температуры, делая систему гибкой и адаптивной к потребностям. Сервопривод, управляемый микроконтроллером Arduino, обеспечивал точное регулирование степени открытия вентиляционных окон для поддержания оптимальной температуры.Однако существует потенциал для дальнейшего развития и модернизации системы. Возможные улучшения могут включать:Интеграция с беспроводными сетевыми технологиями: Включение модулей Wi-Fi или Bluetooth может обеспечить удаленный мониторинг и управление системой через мобильное приложение или веб-интерфейс.Расширение функционала датчиков: Добавление датчиков влажности, освещенности и CO2 может позволить системе регулировать не только температуру, но и другие важные параметры микроклимата теплицы.Автоматизация полива и питания растений: Интеграция системы полива и дозирования удобрений может повысить уровень автоматизации ухода за растениями.Оптимизация энергопотребления: Использование солнечных панелей для питания системы может сделать ее более экологичной и снизить эксплуатационные расходы.Расширенное логирование и аналитика: Введение системы логирования всех измерений и действий системы позволит провести более глубокий анализ работы системы и оптимизировать её параметры.Модульность и масштабируемость: Проектирование системы с возможностью легкой модификации и расширения функционала упростит внедрение новых технологий и компонентов в будущем.Список литературыБелов. Arduino. От азов программирования до создания практических устройств. 2018.Бокселл, Джон. Изучаем Arduino. 65 проектов своими руками. 2022.Нил, Кэмерон. Электронные проекты на основе ESP8266 и ESP32. 2022.Петин. Новые возможности Arduino, ESP, RaspberryPi в проектах loT. 2022.Alexgyver. DS18B20 и LCD — подключаем и программируем [Электронный ресурс]. URL: https://kit.alexgyver.ru/tutorials/ds18b20-lcd/ (дата обращения: 29.11.2023).

1. Белов. Arduino. От азов программирования до создания практических устройств. 2018.
2. Бокселл, Джон. Изучаем Arduino. 65 проектов своими руками. 2022.
3. Нил, Кэмерон. Электронные проекты на основе ESP8266 и ESP32. 2022.
4. Петин. Новые возможности Arduino, ESP, Raspberry Pi в проектах loT. 2022.
5. Alexgyver. DS18B20 и LCD — подключаем и программируем [Электронный ресурс]. URL: https://kit.alexgyver.ru/tutorials/ds18b20-lcd/ (дата обращения: 29.11.2023).