Ім'я файлу: No2.docx
Розширення: docx
Розмір: 346кб.
Дата: 06.11.2022
скачати

«КИЇВСЬКИЙ ЕЛЕКТРОМЕХАНІЧНИЙ КОЛЕДЖ»

Відділення Автоматизованих систем управління

Лабораторна робота №2

З дисципліни «Архітектура комп’ютера»

Виконали:

студент групи 320КСМ-9

Бурчак Олексій

Перевірив:

Ївженко Ю.В.

Тема: 1 «Структурна схема міні-комп’ютера»

Комнатный климат-контроль

За якістю повітря в кімнаті потрібно постійно стежити. Температура, щільність та кількість вуглекислого газу в масовому порядку відчуваються на якості сну та працездатності людини. У наш час далеко не у всіх у будинках є кондиціонери та наворочені системи контролю температури та атмосфери. Це особливо актуально взимку (коли дме холодний та сухий) та влітку (коли дме теплий та вологий).

Що повинен робити комнатный климат-контроль

-Вимірювати температуру

-Вимірювати вологість

-Вміти аналізувати та виводити дані на екран

-Інформувати про вихід за межі встановлених значень температури та вологості



// бібліотека для роботи с датчиком DHT11

#include

// Підключаєм бібліотеку для роботи с дісплеєм

#include

// номер цифрового піна реле 1

#define RELAY_1_PIN A4

// номер цифрового піна реле 2

#define RELAY_2_PIN A2

// створюєм об'єкт класса DHT11 и передаєм номер піна к якому підключен датчик

DHT dht(4, DHT11);

QuadDisplay qd(9);

// зміна для збереження стана системи

// саме яку інформацію виводити на дисплей

// температуру або вологість

bool state = true;

// змінна для зберігання показника температури навколишнього середовища

float temperature = 0;

// змінна для зберігання показника вологості довкілля

float humidity = 0;

long currentMillis = 0;

void setup()

{

// відкриваємо послідовний порт для моніторингу дій у програмі

Serial.begin(9600);

qd.begin();

// початок роботи с датчиком DHT11

dht.begin();

// призначаємо 2 піна в режимі виходу

pinMode(RELAY_1_PIN, OUTPUT);

pinMode(RELAY_2_PIN, OUTPUT);

currentMillis = millis();

}

void loop()

{

// якщо пройшов заданий інтервал часу

// зчитуємо показання датчика

if (millis() - currentMillis > 3000) {

state = !state;

currentMillis = millis();

dht.read();

}

switch (dht.getState()) {

// все OK

case DHT_OK:

// зчитуємо показання температури та вологості з датчика

temperature = dht.getTemperatureC();

humidity = dht.getHumidity();

// виводимо показання температури чи вологості

// перемикати результати можна кнопкою

if (state) {

qd.displayTemperatureC(temperature);

} else {

qd.displayHumidity(humidity);

}

break;

// якщо помилка то виводим на дисплей «Err»

default:

qd.displayDigits(QD_NONE, QD_E, QD_r, QD_r);

break;

}

// якщо температура перевищила 35 градусів

if (temperature > 35) {

// вмикаєм реле 1

digitalWrite(RELAY_1_PIN, HIGH);

} else {

// інакше выключаем реле

digitalWrite(RELAY_1_PIN, LOW);

}

// якщо вологість стала менше 20%

if (humidity < 20) {

// вмикаєм реле 2

digitalWrite(RELAY_2_PIN, HIGH);

} else {

// інакше вимикаєм реле 2

digitalWrite(RELAY_2_PIN, LOW);

}

// чекаем 1 секунду

delay(1000);

}
скачати

© Усі права захищені
написати до нас