Как сделать умный дом своими руками на arduino и яндекс.алиса
Содержание:
- Описание контроллера Arduino
- Основные варианты конфигураций
- Платы дополнения (шилды)
- Принцип работы системы
- Какие решения предлагает Arduino
- Возможный функционал и постановка требований к системе
- Что должен уметь «умный» дом?
- Сборка «умного дома»: пошаговая инструкция
- Составление проекта на Arduino
- Solder the Prototype Board
- Работа с роутером
- Что такое Arduino?
- Проектирование умного дома Arduino
- Резюме
- Модель на базе DA1
- Таблица подключения к Arduino UNO R3 элементов схемы
Описание контроллера Arduino
Программная составляющая контроллера Arduino состоит из бесплатно распространяемой оболочки, обладающей простым, понятным на интуитивном уровне интерфейсом IDE. Программирование на ней можно осуществлять с платформ Windows, Linux и MacOSX. В оболочке уже имеется весь набор для загрузки программ сразу в контроллер, поэтому при работе с ней не требуется специальный программатор.
Для загрузки достаточно соединить плату Arduino с ПК или ноутбуком через USB-порт, после чего произвести загрузку нужной программы на устройство. При желании можно прошить загрузчик и самостоятельно: оболочка IDE позволяет поддерживать многие недорогие программаторы. Подсоединить их можно через штыревые выходы, специально предназначенные для внутреннего программирования:
- AVR через разъём ICSP
- ARM через JTAG.
Аппаратная составляющая платформы монтируется из печатных плат, выпускающихся как официальным обладателем товарного знака, так и многими другими производителями. На сегодня в продаже насчитывается свыше 20 разновидностей плат-контроллеров, которые могут сопрягаться между собой специальными разъёмами в виде своеобразного сэндвича. Большинство современных устройств типа Arduino используют следующие контроллеры:
- Atmel-AVR.
- ATmega-328.
- ATmega-168.
- ATmega-2560.
- ATmega-32U4.
- ATTiny-85.
Перечисленные микроконтроллеры работают на частоте 8 или 16 мегагерц. К плате контроллера возможно подключение различных электронных компонентов – датчиков, светодиодных осветителей, передающих устройств и т.д. Благодаря этому, Arduino удобно использовать для самостоятельного проектирования и сборки системы «умный дом».
Основные варианты конфигураций
Постоянно, стремясь к совершенству и автоматизации, человек изобретает всё новые и новые механизмы для этого. Также это стремление направлено и на уменьшение габаритов устройств без потерь их функциональных особенностей.
Для контроллера управляющего механизмами так и для всей системы умный дом есть основные требования это:
- автоматизм;
- самоконтроль;
- чёткость управления, без совершения ошибок.
Варианты конфигурации любой такой системы зависят от многих факторов, о который уже говорилось выше, вот варианты систем которое могут подключаться к контроллеру:
- Регулировка и управление освещением как в самом помещении, так и на придомовой территории, и в местах архитектурных сооружений;
- Климатические установки (кондиционирование, вентиляция, обогрев);
- Закрывание и блокировка дверей, ворот и окон;
- Аудиосистемы, и телевидение, домашний кинотеатр;
- Управление шторами, жалюзи и солнцезащитными роллетами;
- Системой водоснабжения;
- Кормление домашних животных и аквариумных рыбок.
То есть всё заключается в желании клиента и его материальных возможностей.
Платы дополнения (шилды)
Для увеличения возможностей материнских плат используют шилды (Shields) – расширяющие функционал дополнительные устройства. Они изготавливаются под конкретный форм-фактор, что отличает их от модулей, которые подключают к портам. Шилды стоят дороже модулей, однако работа с ними проще. Также они снабжены готовыми библиотеками с кодом, что убыстряет разработку собственных программ управления для “умного дома”.
Шилды Proto и Sensor
Эти два стандартных шилда не привносят каких-либо особых функций. Их используют для более компактного и удобного подключения большого числа модулей.
Proto Shield представляет собой практически полную копию оригинала в плане портов, а посередине модуля можно приклеить макетную плату. Это облегчает сборку конструкции. Такие дополнения существуют для всех полноформатных плат Arduino.
Proto Shield ставят поверх материнской платы. Это незначительно увеличивает высоту конструкции, но экономит много места в плоскости
Но если устройств очень много (более 10), то лучше использовать более дорогие коммутационные платы Sensor Shield.
У них не предусмотрен брэдборд, однако ко всем выводам портов индивидуально подведено питание и земля. Это позволяет не путаться в проводах и перемычках.
Площадь поверхности материнской и сенсор-плат одинакова, однако на шилде отсутствуют чипы, конденсаторы и другие элементы. Поэтому освобождается много места для полноценных подключений
Также на этой плате есть колодки для простого подключения нескольких модулей: Bluetoots, SD-карты, RS232 (COM-port), радио и ультразвука.
Подключение вспомогательного функционала
Шилды с интегрированным в них функционалом рассчитаны на решение сложных, но типовых задач. При необходимости реализации оригинальных задумок лучше все же подобрать подходящий модуль.
Motor Shield. Он предназначен для управления скоростью и вращением маломощных двигателей. Оригинальная модель оснащена одним чипом L298 и может работать одновременно с двумя моторами постоянного тока или с одним сервоприводом. Есть и совместимая деталь от стороннего производителя, у которой два чипа L293D с возможностью управления вдвое большим количеством приводов.
Relay Shield. Часто используемый модуль с системах “умный дом”. Плата с четырьмя электромеханическими реле, каждое из которых допускает прохождение тока с силой до 5А. Этого достаточно для автоматического включения и отключения киловатных приборов или линий освещения, рассчитанных на переменный ток 220 В.
LCD Shield. Позволяет выводить информацию на встроенный экран, который можно проапгрейдить до TFT-устройства. Это расширение часто применяют для создания метеостанций с показаниями температуры в различных жилых помещениях, пристройках, гараже, а также температуры, влажности и скорости ветра на улице.
В LCD Shield встроены кнопки, позволяющие запрограммировать листание информации и выбор действий для подачи команд на микропроцессор
Data Logging Shield. Основная задача модуля – записывать данные с датчиков на полноформатную SD-карту объемом до 32 Gb с поддержкой файловой системы FAT32. Для записи на микро-SD карту нужно приобрести адаптер. Этот шилд можно использовать как хранилище информации, например, при записи данных с видеорегистратора. Производство американской фирмы Adafruit Industries.
SD-card Shield. Более простая и дешевая версия предыдущего модуля. Такие расширения выпускают многие производители.
EtherNet Shield. Официальный модуль для связи Arduino с Интернетом без участия компьютера. Есть слот для микро-SD карты, что позволяет записывать и отправлять данные через всемирную сеть.
Wi-Fi Shield. Позволяет осуществлять беспроводной обмен информацией с поддержкой режима шифрования. Служит для связи с интернетом и устройствами, которыми можно управлять через Wi-Fi.
GPRS Shield. Этот модуль, как правило, используют для связи “умного дома” с владельцем по мобильному телефону через SMS сообщения.
Принцип работы системы
Устройство Arduino работает следующим образом. Информация, собранная с различных датчиков в доме, направляется по беспроводной сети на планшет или ПК. Далее с помощью специального софта производится обработка данных и выполнение определенной команды.
Главную функцию выполняет центральный датчик, который можно приобрести или собрать самостоятельно. Разъемы на платах являются стандартными, что значительно упрощает выбор комплектующих.
Питание
Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.
Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.
Провода от АКБ подключаются к различным выводам питающего разъема — Vin и Gnd.
Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.
Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 — 12 В.
В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.
ПОПУЛЯРНО У ЧИТАТЕЛЕЙ: Что такое умный дом CLAP.
На Ардуино предусмотрены следующие питающие выводы:
- 5V — используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
- VIN — применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
- 3V3 — вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
- GND — заземляющие выводы.
Принципиальную схему платы в pdf формате можно посмотреть ЗДЕСЬ.
Связь
Возможности Arduino позволяют подключить группу устройств, обеспечивающих стабильную связь с ПК, а также другими элементами системы — микроконтроллерами или такими же платами Ардуино.
Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.
- Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
- Если стоит Windows, потребуется дополнительный файл .inf.
С помощью утилиты мониторинга обеспечивается отправление и получение информации в текстовом формате после подключения к системе.
Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.
К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.
Какие решения предлагает Arduino
Базовый набор Arduino Start Как видно из данной постановки задач нам, кроме платы Arduino, понадобятся: датчики движения, датчики открывания двери, датчики температуры и освещённости. Для включения электрических приборов нам могут понадобиться реле. В качестве датчика фиксации открытия двери может быть применён обычный геркон. Все датчики можно купить для платы Arduino.
Так как количество датчиков достаточно большое для такого маленького дома, то для платформы Arduino существуют платы расширения. Всё, что необходимо, это правильно подключить датчики к прибору и написать программу, которая будет являться «сердцем» «умного» дома.
Прошить плату Arduino легко с помощью специальной программы, которая выпускается для любой операционной системы, а также кабеля USB. Не нужно никаких программаторов, как в случае разработки автоматики на микроконтроллерах.
Программа, которая прошивается в Arduino, пишется на языке Си. Безусловно, есть ограничения на количество байт этой программы. Для реализации поставленной задачи объёма памяти вполне хватит.
Возможный функционал и постановка требований к системе
Прежде чем перейти к части проектирования, вначале нужно описать для себя, что требуется от конкретной системы.
Комплекс будет устанавливаться в небольшом доме (даче), находящемся достаточно далеко от жилья и средств коммуникации. Отопление в нем выполнено на основе электрических тэнов, что тоже накладывает свои ограничения. Дом посещается редко в холодную часть года, но отопление вымерзать не должно. Экономия при отсутствии людей обязательна. Последнее касается и случайно забытых включенными осветительных приборов — они должны сами отключаться.
Также важным фактором, требующим неустанного контроля, служит охрана дома. Любым образом человек должен узнать о попадании в дом посторонних.
Так как приезд осуществляется в темное время суток, любой хозяин желает, чтобы ему подсветили момент открывания дверей и перемещения по двору. Что нужно учесть в проектировании системы. Итак, в комплексе:
- Выявление прохода через калитку участка, для подсветки пути при необходимости.
- Определение открытия входной двери в дом.
- Управление системой отопления. В отсутствие хозяев держать температуру не ниже 5 ℃, чтобы не вымерзла вода. По полученной команде удаленно прогреть помещение до +20 градусов.
- Сообщать владельцу о перебоях энергоснабжения, чтобы не размораживался холодильник.
- Включение света в кладовке, когда ее дверь кто-то открыл.
- Все перечисленное получить при минимальных денежных затратах.
- Отключение всей электрики и переход дома в режим экономии энергии. При этом холодильник продолжает работать.
Существует много проектов умного дома на Ардуино, но под описанные возможности они слишком дороги. Проще собрать аналогичную систему самостоятельно.
Что должен уметь «умный» дом?
В вопросе создания своего «умного» дома ардуино уже давно стало практически нарицательным именем, столь популярно использование этой технологии для автоматизации и удаленного управления собственным бытом. Уже сейчас возникло огромное количество разработок «домашних» пользователей, которые основаны на этой технологии и назначение их варьируется от простого включения-отключения света и до таких сложных систем, как вело компьютеры.
Прежде всего, нужно определить, какими качествами должен и может обладать «умный» дом, если отбросить в сторону научную фантастику? Ведь в проекте вашего дома можно предусмотреть такие вещи, которые на деле мало выполнимы. Вряд ли вы сможете найти такую систему, которая будет сама выбирать вам одежду на работу. После некоторого исследования форумов и сайтов можно прийти к выводу, что такой дом должен уметь:
- Он должен управлять включением-выключением света. При наиболее прогрессивном векторе развития не просто отключать лампочки по сигналу с пульта или звуковому сигналу (хлопку), а, например, автоматически отключать свет, когда дома ни кого не будет или когда все в доме спят.
- Контроль температуры внутри дома. Это взаимодействие автоматизированного компьютера с вентиляционными, отопительными и им подобными системами. Принцип работы здесь достаточно прост: при изменении температуры, которое фиксирует датчик, система автоматически включает или выключает какие-либо нужные приборы. Здесь также есть перспективы, например создание такого набора команд, чтобы после того, как вы ложились спать, температура медленно понижалась (спать в глубокой фазе комфортнее в прохладной комнате), а после пробуждения (сигнала будильника), наоборот, повышалась (просыпаться приятнее в комнате более теплой).
- Мониторинг внешней среды. За этими научными терминами кроется определение уличной температуры, индикация дождя, снега и тому подобное. Как правило вся информация о погоде должна либо предаваться на какой-либо экран, а также может сопровождаться звуковыми сигналами. Один из конструкторов предложил идею более раннего пробуждения в случае дождя, так как в дождь человек медленнее собирается и дольше добирается на работу/учебу.
- Управление дверями и входом/выходом. В эту категорию включен довольно широкий спектр различных приспособлений, таких как охранная система (часто это набор ультразвуковых и инфракрасных датчиков, которые фиксируют наличие людей в помещений в тот момент, когда их там быть не должно), авто блокираторы двери, электронные замки различных модификаций (например, основанных на считывании отпечатков пальцев) и достаточно простые приспособления вроде автоматического закрывания двери, когда с вами живут люди, которые забывают закрывать ее за собой.
- Система оповещения о различных утечках, протечках, сюда же входит функция определения задымления и открытого огня в помещении. Модифицировать такую систему можно вплоть до того, чтобы она начинала звонить в пожарную службу.
- Прочие системы, видов которых может быть огромное множество. Из часто употребляемых можно выделить управление техникой (к примеру, автоматическое включение музыкальных приборов, телевизора), различные системы сбора данных (например, устройство раз в несколько минут выводит информацию о температуре воды в аквариуме).
Все эти системы, которые на первый взгляд выглядят сложными и довольно фантастичными уже реализуются пользователями в своих собственных домах с помощью системы Arduino. В нынешний век смартфонов очень популярными стали идеи управления дома через мобильные телефоны, причем чаще всего создаются такие системы на базе операционной мобильной системы Android, как наиболее открытой и удобной разработчику. Таким образом человек может, например, кормить животных с помощью Twitter или включать обогрев помещения перед своим приходом, просто сделав звонок.
Таким образом, можно сказать, что Arduino позволяет реализовать проект практически любого улучшения вашего быта. Широкие возможности и, самое главное, гибкость системы, умеющей взаимодействовать с самыми разными программными продуктами служат прекрасным инструментом для реализации ваших замыслов.
Сборка «умного дома»: пошаговая инструкция
Вот в какой последовательности необходимо действовать.
Подключение исполнительных и сенсорных устройств
Подключаем все компоненты согласно схеме.
Сборка системы в основном сводится к подключению исполнительных устройств к соответствующим контактам процессорной платы
Разработка программного кода
Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования — С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».
Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.
Заголовочные файлы стандартных библиотек вставлять в программу не нужно — IDE делает это автоматически. К пользовательским библиотекам это не относится — они должны быть указаны.
В IDE предусмотрен минимум настроек, а возможность настройки компилятора отсутствует вовсе. Таким образом, начинающий программист застрахован от ошибок.
Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:
Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.
Все программы на Arduino работают по одному принципу: пользователь посылает запрос процессору, а тот загружает необходимый код на экран компьютера или смартфона
Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.
Установка клиентского приложения на смартфон (для ОС Android)
Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.
Вот что необходимо сделать владельцу гаджета:
- Скачайте файл SmartHome.apk.
- Отправьте его на телефон.
- Открыв «Менеджер файлов», разместите этот файл.
- Щёлкните на нём и выберите «Установить» (должна быть отмечена «галочка», позволяющая осуществлять установку программ вне сервиса Google Play).
- Когда установка будет завершена, активируйте приложение.
- Выполните его настройку.
С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею — включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы Arduino на предмет срабатывания датчика движения приложение выполняет с периодичностью раз в минуту.
Активировав иконку «Настройки», можно отредактировать свой IP-адрес.
Настройка браузера на работу с «умным домом»
В адресной строке браузера следует ввести XXX.XXX.XXX.XXX/all, где «XXX.XXX.XXX.XXX» — ваш IP-адрес. После этого появится возможность получать данные от системы и осуществлять управление ею.
Представленный здесь программный код позволяет через браузер включать и выключать свет, тогда как в приложении для Android-смартфона такая функция не реализована.
Работа с роутером
Далее на маршрутизаторе необходимо открыть порт:
- открываем настройки маршрутизатора;
- прописываем адрес Arduino IP;
- открываем порт 80.
Настройка учётной записи на noip.com
Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/, перейти в раздел «Add host» и ввести IP-адрес системы.
После регистрации на сайте noip.com доступ к системе можно получать не только по IP-адресу, но и по полному доменному имени
Создание проекта завершено, можно проверять работоспособность системы.
Составление проекта на Arduino
Процесс создания и настройки «умного дома» Arduino покажем на примере системы, в которую будут заложены следующие функции:
- мониторинг температуры на улице и в помещении;
- отслеживание состояния окна (открыто/закрыто);
- мониторинг погодных условий (ясно/дождь);
- генерация звукового сигнала при срабатывании датчика движения, если активирована функция сигнализации.
Систему настроим таким образом, чтобы данные можно было просматривать посредством специального приложения, а также веб-браузера, то есть пользователь сможет сделать это из любого места, где есть доступ в интернет.
Используемые сокращения:
- «GND» — заземление.
- «VCC» — питание.
- «PIR» — датчик движения.
Необходимые компоненты для изготовления системы «умного дома»
Для системы «умного дома» Arduino потребуется следующее:
- микропроцессорная плата Arduino;
- модуль Ethernet ENC28J60;
- два температурных датчика марки DS18B20;
- микрофон;
- датчик дождя и снега;
- датчик движения;
- переключатель язычковый;
- реле;
- резистор сопротивлением 4,7 кОм;
- кабель «витая пара»;
- кабель Ethernet.
Стоимость всех компонентов составляет примерно 90 долларов.
Для изготовления системы с необходимыми нам функциями потребуется набор устройств стоимостью около 90 долларов
Solder the Prototype Board
This part is easier than it seems. All we’re going to do is make the breadboard we made earlier a little more permanent. It is exactly the same circuit as shown in the Arduino diagram above.
All we’re going to do is use wires and solder to keep the board together. We’re also going to add female headers on either side so we can swap out LEDs, servos, and disconnect the Arduino. Check out the diagram below.
Notice the female headers and the resistors on the opposite side. These female headers give us the ability to create «plugs» by soldering male headers onto our wires in the next step.
The circuit could also be built upon an Arduino prototype board which would make the project more stable and elimante the need for our jumper cables.
Работа с роутером
На роутере нужно открыть порт. Для этого следует выполнить следующие действия:
- открыть конфигурацию роутера;
- прописать адрес arduino ip;
- открыть порт 80.
После этого — присвоить новому адресу доменное имя. Теперь можно приступать к тестированию проекта, который вы сделали своими руками.
Правильно настроить роутер — залог успеха
Следует отметить, что для такого рода проектов нельзя использовать открытый ip-адрес, так как система легко взламывается через интернет.
Также следует отметить и то, что «Ардуино» — это одна из немногих систем подобного рода, которая имеет огромное количество библиотек с разными программными кодами. Поэтому собрать ее своими руками через интернет несложно. Вам достаточно только приобрести все составляющие и выбрать уже готовые протестированные программные коды.
Что такое Arduino?
Ардуино (Arduino) — специальный инструмент, позволяющий проектировать электронные устройства, имеющие более тесное взаимодействие с физической средой в сравнении с теми же ПК, фактически не выходящими за пределы виртуальной реальности.
В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.
Другими словами, Ардуино — небольшое устройство, обеспечивающее управление различными датчиками, системами освещения, принятия и передачи данных.
В состав Arduino входит микроконтроллер, представляющий собой собранный на одной схеме микропроцессор. Его особенность — способность выполнять простые задачи. В зависимости от модели устройство Ардуино может комплектоваться микроконтроллерами различных типов.
Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.
Не менее важная особенность печатной платы заключается в наличии 22 выводов, которые расположены по периметру изделия. Они бывают аналоговыми и цифровыми.
Особенность последних заключается в управлении с помощью только двух параметров — логической единицы или нуля. Что касается аналогового вывода, между 1 и 0 имеется много мелких участков.
Сегодня Arduino используется при создании электронных систем, способных принимать информацию с различных датчиков (цифровых и аналоговых).
Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.
Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.
ЧИТАЙТЕ ПО ТЕМЕ: Умный дом Xiaomi Smart Home, обзор, комплектация, подключение и настройка своими руками, сценарии.
Проектирование умного дома Arduino
Умного дома «на все случаи жизни» не существует. Поэтому, его проектирование начинается с определения поставленных задач, выбора и размещения основного узла Arduino, а затем и остальных элементов. На конечном этапе связывается и дорабатывается функционал, с помощью программирования.
На базе Ардуино можно создать множество проектов, а затем скомпоновать их в единую систему. Среди таких:
- Контроль влажности в цоколе.
- Автоматическое включение конвекторов, при падении температуры в доме ниже допустимой в двух возможных вариантах – при наличии и отсутствии человека в комнате.
- Включение освещения на улице в сумерки.
- Отправка сообщений об изменениях каждого детектируемого состояния.
В качестве примера можно рассмотреть проектирование автоматики одноэтажного дома с двумя комнатами, подвальным помещением под хранение овощей. В комплекс входит семь зон: прихожая, душевая комната, кухня, крыльцо, спальня, столовая, подвал.
При составлении пошагового плана проектирования учитываем следующее:
- Крыльцо. При приближении владельца к дому ночью, включится освещение. Также следует учесть обратное – выходя из дома ночью, тоже надо включать освещение.
- Прихожая. При детектировании движения и в сумерки включать свет. В темное время необходимо, чтобы загорался приглушенный свет лампочки.
- Подвал на улице. При приближении хозяина, в темное время суток, должна загораться лампа возле дверцы подвала. Открывая дверь, загорается свет внутри, и выключается в том случае, когда человек покидает здание. При выходе, включается освещение на крыльце, а по мере отхождения от подвального помещения, выключается возле дверцы. В подвале установлен контроль влажности и при достижении критической температуры, включаются несколько вентиляторов для улучшения циркуляции воздуха.
- Душевая комната. В ней установлен бойлер. Если человек присутствует в доме, бойлер включает нагрев воды. Автоматика выключается, когда максимальная температура нагрева достигнута. При входе в туалет, включается вытяжка и свет.
- Кухня. Включение основного освещения ручное. При длительном отсутствии хозяина дома на кухне, свет выключается автоматически. Во время приготовления еды автоматически включается вытяжка.
- Столовая. Управление светом происходит по аналогии с кухней. Присутствуя на кухне, есть возможность дать голосовую команду ассистенту умной колонки, чтобы тот запустил музыку.
- Спальная комната. Включение освещение происходит вручную. Но есть автоматическое выключение, если в комнате долгое время отсутствует человек. Дополнительно, нужно выключать освещение по хлопку.
По всему дому расставлены конвекторы. Необходим автоматический контроль поддерживаемой температуры в доме в двух режимах: когда человек есть в доме и вовремя его отсутствия. В первом варианте, температура должна опускаться не ниже 20 градусов и подниматься не выше 22. Во втором, температура дома должна опускаться не ниже 12 градусов.
Проект готов, осталось заняться его реализацией.
Плюсы и минусы системы
Прежде чем подбирать компоненты и модули для создания автоматики в умном доме, следует уделить внимание как достоинствам, так и недостаткам системы.
Преимущества умного дома Arduino:
- Использование компонентов других производителей с контроллером Arduino.
- Создание собственных программ умного дома, так как исходных код проекта открыт.
- Язык программирования простой, мануалов в сети для него много, разобраться сможет даже начинающий.
- Простой проект делается за один час практики с помощью дефолтных библиотек, разработанных для: считывания сигналов кнопок, вывода информации на ЖК-дисплеи или семи сегментные индикаторы и так далее.
- Запитать, посылать команды и сообщения, программировать, или перенести готовые программные решения в Arduino, можно с помощью USB-кабеля.
Недостатки:
- Среда разработки Arduino IDE – это построенная на Java ппрограма, в которую входит: редактор кода, компилятор, передача прошивки в плату. По сравнению с современными решениями на 2019 год – это худшая среда разработки (в том виде, в котором она подается). Даже когда вы перейдете в другую среду разработки, IDE вам придется оставить для прошивки.
- Малое количество флэш-памяти для создания программ.
- Загрузчик нужно прошивать для каждого шилда микроконтроллера, чтобы закончить проект. Его размер – 2 Кб.
- Пустой проект занимает 466 байт на Arduino UNO и 666 байт в постоянной памяти платы Mega.
- Низкая частота процессора.
Резюме
В итоге получилась такая схема. В электрощитке будет находиться Raspberry Pi Zero W для хранения логики работы моего дома. Без него умный дом работать не будет. Поэтому запитываться он будет от сети и от резервной аккумуляторной батареи.
Каждое устройство создается на основе ESP8266. Запитываться будет либо от сети либо от батарейки. Если батарейки не будет хватать хотя бы на полгода, то придется подумать как это решить (тут мне подсказывают, что ZigBee позволяет создавать более экономные устройства, чем Wi-Fi, но ZigBee более сложный, чем Wi-Fi).
В качестве голового помощника выбраны Siri и Алиса. Siri очень легко подключается. Алиса чуть сложнее. Остальные голосовые помощники отпали, т.к. информации по ним практически нет. Да и на айфоне кроме Siri и Алисы никого нету.
Модель на базе DA1
Транзисторы данной серии обладают отличной проводимостью и способны работать с выходными преобразователями разной частоты. Сделать модификацию своими руками пользователь способен на базе проводникового трансивера. Контакты его подключаются напрямую через конденсаторный блок. Также стоит отметить, что регулятор устанавливается за трансивером.
При сборке контроллера рекомендуется применять емкостные триоды с низкими тепловыми потерями. У них высокая чувствительность, а проводимость находится на уровне 55 мк. Если использовать простой стабилизатор переходного типа, то фильтр применяется с обкладкой. Специалисты говорят о том, что тетроды разрешается устанавливать с компаратором. Однако стоит учитывать все риски сбоев в работе конденсаторного блока.
Таблица подключения к Arduino UNO R3 элементов схемы
Сведем все соединения между Ардуино и внешними устройствами в единую таблицу, которая поможет в деле сборки готовой схемы.
Куда | Пин Arduino UNO R3 | Пин устройства/контакт |
---|---|---|
Модуль на 4 реле D0 общее освещение, D1 отопление, D2 свет в кладовке, D3 на улице. | D0 | D0 |
D1 | D1 | |
D2 | D2 | |
D3 | D3 | |
Кнопка постановки на сигнализацию/снятия | D4 | |
Клавиша включения режима экономии/люди дома | D5 | |
D6 | ||
Коммуникация с модемом | D7 | RX |
D8 | TX | |
Светодиод охрана отключена(кр) | D9 | |
Охрана активирована (зел) | D10 | |
Хозяева дома (кр) | D11 | |
Режим экономии (зел) | D12 | |
Включение модема | D13 | D9 |
Геркон кладовка | A1 | |
Геркон дверь/калитка | A2 | |
Термометр | A3 | |
Определение наличия сети 220 В | A4 |
Планируемая система полностью не заняла все пины микроконтроллера. Еще есть место для добавления аналогового датчика и одной линии управления. Вариант — использовать свободные контакты для сенсора дыма и сигнализатора. Если планируется расширять конструкцию дальше, — придется брать микроконтроллер Arduino Mega. В нем больше портов ввода/вывода и памяти, при полной программной совместимости.