ДОСЛІДЖЕННЯ АРХІТЕКТУРИ ARDUINO UNО 3 ДЛЯ УПРАВЛІННЯ СИСТЕМОЮ РОЗУМНОГО ПОЛИВУ НА ОСНОВІ ДАТЧИКА ВОЛОГОСТІ ГРУНТУ WAVESHARE 9527

Інформація про навчальний заклад

ВУЗ:
Харківський національний університет радіоелектроніки
Інститут:
Не вказано
Факультет:
Комп'ютерна інженерія
Кафедра:
Не вказано

Інформація про роботу

Рік:
2021
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Embedded System

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО НАУКИ ТА ОСВІТИ УКРАЇНИ ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ Звіт з лабораторної роботи №4 по предмету «Програмування Embedded System» за темою:”ДОСЛІДЖЕННЯ АРХІТЕКТУРИ ARDUINO UNО 3 ДЛЯ УПРАВЛІННЯ СИСТЕМОЮ РОЗУМНОГО ПОЛИВУ НА ОСНОВІ ДАТЧИКА ВОЛОГОСТІ ГРУНТУ WAVESHARE 9527” Харків Мета роботи: Дослідження архітектури ARDUINO UNО 3. Створення проекту в середовищі моделювання AUTODESK TINKERCAD на основі MCU ATmega 328P, з метою управління системою розумного поливу на основі датчика вологості грунту WAVESHARE 9527. Хід роботи: Для виконання лабораторної роботи я використовувала: 1) ARDUINO UNО 3. 2) Датчик вологості грунту WAVESHARE 9527. Сенсор при роботі споживає струм близько 35 мА. Напруга живлення 3,3 -5 В. Сигнал, що повертається при живленні від 5 В: 0 - 4,2 В. Відобразивши ці значення на 10-бітний діапазон, можна скористатися наступними приближениями: - 0 - 300: сухий грунт; - 300 - 850: вологий грунт; - 850 - 1023: датчик в воді. 3)LCD WH1602 - дисплей на основі мікроконтролера - HD44780. Підключення LCD-дисплея відбувається наступним чином. - GND - земля (іноді пишуть Vss); - Vcc - напруга живлення +5 В (іноді пишуть Vdd); - Vo - напруга контрастності від 0В до + 5В, даний вихід треба підключити до потенціометра, для регулювання; - RS – вихід, за допомогою якого дисплей визначає, що в нього надходить: дані або команди; - RW - вихід за допомогою якого, дисплей визначає передавати або отримувати дані; - E - лінія синхронізації; - D0 - D7 – шина команд/даних - LED (+) - через резистор, що обмежує - 300Ом; - LED (-) - виходи для живлення підсвічування. Дисплей може працювати в 2-ох режимах: - режим № 1 - 8-и розрядний (тобто коли, для обміну інформацією використовуються контакти від D0 до D7), дані пересилаються за один такт; - режим № 2 - 4-х розрядний (для обміну використовуються тільки контакти D4 - D7), в цьому випадку дані пересилаються за 2 такту, спочатку старші 4 біти, потім молодші 4 біти. 4) Мультиметр - 2шт. 5) Потенціометр - 3шт. 6) Датчик рівня води глибиномір T1592. Характеристики: - робоча напруга: DC3-5V; - робочий струм: менш ніж 20 мА; - тип сенсора: аналоговий; - зона виявлення: 40 мм x 16 мм; - робоча температура: 10-30; - вологість: 10% -90% без конденсації; - розміри: 62 мм x 20 мм x 8 мм. Відобразивши ці значення у 5-вольтовому діапазоні, можна скористатися наступними приближениями: - 0 - 500mV: відсутність води в баку; - 500mV - 1V: мало води в баку; - 1V - 4,5V: досить води в баку; - 4,5V - 5V: верхня межа води в баку. 7) Резістори - 2 шт. В програмі Autodesk Tinkercad я створила проект з метою управління системою розумного поливу на основі датчика вологості грунту WAVESHARE 9527./ Глибокомір вимірює кількість води в баці та виводить на екран “Tank is empty” і потім “Tank filling”, коли бак стає порожнім/ Коли грунт сухий на екран виведено інформацію “Watering”/ Коли грунт вологий, то на екран виведено “watering rejected”/ Програма написана мовою C++, з використанням бібліотеки LiquidCrystal(). // подключаем библиотеку #include <LiquidCrystal.h> // инициализируем библиотеку с номерами LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() { // вводим LCD номера колонок и рядов: lcd.begin(16, 2); } void loop() { float voltage; // ставим курсор в колонку 0, линию 1 lcd.setCursor(0,0); //очищаем экран clearScreen(); //ставим курсор в столбик 4, рядок 0 lcd.setCursor(4,0); lcd.print("SPzm20-01"); lcd.setCursor(0,1); lcd.print("Pushkar O.O."); delay(1000); clearScreen(); while(true){ amountWater(); showWaterGrade(); showSoilMoisture(); watering(); delay(300); } } void clearScreen(){ lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" "); } void watering(){ if(getSoilMoisture() < 300.0){ clearScreen(); digitalWrite(8, 5); lcd.setCursor(0,1); lcd.print("watering"); for(int i = 0; i < 3; i++){ delay(500); lcd.print("."); } } else if(getSoilMoisture() > 300.0){ clearScreen(); digitalWrite(8, 5); lcd.setCursor(0,1); lcd.print("watering rejected"); for(int i = 0; i < 3; i++){ delay(500); lcd.print("."); } digitalWrite(8, 0); clearScreen(); } } void amountWater(){ float level = getWaterGrade(); if(level < 1.0){ clearScreen(); digitalWrite(8, 5); lcd.setCursor(0,1); lcd.print("Tank is empty"); delay(500); boolean motorIsWorking = true; while(level < 4.5){ lcd.setCursor(0,1); lcd.print("tank filling"); level = getWaterGrade(); delay(300); } motorIsWorking = false; digitalWrite(8, 0); clearScreen(); } } void showWaterGrade(){ float value = getWaterGrade(); lcd.setCursor(7,1); lcd.print(value); } void showSoilMoisture(){ lcd.setCursor(7,0); float moisture = getSoilMoisture(); lcd.print(moisture,1); } float getWaterGrade(){ float value = analogRead(0); value = value/200; return value; } float getSoilMoisture(){ float moisture = analogRead(1); return moisture; } Висновок Виконавши лабораторну роботу, я розглянула архітектуру ARDUINO UNО 3. І створила проект в середовищі моделювання AUTODESK TINKERCAD на основі MCU ATmega 328P, з метою управління системою розумного поливу на основі датчика вологості грунту WAVESHARE 9527.
Антиботан аватар за замовчуванням

15.04.2021 22:25

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!