«КИЇВСЬКИЙ ЕЛЕКТРОМЕХАНІЧНИЙ КОЛЕДЖ» Відділення Автоматизованих систем управління Лабораторна робота №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); } |