kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Исследовательский проект "Умный дом"

Нажмите, чтобы узнать подробности

В работе описан процесс разработки и изготовления учебного макета "Умный дом". Предназначенного для изучения системы "умный дом ".

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Исследовательский проект "Умный дом"»

ОБЛАСТНОЙ КОНКУРС-ВЫСТАВКА

ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА

«ЮНЫЕ ТЕХНИКИ ДОНА – ИННОВАЦИОННОЙ РОССИИ»




НОМИНАЦИЯ

«Жилищно-коммунальное хозяйство»




НАЗВАНИЕ РАБОТЫ

Макет «Умный дом»





Выполнил:


Воронин Владислав Алексеевич


Муниципальное бюджетное учреждение дополнительного образования

«Станция юных техников» города Каменск-Шахтинский,

объединение «Мастерская талантов»

учащийся МБОУ СОШ №10, 11 класс


Руководитель: педагог дополнительного образования

Кабаргина Анна Алексеевна




Каменск-Шахтинский

2021 год

Содержание


  1. Введение 3

  2. Исследование 4

  3. Практическая часть 8

  4. Заключение 14

  5. Список источников 15

  6. Приложение 16



Введение


«Не за горами день, когда окружающие нас вещи

научатся думать и станут много более полезны обществу»

Н. Винер


Человек всегда стремился сделать свой дом комфортным, удобным и безопасным. С появлением в нашей жизни большого количества современного оборудования настала необходимость управлять им оптимально и эффективно. Для этих целей было придумано много разных инструментов, помогающих усовершенствовать наше жилье. Все они могут быть объединены одним понятием «Умный дом».

Концепция системы «Умный дом» заключается в том, чтобы люди наслаждались жизнью. Вы можете дистанционно управлять своими интеллектуальными системами через ваш телефон или компьютер, когда вы находитесь вне дома, например, включение кондиционера и водонагревателя по дороге домой; электронный дверной замок и светодиодный светильник автоматически будут работать, когда вы вернетесь домой. Кроме того, интеллектуальная система освещения может использоваться для выбора заданных сцен освещения для создания комфортной и тихой атмосферы, которая способствует полностью расслаблению вашего мозга. Вам просто нужен пульт дистанционного управления, чтобы завершить весь процесс. Умная система также поможет экономить электричество. По словам Билла Гейтса, в будущем дома без систем умного дома будут такими же немодными, как дома без доступа к Интернету сегодня.

В чем актуальность «умного дома»? Достаточно взглянуть на преимущества:

  • автоматизация большинства процессов;

  • контроль над состоянием электроприборов, освещения, системы водоснабжения;

  • предотвращение несанкционированного проникновения;

  • снижение суммы коммунальных услуг за счет экономии электроэнергии.

Из недостатков системы «умный дом» специалисты отмечают разве что дороговизну. Но если сравнить плюсы и минусы, становится ясно, что «умный дом» дает: экономию, комфорт и безопасность.

Главной идеей проекта стало создание интерактивной модели дома на базе платы Arduino, которая будет реагировать с помощью датчиков на разные внешние факторы.

Целью проекта является разработка и изготовление макета, демонстрирующего возможности системы «Умный дом».

Задачи проекта:

  • Рассмотреть возможности системы «Умный дом».

  • Определить основные компоненты системы.

  • Определить конструктивные особенности макета.

  • Разработать программу, моделирующую работу системы «Умный дом».

  • Изготовить макет.

  • Проанализировать результаты и продумать дальнейшее развитие проекта.




Исследование


Умный дом как домашняя автоматизация

Умный дом (smart home) в этом значении – система домашних устройств, способных выполнять действия и решать определенные задачи без участия человека. Наиболее распространенные примеры таких действий - автоматическое включение и выключение света, автоматическая коррекция работы отопительной системы или кондиционера и автоматическое уведомление о вторжении, возгорании или протечке воды.

Домашняя автоматизация в современных условиях – чрезвычайно гибкая система, которую пользователь конструирует и настраивает самостоятельно в зависимости от собственных потребностей. Это предполагает, что каждый владелец умного дома самостоятельно определяет, какие устройства и где установить и какие задачи и как они будут исполнять. [2]


Конструкция системы «Умный дом»

Система умного дома включает три типа устройств:

Контроллер (хаб) - управляющее устройство, соединяющее все элементы системы друг с другом и связывающее ее с внешним миром

Датчики (сенсоры) - устройства, получающие информацию о внешних условиях

Актуаторы – исполнительные устройства, непосредственно исполняющие команды. Это самая многочисленная группа, в которую входят умные (автоматические) выключатели, умные (автоматические) розетки, умные (автоматические) клапаны для труб, сирены, климат - контроллеры и так далее (см. Рисунок 1).

В большинстве современных умных домов контроллер общается с остальными устройствами системы через радиосигналы. Самые распространенные стандарты - Z-Wave, ZigBee и Wi-Fi, в США популярен также Thread.

Рисунок 1. Конструкция системы «Умный дом»


Под термином «умный дом» обычно понимают интеграцию следующих систем в единую систему управления зданием:

  • Система безопасности и мониторинга;

  • Система освещения;

  • Система отопления, вентиляции и кондиционирования;

  • Системы управления и связи;

  • Система электропитания здания.

Системы безопасности и мониторинга

  • Датчики движения, датчики присутствия, датчики вибрации, датчики разбития стекла, датчики открытия окна или двери;

  • Видеонаблюдение;

  • Видеодомофоны и видеоглазки;

  • Электронные замки (умные замки, смартлоки) и модули управления воротами;

  • Сирены.

Эти устройства позволяют сконструировать подходящую систему безопасности от сравнительно простой до достаточно сложной.

Среди основных алгоритмов:

  • регистрация нежелательного проникновения;

  • уведомление владельцев;

  • включение сирены;

  • запуск видеосъемки;

  • запирание входных или межкомнатных дверей (см. Рисунок 2).

Рисунок 2. Системы безопасности


Вдобавок, системы безопасности умного дома интегрируются с охранными системами, по тревоге высылающими группы реагирования. В большинстве стран рынок охранных систем существует достаточно давно, в то время как системы умного дома стали широко распространяться лишь в 2010-х годах. Отдельные поставщики охранных услуг позволяют интегрировать свою сигнализацию с умными устройствами, которые устанавливает сам пользователь, либо соглашаются высылать группы реагирования по сигналам тревоги с таких устройств. [7]

В систему безопасности и мониторинга входят следующие подсистемы:

  • система видеонаблюдения;

  • система контроля доступа в помещения;

  • охранно-пожарная сигнализация (в том числе контроль утечек газа);

  • телеметрия - удалённое слежение за системами;

  • система защиты от протечек – автоматическая блокировка водоснабжения при протечке и заливе помещения;

  • GSM-мониторинг – удалённое информирование об инцидентах в доме (квартире, офисе, объекте) и управление системами дома через телефон. В некоторых системах при этом можно получать голосовые инструкции по планируемым управляющим воздействиям, а также голосовые отчёты по результатам выполнения действий;

  • IP-мониторинг объекта;

  • Имитация присутствия. [6]


Управление освещением

  • Умные выключатели и диммеры;

  • Модули управления шторами, жалюзи и рольставнями;

  • RGB- и RGBW-контроллеры для управления светодиодными светильниками, прежде всего светодиодными лентами;

  • Датчики движения и присутствия;

  • Датчики освещенности;

Такие устройства позволяют автоматизировать управление светом и чаще всего используются, чтобы:

  • автоматически включать свет, когда люди входят в помещение, и выключать, когда выходят;

  • автоматически поддерживать освещенность на постоянном уровне, регулируя яркость светильников и положение жалюзи или штор;

  • автоматически регулировать освещенность в зависимости от сезона и времени суток или по другим заранее заданным правилам.

Система освещения контролирует уровень освещенности в помещении, в том числе для экономии электроэнергии за счет рационального использования естественного освещения. Некоторые подсистемы:

  • автоматика для включения/выключения света в заданное время суток;

  • датчики движения для включения света только тогда, когда в помещении кто - то находится;

  • автоматика для открытия/закрытия ставней, жалюзи, для регулировки прозрачности специальных оконных стекол. [6]



Управление климатом

  • датчики влажности;

  • датчики температуры;

  • термостаты для поддержания постоянной температуры или ее автоматического регулирования;

  • терморегуляторы для управления мощностью батарей отопления;

  • климат-контроллеры, передающие команды умного дома на технику предыдущих поколений, которая управляется обычными дистанционными пультами, прежде всего на кондиционеры;

  • гигростаты для поддержания постоянной влажности или ее регулирования;

Основная задача устройств умного дома в этом случае:

  • автоматически регулировать работу климатических систем так, чтобы одновременно обеспечить комфортный микроклимат и сократить расходы на его поддержание;

  • автоматически поддерживать комфортную температуру в помещениях, где находятся люди;

  • автоматически снижать мощность батарей и кондиционеров в отсутствие людей и ночью;

  • автоматически поддерживать влажность, комфортную для людей и щадящую для помещения и предметов обстановки;

  • автоматически вентилировать помещения и очищать воздух, поддерживая комфортное качество воздуха.

Система отопления, вентиляции и кондиционирования обеспечивает регуляцию температуры, влажности и поступление свежего воздуха. Кроме этого, экономит энергию за счет рационального использования температуры среды. Некоторые подсистемы:

  • управляемый через сеть кондиционеров;

  • механизмы автоматического открытия/закрытия окон для поступления холодного или теплого воздуха в подходящее время суток. [6]


Система управления

  • управление с одного места аудио-, видеотехникой, домашним кинотеатром, мультирум;

  • удалённое управление электроприборами, приводами механизмов и всеми системами автоматизации. Электронные бытовые приборы в умном доме могут быть объединены в домашнюю сеть с возможностью выхода в сети общего пользования;

  • механизация здания (открытие/закрытие ворот, шлагбаумов, электроподогрев ступеней и т.п.).[6]

Рисунок 6. Система управления


Система электропитания

Системы электропитания обеспечивают бесперебойное питание, в том числе за счет автоматического переключения на альтернативные источники электропитания. Некоторые подсистемы:

  • автоматический ввод резерва;

  • промышленные ИБП;

  • дизель - генераторы. [6]




Практическая часть


Главной идеей создания макета стала разработка наглядного пособия для демонстрации основных систем «умного дома», для наблюдения за работой датчиков и модулей, возможность создания различных сценариев работы системы.


Изготовление макета «Умный дом»

Создание макета – это изготовление предварительной модели чего-либо, которая позволит представить каким будет будущее изделие. Таким образом, макет – это уменьшенная трехмерная копия предмета в миниатюре, смотря на которую человек может составить себе полное представление о внешнем виде реального объекта или предмета, оценить все его достоинства в целом.

Использование макета в качестве экспоната на выставке – лучшее средство представления проекта. Ведь ни один буклет, каталог или иная полиграфическая продукция не сравнится с отлично выполненным макетом. Одна из наиболее распространенных областей их применения – презентации, где макет помогает сэкономить время и силы.

Последовательность выполнения макета:

  1. Определение конструктивных особенностей макета.

  2. Определение материалов и инструментов.

  3. Разбивка макета на простые в изготовлении составные элементы.

  4. Изготовление конструкционных элементов.

  5. Разработка и написание программного обеспечения.

  6. Сборка и отделка макета.


Основные этапы изготовления макета

I этап. Определение конструктивных особенностей макета.

Основание макета прямоугольной формы размером 450мм на 700мм. Модель жилого дома и бассейна использовали готовую из детского деревянного конструктора, гараж был изготовлен из фанеры толщиной 4 мм. На макете расположена демонстрационная панель для наблюдения за работой датчиков и модулей.

II этап. Подбор материалов и инструментов.

Основание макета: фанера и деревянные рейки. Основание оклеено самоклеящейся пленкой. Макет дома, гараж, бассейн окрашены акриловыми красками.

III этап. Изготовление всех составных элементов макета.

Основные компоненты макета

Наименование

Изображение

1

Макет дома

2

Макет гаража

3

Плата управления Arduino UNO

4

Плата расширения для Arduino UNO

5

Модуль Bluetooth HM-10

6

ЖК-дисплей 1602

7

Кнопки

8

Датчик освещенности (фоторезистор)

9

Датчик движения PIR

10

Датчик пара

11

Аналоговый датчик газа

12

Датчик влажности

13

Пассивный зуммер

14

Модуль вентилятора

15

1-канальный релейный модуль

16

Светодиоды

17

Серводвигатели

18

USB кабель

19

Индикатор напряжения

20

Солнечная батарея

22

Инфракрасный модуль дистанционного управления

26

Батарейный блок

27

Провода



Управление всеми системами проекта «Умный дом» осуществляется с помощью программного обеспечения Arduino. Ардуино – это платформа, которая состоит из двух основных частей: самой платы (часто называемой микроконтроллер) и программного обеспечения (специальной оболочки для программирования платы) или IDE (Integrated Development Environment). [1]


Плата Arduino

На плате есть пара десятков контактов, к которым можно подключать всевозможные компоненты: лампочки, датчики, моторы, чайники, роутеры, магнитные дверные замки и вообще всё, что работает от электричества.

В процессор Arduino можно загрузить программу, которая будет управлять всеми этими устройствами по заданному алгоритму. Таким образом, можно создать бесконечное количество уникальных классных гаджетов, сделанных своими руками и по собственной задумке. Arduino относится к одноплатным компьютерам. [3]


Язык программирования

Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы. [4]

Программы, написанные программистом Arduino, называются наброски или скетчи и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.


Датчики и сенсоры

К Arduino можно подключить всевозможные сенсоры. В русском языке существуют слова «датчик» и «сенсор», это синонимы и означают по сути одно и то же. Это отдельное устройство, которое способно измерять определённую физическую величину или реагировать на физическое явление и поставлять информацию об этом в виде электрического сигнала. [5]


В макете используется платформа прототипирования ArduinoUNO, которая выполняет функции центрального контроллера, управляющего всеми системами дома. Также макет умного дома оснащен различными системами, которые контролируют функции умного дома.

Каждый сенсор, датчик, светодиод, любое подключенное устройство к плате, должно быть подключено к GND (заземлению), без этого, устройство работать не будет. [5] Так же все сенсоры (или какие-нибудь другие внешние устройства, например, вентилятор) должны быть подключены к питанию – 5Vили 3V. Но есть более простые устройства, такие как светодиод или пищалка (buzzer), которые не нужно подключать к питанию, так как им хватает энергии получаемой от пина (вход/выход) к которому он подключен. В ходе проекта показано, как подключаются сенсоры, датчики, светодиоды и т.п.


Схема подключения:



Заключительным этап работы. Сборка макета.

Изготовление деталировки и озеленения. Сборка электроники. Отладка программного обеспечения.

Макет оснащен следующими элементами автоматики:

  • кодовый электронный дверной замок

  • датчик освещенности, который включает свет на крыльце дома при наступлении темного времени суток;

  • датчик движения, который сообщит о нахождении постороннего на территории;

  • датчик пара, который управляет вытяжным вентилятором в ванной комнате;

  • датчик газа используется для сигнализации утечки газа на кухне.

  • датчик влажности, который контролирует подачу воды в бассейне или выключает подачу воды если в ванной комнате или на кухне происходит разлив;

  • дистанционное управление воротами гаража;

Макет “умного дома” функционирует в соответствии с определенным сценарием, программа (Приложение 1) позволяет управлять всеми системами дома автоматически, а также с помощью мобильного приложения «IoT keyes». Данное приложение необходимо загрузить в смартфон через Google play

В приложении 16 кнопок управления. При программировании мы устанавливаем соответствующую функцию каждого датчика или модуля в соответствии с соответствующим управляющим символом клавиши.

После установки и открытия приложения появится интерфейс, как показано ниже:


Кнопка

Функция

Включает и выключает белый светодиод

Включает и выключает музыку

Включает и выключает датчик фотоэлемента

Включает и выключает датчик влажности

Включает и выключает релейный модуль

Включает и выключает музыку

Включает и выключает датчик газа

Включает и выключает датчик пара

Открывает и закрывает дверь. Ползунок управляет поворотом сервопривода для управления дверью.

Открывает и закрывает окно. Ползунок управляет поворотом сервопривода для управления окном.

Включает и выключает желтый светодиод. Ползунок управляет яркостью светодиода.

Включает и выключает вентилятор. Ползунок управляет скоростью вращения вентилятора.


Заключение


Данный проект был разработан для демонстрации системы «Умный дом». Макет позволяет формировать и создавать образа будущего, в котором нам предстоит жить. В связи с персонализацией всех технологий, особенно важными становятся системы, непосредственно связанные с ежедневной жизнью человека. Благодаря тому, что макет построен на базе современных электронных модулей и задействует современные технологии, такие как: беспроводная передача данных, альтернативные источники энергии, системы безопасности жилища, полученные знания и навыки могут быть использованы в качестве хорошей базы для дальнейшего развития инженерных компетенций, которые могут быть использованы в профессиональном будущем.


Назначение макета «Умный дом»

  • исследовательская деятельность – изучение системы «Умный дом»;

  • практическая деятельность – проектирование, моделирование, программирование;

  • обучение – приобретение прикладных инженерных знаний и навыков в области электроники и программирования встраиваемых систем.




Список источников


  1. Arduino https://ru.wikipedia.org/wiki/Arduino

  2. https://ru.wikipedia.org/wiki/Домашняя_автоматизация

  3. База знаний Амперки http://wiki.amperka.ru

  4. Официальный сайт компании Arduino http://arduino.ru

  5. Петин В.А. Arduino и RaspЬerтy Pi в проектах Intemet ofТhings. - СПб.: БХВ-Петербурr, 2016

  6. Умный дом https://studwood.ru/1626382/nedvizhimost/vvedenie

  7. Умный дом https://web.informatics.ru/works/16-17/2/online/Tayurskiy_Dmitriy_Maksimovich/Tec/index.html





Приложение

Программный код системы «Умный дом»

//call the relevant library file

#include

#include

#include

//Set the communication address of I2C to 0x27, display 16 characters every line, two lines in total

LiquidCrystal_I2C mylcd(0x27, 16, 2);


//set ports of two servos to digital 9 and 10

Servo servo_10;

Servo servo_9;


volatile int btn1_num;//set variable btn1_num

volatile int btn2_num;//set variable btn2_num

volatile int button1;//set variable button1

volatile int button2;//set variable button2

String fans_char;//string type variable fans_char

volatile int fans_val;//set variable fans_char

volatile int flag;//set variable flag

volatile int flag2;//set variable flag2

volatile int flag3;//set variable flag3

volatile int gas;//set variable gas

volatile int infrar;//set variable infrar

String led2;//string type variable led2

volatile int light;//set variable light

String pass;//string type variable pass

String passwd;//string type variable passwd


String servo1;//string type variable servo1

volatile int servo1_angle;//set variable light

String servo2;//string type variable servo2

volatile int servo2_angle;//set variable servo2_angle


volatile int soil;//set variable soil

volatile int val;//set variable val

volatile int value_led2;//set variable value_led2

volatile int water;//set variable water


int length;

int tonepin = 3; //set the signal end of passive buzzer to digital 3

//define name of every sound frequency

#define D0 -1

#define D1 262

#define D2 293

#define D3 329

#define D4 349

#define D5 392

#define D6 440

#define D7 494

#define M1 523

#define M2 586

#define M3 658

#define M4 697

#define M5 783

#define M6 879

#define M7 987

#define H1 1045

#define H2 1171

#define H3 1316

#define H4 1393

#define H5 1563

#define H6 1755

#define H7 1971


#define WHOLE 1

#define HALF 0.5

#define QUARTER 0.25

#define EIGHTH 0.25

#define SIXTEENTH 0.625


//set sound play frequency

int tune[] =

{

M3, M3, M4, M5,

M5, M4, M3, M2,

M1, M1, M2, M3,

M3, M2, M2,

M3, M3, M4, M5,

M5, M4, M3, M2,

M1, M1, M2, M3,

M2, M1, M1,

M2, M2, M3, M1,

M2, M3, M4, M3, M1,

M2, M3, M4, M3, M2,

M1, M2, D5, D0,

M3, M3, M4, M5,

M5, M4, M3, M4, M2,

M1, M1, M2, M3,

M2, M1, M1

};


//set music beat

float durt[] =

{

1, 1, 1, 1,

1, 1, 1, 1,

1, 1, 1, 1,

1 + 0.5, 0.5, 1 + 1,

1, 1, 1, 1,

1, 1, 1, 1,

1, 1, 1, 1,

1 + 0.5, 0.5, 1 + 1,

1, 1, 1, 1,

1, 0.5, 0.5, 1, 1,

1, 0.5, 0.5, 1, 1,

1, 1, 1, 1,

1, 1, 1, 1,

1, 1, 1, 0.5, 0.5,

1, 1, 1, 1,

1 + 0.5, 0.5, 1 + 1,

};



void setup() {

Serial.begin(9600);//set baud rate to 9600

mylcd.init();

mylcd.backlight();//initialize LCD

//LCD shows "passcord:" at first row and column

mylcd.setCursor(1 - 1, 1 - 1);

mylcd.print("passcord:");

servo_9.attach(9);//make servo connect to digital 9

servo_10.attach(10);//make servo connect to digital 10

servo_9.write(0);//set servo connected digital 9 to 0°

servo_10.write(0);//set servo connected digital 10 to 0°

delay(300);

pinMode(7, OUTPUT);//set digital 7 to output

pinMode(6, OUTPUT);//set digital 6 to output

digitalWrite(7, HIGH); //set digital 7 to high level

digitalWrite(6, HIGH); //set digital 6 to high level

pinMode(4, INPUT);//set digital 4 to input

pinMode(8, INPUT);//set digital 8 to input

pinMode(2, INPUT);//set digital 2 to input

pinMode(3, OUTPUT);//set digital 3 to output

pinMode(A0, INPUT);//set A0 to input

pinMode(A1, INPUT);//set A1 to input

pinMode(13, OUTPUT);//set digital 13 to input

pinMode(A3, INPUT);//set A3 to input

pinMode(A2, INPUT);//set A2 to input


pinMode(12, OUTPUT);//set digital 12 to output

pinMode(5, OUTPUT);//set digital 5 to output

pinMode(3, OUTPUT);//set digital 3 to output

length = sizeof(tune) / sizeof(tune[0]); //set the value of length

}


void loop() {

auto_sensor();

if (Serial.available() 0) //serial reads the characters

{

val = Serial.read();//set val to character read by serial Serial.println(val);//output val character in new lines

pwm_control();

}

switch (val) {

case 'a'://if val is character 'a',program will circulate

digitalWrite(13, HIGH); //set digital 13 to high level,LED lights up

break;//exit loop

case 'b'://if val is character 'b',program will circulate

digitalWrite(13, LOW); //Set digital 13 to low level, LED is off

break;//exit loop

case 'c'://if val is character 'c',program will circulate

digitalWrite(12, HIGH); //set digital 12 to high level,NO of relay is connected to COM

break;//exit loop

case 'd'://if val is character 'd',program will circulate

digitalWrite(12, LOW); //set digital 12 to low level,NO of relay is disconnected to COM


break;//exit loop

case 'e'://if val is character 'e',program will circulate

music1();//play birthday song

break;//exit loop

case 'f'://if val is character 'f',program will circulate

music2();//play ode to joy song

break;//exit loop

case 'g'://if val is character 'g',program will circulate

noTone(3);//set digital 3 to stop playing music

break;//exit loop

case 'h'://if val is character 'h',program will circulate

Serial.println(light);//output the value of variable light in new lines

delay(100);

break;//exit loop

case 'i'://if val is character 'i',program will circulate

Serial.println(gas);//output the value of variable gas in new lines

delay(100);

break;//exit loop

case 'j'://if val is character 'j',program will circulate

Serial.println(soil);//output the value of variable soil in new lines

delay(100);

break;//exit loop

case 'k'://if val is character 'k',program will circulate

Serial.println(water);//output the value of variable water in new lines

delay(100);

break;//exit loop

case 'l'://if val is character 'l',program will circulate

servo_9.write(180);//set servo connected to digital 9 to 180°

delay(500);

break;//exit loop

case 'm'://if val is character 'm',program will circulate

servo_9.write(0);;//set servo connected to digital 9 to 0°

delay(500);

break;//exit loop

case 'n'://if val is character 'n',program will circulate

servo_10.write(180);//set servo connected to digital 10 to 180°

delay(500);

break;//exit loop

case 'o'://if val is character 'o',program will circulate

servo_10.write(0);//set servo connected to digital 10 to 0°

delay(500);

break;//exit loop

case 'p'://if val is character 'p',program will circulate

digitalWrite(5, HIGH); //set digital 5 to high level, LED is on

break;//exit loop

case 'q'://if val is character 'q',program will circulate

digitalWrite(5, LOW); // set digital 5 to low level, LED is off

break;//exit loop

case 'r'://if val is character 'r',program will circulate

digitalWrite(7, LOW);

digitalWrite(6, HIGH); //fan rotates anticlockwise at the fastest speed

break;//exit loop

case 's'://if val is character 's',program will circulate

digitalWrite(7, LOW);

digitalWrite(6, LOW); //fan stops rotating

break;//exit loop

}

}


////////////////////////set birthday song//////////////////////////////////

void birthday()

{

tone(3, 294); //digital 3 outputs 294HZ sound

delay(250);//delay in 250ms

tone(3, 440);

delay(250);

tone(3, 392);

delay(250);

tone(3, 532);

delay(250);

tone(3, 494);

delay(500);

tone(3, 392);

delay(250);

tone(3, 440);

delay(250);

tone(3, 392);

delay(250);

tone(3, 587);

delay(250);

tone(3, 532);

delay(500);

tone(3, 392);

delay(250);

tone(3, 784);

delay(250);

tone(3, 659);

delay(250);

tone(3, 532);

delay(250);

tone(3, 494);

delay(250);

tone(3, 440);

delay(250);

tone(3, 698);

delay(375);

tone(3, 659);

delay(250);

tone(3, 532);

delay(250);

tone(3, 587);

delay(250);

tone(3, 532);

delay(500);

}




//detect gas

void auto_sensor() {

gas = analogRead(A0);//assign the analog value of A0 to gas

if (gas 700) {

//if variable gas700

flag = 1;//set variable flag to 1

while (flag == 1)

//if flag is 1, program will circulate

{

Serial.println("danger");//output "danger" in new lines

tone(3, 440);

delay(125);

delay(100);

noTone(3);

delay(100);

tone(3, 440);

delay(125);

delay(100);

noTone(3);

delay(300);

gas = analogRead(A0);//gas analog the value of A0 to gas

if (gas

{

flag = 0;//set variable flag to 0

break;//exit loop exist to loop

}

}


} else

//otherwise

{

noTone(3);// digital 3 stops playing music

}

light = analogRead(A1);////Assign the analog value of A1 to light

if (light

{

infrar = digitalRead(2);//assign the value of digital 2 to infrar

Serial.println(infrar);//output the value of variable infrar in new lines

if (infrar == 1)

// if variable infra is 1

{

digitalWrite(13, HIGH); //set digital 13 to high level, LED is on

} else//Otherwise

{

digitalWrite(13, LOW); //set digital 13 to low level, LED is off

}


}

water = analogRead(A3);//assign the analog value of A3 to variable water

if (water 800)

// if variable water is larger than 800

{

flag2 = 1;//if variable flag 2 to 1

while (flag2 == 1)

// if flag2 is 1, program will circulate

{

Serial.println("rain");//output "rain" in new lines

servo_10.write(180);// set the servo connected to digital 10 to 180°

delay(300);//delay in 300ms

delay(100);

water = analogRead(A3);;//assign the analog value of A3 to variable water

if (water

{

flag2 = 0;// set flag2 to 0

break;//exit loop

}

}


} else//Otherwise

{

if (val != 'u' && val != 'n')

//if val is not equivalent 'u' either 'n'

{

servo_10.write(0);//set servo connected to digital 10 to 0°

delay(10);


}


}

soil = analogRead(A2);//assign the analog value of A2 to variable soil

if (soil 50)

// if variable soil is greater than 50

{

flag3 = 1;//set flag3 to 1

while (flag3 == 1)

//If set flag3 to 1, program will circulate

{

Serial.println("hydropenia ");//output "hydropenia " in new lines

tone(3, 440);

delay(125);

delay(100);

noTone(3);

delay(100);

tone(3, 440);

delay(125);

delay(100);

noTone(3);//digital 3 stops playing sound

delay(300);

soil = analogRead(A2);//Assign the analog value of A2 to variable soil

if (soil

{

flag3 = 0;//set flag3 to 0

break;//exit loop

}

}


} else//Otherwise

{

noTone(3);//set digital 3 to stop playing music

}

door();//run subroutine

}


void door() {

button1 = digitalRead(4);// assign the value of digital 4 to button1

button2 = digitalRead(8);//assign the value of digital 8 to button2



if (button1 == 0)//if variablebutton1 is 0

{

delay(10);//delay in 10ms

while (button1 == 0) //if variablebutton1 is 0,program will circulate

{

button1 = digitalRead(4);// assign the value of digital 4 to button1

btn1_num = btn1_num + 1;//variable btn1_num plus 1

delay(100);// delay in 100ms

}


}

if (btn1_num = 1 && btn1_num

{

Serial.print(".");

Serial.print("");

passwd = String(passwd) + String(".");//set passwd

pass = String(pass) + String(".");//set pass

//LCD shows pass at the first row and column

mylcd.setCursor(1 - 1, 2 - 1);

mylcd.print(pass);

}

if (btn1_num = 5)

//if variablebtn1_num ≥5

{

Serial.print("-");

passwd = String(passwd) + String("-");//Set passwd

pass = String(pass) + String("-");//set pass

//LCD shows pass at the first row and column

mylcd.setCursor(1 - 1, 2 - 1);

mylcd.print(pass);


}

if (button2 == 0) //if variablebutton2 is 0

{

delay(10);

if (button2 == 0)//if variablebutton2 is 0

{

if (passwd == ".--.-.")//if passwd is ".--.-."

{

mylcd.clear();//clear LCD screen

//LCD shows "open!" at first character on second row

mylcd.setCursor(1 - 1, 2 - 1);

mylcd.print("open!");

servo_9.write(100);//set servo connected to digital 9 to 100°

delay(300);

delay(5000);

passwd = "";

pass = "";

mylcd.clear();//clear LCD screen

//LCD shows "password:"at first character on first row

mylcd.setCursor(1 - 1, 1 - 1);

mylcd.print("password:");


} else //Otherwise

{

mylcd.clear();//clear LCD screen

//LCD shows "error!"at first character on first row

mylcd.setCursor(1 - 1, 1 - 1);

mylcd.print("error!");

passwd = "";

pass = "";

delay(2000);

//LCD shows "again" at first character on first row

mylcd.setCursor(1 - 1, 1 - 1);

mylcd.print("again");

}

}

}

infrar = digitalRead(2);//assign the value of digital 2 to infrar

if (infrar == 0 && (val != 'l' && val != 't'))

//if variable infrar is 0 and val is not 'l' either 't'

{

servo_9.write(0);//set servo connected to digital 9 to 0°

delay(50);

}

if (button2 == 0)//if variablebutton2 is 0

{

delay(10);

while (button2 == 0) //if variablebutton2 is 0,program will circulate

{

button2 = digitalRead(8);//assign the value of digital 8 to button2

btn2_num = btn2_num + 1;//variable btn2_num plus 1

delay(100);

if (btn2_num = 15)//if variablebtn2_num ≥15

{

tone(3, 532);

delay(125);

mylcd.clear();//clear LCD screen

//LCD shows "password:" at the first character on first row

mylcd.setCursor(1 - 1, 1 - 1);

mylcd.print("password:");

//LCD shows "wait" at the first character on first row

mylcd.setCursor(1 - 1, 1 - 1);

mylcd.print("wait");

} else//Otherwise

{

noTone(3);//digital 3 stops playing music

}

}


}

btn1_num = 0;//set btn1_num to 0

btn2_num = 0;//set btn2_num to 0

}


// Birthday song

void music1() {

birthday();

}

//Ode to joy

void music2() {

Ode_to_Joy();

}

void Ode_to_Joy()//play Ode to joy song

{

for (int x = 0; x

{

tone(tonepin, tune[x]);

delay(300 * durt[x]);

}

}


//PWM control

void pwm_control() {

switch (val)

{

case 't'://if val is 't',program will circulate

servo1 = Serial.readStringUntil('#');

servo1_angle = String(servo1).toInt();

servo_9.write(servo1_angle);//set the angle of servo connected to digital 9 to servo1_angle

delay(300);

break;//exit loop

case 'u'://if val is 'u',program will circulate

servo2 = Serial.readStringUntil('#');

servo2_angle = String(servo2).toInt();

servo_10.write(servo2_angle);//set the angle of servo connected to digital 10 to servo2_angle

delay(300);

break;//exit loop

case 'v'://if val is 'v',program will circulate

led2 = Serial.readStringUntil('#');

value_led2 = String(led2).toInt();

analogWrite(5, value_led2); //PWM value of digital 5 is value_led2

break;//exit loop

case 'w'://if val is 'w',program will circulate

fans_char = Serial.readStringUntil('#');

fans_val = String(fans_char).toInt();

digitalWrite(7, LOW);

analogWrite(6, fans_val); //set PWM value of digital 6 to fans_val,the larger the value, the faster the fan

break;//exit loop

}

}




Получите в подарок сайт учителя

Предмет: Внеурочная работа

Категория: Прочее

Целевая аудитория: 11 класс.
Урок соответствует ФГОС

Скачать
Исследовательский проект "Умный дом"

Автор: Кабаргина Анна Алексеевна

Дата: 18.09.2021

Номер свидетельства: 586930

Похожие файлы

object(ArrayObject)#863 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(82) "Научно - исследовательский проект "Умный дом""
    ["seo_title"] => string(41) "nauchno_issledovatelskii_proekt_umnyi_dom"
    ["file_id"] => string(6) "500674"
    ["category_seo"] => string(7) "prochee"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1550660274"
  }
}
object(ArrayObject)#885 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(95) "Исследовательская работа "Зимующие птицы Мордовии" "
    ["seo_title"] => string(57) "issliedovatiel-skaia-rabota-zimuiushchiie-ptitsy-mordovii"
    ["file_id"] => string(6) "213981"
    ["category_seo"] => string(16) "nachalniyeKlassi"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1432192603"
  }
}
object(ArrayObject)#863 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(91) "Проект "Образ кошки в устном народном творчестве" "
    ["seo_title"] => string(52) "proiekt-obraz-koshki-v-ustnom-narodnom-tvorchiestvie"
    ["file_id"] => string(6) "105665"
    ["category_seo"] => string(16) "nachalniyeKlassi"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1402901953"
  }
}
object(ArrayObject)#885 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(145) "Сравнительный анализ работы методической кафедры естественно - научного цикла"
    ["seo_title"] => string(86) "sravnitiel-nyi-analiz-raboty-mietodichieskoi-kafiedry-iestiestvienno-nauchnogho-tsikla"
    ["file_id"] => string(6) "249455"
    ["category_seo"] => string(7) "zavuchu"
    ["subcategory_seo"] => string(12) "meropriyatia"
    ["date"] => string(10) "1446903352"
  }
}
object(ArrayObject)#863 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(118) "Открытый урок по окружающему миру в 1 классе «Про кошек  и собак» "
    ["seo_title"] => string(71) "otkrytyi-urok-po-okruzhaiushchiemu-miru-v-1-klassie-pro-koshiek-i-sobak"
    ["file_id"] => string(6) "146009"
    ["category_seo"] => string(16) "nachalniyeKlassi"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1419061117"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства