Умный дом на arduino

28 июля 2018

Делаем умный дом на Arduino: введение и базовые понятия.

Картина ближайшего будущего для человека не может существовать без автоматизации процессов в окружающей его среде: беспилотные автомобили, роботы и конечно же умный дом!

Умный дом в наиболее простом объяснении понимается как пульт с волшебными кнопками, с помощью которых происходит управление освещением, климатом, приборами и другими процессами.

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

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

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

  • Готовые умные дома от крупных компаний стоят значительно дороже, чем разработанные и собранные вами самостоятельно.
  • Нужно понимать и уметь разбираться в процессах вашего умного дома, чтобы при малейшем сбое не обращаться к специалисту, который также будет опустошать ваш кошелек.
  • Опыт в разработке и отладке собственного умного дома бесценен и еще не раз вам пригодится!
  • Также стоит понимать, что беспощадный технический прогресс требует все больших навыков и знаний. Разбираться в высоких технологиях сейчас пойдет на пользу каждому.

Разберем основные моменты, чтобы понять саму технологию.

Конструкция умного дома состоит из следующих элементов:

  1. Контроллер — главный «мозг” системы. В него загружается программный код, определяются необходимые параметры системы, а сама информация передается на сервер.
  2. Сервер — это то, что связывает контроллер с исполнительными устройствами. Он обрабатывает всю информацию и от него зависит быстродействие и надежность системы.Сервер подключается к компьютеру в доме при помощи специального программного обеспечения (ПО)
  3. Исполнительные устройства — это различные приборы, которые питаются от сети (розетки, телевизор, лампочки, вентилятор и т.д.)
  4. Линии связи обеспечивают взаимодействие всех элементов умного дома посредством их соединения.

Соединение устройств бывает двух типов, по которым происходит и классификация умных домов: беспроводные и проводные.

У каждого из этих типов есть свои плюсы и минусы.

Беспроводной тип умных домов подразумевает собой взаимодействие всех элементов при помощи беспроводной передач данных (чаще всего через Wi-Fi и Bluetooth):

Плюсы( + )

  • Минимальное количество кабелей и проводов
  • Меньше занимает места
  • Удобно использовать

Минусы ( — )

  • Система уязвима перед хакерскими атаками: ее легко взломать по причине низкого уровня защиты беспроводных соединений
  • Высокая стоимость беспроводного оборудования
  • Низкая надежность от внешних воздействий и катаклизмов

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

Плюсов здесь много, среди которых:

  • Относительно низкая стоимость
  • Высокая надежность и устойчивость к помехам
  • Высокая скорость передачи данных и бесперебойность

Также умные дома подразделяются в зависимости от их архитектуры. Архитектура — это совокупность элементов системы, где каждый элемент выполняет свою задачу.

Раньше вся архитектура строилась вокруг одного мощного контроллера, который управлял всеми компонентами умного дома. Он оснащался всем, чем только можно: веб-сервером, облако и имел множество выводов для подключения всевозможных интерфейсов и устройств. Такой тип умных домов называется централизованным, когда система «танцует” от одного элемента.

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

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

Внимание! Когда вы будете подбирать модули для их взаимодействия в умном доме, то проверяйте их на совместимость, т.к. компоненты от разных производителей могут конфликтовать между собой.

А теперь поговорим и о самих производителях. Сейчас рынок интернета вещей буквально кишит различными компаниями и стартапами, предлагающими свои решения. Среди самых надежных и популярных считаются умные дома фирм KNX, ABB, Bticino, AMX и других.

Цены на такие системы начинаются от нескольких десятков тысяч рублей (сюда входят система точки доступа, блок питания, различные диммеры, датчики, выключатели и т.д.)

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

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

Вторую часть из цикла статей читайте

Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.

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

Содержание

Что такое Arduino

Arduino — это платформа для добавления и программирования электронных устройств, с типами управления: ручной, полуавтоматический и автоматический. Платформа представляет собой некий конструктор, с прописанными правилами взаимодействия элементов между собой. Система открытая, поэтому каждый заинтересованный производитель вносит лепту в развитие Arduino.

Функции стандартного умного дома:

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

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

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

Полезная информация! Arduino – итальянская компания, производящая и разрабатывающая компоненты ПО, для реальных и не сложных систем Smart Home, которые ориентированы на любого человека, заинтересовавшегося в этом вопросе. Архитектура полностью открыта, поэтому сторонние разработчики (преимущественно из Китая) уже успели полностью скопировать, и выпускают собственные альтернативные элементы системы, и ПО для них.

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

Набор умного дома Arduino

Проектирование умного дома Arduino

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

На базе Ардуино можно создать множество проектов, а затем скомпоновать их в единую систему. Среди таких:

  1. Контроль влажности в цоколе.
  2. Автоматическое включение конвекторов, при падении температуры в доме ниже допустимой в двух возможных вариантах – при наличии и отсутствии человека в комнате.
  3. Включение освещения на улице в сумерки.
  4. Отправка сообщений об изменениях каждого детектируемого состояния.

В качестве примера можно рассмотреть проектирование автоматики одноэтажного дома с двумя комнатами, подвальным помещением под хранение овощей. В комплекс входит семь зон: прихожая, душевая комната, кухня, крыльцо, спальня, столовая, подвал.

При составлении пошагового плана проектирования учитываем следующее:

  1. Крыльцо. При приближении владельца к дому ночью, включится освещение. Также следует учесть обратное – выходя из дома ночью, тоже надо включать освещение.
  2. Прихожая. При детектировании движения и в сумерки включать свет. В темное время необходимо, чтобы загорался приглушенный свет лампочки.
  3. Подвал на улице. При приближении хозяина, в темное время суток, должна загораться лампа возле дверцы подвала. Открывая дверь, загорается свет внутри, и выключается в том случае, когда человек покидает здание. При выходе, включается освещение на крыльце, а по мере отхождения от подвального помещения, выключается возле дверцы. В подвале установлен контроль влажности и при достижении критической температуры, включаются несколько вентиляторов для улучшения циркуляции воздуха.
  4. Душевая комната. В ней установлен бойлер. Если человек присутствует в доме, бойлер включает нагрев воды. Автоматика выключается, когда максимальная температура нагрева достигнута. При входе в туалет, включается вытяжка и свет.
  5. Кухня. Включение основного освещения ручное. При длительном отсутствии хозяина дома на кухне, свет выключается автоматически. Во время приготовления еды автоматически включается вытяжка.
  6. Столовая. Управление светом происходит по аналогии с кухней. Присутствуя на кухне, есть возможность дать голосовую команду ассистенту умной колонки, чтобы тот запустил музыку.
  7. Спальная комната. Включение освещение происходит вручную. Но есть автоматическое выключение, если в комнате долгое время отсутствует человек. Дополнительно, нужно выключать освещение по хлопку.

По всему дому расставлены конвекторы. Необходим автоматический контроль поддерживаемой температуры в доме в двух режимах: когда человек есть в доме и вовремя его отсутствия. В первом варианте, температура должна опускаться не ниже 20 градусов и подниматься не выше 22. Во втором, температура дома должна опускаться не ниже 12 градусов.

Проект готов, осталось заняться его реализацией.

Плюсы и минусы системы

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

Преимущества умного дома Arduino:

  1. Использование компонентов других производителей с контроллером Arduino.
  2. Создание собственных программ умного дома, так как исходных код проекта открыт.
  3. Язык программирования простой, мануалов в сети для него много, разобраться сможет даже начинающий.
  4. Простой проект делается за один час практики с помощью дефолтных библиотек, разработанных для: считывания сигналов кнопок, вывода информации на ЖК-дисплеи или семи сегментные индикаторы и так далее.
  5. Запитать, посылать команды и сообщения, программировать, или перенести готовые программные решения в Arduino, можно с помощью USB-кабеля.

Недостатки:

  1. Среда разработки Arduino IDE – это построенная на Java ппрограма, в которую входит: редактор кода, компилятор, передача прошивки в плату. По сравнению с современными решениями на 2019 год – это худшая среда разработки (в том виде, в котором она подается). Даже когда вы перейдете в другую среду разработки, IDE вам придется оставить для прошивки.
  2. Малое количество флэш-памяти для создания программ.
  3. Загрузчик нужно прошивать для каждого шилда микроконтроллера, чтобы закончить проект. Его размер – 2 Кб.
  4. Пустой проект занимает 466 байт на Arduino UNO и 666 байт в постоянной памяти платы Mega.
  5. Низкая частота процессора.

Модули и решения «умного дома» на Ардуино

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

Существует три основных микроконтроллера в системе:

  • Arduino UNO – средних размеров плата с собственным процессором и памятью. Основа — микроконтроллер ATmega328. В наличии 14 цифровых входов/выходов (6 из них можно использовать как ШИМ выводы), 6 аналоговых входов, кварцевый резонатор 16 МГц, USB-порт (на некоторых платах USB-B), разъем для внутрисхемного программирования, кнопка RESET. Флэш-память – 32 Кб, оперативная память (SRAM) – 2 Кб, энергонезависимая память (EEPROM) – 1 Кб.

Arduino UNO

  • Arduino NANO – плата минимальных габаритов с микроконтроллером ATmega328. Отличие от UNO – компактность, за счет используемого типа контактных площадок – так называемого «гребня из ножек».


Arduino Nano

  • Arduino MEGA – больших размеров плата с микроконтроллером ATMega 2560. Тактовая частота 16 МГц (как и в UNO), цифровых пинов 54 вместо 14, а аналоговых 16, вместо 6. Флэш-память – 256 Кб, SRAM – 8 Кб, EEPROM – 4.

Arduino Mega

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

Сейчас на рынке представлено 3 поколение плат (R3) Ардуино. Обычно, при покупке платы, в комплект входит обучающий набор для собирания StarterKit, содержащий:

  1. Шаговый двигатель.
  2. Манипулятор управления.
  3. Электросхематическое реле SRD-05VDC-SL-C 5 В.
  4. Беспаечная плата для макета MB-102.
  5. Модуль с картой доступа и и двумя метками.
  6. Звуковой датчик LM393.
  7. Датчик с замером уровня жидкости.
  8. Два простейших устройства отображения цифровой информации.
  9. LCD-дисплей для вывода множества символов.
  10. LED-матрица ТС15-11GWA.
  11. Трехцветный RGB-модуль.
  12. Температурный датчик и измеритель влажности DHT11.
  13. Модуль риал тайм DS1302.
  14. Сервопривод SG-90.
  15. ИК-Пульт ДУ.
  16. Матрица клавиатуры на 16 кнопок.
  17. Микросхема 74HC595N сдвиговый регистр для получения дополнительных выходов.
  18. Основные небольшие компоненты электроники для составления схемы.

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

Сенсоры и датчики

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

Плата дополняется совместимыми датчиками движения или иными PIR-сенсорами, которые определяют присутствие или отсутствие человека в зоне действия, и привязывается через реле к освещению.

Датчик Arduino

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

Газовый датчик Arduino

Реле

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

Реле Arduino

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

Для более крупного проекта лучше применять шину реле, например, восьмиканальный модуль реле 5V.

Контроллер

В качестве контроллера выступает плата Arduino UNO. Для монтажа необходимо знать:

  • описание элементов;
  • распиновку платы;
  • принципиальную схему работы платы;
  • распиновку микроконтролеера ATMega 328.

Программная настройка

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

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

Дистанционное управление «умным» домом

Для подключения платы к интернету, понадобится:

  • Wi-Fi-адаптер, настроенный на прием и передачу сигнала через маршрутизатор;
  • или подключенный через Ethernet кабель Wi-Fi роутер.

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

Есть несколько вариантов управления умным домом Arduino: с помощью приложения для смартфона или через веб. Рассмотрим каждое подробнее.

Приложения управления

Так как данная система-конструктор – не закрытая экосистема, то и приложений, реализованных для нее очень много. Они отличаются друг от друга не только интерфейсом, но и выполнением различных задач.

Blynk

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

Virtuino

Крутое бесплатное приложение на Android, позволяющее совмещать проекты в одно целое и управлять с помощью Wi-Fi или Bluetooth сразу несколькими платами.

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

Bluino Loader – Arduino IDE

Приложение для телефона, представляет собой программную среду для кодирования Arduino. С его помощью можно быстро и легко скомпилировать код в файл, а затем отправить по OTG-переходнику на плату.

Arduino Bluetooth Control

Приложение контролирует контакты Arduino и управляет основными функциями по Блютузу. Но, программа не направлена на удаленное управление, только мониторинг.

RemoteXY: Arduino Control

С помощью приложения пользователь может создать свой собственный интерфейс управления платой. Подключение происходит с помощью Wi-Fi, Блютуз или интернет, через облачный сервер.

Bluetooth Controller 8 Lamp

Созданное с помощью Bluetooth-модулей HC-05, HC-06 и HC-07 приложение, обеспечивает восьмиканальный контроль. Таким способом достигается контроль и регулирование работы Ардуино, в соответствии с каждым из 8 светодиодов.

BT Voice Control for Arduino

Приложение специально заточено под дистанционное управление данными с ультразвукового датчика, подключенного по блютуз через Arduino. Реализуется подключения через модуль HC-05.

Подключившись, ультразвуковой датчик сможет передавать информацию о расстоянии до объекта, которая отобразится в интерфейсе приложения на телефоне.

IoT Wi-Fi контроллер

Приложение с интерфейсом, информирующем о конфигурации каждого входа/выхода в плате Arduino. В утилите можно переключать в реальном времени GPIO и показывать значение АЦП.

Веб-клиент

Управлять удаленно платой умного дома можно, разместив получение и обработку данных умного дома на веб-сервере. Естественно, сервер для умного дома Ардуино нужно создавать самостоятельно.

Для этих целей понадобится Arduino Ethernet Shield – сетевое расширение для пинов Ардуино Уно, позволяющее добавить разъем RJ-45 для подключения к сети.

При удаленном подключении, необходимо обеспечить внешнее питание платы не от USB.

Затем, подключите по USB плату к компьютеру, а по Ethernet плату к роутеру, которой раздает интернет компьютеру. При правильном установлении соединения, вы увидите зеленый свечение на порту.

После этого, нужно использовать библиотеки шилдов Ethernet и в среде разработки IDE написать код для создания сервера и отправки данных на сервер. Пример самодельного сервера неплохо описан в данной инструкции.

Уведомления по SMS

С помощью подключаемой библиотеки GSM в Arduino IDE можно:

  1. Работать с голосовыми вызовами.
  2. Получать и отправлять СМС.
  3. Подключаться к Интернету через GPRS.

Работает схема через специальную плату расширения GSM, содержащую специальный модем.

О создании универсальной сигнализации на Arduino, с отправкой СМС уведомления на смартфон можно узнать из соответствующей видеоинструкции.

Обучение азов Arduino

С помощью приложения «Справочник по Arduino 2» можно в течении двух недель освоить материал. Приложение полностью автономно и не требует подключение к интернету. В нем описана такая информация: функции, данные, операторы, библиотеки Arduino.

После освоения азов, можно посетить ресурс Habrahabr, на котором собраны 100 уроков по программированию на Arduino.

Тем, кто привык черпать знания из книг, станет замечательным пособием для теории и практики «Джереми Блум: изучаем Arduino».

Самый популярный учебник по Arduino

В книге приведены основные сведения об аппаратном и программном обеспечении Ардуино. Рассказаны принципы программирования в среде Arduino IDE. Автор книги учит анализу электрических схем и чтению технических заданий. Информация из книги поможет в дальнейшем определится с выбором подходящих деталей для создания умного дома.

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

Видео по теме

Отличным решением для заинтересовавшихся в теме, станет видео для начинающих. В нем описаны основные элементы платы, зачем они используются, а также рассказаны основы программирования в среде Arduino IDE.

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

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

Статья посвящена подключению и работе с серийным модулем TTL камеры и Arduino.

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

Описание и технические характеристики камеры

Хотелось бы более детально остановиться на том, как именно подобные модули обеспечивают и фото и видеосъемку. Изначально камера была разработана с целью наблюдения. То есть, основная задача была стримить видео с пина Video (в черно-белом цвете) и обрабатывать команды по серийному протоколу связи. С помощью серийного протокола можно запросить у модуля камеры остановить кадр видеосъемки и сохранить полученный кадр в формате JPEG. Например, модуль камеры в стандартном режиме работы будет стримить видео. Когда камера обнаружит движение, будет сделано фото, которое сохранится на карту памяти для дальнейшего анализа.

Разрешение на модуле камеры не большое – максимальный размер фото 630х480 пикселей. При этом камера чувствительна к инфракрасному излучению, благодаря чему обнаруживаются изменения в цветопередаче. Основная причина этих недостатков – модуль камеры предназначен для наблюдения, а не качественной фотографии. Существуют модули и с другими параметрами. Рассматриваемый нами – один из самых лучших по своим техническим характеристикам.

Технические характеристики модуля камеры

  • Размер модуля: 32 м x 32 мм
  • Фотоматрица: CMOS 1/4 дюйма
  • Количество пикселей: 0.3 M
  • Размер пикселя: 5.6 мкм * 5.6 мкм
  • Формат на выходе: Стандартный JPEG/M-JPEG
  • Баланс белого: автоматический
  • Экспозиция: автоматическая
  • Коэффициент передачи: автоматический
  • Динамический диапазон: 60 Дб
  • Максимальное аналоговое усиление: 16 Дб
  • Скорость кадров: 640*480 30 кадров в секунду
  • Режим сканирования: прогрессивное сканирование
  • Угол обзора: 60 градусов
  • Расстояние наблюдения: 10 метров, максимум 15 метров (настраиваемое)
  • Размер изображения: VGA (640*480), QVGA (320*240), QQVGA (160*120)
  • Скорость передачи данных: по умолчанию 38400 (В даташите указано, что вы можете менять скорость с помощью соответствующих команд, но на практике это не работает)
  • Потребляемый ток: 75 мА
  • Рабочее напряжение: постоянный ток +5В
  • Связь: 3.3В TTL (три проводника TX, RX, GND)

В качестве примера работы видеокамеры ниже приведены две фотографии: первая – в комнате в солнечный день и вторая – на улице в дождливый.

Подключение камеры

Как правило модуль продается без коннекторов, так что придется запаять проводники к предусмотреным пинам. Хорошая новость: контакты находятся на достаточно большом расстоянии друг от друга (около 2 мм). Можно использовать достаточно толстый проводник и жало для распайки.

Если вы не планируете использовать возможности видеосъемки, можно использовать четыре провода. Мы используем красный для пина +5 В, черный для Земли, белый для пина RX (данные, которые поступают на камеру от Arduino) и зеленый для пина TX (данные, которые поступают с камеры).

Если вы планируете использовать NTSC видео-выход для подключения к телевизору или монитору, припаяйте еще один черный проводник к пину Земля и желтый к пину CVBS.

Если у вас водонепроницаемая модель камеры, в ней уже будут предусмотрены следующие коннекторы:

  • Красный подключен к +5 В;
  • Черный подключен к Земле;
  • Зеленый – RX;
  • Белый – TX;
  • Желтый – сигнал NTSC видео;
  • Коричневый – Земля NTSC видео.

Проверка работоспособности камеры

Один из самых быстрых методов проверки работоспособности камеры – использование NTSC видео выхода для подключения. В этом случае при настройке параметров изображения и фокусировки вы моментально увидите результат. В комплексе с программой CommTool, которую мы рассмотрим ниже, это идеальный метод для ознакомления с основаи работы с модулем камеры и Arduino.

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

К сожалению, перейти из режима NTSC в режим PAL невозможно.

Подключите кабель NTSC к монитору и подключите красный и черный кабели к источнику питания +5 В. На мониторе тут же появится черно-белое изображение!

Использование CommTool

Для использования windows-приложения Comm Tool, необходимо наладить обмен данными с камерой по серийному протоколу. Мы предлагаем два варианта. Первый – использовать переходник для FTDI или какой-то USB/TTL конвертер. В случае с Arduino вы можете использовать серийный чип (чип FTDI), загрузив следующий скетч на Arduino:

// empty sketch

void setup()

{

}

void loop()

{

}

Примечание: Этот метод сработает только на Arduino с отдельным USB-интерфейсом, вроде Uno. С платами Leonardo так не получится!

Если вы используете Leonardo, Micro, Yun, или другие контроллеры на основании ATmega32U4, используйте этот Leo_passthru скетч вместо «пустого» скетча.

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

//использовании плат Arduino Leonardo в Windows.

// Красный подключен к +5 В

// Черный — к земле

// Зеленый — к цифровому пину 0

// Белый — к цифровому пину 1

void setup() {

Serial1.begin(57600);

Serial.begin(57600);

}

void loop()

{

while (Serial.available())

Serial1.write(Serial.read());

while (Serial1.available())

Serial.write(Serial1.read());

}

Теперь подключите камеру к Arduino следующим образом:

На водонепроницаемых камерах белый и зеленый провода часто меняются местами! Так что учтите это при подключении. Красный коннектор должен все равно идти к +5 В, а черный – к Земле.

Обратите внимание, что при подключении камеры к Arduino используется резистор на 10 кОм. Питание логики камеры 3.3 В, так что опустить напряжение с 5 В до 2.5 не такая уж плохая идея. В обычном режиме на выходе с цифрового пина 0 формируется сигнал HIGH, который соответствует 5 В. При нашем подключении, с учетом сопротивления резистора, подключенного к входному сигналу (белый проводник), напряжение не превысит 3.3 В.

Теперь загрузите и установите программное обеспечение VC0706 CommTool.

Запустите программу и выберите COM порт, к которому подключена Arduino.

После этого Open порт и нажмите Get Version

Обратите внимание, что отобразилось VC0703 – Почему DSP запрограммирован под другим номером – точно не известно. В любом, случае, ответ мы получили.

Следующая кнопка – рядом с FBUF CTRL.

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

  • Установите камеру на объекте для его фотографии;
  • Нажмите Stop FBuf, чтобы «заморозить» кадр;
  • Нажмите Sel File, чтобы выбрать файл для сохранить в JPG формате.

После этого нажмите Read (рядом с Sel File), чтобы считать кадр с камеры.

Вот и все! Теперь вы с легкостью можете загружать фото с камеры. Чтобы сделать новый снимок, нажмите Resume. После этого нажмите Stop CFbuf для нового фото. Кроме того, вы можете выбрать Compression Ratio и выбрать качество снимка. Учтите, что время обработки тоже изменится. Простого пути изменения размера фотографии в этой программе нет, но мы можем это сделать в скетче Arduino.

Вы могли заметить, что есть выпадающий список для изменения скорости передачи данных. По умолчанию скорость выставлена на 38400.

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

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

В программе куча настроек. Рекомендуем ознакомится с их перечнем ниже и не менять их, пока вы на 100% уверены, что это за настройка и зачем она вам нужна.

  • Config – смотрите выше.
  • Get Version – смотрите выше.
  • R/W Data – используется для передачи данных на процессор DSP чипа. Не стоит менять эту настройку без стопроцентного понимания, зачем это необходимо, так как можно получить конфликт с камерой.
  • Color Ctrl – служит для выбора цвета, черно-белого режима или авто выбора (вероятно, основанного на условиях освещенности). Автоматический режим отлично отрабатывает, так что можно использовать именно его.
  • Mirror Ctrl – скорее всего – переворот изображения (зеркальный эффект).
  • Power Ctrl – проверка питания. Можно настроить автоматический режим отключения, когда нет движения.
  • Timer Ctrl – в DSP есть встроенный RTC, который можно настроить. Однако батарейки нет, так что после перезагрузки настройки собьются.
  • AE Ctrl – управление авто контрастом/яркостью. По умолчанию настройки установлены на автоматический выбор для сьемки в помещении и на открытом пространстве.
  • Motion Ctrl – настройки системы обнаружения движения. Можно с ними поиграться и протестировать. Есть скетч для Arduino для обнаружения движения объектов, который можно использовать.
  • OSD Config – протокол, который, судя по отзывам, не поддерживается большинством камер 🙁
  • Image property – смотрите выше.
  • Gamma – точная настройка гаммы CMOS сенсора. Настройки по умолчанию хорошие. Поэкспериментировать можно.
  • SPI Flash – скорее всего – считывание и запись данных в SPI хранилище.
  • Other Ctrl – возможно, для цифро-аналогового преобразования.
  • Up/Down Load – считывание и запись данных на флэш-память. Вероятно, для загрузки нового DSP кода.
  • System Reset – перезагрузка модуля. Актуальна, когда модуль перестает отвечать.
  • FBuff Ctrl – смотрите выше.
  • Zoom Ctrl – в модуле есть встроенный ‘Pan Tilt Zoom’, НО он рассчитан только для видеосьемки. С фотографиями отрабатывать не будет. Можете поэкспериментировать с PTZ, может оказаться полезным.

Использование видеокамеры с Arduino

Давайте подключим камеру к нашему микроконтроллеру (в данном случае — Arduino). Подключение похоже на предложенный выше вариант. Для подключения используем два цифровых пина и серийный протокол для обмена данными с модулем. Для сохранения снимков вам понадобится карта памяти. Можно использовать дополнительные microSD модули или шилды.

Подключите видеокамерукамеру к Arduino, как показано на рисунке ниже:

В водонепроницаемых камерах белый и зеленый проводники могут располагаться наоборот! Так что проверьте это перед подключением. Красный кабель идет к +5 В, черный – к Земле.

Предлагаем для начала проверить microSD карту. После проверки, можно устанавливать библиотеку VC0706 для видеокамер. Скачать ее можно здесь: Github

Переименуйте распакованную папку Adafruit_VC0706. Проверьте наличие файлов Adafruit_VC0706.cpp и Adafruit_VC0706.h. Переместите папку с библиотекой Adafruit_VC0706 в папку /libraries/ folder. Возможно, вам надо будет создать подпапку в библиотеке. Перезагрузите Arduino IDE.

Если вы используете Arduino v23 или более раннюю версию, вам надо будет дополнительно установить библиотеку NewSoftSerial. Скачать ее можно здесь: NewSoftSerial10c.zip. В Arduino 1.0 эта библиотека встроена (называется SoftwareSerial).

Первый снимок

Что ж, теперь можно делать ваш первый снимок. Откройте Arduino IDE и выберите скетч File-> Examples-> Adafruit_VC0706-> Snapshot. Загрузите его на Arduino. Откройте окно серийного монитора, в котором вы увидите как сделается фото 640×480 и сохранится на карту памяти microSD. Карту можно извлечь и перенести с нее данные на ваш компьютер.

Ниже показаны несколько настроек, которые можно поменять для работы с вашей видеокамерой. Первое – замена пинов, к которым подключена камера. Можно использовать два любых цифровых пина. Замена проводится в следующей строке:

// This is the camera pin connection. Connect the camera TX

// to pin 2, camera RX to pin 3

NewSoftSerial cameraconnection = NewSoftSerial(2, 3);

Можно изменить разрешение снимка на 160×120, 320×240 или 640×480. Для этого используются следующие строки:

// Set the picture size — you can choose one of 640×480, 320×240 or 160×120

// Remember that bigger pictures take longer to transmit!

cam.setImageSize(VC0706_640x480); // biggest

//cam.setImageSize(VC0706_320x240); // medium

//cam.setImageSize(VC0706_160x120); // small

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

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

Загрузите скетч из File-> Examples-> Adafruit_VC0706-> MotionDetect на Arduino. Как только он загрузится, будет сделан снимок. Подождите несколько минут и помашите рукой перед камерой, будет сделано еще одно фото.

Включать и отключать функцию обнаружения движения можно с помощью вызова setMotionDetect()

// Motion detection system can alert you when the camera ‘sees’ motion!

cam.setMotionDetect(true); // turn it on

//cam.setMotionDetect(false); // turn it off (default)

Вам надо подать запрос на камеру при обнаружении движения, вызвав motionDetected() – в результате вам вернется true, если движение было и false, если не было.

Ручная настройка фокуса

В камере не предусмотрен автофокус, есть только ручной режим. С одной сторы это хорошо, с другой – плохо. Камера поставляется с хорошей глубиной фокуса, которая подходит для большинства задач. Если вы планируете настраивать фокус, очень рекомендуем предварительно подключить модуль камеры к монитору, как мы это делали выше. Так вы сможете в режиме реального времени отследить изменение настроек. После настройки, объектив затягивается винтом.

Если у вас влагозащищенная камера, для настройки придется снять корпусную часть и только потом провести настройку.

Дополнительные вопросы-пояснения

Как можно изменить скорость передачи данных на модуле видеокамеры?

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

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

С какой скоростью можно делать снимки?

Рассмотренная в данной статье камера достаточно медленная. Для передачи изображения понадобится около 30 секунд. Обратите внимание, что это характеристика, которая отвечает за обработку и сохранение снимка в том числе. Для анализа в режиме реального времени подобной задержки нет.

Почему такие бледные цвета? Снимки похожи на монохромные.

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

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

Есть ли альтернативные библиотеки для камеры и Arduino?

Например, есть еще одна библиотека, которую можно тоже скачать на Github

Так что экспериментируйте, тестируйте и развивайте свои проекты на Arduino.

Развитие средств автоматизации привело к созданию комплексных систем, улучшающих качество жизни человека. Многие известные производители электроники и программных сред предлагают готовые типовые решения для различных объектов.

Разработать самостоятельные проекты и собрать под свои потребности «умный дом” на Ардуино сможет даже неопытный пользователь. Главное – понять основы и не бояться экспериментировать.

В этой статье рассмотрим принцип создания и основные функции автоматизированного дома на базе устройств Arduino. Также рассмотрим применяемые виды плат и основные модули системы.

Создание систем на платформе Arduino

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

Классический «умный дом” состоит из автоматизированных блоков, которые выполняют следующие функции:

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

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

Рекомендуем ознакомиться с лучшими умными устройствами для дома.

Для обучения работы с Arduino можно на сайте производителя приобрести стартовый набор (Starter Kit). Знание технического английского обязательно, так как документация не русифицирована

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

Основные элементы плат

Главным элементом «умного дома” является одна или несколько центральных (материнских) плат. Они отвечают за взаимодействие всех элементов. Только определив задачи, которые необходимо будет решить, можно приступать к выбору основного узла системы.

Материнская плата объединяет в себе следующие элементы:

  • Микроконтроллер (процессор). Основное его предназначение – выдавать и измерять напряжение в портах в диапазоне 0-5 или 0-3.3 В, запоминать данные и производить вычисления.
  • Программатор (есть не у всех плат). С помощью этого устройства в память микроконтроллера записывают программу, согласно которой будет работать «умный дом”. К компьютеру, планшету, смартфону или другому устройству его подключают при помощи USB-интерфейса.
  • Стабилизатор напряжения. Необходимо устройство на 5 вольт, требуется для питания всей системы.

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

Платы Arduino и шилды под них лучше приобретать у производителя, так как они качественнее совместимых устройств, которые выпускают в Китае

Существуют два вида портов:

  • цифровые, которые помечены на плате буквами «d”;
  • аналоговые, которые помечены буквой «a”.

Благодаря им микроконтроллер осуществляет связь с подключенными устройствами. Любой порт может работать как на получение сигнала, так и на его отдачу. Цифровые порты с пометкой «pwm” предназначены для ввода и вывода сигнала типа ШИМ (широтно-импульсная модуляция).

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

При этом надо понимать, что система «умный дом” необязательно должна быть завязана в блок управления на основе одной материнской платы. Такие функции как, например, включение искусственного освещения придомовой территории в зависимости от времени суток и поддержание резерва воды в накопительном баке являются независимыми друг от друга.

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

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

Каждый микропроцессор оснащен тремя видами памяти:

  • Flash Memory. Основная память, где хранится код программы управления системой. Незначительную ее часть (3-12 %) занимает вшитая программа загрузки (bootloader).
  • SRAM. Оперативная память, где хранятся временные данные, необходимые при работе программы. Отличается высокой скоростью работы.
  • EEPROM. Более медленная память, где также можно хранить данные.

Основное отличие видов памяти для хранения данных заключается в том, что при выключении электроэнергии информация, которая записана в SRAM, теряется, а в EEPROM остается. Но у энергонезависимого типа есть и недостаток – ограниченное число циклов записи. Это нужно помнить при создании собственных приложений.

В отличие от применения Arduino в робототехнике, для большинства задач «умного дома” не нужно много памяти ни для программ, ни для хранения информации.

Виды плат для сборки умного дома

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

Вид #1 — Arduino Uno и ее производные

Наиболее часто в системах «умный дом” применяют платы Arduino Uno и Arduino Nano. Они обладают достаточным функционалом для решения типичных задач.

Наличие питания полноформатных плат от напряжения 7-12 Вольт предоставляет множество преимуществ. Прежде всего, это возможность длительной автономной работы от стандартных батареек или аккумуляторов

Основные параметры Arduino Uno Rev3:

Не так давно вышла модификация – Uno Wi-Fi, которая содержит интегрированный модуль ESP8266, позволяющий обмениваться информацией с другими устройствами по стандарту 802.11 b/g/n.

Отличие Arduino Nano от своего более габаритного аналога заключается в отсутствии собственного гнезда питания от 12 В. Это сделано, чтобы достигнуть меньшего размера устройства, что позволяет его легко спрятать в маленьком пространстве. Также для этих целей стандартное USB-подключение заменено чипом с mini-USB кабелем. У Arduino Nano по сравнению с Uno на 2 аналоговых порта больше.

Есть еще одна модификация платы Uno – Arduino Mini. Она еще меньше чем Nano, и с ней работать гораздо сложнее. Во-первых, отсутствие USB-порта создает проблему с прошивкой, так как для этого придется использовать USB-Serial Converter. Во-вторых, эта плата более привередлива по питанию – необходимо обеспечить диапазон входящего напряжения 7-9 В.

По описанным выше причинам плату Arduino Mini редко используют для работы «умного дома”. Обычно ее применяют либо в робототехнике, либо при реализации уже готовых проектов.

Вид #2 — Arduino Leonardo и Micro

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

Таблица размеров и габаритов моделей Uno, Leonardo и их миниатюрных аналогов. Разработчиками не соблюдена логика в названиях – «нано” должна быть самой маленькой

Основные параметры Arduino Leonardo следующие:

Как видно из приведенного списка параметров, у Leonardo больше портов, что позволяет нагружать эту модель большим числом датчиков.

Также для Leonardo существует абсолютно идентичный по характеристикам миниатюрный аналог под названием Micro. У него отсутствует питание от 12 В и вместо полноценного USB-входа присутствует чип под mini-USB кабель.

Модификация Leonardo под названием Esplora – чисто игровая модель и под нужды «умного дома” не подходит.

Вид #3 — Arduino 101, Arduino Zero и Arduino MKR1000

Иногда для работы систем «умного дома”, реализованных на базе Arduino, необходима большая вычислительная мощность, которую 8-битные микроконтроллеры не в состоянии обеспечить. Такие задачи как распознавание голоса или изображения требуют быстрого процессора и значительного для таких устройств объема оперативной памяти.

Для решения подобных специфических задач применяют мощные платы, функционирующие согласно концепции Arduino. Количество портов у них приблизительно такое же, как и у плат Uno или Leonardo.

Arduino 101 имеет те же габариты, что Uno или Leonardo, но весит почти в два раза больше. Причина этого – наличие двух USB-входов и дополнительных чипов

Одна из наиболее простых в использовании, но мощных плат – Arduino 101 имеет следующие характеристики:

  • процессор: Intel Curie (32 bit, 32 MHz);
  • flash memory: 196 KB;
  • SRAM: 24 KB;
  • EEPROM: нет.

Дополнительно плата оснащена BLE-функционалом (Bluetooth Low Energy) с возможностью простого подключения готовых решений, таких как датчик сердцебиения, получение информации о погоде за окном, отсылки текстовых сообщений и т.д. Также в устройство интегрированы гироскоп и акселерометр, но их используют в основном в робототехнике.

Еще одна похожая плата – Arduino Zero имеет следующие показатели:

  • процессор: SAM-D21 (32 bit, 48 MHz);
  • flash memory: 256 KB;
  • SRAM: 32 KB;
  • EEPROM: нет.

Отличительной особенностью этой модели является наличие встроенного отладчика (EDBG). С его помощью гораздо проще проводить поиск ошибок при программировании платы.

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

Arduino MKR1000 – еще одна модель, подходящая для мощных вычислений. Она имеет микропроцессор и память, аналогичные Zero. Основное ее отличие – наличие интегрированных Wi-Fi-чипа с протоколом 802.11 b/g/n и крипто-чипа с поддержкой алгоритма SHA-256 для защиты передаваемых данных.

Вид #4 — модели семейства Mega

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

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

Если таких зон в коттедже более 10, то для управления всей системой необходимо более 30 портов. Конечно, можно использовать несколько плат типа Uno под общим управлением одной из них, однако это создает дополнительные сложности коммутации. В этом случае целесообразно использовать модели семейства Mega.

Размер плат семейства Mega (101.5 x 53.4 см) больше чем у рассмотренных ранее моделей. Это техническая необходимость – иначе такое количество портов не разместить

Плата Arduino Mega построена на базе достаточно простого 8-битного 16-мегагерцового микропроцессора aTMega1280.

Она обладает большим объемом памяти:

  • flash memory: 128 KB;
  • SRAM: 8 KB;
  • EEPROM: 4 KB.

Но главное ее достоинство – наличие множества портов:

  • количество цифровых портов: 54;
  • из них с функцией ШИМ: 15;
  • количество аналоговых портов: 16.

У этой платы существует две современные разновидности:

  • Mega 2560 основана на микропроцессоре aTMega2560, отличающимся большим объемом flash памяти – 256 KB;
  • Mega ADK помимо микропроцессора aTMega2560 оснащена USB-интерфейсом с возможностью подключения к устройствам на базе операционной системы Android.

У модели Arduino Mega ADK существует одна особенность. При подключении телефона к USB-входу возможно следующая ситуация: если телефону будет нужна зарядка, то он начнет ее «тянуть” из платы. Поэтому есть дополнительное требование к источнику электроэнергии – он должен обеспечить силу тока в 1,5 ампера. При осуществлении питания через батарейки это условие нужно учитывать.

Сделать автономное питание для Arduino можно с помощью подключенных аккумуляторов или батареек. Комбинируя последовательное и параллельное соединение можно добиться нужного вольтажа и длительного времени работы

Due – еще одна модель от Arduino, объединяющая мощь микропроцессора и большое количество портов.

Ее характеристики следующие:

Аналоговые контакты этой платы могут работать как в привычном для Arduino 10-битном разрешении, что сделано для совместимости с предыдущими моделями, так и в 12-битном, который позволяет получать более точный сигнал.

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

Все модули, которые будут подключены к плате, имеют как минимум три выхода. Два из них – провода питания, т.е. «земля”, а также напряжение 5 или 3.3 В. Третий провод является логическим. По нему идет передача данных к порту. Для подключения модулей используют специальные сгруппированные по 3 штуки провода, которые иногда называют джамперами.

Так как на моделях Arduino обычно всего 1 порт с напряжением и 1-2 порта с «землей”, то для того, чтобы подключить несколько устройств нужно будет либо спаивать провода, либо использовать макетные платы (breadboard).

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

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

У некоторых моделей (например, Arduino Zero и MKR1000) рабочее напряжение составляет 3.3 В, поэтому если на порты подать большее значения, то возможно повреждение платы. Вся информация по питанию доступна в технической документации к устройству.

Платы дополнения (шилды)

Для увеличения возможностей материнских плат используют шилды (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 по сравнению с «фирменными” решениями для «умного дома”. Главное, чтобы модули имели описание получаемых или передаваемых сигналов.

Способы получения информации

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

Для компьютерной программы цифровой сигнал соответствует периодам с «0” и «1”, а аналоговый определяет диапазон значений в соответствии со своей размерностью

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

  • Нажатие кнопки (клавиши). Логический провод в этом случае идет к цифровому порту, которые получает значение «0” в случае отпущенной кнопки и «1” в случае ее нажатия.
  • Вращение колпачка поворотного потенциометра (резистора) или сдвиг рычага движкового. В этом случае логический провод идет к аналоговому порту. Напряжение проходит через аналогово-цифровой преобразователь, после чего данные поступают к микропроцессору.

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

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

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

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

  • Датчик звука. Цифровые варианты этого устройства используют для активации какого-либо события с помощью хлопка или подачи голоса. Аналоговые модели позволяют распознавать и обрабатывать звук.
  • Датчик света. Эти приборы могут работать как в видимом, так и в инфракрасном диапазоне. Последние могут быть применены в качестве системы оповещения о возгорании.
  • Датчик температуры. Для дома и улицы используют разные модели, так как наружные лучше защищены от воздействия влаги. Есть также выносные устройства на проводе.
  • Датчик влажности воздуха. Для помещения подойдет модель DHT11, а для улицы – более дорогая DHT22. Оба устройства также могут давать и показание температуры. Подключаются к цифровому порту.
  • Датчик давления воздуха. Для совместной работы с платами Arduino хорошо зарекомендовали себя аналоговые барометры фирмы Bosh: bmp180, bmp280. Они также измеряют температуру. Модель bme280 можно назвать метеостанцией, так как она выдает дополнительно еще и значение влажности.
  • Датчики движения и присутствия. Их используют в охранных целях или для автоматического включения света.
  • Датчик дождя. Реагирует на попадание воды на его поверхность. Он может быть также использован для срабатывания сигнализации о протечках водопроводного или отопительного контура.
  • Датчик тока. Их применяют для обнаружения неработающих электроприборов (перегоревших ламп) или для анализа напряжения, чтобы не допустить перегрузку.
  • Датчик утечки газа. Применяется для обнаружения и реагирования на повышенную концентрацию пропана.
  • Датчик углекислого газа. Его используют для определения концентрации углекислоты в жилых комнатах и в специальных помещениях, таких как винные погреба, где происходит брожение.

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

Некоторые датчики, такие как анемометр, предназначенный для измерения скорости и направления ветра, представляют собой сложные электромеханические приборы

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

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

Кроме сбора и анализа информации «умный дом” должен реагировать на возникающие события. Присутствие на современных бытовых приборах продвинутой электроники позволяет обращаться к ним напрямую, используя Wi-Fi, GPRS или EtherNet. Обычно, для систем Arduino реализуют коммутацию микропроцессора и высокотехнологичных устройств посредством Wi-Fi.

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

  1. Установить модуль Wi-Fi на материнскую плату.
  2. Найти незанятые каналы частоты, чтобы избежать конфликта систем.
  3. Разобраться в командах приборов и запрограммировать действия (либо воспользоваться готовыми библиотеками).

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

Сервопривод состоит из моторчика и нескольких редукторов. Поэтому, несмотря на малый ток (5 В), он может развить приличную мощность, которой хватит, например, для открытия форточки

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

  1. Включение в цепь реле.
  2. Подключение силового ключа и симистора .

Включаемое в электрическую цепь электромагнитное или твердотельное реле замыкает и размыкает один из проводов по команде, поступающей от микропроцессора. Основная их характеристика – максимально допустимая сила тока (например, 40 A), которая может проходить через этот прибор.

Что касается подключения силового ключа (мосфета) для постоянного тока и симистора для переменного, то они обладают меньшим значением допустимой силы тока (5-15 A), но могут плавно увеличивать нагрузку. Именно для этого на платах предусмотрены ШИМ-порты. Это свойство используют при регулировании яркости освещения, скорости вращения вентиляторов и т.д.

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

Хотите, чтобы вам дом стал умнее, но с программированием на «вы”? В таком случае рекомендуем посмотреть готовые решения от Xiaomi и Apple, которые несложно установить и настроить даже новичку. А задавать команды и контролировать их выполнение можно даже со своего смартфона.

Подробнее об умном доме от Xiaomi и Apple в следующих статьях:

  • Умный дом Xiaomi: особенности проектирования, обзор основных узлов и рабочих элементов
  • Умный дом Apple: тонкости организации систем управления домом от «яблочной” компании

Выводы и полезное видео по теме

Пример самостоятельно собранной заготовки начального уровня для «умного дома”:

Открытость платформы Arduino позволяет использовать компоненты различных производителей. Это позволяет легко сконструировать «умный дом” под запросы пользователя. Поэтому, если есть хотя бы незначительные познания в области программирования и подключения электронных приборов, на эту систему стоит обратить внимание.

Вы на практике знакомы с платформой Arduino и хотите поделиться своим опытом с новичками в этом деле? Может вы хотите дополнить изложенный выше материал полезными рекомендациями или замечаниями? Пишите свои комментарии под этой публикацией.

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

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


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

Состав набора:
— платформа «Ардуино уно»;
— макетная плата «Брэдборд» 8,5 × 5,5 см;
— 21 провод «Мама — папа»;
— 5 проводов «Папа — папа»;
— ЮСБ-кабель;
— датчик звука;
— датчик движения HC-SR501;
— датчик углекислого газа MQ-135;
— тактовая кнопка;
— потенциометр;
— фоторезистор;
— модуль реле × 4;
— пьезоизлучатель;
— красный светодиод;
— зеленый светодиод;
— синий светодиод;
— желтый светодиод;
— 10 резисторов 220 Ом;
— резистор 10 кОм;
— руководство пользователя;
— книга «Изучаем «Ардуино»“. Инструменты и методы технического волшебства».

Оставьте комментарий