Умный дом
Описание работы
Умный дом — это система, которая использует технологии для автоматизации и управления различными аспектами домашнего хозяйства, такими как освещение, отопление, безопасность, и другие.
Применение в жизни:
Может использоваться в следующих примерах:
- Светильники автоматически включаются, когда кто-то входит в комнату, и выключаются, когда комната пуста.
- Настройка освещения на определенный уровень яркости в зависимости от времени суток или настроения, например, приглушенный свет вечером для расслабления.
- Комфорт и удобство: Возможность управления домом с любого места и в любое время.
- Умные замки, камеры видеонаблюдения, датчики движения и системы сигнализации, которые могут уведомлять владельцев о подозрительной активности.
Список компонентов
- Плата “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*

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


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