Самодельные датчики для ардуино. Самодельные датчики движения (температуры, влажности, освещения) для «Умного Дома» на основе системы MySensors

Проходил мимо, смотрю, а здесь вещи интересные о самоделках разных пишут. Я тоже недавно кое-что мастерил, дай, думаю, напишу, может кому и пригодится, ну или просто интересно будет. Речь идет о железе бюджетного DIY-датчика для встраивания в панели выключателей и розеток.

Но давайте по порядку.

Системой автоматизации для «Умного Дома» я увлекся уже сравнительно давно. Сейчас у меня здесь несколько разных систем в одно целое связаны. Тут есть и промышленные и самодельные компоненты. О последней самоделке я и хочу рассказать.

Некоторое время назад на просторах интернета натолкнулся я на систему домашней автоматизации MySensors . Довольно развитая (и постоянно развиваемая далее) беспроводная система на основе Arduino и nRF24L01+. Впрочем, речь не о том, кому интересно - посмотрит источник.

Главными достоинствами системы для меня были хорошая программная поддержка, бидирекциональность коммуникации, доступность компонентов и небольшая их стоимость.

Вдоволь наигравшись на макетных платах, я решил разработать устройство, которое можно достойно интегрировать в домашний интерьер (нельзя же WAF игнорировать). Получилось устройство, которое можно наряду с прочими утопить в стену в стандартной 63мм коробке.

Это первая сборка, последующие постараюсь сделать аккуратнее. Большая дыра (для датчика освещения) будет закрыта стержнем из оргстекла.

В полуразобранном виде выглядит это так:

Вид с другой стороны:

Все это состоит из (китайских) 8MHz/3,3V Arduino Pro Mini, радиомодуля nRF24L01+, датчика движения HC-SR510, датчика DHT22 (температура и влажность), датчика освещенности BH1750 и стандартной заглушки фирмы JUNG (наверняка можно использовать и другие, вроде Gira, Berker и т.д. я просто вял то, что было под рукой). Общая стоимость около 15$.

Печатная плата разработана в Eagle. Исходники . Заказано у ITEADStudio, сделано было хорошо (кроме шелка, надписи получились так себе).



Наверное шрифт слишком мелкий и тонкий. На гербере смотрелось неплохо.



В процессе сборки обнаружились некоторые мелкие неудобства, кое-что можно было бы улучшить, но в общем и целом плата вполне применима.

Добрый день, сегодня я поделюсь инструкцией по изготовлению часов с комнатным термометром(Часы на ардуино своими руками ). Часы работают на Arduino UNO, для отображения времени и температуры служит графический экран WG12864B. В качестве датчика температуры - ds18b20. В отличие от большинства других часов я не буду использовать RTS (Real Time Clock), а попробую обойтись без этого дополнительного модуля.

Схемы на ардуино отличаются своей простотой, и может начать изучать ардуино-каждый. О том как подключать библиотеки и прошивать ардуино можно почитать в нашей статье .

Приступим.

Для создания данных часов нам понадобится:

Arduino UNO (Или любая другая Arduino совместимая плата)
- Графический экран WG12864B
- Датчик температуры ds18b20
- Резистор 4.7 Ком 0.25 Вт
- Резистор 100 ом 0.25 Вт
- Батарейный отсек для 4 батареек типа АА «пальчиковых»
- Подходящая коробка
- Мелкий напильник
- Лак для ногтей (черный или под цвет корпуса)
- Немного тонкого пластика или картона
- Изолента
- Соединительные провода
- Монтажная плата
- Кнопки
- Паяльник
- Припой, канифоль
- Двусторонний скотч

Подготовка графического экрана.
С подключение экрана, на первый взгляд, возникает много проблем и сложностей. Но если вначале разобраться с их видами, станет намного легче и понятнее. Существует много разновидностей и типов экранов на контролере ks0107/ks0108. Все экраны принято делить на 4 типа:
Вариант A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Вариант B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Displays AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864J4, QY-12864F, TM12864L-2, 12864J-1
Вариант C: Shenzhen Jinghua Displays Co Ltd. JM12864
Вариант D: Wintek- Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19264/HD61202

Список не полный, их очень много. Самый распространённый и, на мой взгляд, удобный WG12864B3 V2.0. Дисплей можно подключить к Arduino по последовательному или параллельному порту. При использовании с Arduino UNO лучше выбрать подключение по последовательному порту – тогда нам потребуется всего 3 выхода микроконтроллера, вместо минимум 13 линий при подключении по параллельному порту. Подключается все довольно просто. Есть еще один нюанс, в продаже можно встретить два варианта дисплеев, со встроенным потенциометром (для регулировки контраста) и без него. Я выбрал, и советую тоже сделать вам, со встроенным.


Это уменьшает количество деталей и время пайки. Также стоит поставить токоограничительный резистор номиналом 100 Ом для подсветки. Подключая напрямую 5 вольт, существует риск сжечь подсветку.
WG12864B – Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) – 10
5 (R/W) – 11
6 (E) – 13
15 (PSB) – GND
19 (BLA) – через резистор - +5V
20 (BLK) – GND

Удобнее всего это все собрать сзади экрана и вывести от него 5 проводов подключения к Arduino UNO. В итоге должно получится примерно так:


Для тех кто все-таки выберет параллельное подключение приведу таблицу подключения.

И схема для экранов варианта B:



На одну линию связи может быть включено несколько датчиков. Для наших часов достаточно одного. Подключаем провод от контакта «DQ» ds18b20 к «pin 5» Arduino UNO.

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


Подключаем следующим образом: общий для всех трех кнопок провод подключаем к «GND» Arduino. Первую кнопку, она служит для входа в режим установки времени и переключения по времени и дате, подключаем к «Pin 2». Вторая, кнопка увеличения значения, - к «Pin 3», а третья, кнопка уменьшения значения, - к «Pin 4».

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


Спереди экрана по краю клеим двусторонний скотч на вспененной основе, желательно черный.


Подключаем экран к Arduino:


Плюс от батарейного отсека подключаем к «VIN» Arduino, минус к «GND». Размещаем его сзади Arduino. Перед установкой в корпус, не забудьте подключить датчик температуры и плату с кнопками.


Подготовка и заливка скетча.
Для датчика температуры нужна библиотека OneWire.

Вывод на экран осуществляется через библиотеку U8glib:

Для редактирования и заливки скетча надо установите эти две библиотеки. Сделать это можно двумя способами. Просто распаковать эти архивы и поместить распакованные файлы в папку «libraries», находящуюся в папке с установленной Arduino IDE. Или второй вариант установить библиотеки прямо в среде программирования. Не распаковывая скачанные архивы, в среде Arduino IDE выберите меню Скетч – Подключить библиотеку. В самом верху выпадающего списка выберите пункт «Добавить.Zip библиотеку». В появившемся диалоговом окне выберете библиотеку, которую вы хотите добавить. Снова откройте меню Скетч – Подключить библиотеку. В самом низу выпадающего списка вы должны увидеть новую библиотеку. Теперь библиотеку можно использовать в программах. Не забудьте после всего этого перезагрузить Arduino IDE.

Датчик температуры работает по протоколу One Wire и имеет уникальный адрес для каждого устройства - 64-разрядный код. Каждый раз искать этот код нецелесообразно. Поэтому необходимо вначале подключить датчик к Arduino, залить в нее скетч находящийся в меню Файл – Примеры – Dallas Temperature – OneWireSearch. Далее запускаем Инструменты - Монитор порта. Arduino должна найти наш датчик, написать его адрес и текущие показания температуры. Копируем или просто записываем адрес нашего датчика. Открываем скетч Arduino_WG12864B_Term, ищем строку:

Byte addr={0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97};//адрес моего датчика

Записываем адрес вашего датчика между фигурными скобками, заменяя адрес моего датчика.

Стока:

//u8g.setPrintPos(44, 64); u8g.print(sek); // Выводим секунды для контроля правильности хода

Служит для вывода секунд рядом с надписью «Data». Это необходимо для точной установки хода времени.
Если часы спешат или отстаю следует поменять значение в строке:

If (micros() - prevmicros >494000) { // поменять на другое для корректировки было 500000

Я опытным путем определил число, при котором часы идут достаточно точно. Если ваши часы спешат следует увеличить это число, если отстаю – уменьшить. Для определения точности хода и нужен вывод секунд. После точной калибровки числа, секунды можно закомментировать и таким образом убрать с экрана.

Идея этого проекта появилась и увлекла меня во время отпуска.

Мысль была примерно следующая: "Было бы классно иметь робо-руку, которая управлялась бы моей собственной!". И через некоторое время я принялся за разработку и реализацию этого проекта. Надеюсь, вам будет интересно!

Основные узлы проекта - перчатка и сама робо-рука. В качестве контроллера использовался Arduino. Движение робо-руки обеспечивается сервомоторами. На перчатке установлены датчики изгиба: переменные резисторы, которые меняют свое сопротивление пи изгибе. Они подключены к одной стороне делителя напряжения и постоянным резисторам. Arduino считывает изменение напряжения при изгибе датчиков и передает сигнал серводвигателям, которые пропорционально поворачиваются. Видео рабочего проекта приведено ниже.

Конструкция руки взята из open-source проекта InMoov. На странице проекта можно загрузить 3-D модели всех узлов и напечатать их на 3-D принтере.

Ниже приведены все шаги для реализации вашей собственной робо-руки с управлением от перчатки.

Необходимые материалы

Для проекта вам понадобятся:

Все! Вы можете начинать ваш проект робо-руки!

Печатаем руку

Рука является частью open-source проекта под названием InMoov. Это робот, который печатается на 3-D принтере. Рука - это лишь отдельный узел общей конструкции. Скачайте с этой страницы и напечатайте следующие детали:

Auriculaire3.stl

WristsmallV3.stl

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

RobCableFrontV1.stl

RobRingV3.stl (в этой детали пришлось сделать дополнительные отверстия, чтобы подошли мои сервы)

RobCableBackV2.stl

RobServoBedV4.stl

(Это две детали "обшивки" - они не обязательны с точки зрения жесткости конструкции и ее функционирования)


В общей сложности понадобилось около 13-15 часов для печати. Зависит от качества печати. Я использовал MakerBot Replicator 2X. Рекомендую печатать детали пальцев на стандартном или высоком разрешении, чтобы избежать нежелательного трения в конструкции.


Подключаем датчики изгиба к Arduino

Для подключения датчиков изгиба к Arduino нам в схему надо включить делитель напряжения. Датчики изгиба по сути являются переменным резистором. При использовании в паре с постоянным резистором, можно отслеживать разницу в напряжении двух резисторов. Отследить разницу можно с помощью аналоговых контактов Arduino . Схема подключения приведена ниже (красный коннектор - это напряжение, черный - земля, голубой - коннектор самого сигнала, который подключается к аналоговому входу Arduino).


Резисторы на фото имеют номинал 22 кОм. Цвета проводов соответствуют цветам, приведенным на схеме подключения.

Все контакты GND от датчиков соединены в общую Землю. Земля идет к пину GND на Arduino. +5V на Arduino подключается к общему контакту питания от всех датчиков. Каждый голубой коннектор сигнала подключается к отдельному аналоговому входу на микроконтроллере.




Я собрал схему на небольшой монтажной плате. Размеры платы желательно выбрать поменьше, чтобы в дальнейшем закрепить на перчатку. Закрепить на перчатке нашу собранную схему можно с помощью элементарной нити и иголки. Кроме того, не поленитесь и сразу же используйте изоленту на оголенных контактах.




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

Можем приступать к установке датчиков и нашей монтажной платы на саму перчатку. Сначала просверлите небольшое отверстие в пластике датчиков. Отверстия сверлятся в местах, где чувствительный элемент закончился. ВАЖНО! Ни в коем случае не сверлите отверстие в чувствительном материале. После этого оденьте перчатку. Сделайте отметки карандашом или ручкой на вершине каждого сустава. Эти места вы будете использовать для крепежа сенсоров. Датчики изгиба крепятся обычной ниткой. Пришейте сенсоры к перчатке. Используйте отверстие, которые вы сделали на концах датчика. В местах, где отмечены суставы сенсоры "прихватываются" нитью поверх. Более детально все это показано на фото ниже. Монтажная плата пришивается к перчатке аналогично сенсорам. Учтите, что для движения пальцев надо оставить определенный запас длины проводников. Это надо учесть при установке нашей монтажной платы и выборе длины коннекторов от нее к датчикам.






Я не буду детально останавливаться на этом шаге. Он очень подробно раскрыт на веб-сайте InMoov (в разделе "Assembly Sketches" и "Assembly Help"):

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


Не спешите устанавливать леску. Сначала проверьте работоспособность серводвигателей.

Проверка сервомоторов

На этом этапе сервы уже должны быть установлены в задней части вашей робо-руки. Для подключения серв к Arduino и источнику питания, я использовал небольшую макетную плату. Подключите каждый позитивный контакт серводвигателя (красный) к одной рельсе макетной платы, а негативный (черный или коричневый) - к другой рельсе.

ВАЖНО! Не забудьте подключить контакт Arduino к рельсе с отрицательным зарядом: помните, что все контакты Земля должны быть соединены между собой. Контакт VCC может подключаться к различным источникам питания, но GND должен быть одинаковым.

Загрузите программу на Arduino (файл с программой прилагается). Убедитесь, что подключение сенсоров, сервомоторов и т.п. Было правильным. Наденьте перчатку и включите Arduino. Серводвигатели должны вращаться в зависимости от того, каким пальцем вы будете двигать. Если сервы двигаются, значит все работает!


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

Если сервомоторы отрабатывают неправильно, убедитесь, что вы их правильно подключили (например, когда я работал над этим проектом, я, как обычно, забыл соединить пин GND Arduino с GND источника питания и всех серв. В этом случае работать ничего не будет). Убедитесь, что все отрабатывает перед тем, как двигаться дальше.

Добавляем леску

Добавить леску - это, наверное, самая сложная и ответсвенная часть проекта робо-руки. На сайте InMoov есть инструкция на этот счет. Концепция простая, но реализовать ее практически не так то просто. Обратите внимание, что эта часть проекта требует сосредоточения и терпения. Единственное отличие моего варианта от конструкции на InMoov - использование клея. Благодаря этому мы можем получить возможность более губкой настройки при калибровке серв. Для этого достаточно расплавить клей и подтянуть нужные нам болты. Хотя, конечно же, надежность конструкции падает. В конце-концов, после окончательной настройки и калибровки, мы в любой момент можем использовать другой вариант фиксации.

Для калибровки сервомоторов, проверните роторы так, чтобы пальцы робо-руки лежали на столе. Подключите ваш Arduino и источник питания. Выставьте качалки приводов таким образом, чтобы в полностью "лежащем" состоянии руки натяжение было максимальным.


Объяснить процесс калибровки достаточно сложно. Кроме того, инструкция с InMoov мне, например, не подошла. То есть, при крепеже вам надо проявить фантазию и подстроиться под ваши реалии - как то: тип качалок, тип лески или ниток, погрешности конструкции и сборки, расстояние установки сервомоторов относительно суставов робо-руки.

К счастью - это последний этап проекта!

Послесловие


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

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

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Комплексные системы управления инженерными коммуникациями жилища, известные под названием «Умный дом» набирают всё большую популярность. Широкому внедрению этих систем препятствует достаточно высокая стоимость комплектующих элементов и монтажных работ. Умный дом на базе Arduino представляет собой решение вполне доступное для всех, кто хоть немного разбирается в электронике.

Что такое Arduino

Ардуино – это бренд, под которым выпускаются аппаратные и программные средства для самостоятельного построения систем автоматики и телеуправления.

По сути это модульный конструктор, обладающий широкими возможностями. Аппаратные средства Ардуино представляют собой большой ассортимент печатных плат, на которых организованы различные датчики, исполнительные устройства и платы расширения. Ядром системы являются платы с программируемыми микроконтроллерами разного уровня сложности от Arduino Pro Mini до Arduino Mega. Платы расширения позволяют использовать большое количество внешних устройств.

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

Так широко распространённый модуль Arduino Uno с микроконтроллером Atmega 328 имеет следующие характеристики:

  • Цифровые входы/выходы – 14
  • Из них 6 – ШИМ
  • Аналоговые входы – 6
  • Память – 32 Кб
  • Питание – 7-12 В
  • Цена – 950 рублей

Цифровые контакты можно запрограммировать на выполнение конкретной функции. Это может быть вход или выход. Эти входы/выходы могут работать с устройствами, для функционирования которых достаточно двух уровней. Это логическая единица или уровень близкий к напряжению питания и логический низкий уровень соответствующий нулю. На цифровые входы можно подключать двухуровневые датчики. К ним относится пара магнит-геркон. Этот датчик реагирует на открывание дверей и окон. По такому принципу работают многие датчики охранной и пожарной сигнализации.

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

Аналоговые входы через аналогово-цифровые преобразователи передают на контроллер информацию о состоянии датчиков температуры, освещённости и некоторых других приборов. Сравнивая показания датчиков с командами, хранящимися в памяти, центральный блок системы может управлять устройствами, где требуется плавное изменение мощности. Шесть выходов, связанных с широтно-импульсным модулятором позволяют плавно управлять мощностью нагрузки. Например, регулировать яркость светильника, регулировать температуру обогревателя или управлять частотой вращения электродвигателя.

Самой мощной и многофункциональной платой этой линейки является Arduino Mega. На печатной плате смонтирован контроллер AT mega 2560 , дискретные элементы, порт USBконнектор для подключения питания. Плата имеет 54 универсальных контакта, которые можно запрограммировать на выполнение функций входа/выхода. 14 из них могут управлять аналоговыми устройствами при помощи широтно-импульсной модуляции. 16 аналоговых входов предназначены для подключения любых аналоговых приборов.

Плата контроллера Arduino Mega стоит в пределах 1 500 рублей. Программировать его проще всего с помощью персонального компьютера через USB-порт.

Периферийные модули для Ардуино

Плата контроллера является ядром системы, но подключать к ней какие либо устройства нельзя. Выходы имеют небольшую нагрузочную способность и ограниченный ток. Для организации системы управления бытовой техникой потребуются внешние силовые модули, устройства связи и другие устройства. Это не является проблемой, поскольку для контроллеров Arduino разработано большое количество периферийных модулей.

Вот только некоторые из них:

  • Газоанализатор – MQ-2
  • Датчик освещённости – 2CH-Light-2
  • Датчик температуры внешний – DS18B20-PL
  • Датчик температуры и влажности комнатный – DHT-11
  • Драйверы электродвигателя – L298N, L9110
  • Релейные модули – 1ch5V, 4ch5V
  • Модуль дистанционного управления IC2262/2272

Датчик, определяющий утечку газа в помещении, реагирует на пропан и бутан, которые являются составляющими бытового газа. Модуль имеет регулировку чувствительности и аналоговый/цифровой выходы. Датчик освещённости может являться частью автоматизированной системы управления светом. Он состоит из двух независимых каналов с индивидуальной регулировкой чувствительности. Уличный термодатчик предназначен для работы при температуре от – 55 до +125 градусов. Комнатный датчик температуры и влажности предназначен . Диапазон изменения температуры от 0 до +55 0 С и влажности от 20 до 90%.

Поскольку питающее напряжение модулей Ардуино лежит в диапазоне от 7 до 12 вольт, то для организации охранной или пожарной сигнализации можно использовать любые стандартные датчики, которые имеют такие же рабочие уровни.

Драйверы электродвигателей позволяют управлять однофазными, двухфазными, четырёхфазными и шаговыми двигателями. С помощью таких устройств можно открывать и закрывать жалюзи или шторы. Подключенные к драйверам сервоприводы позволяют регулировать поток теплоносителя в радиаторах отопления. Незаменимыми в системе «Умный дом» являются релейные ключи. Управляемые потенциалом логической единицы +5 вольт, реле допускают коммутацию нагрузок в цепях переменного тока до 10 ампер при напряжении до 250 вольт.

С их помощью можно включать и выключать электрические розетки, электронасосы и другие системы.

Модуль дистанционного управления состоит из пульта и приёмного устройства. Пульт оборудован четырьмя кнопками и обеспечивает передачу команд на приёмный блок на расстоянии до 100 метров. Все периферийные модули имеют одинаковое питающее напряжение и совместимы с любыми микроконтроллерами Arduino.

Организация системы «Умный дом»

Без определённых навыков, знания принципиальных схем и основ электроники за систему «Умный дом» в полном объёме лучше не браться.

Программирование микроконтроллеров линейки Ардуино осуществляется на языке С/С++.

Для начала можно написать простейшие программы, которые могут включать и выключать светодиод или управлять работой микроэлектродвигателя. Примеров таких программ очень много. В них используются простые операторы вида: если, пока, то и другие. Они позволяют писать программы даже школьникам. Когда первые программы будут правильно выполняться можно попробовать собрать более сложные устройства, где будут задействованы ШИМ выходы для плавного управления светом.

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

Для небольшого числа функций подойдёт микроконтроллер Arduino Uno и набор периферийных модулей.

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

Заключение

Контроллер Ардуино позволит выполнить проект умный дом и уложиться в сравнительно небольшую сумму. Если подсчитать все расходы на оборудование трёхкомнатной квартиры, то сумма вряд ли превысит 30-40 тысяч рублей. Если сократить число функций, бюджет окажется ещё более скромным.