Skip to content
Avaleht » Ülesanne «Nutikas kodu karbis». Töö paarides

Ülesanne “Nutikas kodu karbis”. Töö paarides

Умный дом

Описание работы

Умный дом — это система, которая использует технологии для автоматизации и управления различными аспектами домашнего хозяйства, такими как освещение, отопление, безопасность, и другие.

Применение в жизни:

Может использоваться в следующих примерах:

  • Светильники автоматически включаются, когда кто-то входит в комнату, и выключаются, когда комната пуста.
  • Настройка освещения на определенный уровень яркости в зависимости от времени суток или настроения, например, приглушенный свет вечером для расслабления.
  • Комфорт и удобство: Возможность управления домом с любого места и в любое время.
  • Умные замки, камеры видеонаблюдения, датчики движения и системы сигнализации, которые могут уведомлять владельцев о подозрительной активности.
Список компонентов
  • Плата “Arduino UNO”
  • Макет
  • 1 LED
  • 1 Servo
  • 1 Ultrasonic Distance Sensor
  • 3 резистора
  • 1 LCD экран
  • 1 Buzzer
  • 1 Температурный датчик
  • 1 Фоторезистор
  • Много проводов

*Код*

#include <Servo.h> // библиотека серво двигателя
#include <LiquidCrystal.h> // библиотека LCD экрана

const int rs = 12, e = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; 
LiquidCrystal lcd(rs, e, d4, d5, d6, d7);

#define trigger_sensor_pin 9 
#define echo_sensor_pin 8 

#define servo_pin 7

const int LED_PIN = 10; // Пин для обычного светодиода
const int buzzerPin = 13;
int sensorPin1 = A0; // Пин для температурного датчика
int sensorPin2 = A1; // Пин для фоторезистора

Servo servo;

int duration, distance;

void setup()
{
  pinMode(LED_PIN, OUTPUT); // Настройка пина для обычного светодиода
  pinMode(buzzerPin, OUTPUT); // Настройка пина для зуммера
  pinMode(trigger_sensor_pin, OUTPUT); 
  pinMode(echo_sensor_pin, INPUT);
  servo.attach(servo_pin);
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void ring_doorbell()
{
  for (int i = 0; i < 3; i++) { 
    digitalWrite(buzzerPin, HIGH);
    delay(100);
    digitalWrite(buzzerPin, LOW);
    delay(100);
  }
}

float readTemperature()
{
  int sensorVal = analogRead(sensorPin1); 
  float voltage = sensorVal * (5.0 / 1023.0); 
  float temperatureC = (voltage - 0.5) * 100; 
  return temperatureC;
}

int readLightLevel()
{
  int lightLevel = analogRead(sensorPin2);
  return lightLevel;
}

void loop()
{
  delay(100);

  // Ультразвуковой датчик
  digitalWrite(trigger_sensor_pin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigger_sensor_pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_sensor_pin, LOW);

  duration = pulseIn(echo_sensor_pin, HIGH);
  distance = duration / 58;

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  if (distance > 34 && distance < 100)
  {
    servo.write(0); 
    ring_doorbell(); // Дверной звонок
    delay(1500);
  }
  else
  {
    servo.write(90); 
  }

  // Чтение температуры
  float temperature = readTemperature();
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" C");

  lcd.clear();
  lcd.setCursor(0, 0);

  if (temperature > 30)
  {
    lcd.print("Very hot! ");
    lcd.print(temperature);
    lcd.print(" C");
  }
  else if (temperature < 10)
  {
    lcd.print("Very cold! ");
    lcd.print(temperature);
    lcd.print(" C");
  }
  else
  {
    lcd.print("Temp: ");
    lcd.print(temperature);
    lcd.print(" C");
  }

  // Чтение уровня освещенности
  int lightLevel = readLightLevel();
  Serial.print("Light level: ");
  Serial.println(lightLevel);

  
  if (lightLevel < 500) { // Условие для низкой освещенности
    digitalWrite(LED_PIN, LOW); // Включить светодиод при низкой освещенности
    
  } else {
    digitalWrite(LED_PIN, HIGH); // Выключить светодиод при высокой освещенности
    
  }

  delay(1000);
}

*Конструкция в Tinkercad*

Отчеты

*Конструкция в реальности*

Видео

В видео показано пример работы “умного дома”. На видео можно увидеть триггеры на движения, отчего дом начинает издавать звуки и закрывать за собой дверь. Еще он умеет показывать нынешнюю температуру и при низком освещении начинает гореть светодиод.