Введение
Само понятие "умный" дом (англ. smart house) не такое уж молодое. Оно возникло в США в начале 70-х годов прошлого века, в недрах "Института интеллектуальных зданий". На тот момент под умным домом подразумевалось "здание, обеспечивающее продуктивное и эффективное использование рабочего пространства…".
Однако годом рождения современного "умного" дома можно считать 1978-й год. В этом году в США компании Х10 USA и Leviton разработали и внедрили в производство технологию управления бытовыми приборами по проводам бытовой электросети.
Распространение эти разработки получили в то время лишь на территории Северной Америки, ибо были рассчитаны на работу при напряжении 110 В и частоту сети 60 Гц. Тем не менее, именно этим фирмам человечество обязано появлением "невероятных чудес прогресса" - автоматически открывающихся дверей, включающегося по хлопку света и прочих "фокусов", которыми состоятельные американцы удивляли своих гостей, а голливудские фильмы - весь остальной мир.
Для конца 70-х годов технология X10 (именно такое название закрепилось и сохранилось за ней и поныне) являлась, конечно, революционной. Однако она была рассчитана на поддержку всего шести управленческих команд и, в основном, использовалась для управления электроосвещением. Но людям хотелось большего. "Умный" дом должен был становиться все "умнее".
С начала нового тысячелетия человечество шагает в эпоху новых технологических открытий, одним из которых является бытовая автоматизация. Время современного человека имеет огромную ценность и такие системы автоматизации как «умный дом» существенно экономят этот жизненно-важный ресурс. Включить кондиционер, выключить свет в прихожей, активировать ночную сигнализацию - это лишь маленький перечень действий, которые можно возложить на систему «умного дома». Но такие устройства имеют один минус - большую рыночную стоимость. Поэтому разработка относительно дешевой системы, с аналогичными возможностями получает все большую актуальность.
|
Целью работы является разработка модуля системы «умный дом», а так же разработка и исследование алгоритмов системы, позволяющих увеличить экономию ресурсов.
Задачи проекта
Создание архитектуры аппаратных средств «умного дома»
Анализ программно-аппаратных систем управления «умным домом»
Отладка стенда
Содержание работы
Обзор систем управления зданиями
Обзор готовых программных решений
Выбор аппаратных средств
Создание архитектуры аппаратных средств «умного дома»
Разработка требований к многофункциональному программно-аппаратному стенду
Разработка структуры программно-аппаратного стенда
Экспериментальная часть
Отладка стенда
Глава 1. Технологическая часть
Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.
Arduino позволяет компьютеру выйти за рамки виртуального мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными исполнительными устройствами.
|
Микроконтроллер на плате программируется при помощи языка С++ и среды разработки Arduino. Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.
В 2006 Arduino получила признание в категории Digital Communities на фестивале Ars Electronica Prix.
Аппаратная часть платформы Arduino
Существует несколько версий платформ Arduino. Последняя версия Leonardo базируется на микроконтроллере ATmega32u4.
Uno, как и предыдущая версия Duemilanove построены на микроконтроллере Atmel ATmega328.
Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168,более ранние версии использовали ATmega8.
Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560.
Язык Arduino можно разделить на три раздела:
Операторы · setup() · loop() Управляющие операторы · if · if...else · for · switch case · while · do... while · break · continue · return · goto Синтаксис ·; (semicolon) · {} (curly braces) · // (single line comment) · /* */ (multi-line comment) Арифметические операторы · = (assignment) · + (addition) - (subtraction) · (multiplication) · / (division) · % (modulo) Операторы сравнения · == (equal to) ·!= (not equal to) · < (less than) · > (greater than) · <= (less than or equal to) · >= (greater than or equal to) · Логические операторы · && (И) · || (ИЛИ) ·! (Отрицание) Унарные операторы · ++ (increment) · -- (decrement) · += (compound addition) · -= (compound subtraction) · *= (compound multiplication) · /= (compound division) | Данные Константы · HIGH | LOW · INPUT | OUTPUT · true | false · Целочисленные константы · Константы с плавающей запятой Типы данных · boolean · char · byte · int · unsigned int · word · long · unsigned long · float · double · string - массив символов · String - объект класса · массив (array) · void Преобразование типов данных · char() · byte() · int() · long() · float() Область видимости переменных и квалификаторы · Область видимости · static · volatile · const | Функции Цифровой ввод/вывод · pinMode() · digitalWrite() · digitalRead() · Аналоговый ввод/вывод · analogRead() · analogReference() · analogWrite() Дополнительные фунции ввода/вывода · tone() · noTone() · shiftOut() · pulseIn() · Работа со временем · millis() · micros() · delay() · delayMicroseconds() Математические функции · min() · max() · abs() · constrain() · map() · pow() · sq() · sqrt() Тригонометрические функции · sin() · cos() · tan() Генераторы случайных значений · randomSeed() · random() Внешние прерывания · attachInterrupt() · detachInterrupt() Функции передачи данных · Serial |
|